From 4235c36b2593aa9dfc8fb5ef7f44a9323f848292 Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 14 Dec 2025 15:09:02 -0500 Subject: [PATCH 01/78] feat: Add voice assistant with dual frontend architecture - Add voice assistant WebSocket router (/api/voice/connect) - Add STT service (Deepgram streaming) - Add TTS service (Deepgram Aura) - Add voice session manager - Add Kiosk frontend (React + Vite on port 5174) - Update Svelte frontend config (port 5173) - Add kill_port.py utility for clean server restarts - Update start_server.sh to run both frontends - Add implementation_plan.md with current status --- frontend-kiosk/index.html | 13 + frontend-kiosk/package-lock.json | 2759 +++++++++++++++++ frontend-kiosk/package.json | 26 + frontend-kiosk/postcss.config.js | 6 + frontend-kiosk/public/vite.svg | 1 + frontend-kiosk/src/App.jsx | 110 + frontend-kiosk/src/components/Clock.jsx | 45 + frontend-kiosk/src/components/PhotoFrame.jsx | 46 + .../src/components/TranscriptionScreen.jsx | 58 + frontend-kiosk/src/index.css | 21 + frontend-kiosk/src/main.jsx | 10 + frontend-kiosk/tailwind.config.js | 11 + frontend-kiosk/vite.config.js | 19 + frontend/vite.config.ts | 1 + implementation_plan.md | 266 ++ pyproject.toml | 1 + scripts/kill_port.py | 22 + src/backend/app.py | 49 + src/backend/config.py | 18 + src/backend/routers/voice_assistant.py | 144 + src/backend/services/stt_service.py | 183 ++ src/backend/services/tts_service.py | 49 + src/backend/services/voice_session.py | 73 + src/backend/static/assets/index-jn8KbIxX.css | 1 + src/backend/static/assets/index-qhzVSo28.js | 17 + src/backend/static/index.html | 14 + src/backend/static/vite.svg | 1 + start_server.sh | 50 +- tests/verify_voice_backend.py | 89 + uv.lock | 18 + 30 files changed, 4110 insertions(+), 11 deletions(-) create mode 100644 frontend-kiosk/index.html create mode 100644 frontend-kiosk/package-lock.json create mode 100644 frontend-kiosk/package.json create mode 100644 frontend-kiosk/postcss.config.js create mode 100644 frontend-kiosk/public/vite.svg create mode 100644 frontend-kiosk/src/App.jsx create mode 100644 frontend-kiosk/src/components/Clock.jsx create mode 100644 frontend-kiosk/src/components/PhotoFrame.jsx create mode 100644 frontend-kiosk/src/components/TranscriptionScreen.jsx create mode 100644 frontend-kiosk/src/index.css create mode 100644 frontend-kiosk/src/main.jsx create mode 100644 frontend-kiosk/tailwind.config.js create mode 100644 frontend-kiosk/vite.config.js create mode 100644 implementation_plan.md create mode 100644 scripts/kill_port.py create mode 100644 src/backend/routers/voice_assistant.py create mode 100644 src/backend/services/stt_service.py create mode 100644 src/backend/services/tts_service.py create mode 100644 src/backend/services/voice_session.py create mode 100644 src/backend/static/assets/index-jn8KbIxX.css create mode 100644 src/backend/static/assets/index-qhzVSo28.js create mode 100644 src/backend/static/index.html create mode 100644 src/backend/static/vite.svg create mode 100644 tests/verify_voice_backend.py diff --git a/frontend-kiosk/index.html b/frontend-kiosk/index.html new file mode 100644 index 00000000..06642f34 --- /dev/null +++ b/frontend-kiosk/index.html @@ -0,0 +1,13 @@ + + + + + + + Kiosk + + +
+ + + diff --git a/frontend-kiosk/package-lock.json b/frontend-kiosk/package-lock.json new file mode 100644 index 00000000..696a1656 --- /dev/null +++ b/frontend-kiosk/package-lock.json @@ -0,0 +1,2759 @@ +{ + "name": "frontend-kiosk", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend-kiosk", + "version": "0.0.0", + "dependencies": { + "framer-motion": "^11.15.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-use-websocket": "^4.9.0" + }, + "devDependencies": { + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "vite": "^6.0.5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.7.tgz", + "integrity": "sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "11.18.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.18.2.tgz", + "integrity": "sha512-5F5Och7wrvtLVElIpclDT0CBzMVg3dL22B64aZwHtsIY8RB4mXICLrkajK4G9R+ieSAGcgrLeae2SeUTg2pr6w==", + "license": "MIT", + "dependencies": { + "motion-dom": "^11.18.1", + "motion-utils": "^11.18.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/motion-dom": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.18.1.tgz", + "integrity": "sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^11.18.1" + } + }, + "node_modules/motion-utils": { + "version": "11.18.1", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.18.1.tgz", + "integrity": "sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-use-websocket": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/react-use-websocket/-/react-use-websocket-4.13.0.tgz", + "integrity": "sha512-anMuVoV//g2N76Wxqvqjjo1X48r9Np3y1/gMl7arX84tAPXdy5R7sB5lO5hvCzQRYjqXwV8XMAiEBOUbyrZFrw==", + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "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 + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/frontend-kiosk/package.json b/frontend-kiosk/package.json new file mode 100644 index 00000000..47f59b65 --- /dev/null +++ b/frontend-kiosk/package.json @@ -0,0 +1,26 @@ +{ + "name": "frontend-kiosk", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "framer-motion": "^11.15.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-use-websocket": "^4.9.0" + }, + "devDependencies": { + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "vite": "^6.0.5" + } +} diff --git a/frontend-kiosk/postcss.config.js b/frontend-kiosk/postcss.config.js new file mode 100644 index 00000000..d41ad635 --- /dev/null +++ b/frontend-kiosk/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/frontend-kiosk/public/vite.svg b/frontend-kiosk/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/frontend-kiosk/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend-kiosk/src/App.jsx b/frontend-kiosk/src/App.jsx new file mode 100644 index 00000000..15d1f980 --- /dev/null +++ b/frontend-kiosk/src/App.jsx @@ -0,0 +1,110 @@ +import { AnimatePresence, motion } from 'framer-motion'; +import { useEffect, useState } from 'react'; +import useWebSocket, { ReadyState } from 'react-use-websocket'; +import Clock from './components/Clock'; +import PhotoFrame from './components/PhotoFrame'; +import TranscriptionScreen from './components/TranscriptionScreen'; + +export default function App() { + // 0 = Clock, 1 = Photos, 2 = Transcription + const [currentScreen, setCurrentScreen] = useState(0); + + // WebSocket Connection - connects to backend + const wsUrl = `ws://${window.location.hostname}:8000/api/voice/connect?client_id=frontend_gui`; + + const [transcript, setTranscript] = useState(""); + const [agentState, setAgentState] = useState("IDLE"); + + const { + sendMessage, + lastMessage, + readyState + } = useWebSocket(wsUrl, { + onOpen: () => console.log('WebSocket Connected'), + shouldReconnect: () => true, + reconnectAttempts: 10, + reconnectInterval: 3000, + }); + + useEffect(() => { + if (lastMessage !== null) { + try { + const data = JSON.parse(lastMessage.data); + if (data.type === 'transcript') { + setTranscript(data.text); + } else if (data.type === 'state') { + setAgentState(data.state); + if (data.state === 'LISTENING' || data.state === 'THINKING') { + setCurrentScreen(2); // Auto-jump to transcription screen + } + if (data.state === 'IDLE') { + // Return to clock after delay + setTimeout(() => setCurrentScreen(0), 10000); + } + } + } catch (e) { + console.error("Failed to parse WS message", e); + } + } + }, [lastMessage]); + + const handleSwipe = (direction) => { + if (direction > 0) { + setCurrentScreen((prev) => (prev + 1) % 3); + } else { + setCurrentScreen((prev) => (prev === 0 ? 2 : prev - 1)); + } + }; + + const screens = [ + , + , + + ]; + + return ( +
+ + { + if (offset.x < -100) handleSwipe(1); + else if (offset.x > 100) handleSwipe(-1); + }} + > + {screens[currentScreen]} + + + + {/* Page Indicators */} +
+ {[0, 1, 2].map((i) => ( +
+ ))} +
+ + {/* Connection Indicator */} +
+
+ ); +} diff --git a/frontend-kiosk/src/components/Clock.jsx b/frontend-kiosk/src/components/Clock.jsx new file mode 100644 index 00000000..108811da --- /dev/null +++ b/frontend-kiosk/src/components/Clock.jsx @@ -0,0 +1,45 @@ +import { useEffect, useState } from 'react'; + +export default function Clock() { + const [time, setTime] = useState(new Date()); + + useEffect(() => { + const timer = setInterval(() => setTime(new Date()), 1000); + return () => clearInterval(timer); + }, []); + + const formatTime = (date) => { + return date.toLocaleTimeString('en-US', { + hour: '2-digit', + minute: '2-digit', + hour12: true, + }); + }; + + const formatDate = (date) => { + return date.toLocaleDateString('en-US', { + weekday: 'long', + month: 'long', + day: 'numeric', + }); + }; + + return ( +
+ {/* Time */} +
+ {formatTime(time)} +
+ + {/* Date */} +
+ {formatDate(time)} +
+ + {/* Subtle ambient glow */} +
+
+
+
+ ); +} diff --git a/frontend-kiosk/src/components/PhotoFrame.jsx b/frontend-kiosk/src/components/PhotoFrame.jsx new file mode 100644 index 00000000..d76d6312 --- /dev/null +++ b/frontend-kiosk/src/components/PhotoFrame.jsx @@ -0,0 +1,46 @@ +import { AnimatePresence, motion } from 'framer-motion'; +import { useEffect, useState } from 'react'; + +// Placeholder images - in production, fetch from API or local storage +const SAMPLE_PHOTOS = [ + 'https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1200', + 'https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=1200', + 'https://images.unsplash.com/photo-1426604966848-d7adac402bff?w=1200', + 'https://images.unsplash.com/photo-1433086966358-54859d0ed716?w=1200', +]; + +export default function PhotoFrame() { + const [currentIndex, setCurrentIndex] = useState(0); + + useEffect(() => { + const timer = setInterval(() => { + setCurrentIndex((prev) => (prev + 1) % SAMPLE_PHOTOS.length); + }, 8000); // Change photo every 8 seconds + return () => clearInterval(timer); + }, []); + + return ( +
+ + + + + {/* Subtle vignette overlay */} +
+ + {/* Photo counter */} +
+ {currentIndex + 1} / {SAMPLE_PHOTOS.length} +
+
+ ); +} diff --git a/frontend-kiosk/src/components/TranscriptionScreen.jsx b/frontend-kiosk/src/components/TranscriptionScreen.jsx new file mode 100644 index 00000000..9db8de1b --- /dev/null +++ b/frontend-kiosk/src/components/TranscriptionScreen.jsx @@ -0,0 +1,58 @@ +import { AnimatePresence, motion } from 'framer-motion'; + +export default function TranscriptionScreen({ transcript, isListening, agentState }) { + return ( +
+ {/* Status Indicator */} +
+ {isListening ? ( +
+
+ Listening +
+ ) : ( +
+
+ {agentState} +
+ )} +
+ + {/* Main Content Area */} +
+ + {transcript ? ( + +

+ "{transcript}" +

+
+ ) : ( + +

Say "Hey Jarvis"

+
+ )} +
+
+ + {/* Ambient glow when listening */} + {isListening && ( + +
+ + )} +
+ ); +} diff --git a/frontend-kiosk/src/index.css b/frontend-kiosk/src/index.css new file mode 100644 index 00000000..4c1500b3 --- /dev/null +++ b/frontend-kiosk/src/index.css @@ -0,0 +1,21 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body, #root { + width: 100%; + height: 100%; + overflow: hidden; +} + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + -webkit-font-smoothing: antialiased; + background: #000; +} diff --git a/frontend-kiosk/src/main.jsx b/frontend-kiosk/src/main.jsx new file mode 100644 index 00000000..b4296e8a --- /dev/null +++ b/frontend-kiosk/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.jsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + , +) diff --git a/frontend-kiosk/tailwind.config.js b/frontend-kiosk/tailwind.config.js new file mode 100644 index 00000000..ceb0351a --- /dev/null +++ b/frontend-kiosk/tailwind.config.js @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/frontend-kiosk/vite.config.js b/frontend-kiosk/vite.config.js new file mode 100644 index 00000000..15d40c2d --- /dev/null +++ b/frontend-kiosk/vite.config.js @@ -0,0 +1,19 @@ +import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite' + +export default defineConfig({ + plugins: [react()], + server: { + host: '0.0.0.0', + port: 5174, + strictPort: true, + proxy: { + '/api': 'http://localhost:8000', + '/health': 'http://localhost:8000', + }, + }, + build: { + outDir: '../src/backend/static', + emptyOutDir: true, + }, +}) diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index cb90f339..3e86fef7 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -7,6 +7,7 @@ export default defineConfig({ server: { host: '0.0.0.0', // Listen on all network interfaces port: 5173, + strictPort: true, // Fail if port is in use (we kill it via start_server.sh) proxy: { '/api': 'http://localhost:8000', '/health': 'http://localhost:8000', diff --git a/implementation_plan.md b/implementation_plan.md new file mode 100644 index 00000000..29c76f09 --- /dev/null +++ b/implementation_plan.md @@ -0,0 +1,266 @@ +# Smart Home Voice Assistant - Implementation Status + +## Project Overview + +Building an Alexa-like smart home voice assistant with: +- **Raspberry Pi 5** - Edge device running audio agent + kiosk UI +- **Backend Server** (FastAPI) - Intelligence, STT, TTS, MCP tools +- **Real-time Communication** - WebSocket bidirectional + +--- + +## Current Architecture + +``` +Backend (FastAPI) - http://192.168.1.223:8000 +├── WebSocket Server ✅ COMPLETE (voice_assistant.py) +├── STT Service ✅ COMPLETE (stt_service.py) +├── TTS Service ✅ COMPLETE (tts_service.py) +├── Voice Session Manager ✅ COMPLETE (voice_session.py) +├── Intent Parser ⏳ TODO (intent_parser.py) +└── Existing Infrastructure (reuse) + ├── OpenRouter Client ✅ EXISTS + ├── MCP Client ✅ EXISTS + ├── MCP Registry ✅ EXISTS + └── Chat Orchestrator ✅ EXISTS + +Frontends: +├── Svelte Chat UI ✅ COMPLETE - http://192.168.1.223:5173 +│ └── frontend/ +└── Kiosk UI (React) ✅ COMPLETE - http://192.168.1.223:5174 + └── frontend-kiosk/ +``` + +--- + +## ✅ COMPLETED - Raspberry Pi Audio Agent + +Complete Python audio agent deployed to Pi at `/home/jck411/.gemini/antigravity/scratch/raspi-smarthome/` + +**Components Implemented:** +- ✅ Audio capture module (PyAudio + ReSpeaker 4 Mic Array) +- ✅ Wake word detection (openwakeword - "hey Jarvis") +- ✅ WebSocket client with auto-reconnect +- ✅ State machine orchestrator (IDLE/LISTENING/PROCESSING/SPEAKING) +- ✅ Barge-in support (wake word during TTS) +- ✅ Systemd service with auto-restart + +**WebSocket Protocol (Pi → Backend):** +- ✅ `connection_ready` - Initial connection +- ✅ `wakeword_detected` - Wake word from IDLE +- ✅ `wakeword_barge_in` - Wake word during SPEAKING +- ✅ `audio_chunk` - Audio streaming (base64 PCM) +- ✅ `stream_end` - Stop streaming +- ✅ `heartbeat` - Keep-alive + +**WebSocket Protocol (Backend → Pi):** +- ✅ `set_state` - State changes +- ✅ `interrupt_tts` - Stop TTS playback +- ✅ `tts_audio` - Play audio response +- ✅ `session_reset` - Reset to IDLE + +--- + +## ✅ COMPLETED - Backend Voice Services + +### 1. WebSocket Router ✅ COMPLETE + +**File:** `src/backend/routers/voice_assistant.py` (145 lines) + +**Implemented:** +- ✅ WebSocket endpoint `/api/voice/connect` +- ✅ Client connection handling with `client_id` query param +- ✅ Event handlers for all Pi events (wakeword, audio_chunk, stream_end, etc.) +- ✅ Integration with STT and TTS services +- ✅ State management via VoiceConnectionManager +- ✅ Registered in app.py + +--- + +### 2. STT Service ✅ COMPLETE + +**File:** `src/backend/services/stt_service.py` (184 lines) + +**Implemented:** +- ✅ `STTService` class with Deepgram SDK +- ✅ `create_session(session_id, on_transcript, on_error)` - Start live connection +- ✅ `stream_audio(session_id, audio_bytes)` - Send audio to Deepgram +- ✅ `close_session(session_id)` - Terminate connection +- ✅ Async background task for connection management +- ✅ Transcript callbacks (interim + final) + +**Deepgram Configuration:** +```python +{ + "model": "nova-2", + "language": "en-US", + "smart_format": "true", + "interim_results": "true", + "vad_events": "true", + "endpointing": "1000" +} +``` + +--- + +### 3. TTS Service ✅ COMPLETE + +**File:** `src/backend/services/tts_service.py` (50 lines) + +**Implemented:** +- ✅ `TTSService` class with Deepgram Aura +- ✅ `synthesize(text: str) -> bytes` - Generate audio + +**Deepgram Configuration:** +```python +{ + "model": "aura-asteria-en", + "encoding": "linear16", + "sample_rate": 16000, + "container": "none" +} +``` + +--- + +### 4. Voice Session Manager ✅ COMPLETE + +**File:** `src/backend/services/voice_session.py` (74 lines) + +**Implemented:** +- ✅ `VoiceSession` dataclass with all fields +- ✅ `VoiceConnectionManager` class +- ✅ `connect(websocket, client_id)` - Accept connection +- ✅ `disconnect(client_id)` - Remove session +- ✅ `get_session(client_id)` - Retrieve session +- ✅ `send_message(client_id, message)` - Send to client +- ✅ `update_state(client_id, new_state)` - State transition + broadcast +- ✅ `broadcast(message)` - Send to all clients + +--- + +## ✅ COMPLETED - Kiosk Frontend + +**Directory:** `frontend-kiosk/` + +**Technology:** React + Vite + Framer Motion + Tailwind CSS + +**Components:** +- ✅ `App.jsx` - Main app with 3 swipeable screens +- ✅ `components/Clock.jsx` - Time and date display +- ✅ `components/PhotoFrame.jsx` - Auto-rotating photo slideshow +- ✅ `components/TranscriptionScreen.jsx` - Live transcript + voice state + +**Features:** +- ✅ WebSocket connection to `/api/voice/connect` +- ✅ Swipe gestures between screens +- ✅ Auto-jump to transcription screen on LISTENING/THINKING state +- ✅ Auto-return to clock after IDLE +- ✅ Connection status indicator +- ✅ Page indicator dots + +**Running:** `http://192.168.1.223:5174` + +--- + +## ⏳ TODO - Intent Parser & MCP Integration + +**File:** `src/backend/services/intent_parser.py` (NEW - NOT YET CREATED) + +### Purpose +Parse voice commands and execute actions via existing MCP tools. + +### Implementation Checklist + +- [ ] Create `IntentParser` class + - [ ] Initialize with ChatOrchestrator (reuse existing) + - [ ] `parse_and_execute(transcript: str) -> str` - Main method +- [ ] Flow: + 1. Receive transcript from STT + 2. Send to ChatOrchestrator with existing MCP tools + 3. LLM selects appropriate tool + 4. Execute tool via existing MCP client + 5. Generate natural language response + 6. Return response text for TTS +- [ ] Update `voice_assistant.py` to use IntentParser instead of echo + +**Current Behavior (Phase 1):** Echo - "I heard you say: {transcript}" + +**Target Behavior:** Intelligent responses using LLM + MCP tools + +--- + +## Integration & Configuration ✅ COMPLETE + +### `src/backend/app.py` Updates ✅ +- ✅ Imports voice_assistant router +- ✅ `app.state.voice_manager = VoiceConnectionManager()` +- ✅ `app.state.stt_service = STTService()` +- ✅ `app.state.tts_service = TTSService()` +- ✅ `app.include_router(voice_assistant.router)` +- ✅ Serves kiosk static files from `src/backend/static/` + +### Dependencies ✅ +- ✅ `deepgram-sdk` installed + +--- + +## Running the System + +### Start All Services +```bash +./start_server.sh +``` + +This starts: +1. **Backend API** - `http://192.168.1.223:8000` +2. **Svelte Chat UI** - `http://192.168.1.223:5173` +3. **Kiosk UI** - `http://192.168.1.223:5174` + +### Firewall Ports (already configured) +```bash +sudo firewall-cmd --list-ports +# 5173/tcp 5174/tcp 8000/tcp +``` + +--- + +## Success Criteria + +- [x] Pi connects to backend via WebSocket +- [x] Kiosk frontend connects and shows state +- [x] Wake word detection triggers backend STT session +- [x] Audio streams from Pi to Deepgram +- [x] Transcripts received in real-time +- [x] TTS responses generated and sent back +- [ ] Voice commands execute MCP tools (needs IntentParser) +- [x] System survives network drops and reconnects + +--- + +## Next Steps + +### Phase 2: Intelligent Responses +1. Create `intent_parser.py` to integrate with ChatOrchestrator +2. Replace echo logic in `voice_assistant.py` with IntentParser +3. Test with existing MCP tools + +### Phase 3: Smart Home Integration +1. Create home-appliances MCP server +2. Add device control tools +3. Configure in `data/mcp_servers.json` + +--- + +## File Status Summary + +| File | Status | Lines | +|------|--------|-------| +| `src/backend/routers/voice_assistant.py` | ✅ Complete | 145 | +| `src/backend/services/stt_service.py` | ✅ Complete | 184 | +| `src/backend/services/tts_service.py` | ✅ Complete | 50 | +| `src/backend/services/voice_session.py` | ✅ Complete | 74 | +| `src/backend/services/intent_parser.py` | ⏳ TODO | - | +| `frontend-kiosk/` | ✅ Complete | ~400 | + +**Total Backend Voice Code:** ~450 lines (complete) diff --git a/pyproject.toml b/pyproject.toml index e39a82f9..0381e246 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ dependencies = [ "gql<3.5.0", "spotipy>=2.25.1", "python-toon>=0.1.3", + "deepgram-sdk>=5.3.0", ] [project.scripts] diff --git a/scripts/kill_port.py b/scripts/kill_port.py new file mode 100644 index 00000000..ec850549 --- /dev/null +++ b/scripts/kill_port.py @@ -0,0 +1,22 @@ +import psutil +import sys + +def kill_process_on_port(port): + """Kills any process listening on the specified port.""" + found = False + for proc in psutil.process_iter(['pid', 'name']): + try: + for conn in proc.net_connections(kind='inet'): + if conn.laddr.port == port: + print(f"Killing process using port {port}: {proc.info['name']} (PID: {proc.info['pid']})") + proc.kill() + found = True + except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): + pass + + if not found: + print(f"No process found using port {port}.") + +if __name__ == "__main__": + port = int(sys.argv[1]) if len(sys.argv) > 1 else 8000 + kill_process_on_port(port) diff --git a/src/backend/app.py b/src/backend/app.py index ae2718d9..d6bd741d 100644 --- a/src/backend/app.py +++ b/src/backend/app.py @@ -251,6 +251,24 @@ async def lifespan(app: FastAPI): app.include_router(presets_router) app.include_router(mcp_router) app.include_router(stt_router) + + # helper for voice assistant imports to avoid circular deps if any, + # though here it should be fine. + from .routers import voice_assistant + from .services.voice_session import VoiceConnectionManager + from .services.stt_service import STTService + from .services.tts_service import TTSService + + try: + app.state.voice_manager = VoiceConnectionManager() + app.state.stt_service = STTService() + app.state.tts_service = TTSService() + app.include_router(voice_assistant.router) + logging.info("Voice Assistant initialized successfully.") + except Exception as e: + logging.error(f"Failed to initialize Voice Assistant: {e}") + # We don't crash the whole app, just this feature won't work + app.include_router( suggestions_router, prefix="/api/suggestions", tags=["suggestions"] ) @@ -289,6 +307,37 @@ async def healthcheck() -> dict[str, str | None]: "active_model": active_model, } + from fastapi.staticfiles import StaticFiles + from starlette.responses import FileResponse + import os + + # Serve Static Files (Vite Frontend) + # Check if static directory exists (it should after build) + static_dir = Path(__file__).resolve().parent / "static" + + if static_dir.exists(): + # Mount the assets folder specifically + app.mount("/assets", StaticFiles(directory=static_dir / "assets"), name="assets") + + # Serve index.html for root and any other SPA routes (catch-all) + @app.get("/{full_path:path}") + async def serve_spa(full_path: str): + # If API route, let it pass through (already handled above appropriately, + # but usually catch-all is last resort). + # Actually, FastAPI matches in order. Since this is last, logic is simpler. + if full_path.startswith("api/"): + return Response(status_code=404) + + # Check if file exists (e.g. valid static file not in assets) + file_path = static_dir / full_path + if file_path.exists() and file_path.is_file(): + return FileResponse(file_path) + + # Default to index.html for SPA routing + return FileResponse(static_dir / "index.html") + else: + logging.warning(f"Static directory not found at {static_dir}. Frontend will not be served.") + return app diff --git a/src/backend/config.py b/src/backend/config.py index 764cf31f..3bd73ae7 100644 --- a/src/backend/config.py +++ b/src/backend/config.py @@ -177,6 +177,24 @@ class Settings(BaseSettings): def attachment_signed_url_ttl(self) -> timedelta: return timedelta(days=self.attachments_retention_days) + # Voice Assistant Settings + pi_websocket_heartbeat_interval: int = Field( + default=10, + validation_alias=AliasChoices("PI_WEBSOCKET_HEARTBEAT_INTERVAL", "heartbeat_interval"), + ) + stt_silence_timeout: int = Field( + default=10, + validation_alias=AliasChoices("STT_SILENCE_TIMEOUT", "stt_silence_timeout"), + ) + stt_max_duration: int = Field( + default=60, + validation_alias=AliasChoices("STT_MAX_DURATION", "stt_max_duration"), + ) + tts_provider: str = Field( + default="deepgram", + validation_alias=AliasChoices("TTS_PROVIDER", "tts_provider"), + ) + # Deepgram (optional, only needed if using browser STT) deepgram_api_key: SecretStr | None = Field( default=None, validation_alias=AliasChoices("DEEPGRAM_API_KEY") diff --git a/src/backend/routers/voice_assistant.py b/src/backend/routers/voice_assistant.py new file mode 100644 index 00000000..ebe365c9 --- /dev/null +++ b/src/backend/routers/voice_assistant.py @@ -0,0 +1,144 @@ +import base64 +import json +import logging +from typing import Dict, Any + +from fastapi import APIRouter, WebSocket, WebSocketDisconnect, Request + +from backend.services.voice_session import VoiceConnectionManager +from backend.services.stt_service import STTService +from backend.services.tts_service import TTSService + +router = APIRouter(prefix="/api/voice", tags=["Voice Assistant"]) +logger = logging.getLogger(__name__) + +async def handle_connection(websocket: WebSocket, client_id: str, manager: VoiceConnectionManager, stt_service: STTService, tts_service: TTSService): + """ + Main loop for handling a single client's WebSocket connection. + """ + await manager.connect(websocket, client_id) + + # Session state for this specific connection + # (In addition to the global session object, we might need local vars) + + async def start_stt_session(): + """Helper to start the STT session with callbacks.""" + + async def on_transcript_received(text: str, is_final: bool): + logger.debug(f"Transcript ({client_id}): {text} (Final: {is_final})") + + # Broadcast transcript to frontend + await manager.broadcast({"type": "transcript", "text": text, "is_final": is_final}) + + if is_final: + # Transition to PROCESSING + await manager.update_state(client_id, "PROCESSING") + + # Phase 1 Logic: Echo back + response_text = f"I heard you say: {text}" + + if response_text: + await manager.update_state(client_id, "SPEAKING") + # Use TTS + try: + audio_data = await tts_service.synthesize(response_text) + + if audio_data: + # 4. Play Audio on Client + await websocket.send_json({ + "type": "tts_audio", + "data": base64.b64encode(audio_data).decode('utf-8') + }) + logger.info(f"Sent TTS audio for {client_id}") + except Exception as e: + logger.error(f"TTS generation failed: {e}") + finally: + await manager.update_state(client_id, "IDLE") + + async def on_stt_error(error: str): + logger.error(f"STT Error for {client_id}: {error}") + await manager.update_state(client_id, "IDLE") + + await stt_service.create_session(client_id, on_transcript_received, on_stt_error) + + try: + while True: + # Receive message from Pi + data = await websocket.receive_json() + event_type = data.get("type") + + if event_type == "heartbeat": + # Respond with heartbeat or just ignore/log + # The Pi expects we just stay alive + pass + + elif event_type == "connection_ready": + logger.info(f"Client {client_id} ready.") + + elif event_type == "wakeword_detected": + logger.info(f"Wake word detected for {client_id}") + await manager.update_state(client_id, "LISTENING") + # Start STT session + await start_stt_session() + + elif event_type == "wakeword_barge_in": + logger.info(f"Barge-in for {client_id}") + # Interrupt TTS + await manager.send_message(client_id, {"type": "interrupt_tts"}) + await manager.update_state(client_id, "LISTENING") + + # Reset STT + await stt_service.close_session(client_id) + await start_stt_session() + + elif event_type == "audio_chunk": + session = manager.get_session(client_id) + # Only process audio if we are in listening mode + if session and session.state == "LISTENING": + payload = data.get("data") + if payload: + chunk = base64.b64decode(payload) + await stt_service.stream_audio(client_id, chunk) + + elif event_type == "stream_end": + logger.info(f"Stream end for {client_id}") + # We might want to keep the session open for the response, + # but Deepgram connection might be finished. + # Actually, stream_end often means "user stopped speaking" (VAD) + # But Deepgram has its own VAD. + # If the Pi sends stream_end, we should tell Deepgram we are done sending audio? + # But Deepgram keeps connection open for transcripts. + # Let's just ensure we don't stream more. + pass + + except WebSocketDisconnect: + logger.info(f"Client {client_id} disconnected") + manager.disconnect(client_id) + await stt_service.close_session(client_id) + except Exception as e: + logger.error(f"Unexpected error for {client_id}: {e}") + manager.disconnect(client_id) + await stt_service.close_session(client_id) + + +@router.websocket("/connect") +async def voice_connect(websocket: WebSocket): + # Depending on how the Pi connects, it might send client_id in query param or header? + # Or we generate one. + # Plan doesn't specify auth yet, so let's generate or use a header. + # Let's assume a query param ?client_id=... or default to "pi_1" + client_id = websocket.query_params.get("client_id", "default_pi") + + app_state = websocket.app.state + + # Ensure services are initialized + if not hasattr(app_state, "voice_manager"): + logger.error("Voice Manager not initialized") + await websocket.close(code=1000, reason="Server not ready") + return + + manager = app_state.voice_manager + stt_service = app_state.stt_service + tts_service = app_state.tts_service + + await handle_connection(websocket, client_id, manager, stt_service, tts_service) diff --git a/src/backend/services/stt_service.py b/src/backend/services/stt_service.py new file mode 100644 index 00000000..b41e6c06 --- /dev/null +++ b/src/backend/services/stt_service.py @@ -0,0 +1,183 @@ +import asyncio +import json +import logging +from typing import Callable, Optional + +from deepgram import DeepgramClient, AsyncDeepgramClient +from deepgram.core.events import EventType + +from backend.config import get_settings + +logger = logging.getLogger(__name__) + + +class STTService: + """ + Manages Deepgram streaming STT sessions. + """ + + def __init__(self): + settings = get_settings() + api_key = settings.deepgram_api_key.get_secret_value() if settings.deepgram_api_key else None + if not api_key: + raise ValueError("DEEPGRAM_API_KEY is not set") + + self.client = AsyncDeepgramClient(api_key=api_key) + self.live_connections = {} # session_id -> socket_client_instance + self.session_tasks = {} # session_id -> asyncio.Task (manager) + self.stop_events = {} # session_id -> asyncio.Event + + async def create_session( + self, + session_id: str, + on_transcript: Callable[[str, bool], None], + on_error: Optional[Callable[[str], None]] = None + ): + """ + Start a new live transcription session. + """ + try: + # Create a stop event for this session + stop_event = asyncio.Event() + self.stop_events[session_id] = stop_event + + # Start background task to manage connection + task = asyncio.create_task( + self._manage_deepgram_connection(session_id, stop_event, on_transcript, on_error) + ) + self.session_tasks[session_id] = task + + logger.info(f"Started STT initialization task for {session_id}") + return True + + except Exception as e: + logger.error(f"Failed to create STT session: {e}") + if on_error: + if asyncio.iscoroutinefunction(on_error): + await on_error(str(e)) + else: + on_error(str(e)) + return False + + async def _manage_deepgram_connection( + self, + session_id: str, + stop_event: asyncio.Event, + on_transcript: Callable[[str, bool], None], + on_error: Optional[Callable[[str], None]] = None + ): + """ + Background task to hold the Deepgram WebSocket connection open. + """ + try: + # Flattened options as required by this SDK version + # Note: passing strings for boolean-like params as per type hints seen in inspection + options = { + "model": "nova-2", + "language": "en-US", + "smart_format": "true", + "interim_results": "true", + "vad_events": "true", + "endpointing": "1000", + } + + async with self.client.listen.v1.connect(**options) as dg_connection: + self.live_connections[session_id] = dg_connection + logger.info(f"Deepgram connected for {session_id}") + + # Register handlers + async def handle_message(self, result, **kwargs): + # result is an object (V1SocketClientResponse) + # We need to parse it. + # Based on SDK, it emits parsed objects directly. + # result might be ListenV1ResultsEvent etc. + + try: + # Check if it has 'channel' attribute (Transcript event) + if hasattr(result, 'channel'): + alternatives = result.channel.alternatives + if alternatives and len(alternatives) > 0: + transcript = alternatives[0].transcript + is_final = result.is_final + + if transcript: + if asyncio.iscoroutinefunction(on_transcript): + await on_transcript(transcript, is_final) + else: + on_transcript(transcript, is_final) + + # Handle errors if result is error type? + # The SDK uses EventType.ERROR for errors, passing exc. + except Exception as e: + logger.error(f"Error processing transcript: {e}") + + async def handle_error(self, error, **kwargs): + logger.error(f"Deepgram error for {session_id}: {error}") + if on_error: + if asyncio.iscoroutinefunction(on_error): + await on_error(str(error)) + else: + on_error(str(error)) + + # Register event listeners + # Since dg_connection is AsyncV1SocketClient which is EventEmitterMixin + # We typically use .on(EventType.MESSAGE, handler) + # But handler signature in EventEmitterMixin? + # SDK source says: await handler(self, event_data, **kwargs) + dg_connection.on(EventType.MESSAGE, handle_message) + dg_connection.on(EventType.ERROR, handle_error) + + # Start the listening loop in a separate task so we can also check stop_event + listen_task = asyncio.create_task(dg_connection.start_listening()) + + # Wait for stop signal + await stop_event.wait() + + # Cleanup + # Cancelling listen task (or it stops when connection closes, but we are closing connection by exiting context) + listen_task.cancel() + try: + await listen_task + except asyncio.CancelledError: + pass + + except Exception as e: + logger.error(f"Deepgram connection loop failed for {session_id}: {e}") + if on_error: + if asyncio.iscoroutinefunction(on_error): + await on_error(str(e)) + else: + on_error(str(e)) + finally: + # Cleanup global state + self.live_connections.pop(session_id, None) + self.stop_events.pop(session_id, None) + self.session_tasks.pop(session_id, None) + logger.info(f"Deepgram session ended for {session_id}") + + async def stream_audio(self, session_id: str, audio_bytes: bytes): + """Send audio data to the live connection.""" + connection = self.live_connections.get(session_id) + if connection: + try: + # Use send_media for binary data + await connection.send_media(audio_bytes) + except Exception as e: + logger.error(f"Error streaming audio for {session_id}: {e}") + + async def close_session(self, session_id: str): + """Close the live connection.""" + # Signal the background task to exit + event = self.stop_events.get(session_id) + if event: + event.set() + + # Wait for task to finish? + # Optional, but good for cleanup. + task = self.session_tasks.get(session_id) + if task: + try: + # wait briefly + await asyncio.wait([task], timeout=2.0) + except Exception: + pass diff --git a/src/backend/services/tts_service.py b/src/backend/services/tts_service.py new file mode 100644 index 00000000..aaef5141 --- /dev/null +++ b/src/backend/services/tts_service.py @@ -0,0 +1,49 @@ +import httpx +from deepgram import AsyncDeepgramClient + +from backend.config import get_settings + + +class TTSService: + """Service for Text-to-Speech generation using Deepgram Aura.""" + + def __init__(self): + settings = get_settings() + api_key = settings.deepgram_api_key.get_secret_value() if settings.deepgram_api_key else None + if not api_key: + raise ValueError("DEEPGRAM_API_KEY is not set") + + self.client = AsyncDeepgramClient(api_key=api_key) + + async def synthesize(self, text: str) -> bytes: + """ + Synthesize text to audio using Deepgram. + Returns raw PCM audio bytes (16kHz, 16-bit, mono). + """ + try: + # Use dict for options + speak_options = { + "model": "aura-asteria-en", + "encoding": "linear16", + "sample_rate": 16000, + "container": "none", + } + + # Deepgram SDK synchronous call + # Using standard SDK usage, passing options as dict might be supported + # or passing kw arguments to the method. + # Assuming speak.v("1").stream(source, options) pattern + + # The 'source' argument is {"text": text}, and 'options' handles the rest. + + response = await self.client.speak.v("1").stream({"text": text}, speak_options) + + # The response should be a stream-able object. + # We want all bytes. + return await response.read() + + except Exception as e: + print(f"TTS Error: {e}") + # Return empty bytes or raise? + # Let's return empty bytes to avoid crashing the caller + return b"" diff --git a/src/backend/services/voice_session.py b/src/backend/services/voice_session.py new file mode 100644 index 00000000..45ac1e04 --- /dev/null +++ b/src/backend/services/voice_session.py @@ -0,0 +1,73 @@ +import asyncio +from dataclasses import dataclass, field +from datetime import datetime +from typing import Dict, List, Optional + +from fastapi import WebSocket + + +@dataclass +class VoiceSession: + """Tracks the state of a single voice client connection.""" + + client_id: str + websocket: WebSocket + state: str = "IDLE" # IDLE, LISTENING, PROCESSING, SPEAKING + transcript_buffer: List[str] = field(default_factory=list) + started_at: datetime = field(default_factory=datetime.utcnow) + last_activity: datetime = field(default_factory=datetime.utcnow) + stt_session_id: Optional[str] = None + + def update_activity(self): + """Update the last activity timestamp.""" + self.last_activity = datetime.utcnow() + + +class VoiceConnectionManager: + """Manages active WebSocket connections and their sessions.""" + + def __init__(self): + self.active_connections: Dict[str, VoiceSession] = {} + + async def connect(self, websocket: WebSocket, client_id: str): + """Accept a new WebSocket connection and create a session.""" + await websocket.accept() + session = VoiceSession(client_id=client_id, websocket=websocket) + self.active_connections[client_id] = session + print(f"Client connected: {client_id}") + + def disconnect(self, client_id: str): + """Remove a client session.""" + if client_id in self.active_connections: + del self.active_connections[client_id] + print(f"Client disconnected: {client_id}") + + def get_session(self, client_id: str) -> Optional[VoiceSession]: + """Retrieve a session by client ID.""" + return self.active_connections.get(client_id) + + async def send_message(self, client_id: str, message: dict): + """Send a JSON message to a specific client.""" + session = self.active_connections.get(client_id) + if session: + try: + await session.websocket.send_json(message) + except Exception as e: + print(f"Error sending to {client_id}: {e}") + self.disconnect(client_id) + + async def update_state(self, client_id: str, new_state: str): + """Update the state of a client session and broadcast it.""" + session = self.active_connections.get(client_id) + if session: + session.state = new_state + session.update_activity() + print(f"Client {client_id} state changed to {new_state}") + await self.broadcast({"type": "state", "state": new_state}) + + async def broadcast(self, message: dict): + """Broadcast a message to all connected clients.""" + clients = list(self.active_connections.keys()) + print(f"Broadcasting {message.get('type')} to {len(clients)} clients: {clients}") + for client_id in clients: + await self.send_message(client_id, message) diff --git a/src/backend/static/assets/index-jn8KbIxX.css b/src/backend/static/assets/index-jn8KbIxX.css new file mode 100644 index 00000000..a9dc613e --- /dev/null +++ b/src/backend/static/assets/index-jn8KbIxX.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.bottom-8{bottom:2rem}.left-1\/2{left:50%}.left-12{left:3rem}.right-2{right:.5rem}.top-12{top:3rem}.top-2{top:.5rem}.z-50{z-index:50}.mt-6{margin-top:1.5rem}.flex{display:flex}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-8{width:2rem}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity, 1))}.border-white\/10{border-color:#ffffff1a}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/70{background-color:#000000b3}.bg-current{background-color:currentColor}.bg-cyan-900\/80{background-color:#164e63cc}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/40{background-color:#fff6}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/80{--tw-gradient-from: rgb(0 0 0 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-12{padding:3rem}.p-6{padding:1.5rem}.text-center{text-align:center}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-9xl{font-size:8rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-light{font-weight:300}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/40{color:#fff6}.text-white\/90{color:#ffffffe6}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#121212;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;overflow:hidden}#root{width:100%;height:100vh;margin:0;padding:0;display:flex;flex-direction:column}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media(min-width:768px){.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[10rem\]{font-size:10rem}} diff --git a/src/backend/static/assets/index-qhzVSo28.js b/src/backend/static/assets/index-qhzVSo28.js new file mode 100644 index 00000000..6a46beca --- /dev/null +++ b/src/backend/static/assets/index-qhzVSo28.js @@ -0,0 +1,17 @@ +(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))u(c);new MutationObserver(c=>{for(const h of c)if(h.type==="childList")for(const f of h.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&u(f)}).observe(document,{childList:!0,subtree:!0});function s(c){const h={};return c.integrity&&(h.integrity=c.integrity),c.referrerPolicy&&(h.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?h.credentials="include":c.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function u(c){if(c.ep)return;c.ep=!0;const h=s(c);fetch(c.href,h)}})();function z1(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Po={exports:{}},Tl={};var zy;function N1(){if(zy)return Tl;zy=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function s(u,c,h){var f=null;if(h!==void 0&&(f=""+h),c.key!==void 0&&(f=""+c.key),"key"in c){h={};for(var p in c)p!=="key"&&(h[p]=c[p])}else h=c;return c=h.ref,{$$typeof:a,type:u,key:f,ref:c!==void 0?c:null,props:h}}return Tl.Fragment=i,Tl.jsx=s,Tl.jsxs=s,Tl}var Ny;function V1(){return Ny||(Ny=1,Po.exports=N1()),Po.exports}var st=V1(),Wo={exports:{}},lt={};var Vy;function U1(){if(Vy)return lt;Vy=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),b=Symbol.iterator;function T(M){return M===null||typeof M!="object"?null:(M=b&&M[b]||M["@@iterator"],typeof M=="function"?M:null)}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,N={};function D(M,H,K){this.props=M,this.context=H,this.refs=N,this.updater=K||A}D.prototype.isReactComponent={},D.prototype.setState=function(M,H){if(typeof M!="object"&&typeof M!="function"&&M!=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,M,H,"setState")},D.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function L(){}L.prototype=D.prototype;function Y(M,H,K){this.props=M,this.context=H,this.refs=N,this.updater=K||A}var J=Y.prototype=new L;J.constructor=Y,_(J,D.prototype),J.isPureReactComponent=!0;var q=Array.isArray;function Q(){}var X={H:null,A:null,T:null,S:null},F=Object.prototype.hasOwnProperty;function pt(M,H,K){var k=K.ref;return{$$typeof:a,type:M,key:H,ref:k!==void 0?k:null,props:K}}function wt(M,H){return pt(M.type,H,M.props)}function Ut(M){return typeof M=="object"&&M!==null&&M.$$typeof===a}function xt(M){var H={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(K){return H[K]})}var ae=/\/+/g;function ie(M,H){return typeof M=="object"&&M!==null&&M.key!=null?xt(""+M.key):H.toString(36)}function le(M){switch(M.status){case"fulfilled":return M.value;case"rejected":throw M.reason;default:switch(typeof M.status=="string"?M.then(Q,Q):(M.status="pending",M.then(function(H){M.status==="pending"&&(M.status="fulfilled",M.value=H)},function(H){M.status==="pending"&&(M.status="rejected",M.reason=H)})),M.status){case"fulfilled":return M.value;case"rejected":throw M.reason}}throw M}function V(M,H,K,k,it){var ot=typeof M;(ot==="undefined"||ot==="boolean")&&(M=null);var ht=!1;if(M===null)ht=!0;else switch(ot){case"bigint":case"string":case"number":ht=!0;break;case"object":switch(M.$$typeof){case a:case i:ht=!0;break;case g:return ht=M._init,V(ht(M._payload),H,K,k,it)}}if(ht)return it=it(M),ht=k===""?"."+ie(M,0):k,q(it)?(K="",ht!=null&&(K=ht.replace(ae,"$&/")+"/"),V(it,H,K,"",function(_i){return _i})):it!=null&&(Ut(it)&&(it=wt(it,K+(it.key==null||M&&M.key===it.key?"":(""+it.key).replace(ae,"$&/")+"/")+ht)),H.push(it)),1;ht=0;var Wt=k===""?".":k+":";if(q(M))for(var _t=0;_t>>1,at=V[tt];if(0>>1;ttc(K,W))kc(it,K)?(V[tt]=it,V[k]=W,tt=k):(V[tt]=K,V[H]=W,tt=H);else if(kc(it,W))V[tt]=it,V[k]=W,tt=k;else break t}}return G}function c(V,G){var W=V.sortIndex-G.sortIndex;return W!==0?W:V.id-G.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;a.unstable_now=function(){return h.now()}}else{var f=Date,p=f.now();a.unstable_now=function(){return f.now()-p}}var y=[],m=[],g=1,v=null,b=3,T=!1,A=!1,_=!1,N=!1,D=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,Y=typeof setImmediate<"u"?setImmediate:null;function J(V){for(var G=s(m);G!==null;){if(G.callback===null)u(m);else if(G.startTime<=V)u(m),G.sortIndex=G.expirationTime,i(y,G);else break;G=s(m)}}function q(V){if(_=!1,J(V),!A)if(s(y)!==null)A=!0,Q||(Q=!0,xt());else{var G=s(m);G!==null&&le(q,G.startTime-V)}}var Q=!1,X=-1,F=5,pt=-1;function wt(){return N?!0:!(a.unstable_now()-ptV&&wt());){var tt=v.callback;if(typeof tt=="function"){v.callback=null,b=v.priorityLevel;var at=tt(v.expirationTime<=V);if(V=a.unstable_now(),typeof at=="function"){v.callback=at,J(V),G=!0;break e}v===s(y)&&u(y),J(V)}else u(y);v=s(y)}if(v!==null)G=!0;else{var M=s(m);M!==null&&le(q,M.startTime-V),G=!1}}break t}finally{v=null,b=W,T=!1}G=void 0}}finally{G?xt():Q=!1}}}var xt;if(typeof Y=="function")xt=function(){Y(Ut)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,ie=ae.port2;ae.port1.onmessage=Ut,xt=function(){ie.postMessage(null)}}else xt=function(){D(Ut,0)};function le(V,G){X=D(function(){V(a.unstable_now())},G)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(V){V.callback=null},a.unstable_forceFrameRate=function(V){0>V||125tt?(V.sortIndex=W,i(m,V),s(y)===null&&V===s(m)&&(_?(L(X),X=-1):_=!0,le(q,W-tt))):(V.sortIndex=at,i(y,V),A||T||(A=!0,Q||(Q=!0,xt()))),V},a.unstable_shouldYield=wt,a.unstable_wrapCallback=function(V){var G=b;return function(){var W=b;b=G;try{return V.apply(this,arguments)}finally{b=W}}}})($o)),$o}var jy;function j1(){return jy||(jy=1,Io.exports=L1()),Io.exports}var tc={exports:{}},se={};var By;function B1(){if(By)return se;By=1;var a=Mi();function i(y){var m="https://react.dev/errors/"+y;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),tc.exports=B1(),tc.exports}var Yy;function H1(){if(Yy)return El;Yy=1;var a=j1(),i=Mi(),s=Mg();function u(t){var e="https://react.dev/errors/"+t;if(1at||(t.current=tt[at],tt[at]=null,at--)}function K(t,e){at++,tt[at]=t.current,t.current=e}var k=M(null),it=M(null),ot=M(null),ht=M(null);function Wt(t,e){switch(K(ot,e),K(it,t),K(k,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?ey(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=ey(e),t=ny(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}H(k),K(k,t)}function _t(){H(k),H(it),H(ot)}function _i(t){t.memoizedState!==null&&K(ht,t);var e=k.current,n=ny(e,t.type);e!==n&&(K(it,t),K(k,n))}function Ql(t){it.current===t&&(H(k),H(it)),ht.current===t&&(H(ht),gl._currentValue=W)}var Ru,wf;function na(t){if(Ru===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Ru=e&&e[1]||"",wf=-1)":-1r||E[l]!==R[r]){var U=` +`+E[l].replace(" at new "," at ");return t.displayName&&U.includes("")&&(U=U.replace("",t.displayName)),U}while(1<=l&&0<=r);break}}}finally{wu=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?na(n):""}function o0(t,e){switch(t.tag){case 26:case 27:case 5:return na(t.type);case 16:return na("Lazy");case 13:return t.child!==e&&e!==null?na("Suspense Fallback"):na("Suspense");case 19:return na("SuspenseList");case 0:case 15:return zu(t.type,!1);case 11:return zu(t.type.render,!1);case 1:return zu(t.type,!0);case 31:return na("Activity");default:return""}}function zf(t){try{var e="",n=null;do e+=o0(t,n),n=t,t=t.return;while(t);return e}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Nu=Object.prototype.hasOwnProperty,Vu=a.unstable_scheduleCallback,Uu=a.unstable_cancelCallback,c0=a.unstable_shouldYield,f0=a.unstable_requestPaint,ve=a.unstable_now,h0=a.unstable_getCurrentPriorityLevel,Nf=a.unstable_ImmediatePriority,Vf=a.unstable_UserBlockingPriority,Kl=a.unstable_NormalPriority,d0=a.unstable_LowPriority,Uf=a.unstable_IdlePriority,m0=a.log,y0=a.unstable_setDisableYieldValue,Ci=null,Se=null;function On(t){if(typeof m0=="function"&&y0(t),Se&&typeof Se.setStrictMode=="function")try{Se.setStrictMode(Ci,t)}catch{}}var be=Math.clz32?Math.clz32:v0,p0=Math.log,g0=Math.LN2;function v0(t){return t>>>=0,t===0?32:31-(p0(t)/g0|0)|0}var Zl=256,kl=262144,Jl=4194304;function aa(t){var e=t&42;if(e!==0)return e;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:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;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 Pl(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var r=0,o=t.suspendedLanes,d=t.pingedLanes;t=t.warmLanes;var S=l&134217727;return S!==0?(l=S&~o,l!==0?r=aa(l):(d&=S,d!==0?r=aa(d):n||(n=S&~t,n!==0&&(r=aa(n))))):(S=l&~o,S!==0?r=aa(S):d!==0?r=aa(d):n||(n=l&~t,n!==0&&(r=aa(n)))),r===0?0:e!==0&&e!==r&&(e&o)===0&&(o=r&-r,n=e&-e,o>=n||o===32&&(n&4194048)!==0)?e:r}function Ri(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function S0(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32: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 e+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 Lf(){var t=Jl;return Jl<<=1,(Jl&62914560)===0&&(Jl=4194304),t}function Lu(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function wi(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function b0(t,e,n,l,r,o){var d=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var S=t.entanglements,E=t.expirationTimes,R=t.hiddenUpdates;for(n=d&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var D0=/[\n"\\]/g;function Re(t){return t.replace(D0,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Gu(t,e,n,l,r,o,d,S){t.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?t.type=d:t.removeAttribute("type"),e!=null?d==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Ce(e)):t.value!==""+Ce(e)&&(t.value=""+Ce(e)):d!=="submit"&&d!=="reset"||t.removeAttribute("value"),e!=null?Xu(t,d,Ce(e)):n!=null?Xu(t,d,Ce(n)):l!=null&&t.removeAttribute("value"),r==null&&o!=null&&(t.defaultChecked=!!o),r!=null&&(t.checked=r&&typeof r!="function"&&typeof r!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?t.name=""+Ce(S):t.removeAttribute("name")}function Pf(t,e,n,l,r,o,d,S){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.type=o),e!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||e!=null)){qu(t);return}n=n!=null?""+Ce(n):"",e=e!=null?""+Ce(e):n,S||e===t.value||(t.value=e),t.defaultValue=e}l=l??r,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=S?t.checked:!!l,t.defaultChecked=!!l,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.name=d),qu(t)}function Xu(t,e,n){e==="number"&&Il(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function La(t,e,n,l){if(t=t.options,e){e={};for(var r=0;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ju=!1;if(an)try{var Ui={};Object.defineProperty(Ui,"passive",{get:function(){Ju=!0}}),window.addEventListener("test",Ui,Ui),window.removeEventListener("test",Ui,Ui)}catch{Ju=!1}var xn=null,Pu=null,ts=null;function nh(){if(ts)return ts;var t,e=Pu,n=e.length,l,r="value"in xn?xn.value:xn.textContent,o=r.length;for(t=0;t=Bi),rh=" ",oh=!1;function ch(t,e){switch(t){case"keyup":return tS.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fh(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ya=!1;function nS(t,e){switch(t){case"compositionend":return fh(e);case"keypress":return e.which!==32?null:(oh=!0,rh);case"textInput":return t=e.data,t===rh&&oh?null:t;default:return null}}function aS(t,e){if(Ya)return t==="compositionend"||!tr&&ch(t,e)?(t=nh(),ts=Pu=xn=null,Ya=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=Sh(n)}}function Th(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Th(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Eh(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Il(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Il(t.document)}return e}function ar(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var fS=an&&"documentMode"in document&&11>=document.documentMode,qa=null,ir=null,Gi=null,lr=!1;function Ah(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;lr||qa==null||qa!==Il(l)||(l=qa,"selectionStart"in l&&ar(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Gi&&qi(Gi,l)||(Gi=l,l=ks(ir,"onSelect"),0>=d,r-=d,Je=1<<32-be(e)+r|n<rt?(mt=I,I=null):mt=I.sibling;var vt=w(x,I,C[rt],j);if(vt===null){I===null&&(I=mt);break}t&&I&&vt.alternate===null&&e(x,I),O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt,I=mt}if(rt===C.length)return n(x,I),yt&&sn(x,rt),$;if(I===null){for(;rtrt?(mt=I,I=null):mt=I.sibling;var Pn=w(x,I,vt.value,j);if(Pn===null){I===null&&(I=mt);break}t&&I&&Pn.alternate===null&&e(x,I),O=o(Pn,O,rt),gt===null?$=Pn:gt.sibling=Pn,gt=Pn,I=mt}if(vt.done)return n(x,I),yt&&sn(x,rt),$;if(I===null){for(;!vt.done;rt++,vt=C.next())vt=B(x,vt.value,j),vt!==null&&(O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt);return yt&&sn(x,rt),$}for(I=l(I);!vt.done;rt++,vt=C.next())vt=z(I,x,rt,vt.value,j),vt!==null&&(t&&vt.alternate!==null&&I.delete(vt.key===null?rt:vt.key),O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt);return t&&I.forEach(function(w1){return e(x,w1)}),yt&&sn(x,rt),$}function Ot(x,O,C,j){if(typeof C=="object"&&C!==null&&C.type===_&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case T:t:{for(var $=C.key;O!==null;){if(O.key===$){if($=C.type,$===_){if(O.tag===7){n(x,O.sibling),j=r(O,C.props.children),j.return=x,x=j;break t}}else if(O.elementType===$||typeof $=="object"&&$!==null&&$.$$typeof===F&&ma($)===O.type){n(x,O.sibling),j=r(O,C.props),Ji(j,C),j.return=x,x=j;break t}n(x,O);break}else e(x,O);O=O.sibling}C.type===_?(j=oa(C.props.children,x.mode,j,C.key),j.return=x,x=j):(j=cs(C.type,C.key,C.props,null,x.mode,j),Ji(j,C),j.return=x,x=j)}return d(x);case A:t:{for($=C.key;O!==null;){if(O.key===$)if(O.tag===4&&O.stateNode.containerInfo===C.containerInfo&&O.stateNode.implementation===C.implementation){n(x,O.sibling),j=r(O,C.children||[]),j.return=x,x=j;break t}else{n(x,O);break}else e(x,O);O=O.sibling}j=hr(C,x.mode,j),j.return=x,x=j}return d(x);case F:return C=ma(C),Ot(x,O,C,j)}if(le(C))return P(x,O,C,j);if(xt(C)){if($=xt(C),typeof $!="function")throw Error(u(150));return C=$.call(C),et(x,O,C,j)}if(typeof C.then=="function")return Ot(x,O,gs(C),j);if(C.$$typeof===Y)return Ot(x,O,ds(x,C),j);vs(x,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,O!==null&&O.tag===6?(n(x,O.sibling),j=r(O,C),j.return=x,x=j):(n(x,O),j=fr(C,x.mode,j),j.return=x,x=j),d(x)):n(x,O)}return function(x,O,C,j){try{ki=0;var $=Ot(x,O,C,j);return Ia=null,$}catch(I){if(I===Fa||I===ys)throw I;var gt=Ee(29,I,null,x.mode);return gt.lanes=j,gt.return=x,gt}finally{}}}var pa=Zh(!0),kh=Zh(!1),zn=!1;function Mr(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Or(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Nn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Vn(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(St&2)!==0){var r=l.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),l.pending=e,e=os(t),Rh(t,null,n),e}return rs(t,l,e,n),os(t)}function Pi(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Bf(t,n)}}function Dr(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var r=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?r=o=d:o=o.next=d,n=n.next}while(n!==null);o===null?r=o=e:o=o.next=e}else r=o=e;n={baseState:l.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var xr=!1;function Wi(){if(xr){var t=Wa;if(t!==null)throw t}}function Fi(t,e,n,l){xr=!1;var r=t.updateQueue;zn=!1;var o=r.firstBaseUpdate,d=r.lastBaseUpdate,S=r.shared.pending;if(S!==null){r.shared.pending=null;var E=S,R=E.next;E.next=null,d===null?o=R:d.next=R,d=E;var U=t.alternate;U!==null&&(U=U.updateQueue,S=U.lastBaseUpdate,S!==d&&(S===null?U.firstBaseUpdate=R:S.next=R,U.lastBaseUpdate=E))}if(o!==null){var B=r.baseState;d=0,U=R=E=null,S=o;do{var w=S.lane&-536870913,z=w!==S.lane;if(z?(dt&w)===w:(l&w)===w){w!==0&&w===Pa&&(xr=!0),U!==null&&(U=U.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});t:{var P=t,et=S;w=e;var Ot=n;switch(et.tag){case 1:if(P=et.payload,typeof P=="function"){B=P.call(Ot,B,w);break t}B=P;break t;case 3:P.flags=P.flags&-65537|128;case 0:if(P=et.payload,w=typeof P=="function"?P.call(Ot,B,w):P,w==null)break t;B=v({},B,w);break t;case 2:zn=!0}}w=S.callback,w!==null&&(t.flags|=64,z&&(t.flags|=8192),z=r.callbacks,z===null?r.callbacks=[w]:z.push(w))}else z={lane:w,tag:S.tag,payload:S.payload,callback:S.callback,next:null},U===null?(R=U=z,E=B):U=U.next=z,d|=w;if(S=S.next,S===null){if(S=r.shared.pending,S===null)break;z=S,S=z.next,z.next=null,r.lastBaseUpdate=z,r.shared.pending=null}}while(!0);U===null&&(E=B),r.baseState=E,r.firstBaseUpdate=R,r.lastBaseUpdate=U,o===null&&(r.shared.lanes=0),Hn|=d,t.lanes=d,t.memoizedState=B}}function Jh(t,e){if(typeof t!="function")throw Error(u(191,t));t.call(e)}function Ph(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;to?o:8;var d=V.T,S={};V.T=S,Zr(t,!1,e,n);try{var E=r(),R=V.S;if(R!==null&&R(S,E),E!==null&&typeof E=="object"&&typeof E.then=="function"){var U=bS(E,l);tl(t,e,U,xe(t))}else tl(t,e,l,xe(t))}catch(B){tl(t,e,{then:function(){},status:"rejected",reason:B},xe())}finally{G.p=o,d!==null&&S.types!==null&&(d.types=S.types),V.T=d}}function DS(){}function Qr(t,e,n,l){if(t.tag!==5)throw Error(u(476));var r=xd(t).queue;Dd(t,r,e,W,n===null?DS:function(){return _d(t),n(l)})}function xd(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:W},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function _d(t){var e=xd(t);e.next===null&&(e=t.alternate.memoizedState),tl(t,e.next.queue,{},xe())}function Kr(){return $t(gl)}function Cd(){return Yt().memoizedState}function Rd(){return Yt().memoizedState}function xS(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=xe();t=Nn(n);var l=Vn(e,t,n);l!==null&&(pe(l,e,n),Pi(l,e,n)),e={cache:br()},t.payload=e;return}e=e.return}}function _S(t,e,n){var l=xe();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_s(t)?zd(e,n):(n=or(t,e,n,l),n!==null&&(pe(n,t,l),Nd(n,e,l)))}function wd(t,e,n){var l=xe();tl(t,e,n,l)}function tl(t,e,n,l){var r={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_s(t))zd(e,r);else{var o=t.alternate;if(t.lanes===0&&(o===null||o.lanes===0)&&(o=e.lastRenderedReducer,o!==null))try{var d=e.lastRenderedState,S=o(d,n);if(r.hasEagerState=!0,r.eagerState=S,Te(S,d))return rs(t,e,r,0),Dt===null&&us(),!1}catch{}finally{}if(n=or(t,e,r,l),n!==null)return pe(n,t,l),Nd(n,e,l),!0}return!1}function Zr(t,e,n,l){if(l={lane:2,revertLane:Oo(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},_s(t)){if(e)throw Error(u(479))}else e=or(t,n,l,2),e!==null&&pe(e,t,2)}function _s(t){var e=t.alternate;return t===ut||e!==null&&e===ut}function zd(t,e){ti=Ts=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Nd(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Bf(t,n)}}var el={readContext:$t,use:Ms,useCallback:Lt,useContext:Lt,useEffect:Lt,useImperativeHandle:Lt,useLayoutEffect:Lt,useInsertionEffect:Lt,useMemo:Lt,useReducer:Lt,useRef:Lt,useState:Lt,useDebugValue:Lt,useDeferredValue:Lt,useTransition:Lt,useSyncExternalStore:Lt,useId:Lt,useHostTransitionStatus:Lt,useFormState:Lt,useActionState:Lt,useOptimistic:Lt,useMemoCache:Lt,useCacheRefresh:Lt};el.useEffectEvent=Lt;var Vd={readContext:$t,use:Ms,useCallback:function(t,e){return re().memoizedState=[t,e===void 0?null:e],t},useContext:$t,useEffect:gd,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Ds(4194308,4,Td.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Ds(4194308,4,t,e)},useInsertionEffect:function(t,e){Ds(4,2,t,e)},useMemo:function(t,e){var n=re();e=e===void 0?null:e;var l=t();if(ga){On(!0);try{t()}finally{On(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=re();if(n!==void 0){var r=n(e);if(ga){On(!0);try{n(e)}finally{On(!1)}}}else r=e;return l.memoizedState=l.baseState=r,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:r},l.queue=t,t=t.dispatch=_S.bind(null,ut,t),[l.memoizedState,t]},useRef:function(t){var e=re();return t={current:t},e.memoizedState=t},useState:function(t){t=Hr(t);var e=t.queue,n=wd.bind(null,ut,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:Gr,useDeferredValue:function(t,e){var n=re();return Xr(n,t,e)},useTransition:function(){var t=Hr(!1);return t=Dd.bind(null,ut,t.queue,!0,!1),re().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=ut,r=re();if(yt){if(n===void 0)throw Error(u(407));n=n()}else{if(n=e(),Dt===null)throw Error(u(349));(dt&127)!==0||ed(l,e,n)}r.memoizedState=n;var o={value:n,getSnapshot:e};return r.queue=o,gd(ad.bind(null,l,o,t),[t]),l.flags|=2048,ni(9,{destroy:void 0},nd.bind(null,l,o,n,e),null),n},useId:function(){var t=re(),e=Dt.identifierPrefix;if(yt){var n=Pe,l=Je;n=(l&~(1<<32-be(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=Es++,0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof l.is=="string"?d.createElement("select",{is:l.is}):d.createElement("select"),l.multiple?o.multiple=!0:l.size&&(o.size=l.size);break;default:o=typeof l.is=="string"?d.createElement(r,{is:l.is}):d.createElement(r)}}o[Ft]=e,o[ce]=l;t:for(d=e.child;d!==null;){if(d.tag===5||d.tag===6)o.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break t;for(;d.sibling===null;){if(d.return===null||d.return===e)break t;d=d.return}d.sibling.return=d.return,d=d.sibling}e.stateNode=o;t:switch(ee(o,r,l),r){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break t;case"img":l=!0;break t;default:l=!1}l&&hn(e)}}return Rt(e),so(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&hn(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(u(166));if(t=ot.current,ka(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,r=It,r!==null)switch(r.tag){case 27:case 5:l=r.memoizedProps}t[Ft]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||$m(t.nodeValue,n)),t||Rn(e,!0)}else t=Js(t).createTextNode(l),t[Ft]=e,e.stateNode=t}return Rt(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=ka(e),n!==null){if(t===null){if(!l)throw Error(u(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(u(557));t[Ft]=e}else ca(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Rt(e),t=!1}else n=pr(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(Me(e),e):(Me(e),null);if((e.flags&128)!==0)throw Error(u(558))}return Rt(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(r=ka(e),l!==null&&l.dehydrated!==null){if(t===null){if(!r)throw Error(u(318));if(r=e.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(u(317));r[Ft]=e}else ca(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Rt(e),r=!1}else r=pr(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),r=!0;if(!r)return e.flags&256?(Me(e),e):(Me(e),null)}return Me(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,r=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(r=l.alternate.memoizedState.cachePool.pool),o=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(o=l.memoizedState.cachePool.pool),o!==r&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Ns(e,e.updateQueue),Rt(e),null);case 4:return _t(),t===null&&Co(e.stateNode.containerInfo),Rt(e),null;case 10:return rn(e.type),Rt(e),null;case 19:if(H(Ht),l=e.memoizedState,l===null)return Rt(e),null;if(r=(e.flags&128)!==0,o=l.rendering,o===null)if(r)al(l,!1);else{if(jt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(o=bs(t),o!==null){for(e.flags|=128,al(l,!1),t=o.updateQueue,e.updateQueue=t,Ns(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)wh(n,t),n=n.sibling;return K(Ht,Ht.current&1|2),yt&&sn(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&&ve()>Bs&&(e.flags|=128,r=!0,al(l,!1),e.lanes=4194304)}else{if(!r)if(t=bs(o),t!==null){if(e.flags|=128,r=!0,t=t.updateQueue,e.updateQueue=t,Ns(e,t),al(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!yt)return Rt(e),null}else 2*ve()-l.renderingStartTime>Bs&&n!==536870912&&(e.flags|=128,r=!0,al(l,!1),e.lanes=4194304);l.isBackwards?(o.sibling=e.child,e.child=o):(t=l.last,t!==null?t.sibling=o:e.child=o,l.last=o)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ve(),t.sibling=null,n=Ht.current,K(Ht,r?n&1|2:n&1),yt&&sn(e,l.treeForkCount),t):(Rt(e),null);case 22:case 23:return Me(e),Cr(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(Rt(e),e.subtreeFlags&6&&(e.flags|=8192)):Rt(e),n=e.updateQueue,n!==null&&Ns(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&H(da),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),rn(qt),Rt(e),null;case 25:return null;case 30:return null}throw Error(u(156,e.tag))}function NS(t,e){switch(mr(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return rn(qt),_t(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Ql(e),null;case 31:if(e.memoizedState!==null){if(Me(e),e.alternate===null)throw Error(u(340));ca()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Me(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(u(340));ca()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return H(Ht),null;case 4:return _t(),null;case 10:return rn(e.type),null;case 22:case 23:return Me(e),Cr(),t!==null&&H(da),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return rn(qt),null;case 25:return null;default:return null}}function im(t,e){switch(mr(e),e.tag){case 3:rn(qt),_t();break;case 26:case 27:case 5:Ql(e);break;case 4:_t();break;case 31:e.memoizedState!==null&&Me(e);break;case 13:Me(e);break;case 19:H(Ht);break;case 10:rn(e.type);break;case 22:case 23:Me(e),Cr(),t!==null&&H(da);break;case 24:rn(qt)}}function il(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var r=l.next;n=r;do{if((n.tag&t)===t){l=void 0;var o=n.create,d=n.inst;l=o(),d.destroy=l}n=n.next}while(n!==r)}}catch(S){Tt(e,e.return,S)}}function jn(t,e,n){try{var l=e.updateQueue,r=l!==null?l.lastEffect:null;if(r!==null){var o=r.next;l=o;do{if((l.tag&t)===t){var d=l.inst,S=d.destroy;if(S!==void 0){d.destroy=void 0,r=e;var E=n,R=S;try{R()}catch(U){Tt(r,E,U)}}}l=l.next}while(l!==o)}}catch(U){Tt(e,e.return,U)}}function lm(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{Ph(e,n)}catch(l){Tt(t,t.return,l)}}}function sm(t,e,n){n.props=va(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){Tt(t,e,l)}}function ll(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(r){Tt(t,e,r)}}function We(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(r){Tt(t,e,r)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(r){Tt(t,e,r)}else n.current=null}function um(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break t;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(r){Tt(t,t.return,r)}}function uo(t,e,n){try{var l=t.stateNode;e1(l,t.type,n,e),l[ce]=e}catch(r){Tt(t,t.return,r)}}function rm(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Qn(t.type)||t.tag===4}function ro(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||rm(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Qn(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function oo(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=nn));else if(l!==4&&(l===27&&Qn(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(oo(t,e,n),t=t.sibling;t!==null;)oo(t,e,n),t=t.sibling}function Vs(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&Qn(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(Vs(t,e,n),t=t.sibling;t!==null;)Vs(t,e,n),t=t.sibling}function om(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,r=e.attributes;r.length;)e.removeAttributeNode(r[0]);ee(e,l,n),e[Ft]=t,e[ce]=n}catch(o){Tt(t,t.return,o)}}var dn=!1,Qt=!1,co=!1,cm=typeof WeakSet=="function"?WeakSet:Set,Pt=null;function VS(t,e){if(t=t.containerInfo,zo=eu,t=Eh(t),ar(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else t:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var r=l.anchorOffset,o=l.focusNode;l=l.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break t}var d=0,S=-1,E=-1,R=0,U=0,B=t,w=null;e:for(;;){for(var z;B!==n||r!==0&&B.nodeType!==3||(S=d+r),B!==o||l!==0&&B.nodeType!==3||(E=d+l),B.nodeType===3&&(d+=B.nodeValue.length),(z=B.firstChild)!==null;)w=B,B=z;for(;;){if(B===t)break e;if(w===n&&++R===r&&(S=d),w===o&&++U===l&&(E=d),(z=B.nextSibling)!==null)break;B=w,w=B.parentNode}B=z}n=S===-1||E===-1?null:{start:S,end:E}}else n=null}n=n||{start:0,end:0}}else n=null;for(No={focusedElem:t,selectionRange:n},eu=!1,Pt=e;Pt!==null;)if(e=Pt,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Pt=t;else for(;Pt!==null;){switch(e=Pt,o=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),ee(o,l,n),o[Ft]=t,Jt(o),l=o;break t;case"link":var d=py("link","href",r).get(l+(n.href||""));if(d){for(var S=0;SOt&&(d=Ot,Ot=et,et=d);var x=bh(S,et),O=bh(S,Ot);if(x&&O&&(z.rangeCount!==1||z.anchorNode!==x.node||z.anchorOffset!==x.offset||z.focusNode!==O.node||z.focusOffset!==O.offset)){var C=B.createRange();C.setStart(x.node,x.offset),z.removeAllRanges(),et>Ot?(z.addRange(C),z.extend(O.node,O.offset)):(C.setEnd(O.node,O.offset),z.addRange(C))}}}}for(B=[],z=S;z=z.parentNode;)z.nodeType===1&&B.push({element:z,left:z.scrollLeft,top:z.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;Sn?32:n,V.T=null,n=vo,vo=null;var o=qn,d=vn;if(Zt=0,ui=qn=null,vn=0,(St&6)!==0)throw Error(u(331));var S=St;if(St|=4,Tm(o.current),vm(o,o.current,d,n),St=S,fl(0,!1),Se&&typeof Se.onPostCommitFiberRoot=="function")try{Se.onPostCommitFiberRoot(Ci,o)}catch{}return!0}finally{G.p=r,V.T=l,Hm(t,e)}}function qm(t,e,n){e=ze(n,e),e=Wr(t.stateNode,e,2),t=Vn(t,e,2),t!==null&&(wi(t,2),Fe(t))}function Tt(t,e,n){if(t.tag===3)qm(t,t,n);else for(;e!==null;){if(e.tag===3){qm(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Yn===null||!Yn.has(l))){t=ze(n,t),n=Gd(2),l=Vn(e,n,2),l!==null&&(Xd(n,l,e,t),wi(l,2),Fe(l));break}}e=e.return}}function Eo(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new jS;var r=new Set;l.set(e,r)}else r=l.get(e),r===void 0&&(r=new Set,l.set(e,r));r.has(n)||(mo=!0,r.add(n),t=GS.bind(null,t,e,n),e.then(t,t))}function GS(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,Dt===t&&(dt&n)===n&&(jt===4||jt===3&&(dt&62914560)===dt&&300>ve()-js?(St&2)===0&&ri(t,0):yo|=n,si===dt&&(si=0)),Fe(t)}function Gm(t,e){e===0&&(e=Lf()),t=ra(t,e),t!==null&&(wi(t,e),Fe(t))}function XS(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Gm(t,n)}function QS(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(u(314))}l!==null&&l.delete(e),Gm(t,n)}function KS(t,e){return Vu(t,e)}var Qs=null,ci=null,Ao=!1,Ks=!1,Mo=!1,Xn=0;function Fe(t){t!==ci&&t.next===null&&(ci===null?Qs=ci=t:ci=ci.next=t),Ks=!0,Ao||(Ao=!0,kS())}function fl(t,e){if(!Mo&&Ks){Mo=!0;do for(var n=!1,l=Qs;l!==null;){if(t!==0){var r=l.pendingLanes;if(r===0)var o=0;else{var d=l.suspendedLanes,S=l.pingedLanes;o=(1<<31-be(42|t)+1)-1,o&=r&~(d&~S),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,Zm(l,o))}else o=dt,o=Pl(l,l===Dt?o:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(o&3)===0||Ri(l,o)||(n=!0,Zm(l,o));l=l.next}while(n);Mo=!1}}function ZS(){Xm()}function Xm(){Ks=Ao=!1;var t=0;Xn!==0&&a1()&&(t=Xn);for(var e=ve(),n=null,l=Qs;l!==null;){var r=l.next,o=Qm(l,e);o===0?(l.next=null,n===null?Qs=r:n.next=r,r===null&&(ci=n)):(n=l,(t!==0||(o&3)!==0)&&(Ks=!0)),l=r}Zt!==0&&Zt!==5||fl(t),Xn!==0&&(Xn=0)}function Qm(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,r=t.expirationTimes,o=t.pendingLanes&-62914561;0S)break;var U=E.transferSize,B=E.initiatorType;U&&ty(B)&&(E=E.responseEnd,d+=U*(E"u"?null:document;function hy(t,e,n){var l=fi;if(l&&typeof e=="string"&&e){var r=Re(e);r='link[rel="'+t+'"][href="'+r+'"]',typeof n=="string"&&(r+='[crossorigin="'+n+'"]'),fy.has(r)||(fy.add(r),t={rel:t,crossOrigin:n,href:e},l.querySelector(r)===null&&(e=l.createElement("link"),ee(e,"link",t),Jt(e),l.head.appendChild(e)))}}function h1(t){Sn.D(t),hy("dns-prefetch",t,null)}function d1(t,e){Sn.C(t,e),hy("preconnect",t,e)}function m1(t,e,n){Sn.L(t,e,n);var l=fi;if(l&&t&&e){var r='link[rel="preload"][as="'+Re(e)+'"]';e==="image"&&n&&n.imageSrcSet?(r+='[imagesrcset="'+Re(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(r+='[imagesizes="'+Re(n.imageSizes)+'"]')):r+='[href="'+Re(t)+'"]';var o=r;switch(e){case"style":o=hi(t);break;case"script":o=di(t)}Be.has(o)||(t=v({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),Be.set(o,t),l.querySelector(r)!==null||e==="style"&&l.querySelector(yl(o))||e==="script"&&l.querySelector(pl(o))||(e=l.createElement("link"),ee(e,"link",t),Jt(e),l.head.appendChild(e)))}}function y1(t,e){Sn.m(t,e);var n=fi;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",r='link[rel="modulepreload"][as="'+Re(l)+'"][href="'+Re(t)+'"]',o=r;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=di(t)}if(!Be.has(o)&&(t=v({rel:"modulepreload",href:t},e),Be.set(o,t),n.querySelector(r)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(pl(o)))return}l=n.createElement("link"),ee(l,"link",t),Jt(l),n.head.appendChild(l)}}}function p1(t,e,n){Sn.S(t,e,n);var l=fi;if(l&&t){var r=Va(l).hoistableStyles,o=hi(t);e=e||"default";var d=r.get(o);if(!d){var S={loading:0,preload:null};if(d=l.querySelector(yl(o)))S.loading=5;else{t=v({rel:"stylesheet",href:t,"data-precedence":e},n),(n=Be.get(o))&&Yo(t,n);var E=d=l.createElement("link");Jt(E),ee(E,"link",t),E._p=new Promise(function(R,U){E.onload=R,E.onerror=U}),E.addEventListener("load",function(){S.loading|=1}),E.addEventListener("error",function(){S.loading|=2}),S.loading|=4,Ws(d,e,l)}d={type:"stylesheet",instance:d,count:1,state:S},r.set(o,d)}}}function g1(t,e){Sn.X(t,e);var n=fi;if(n&&t){var l=Va(n).hoistableScripts,r=di(t),o=l.get(r);o||(o=n.querySelector(pl(r)),o||(t=v({src:t,async:!0},e),(e=Be.get(r))&&qo(t,e),o=n.createElement("script"),Jt(o),ee(o,"link",t),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(r,o))}}function v1(t,e){Sn.M(t,e);var n=fi;if(n&&t){var l=Va(n).hoistableScripts,r=di(t),o=l.get(r);o||(o=n.querySelector(pl(r)),o||(t=v({src:t,async:!0,type:"module"},e),(e=Be.get(r))&&qo(t,e),o=n.createElement("script"),Jt(o),ee(o,"link",t),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(r,o))}}function dy(t,e,n,l){var r=(r=ot.current)?Ps(r):null;if(!r)throw Error(u(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=hi(n.href),n=Va(r).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=hi(n.href);var o=Va(r).hoistableStyles,d=o.get(t);if(d||(r=r.ownerDocument||r,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(t,d),(o=r.querySelector(yl(t)))&&!o._p&&(d.instance=o,d.state.loading=5),Be.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Be.set(t,n),o||S1(r,t,n,d.state))),e&&l===null)throw Error(u(528,""));return d}if(e&&l!==null)throw Error(u(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=di(n),n=Va(r).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(u(444,t))}}function hi(t){return'href="'+Re(t)+'"'}function yl(t){return'link[rel="stylesheet"]['+t+"]"}function my(t){return v({},t,{"data-precedence":t.precedence,precedence:null})}function S1(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),ee(e,"link",n),Jt(e),t.head.appendChild(e))}function di(t){return'[src="'+Re(t)+'"]'}function pl(t){return"script[async]"+t}function yy(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+Re(n.href)+'"]');if(l)return e.instance=l,Jt(l),l;var r=v({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),Jt(l),ee(l,"style",r),Ws(l,n.precedence,t),e.instance=l;case"stylesheet":r=hi(n.href);var o=t.querySelector(yl(r));if(o)return e.state.loading|=4,e.instance=o,Jt(o),o;l=my(n),(r=Be.get(r))&&Yo(l,r),o=(t.ownerDocument||t).createElement("link"),Jt(o);var d=o;return d._p=new Promise(function(S,E){d.onload=S,d.onerror=E}),ee(o,"link",l),e.state.loading|=4,Ws(o,n.precedence,t),e.instance=o;case"script":return o=di(n.src),(r=t.querySelector(pl(o)))?(e.instance=r,Jt(r),r):(l=n,(r=Be.get(o))&&(l=v({},n),qo(l,r)),t=t.ownerDocument||t,r=t.createElement("script"),Jt(r),ee(r,"link",l),t.head.appendChild(r),e.instance=r);case"void":return null;default:throw Error(u(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,Ws(l,n.precedence,t));return e.instance}function Ws(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=l.length?l[l.length-1]:null,o=r,d=0;d title"):null)}function b1(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return t=e.disabled,typeof e.precedence=="string"&&t==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function vy(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function T1(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var r=hi(l.href),o=e.querySelector(yl(r));if(o){e=o._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Is.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=o,Jt(o);return}o=e.ownerDocument||e,l=my(l),(r=Be.get(r))&&Yo(l,r),o=o.createElement("link"),Jt(o);var d=o;d._p=new Promise(function(S,E){d.onload=S,d.onerror=E}),ee(o,"link",l),n.instance=o}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Is.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var Go=0;function E1(t,e){return t.stylesheets&&t.count===0&&tu(t,t.stylesheets),0Go?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(r)}}:null}function Is(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tu(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var $s=null;function tu(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,$s=new Map,e.forEach(A1,t),$s=null,Is.call(t))}function A1(t,e){if(!(e.state.loading&4)){var n=$s.get(t);if(n)var l=n.get(null);else{n=new Map,$s.set(t,n);for(var r=t.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Fo.exports=H1(),Fo.exports}var q1=Y1();const Kc=Z.createContext({});function Zc(a){const i=Z.useRef(null);return i.current===null&&(i.current=a()),i.current}const kc=typeof window<"u",Og=kc?Z.useLayoutEffect:Z.useEffect,Ou=Z.createContext(null);function Jc(a,i){a.indexOf(i)===-1&&a.push(i)}function Pc(a,i){const s=a.indexOf(i);s>-1&&a.splice(s,1)}const An=(a,i,s)=>s>i?i:s{};const Mn={},Dg=a=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a);function xg(a){return typeof a=="object"&&a!==null}const _g=a=>/^0[^.\s]+$/u.test(a);function Fc(a){let i;return()=>(i===void 0&&(i=a()),i)}const qe=a=>a,G1=(a,i)=>s=>i(a(s)),Yl=(...a)=>a.reduce(G1),Nl=(a,i,s)=>{const u=i-a;return u===0?1:(s-a)/u};class Ic{constructor(){this.subscriptions=[]}add(i){return Jc(this.subscriptions,i),()=>Pc(this.subscriptions,i)}notify(i,s,u){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](i,s,u);else for(let h=0;ha*1e3,Ye=a=>a/1e3;function Cg(a,i){return i?a*(1e3/i):0}const Rg=(a,i,s)=>(((1-3*s+3*i)*a+(3*s-6*i))*a+3*i)*a,X1=1e-7,Q1=12;function K1(a,i,s,u,c){let h,f,p=0;do f=i+(s-i)/2,h=Rg(f,u,c)-a,h>0?s=f:i=f;while(Math.abs(h)>X1&&++pK1(h,0,1,a,s);return h=>h===0||h===1?h:Rg(c(h),i,u)}const wg=a=>i=>i<=.5?a(2*i)/2:(2-a(2*(1-i)))/2,zg=a=>i=>1-a(1-i),Ng=ql(.33,1.53,.69,.99),$c=zg(Ng),Vg=wg($c),Ug=a=>(a*=2)<1?.5*$c(a):.5*(2-Math.pow(2,-10*(a-1))),tf=a=>1-Math.sin(Math.acos(a)),Lg=zg(tf),jg=wg(tf),Z1=ql(.42,0,1,1),k1=ql(0,0,.58,1),Bg=ql(.42,0,.58,1),J1=a=>Array.isArray(a)&&typeof a[0]!="number",Hg=a=>Array.isArray(a)&&typeof a[0]=="number",P1={linear:qe,easeIn:Z1,easeInOut:Bg,easeOut:k1,circIn:tf,circInOut:jg,circOut:Lg,backIn:$c,backInOut:Vg,backOut:Ng,anticipate:Ug},W1=a=>typeof a=="string",Gy=a=>{if(Hg(a)){Wc(a.length===4);const[i,s,u,c]=a;return ql(i,s,u,c)}else if(W1(a))return P1[a];return a},ru=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function F1(a,i){let s=new Set,u=new Set,c=!1,h=!1;const f=new WeakSet;let p={delta:0,timestamp:0,isProcessing:!1};function y(g){f.has(g)&&(m.schedule(g),a()),g(p)}const m={schedule:(g,v=!1,b=!1)=>{const A=b&&c?s:u;return v&&f.add(g),A.has(g)||A.add(g),g},cancel:g=>{u.delete(g),f.delete(g)},process:g=>{if(p=g,c){h=!0;return}c=!0,[s,u]=[u,s],s.forEach(y),s.clear(),c=!1,h&&(h=!1,m.process(g))}};return m}const I1=40;function Yg(a,i){let s=!1,u=!0;const c={delta:0,timestamp:0,isProcessing:!1},h=()=>s=!0,f=ru.reduce((Y,J)=>(Y[J]=F1(h),Y),{}),{setup:p,read:y,resolveKeyframes:m,preUpdate:g,update:v,preRender:b,render:T,postRender:A}=f,_=()=>{const Y=Mn.useManualTiming?c.timestamp:performance.now();s=!1,Mn.useManualTiming||(c.delta=u?1e3/60:Math.max(Math.min(Y-c.timestamp,I1),1)),c.timestamp=Y,c.isProcessing=!0,p.process(c),y.process(c),m.process(c),g.process(c),v.process(c),b.process(c),T.process(c),A.process(c),c.isProcessing=!1,s&&i&&(u=!1,a(_))},N=()=>{s=!0,u=!0,c.isProcessing||a(_)};return{schedule:ru.reduce((Y,J)=>{const q=f[J];return Y[J]=(Q,X=!1,F=!1)=>(s||N(),q.schedule(Q,X,F)),Y},{}),cancel:Y=>{for(let J=0;J(mu===void 0&&ge.set(ne.isProcessing||Mn.useManualTiming?ne.timestamp:performance.now()),mu),set:a=>{mu=a,queueMicrotask($1)}},qg=a=>i=>typeof i=="string"&&i.startsWith(a),Gg=qg("--"),tb=qg("var(--"),ef=a=>tb(a)?eb.test(a.split("/*")[0].trim()):!1,eb=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Oi={test:a=>typeof a=="number",parse:parseFloat,transform:a=>a},Vl={...Oi,transform:a=>An(0,1,a)},ou={...Oi,default:1},Cl=a=>Math.round(a*1e5)/1e5,nf=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function nb(a){return a==null}const ab=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,af=(a,i)=>s=>!!(typeof s=="string"&&ab.test(s)&&s.startsWith(a)||i&&!nb(s)&&Object.prototype.hasOwnProperty.call(s,i)),Xg=(a,i,s)=>u=>{if(typeof u!="string")return u;const[c,h,f,p]=u.match(nf);return{[a]:parseFloat(c),[i]:parseFloat(h),[s]:parseFloat(f),alpha:p!==void 0?parseFloat(p):1}},ib=a=>An(0,255,a),nc={...Oi,transform:a=>Math.round(ib(a))},xa={test:af("rgb","red"),parse:Xg("red","green","blue"),transform:({red:a,green:i,blue:s,alpha:u=1})=>"rgba("+nc.transform(a)+", "+nc.transform(i)+", "+nc.transform(s)+", "+Cl(Vl.transform(u))+")"};function lb(a){let i="",s="",u="",c="";return a.length>5?(i=a.substring(1,3),s=a.substring(3,5),u=a.substring(5,7),c=a.substring(7,9)):(i=a.substring(1,2),s=a.substring(2,3),u=a.substring(3,4),c=a.substring(4,5),i+=i,s+=s,u+=u,c+=c),{red:parseInt(i,16),green:parseInt(s,16),blue:parseInt(u,16),alpha:c?parseInt(c,16)/255:1}}const Ec={test:af("#"),parse:lb,transform:xa.transform},Gl=a=>({test:i=>typeof i=="string"&&i.endsWith(a)&&i.split(" ").length===1,parse:parseFloat,transform:i=>`${i}${a}`}),Fn=Gl("deg"),$e=Gl("%"),nt=Gl("px"),sb=Gl("vh"),ub=Gl("vw"),Xy={...$e,parse:a=>$e.parse(a)/100,transform:a=>$e.transform(a*100)},pi={test:af("hsl","hue"),parse:Xg("hue","saturation","lightness"),transform:({hue:a,saturation:i,lightness:s,alpha:u=1})=>"hsla("+Math.round(a)+", "+$e.transform(Cl(i))+", "+$e.transform(Cl(s))+", "+Cl(Vl.transform(u))+")"},Kt={test:a=>xa.test(a)||Ec.test(a)||pi.test(a),parse:a=>xa.test(a)?xa.parse(a):pi.test(a)?pi.parse(a):Ec.parse(a),transform:a=>typeof a=="string"?a:a.hasOwnProperty("red")?xa.transform(a):pi.transform(a),getAnimatableNone:a=>{const i=Kt.parse(a);return i.alpha=0,Kt.transform(i)}},rb=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function ob(a){return isNaN(a)&&typeof a=="string"&&(a.match(nf)?.length||0)+(a.match(rb)?.length||0)>0}const Qg="number",Kg="color",cb="var",fb="var(",Qy="${}",hb=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Ul(a){const i=a.toString(),s=[],u={color:[],number:[],var:[]},c=[];let h=0;const p=i.replace(hb,y=>(Kt.test(y)?(u.color.push(h),c.push(Kg),s.push(Kt.parse(y))):y.startsWith(fb)?(u.var.push(h),c.push(cb),s.push(y)):(u.number.push(h),c.push(Qg),s.push(parseFloat(y))),++h,Qy)).split(Qy);return{values:s,split:p,indexes:u,types:c}}function Zg(a){return Ul(a).values}function kg(a){const{split:i,types:s}=Ul(a),u=i.length;return c=>{let h="";for(let f=0;ftypeof a=="number"?0:Kt.test(a)?Kt.getAnimatableNone(a):a;function mb(a){const i=Zg(a);return kg(a)(i.map(db))}const $n={test:ob,parse:Zg,createTransformer:kg,getAnimatableNone:mb};function ac(a,i,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?a+(i-a)*6*s:s<1/2?i:s<2/3?a+(i-a)*(2/3-s)*6:a}function yb({hue:a,saturation:i,lightness:s,alpha:u}){a/=360,i/=100,s/=100;let c=0,h=0,f=0;if(!i)c=h=f=s;else{const p=s<.5?s*(1+i):s+i-s*i,y=2*s-p;c=ac(y,p,a+1/3),h=ac(y,p,a),f=ac(y,p,a-1/3)}return{red:Math.round(c*255),green:Math.round(h*255),blue:Math.round(f*255),alpha:u}}function vu(a,i){return s=>s>0?i:a}const Vt=(a,i,s)=>a+(i-a)*s,ic=(a,i,s)=>{const u=a*a,c=s*(i*i-u)+u;return c<0?0:Math.sqrt(c)},pb=[Ec,xa,pi],gb=a=>pb.find(i=>i.test(a));function Ky(a){const i=gb(a);if(!i)return!1;let s=i.parse(a);return i===pi&&(s=yb(s)),s}const Zy=(a,i)=>{const s=Ky(a),u=Ky(i);if(!s||!u)return vu(a,i);const c={...s};return h=>(c.red=ic(s.red,u.red,h),c.green=ic(s.green,u.green,h),c.blue=ic(s.blue,u.blue,h),c.alpha=Vt(s.alpha,u.alpha,h),xa.transform(c))},Ac=new Set(["none","hidden"]);function vb(a,i){return Ac.has(a)?s=>s<=0?a:i:s=>s>=1?i:a}function Sb(a,i){return s=>Vt(a,i,s)}function lf(a){return typeof a=="number"?Sb:typeof a=="string"?ef(a)?vu:Kt.test(a)?Zy:Eb:Array.isArray(a)?Jg:typeof a=="object"?Kt.test(a)?Zy:bb:vu}function Jg(a,i){const s=[...a],u=s.length,c=a.map((h,f)=>lf(h)(h,i[f]));return h=>{for(let f=0;f{for(const h in u)s[h]=u[h](c);return s}}function Tb(a,i){const s=[],u={color:0,var:0,number:0};for(let c=0;c{const s=$n.createTransformer(i),u=Ul(a),c=Ul(i);return u.indexes.var.length===c.indexes.var.length&&u.indexes.color.length===c.indexes.color.length&&u.indexes.number.length>=c.indexes.number.length?Ac.has(a)&&!c.values.length||Ac.has(i)&&!u.values.length?vb(a,i):Yl(Jg(Tb(u,c),c.values),s):vu(a,i)};function Pg(a,i,s){return typeof a=="number"&&typeof i=="number"&&typeof s=="number"?Vt(a,i,s):lf(a)(a,i)}const Ab=a=>{const i=({timestamp:s})=>a(s);return{start:(s=!0)=>Nt.update(i,s),stop:()=>In(i),now:()=>ne.isProcessing?ne.timestamp:ge.now()}},Wg=(a,i,s=10)=>{let u="";const c=Math.max(Math.round(i/s),2);for(let h=0;h=Su?1/0:i}function Mb(a,i=100,s){const u=s({...a,keyframes:[0,i]}),c=Math.min(sf(u),Su);return{type:"keyframes",ease:h=>u.next(c*h).value/i,duration:Ye(c)}}const Ob=5;function Fg(a,i,s){const u=Math.max(i-Ob,0);return Cg(s-a(u),i-u)}const Bt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},lc=.001;function Db({duration:a=Bt.duration,bounce:i=Bt.bounce,velocity:s=Bt.velocity,mass:u=Bt.mass}){let c,h,f=1-i;f=An(Bt.minDamping,Bt.maxDamping,f),a=An(Bt.minDuration,Bt.maxDuration,Ye(a)),f<1?(c=m=>{const g=m*f,v=g*a,b=g-s,T=Mc(m,f),A=Math.exp(-v);return lc-b/T*A},h=m=>{const v=m*f*a,b=v*s+s,T=Math.pow(f,2)*Math.pow(m,2)*a,A=Math.exp(-v),_=Mc(Math.pow(m,2),f);return(-c(m)+lc>0?-1:1)*((b-T)*A)/_}):(c=m=>{const g=Math.exp(-m*a),v=(m-s)*a+1;return-lc+g*v},h=m=>{const g=Math.exp(-m*a),v=(s-m)*(a*a);return g*v});const p=5/a,y=_b(c,h,p);if(a=Ie(a),isNaN(y))return{stiffness:Bt.stiffness,damping:Bt.damping,duration:a};{const m=Math.pow(y,2)*u;return{stiffness:m,damping:f*2*Math.sqrt(u*m),duration:a}}}const xb=12;function _b(a,i,s){let u=s;for(let c=1;ca[s]!==void 0)}function wb(a){let i={velocity:Bt.velocity,stiffness:Bt.stiffness,damping:Bt.damping,mass:Bt.mass,isResolvedFromDuration:!1,...a};if(!ky(a,Rb)&&ky(a,Cb))if(a.visualDuration){const s=a.visualDuration,u=2*Math.PI/(s*1.2),c=u*u,h=2*An(.05,1,1-(a.bounce||0))*Math.sqrt(c);i={...i,mass:Bt.mass,stiffness:c,damping:h}}else{const s=Db(a);i={...i,...s,mass:Bt.mass},i.isResolvedFromDuration=!0}return i}function bu(a=Bt.visualDuration,i=Bt.bounce){const s=typeof a!="object"?{visualDuration:a,keyframes:[0,1],bounce:i}:a;let{restSpeed:u,restDelta:c}=s;const h=s.keyframes[0],f=s.keyframes[s.keyframes.length-1],p={done:!1,value:h},{stiffness:y,damping:m,mass:g,duration:v,velocity:b,isResolvedFromDuration:T}=wb({...s,velocity:-Ye(s.velocity||0)}),A=b||0,_=m/(2*Math.sqrt(y*g)),N=f-h,D=Ye(Math.sqrt(y/g)),L=Math.abs(N)<5;u||(u=L?Bt.restSpeed.granular:Bt.restSpeed.default),c||(c=L?Bt.restDelta.granular:Bt.restDelta.default);let Y;if(_<1){const q=Mc(D,_);Y=Q=>{const X=Math.exp(-_*D*Q);return f-X*((A+_*D*N)/q*Math.sin(q*Q)+N*Math.cos(q*Q))}}else if(_===1)Y=q=>f-Math.exp(-D*q)*(N+(A+D*N)*q);else{const q=D*Math.sqrt(_*_-1);Y=Q=>{const X=Math.exp(-_*D*Q),F=Math.min(q*Q,300);return f-X*((A+_*D*N)*Math.sinh(F)+q*N*Math.cosh(F))/q}}const J={calculatedDuration:T&&v||null,next:q=>{const Q=Y(q);if(T)p.done=q>=v;else{let X=q===0?A:0;_<1&&(X=q===0?Ie(A):Fg(Y,q,Q));const F=Math.abs(X)<=u,pt=Math.abs(f-Q)<=c;p.done=F&&pt}return p.value=p.done?f:Q,p},toString:()=>{const q=Math.min(sf(J),Su),Q=Wg(X=>J.next(q*X).value,q,30);return q+"ms "+Q},toTransition:()=>{}};return J}bu.applyToOptions=a=>{const i=Mb(a,100,bu);return a.ease=i.ease,a.duration=Ie(i.duration),a.type="keyframes",a};function Oc({keyframes:a,velocity:i=0,power:s=.8,timeConstant:u=325,bounceDamping:c=10,bounceStiffness:h=500,modifyTarget:f,min:p,max:y,restDelta:m=.5,restSpeed:g}){const v=a[0],b={done:!1,value:v},T=F=>p!==void 0&&Fy,A=F=>p===void 0?y:y===void 0||Math.abs(p-F)-_*Math.exp(-F/u),Y=F=>D+L(F),J=F=>{const pt=L(F),wt=Y(F);b.done=Math.abs(pt)<=m,b.value=b.done?D:wt};let q,Q;const X=F=>{T(b.value)&&(q=F,Q=bu({keyframes:[b.value,A(b.value)],velocity:Fg(Y,F,b.value),damping:c,stiffness:h,restDelta:m,restSpeed:g}))};return X(0),{calculatedDuration:null,next:F=>{let pt=!1;return!Q&&q===void 0&&(pt=!0,J(F),X(F)),q!==void 0&&F>=q?Q.next(F-q):(!pt&&J(F),b)}}}function zb(a,i,s){const u=[],c=s||Mn.mix||Pg,h=a.length-1;for(let f=0;fi[0];if(h===2&&i[0]===i[1])return()=>i[1];const f=a[0]===a[1];a[0]>a[h-1]&&(a=[...a].reverse(),i=[...i].reverse());const p=zb(i,u,c),y=p.length,m=g=>{if(f&&g1)for(;vm(An(a[0],a[h-1],g)):m}function Vb(a,i){const s=a[a.length-1];for(let u=1;u<=i;u++){const c=Nl(0,i,u);a.push(Vt(s,1,c))}}function Ub(a){const i=[0];return Vb(i,a.length-1),i}function Lb(a,i){return a.map(s=>s*i)}function jb(a,i){return a.map(()=>i||Bg).splice(0,a.length-1)}function Rl({duration:a=300,keyframes:i,times:s,ease:u="easeInOut"}){const c=J1(u)?u.map(Gy):Gy(u),h={done:!1,value:i[0]},f=Lb(s&&s.length===i.length?s:Ub(i),a),p=Nb(f,i,{ease:Array.isArray(c)?c:jb(i,c)});return{calculatedDuration:a,next:y=>(h.value=p(y),h.done=y>=a,h)}}const Bb=a=>a!==null;function uf(a,{repeat:i,repeatType:s="loop"},u,c=1){const h=a.filter(Bb),p=c<0||i&&s!=="loop"&&i%2===1?0:h.length-1;return!p||u===void 0?h[p]:u}const Hb={decay:Oc,inertia:Oc,tween:Rl,keyframes:Rl,spring:bu};function Ig(a){typeof a.type=="string"&&(a.type=Hb[a.type])}class rf{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(i=>{this.resolve=i})}notifyFinished(){this.resolve()}then(i,s){return this.finished.then(i,s)}}const Yb=a=>a/100;class of extends rf{constructor(i){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:s}=this.options;s&&s.updatedAt!==ge.now()&&this.tick(ge.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=i,this.initAnimation(),this.play(),i.autoplay===!1&&this.pause()}initAnimation(){const{options:i}=this;Ig(i);const{type:s=Rl,repeat:u=0,repeatDelay:c=0,repeatType:h,velocity:f=0}=i;let{keyframes:p}=i;const y=s||Rl;y!==Rl&&typeof p[0]!="number"&&(this.mixKeyframes=Yl(Yb,Pg(p[0],p[1])),p=[0,100]);const m=y({...i,keyframes:p});h==="mirror"&&(this.mirroredGenerator=y({...i,keyframes:[...p].reverse(),velocity:-f})),m.calculatedDuration===null&&(m.calculatedDuration=sf(m));const{calculatedDuration:g}=m;this.calculatedDuration=g,this.resolvedDuration=g+c,this.totalDuration=this.resolvedDuration*(u+1)-c,this.generator=m}updateTime(i){const s=Math.round(i-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=s}tick(i,s=!1){const{generator:u,totalDuration:c,mixKeyframes:h,mirroredGenerator:f,resolvedDuration:p,calculatedDuration:y}=this;if(this.startTime===null)return u.next(0);const{delay:m=0,keyframes:g,repeat:v,repeatType:b,repeatDelay:T,type:A,onUpdate:_,finalKeyframe:N}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,i):this.speed<0&&(this.startTime=Math.min(i-c/this.speed,this.startTime)),s?this.currentTime=i:this.updateTime(i);const D=this.currentTime-m*(this.playbackSpeed>=0?1:-1),L=this.playbackSpeed>=0?D<0:D>c;this.currentTime=Math.max(D,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=c);let Y=this.currentTime,J=u;if(v){const F=Math.min(this.currentTime,c)/p;let pt=Math.floor(F),wt=F%1;!wt&&F>=1&&(wt=1),wt===1&&pt--,pt=Math.min(pt,v+1),!!(pt%2)&&(b==="reverse"?(wt=1-wt,T&&(wt-=T/p)):b==="mirror"&&(J=f)),Y=An(0,1,wt)*p}const q=L?{done:!1,value:g[0]}:J.next(Y);h&&(q.value=h(q.value));let{done:Q}=q;!L&&y!==null&&(Q=this.playbackSpeed>=0?this.currentTime>=c:this.currentTime<=0);const X=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&Q);return X&&A!==Oc&&(q.value=uf(g,this.options,N,this.speed)),_&&_(q.value),X&&this.finish(),q}then(i,s){return this.finished.then(i,s)}get duration(){return Ye(this.calculatedDuration)}get iterationDuration(){const{delay:i=0}=this.options||{};return this.duration+Ye(i)}get time(){return Ye(this.currentTime)}set time(i){i=Ie(i),this.currentTime=i,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=i:this.driver&&(this.startTime=this.driver.now()-i/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(i){this.updateTime(ge.now());const s=this.playbackSpeed!==i;this.playbackSpeed=i,s&&(this.time=Ye(this.currentTime))}play(){if(this.isStopped)return;const{driver:i=Ab,startTime:s}=this.options;this.driver||(this.driver=i(c=>this.tick(c))),this.options.onPlay?.();const u=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=u):this.holdTime!==null?this.startTime=u-this.holdTime:this.startTime||(this.startTime=s??u),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ge.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(i){return this.startTime=0,this.tick(i,!0)}attachTimeline(i){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),i.observe(this)}}function qb(a){for(let i=1;ia*180/Math.PI,Dc=a=>{const i=_a(Math.atan2(a[1],a[0]));return xc(i)},Gb={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:Dc,rotateZ:Dc,skewX:a=>_a(Math.atan(a[1])),skewY:a=>_a(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},xc=a=>(a=a%360,a<0&&(a+=360),a),Jy=Dc,Py=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),Wy=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),Xb={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Py,scaleY:Wy,scale:a=>(Py(a)+Wy(a))/2,rotateX:a=>xc(_a(Math.atan2(a[6],a[5]))),rotateY:a=>xc(_a(Math.atan2(-a[2],a[0]))),rotateZ:Jy,rotate:Jy,skewX:a=>_a(Math.atan(a[4])),skewY:a=>_a(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function _c(a){return a.includes("scale")?1:0}function Cc(a,i){if(!a||a==="none")return _c(i);const s=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let u,c;if(s)u=Xb,c=s;else{const p=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);u=Gb,c=p}if(!c)return _c(i);const h=u[i],f=c[1].split(",").map(Kb);return typeof h=="function"?h(f):f[h]}const Qb=(a,i)=>{const{transform:s="none"}=getComputedStyle(a);return Cc(s,i)};function Kb(a){return parseFloat(a.trim())}const Di=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],xi=new Set(Di),Fy=a=>a===Oi||a===nt,Zb=new Set(["x","y","z"]),kb=Di.filter(a=>!Zb.has(a));function Jb(a){const i=[];return kb.forEach(s=>{const u=a.getValue(s);u!==void 0&&(i.push([s,u.get()]),u.set(s.startsWith("scale")?1:0))}),i}const Ca={width:({x:a},{paddingLeft:i="0",paddingRight:s="0"})=>a.max-a.min-parseFloat(i)-parseFloat(s),height:({y:a},{paddingTop:i="0",paddingBottom:s="0"})=>a.max-a.min-parseFloat(i)-parseFloat(s),top:(a,{top:i})=>parseFloat(i),left:(a,{left:i})=>parseFloat(i),bottom:({y:a},{top:i})=>parseFloat(i)+(a.max-a.min),right:({x:a},{left:i})=>parseFloat(i)+(a.max-a.min),x:(a,{transform:i})=>Cc(i,"x"),y:(a,{transform:i})=>Cc(i,"y")};Ca.translateX=Ca.x;Ca.translateY=Ca.y;const Ra=new Set;let Rc=!1,wc=!1,zc=!1;function $g(){if(wc){const a=Array.from(Ra).filter(u=>u.needsMeasurement),i=new Set(a.map(u=>u.element)),s=new Map;i.forEach(u=>{const c=Jb(u);c.length&&(s.set(u,c),u.render())}),a.forEach(u=>u.measureInitialState()),i.forEach(u=>{u.render();const c=s.get(u);c&&c.forEach(([h,f])=>{u.getValue(h)?.set(f)})}),a.forEach(u=>u.measureEndState()),a.forEach(u=>{u.suspendedScrollY!==void 0&&window.scrollTo(0,u.suspendedScrollY)})}wc=!1,Rc=!1,Ra.forEach(a=>a.complete(zc)),Ra.clear()}function tv(){Ra.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(wc=!0)})}function Pb(){zc=!0,tv(),$g(),zc=!1}class cf{constructor(i,s,u,c,h,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...i],this.onComplete=s,this.name=u,this.motionValue=c,this.element=h,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(Ra.add(this),Rc||(Rc=!0,Nt.read(tv),Nt.resolveKeyframes($g))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:i,name:s,element:u,motionValue:c}=this;if(i[0]===null){const h=c?.get(),f=i[i.length-1];if(h!==void 0)i[0]=h;else if(u&&s){const p=u.readValue(s,f);p!=null&&(i[0]=p)}i[0]===void 0&&(i[0]=f),c&&h===void 0&&c.set(i[0])}qb(i)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(i=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,i),Ra.delete(this)}cancel(){this.state==="scheduled"&&(Ra.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const Wb=a=>a.startsWith("--");function Fb(a,i,s){Wb(i)?a.style.setProperty(i,s):a.style[i]=s}const Ib=Fc(()=>window.ScrollTimeline!==void 0),$b={};function tT(a,i){const s=Fc(a);return()=>$b[i]??s()}const ev=tT(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),_l=([a,i,s,u])=>`cubic-bezier(${a}, ${i}, ${s}, ${u})`,Iy={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:_l([0,.65,.55,1]),circOut:_l([.55,0,1,.45]),backIn:_l([.31,.01,.66,-.59]),backOut:_l([.33,1.53,.69,.99])};function nv(a,i){if(a)return typeof a=="function"?ev()?Wg(a,i):"ease-out":Hg(a)?_l(a):Array.isArray(a)?a.map(s=>nv(s,i)||Iy.easeOut):Iy[a]}function eT(a,i,s,{delay:u=0,duration:c=300,repeat:h=0,repeatType:f="loop",ease:p="easeOut",times:y}={},m=void 0){const g={[i]:s};y&&(g.offset=y);const v=nv(p,c);Array.isArray(v)&&(g.easing=v);const b={delay:u,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:h+1,direction:f==="reverse"?"alternate":"normal"};return m&&(b.pseudoElement=m),a.animate(g,b)}function av(a){return typeof a=="function"&&"applyToOptions"in a}function nT({type:a,...i}){return av(a)&&ev()?a.applyToOptions(i):(i.duration??(i.duration=300),i.ease??(i.ease="easeOut"),i)}class aT extends rf{constructor(i){if(super(),this.finishedTime=null,this.isStopped=!1,!i)return;const{element:s,name:u,keyframes:c,pseudoElement:h,allowFlatten:f=!1,finalKeyframe:p,onComplete:y}=i;this.isPseudoElement=!!h,this.allowFlatten=f,this.options=i,Wc(typeof i.type!="string");const m=nT(i);this.animation=eT(s,u,c,m,h),m.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!h){const g=uf(c,this.options,p,this.speed);this.updateMotionValue?this.updateMotionValue(g):Fb(s,u,g),this.animation.cancel()}y?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:i}=this;i==="idle"||i==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const i=this.animation.effect?.getComputedTiming?.().duration||0;return Ye(Number(i))}get iterationDuration(){const{delay:i=0}=this.options||{};return this.duration+Ye(i)}get time(){return Ye(Number(this.animation.currentTime)||0)}set time(i){this.finishedTime=null,this.animation.currentTime=Ie(i)}get speed(){return this.animation.playbackRate}set speed(i){i<0&&(this.finishedTime=null),this.animation.playbackRate=i}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(i){this.animation.startTime=i}attachTimeline({timeline:i,observe:s}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,i&&Ib()?(this.animation.timeline=i,qe):s(this)}}const iv={anticipate:Ug,backInOut:Vg,circInOut:jg};function iT(a){return a in iv}function lT(a){typeof a.ease=="string"&&iT(a.ease)&&(a.ease=iv[a.ease])}const $y=10;class sT extends aT{constructor(i){lT(i),Ig(i),super(i),i.startTime&&(this.startTime=i.startTime),this.options=i}updateMotionValue(i){const{motionValue:s,onUpdate:u,onComplete:c,element:h,...f}=this.options;if(!s)return;if(i!==void 0){s.set(i);return}const p=new of({...f,autoplay:!1}),y=Ie(this.finishedTime??this.time);s.setWithVelocity(p.sample(y-$y).value,p.sample(y).value,$y),p.stop()}}const tp=(a,i)=>i==="zIndex"?!1:!!(typeof a=="number"||Array.isArray(a)||typeof a=="string"&&($n.test(a)||a==="0")&&!a.startsWith("url("));function uT(a){const i=a[0];if(a.length===1)return!0;for(let s=0;sObject.hasOwnProperty.call(Element.prototype,"animate"));function fT(a){const{motionValue:i,name:s,repeatDelay:u,repeatType:c,damping:h,type:f}=a;if(!(i?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:y,transformTemplate:m}=i.owner.getProps();return cT()&&s&&oT.has(s)&&(s!=="transform"||!m)&&!y&&!u&&c!=="mirror"&&h!==0&&f!=="inertia"}const hT=40;class dT extends rf{constructor({autoplay:i=!0,delay:s=0,type:u="keyframes",repeat:c=0,repeatDelay:h=0,repeatType:f="loop",keyframes:p,name:y,motionValue:m,element:g,...v}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ge.now();const b={autoplay:i,delay:s,type:u,repeat:c,repeatDelay:h,repeatType:f,name:y,motionValue:m,element:g,...v},T=g?.KeyframeResolver||cf;this.keyframeResolver=new T(p,(A,_,N)=>this.onKeyframesResolved(A,_,b,!N),y,m,g),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(i,s,u,c){this.keyframeResolver=void 0;const{name:h,type:f,velocity:p,delay:y,isHandoff:m,onUpdate:g}=u;this.resolvedAt=ge.now(),rT(i,h,f,p)||((Mn.instantAnimations||!y)&&g?.(uf(i,u,s)),i[0]=i[i.length-1],Nc(u),u.repeat=0);const b={startTime:c?this.resolvedAt?this.resolvedAt-this.createdAt>hT?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:s,...u,keyframes:i},T=!m&&fT(b)?new sT({...b,element:b.motionValue.owner.current}):new of(b);T.finished.then(()=>this.notifyFinished()).catch(qe),this.pendingTimeline&&(this.stopTimeline=T.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=T}get finished(){return this._animation?this.animation.finished:this._finished}then(i,s){return this.finished.finally(i).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Pb()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(i){this.animation.time=i}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(i){this.animation.speed=i}get startTime(){return this.animation.startTime}attachTimeline(i){return this._animation?this.stopTimeline=this.animation.attachTimeline(i):this.pendingTimeline=i,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}const mT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function yT(a){const i=mT.exec(a);if(!i)return[,];const[,s,u,c]=i;return[`--${s??u}`,c]}function lv(a,i,s=1){const[u,c]=yT(a);if(!u)return;const h=window.getComputedStyle(i).getPropertyValue(u);if(h){const f=h.trim();return Dg(f)?parseFloat(f):f}return ef(c)?lv(c,i,s+1):c}function ff(a,i){return a?.[i]??a?.default??a}const sv=new Set(["width","height","top","left","right","bottom",...Di]),pT={test:a=>a==="auto",parse:a=>a},uv=a=>i=>i.test(a),rv=[Oi,nt,$e,Fn,ub,sb,pT],ep=a=>rv.find(uv(a));function gT(a){return typeof a=="number"?a===0:a!==null?a==="none"||a==="0"||_g(a):!0}const vT=new Set(["brightness","contrast","saturate","opacity"]);function ST(a){const[i,s]=a.slice(0,-1).split("(");if(i==="drop-shadow")return a;const[u]=s.match(nf)||[];if(!u)return a;const c=s.replace(u,"");let h=vT.has(i)?1:0;return u!==s&&(h*=100),i+"("+h+c+")"}const bT=/\b([a-z-]*)\(.*?\)/gu,Vc={...$n,getAnimatableNone:a=>{const i=a.match(bT);return i?i.map(ST).join(" "):a}},np={...Oi,transform:Math.round},TT={rotate:Fn,rotateX:Fn,rotateY:Fn,rotateZ:Fn,scale:ou,scaleX:ou,scaleY:ou,scaleZ:ou,skew:Fn,skewX:Fn,skewY:Fn,distance:nt,translateX:nt,translateY:nt,translateZ:nt,x:nt,y:nt,z:nt,perspective:nt,transformPerspective:nt,opacity:Vl,originX:Xy,originY:Xy,originZ:nt},hf={borderWidth:nt,borderTopWidth:nt,borderRightWidth:nt,borderBottomWidth:nt,borderLeftWidth:nt,borderRadius:nt,radius:nt,borderTopLeftRadius:nt,borderTopRightRadius:nt,borderBottomRightRadius:nt,borderBottomLeftRadius:nt,width:nt,maxWidth:nt,height:nt,maxHeight:nt,top:nt,right:nt,bottom:nt,left:nt,padding:nt,paddingTop:nt,paddingRight:nt,paddingBottom:nt,paddingLeft:nt,margin:nt,marginTop:nt,marginRight:nt,marginBottom:nt,marginLeft:nt,backgroundPositionX:nt,backgroundPositionY:nt,...TT,zIndex:np,fillOpacity:Vl,strokeOpacity:Vl,numOctaves:np},ET={...hf,color:Kt,backgroundColor:Kt,outlineColor:Kt,fill:Kt,stroke:Kt,borderColor:Kt,borderTopColor:Kt,borderRightColor:Kt,borderBottomColor:Kt,borderLeftColor:Kt,filter:Vc,WebkitFilter:Vc},ov=a=>ET[a];function cv(a,i){let s=ov(a);return s!==Vc&&(s=$n),s.getAnimatableNone?s.getAnimatableNone(i):void 0}const AT=new Set(["auto","none","0"]);function MT(a,i,s){let u=0,c;for(;u{i.getValue(p).set(y)}),this.resolveNoneKeyframes()}}function DT(a,i,s){if(a instanceof EventTarget)return[a];if(typeof a=="string"){let u=document;const c=s?.[a]??u.querySelectorAll(a);return c?Array.from(c):[]}return Array.from(a)}const fv=(a,i)=>i&&typeof a=="number"?i.transform(a):a;function hv(a){return xg(a)&&"offsetHeight"in a}const ap=30,xT=a=>!isNaN(parseFloat(a));class _T{constructor(i,s={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=u=>{const c=ge.now();if(this.updatedAt!==c&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(u),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const h of this.dependents)h.dirty()},this.hasAnimated=!1,this.setCurrent(i),this.owner=s.owner}setCurrent(i){this.current=i,this.updatedAt=ge.now(),this.canTrackVelocity===null&&i!==void 0&&(this.canTrackVelocity=xT(this.current))}setPrevFrameValue(i=this.current){this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt}onChange(i){return this.on("change",i)}on(i,s){this.events[i]||(this.events[i]=new Ic);const u=this.events[i].add(s);return i==="change"?()=>{u(),Nt.read(()=>{this.events.change.getSize()||this.stop()})}:u}clearListeners(){for(const i in this.events)this.events[i].clear()}attach(i,s){this.passiveEffect=i,this.stopPassiveEffect=s}set(i){this.passiveEffect?this.passiveEffect(i,this.updateAndNotify):this.updateAndNotify(i)}setWithVelocity(i,s,u){this.set(s),this.prev=void 0,this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt-u}jump(i,s=!0){this.updateAndNotify(i),this.prev=i,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(i){this.dependents||(this.dependents=new Set),this.dependents.add(i)}removeDependent(i){this.dependents&&this.dependents.delete(i)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const i=ge.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||i-this.updatedAt>ap)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,ap);return Cg(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(i){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=i(s),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ei(a,i){return new _T(a,i)}const{schedule:df}=Yg(queueMicrotask,!1),Ze={x:!1,y:!1};function dv(){return Ze.x||Ze.y}function CT(a){return a==="x"||a==="y"?Ze[a]?null:(Ze[a]=!0,()=>{Ze[a]=!1}):Ze.x||Ze.y?null:(Ze.x=Ze.y=!0,()=>{Ze.x=Ze.y=!1})}function mv(a,i){const s=DT(a),u=new AbortController,c={passive:!0,...i,signal:u.signal};return[s,c,()=>u.abort()]}function ip(a){return!(a.pointerType==="touch"||dv())}function RT(a,i,s={}){const[u,c,h]=mv(a,s),f=p=>{if(!ip(p))return;const{target:y}=p,m=i(y,p);if(typeof m!="function"||!y)return;const g=v=>{ip(v)&&(m(v),y.removeEventListener("pointerleave",g))};y.addEventListener("pointerleave",g,c)};return u.forEach(p=>{p.addEventListener("pointerenter",f,c)}),h}const yv=(a,i)=>i?a===i?!0:yv(a,i.parentElement):!1,mf=a=>a.pointerType==="mouse"?typeof a.button!="number"||a.button<=0:a.isPrimary!==!1,wT=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function zT(a){return wT.has(a.tagName)||a.tabIndex!==-1}const yu=new WeakSet;function lp(a){return i=>{i.key==="Enter"&&a(i)}}function sc(a,i){a.dispatchEvent(new PointerEvent("pointer"+i,{isPrimary:!0,bubbles:!0}))}const NT=(a,i)=>{const s=a.currentTarget;if(!s)return;const u=lp(()=>{if(yu.has(s))return;sc(s,"down");const c=lp(()=>{sc(s,"up")}),h=()=>sc(s,"cancel");s.addEventListener("keyup",c,i),s.addEventListener("blur",h,i)});s.addEventListener("keydown",u,i),s.addEventListener("blur",()=>s.removeEventListener("keydown",u),i)};function sp(a){return mf(a)&&!dv()}function VT(a,i,s={}){const[u,c,h]=mv(a,s),f=p=>{const y=p.currentTarget;if(!sp(p))return;yu.add(y);const m=i(y,p),g=(T,A)=>{window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",b),yu.has(y)&&yu.delete(y),sp(T)&&typeof m=="function"&&m(T,{success:A})},v=T=>{g(T,y===window||y===document||s.useGlobalTarget||yv(y,T.target))},b=T=>{g(T,!1)};window.addEventListener("pointerup",v,c),window.addEventListener("pointercancel",b,c)};return u.forEach(p=>{(s.useGlobalTarget?window:p).addEventListener("pointerdown",f,c),hv(p)&&(p.addEventListener("focus",m=>NT(m,c)),!zT(p)&&!p.hasAttribute("tabindex")&&(p.tabIndex=0))}),h}function pv(a){return xg(a)&&"ownerSVGElement"in a}function UT(a){return pv(a)&&a.tagName==="svg"}const ue=a=>!!(a&&a.getVelocity),LT=[...rv,Kt,$n],jT=a=>LT.find(uv(a)),yf=Z.createContext({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function up(a,i){if(typeof a=="function")return a(i);a!=null&&(a.current=i)}function BT(...a){return i=>{let s=!1;const u=a.map(c=>{const h=up(c,i);return!s&&typeof h=="function"&&(s=!0),h});if(s)return()=>{for(let c=0;c{const{width:m,height:g,top:v,left:b,right:T}=f.current;if(i||!h.current||!m||!g)return;const A=s==="left"?`left: ${b}`:`right: ${T}`;h.current.dataset.motionPopId=c;const _=document.createElement("style");p&&(_.nonce=p);const N=u??document.head;return N.appendChild(_),_.sheet&&_.sheet.insertRule(` + [data-motion-pop-id="${c}"] { + position: absolute !important; + width: ${m}px !important; + height: ${g}px !important; + ${A}px !important; + top: ${v}px !important; + } + `),()=>{N.contains(_)&&N.removeChild(_)}},[i]),st.jsx(YT,{isPresent:i,childRef:h,sizeRef:f,children:Z.cloneElement(a,{ref:y})})}const GT=({children:a,initial:i,isPresent:s,onExitComplete:u,custom:c,presenceAffectsLayout:h,mode:f,anchorX:p,root:y})=>{const m=Zc(XT),g=Z.useId();let v=!0,b=Z.useMemo(()=>(v=!1,{id:g,initial:i,isPresent:s,custom:c,onExitComplete:T=>{m.set(T,!0);for(const A of m.values())if(!A)return;u&&u()},register:T=>(m.set(T,!1),()=>m.delete(T))}),[s,m,u]);return h&&v&&(b={...b}),Z.useMemo(()=>{m.forEach((T,A)=>m.set(A,!1))},[s]),Z.useEffect(()=>{!s&&!m.size&&u&&u()},[s]),f==="popLayout"&&(a=st.jsx(qT,{isPresent:s,anchorX:p,root:y,children:a})),st.jsx(Ou.Provider,{value:b,children:a})};function XT(){return new Map}function gv(a=!0){const i=Z.useContext(Ou);if(i===null)return[!0,null];const{isPresent:s,onExitComplete:u,register:c}=i,h=Z.useId();Z.useEffect(()=>{if(a)return c(h)},[a]);const f=Z.useCallback(()=>a&&u&&u(h),[h,u,a]);return!s&&u?[!1,f]:[!0]}const cu=a=>a.key||"";function rp(a){const i=[];return Z.Children.forEach(a,s=>{Z.isValidElement(s)&&i.push(s)}),i}const pf=({children:a,custom:i,initial:s=!0,onExitComplete:u,presenceAffectsLayout:c=!0,mode:h="sync",propagate:f=!1,anchorX:p="left",root:y})=>{const[m,g]=gv(f),v=Z.useMemo(()=>rp(a),[a]),b=f&&!m?[]:v.map(cu),T=Z.useRef(!0),A=Z.useRef(v),_=Zc(()=>new Map),[N,D]=Z.useState(v),[L,Y]=Z.useState(v);Og(()=>{T.current=!1,A.current=v;for(let Q=0;Q{const X=cu(Q),F=f&&!m?!1:v===L||b.includes(X),pt=()=>{if(_.has(X))_.set(X,!0);else return;let wt=!0;_.forEach(Ut=>{Ut||(wt=!1)}),wt&&(q?.(),Y(A.current),f&&g?.(),u&&u())};return st.jsx(GT,{isPresent:F,initial:!T.current||s?void 0:!1,custom:i,presenceAffectsLayout:c,mode:h,root:y,onExitComplete:F?void 0:pt,anchorX:p,children:Q},X)})})},vv=Z.createContext({strict:!1}),op={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Ai={};for(const a in op)Ai[a]={isEnabled:i=>op[a].some(s=>!!i[s])};function QT(a){for(const i in a)Ai[i]={...Ai[i],...a[i]}}const KT=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Tu(a){return a.startsWith("while")||a.startsWith("drag")&&a!=="draggable"||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||KT.has(a)}let Sv=a=>!Tu(a);function ZT(a){typeof a=="function"&&(Sv=i=>i.startsWith("on")?!Tu(i):a(i))}try{ZT(require("@emotion/is-prop-valid").default)}catch{}function kT(a,i,s){const u={};for(const c in a)c==="values"&&typeof a.values=="object"||(Sv(c)||s===!0&&Tu(c)||!i&&!Tu(c)||a.draggable&&c.startsWith("onDrag"))&&(u[c]=a[c]);return u}const Du=Z.createContext({});function xu(a){return a!==null&&typeof a=="object"&&typeof a.start=="function"}function Ll(a){return typeof a=="string"||Array.isArray(a)}const gf=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],vf=["initial",...gf];function _u(a){return xu(a.animate)||vf.some(i=>Ll(a[i]))}function bv(a){return!!(_u(a)||a.variants)}function JT(a,i){if(_u(a)){const{initial:s,animate:u}=a;return{initial:s===!1||Ll(s)?s:void 0,animate:Ll(u)?u:void 0}}return a.inherit!==!1?i:{}}function PT(a){const{initial:i,animate:s}=JT(a,Z.useContext(Du));return Z.useMemo(()=>({initial:i,animate:s}),[cp(i),cp(s)])}function cp(a){return Array.isArray(a)?a.join(" "):a}function fp(a,i){return i.max===i.min?0:a/(i.max-i.min)*100}const Al={correct:(a,i)=>{if(!i.target)return a;if(typeof a=="string")if(nt.test(a))a=parseFloat(a);else return a;const s=fp(a,i.target.x),u=fp(a,i.target.y);return`${s}% ${u}%`}},WT={correct:(a,{treeScale:i,projectionDelta:s})=>{const u=a,c=$n.parse(a);if(c.length>5)return u;const h=$n.createTransformer(a),f=typeof c[0]!="number"?1:0,p=s.x.scale*i.x,y=s.y.scale*i.y;c[0+f]/=p,c[1+f]/=y;const m=Vt(p,y,.5);return typeof c[2+f]=="number"&&(c[2+f]/=m),typeof c[3+f]=="number"&&(c[3+f]/=m),h(c)}},Uc={borderRadius:{...Al,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Al,borderTopRightRadius:Al,borderBottomLeftRadius:Al,borderBottomRightRadius:Al,boxShadow:WT};function Tv(a,{layout:i,layoutId:s}){return xi.has(a)||a.startsWith("origin")||(i||s!==void 0)&&(!!Uc[a]||a==="opacity")}const FT={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},IT=Di.length;function $T(a,i,s){let u="",c=!0;for(let h=0;h({style:{},transform:{},transformOrigin:{},vars:{}});function Ev(a,i,s){for(const u in i)!ue(i[u])&&!Tv(u,s)&&(a[u]=i[u])}function tE({transformTemplate:a},i){return Z.useMemo(()=>{const s=bf();return Sf(s,i,a),Object.assign({},s.vars,s.style)},[i])}function eE(a,i){const s=a.style||{},u={};return Ev(u,s,a),Object.assign(u,tE(a,i)),u}function nE(a,i){const s={},u=eE(a,i);return a.drag&&a.dragListener!==!1&&(s.draggable=!1,u.userSelect=u.WebkitUserSelect=u.WebkitTouchCallout="none",u.touchAction=a.drag===!0?"none":`pan-${a.drag==="x"?"y":"x"}`),a.tabIndex===void 0&&(a.onTap||a.onTapStart||a.whileTap)&&(s.tabIndex=0),s.style=u,s}const aE={offset:"stroke-dashoffset",array:"stroke-dasharray"},iE={offset:"strokeDashoffset",array:"strokeDasharray"};function lE(a,i,s=1,u=0,c=!0){a.pathLength=1;const h=c?aE:iE;a[h.offset]=nt.transform(-u);const f=nt.transform(i),p=nt.transform(s);a[h.array]=`${f} ${p}`}function Av(a,{attrX:i,attrY:s,attrScale:u,pathLength:c,pathSpacing:h=1,pathOffset:f=0,...p},y,m,g){if(Sf(a,p,m),y){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};const{attrs:v,style:b}=a;v.transform&&(b.transform=v.transform,delete v.transform),(b.transform||v.transformOrigin)&&(b.transformOrigin=v.transformOrigin??"50% 50%",delete v.transformOrigin),b.transform&&(b.transformBox=g?.transformBox??"fill-box",delete v.transformBox),i!==void 0&&(v.x=i),s!==void 0&&(v.y=s),u!==void 0&&(v.scale=u),c!==void 0&&lE(v,c,h,f,!1)}const Mv=()=>({...bf(),attrs:{}}),Ov=a=>typeof a=="string"&&a.toLowerCase()==="svg";function sE(a,i,s,u){const c=Z.useMemo(()=>{const h=Mv();return Av(h,i,Ov(u),a.transformTemplate,a.style),{...h.attrs,style:{...h.style}}},[i]);if(a.style){const h={};Ev(h,a.style,a),c.style={...h,...c.style}}return c}const uE=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Tf(a){return typeof a!="string"||a.includes("-")?!1:!!(uE.indexOf(a)>-1||/[A-Z]/u.test(a))}function rE(a,i,s,{latestValues:u},c,h=!1){const p=(Tf(a)?sE:nE)(i,u,c,a),y=kT(i,typeof a=="string",h),m=a!==Z.Fragment?{...y,...p,ref:s}:{},{children:g}=i,v=Z.useMemo(()=>ue(g)?g.get():g,[g]);return Z.createElement(a,{...m,children:v})}function hp(a){const i=[{},{}];return a?.values.forEach((s,u)=>{i[0][u]=s.get(),i[1][u]=s.getVelocity()}),i}function Ef(a,i,s,u){if(typeof i=="function"){const[c,h]=hp(u);i=i(s!==void 0?s:a.custom,c,h)}if(typeof i=="string"&&(i=a.variants&&a.variants[i]),typeof i=="function"){const[c,h]=hp(u);i=i(s!==void 0?s:a.custom,c,h)}return i}function pu(a){return ue(a)?a.get():a}function oE({scrapeMotionValuesFromProps:a,createRenderState:i},s,u,c){return{latestValues:cE(s,u,c,a),renderState:i()}}function cE(a,i,s,u){const c={},h=u(a,{});for(const b in h)c[b]=pu(h[b]);let{initial:f,animate:p}=a;const y=_u(a),m=bv(a);i&&m&&!y&&a.inherit!==!1&&(f===void 0&&(f=i.initial),p===void 0&&(p=i.animate));let g=s?s.initial===!1:!1;g=g||f===!1;const v=g?p:f;if(v&&typeof v!="boolean"&&!xu(v)){const b=Array.isArray(v)?v:[v];for(let T=0;T(i,s)=>{const u=Z.useContext(Du),c=Z.useContext(Ou),h=()=>oE(a,i,u,c);return s?h():Zc(h)};function Af(a,i,s){const{style:u}=a,c={};for(const h in u)(ue(u[h])||i.style&&ue(i.style[h])||Tv(h,a)||s?.getValue(h)?.liveStyle!==void 0)&&(c[h]=u[h]);return c}const fE=Dv({scrapeMotionValuesFromProps:Af,createRenderState:bf});function xv(a,i,s){const u=Af(a,i,s);for(const c in a)if(ue(a[c])||ue(i[c])){const h=Di.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;u[h]=a[c]}return u}const hE=Dv({scrapeMotionValuesFromProps:xv,createRenderState:Mv}),dE=Symbol.for("motionComponentSymbol");function gi(a){return a&&typeof a=="object"&&Object.prototype.hasOwnProperty.call(a,"current")}function mE(a,i,s){return Z.useCallback(u=>{u&&a.onMount&&a.onMount(u),i&&(u?i.mount(u):i.unmount()),s&&(typeof s=="function"?s(u):gi(s)&&(s.current=u))},[i])}const Mf=a=>a.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),yE="framerAppearId",_v="data-"+Mf(yE),Cv=Z.createContext({});function pE(a,i,s,u,c){const{visualElement:h}=Z.useContext(Du),f=Z.useContext(vv),p=Z.useContext(Ou),y=Z.useContext(yf).reducedMotion,m=Z.useRef(null);u=u||f.renderer,!m.current&&u&&(m.current=u(a,{visualState:i,parent:h,props:s,presenceContext:p,blockInitialAnimation:p?p.initial===!1:!1,reducedMotionConfig:y}));const g=m.current,v=Z.useContext(Cv);g&&!g.projection&&c&&(g.type==="html"||g.type==="svg")&&gE(m.current,s,c,v);const b=Z.useRef(!1);Z.useInsertionEffect(()=>{g&&b.current&&g.update(s,p)});const T=s[_v],A=Z.useRef(!!T&&!window.MotionHandoffIsComplete?.(T)&&window.MotionHasOptimisedAnimation?.(T));return Og(()=>{g&&(b.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),g.scheduleRenderMicrotask(),A.current&&g.animationState&&g.animationState.animateChanges())}),Z.useEffect(()=>{g&&(!A.current&&g.animationState&&g.animationState.animateChanges(),A.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(T)}),A.current=!1),g.enteringChildren=void 0)}),g}function gE(a,i,s,u){const{layoutId:c,layout:h,drag:f,dragConstraints:p,layoutScroll:y,layoutRoot:m,layoutCrossfade:g}=i;a.projection=new s(a.latestValues,i["data-framer-portal-id"]?void 0:Rv(a.parent)),a.projection.setOptions({layoutId:c,layout:h,alwaysMeasureLayout:!!f||p&&gi(p),visualElement:a,animationType:typeof h=="string"?h:"both",initialPromotionConfig:u,crossfade:g,layoutScroll:y,layoutRoot:m})}function Rv(a){if(a)return a.options.allowProjection!==!1?a.projection:Rv(a.parent)}function uc(a,{forwardMotionProps:i=!1}={},s,u){s&&QT(s);const c=Tf(a)?hE:fE;function h(p,y){let m;const g={...Z.useContext(yf),...p,layoutId:vE(p)},{isStatic:v}=g,b=PT(p),T=c(p,v);if(!v&&kc){SE();const A=bE(g);m=A.MeasureLayout,b.visualElement=pE(a,T,g,u,A.ProjectionNode)}return st.jsxs(Du.Provider,{value:b,children:[m&&b.visualElement?st.jsx(m,{visualElement:b.visualElement,...g}):null,rE(a,p,mE(T,b.visualElement,y),T,v,i)]})}h.displayName=`motion.${typeof a=="string"?a:`create(${a.displayName??a.name??""})`}`;const f=Z.forwardRef(h);return f[dE]=a,f}function vE({layoutId:a}){const i=Z.useContext(Kc).id;return i&&a!==void 0?i+"-"+a:a}function SE(a,i){Z.useContext(vv).strict}function bE(a){const{drag:i,layout:s}=Ai;if(!i&&!s)return{};const u={...i,...s};return{MeasureLayout:i?.isEnabled(a)||s?.isEnabled(a)?u.MeasureLayout:void 0,ProjectionNode:u.ProjectionNode}}function TE(a,i){if(typeof Proxy>"u")return uc;const s=new Map,u=(h,f)=>uc(h,f,a,i),c=(h,f)=>u(h,f);return new Proxy(c,{get:(h,f)=>f==="create"?u:(s.has(f)||s.set(f,uc(f,void 0,a,i)),s.get(f))})}function wv({top:a,left:i,right:s,bottom:u}){return{x:{min:i,max:s},y:{min:a,max:u}}}function EE({x:a,y:i}){return{top:i.min,right:a.max,bottom:i.max,left:a.min}}function AE(a,i){if(!i)return a;const s=i({x:a.left,y:a.top}),u=i({x:a.right,y:a.bottom});return{top:s.y,left:s.x,bottom:u.y,right:u.x}}function rc(a){return a===void 0||a===1}function Lc({scale:a,scaleX:i,scaleY:s}){return!rc(a)||!rc(i)||!rc(s)}function Oa(a){return Lc(a)||zv(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function zv(a){return dp(a.x)||dp(a.y)}function dp(a){return a&&a!=="0%"}function Eu(a,i,s){const u=a-s,c=i*u;return s+c}function mp(a,i,s,u,c){return c!==void 0&&(a=Eu(a,c,u)),Eu(a,s,u)+i}function jc(a,i=0,s=1,u,c){a.min=mp(a.min,i,s,u,c),a.max=mp(a.max,i,s,u,c)}function Nv(a,{x:i,y:s}){jc(a.x,i.translate,i.scale,i.originPoint),jc(a.y,s.translate,s.scale,s.originPoint)}const yp=.999999999999,pp=1.0000000000001;function ME(a,i,s,u=!1){const c=s.length;if(!c)return;i.x=i.y=1;let h,f;for(let p=0;pyp&&(i.x=1),i.yyp&&(i.y=1)}function vi(a,i){a.min=a.min+i,a.max=a.max+i}function gp(a,i,s,u,c=.5){const h=Vt(a.min,a.max,c);jc(a,i,s,h,u)}function Si(a,i){gp(a.x,i.x,i.scaleX,i.scale,i.originX),gp(a.y,i.y,i.scaleY,i.scale,i.originY)}function Vv(a,i){return wv(AE(a.getBoundingClientRect(),i))}function OE(a,i,s){const u=Vv(a,s),{scroll:c}=i;return c&&(vi(u.x,c.offset.x),vi(u.y,c.offset.y)),u}const vp=()=>({translate:0,scale:1,origin:0,originPoint:0}),bi=()=>({x:vp(),y:vp()}),Sp=()=>({min:0,max:0}),kt=()=>({x:Sp(),y:Sp()}),Bc={current:null},Uv={current:!1};function DE(){if(Uv.current=!0,!!kc)if(window.matchMedia){const a=window.matchMedia("(prefers-reduced-motion)"),i=()=>Bc.current=a.matches;a.addEventListener("change",i),i()}else Bc.current=!1}const xE=new WeakMap;function _E(a,i,s){for(const u in i){const c=i[u],h=s[u];if(ue(c))a.addValue(u,c);else if(ue(h))a.addValue(u,Ei(c,{owner:a}));else if(h!==c)if(a.hasValue(u)){const f=a.getValue(u);f.liveStyle===!0?f.jump(c):f.hasAnimated||f.set(c)}else{const f=a.getStaticValue(u);a.addValue(u,Ei(f!==void 0?f:c,{owner:a}))}}for(const u in s)i[u]===void 0&&a.removeValue(u);return i}const bp=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class CE{scrapeMotionValuesFromProps(i,s,u){return{}}constructor({parent:i,props:s,presenceContext:u,reducedMotionConfig:c,blockInitialAnimation:h,visualState:f},p={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=cf,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const b=ge.now();this.renderScheduledAtthis.bindToMotionValue(u,s)),Uv.current||DE(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Bc.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),In(this.notifyUpdate),In(this.render),this.valueSubscriptions.forEach(i=>i()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const i in this.events)this.events[i].clear();for(const i in this.features){const s=this.features[i];s&&(s.unmount(),s.isMounted=!1)}this.current=null}addChild(i){this.children.add(i),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(i)}removeChild(i){this.children.delete(i),this.enteringChildren&&this.enteringChildren.delete(i)}bindToMotionValue(i,s){this.valueSubscriptions.has(i)&&this.valueSubscriptions.get(i)();const u=xi.has(i);u&&this.onBindTransform&&this.onBindTransform();const c=s.on("change",f=>{this.latestValues[i]=f,this.props.onUpdate&&Nt.preRender(this.notifyUpdate),u&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let h;window.MotionCheckAppearSync&&(h=window.MotionCheckAppearSync(this,i,s)),this.valueSubscriptions.set(i,()=>{c(),h&&h(),s.owner&&s.stop()})}sortNodePosition(i){return!this.current||!this.sortInstanceNodePosition||this.type!==i.type?0:this.sortInstanceNodePosition(this.current,i.current)}updateFeatures(){let i="animation";for(i in Ai){const s=Ai[i];if(!s)continue;const{isEnabled:u,Feature:c}=s;if(!this.features[i]&&c&&u(this.props)&&(this.features[i]=new c(this)),this.features[i]){const h=this.features[i];h.isMounted?h.update():(h.mount(),h.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):kt()}getStaticValue(i){return this.latestValues[i]}setStaticValue(i,s){this.latestValues[i]=s}update(i,s){(i.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=i,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let u=0;us.variantChildren.delete(i)}addValue(i,s){const u=this.values.get(i);s!==u&&(u&&this.removeValue(i),this.bindToMotionValue(i,s),this.values.set(i,s),this.latestValues[i]=s.get())}removeValue(i){this.values.delete(i);const s=this.valueSubscriptions.get(i);s&&(s(),this.valueSubscriptions.delete(i)),delete this.latestValues[i],this.removeValueFromRenderState(i,this.renderState)}hasValue(i){return this.values.has(i)}getValue(i,s){if(this.props.values&&this.props.values[i])return this.props.values[i];let u=this.values.get(i);return u===void 0&&s!==void 0&&(u=Ei(s===null?void 0:s,{owner:this}),this.addValue(i,u)),u}readValue(i,s){let u=this.latestValues[i]!==void 0||!this.current?this.latestValues[i]:this.getBaseTargetFromProps(this.props,i)??this.readValueFromInstance(this.current,i,this.options);return u!=null&&(typeof u=="string"&&(Dg(u)||_g(u))?u=parseFloat(u):!jT(u)&&$n.test(s)&&(u=cv(i,s)),this.setBaseTarget(i,ue(u)?u.get():u)),ue(u)?u.get():u}setBaseTarget(i,s){this.baseTarget[i]=s}getBaseTarget(i){const{initial:s}=this.props;let u;if(typeof s=="string"||typeof s=="object"){const h=Ef(this.props,s,this.presenceContext?.custom);h&&(u=h[i])}if(s&&u!==void 0)return u;const c=this.getBaseTargetFromProps(this.props,i);return c!==void 0&&!ue(c)?c:this.initialValues[i]!==void 0&&u===void 0?void 0:this.baseTarget[i]}on(i,s){return this.events[i]||(this.events[i]=new Ic),this.events[i].add(s)}notify(i,...s){this.events[i]&&this.events[i].notify(...s)}scheduleRenderMicrotask(){df.render(this.render)}}class Lv extends CE{constructor(){super(...arguments),this.KeyframeResolver=OT}sortInstanceNodePosition(i,s){return i.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(i,s){return i.style?i.style[s]:void 0}removeValueFromRenderState(i,{vars:s,style:u}){delete s[i],delete u[i]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:i}=this.props;ue(i)&&(this.childSubscription=i.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}}function jv(a,{style:i,vars:s},u,c){const h=a.style;let f;for(f in i)h[f]=i[f];c?.applyProjectionStyles(h,u);for(f in s)h.setProperty(f,s[f])}function RE(a){return window.getComputedStyle(a)}class wE extends Lv{constructor(){super(...arguments),this.type="html",this.renderInstance=jv}readValueFromInstance(i,s){if(xi.has(s))return this.projection?.isProjecting?_c(s):Qb(i,s);{const u=RE(i),c=(Gg(s)?u.getPropertyValue(s):u[s])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(i,{transformPagePoint:s}){return Vv(i,s)}build(i,s,u){Sf(i,s,u.transformTemplate)}scrapeMotionValuesFromProps(i,s,u){return Af(i,s,u)}}const Bv=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function zE(a,i,s,u){jv(a,i,void 0,u);for(const c in i.attrs)a.setAttribute(Bv.has(c)?c:Mf(c),i.attrs[c])}class NE extends Lv{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=kt}getBaseTargetFromProps(i,s){return i[s]}readValueFromInstance(i,s){if(xi.has(s)){const u=ov(s);return u&&u.default||0}return s=Bv.has(s)?s:Mf(s),i.getAttribute(s)}scrapeMotionValuesFromProps(i,s,u){return xv(i,s,u)}build(i,s,u){Av(i,s,this.isSVGTag,u.transformTemplate,u.style)}renderInstance(i,s,u,c){zE(i,s,u,c)}mount(i){this.isSVGTag=Ov(i.tagName),super.mount(i)}}const VE=(a,i)=>Tf(a)?new NE(i):new wE(i,{allowProjection:a!==Z.Fragment});function Ti(a,i,s){const u=a.getProps();return Ef(u,i,s!==void 0?s:u.custom,a)}const Hc=a=>Array.isArray(a);function UE(a,i,s){a.hasValue(i)?a.getValue(i).set(s):a.addValue(i,Ei(s))}function LE(a){return Hc(a)?a[a.length-1]||0:a}function jE(a,i){const s=Ti(a,i);let{transitionEnd:u={},transition:c={},...h}=s||{};h={...h,...u};for(const f in h){const p=LE(h[f]);UE(a,f,p)}}function BE(a){return!!(ue(a)&&a.add)}function Yc(a,i){const s=a.getValue("willChange");if(BE(s))return s.add(i);if(!s&&Mn.WillChange){const u=new Mn.WillChange("auto");a.addValue("willChange",u),u.add(i)}}function Hv(a){return a.props[_v]}const HE=a=>a!==null;function YE(a,{repeat:i,repeatType:s="loop"},u){const c=a.filter(HE),h=i&&s!=="loop"&&i%2===1?0:c.length-1;return c[h]}const qE={type:"spring",stiffness:500,damping:25,restSpeed:10},GE=a=>({type:"spring",stiffness:550,damping:a===0?2*Math.sqrt(550):30,restSpeed:10}),XE={type:"keyframes",duration:.8},QE={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},KE=(a,{keyframes:i})=>i.length>2?XE:xi.has(a)?a.startsWith("scale")?GE(i[1]):qE:QE;function ZE({when:a,delay:i,delayChildren:s,staggerChildren:u,staggerDirection:c,repeat:h,repeatType:f,repeatDelay:p,from:y,elapsed:m,...g}){return!!Object.keys(g).length}const Of=(a,i,s,u={},c,h)=>f=>{const p=ff(u,a)||{},y=p.delay||u.delay||0;let{elapsed:m=0}=u;m=m-Ie(y);const g={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:i.getVelocity(),...p,delay:-m,onUpdate:b=>{i.set(b),p.onUpdate&&p.onUpdate(b)},onComplete:()=>{f(),p.onComplete&&p.onComplete()},name:a,motionValue:i,element:h?void 0:c};ZE(p)||Object.assign(g,KE(a,g)),g.duration&&(g.duration=Ie(g.duration)),g.repeatDelay&&(g.repeatDelay=Ie(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let v=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(Nc(g),g.delay===0&&(v=!0)),(Mn.instantAnimations||Mn.skipAnimations)&&(v=!0,Nc(g),g.delay=0),g.allowFlatten=!p.type&&!p.ease,v&&!h&&i.get()!==void 0){const b=YE(g.keyframes,p);if(b!==void 0){Nt.update(()=>{g.onUpdate(b),g.onComplete()});return}}return p.isSync?new of(g):new dT(g)};function kE({protectedKeys:a,needsAnimating:i},s){const u=a.hasOwnProperty(s)&&i[s]!==!0;return i[s]=!1,u}function Yv(a,i,{delay:s=0,transitionOverride:u,type:c}={}){let{transition:h=a.getDefaultTransition(),transitionEnd:f,...p}=i;u&&(h=u);const y=[],m=c&&a.animationState&&a.animationState.getState()[c];for(const g in p){const v=a.getValue(g,a.latestValues[g]??null),b=p[g];if(b===void 0||m&&kE(m,g))continue;const T={delay:s,...ff(h||{},g)},A=v.get();if(A!==void 0&&!v.isAnimating&&!Array.isArray(b)&&b===A&&!T.velocity)continue;let _=!1;if(window.MotionHandoffAnimation){const D=Hv(a);if(D){const L=window.MotionHandoffAnimation(D,g,Nt);L!==null&&(T.startTime=L,_=!0)}}Yc(a,g),v.start(Of(g,v,b,a.shouldReduceMotion&&sv.has(g)?{type:!1}:T,a,_));const N=v.animation;N&&y.push(N)}return f&&Promise.all(y).then(()=>{Nt.update(()=>{f&&jE(a,f)})}),y}function qv(a,i,s,u=0,c=1){const h=Array.from(a).sort((m,g)=>m.sortNodePosition(g)).indexOf(i),f=a.size,p=(f-1)*u;return typeof s=="function"?s(h,f):c===1?h*u:p-h*u}function qc(a,i,s={}){const u=Ti(a,i,s.type==="exit"?a.presenceContext?.custom:void 0);let{transition:c=a.getDefaultTransition()||{}}=u||{};s.transitionOverride&&(c=s.transitionOverride);const h=u?()=>Promise.all(Yv(a,u,s)):()=>Promise.resolve(),f=a.variantChildren&&a.variantChildren.size?(y=0)=>{const{delayChildren:m=0,staggerChildren:g,staggerDirection:v}=c;return JE(a,i,y,m,g,v,s)}:()=>Promise.resolve(),{when:p}=c;if(p){const[y,m]=p==="beforeChildren"?[h,f]:[f,h];return y().then(()=>m())}else return Promise.all([h(),f(s.delay)])}function JE(a,i,s=0,u=0,c=0,h=1,f){const p=[];for(const y of a.variantChildren)y.notify("AnimationStart",i),p.push(qc(y,i,{...f,delay:s+(typeof u=="function"?0:u)+qv(a.variantChildren,y,u,c,h)}).then(()=>y.notify("AnimationComplete",i)));return Promise.all(p)}function PE(a,i,s={}){a.notify("AnimationStart",i);let u;if(Array.isArray(i)){const c=i.map(h=>qc(a,h,s));u=Promise.all(c)}else if(typeof i=="string")u=qc(a,i,s);else{const c=typeof i=="function"?Ti(a,i,s.custom):i;u=Promise.all(Yv(a,c,s))}return u.then(()=>{a.notify("AnimationComplete",i)})}function Gv(a,i){if(!Array.isArray(i))return!1;const s=i.length;if(s!==a.length)return!1;for(let u=0;uPromise.all(i.map(({animation:s,options:u})=>PE(a,s,u)))}function tA(a){let i=$E(a),s=Tp(),u=!0;const c=y=>(m,g)=>{const v=Ti(a,g,y==="exit"?a.presenceContext?.custom:void 0);if(v){const{transition:b,transitionEnd:T,...A}=v;m={...m,...A,...T}}return m};function h(y){i=y(a)}function f(y){const{props:m}=a,g=Xv(a.parent)||{},v=[],b=new Set;let T={},A=1/0;for(let N=0;NA&&J,pt=!1;const wt=Array.isArray(Y)?Y:[Y];let Ut=wt.reduce(c(D),{});q===!1&&(Ut={});const{prevResolvedValues:xt={}}=L,ae={...xt,...Ut},ie=G=>{F=!0,b.has(G)&&(pt=!0,b.delete(G)),L.needsAnimating[G]=!0;const W=a.getValue(G);W&&(W.liveStyle=!1)};for(const G in ae){const W=Ut[G],tt=xt[G];if(T.hasOwnProperty(G))continue;let at=!1;Hc(W)&&Hc(tt)?at=!Gv(W,tt):at=W!==tt,at?W!=null?ie(G):b.add(G):W!==void 0&&b.has(G)?ie(G):L.protectedKeys[G]=!0}L.prevProp=Y,L.prevResolvedValues=Ut,L.isActive&&(T={...T,...Ut}),u&&a.blockInitialAnimation&&(F=!1);const le=Q&&X;F&&(!le||pt)&&v.push(...wt.map(G=>{const W={type:D};if(typeof G=="string"&&u&&!le&&a.manuallyAnimateOnMount&&a.parent){const{parent:tt}=a,at=Ti(tt,G);if(tt.enteringChildren&&at){const{delayChildren:M}=at.transition||{};W.delay=qv(tt.enteringChildren,a,M)}}return{animation:G,options:W}}))}if(b.size){const N={};if(typeof m.initial!="boolean"){const D=Ti(a,Array.isArray(m.initial)?m.initial[0]:m.initial);D&&D.transition&&(N.transition=D.transition)}b.forEach(D=>{const L=a.getBaseTarget(D),Y=a.getValue(D);Y&&(Y.liveStyle=!0),N[D]=L??null}),v.push({animation:N})}let _=!!v.length;return u&&(m.initial===!1||m.initial===m.animate)&&!a.manuallyAnimateOnMount&&(_=!1),u=!1,_?i(v):Promise.resolve()}function p(y,m){if(s[y].isActive===m)return Promise.resolve();a.variantChildren?.forEach(v=>v.animationState?.setActive(y,m)),s[y].isActive=m;const g=f(y);for(const v in s)s[v].protectedKeys={};return g}return{animateChanges:f,setActive:p,setAnimateFunction:h,getState:()=>s,reset:()=>{s=Tp()}}}function eA(a,i){return typeof i=="string"?i!==a:Array.isArray(i)?!Gv(i,a):!1}function Ta(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Tp(){return{animate:Ta(!0),whileInView:Ta(),whileHover:Ta(),whileTap:Ta(),whileDrag:Ta(),whileFocus:Ta(),exit:Ta()}}class ea{constructor(i){this.isMounted=!1,this.node=i}update(){}}class nA extends ea{constructor(i){super(i),i.animationState||(i.animationState=tA(i))}updateAnimationControlsSubscription(){const{animate:i}=this.node.getProps();xu(i)&&(this.unmountControls=i.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:i}=this.node.getProps(),{animate:s}=this.node.prevProps||{};i!==s&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let aA=0;class iA extends ea{constructor(){super(...arguments),this.id=aA++}update(){if(!this.node.presenceContext)return;const{isPresent:i,onExitComplete:s}=this.node.presenceContext,{isPresent:u}=this.node.prevPresenceContext||{};if(!this.node.animationState||i===u)return;const c=this.node.animationState.setActive("exit",!i);s&&!i&&c.then(()=>{s(this.id)})}mount(){const{register:i,onExitComplete:s}=this.node.presenceContext||{};s&&s(this.id),i&&(this.unmount=i(this.id))}unmount(){}}const lA={animation:{Feature:nA},exit:{Feature:iA}};function jl(a,i,s,u={passive:!0}){return a.addEventListener(i,s,u),()=>a.removeEventListener(i,s)}function Xl(a){return{point:{x:a.pageX,y:a.pageY}}}const sA=a=>i=>mf(i)&&a(i,Xl(i));function wl(a,i,s,u){return jl(a,i,sA(s),u)}const Qv=1e-4,uA=1-Qv,rA=1+Qv,Kv=.01,oA=0-Kv,cA=0+Kv;function oe(a){return a.max-a.min}function fA(a,i,s){return Math.abs(a-i)<=s}function Ep(a,i,s,u=.5){a.origin=u,a.originPoint=Vt(i.min,i.max,a.origin),a.scale=oe(s)/oe(i),a.translate=Vt(s.min,s.max,a.origin)-a.originPoint,(a.scale>=uA&&a.scale<=rA||isNaN(a.scale))&&(a.scale=1),(a.translate>=oA&&a.translate<=cA||isNaN(a.translate))&&(a.translate=0)}function zl(a,i,s,u){Ep(a.x,i.x,s.x,u?u.originX:void 0),Ep(a.y,i.y,s.y,u?u.originY:void 0)}function Ap(a,i,s){a.min=s.min+i.min,a.max=a.min+oe(i)}function hA(a,i,s){Ap(a.x,i.x,s.x),Ap(a.y,i.y,s.y)}function Mp(a,i,s){a.min=i.min-s.min,a.max=a.min+oe(i)}function Au(a,i,s){Mp(a.x,i.x,s.x),Mp(a.y,i.y,s.y)}function He(a){return[a("x"),a("y")]}const Zv=({current:a})=>a?a.ownerDocument.defaultView:null,Op=(a,i)=>Math.abs(a-i);function dA(a,i){const s=Op(a.x,i.x),u=Op(a.y,i.y);return Math.sqrt(s**2+u**2)}class kv{constructor(i,s,{transformPagePoint:u,contextWindow:c=window,dragSnapToOrigin:h=!1,distanceThreshold:f=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=cc(this.lastMoveEventInfo,this.history),T=this.startEvent!==null,A=dA(b.offset,{x:0,y:0})>=this.distanceThreshold;if(!T&&!A)return;const{point:_}=b,{timestamp:N}=ne;this.history.push({..._,timestamp:N});const{onStart:D,onMove:L}=this.handlers;T||(D&&D(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),L&&L(this.lastMoveEvent,b)},this.handlePointerMove=(b,T)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=oc(T,this.transformPagePoint),Nt.update(this.updatePoint,!0)},this.handlePointerUp=(b,T)=>{this.end();const{onEnd:A,onSessionEnd:_,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const D=cc(b.type==="pointercancel"?this.lastMoveEventInfo:oc(T,this.transformPagePoint),this.history);this.startEvent&&A&&A(b,D),_&&_(b,D)},!mf(i))return;this.dragSnapToOrigin=h,this.handlers=s,this.transformPagePoint=u,this.distanceThreshold=f,this.contextWindow=c||window;const p=Xl(i),y=oc(p,this.transformPagePoint),{point:m}=y,{timestamp:g}=ne;this.history=[{...m,timestamp:g}];const{onSessionStart:v}=s;v&&v(i,cc(y,this.history)),this.removeListeners=Yl(wl(this.contextWindow,"pointermove",this.handlePointerMove),wl(this.contextWindow,"pointerup",this.handlePointerUp),wl(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(i){this.handlers=i}end(){this.removeListeners&&this.removeListeners(),In(this.updatePoint)}}function oc(a,i){return i?{point:i(a.point)}:a}function Dp(a,i){return{x:a.x-i.x,y:a.y-i.y}}function cc({point:a},i){return{point:a,delta:Dp(a,Jv(i)),offset:Dp(a,mA(i)),velocity:yA(i,.1)}}function mA(a){return a[0]}function Jv(a){return a[a.length-1]}function yA(a,i){if(a.length<2)return{x:0,y:0};let s=a.length-1,u=null;const c=Jv(a);for(;s>=0&&(u=a[s],!(c.timestamp-u.timestamp>Ie(i)));)s--;if(!u)return{x:0,y:0};const h=Ye(c.timestamp-u.timestamp);if(h===0)return{x:0,y:0};const f={x:(c.x-u.x)/h,y:(c.y-u.y)/h};return f.x===1/0&&(f.x=0),f.y===1/0&&(f.y=0),f}function pA(a,{min:i,max:s},u){return i!==void 0&&as&&(a=u?Vt(s,a,u.max):Math.min(a,s)),a}function xp(a,i,s){return{min:i!==void 0?a.min+i:void 0,max:s!==void 0?a.max+s-(a.max-a.min):void 0}}function gA(a,{top:i,left:s,bottom:u,right:c}){return{x:xp(a.x,s,c),y:xp(a.y,i,u)}}function _p(a,i){let s=i.min-a.min,u=i.max-a.max;return i.max-i.minu?s=Nl(i.min,i.max-u,a.min):u>c&&(s=Nl(a.min,a.max-c,i.min)),An(0,1,s)}function bA(a,i){const s={};return i.min!==void 0&&(s.min=i.min-a.min),i.max!==void 0&&(s.max=i.max-a.min),s}const Gc=.35;function TA(a=Gc){return a===!1?a=0:a===!0&&(a=Gc),{x:Cp(a,"left","right"),y:Cp(a,"top","bottom")}}function Cp(a,i,s){return{min:Rp(a,i),max:Rp(a,s)}}function Rp(a,i){return typeof a=="number"?a:a[i]||0}const EA=new WeakMap;class AA{constructor(i){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=kt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=i}start(i,{snapToCursor:s=!1,distanceThreshold:u}={}){const{presenceContext:c}=this.visualElement;if(c&&c.isPresent===!1)return;const h=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),s&&this.snapToCursor(Xl(v).point)},f=(v,b)=>{const{drag:T,dragPropagation:A,onDragStart:_}=this.getProps();if(T&&!A&&(this.openDragLock&&this.openDragLock(),this.openDragLock=CT(T),!this.openDragLock))return;this.latestPointerEvent=v,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),He(D=>{let L=this.getAxisMotionValue(D).get()||0;if($e.test(L)){const{projection:Y}=this.visualElement;if(Y&&Y.layout){const J=Y.layout.layoutBox[D];J&&(L=oe(J)*(parseFloat(L)/100))}}this.originPoint[D]=L}),_&&Nt.postRender(()=>_(v,b)),Yc(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},p=(v,b)=>{this.latestPointerEvent=v,this.latestPanInfo=b;const{dragPropagation:T,dragDirectionLock:A,onDirectionLock:_,onDrag:N}=this.getProps();if(!T&&!this.openDragLock)return;const{offset:D}=b;if(A&&this.currentDirection===null){this.currentDirection=MA(D),this.currentDirection!==null&&_&&_(this.currentDirection);return}this.updateAxis("x",b.point,D),this.updateAxis("y",b.point,D),this.visualElement.render(),N&&N(v,b)},y=(v,b)=>{this.latestPointerEvent=v,this.latestPanInfo=b,this.stop(v,b),this.latestPointerEvent=null,this.latestPanInfo=null},m=()=>He(v=>this.getAnimationState(v)==="paused"&&this.getAxisMotionValue(v).animation?.play()),{dragSnapToOrigin:g}=this.getProps();this.panSession=new kv(i,{onSessionStart:h,onStart:f,onMove:p,onSessionEnd:y,resumeAnimation:m},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,distanceThreshold:u,contextWindow:Zv(this.visualElement)})}stop(i,s){const u=i||this.latestPointerEvent,c=s||this.latestPanInfo,h=this.isDragging;if(this.cancel(),!h||!c||!u)return;const{velocity:f}=c;this.startAnimation(f);const{onDragEnd:p}=this.getProps();p&&Nt.postRender(()=>p(u,c))}cancel(){this.isDragging=!1;const{projection:i,animationState:s}=this.visualElement;i&&(i.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:u}=this.getProps();!u&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}updateAxis(i,s,u){const{drag:c}=this.getProps();if(!u||!fu(i,c,this.currentDirection))return;const h=this.getAxisMotionValue(i);let f=this.originPoint[i]+u[i];this.constraints&&this.constraints[i]&&(f=pA(f,this.constraints[i],this.elastic[i])),h.set(f)}resolveConstraints(){const{dragConstraints:i,dragElastic:s}=this.getProps(),u=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,c=this.constraints;i&&gi(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&u?this.constraints=gA(u.layoutBox,i):this.constraints=!1,this.elastic=TA(s),c!==this.constraints&&u&&this.constraints&&!this.hasMutatedConstraints&&He(h=>{this.constraints!==!1&&this.getAxisMotionValue(h)&&(this.constraints[h]=bA(u.layoutBox[h],this.constraints[h]))})}resolveRefConstraints(){const{dragConstraints:i,onMeasureDragConstraints:s}=this.getProps();if(!i||!gi(i))return!1;const u=i.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const h=OE(u,c.root,this.visualElement.getTransformPagePoint());let f=vA(c.layout.layoutBox,h);if(s){const p=s(EE(f));this.hasMutatedConstraints=!!p,p&&(f=wv(p))}return f}startAnimation(i){const{drag:s,dragMomentum:u,dragElastic:c,dragTransition:h,dragSnapToOrigin:f,onDragTransitionEnd:p}=this.getProps(),y=this.constraints||{},m=He(g=>{if(!fu(g,s,this.currentDirection))return;let v=y&&y[g]||{};f&&(v={min:0,max:0});const b=c?200:1e6,T=c?40:1e7,A={type:"inertia",velocity:u?i[g]:0,bounceStiffness:b,bounceDamping:T,timeConstant:750,restDelta:1,restSpeed:10,...h,...v};return this.startAxisValueAnimation(g,A)});return Promise.all(m).then(p)}startAxisValueAnimation(i,s){const u=this.getAxisMotionValue(i);return Yc(this.visualElement,i),u.start(Of(i,u,0,s,this.visualElement,!1))}stopAnimation(){He(i=>this.getAxisMotionValue(i).stop())}pauseAnimation(){He(i=>this.getAxisMotionValue(i).animation?.pause())}getAnimationState(i){return this.getAxisMotionValue(i).animation?.state}getAxisMotionValue(i){const s=`_drag${i.toUpperCase()}`,u=this.visualElement.getProps(),c=u[s];return c||this.visualElement.getValue(i,(u.initial?u.initial[i]:void 0)||0)}snapToCursor(i){He(s=>{const{drag:u}=this.getProps();if(!fu(s,u,this.currentDirection))return;const{projection:c}=this.visualElement,h=this.getAxisMotionValue(s);if(c&&c.layout){const{min:f,max:p}=c.layout.layoutBox[s];h.set(i[s]-Vt(f,p,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:i,dragConstraints:s}=this.getProps(),{projection:u}=this.visualElement;if(!gi(s)||!u||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};He(f=>{const p=this.getAxisMotionValue(f);if(p&&this.constraints!==!1){const y=p.get();c[f]=SA({min:y,max:y},this.constraints[f])}});const{transformTemplate:h}=this.visualElement.getProps();this.visualElement.current.style.transform=h?h({},""):"none",u.root&&u.root.updateScroll(),u.updateLayout(),this.resolveConstraints(),He(f=>{if(!fu(f,i,null))return;const p=this.getAxisMotionValue(f),{min:y,max:m}=this.constraints[f];p.set(Vt(y,m,c[f]))})}addListeners(){if(!this.visualElement.current)return;EA.set(this.visualElement,this);const i=this.visualElement.current,s=wl(i,"pointerdown",y=>{const{drag:m,dragListener:g=!0}=this.getProps();m&&g&&this.start(y)}),u=()=>{const{dragConstraints:y}=this.getProps();gi(y)&&y.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,h=c.addEventListener("measure",u);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),Nt.read(u);const f=jl(window,"resize",()=>this.scalePositionWithinConstraints()),p=c.addEventListener("didUpdate",(({delta:y,hasLayoutChanged:m})=>{this.isDragging&&m&&(He(g=>{const v=this.getAxisMotionValue(g);v&&(this.originPoint[g]+=y[g].translate,v.set(v.get()+y[g].translate))}),this.visualElement.render())}));return()=>{f(),s(),h(),p&&p()}}getProps(){const i=this.visualElement.getProps(),{drag:s=!1,dragDirectionLock:u=!1,dragPropagation:c=!1,dragConstraints:h=!1,dragElastic:f=Gc,dragMomentum:p=!0}=i;return{...i,drag:s,dragDirectionLock:u,dragPropagation:c,dragConstraints:h,dragElastic:f,dragMomentum:p}}}function fu(a,i,s){return(i===!0||i===a)&&(s===null||s===a)}function MA(a,i=10){let s=null;return Math.abs(a.y)>i?s="y":Math.abs(a.x)>i&&(s="x"),s}class OA extends ea{constructor(i){super(i),this.removeGroupControls=qe,this.removeListeners=qe,this.controls=new AA(i)}mount(){const{dragControls:i}=this.node.getProps();i&&(this.removeGroupControls=i.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||qe}unmount(){this.removeGroupControls(),this.removeListeners()}}const wp=a=>(i,s)=>{a&&Nt.postRender(()=>a(i,s))};class DA extends ea{constructor(){super(...arguments),this.removePointerDownListener=qe}onPointerDown(i){this.session=new kv(i,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Zv(this.node)})}createPanHandlers(){const{onPanSessionStart:i,onPanStart:s,onPan:u,onPanEnd:c}=this.node.getProps();return{onSessionStart:wp(i),onStart:wp(s),onMove:u,onEnd:(h,f)=>{delete this.session,c&&Nt.postRender(()=>c(h,f))}}}mount(){this.removePointerDownListener=wl(this.node.current,"pointerdown",i=>this.onPointerDown(i))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const gu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let fc=!1;class xA extends Z.Component{componentDidMount(){const{visualElement:i,layoutGroup:s,switchLayoutGroup:u,layoutId:c}=this.props,{projection:h}=i;h&&(s.group&&s.group.add(h),u&&u.register&&c&&u.register(h),fc&&h.root.didUpdate(),h.addEventListener("animationComplete",()=>{this.safeToRemove()}),h.setOptions({...h.options,onExitComplete:()=>this.safeToRemove()})),gu.hasEverUpdated=!0}getSnapshotBeforeUpdate(i){const{layoutDependency:s,visualElement:u,drag:c,isPresent:h}=this.props,{projection:f}=u;return f&&(f.isPresent=h,fc=!0,c||i.layoutDependency!==s||s===void 0||i.isPresent!==h?f.willUpdate():this.safeToRemove(),i.isPresent!==h&&(h?f.promote():f.relegate()||Nt.postRender(()=>{const p=f.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:i}=this.props.visualElement;i&&(i.root.didUpdate(),df.postRender(()=>{!i.currentAnimation&&i.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:i,layoutGroup:s,switchLayoutGroup:u}=this.props,{projection:c}=i;fc=!0,c&&(c.scheduleCheckAfterUnmount(),s&&s.group&&s.group.remove(c),u&&u.deregister&&u.deregister(c))}safeToRemove(){const{safeToRemove:i}=this.props;i&&i()}render(){return null}}function Pv(a){const[i,s]=gv(),u=Z.useContext(Kc);return st.jsx(xA,{...a,layoutGroup:u,switchLayoutGroup:Z.useContext(Cv),isPresent:i,safeToRemove:s})}function _A(a,i,s){const u=ue(a)?a:Ei(a);return u.start(Of("",u,i,s)),u.animation}const CA=(a,i)=>a.depth-i.depth;class RA{constructor(){this.children=[],this.isDirty=!1}add(i){Jc(this.children,i),this.isDirty=!0}remove(i){Pc(this.children,i),this.isDirty=!0}forEach(i){this.isDirty&&this.children.sort(CA),this.isDirty=!1,this.children.forEach(i)}}function wA(a,i){const s=ge.now(),u=({timestamp:c})=>{const h=c-s;h>=i&&(In(u),a(h-i))};return Nt.setup(u,!0),()=>In(u)}const Wv=["TopLeft","TopRight","BottomLeft","BottomRight"],zA=Wv.length,zp=a=>typeof a=="string"?parseFloat(a):a,Np=a=>typeof a=="number"||nt.test(a);function NA(a,i,s,u,c,h){c?(a.opacity=Vt(0,s.opacity??1,VA(u)),a.opacityExit=Vt(i.opacity??1,0,UA(u))):h&&(a.opacity=Vt(i.opacity??1,s.opacity??1,u));for(let f=0;fui?1:s(Nl(a,i,u))}function Up(a,i){a.min=i.min,a.max=i.max}function Ke(a,i){Up(a.x,i.x),Up(a.y,i.y)}function Lp(a,i){a.translate=i.translate,a.scale=i.scale,a.originPoint=i.originPoint,a.origin=i.origin}function jp(a,i,s,u,c){return a-=i,a=Eu(a,1/s,u),c!==void 0&&(a=Eu(a,1/c,u)),a}function LA(a,i=0,s=1,u=.5,c,h=a,f=a){if($e.test(i)&&(i=parseFloat(i),i=Vt(f.min,f.max,i/100)-f.min),typeof i!="number")return;let p=Vt(h.min,h.max,u);a===h&&(p-=i),a.min=jp(a.min,i,s,p,c),a.max=jp(a.max,i,s,p,c)}function Bp(a,i,[s,u,c],h,f){LA(a,i[s],i[u],i[c],i.scale,h,f)}const jA=["x","scaleX","originX"],BA=["y","scaleY","originY"];function Hp(a,i,s,u){Bp(a.x,i,jA,s?s.x:void 0,u?u.x:void 0),Bp(a.y,i,BA,s?s.y:void 0,u?u.y:void 0)}function Yp(a){return a.translate===0&&a.scale===1}function Iv(a){return Yp(a.x)&&Yp(a.y)}function qp(a,i){return a.min===i.min&&a.max===i.max}function HA(a,i){return qp(a.x,i.x)&&qp(a.y,i.y)}function Gp(a,i){return Math.round(a.min)===Math.round(i.min)&&Math.round(a.max)===Math.round(i.max)}function $v(a,i){return Gp(a.x,i.x)&&Gp(a.y,i.y)}function Xp(a){return oe(a.x)/oe(a.y)}function Qp(a,i){return a.translate===i.translate&&a.scale===i.scale&&a.originPoint===i.originPoint}class YA{constructor(){this.members=[]}add(i){Jc(this.members,i),i.scheduleRender()}remove(i){if(Pc(this.members,i),i===this.prevLead&&(this.prevLead=void 0),i===this.lead){const s=this.members[this.members.length-1];s&&this.promote(s)}}relegate(i){const s=this.members.findIndex(c=>i===c);if(s===0)return!1;let u;for(let c=s;c>=0;c--){const h=this.members[c];if(h.isPresent!==!1){u=h;break}}return u?(this.promote(u),!0):!1}promote(i,s){const u=this.lead;if(i!==u&&(this.prevLead=u,this.lead=i,i.show(),u)){u.instance&&u.scheduleRender(),i.scheduleRender(),i.resumeFrom=u,s&&(i.resumeFrom.preserveOpacity=!0),u.snapshot&&(i.snapshot=u.snapshot,i.snapshot.latestValues=u.animationValues||u.latestValues),i.root&&i.root.isUpdating&&(i.isLayoutDirty=!0);const{crossfade:c}=i.options;c===!1&&u.hide()}}exitAnimationComplete(){this.members.forEach(i=>{const{options:s,resumingFrom:u}=i;s.onExitComplete&&s.onExitComplete(),u&&u.options.onExitComplete&&u.options.onExitComplete()})}scheduleRender(){this.members.forEach(i=>{i.instance&&i.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function qA(a,i,s){let u="";const c=a.x.translate/i.x,h=a.y.translate/i.y,f=s?.z||0;if((c||h||f)&&(u=`translate3d(${c}px, ${h}px, ${f}px) `),(i.x!==1||i.y!==1)&&(u+=`scale(${1/i.x}, ${1/i.y}) `),s){const{transformPerspective:m,rotate:g,rotateX:v,rotateY:b,skewX:T,skewY:A}=s;m&&(u=`perspective(${m}px) ${u}`),g&&(u+=`rotate(${g}deg) `),v&&(u+=`rotateX(${v}deg) `),b&&(u+=`rotateY(${b}deg) `),T&&(u+=`skewX(${T}deg) `),A&&(u+=`skewY(${A}deg) `)}const p=a.x.scale*i.x,y=a.y.scale*i.y;return(p!==1||y!==1)&&(u+=`scale(${p}, ${y})`),u||"none"}const hc=["","X","Y","Z"],GA=1e3;let XA=0;function dc(a,i,s,u){const{latestValues:c}=i;c[a]&&(s[a]=c[a],i.setStaticValue(a,0),u&&(u[a]=0))}function t0(a){if(a.hasCheckedOptimisedAppear=!0,a.root===a)return;const{visualElement:i}=a.options;if(!i)return;const s=Hv(i);if(window.MotionHasOptimisedAnimation(s,"transform")){const{layout:c,layoutId:h}=a.options;window.MotionCancelOptimisedAnimation(s,"transform",Nt,!(c||h))}const{parent:u}=a;u&&!u.hasCheckedOptimisedAppear&&t0(u)}function e0({attachResizeListener:a,defaultParent:i,measureScroll:s,checkIsScrollRoot:u,resetTransform:c}){return class{constructor(f={},p=i?.()){this.id=XA++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ZA),this.nodes.forEach(WA),this.nodes.forEach(FA),this.nodes.forEach(kA)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=f,this.root=p?p.root||p:this,this.path=p?[...p.path,p]:[],this.parent=p,this.depth=p?p.depth+1:0;for(let y=0;ythis.root.updateBlockedByResize=!1;Nt.read(()=>{v=window.innerWidth}),a(f,()=>{const T=window.innerWidth;T!==v&&(v=T,this.root.updateBlockedByResize=!0,g&&g(),g=wA(b,250),gu.hasAnimatedSinceResize&&(gu.hasAnimatedSinceResize=!1,this.nodes.forEach(kp)))})}p&&this.root.registerSharedNode(p,this),this.options.animate!==!1&&m&&(p||y)&&this.addEventListener("didUpdate",({delta:g,hasLayoutChanged:v,hasRelativeLayoutChanged:b,layout:T})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const A=this.options.transition||m.getDefaultTransition()||n2,{onLayoutAnimationStart:_,onLayoutAnimationComplete:N}=m.getProps(),D=!this.targetLayout||!$v(this.targetLayout,T),L=!v&&b;if(this.options.layoutRoot||this.resumeFrom||L||v&&(D||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const Y={...ff(A,"layout"),onPlay:_,onComplete:N};(m.shouldReduceMotion||this.options.layoutRoot)&&(Y.delay=0,Y.type=!1),this.startAnimation(Y),this.setAnimationOrigin(g,L)}else v||kp(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=T})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const f=this.getStack();f&&f.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),In(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(IA),this.animationId++)}getTransformTemplate(){const{visualElement:f}=this.options;return f&&f.getProps().transformTemplate}willUpdate(f=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&t0(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let g=0;g{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!oe(this.snapshot.measuredBox.x)&&!oe(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let y=0;y{const q=J/1e3;Jp(v.x,f.x,q),Jp(v.y,f.y,q),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Au(b,this.layout.layoutBox,this.relativeParent.layout.layoutBox),t2(this.relativeTarget,this.relativeTargetOrigin,b,q),Y&&HA(this.relativeTarget,Y)&&(this.isProjectionDirty=!1),Y||(Y=kt()),Ke(Y,this.relativeTarget)),_&&(this.animationValues=g,NA(g,m,this.latestValues,q,L,D)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=q},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(f){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(In(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Nt.update(()=>{gu.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ei(0)),this.currentAnimation=_A(this.motionValue,[0,1e3],{...f,velocity:0,isSync:!0,onUpdate:p=>{this.mixTargetDelta(p),f.onUpdate&&f.onUpdate(p)},onStop:()=>{},onComplete:()=>{f.onComplete&&f.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const f=this.getStack();f&&f.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(GA),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const f=this.getLead();let{targetWithTransforms:p,target:y,layout:m,latestValues:g}=f;if(!(!p||!y||!m)){if(this!==f&&this.layout&&m&&n0(this.options.animationType,this.layout.layoutBox,m.layoutBox)){y=this.target||kt();const v=oe(this.layout.layoutBox.x);y.x.min=f.target.x.min,y.x.max=y.x.min+v;const b=oe(this.layout.layoutBox.y);y.y.min=f.target.y.min,y.y.max=y.y.min+b}Ke(p,y),Si(p,g),zl(this.projectionDeltaWithTransform,this.layoutCorrected,p,g)}}registerSharedNode(f,p){this.sharedNodes.has(f)||this.sharedNodes.set(f,new YA),this.sharedNodes.get(f).add(p);const m=p.options.initialPromotionConfig;p.promote({transition:m?m.transition:void 0,preserveFollowOpacity:m&&m.shouldPreserveFollowOpacity?m.shouldPreserveFollowOpacity(p):void 0})}isLead(){const f=this.getStack();return f?f.lead===this:!0}getLead(){const{layoutId:f}=this.options;return f?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:f}=this.options;return f?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:f}=this.options;if(f)return this.root.sharedNodes.get(f)}promote({needsReset:f,transition:p,preserveFollowOpacity:y}={}){const m=this.getStack();m&&m.promote(this,y),f&&(this.projectionDelta=void 0,this.needsReset=!0),p&&this.setOptions({transition:p})}relegate(){const f=this.getStack();return f?f.relegate(this):!1}resetSkewAndRotation(){const{visualElement:f}=this.options;if(!f)return;let p=!1;const{latestValues:y}=f;if((y.z||y.rotate||y.rotateX||y.rotateY||y.rotateZ||y.skewX||y.skewY)&&(p=!0),!p)return;const m={};y.z&&dc("z",f,m,this.animationValues);for(let g=0;gf.currentAnimation?.stop()),this.root.nodes.forEach(Kp),this.root.sharedNodes.clear()}}}function QA(a){a.updateLayout()}function KA(a){const i=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&i&&a.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:u}=a.layout,{animationType:c}=a.options,h=i.source!==a.layout.source;c==="size"?He(g=>{const v=h?i.measuredBox[g]:i.layoutBox[g],b=oe(v);v.min=s[g].min,v.max=v.min+b}):n0(c,i.layoutBox,s)&&He(g=>{const v=h?i.measuredBox[g]:i.layoutBox[g],b=oe(s[g]);v.max=v.min+b,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[g].max=a.relativeTarget[g].min+b)});const f=bi();zl(f,s,i.layoutBox);const p=bi();h?zl(p,a.applyTransform(u,!0),i.measuredBox):zl(p,s,i.layoutBox);const y=!Iv(f);let m=!1;if(!a.resumeFrom){const g=a.getClosestProjectingParent();if(g&&!g.resumeFrom){const{snapshot:v,layout:b}=g;if(v&&b){const T=kt();Au(T,i.layoutBox,v.layoutBox);const A=kt();Au(A,s,b.layoutBox),$v(T,A)||(m=!0),g.options.layoutRoot&&(a.relativeTarget=A,a.relativeTargetOrigin=T,a.relativeParent=g)}}}a.notifyListeners("didUpdate",{layout:s,snapshot:i,delta:p,layoutDelta:f,hasLayoutChanged:y,hasRelativeLayoutChanged:m})}else if(a.isLead()){const{onExitComplete:s}=a.options;s&&s()}a.options.transition=void 0}function ZA(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function kA(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function JA(a){a.clearSnapshot()}function Kp(a){a.clearMeasurements()}function Zp(a){a.isLayoutDirty=!1}function PA(a){const{visualElement:i}=a.options;i&&i.getProps().onBeforeLayoutMeasure&&i.notify("BeforeLayoutMeasure"),a.resetTransform()}function kp(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function WA(a){a.resolveTargetDelta()}function FA(a){a.calcProjection()}function IA(a){a.resetSkewAndRotation()}function $A(a){a.removeLeadSnapshot()}function Jp(a,i,s){a.translate=Vt(i.translate,0,s),a.scale=Vt(i.scale,1,s),a.origin=i.origin,a.originPoint=i.originPoint}function Pp(a,i,s,u){a.min=Vt(i.min,s.min,u),a.max=Vt(i.max,s.max,u)}function t2(a,i,s,u){Pp(a.x,i.x,s.x,u),Pp(a.y,i.y,s.y,u)}function e2(a){return a.animationValues&&a.animationValues.opacityExit!==void 0}const n2={duration:.45,ease:[.4,0,.1,1]},Wp=a=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),Fp=Wp("applewebkit/")&&!Wp("chrome/")?Math.round:qe;function Ip(a){a.min=Fp(a.min),a.max=Fp(a.max)}function a2(a){Ip(a.x),Ip(a.y)}function n0(a,i,s){return a==="position"||a==="preserve-aspect"&&!fA(Xp(i),Xp(s),.2)}function i2(a){return a!==a.root&&a.scroll?.wasRoot}const l2=e0({attachResizeListener:(a,i)=>jl(a,"resize",i),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),mc={current:void 0},a0=e0({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!mc.current){const a=new l2({});a.mount(window),a.setOptions({layoutScroll:!0}),mc.current=a}return mc.current},resetTransform:(a,i)=>{a.style.transform=i!==void 0?i:"none"},checkIsScrollRoot:a=>window.getComputedStyle(a).position==="fixed"}),s2={pan:{Feature:DA},drag:{Feature:OA,ProjectionNode:a0,MeasureLayout:Pv}};function $p(a,i,s){const{props:u}=a;a.animationState&&u.whileHover&&a.animationState.setActive("whileHover",s==="Start");const c="onHover"+s,h=u[c];h&&Nt.postRender(()=>h(i,Xl(i)))}class u2 extends ea{mount(){const{current:i}=this.node;i&&(this.unmount=RT(i,(s,u)=>($p(this.node,u,"Start"),c=>$p(this.node,c,"End"))))}unmount(){}}class r2 extends ea{constructor(){super(...arguments),this.isActive=!1}onFocus(){let i=!1;try{i=this.node.current.matches(":focus-visible")}catch{i=!0}!i||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Yl(jl(this.node.current,"focus",()=>this.onFocus()),jl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function tg(a,i,s){const{props:u}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&u.whileTap&&a.animationState.setActive("whileTap",s==="Start");const c="onTap"+(s==="End"?"":s),h=u[c];h&&Nt.postRender(()=>h(i,Xl(i)))}class o2 extends ea{mount(){const{current:i}=this.node;i&&(this.unmount=VT(i,(s,u)=>(tg(this.node,u,"Start"),(c,{success:h})=>tg(this.node,c,h?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Xc=new WeakMap,yc=new WeakMap,c2=a=>{const i=Xc.get(a.target);i&&i(a)},f2=a=>{a.forEach(c2)};function h2({root:a,...i}){const s=a||document;yc.has(s)||yc.set(s,{});const u=yc.get(s),c=JSON.stringify(i);return u[c]||(u[c]=new IntersectionObserver(f2,{root:a,...i})),u[c]}function d2(a,i,s){const u=h2(i);return Xc.set(a,s),u.observe(a),()=>{Xc.delete(a),u.unobserve(a)}}const m2={some:0,all:1};class y2 extends ea{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:i={}}=this.node.getProps(),{root:s,margin:u,amount:c="some",once:h}=i,f={root:s?s.current:void 0,rootMargin:u,threshold:typeof c=="number"?c:m2[c]},p=y=>{const{isIntersecting:m}=y;if(this.isInView===m||(this.isInView=m,h&&!m&&this.hasEnteredView))return;m&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",m);const{onViewportEnter:g,onViewportLeave:v}=this.node.getProps(),b=m?g:v;b&&b(y)};return d2(this.node.current,f,p)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:i,prevProps:s}=this.node;["amount","margin","root"].some(p2(i,s))&&this.startObserver()}unmount(){}}function p2({viewport:a={}},{viewport:i={}}={}){return s=>a[s]!==i[s]}const g2={inView:{Feature:y2},tap:{Feature:o2},focus:{Feature:r2},hover:{Feature:u2}},v2={layout:{ProjectionNode:a0,MeasureLayout:Pv}},S2={...lA,...g2,...s2,...v2},Bl=TE(S2,VE);var pc={},_e={},gc={},eg;function tn(){return eg||(eg=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.isEventSourceSupported=a.isReactNative=a.ReadyState=a.DEFAULT_HEARTBEAT=a.UNPARSABLE_JSON_OBJECT=a.DEFAULT_RECONNECT_INTERVAL_MS=a.DEFAULT_RECONNECT_LIMIT=a.SOCKET_IO_PING_CODE=a.SOCKET_IO_PATH=a.SOCKET_IO_PING_INTERVAL=a.DEFAULT_EVENT_SOURCE_OPTIONS=a.EMPTY_EVENT_HANDLERS=a.DEFAULT_OPTIONS=void 0;var i=1,s=1e3*i;a.DEFAULT_OPTIONS={},a.EMPTY_EVENT_HANDLERS={},a.DEFAULT_EVENT_SOURCE_OPTIONS={withCredentials:!1,events:a.EMPTY_EVENT_HANDLERS},a.SOCKET_IO_PING_INTERVAL=25*s,a.SOCKET_IO_PATH="/socket.io/?EIO=3&transport=websocket",a.SOCKET_IO_PING_CODE="2",a.DEFAULT_RECONNECT_LIMIT=20,a.DEFAULT_RECONNECT_INTERVAL_MS=5e3,a.UNPARSABLE_JSON_OBJECT={},a.DEFAULT_HEARTBEAT={message:"ping",timeout:6e4,interval:25e3};var u;(function(h){h[h.UNINSTANTIATED=-1]="UNINSTANTIATED",h[h.CONNECTING=0]="CONNECTING",h[h.OPEN=1]="OPEN",h[h.CLOSING=2]="CLOSING",h[h.CLOSED=3]="CLOSED"})(u||(a.ReadyState=u={}));var c=function(){try{return"EventSource"in globalThis}catch{return!1}};a.isReactNative=typeof navigator<"u"&&navigator.product==="ReactNative",a.isEventSourceSupported=!a.isReactNative&&c()})(gc)),gc}var Ml={},vc={},ng;function Df(){return ng||(ng=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.resetWebSockets=a.sharedWebSockets=void 0,a.sharedWebSockets={};var i=function(s){if(s&&a.sharedWebSockets.hasOwnProperty(s))delete a.sharedWebSockets[s];else for(var u in a.sharedWebSockets)a.sharedWebSockets.hasOwnProperty(u)&&delete a.sharedWebSockets[u]};a.resetWebSockets=i})(vc)),vc}var Ea={},bn={},ag;function xf(){if(ag)return bn;ag=1,Object.defineProperty(bn,"__esModule",{value:!0}),bn.setUpSocketIOPing=bn.appendQueryParams=bn.parseSocketIOUrl=void 0;var a=tn(),i=function(c){if(c){var h=/^https|wss/.test(c),f=c.replace(/^(https?|wss?)(:\/\/)?/,""),p=f.replace(/\/$/,""),y=h?"wss":"ws";return"".concat(y,"://").concat(p).concat(a.SOCKET_IO_PATH)}else if(c===""){var h=/^https/.test(window.location.protocol),y=h?"wss":"ws",m=window.location.port?":".concat(window.location.port):"";return"".concat(y,"://").concat(window.location.hostname).concat(m).concat(a.SOCKET_IO_PATH)}return c};bn.parseSocketIOUrl=i;var s=function(c,h){h===void 0&&(h={});var f=/\?([\w]+=[\w]+)/,p=f.test(c),y="".concat(Object.entries(h).reduce(function(m,g){var v=g[0],b=g[1];return m+"".concat(v,"=").concat(b,"&")},"").slice(0,-1));return"".concat(c).concat(p?"&":"?").concat(y)};bn.appendQueryParams=s;var u=function(c,h){h===void 0&&(h=a.SOCKET_IO_PING_INTERVAL);var f=function(){return c(a.SOCKET_IO_PING_CODE)};return window.setInterval(f,h)};return bn.setUpSocketIOPing=u,bn}var hu={},ig;function i0(){if(ig)return hu;ig=1,Object.defineProperty(hu,"__esModule",{value:!0}),hu.heartbeat=s;var a=tn();function i(u){return Array.isArray(u)?u.reduce(function(c,h){return c.current>h.current?c:h}).current:u.current}function s(u,c,h){var f=h||{},p=f.interval,y=p===void 0?a.DEFAULT_HEARTBEAT.interval:p,m=f.timeout,g=m===void 0?a.DEFAULT_HEARTBEAT.timeout:m,v=f.message,b=v===void 0?a.DEFAULT_HEARTBEAT.message:v,T=Math.max(100,y/10),A=Date.now(),_=setInterval(function(){var N=Date.now(),D=i(c);if(D+g<=N)console.warn("Heartbeat timed out, closing connection, last message received ".concat(N-D,"ms ago, last ping sent ").concat(N-A,"ms ago")),u.close();else if(D+y<=N&&A+y<=N)try{typeof b=="function"?u.send(b()):u.send(b),A=N}catch(L){console.error("Heartbeat failed, closing connection",L instanceof Error?L.message:L),u.close()}},T);return u.addEventListener("close",function(){clearInterval(_)}),function(){}}return hu}var Ol={},Sc={},lg;function _f(){return lg||(lg=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.resetSubscribers=a.removeSubscriber=a.addSubscriber=a.hasSubscribers=a.getSubscribers=void 0;var i={},s=[],u=function(y){return(0,a.hasSubscribers)(y)?Array.from(i[y]):s};a.getSubscribers=u;var c=function(y){var m;return((m=i[y])===null||m===void 0?void 0:m.size)>0};a.hasSubscribers=c;var h=function(y,m){i[y]=i[y]||new Set,i[y].add(m)};a.addSubscriber=h;var f=function(y,m){i[y].delete(m)};a.removeSubscriber=f;var p=function(y){if(y&&i.hasOwnProperty(y))delete i[y];else for(var m in i)i.hasOwnProperty(m)&&delete i[m]};a.resetSubscribers=p})(Sc)),Sc}var sg;function Cf(){if(sg)return Ol;sg=1,Object.defineProperty(Ol,"__esModule",{value:!0}),Ol.assertIsWebSocket=s,Ol.resetGlobalState=u;var a=Df(),i=_f();function s(c,h){if(!h&&!(c instanceof WebSocket))throw new Error("")}function u(c){(0,i.resetSubscribers)(c),(0,a.resetWebSockets)(c)}return Ol}var ug;function b2(){if(ug)return Ea;ug=1;var a=Ea&&Ea.__assign||function(){return a=Object.assign||function(g){for(var v,b=1,T=arguments.length;b0&&T[T.length-1])&&(D[0]===6||D[0]===2)){g=0;continue}if(D[0]===3&&(!T||D[1]>T[0]&&D[1]0&&D[D.length-1])&&(q[0]===6||q[0]===2)){A=0;continue}if(q[0]===3&&(!D||q[1]>D[0]&&q[1]=h.getTime()?u+1:s.getTime()>=p.getTime()?u:u-1}function gg(a){const i=ke(a),s=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate(),i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()));return s.setUTCFullYear(i.getFullYear()),+a-+s}function w2(a,...i){const s=ta.bind(null,i.find(u=>typeof u=="object"));return i.map(s)}function vg(a,i){const s=ke(a,i?.in);return s.setHours(0,0,0,0),s}function z2(a,i,s){const[u,c]=w2(s?.in,a,i),h=vg(u),f=vg(c),p=+h-gg(h),y=+f-gg(f);return Math.round((p-y)/C2)}function N2(a,i){const s=s0(a,i),u=ta(a,0);return u.setFullYear(s,0,4),u.setHours(0,0,0,0),Mu(u)}function V2(a){return a instanceof Date||typeof a=="object"&&Object.prototype.toString.call(a)==="[object Date]"}function U2(a){return!(!V2(a)&&typeof a!="number"||isNaN(+ke(a)))}function L2(a,i){const s=ke(a,i?.in);return s.setFullYear(s.getFullYear(),0,1),s.setHours(0,0,0,0),s}const j2={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},B2=(a,i,s)=>{let u;const c=j2[a];return typeof c=="string"?u=c:i===1?u=c.one:u=c.other.replace("{{count}}",i.toString()),s?.addSuffix?s.comparison&&s.comparison>0?"in "+u:u+" ago":u};function Tc(a){return(i={})=>{const s=i.width?String(i.width):a.defaultWidth;return a.formats[s]||a.formats[a.defaultWidth]}}const H2={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Y2={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},q2={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},G2={date:Tc({formats:H2,defaultWidth:"full"}),time:Tc({formats:Y2,defaultWidth:"full"}),dateTime:Tc({formats:q2,defaultWidth:"full"})},X2={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Q2=(a,i,s,u)=>X2[a];function Dl(a){return(i,s)=>{const u=s?.context?String(s.context):"standalone";let c;if(u==="formatting"&&a.formattingValues){const f=a.defaultFormattingWidth||a.defaultWidth,p=s?.width?String(s.width):f;c=a.formattingValues[p]||a.formattingValues[f]}else{const f=a.defaultWidth,p=s?.width?String(s.width):a.defaultWidth;c=a.values[p]||a.values[f]}const h=a.argumentCallback?a.argumentCallback(i):i;return c[h]}}const K2={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Z2={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},k2={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},J2={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},P2={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},W2={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},F2=(a,i)=>{const s=Number(a),u=s%100;if(u>20||u<10)switch(u%10){case 1:return s+"st";case 2:return s+"nd";case 3:return s+"rd"}return s+"th"},I2={ordinalNumber:F2,era:Dl({values:K2,defaultWidth:"wide"}),quarter:Dl({values:Z2,defaultWidth:"wide",argumentCallback:a=>a-1}),month:Dl({values:k2,defaultWidth:"wide"}),day:Dl({values:J2,defaultWidth:"wide"}),dayPeriod:Dl({values:P2,defaultWidth:"wide",formattingValues:W2,defaultFormattingWidth:"wide"})};function xl(a){return(i,s={})=>{const u=s.width,c=u&&a.matchPatterns[u]||a.matchPatterns[a.defaultMatchWidth],h=i.match(c);if(!h)return null;const f=h[0],p=u&&a.parsePatterns[u]||a.parsePatterns[a.defaultParseWidth],y=Array.isArray(p)?tM(p,v=>v.test(f)):$2(p,v=>v.test(f));let m;m=a.valueCallback?a.valueCallback(y):y,m=s.valueCallback?s.valueCallback(m):m;const g=i.slice(f.length);return{value:m,rest:g}}}function $2(a,i){for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&i(a[s]))return s}function tM(a,i){for(let s=0;s{const u=i.match(a.matchPattern);if(!u)return null;const c=u[0],h=i.match(a.parsePattern);if(!h)return null;let f=a.valueCallback?a.valueCallback(h[0]):h[0];f=s.valueCallback?s.valueCallback(f):f;const p=i.slice(c.length);return{value:f,rest:p}}}const nM=/^(\d+)(th|st|nd|rd)?/i,aM=/\d+/i,iM={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},lM={any:[/^b/i,/^(a|c)/i]},sM={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},uM={any:[/1/i,/2/i,/3/i,/4/i]},rM={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},oM={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},cM={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},fM={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},hM={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},dM={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},mM={ordinalNumber:eM({matchPattern:nM,parsePattern:aM,valueCallback:a=>parseInt(a,10)}),era:xl({matchPatterns:iM,defaultMatchWidth:"wide",parsePatterns:lM,defaultParseWidth:"any"}),quarter:xl({matchPatterns:sM,defaultMatchWidth:"wide",parsePatterns:uM,defaultParseWidth:"any",valueCallback:a=>a+1}),month:xl({matchPatterns:rM,defaultMatchWidth:"wide",parsePatterns:oM,defaultParseWidth:"any"}),day:xl({matchPatterns:cM,defaultMatchWidth:"wide",parsePatterns:fM,defaultParseWidth:"any"}),dayPeriod:xl({matchPatterns:hM,defaultMatchWidth:"any",parsePatterns:dM,defaultParseWidth:"any"})},yM={code:"en-US",formatDistance:B2,formatLong:G2,formatRelative:Q2,localize:I2,match:mM,options:{weekStartsOn:0,firstWeekContainsDate:1}};function pM(a,i){const s=ke(a,i?.in);return z2(s,L2(s))+1}function gM(a,i){const s=ke(a,i?.in),u=+Mu(s)-+N2(s);return Math.round(u/l0)+1}function u0(a,i){const s=ke(a,i?.in),u=s.getFullYear(),c=Cu(),h=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,f=ta(i?.in||a,0);f.setFullYear(u+1,0,h),f.setHours(0,0,0,0);const p=Hl(f,i),y=ta(i?.in||a,0);y.setFullYear(u,0,h),y.setHours(0,0,0,0);const m=Hl(y,i);return+s>=+p?u+1:+s>=+m?u:u-1}function vM(a,i){const s=Cu(),u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,c=u0(a,i),h=ta(i?.in||a,0);return h.setFullYear(c,0,u),h.setHours(0,0,0,0),Hl(h,i)}function SM(a,i){const s=ke(a,i?.in),u=+Hl(s,i)-+vM(s,i);return Math.round(u/l0)+1}function Et(a,i){const s=a<0?"-":"",u=Math.abs(a).toString().padStart(i,"0");return s+u}const Wn={y(a,i){const s=a.getFullYear(),u=s>0?s:1-s;return Et(i==="yy"?u%100:u,i.length)},M(a,i){const s=a.getMonth();return i==="M"?String(s+1):Et(s+1,2)},d(a,i){return Et(a.getDate(),i.length)},a(a,i){const s=a.getHours()/12>=1?"pm":"am";switch(i){case"a":case"aa":return s.toUpperCase();case"aaa":return s;case"aaaaa":return s[0];case"aaaa":default:return s==="am"?"a.m.":"p.m."}},h(a,i){return Et(a.getHours()%12||12,i.length)},H(a,i){return Et(a.getHours(),i.length)},m(a,i){return Et(a.getMinutes(),i.length)},s(a,i){return Et(a.getSeconds(),i.length)},S(a,i){const s=i.length,u=a.getMilliseconds(),c=Math.trunc(u*Math.pow(10,s-3));return Et(c,i.length)}},yi={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Sg={G:function(a,i,s){const u=a.getFullYear()>0?1:0;switch(i){case"G":case"GG":case"GGG":return s.era(u,{width:"abbreviated"});case"GGGGG":return s.era(u,{width:"narrow"});case"GGGG":default:return s.era(u,{width:"wide"})}},y:function(a,i,s){if(i==="yo"){const u=a.getFullYear(),c=u>0?u:1-u;return s.ordinalNumber(c,{unit:"year"})}return Wn.y(a,i)},Y:function(a,i,s,u){const c=u0(a,u),h=c>0?c:1-c;if(i==="YY"){const f=h%100;return Et(f,2)}return i==="Yo"?s.ordinalNumber(h,{unit:"year"}):Et(h,i.length)},R:function(a,i){const s=s0(a);return Et(s,i.length)},u:function(a,i){const s=a.getFullYear();return Et(s,i.length)},Q:function(a,i,s){const u=Math.ceil((a.getMonth()+1)/3);switch(i){case"Q":return String(u);case"QQ":return Et(u,2);case"Qo":return s.ordinalNumber(u,{unit:"quarter"});case"QQQ":return s.quarter(u,{width:"abbreviated",context:"formatting"});case"QQQQQ":return s.quarter(u,{width:"narrow",context:"formatting"});case"QQQQ":default:return s.quarter(u,{width:"wide",context:"formatting"})}},q:function(a,i,s){const u=Math.ceil((a.getMonth()+1)/3);switch(i){case"q":return String(u);case"qq":return Et(u,2);case"qo":return s.ordinalNumber(u,{unit:"quarter"});case"qqq":return s.quarter(u,{width:"abbreviated",context:"standalone"});case"qqqqq":return s.quarter(u,{width:"narrow",context:"standalone"});case"qqqq":default:return s.quarter(u,{width:"wide",context:"standalone"})}},M:function(a,i,s){const u=a.getMonth();switch(i){case"M":case"MM":return Wn.M(a,i);case"Mo":return s.ordinalNumber(u+1,{unit:"month"});case"MMM":return s.month(u,{width:"abbreviated",context:"formatting"});case"MMMMM":return s.month(u,{width:"narrow",context:"formatting"});case"MMMM":default:return s.month(u,{width:"wide",context:"formatting"})}},L:function(a,i,s){const u=a.getMonth();switch(i){case"L":return String(u+1);case"LL":return Et(u+1,2);case"Lo":return s.ordinalNumber(u+1,{unit:"month"});case"LLL":return s.month(u,{width:"abbreviated",context:"standalone"});case"LLLLL":return s.month(u,{width:"narrow",context:"standalone"});case"LLLL":default:return s.month(u,{width:"wide",context:"standalone"})}},w:function(a,i,s,u){const c=SM(a,u);return i==="wo"?s.ordinalNumber(c,{unit:"week"}):Et(c,i.length)},I:function(a,i,s){const u=gM(a);return i==="Io"?s.ordinalNumber(u,{unit:"week"}):Et(u,i.length)},d:function(a,i,s){return i==="do"?s.ordinalNumber(a.getDate(),{unit:"date"}):Wn.d(a,i)},D:function(a,i,s){const u=pM(a);return i==="Do"?s.ordinalNumber(u,{unit:"dayOfYear"}):Et(u,i.length)},E:function(a,i,s){const u=a.getDay();switch(i){case"E":case"EE":case"EEE":return s.day(u,{width:"abbreviated",context:"formatting"});case"EEEEE":return s.day(u,{width:"narrow",context:"formatting"});case"EEEEEE":return s.day(u,{width:"short",context:"formatting"});case"EEEE":default:return s.day(u,{width:"wide",context:"formatting"})}},e:function(a,i,s,u){const c=a.getDay(),h=(c-u.weekStartsOn+8)%7||7;switch(i){case"e":return String(h);case"ee":return Et(h,2);case"eo":return s.ordinalNumber(h,{unit:"day"});case"eee":return s.day(c,{width:"abbreviated",context:"formatting"});case"eeeee":return s.day(c,{width:"narrow",context:"formatting"});case"eeeeee":return s.day(c,{width:"short",context:"formatting"});case"eeee":default:return s.day(c,{width:"wide",context:"formatting"})}},c:function(a,i,s,u){const c=a.getDay(),h=(c-u.weekStartsOn+8)%7||7;switch(i){case"c":return String(h);case"cc":return Et(h,i.length);case"co":return s.ordinalNumber(h,{unit:"day"});case"ccc":return s.day(c,{width:"abbreviated",context:"standalone"});case"ccccc":return s.day(c,{width:"narrow",context:"standalone"});case"cccccc":return s.day(c,{width:"short",context:"standalone"});case"cccc":default:return s.day(c,{width:"wide",context:"standalone"})}},i:function(a,i,s){const u=a.getDay(),c=u===0?7:u;switch(i){case"i":return String(c);case"ii":return Et(c,i.length);case"io":return s.ordinalNumber(c,{unit:"day"});case"iii":return s.day(u,{width:"abbreviated",context:"formatting"});case"iiiii":return s.day(u,{width:"narrow",context:"formatting"});case"iiiiii":return s.day(u,{width:"short",context:"formatting"});case"iiii":default:return s.day(u,{width:"wide",context:"formatting"})}},a:function(a,i,s){const c=a.getHours()/12>=1?"pm":"am";switch(i){case"a":case"aa":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"aaa":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"aaaa":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},b:function(a,i,s){const u=a.getHours();let c;switch(u===12?c=yi.noon:u===0?c=yi.midnight:c=u/12>=1?"pm":"am",i){case"b":case"bb":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"bbb":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"bbbb":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},B:function(a,i,s){const u=a.getHours();let c;switch(u>=17?c=yi.evening:u>=12?c=yi.afternoon:u>=4?c=yi.morning:c=yi.night,i){case"B":case"BB":case"BBB":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"BBBBB":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"BBBB":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},h:function(a,i,s){if(i==="ho"){let u=a.getHours()%12;return u===0&&(u=12),s.ordinalNumber(u,{unit:"hour"})}return Wn.h(a,i)},H:function(a,i,s){return i==="Ho"?s.ordinalNumber(a.getHours(),{unit:"hour"}):Wn.H(a,i)},K:function(a,i,s){const u=a.getHours()%12;return i==="Ko"?s.ordinalNumber(u,{unit:"hour"}):Et(u,i.length)},k:function(a,i,s){let u=a.getHours();return u===0&&(u=24),i==="ko"?s.ordinalNumber(u,{unit:"hour"}):Et(u,i.length)},m:function(a,i,s){return i==="mo"?s.ordinalNumber(a.getMinutes(),{unit:"minute"}):Wn.m(a,i)},s:function(a,i,s){return i==="so"?s.ordinalNumber(a.getSeconds(),{unit:"second"}):Wn.s(a,i)},S:function(a,i){return Wn.S(a,i)},X:function(a,i,s){const u=a.getTimezoneOffset();if(u===0)return"Z";switch(i){case"X":return Tg(u);case"XXXX":case"XX":return Da(u);case"XXXXX":case"XXX":default:return Da(u,":")}},x:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"x":return Tg(u);case"xxxx":case"xx":return Da(u);case"xxxxx":case"xxx":default:return Da(u,":")}},O:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"O":case"OO":case"OOO":return"GMT"+bg(u,":");case"OOOO":default:return"GMT"+Da(u,":")}},z:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"z":case"zz":case"zzz":return"GMT"+bg(u,":");case"zzzz":default:return"GMT"+Da(u,":")}},t:function(a,i,s){const u=Math.trunc(+a/1e3);return Et(u,i.length)},T:function(a,i,s){return Et(+a,i.length)}};function bg(a,i=""){const s=a>0?"-":"+",u=Math.abs(a),c=Math.trunc(u/60),h=u%60;return h===0?s+String(c):s+String(c)+i+Et(h,2)}function Tg(a,i){return a%60===0?(a>0?"-":"+")+Et(Math.abs(a)/60,2):Da(a,i)}function Da(a,i=""){const s=a>0?"-":"+",u=Math.abs(a),c=Et(Math.trunc(u/60),2),h=Et(u%60,2);return s+c+i+h}const Eg=(a,i)=>{switch(a){case"P":return i.date({width:"short"});case"PP":return i.date({width:"medium"});case"PPP":return i.date({width:"long"});case"PPPP":default:return i.date({width:"full"})}},r0=(a,i)=>{switch(a){case"p":return i.time({width:"short"});case"pp":return i.time({width:"medium"});case"ppp":return i.time({width:"long"});case"pppp":default:return i.time({width:"full"})}},bM=(a,i)=>{const s=a.match(/(P+)(p+)?/)||[],u=s[1],c=s[2];if(!c)return Eg(a,i);let h;switch(u){case"P":h=i.dateTime({width:"short"});break;case"PP":h=i.dateTime({width:"medium"});break;case"PPP":h=i.dateTime({width:"long"});break;case"PPPP":default:h=i.dateTime({width:"full"});break}return h.replace("{{date}}",Eg(u,i)).replace("{{time}}",r0(c,i))},TM={p:r0,P:bM},EM=/^D+$/,AM=/^Y+$/,MM=["D","DD","YY","YYYY"];function OM(a){return EM.test(a)}function DM(a){return AM.test(a)}function xM(a,i,s){const u=_M(a,i,s);if(console.warn(u),MM.includes(a))throw new RangeError(u)}function _M(a,i,s){const u=a[0]==="Y"?"years":"days of the month";return`Use \`${a.toLowerCase()}\` instead of \`${a}\` (in \`${i}\`) for formatting ${u} to the input \`${s}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const CM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,RM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,wM=/^'([^]*?)'?$/,zM=/''/g,NM=/[a-zA-Z]/;function Ag(a,i,s){const u=Cu(),c=u.locale??yM,h=u.firstWeekContainsDate??u.locale?.options?.firstWeekContainsDate??1,f=u.weekStartsOn??u.locale?.options?.weekStartsOn??0,p=ke(a,s?.in);if(!U2(p))throw new RangeError("Invalid time value");let y=i.match(RM).map(g=>{const v=g[0];if(v==="p"||v==="P"){const b=TM[v];return b(g,c.formatLong)}return g}).join("").match(CM).map(g=>{if(g==="''")return{isToken:!1,value:"'"};const v=g[0];if(v==="'")return{isToken:!1,value:VM(g)};if(Sg[v])return{isToken:!0,value:g};if(v.match(NM))throw new RangeError("Format string contains an unescaped latin alphabet character `"+v+"`");return{isToken:!1,value:g}});c.localize.preprocessor&&(y=c.localize.preprocessor(p,y));const m={firstWeekContainsDate:h,weekStartsOn:f,locale:c};return y.map(g=>{if(!g.isToken)return g.value;const v=g.value;(DM(v)||OM(v))&&xM(v,i,String(a));const b=Sg[v[0]];return b(p,v,c.localize,m)}).join("")}function VM(a){const i=a.match(wM);return i?i[1].replace(zM,"'"):a}function UM(){const[a,i]=Z.useState(new Date);return Z.useEffect(()=>{const s=setInterval(()=>i(new Date),1e3);return()=>clearInterval(s)},[]),st.jsx("div",{className:"h-full w-full flex flex-col items-center justify-center bg-black text-white",children:st.jsxs("div",{className:"flex flex-col items-center",children:[st.jsx("h1",{className:"text-9xl md:text-[10rem] leading-none font-light tracking-tighter text-white/90",children:Ag(a,"HH:mm")}),st.jsx("div",{className:"mt-6 flex flex-col items-center space-y-2",children:st.jsx("p",{className:"text-2xl font-light tracking-wide text-gray-400 uppercase",children:Ag(a,"EEEE, MMMM do")})})]})})}const du=["https://picsum.photos/1920/1080?random=1","https://picsum.photos/1920/1080?random=2","https://picsum.photos/1920/1080?random=3","https://picsum.photos/1920/1080?random=4","https://picsum.photos/1920/1080?random=5"],LM=()=>{const[a,i]=Z.useState(0);return Z.useEffect(()=>{const s=setInterval(()=>{i(u=>(u+1)%du.length)},15e3);return()=>clearInterval(s)},[]),st.jsxs("div",{className:"w-full h-full bg-black relative overflow-hidden",children:[st.jsxs(pf,{mode:"popLayout",children:[st.jsx(Bl.img,{src:du[a],alt:"Memory",initial:{opacity:0,scale:1.1},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:2,ease:"easeInOut"},className:"absolute inset-0 w-full h-full object-cover"},du[a]),st.jsx(Bl.div,{className:"absolute inset-0 w-full h-full",animate:{scale:[1,1.05],x:[0,20]},transition:{duration:20,ease:"linear"}},`${du[a]}-move`)]}),st.jsx("div",{className:"absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-black/80 to-transparent pointer-events-none"})]})},jM=({transcript:a,isListening:i,agentState:s})=>{const u=Z.useRef(null);return Z.useEffect(()=>{u.current&&u.current.scrollIntoView({behavior:"smooth"})},[a]),st.jsxs("div",{className:"h-full w-full flex flex-col items-center justify-center p-12 bg-black relative",children:[st.jsx("div",{className:"absolute top-12 left-12 flex items-center space-x-4",children:i?st.jsxs("div",{className:"flex items-center space-x-2 text-red-500",children:[st.jsx("div",{className:"w-3 h-3 bg-current rounded-full animate-pulse"}),st.jsx("span",{className:"text-sm font-medium tracking-widest uppercase",children:"Listening"})]}):st.jsxs("div",{className:"flex items-center space-x-2 text-gray-600",children:[st.jsx("div",{className:"w-3 h-3 bg-current rounded-full"}),st.jsx("span",{className:"text-sm font-medium tracking-widest uppercase",children:s})]})}),st.jsx("div",{className:"w-full max-w-5xl text-center",children:st.jsx(pf,{mode:"wait",children:a?st.jsx(Bl.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0},children:st.jsxs("p",{className:"text-4xl md:text-5xl font-light tracking-tight text-white leading-relaxed",children:['"',a,'"']})}):st.jsx(Bl.div,{initial:{opacity:0},animate:{opacity:1},className:"text-white/40"})})})]})};function BM(){const[a,i]=Z.useState(0),s=`ws://${window.location.hostname}:8000/api/voice/connect?client_id=frontend_gui`,[u,c]=Z.useState(""),[h,f]=Z.useState("IDLE"),{sendMessage:p,lastMessage:y,readyState:m}=_2(s,{onOpen:()=>console.log("WebSocket Connected"),shouldReconnect:b=>!0,reconnectAttempts:10,reconnectInterval:3e3});Z.useEffect(()=>{a===2&&h==="IDLE"&&m===Qc.ReadyState.OPEN&&(console.log("Auto-starting listener..."),p(JSON.stringify({type:"manual_start_listening"})))},[a,h,m,p]),Z.useEffect(()=>{if(y!==null)try{const b=JSON.parse(y.data);b.type==="transcript"?c(b.text):b.type==="state"&&(f(b.state),(b.state==="LISTENING"||b.state==="THINKING")&&i(2),b.state==="IDLE"&&setTimeout(()=>i(0),1e4))}catch(b){console.error("Failed to parse WS message",b)}},[y]);const g=b=>{b>0?i(T=>(T+1)%3):i(T=>T===0?2:T-1)},v=[st.jsx(UM,{},"clock"),st.jsx(LM,{},"photos"),st.jsx(jM,{transcript:u,isListening:h==="LISTENING",agentState:h},"transcription")];return st.jsxs("div",{className:"w-screen h-screen bg-black overflow-hidden relative font-sans text-white select-none",children:[st.jsx(pf,{mode:"popLayout",initial:!1,children:st.jsx(Bl.div,{className:"absolute inset-0 w-full h-full",initial:{x:300,opacity:0},animate:{x:0,opacity:1},exit:{x:-300,opacity:0},transition:{type:"spring",stiffness:300,damping:30},drag:"x",dragConstraints:{left:0,right:0},dragElastic:.2,onDragEnd:(b,{offset:T,velocity:A})=>{const _=T.x;_<-100?g(1):_>100&&g(-1)},children:v[a]},a)}),st.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 flex space-x-3 z-50",children:[0,1,2].map(b=>st.jsx("div",{className:`h-1.5 rounded-full transition-all duration-300 ${b===a?"bg-white w-8":"bg-white/40 w-1.5"}`},b))}),st.jsx("div",{className:"fixed top-2 right-2 w-2 h-2 rounded-full z-50 transition-colors",style:{backgroundColor:m===Qc.ReadyState.OPEN?"#00ADB5":"#FF4136"}})]})}q1.createRoot(document.getElementById("root")).render(st.jsx(Z.StrictMode,{children:st.jsx(BM,{})})); diff --git a/src/backend/static/index.html b/src/backend/static/index.html new file mode 100644 index 00000000..ee19b042 --- /dev/null +++ b/src/backend/static/index.html @@ -0,0 +1,14 @@ + + + + + + + frontend + + + + +
+ + diff --git a/src/backend/static/vite.svg b/src/backend/static/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/src/backend/static/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/start_server.sh b/start_server.sh index 09c223ec..d5c58451 100755 --- a/start_server.sh +++ b/start_server.sh @@ -1,5 +1,11 @@ #!/usr/bin/env bash -# Start both FastAPI backend and frontend dev server +# Start FastAPI backend and both frontend dev servers + +set -e + +# Get the script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" # Ensure logs directory exists mkdir -p logs @@ -14,9 +20,13 @@ cleanup() { trap cleanup SIGINT SIGTERM # Start the backend +echo "Cleaning up port 8000..." +uv run python scripts/kill_port.py 8000 + echo "Starting FastAPI backend..." uv run uvicorn backend.app:create_app \ --factory \ + --host 0.0.0.0 \ --reload & BACKEND_PID=$! @@ -24,19 +34,37 @@ BACKEND_PID=$! # Wait a moment for backend to start sleep 2 -# Start the frontend -echo "Starting frontend dev server..." -cd frontend && npm run dev & +# Start the Svelte frontend (main chat UI) +echo "Cleaning up port 5173..." +uv run python scripts/kill_port.py 5173 + +echo "Starting Svelte frontend (chat UI) on port 5173..." +(cd "$SCRIPT_DIR/frontend" && npm run dev) & -FRONTEND_PID=$! +SVELTE_PID=$! +# Start the Kiosk frontend +echo "Cleaning up port 5174..." +uv run python scripts/kill_port.py 5174 + +echo "Starting Kiosk frontend on port 5174..." +(cd "$SCRIPT_DIR/frontend-kiosk" && npm run dev) & + +KIOSK_PID=$! + +echo "" +echo "==============================================" +echo "Backend: http://localhost:8000" +echo "Svelte Chat UI: http://localhost:5173" +echo "Kiosk UI: http://localhost:5174" echo "" -echo "======================================" -echo "Backend running on http://localhost:8000" -echo "Frontend running on http://localhost:5173" -echo "======================================" -echo "Press Ctrl+C to stop both servers" +echo "From other machines (use your IP):" +echo " Backend: http://192.168.1.223:8000" +echo " Svelte Chat UI: http://192.168.1.223:5173" +echo " Kiosk UI: http://192.168.1.223:5174" +echo "==============================================" +echo "Press Ctrl+C to stop all servers" echo "" -# Wait for both processes +# Wait for all processes wait diff --git a/tests/verify_voice_backend.py b/tests/verify_voice_backend.py new file mode 100644 index 00000000..d8f444ff --- /dev/null +++ b/tests/verify_voice_backend.py @@ -0,0 +1,89 @@ +import asyncio +import base64 +import json +import logging +import sys + +import websockets + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(levelname)s - %(message)s' +) +logger = logging.getLogger("TestClient") + +BACKEND_URL = "ws://localhost:8000/api/voice/connect?client_id=test_script" + +async def test_voice_loop(): + logger.info(f"Connecting to {BACKEND_URL}...") + try: + async with websockets.connect(BACKEND_URL) as websocket: + logger.info("Connected!") + + # 1. Send connection_ready + await websocket.send(json.dumps({ + "type": "connection_ready" + })) + logger.info("Sent connection_ready") + + # 2. Send wakeword_detected + # This triggers the backend to start an STT session + await websocket.send(json.dumps({ + "type": "wakeword_detected" + })) + logger.info("Sent wakeword_detected") + + # 3. Simulate streaming audio + # We don't have real audio bytes easily, but Deepgram might error on silence/garbage + # or just return empty transcripts. + # Ideally we'd send a wav file if we had one. + # Let's try sending a few chunks of silence (0x00) + # 16kHz 16-bit mono = 32000 bytes/sec + # Send 100ms chunks = 3200 bytes + + silence_chunk = bytes(3200) + b64_data = base64.b64encode(silence_chunk).decode('utf-8') + + for _ in range(5): + await websocket.send(json.dumps({ + "type": "audio_chunk", + "data": b64_data + })) + await asyncio.sleep(0.1) + + logger.info("Sent 0.5s of silence") + + # 4. End Stream + await websocket.send(json.dumps({ + "type": "stream_end" + })) + logger.info("Sent stream_end") + + # 5. Listen for responses + # Since we sent silence, we probably won't get a transcript -> TTS response + # But we can check if we get disconnected or errors. + + # To *really* test TTS, we might need to mock the STT service to return a fake transcript + # OR we rely on Deepgram potentially returning *something* or at least "connection established" logs in backend. + + wait_time = 5 + logger.info(f"Listening for {wait_time} seconds...") + + try: + msg = await asyncio.wait_for(websocket.recv(), timeout=wait_time) + data = json.loads(msg) + logger.info(f"Received message: {data.get('type')}") + if data.get('type') == 'tts_audio': + logger.info("✅ SUCCESS: Received TTS Audio!") + return + except asyncio.TimeoutError: + logger.info("No response received (expected if sending silence)") + + except Exception as e: + logger.error(f"Test failed: {e}") + +if __name__ == "__main__": + if sys.platform == 'win32': + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + asyncio.run(test_voice_loop()) diff --git a/uv.lock b/uv.lock index 283f0fa3..0b17f96c 100644 --- a/uv.lock +++ b/uv.lock @@ -154,6 +154,7 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "aiosqlite" }, + { name = "deepgram-sdk" }, { name = "fastapi", extra = ["standard"] }, { name = "google-api-python-client" }, { name = "google-auth" }, @@ -182,6 +183,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "aiosqlite", specifier = ">=0.20.0" }, + { name = "deepgram-sdk", specifier = ">=5.3.0" }, { name = "fastapi", extras = ["standard"], specifier = ">=0.115.0" }, { name = "google-api-python-client", specifier = ">=2.0.0" }, { name = "google-auth", specifier = ">=2.0.0" }, @@ -490,6 +492,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/66/66/150e406a2db5535533aa3c946de58f0371f2e412e23f050c704588023e6e/cymem-2.0.13-cp314-cp314t-win_arm64.whl", hash = "sha256:e9027764dc5f1999fb4b4cabee1d0322c59e330c0a6485b436a68275f614277f", size = 39715, upload-time = "2025-11-14T14:58:24.773Z" }, ] +[[package]] +name = "deepgram-sdk" +version = "5.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/9c/4529cc5818e9305ac9be3c24545249ad57418cbc3736c3f1c0a8397b59f5/deepgram_sdk-5.3.0.tar.gz", hash = "sha256:4e682a53f64c26dc49d8fd70865eae1e98236d313870d1bcf5f107f125e53793", size = 148179, upload-time = "2025-11-03T15:24:02.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/e2/cda09edad156199cc9e330533f6b72cb5276c0d476cab7f1744be7ffa16e/deepgram_sdk-5.3.0-py3-none-any.whl", hash = "sha256:431418fdffbd93cdf6a78a168984e3df3cb696818ced1cfc52ce336e0bc6a7fe", size = 390669, upload-time = "2025-11-03T15:24:01.078Z" }, +] + [[package]] name = "dnspython" version = "2.8.0" From 84274a2d1b21c89c9bec3cf5443cb73eb61eed90 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 15 Dec 2025 13:47:36 -0500 Subject: [PATCH 02/78] WORKING WITH WEBSITE EXAMPLE STT --- src/backend/routers/voice_assistant.py | 11 +- src/backend/services/stt_service.py | 338 +++++++++++++++---------- 2 files changed, 214 insertions(+), 135 deletions(-) diff --git a/src/backend/routers/voice_assistant.py b/src/backend/routers/voice_assistant.py index ebe365c9..10d7fe3e 100644 --- a/src/backend/routers/voice_assistant.py +++ b/src/backend/routers/voice_assistant.py @@ -97,8 +97,17 @@ async def on_stt_error(error: str): if session and session.state == "LISTENING": payload = data.get("data") if payload: - chunk = base64.b64decode(payload) + audio_b64 = payload.get("audio") if isinstance(payload, dict) else payload + chunk = base64.b64decode(audio_b64) + logger.debug(f"Received audio chunk for {client_id}: {len(chunk)} bytes") await stt_service.stream_audio(client_id, chunk) + else: + logger.warning(f"Received audio_chunk event without data for {client_id}") + else: + if not session: + logger.warning(f"Received audio_chunk but no session for {client_id}") + else: + logger.debug(f"Received audio_chunk but state is {session.state}, not LISTENING") elif event_type == "stream_end": logger.info(f"Stream end for {client_id}") diff --git a/src/backend/services/stt_service.py b/src/backend/services/stt_service.py index b41e6c06..55fb6b99 100644 --- a/src/backend/services/stt_service.py +++ b/src/backend/services/stt_service.py @@ -1,19 +1,185 @@ +""" +Deepgram STT service using the synchronous SDK pattern with threading. +Based on working implementation from deepgram-voice-transcriber. +""" import asyncio -import json import logging +import threading from typing import Callable, Optional -from deepgram import DeepgramClient, AsyncDeepgramClient +from deepgram import DeepgramClient from deepgram.core.events import EventType from backend.config import get_settings logger = logging.getLogger(__name__) +# Audio settings (must match Pi sender) +SAMPLE_RATE = 16000 + + +class DeepgramSession: + """Manages a single Deepgram connection using the SDK v5 sync pattern.""" + + def __init__( + self, + api_key: str, + session_id: str, + on_transcript: Callable[[str, bool], None], + on_error: Optional[Callable[[str], None]] = None + ): + self.api_key = api_key + self.session_id = session_id + self.on_transcript = on_transcript + self.on_error = on_error + + self._client = DeepgramClient(api_key=api_key) + self._context_manager = None + self._socket = None + self._ready = threading.Event() + self._running = False + self._listening_thread = None + + def _handle_message(self, result): + """Handle transcript messages from Deepgram.""" + try: + # For v2 (Flux): transcript is at top level with event type + transcript = getattr(result, "transcript", None) + if transcript: + event = getattr(result, "event", None) + is_end_of_turn = event == "EndOfTurn" + logger.info(f"Transcript for {self.session_id}: '{transcript}' (eot={is_end_of_turn})") + + # Call callback - need to schedule in asyncio loop if it's async + if asyncio.iscoroutinefunction(self.on_transcript): + try: + loop = asyncio.get_running_loop() + asyncio.run_coroutine_threadsafe( + self.on_transcript(transcript, is_end_of_turn), + loop + ) + except RuntimeError: + # No running loop, try to create one + asyncio.run(self.on_transcript(transcript, is_end_of_turn)) + else: + self.on_transcript(transcript, is_end_of_turn) + else: + # v1 style: check for channel.alternatives + if hasattr(result, 'channel'): + alternatives = result.channel.alternatives + if alternatives and len(alternatives) > 0: + transcript_text = alternatives[0].transcript + is_final = getattr(result, 'is_final', False) + + if transcript_text: + logger.info(f"Transcript for {self.session_id}: '{transcript_text}' (final={is_final})") + if asyncio.iscoroutinefunction(self.on_transcript): + try: + loop = asyncio.get_running_loop() + asyncio.run_coroutine_threadsafe( + self.on_transcript(transcript_text, is_final), + loop + ) + except RuntimeError: + asyncio.run(self.on_transcript(transcript_text, is_final)) + else: + self.on_transcript(transcript_text, is_final) + except Exception as e: + logger.error(f"Error processing transcript for {self.session_id}: {e}", exc_info=True) + + def _on_open(self, _): + logger.info(f"✅ Deepgram connected for {self.session_id}") + self._ready.set() + + def _on_close(self, _): + logger.info(f"Deepgram disconnected for {self.session_id}") + self._ready.clear() + + def _on_error(self, error): + logger.error(f"Deepgram error for {self.session_id}: {error}") + if self.on_error: + if asyncio.iscoroutinefunction(self.on_error): + try: + loop = asyncio.get_running_loop() + asyncio.run_coroutine_threadsafe(self.on_error(str(error)), loop) + except RuntimeError: + asyncio.run(self.on_error(str(error))) + else: + self.on_error(str(error)) + + def connect(self) -> bool: + """Connect to Deepgram.""" + # Use Flux model with v2 API for fast turn-taking detection + params = { + "model": "flux-general-en", + "encoding": "linear16", + "sample_rate": str(SAMPLE_RATE), + "eot_threshold": "0.7", # End-of-turn confidence threshold + "eot_timeout_ms": "5000", # Max wait for end-of-turn + } + + logger.info(f"Connecting to Deepgram Flux for {self.session_id}...") + + try: + # Use v2 for Flux turn-taking + self._context_manager = self._client.listen.v2.connect(**params) + self._socket = self._context_manager.__enter__() + + # Register handlers + self._socket.on(EventType.OPEN, self._on_open) + self._socket.on(EventType.MESSAGE, self._handle_message) + self._socket.on(EventType.ERROR, self._on_error) + self._socket.on(EventType.CLOSE, self._on_close) + + # Start listening in background thread + def listen_loop(): + try: + self._socket.start_listening() + except Exception as e: + if self._running: + logger.error(f"Listen error for {self.session_id}: {e}") + + self._running = True + self._listening_thread = threading.Thread(target=listen_loop, daemon=True) + self._listening_thread.start() + + # Wait for connection + if not self._ready.wait(timeout=10.0): + raise RuntimeError(f"Failed to connect to Deepgram for {self.session_id}") + + logger.info(f"Deepgram session ready for {self.session_id}") + return True + + except Exception as e: + logger.error(f"Failed to connect to Deepgram for {self.session_id}: {e}", exc_info=True) + return False + + def send_audio(self, data: bytes): + """Send audio to Deepgram.""" + if self._socket and self._ready.is_set(): + try: + self._socket.send_media(data) + except Exception as e: + logger.error(f"Error sending audio for {self.session_id}: {e}") + + def close(self): + """Close connection.""" + self._running = False + self._ready.clear() + if self._context_manager: + try: + self._context_manager.__exit__(None, None, None) + except Exception as e: + logger.warning(f"Error closing Deepgram for {self.session_id}: {e}") + self._context_manager = None + self._socket = None + logger.info(f"Deepgram session closed for {self.session_id}") + class STTService: """ Manages Deepgram streaming STT sessions. + Uses synchronous SDK pattern with threading for reliable connection management. """ def __init__(self): @@ -22,10 +188,8 @@ def __init__(self): if not api_key: raise ValueError("DEEPGRAM_API_KEY is not set") - self.client = AsyncDeepgramClient(api_key=api_key) - self.live_connections = {} # session_id -> socket_client_instance - self.session_tasks = {} # session_id -> asyncio.Task (manager) - self.stop_events = {} # session_id -> asyncio.Event + self.api_key = api_key + self.sessions: dict[str, DeepgramSession] = {} async def create_session( self, @@ -37,147 +201,53 @@ async def create_session( Start a new live transcription session. """ try: - # Create a stop event for this session - stop_event = asyncio.Event() - self.stop_events[session_id] = stop_event - - # Start background task to manage connection - task = asyncio.create_task( - self._manage_deepgram_connection(session_id, stop_event, on_transcript, on_error) + # Close existing session if any + if session_id in self.sessions: + await self.close_session(session_id) + + # Create new session + session = DeepgramSession( + api_key=self.api_key, + session_id=session_id, + on_transcript=on_transcript, + on_error=on_error ) - self.session_tasks[session_id] = task - logger.info(f"Started STT initialization task for {session_id}") - return True + # Connect in thread pool to not block asyncio + loop = asyncio.get_running_loop() + success = await loop.run_in_executor(None, session.connect) - except Exception as e: - logger.error(f"Failed to create STT session: {e}") - if on_error: - if asyncio.iscoroutinefunction(on_error): - await on_error(str(e)) - else: - on_error(str(e)) - return False - - async def _manage_deepgram_connection( - self, - session_id: str, - stop_event: asyncio.Event, - on_transcript: Callable[[str, bool], None], - on_error: Optional[Callable[[str], None]] = None - ): - """ - Background task to hold the Deepgram WebSocket connection open. - """ - try: - # Flattened options as required by this SDK version - # Note: passing strings for boolean-like params as per type hints seen in inspection - options = { - "model": "nova-2", - "language": "en-US", - "smart_format": "true", - "interim_results": "true", - "vad_events": "true", - "endpointing": "1000", - } - - async with self.client.listen.v1.connect(**options) as dg_connection: - self.live_connections[session_id] = dg_connection - logger.info(f"Deepgram connected for {session_id}") - - # Register handlers - async def handle_message(self, result, **kwargs): - # result is an object (V1SocketClientResponse) - # We need to parse it. - # Based on SDK, it emits parsed objects directly. - # result might be ListenV1ResultsEvent etc. - - try: - # Check if it has 'channel' attribute (Transcript event) - if hasattr(result, 'channel'): - alternatives = result.channel.alternatives - if alternatives and len(alternatives) > 0: - transcript = alternatives[0].transcript - is_final = result.is_final - - if transcript: - if asyncio.iscoroutinefunction(on_transcript): - await on_transcript(transcript, is_final) - else: - on_transcript(transcript, is_final) - - # Handle errors if result is error type? - # The SDK uses EventType.ERROR for errors, passing exc. - except Exception as e: - logger.error(f"Error processing transcript: {e}") - - async def handle_error(self, error, **kwargs): - logger.error(f"Deepgram error for {session_id}: {error}") - if on_error: - if asyncio.iscoroutinefunction(on_error): - await on_error(str(error)) - else: - on_error(str(error)) - - # Register event listeners - # Since dg_connection is AsyncV1SocketClient which is EventEmitterMixin - # We typically use .on(EventType.MESSAGE, handler) - # But handler signature in EventEmitterMixin? - # SDK source says: await handler(self, event_data, **kwargs) - dg_connection.on(EventType.MESSAGE, handle_message) - dg_connection.on(EventType.ERROR, handle_error) - - # Start the listening loop in a separate task so we can also check stop_event - listen_task = asyncio.create_task(dg_connection.start_listening()) - - # Wait for stop signal - await stop_event.wait() - - # Cleanup - # Cancelling listen task (or it stops when connection closes, but we are closing connection by exiting context) - listen_task.cancel() - try: - await listen_task - except asyncio.CancelledError: - pass + if success: + self.sessions[session_id] = session + logger.info(f"STT session created for {session_id}") + return True + else: + logger.error(f"Failed to create STT session for {session_id}") + return False except Exception as e: - logger.error(f"Deepgram connection loop failed for {session_id}: {e}") + logger.error(f"Failed to create STT session: {e}", exc_info=True) if on_error: if asyncio.iscoroutinefunction(on_error): await on_error(str(e)) else: on_error(str(e)) - finally: - # Cleanup global state - self.live_connections.pop(session_id, None) - self.stop_events.pop(session_id, None) - self.session_tasks.pop(session_id, None) - logger.info(f"Deepgram session ended for {session_id}") + return False async def stream_audio(self, session_id: str, audio_bytes: bytes): """Send audio data to the live connection.""" - connection = self.live_connections.get(session_id) - if connection: - try: - # Use send_media for binary data - await connection.send_media(audio_bytes) - except Exception as e: - logger.error(f"Error streaming audio for {session_id}: {e}") + session = self.sessions.get(session_id) + if session: + # Run in executor to not block asyncio + loop = asyncio.get_running_loop() + await loop.run_in_executor(None, session.send_audio, audio_bytes) + else: + logger.warning(f"No session found for {session_id} when streaming audio") async def close_session(self, session_id: str): """Close the live connection.""" - # Signal the background task to exit - event = self.stop_events.get(session_id) - if event: - event.set() - - # Wait for task to finish? - # Optional, but good for cleanup. - task = self.session_tasks.get(session_id) - if task: - try: - # wait briefly - await asyncio.wait([task], timeout=2.0) - except Exception: - pass + session = self.sessions.pop(session_id, None) + if session: + loop = asyncio.get_running_loop() + await loop.run_in_executor(None, session.close) + logger.info(f"STT session closed for {session_id}") From f0378074f3d07894a9049882e308a66429a19a90 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 15 Dec 2025 20:32:09 -0500 Subject: [PATCH 03/78] feat: Add configurable Kiosk STT settings for Deepgram EOT and keyterms. --- frontend/src/App.svelte | 12 +- frontend/src/lib/api/kiosk.ts | 62 +++ .../src/lib/components/chat/ChatHeader.svelte | 46 ++- .../components/chat/KioskSettingsModal.svelte | 383 ++++++++++++++++++ frontend/src/lib/stores/kioskSettings.ts | 93 +++++ src/backend/app.py | 2 + src/backend/data/kiosk_stt_settings.json | 6 + src/backend/routers/kiosk.py | 38 ++ src/backend/schemas/kiosk_stt_settings.py | 43 ++ src/backend/services/kiosk_stt_settings.py | 81 ++++ src/backend/services/stt_service.py | 41 +- 11 files changed, 799 insertions(+), 8 deletions(-) create mode 100644 frontend/src/lib/api/kiosk.ts create mode 100644 frontend/src/lib/components/chat/KioskSettingsModal.svelte create mode 100644 frontend/src/lib/stores/kioskSettings.ts create mode 100644 src/backend/data/kiosk_stt_settings.json create mode 100644 src/backend/routers/kiosk.py create mode 100644 src/backend/schemas/kiosk_stt_settings.py create mode 100644 src/backend/services/kiosk_stt_settings.py diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index d1add375..7bba4cf0 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -18,6 +18,7 @@ import QuickPrompts from "./lib/components/chat/QuickPrompts.svelte"; import SpeechSettingsModal from "./lib/components/chat/SpeechSettingsModal.svelte"; import SystemSettingsModal from "./lib/components/chat/SystemSettingsModal.svelte"; + import KioskSettingsModal from "./lib/components/chat/KioskSettingsModal.svelte"; import ModelExplorer from "./lib/components/model-explorer/ModelExplorer.svelte"; import { clearPendingSubmit, @@ -58,6 +59,7 @@ let modelSettingsOpen = false; let systemSettingsOpen = false; let speechSettingsOpen = false; + let kioskSettingsOpen = false; let presetsOpen = false; let lastSpeechPromptVersion = 0; let generationModalLoading = false; @@ -110,7 +112,8 @@ generationModalOpen || modelSettingsOpen || systemSettingsOpen || - speechSettingsOpen, + speechSettingsOpen || + kioskSettingsOpen, ); } } @@ -308,6 +311,7 @@ on:openModelSettings={() => (modelSettingsOpen = true)} on:openSystemSettings={() => (systemSettingsOpen = true)} on:openSpeechSettings={() => (speechSettingsOpen = true)} + on:openKioskSettings={() => (kioskSettingsOpen = true)} on:openPresets={() => (presetsOpen = true)} /> @@ -386,6 +390,12 @@ open={speechSettingsOpen} on:close={() => (speechSettingsOpen = false)} /> + + (kioskSettingsOpen = false)} + /> + (presetsOpen = false)} /> diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts new file mode 100644 index 00000000..a141727d --- /dev/null +++ b/frontend/src/lib/api/kiosk.ts @@ -0,0 +1,62 @@ +/** + * Kiosk API client for STT settings. + */ + +import { API_BASE_URL } from './config'; + +export interface KioskSttSettings { + eot_threshold: number; + eot_timeout_ms: number; + eager_eot_threshold: number | null; + keyterms: string[]; +} + +export interface KioskSttSettingsUpdate { + eot_threshold?: number; + eot_timeout_ms?: number; + eager_eot_threshold?: number | null; + keyterms?: string[]; +} + +/** + * Fetch current kiosk STT settings from the backend. + */ +export async function fetchKioskSttSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/stt-settings`); + if (!response.ok) { + throw new Error(`Failed to fetch kiosk STT settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Update kiosk STT settings on the backend. + */ +export async function updateKioskSttSettings( + update: KioskSttSettingsUpdate +): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/stt-settings`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(update), + }); + if (!response.ok) { + throw new Error(`Failed to update kiosk STT settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Reset kiosk STT settings to defaults on the backend. + */ +export async function resetKioskSttSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/stt-settings/reset`, { + method: 'POST', + }); + if (!response.ok) { + throw new Error(`Failed to reset kiosk STT settings: ${response.statusText}`); + } + return response.json(); +} diff --git a/frontend/src/lib/components/chat/ChatHeader.svelte b/frontend/src/lib/components/chat/ChatHeader.svelte index 38735286..1f7ee6f5 100644 --- a/frontend/src/lib/components/chat/ChatHeader.svelte +++ b/frontend/src/lib/components/chat/ChatHeader.svelte @@ -18,6 +18,7 @@ openModelSettings: void; openSystemSettings: void; openSpeechSettings: void; + openKioskSettings: void; openPresets: void; }>(); @@ -86,6 +87,10 @@ dispatch("openSpeechSettings"); } + function forwardOpenKioskSettings(): void { + dispatch("openKioskSettings"); + } + function forwardOpenPresets(): void { dispatch("openPresets"); } @@ -131,7 +136,11 @@ data-loading={webSearchMenuLoading} aria-hidden="true" > - + + + + {#if loading} +

Loading settings…

+ {:else} +
+ +
+
+ Speech Recognition + Deepgram Flux end-of-turn detection settings. +
+ +
+ +
+
+
+ EOT Threshold + {draft.eot_threshold.toFixed(2)} +
+ { + draft = { + ...draft, + eot_threshold: parseFloat( + (e.target as HTMLInputElement).value, + ), + }; + markDirty(); + }} + /> +
+ 0.5 (fast) + 0.9 (reliable) +
+
+
+ + +
+
+
+ EOT Timeout + {draft.eot_timeout_ms}ms +
+ { + draft = { + ...draft, + eot_timeout_ms: parseInt( + (e.target as HTMLInputElement).value, + 10, + ), + }; + markDirty(); + }} + /> +
+ 500ms + 10s +
+
+
+
+
+ + +
+
+ Advanced + Optional fine-tuning options. +
+ + + + {#if draft.eager_eot_threshold !== null} +
+
+ Eager EOT Threshold + {draft.eager_eot_threshold?.toFixed(2) ?? "—"} +
+ { + draft = { + ...draft, + eager_eot_threshold: parseFloat( + (e.target as HTMLInputElement).value, + ), + }; + markDirty(); + }} + /> +
+ 0.3 (eager) + 0.9 (conservative) +
+
+ {/if} +
+ + +
+
+ Keyterms + Words to boost recognition (one per line, up to 100). +
+ +
+ + + + + +
+ {/if} + +
+ {#if statusMessage} + {statusMessage} + {:else if saving} + Saving changes… + {:else if dirty} + Pending changes; closing this modal will save. + {:else} + Changes save when you close this modal. + {/if} +
+ +{/if} + + diff --git a/frontend/src/lib/stores/kioskSettings.ts b/frontend/src/lib/stores/kioskSettings.ts new file mode 100644 index 00000000..d3b12000 --- /dev/null +++ b/frontend/src/lib/stores/kioskSettings.ts @@ -0,0 +1,93 @@ +/** + * Kiosk STT settings store. + * Fetches from and persists to the backend API. + */ + +import { get, writable } from 'svelte/store'; +import { + type KioskSttSettings, + type KioskSttSettingsUpdate, + fetchKioskSttSettings, + resetKioskSttSettings, + updateKioskSttSettings, +} from '../api/kiosk'; + +export const DEFAULT_KIOSK_STT_SETTINGS: KioskSttSettings = { + eot_threshold: 0.7, + eot_timeout_ms: 5000, + eager_eot_threshold: null, + keyterms: [], +}; + +function cloneSettings(value: KioskSttSettings): KioskSttSettings { + return JSON.parse(JSON.stringify(value)) as KioskSttSettings; +} + +export function getDefaultKioskSttSettings(): KioskSttSettings { + return cloneSettings(DEFAULT_KIOSK_STT_SETTINGS); +} + +function createKioskSettingsStore() { + const store = writable(getDefaultKioskSttSettings()); + let loaded = false; + let loading = false; + + async function load(): Promise { + if (loading) { + // Return current value while loading + return get(store); + } + loading = true; + try { + const settings = await fetchKioskSttSettings(); + store.set(settings); + loaded = true; + return settings; + } catch (error) { + console.error('Failed to load kiosk STT settings:', error); + return get(store); + } finally { + loading = false; + } + } + + async function save(update: KioskSttSettingsUpdate): Promise { + try { + const settings = await updateKioskSttSettings(update); + store.set(settings); + return settings; + } catch (error) { + console.error('Failed to save kiosk STT settings:', error); + throw error; + } + } + + async function reset(): Promise { + try { + const settings = await resetKioskSttSettings(); + store.set(settings); + return settings; + } catch (error) { + console.error('Failed to reset kiosk STT settings:', error); + throw error; + } + } + + return { + subscribe: store.subscribe, + load, + save, + reset, + get isLoaded(): boolean { + return loaded; + }, + get current(): KioskSttSettings { + return get(store); + }, + }; +} + +export const kioskSettingsStore = createKioskSettingsStore(); + +// Re-export types for convenience +export type { KioskSttSettings, KioskSttSettingsUpdate }; diff --git a/src/backend/app.py b/src/backend/app.py index d6bd741d..a5b62158 100644 --- a/src/backend/app.py +++ b/src/backend/app.py @@ -23,6 +23,7 @@ from .routers.settings import router as settings_router from .routers.spotify_auth import router as spotify_auth_router from .routers.stt import router as stt_router +from .routers.kiosk import router as kiosk_router from .routers.suggestions import router as suggestions_router from .routers.uploads import router as uploads_router from .services.attachments import AttachmentService @@ -251,6 +252,7 @@ async def lifespan(app: FastAPI): app.include_router(presets_router) app.include_router(mcp_router) app.include_router(stt_router) + app.include_router(kiosk_router) # helper for voice assistant imports to avoid circular deps if any, # though here it should be fine. diff --git a/src/backend/data/kiosk_stt_settings.json b/src/backend/data/kiosk_stt_settings.json new file mode 100644 index 00000000..373e4eec --- /dev/null +++ b/src/backend/data/kiosk_stt_settings.json @@ -0,0 +1,6 @@ +{ + "eot_threshold": 0.7, + "eot_timeout_ms": 5000, + "eager_eot_threshold": null, + "keyterms": [] +} \ No newline at end of file diff --git a/src/backend/routers/kiosk.py b/src/backend/routers/kiosk.py new file mode 100644 index 00000000..3df96449 --- /dev/null +++ b/src/backend/routers/kiosk.py @@ -0,0 +1,38 @@ +"""Kiosk API router for STT settings and related configuration.""" + +import logging + +from fastapi import APIRouter + +from backend.schemas.kiosk_stt_settings import KioskSttSettings, KioskSttSettingsUpdate +from backend.services.kiosk_stt_settings import get_kiosk_stt_settings_service + +logger = logging.getLogger(__name__) +router = APIRouter(prefix="/api/kiosk", tags=["Kiosk"]) + + +@router.get("/stt-settings", response_model=KioskSttSettings) +async def get_stt_settings() -> KioskSttSettings: + """Get current kiosk STT settings.""" + service = get_kiosk_stt_settings_service() + settings = service.get_settings() + logger.debug(f"Returning kiosk STT settings: {settings}") + return settings + + +@router.put("/stt-settings", response_model=KioskSttSettings) +async def update_stt_settings(update: KioskSttSettingsUpdate) -> KioskSttSettings: + """Update kiosk STT settings.""" + service = get_kiosk_stt_settings_service() + settings = service.update_settings(update) + logger.info(f"Updated kiosk STT settings: {settings}") + return settings + + +@router.post("/stt-settings/reset", response_model=KioskSttSettings) +async def reset_stt_settings() -> KioskSttSettings: + """Reset kiosk STT settings to defaults.""" + service = get_kiosk_stt_settings_service() + settings = service.reset_to_defaults() + logger.info("Reset kiosk STT settings to defaults") + return settings diff --git a/src/backend/schemas/kiosk_stt_settings.py b/src/backend/schemas/kiosk_stt_settings.py new file mode 100644 index 00000000..3267e553 --- /dev/null +++ b/src/backend/schemas/kiosk_stt_settings.py @@ -0,0 +1,43 @@ +"""Kiosk STT settings schema for Deepgram Flux configuration.""" + +from pydantic import BaseModel, Field + + +class KioskSttSettings(BaseModel): + """Settings for Deepgram Flux STT in kiosk mode.""" + + eot_threshold: float = Field( + default=0.7, + ge=0.5, + le=0.9, + description="End-of-turn confidence threshold (0.5-0.9). Higher = more reliable but slower.", + ) + + eot_timeout_ms: int = Field( + default=5000, + ge=500, + le=10000, + description="Maximum wait (ms) before forcing end-of-turn regardless of confidence.", + ) + + eager_eot_threshold: float | None = Field( + default=None, + ge=0.3, + le=0.9, + description="Optional eager end-of-turn threshold for speculative LLM generation.", + ) + + keyterms: list[str] = Field( + default_factory=list, + max_length=100, + description="Words/phrases to boost recognition (max 100).", + ) + + +class KioskSttSettingsUpdate(BaseModel): + """Partial update schema - all fields optional.""" + + eot_threshold: float | None = Field(default=None, ge=0.5, le=0.9) + eot_timeout_ms: int | None = Field(default=None, ge=500, le=10000) + eager_eot_threshold: float | None = Field(default=None, ge=0.3, le=0.9) + keyterms: list[str] | None = Field(default=None, max_length=100) diff --git a/src/backend/services/kiosk_stt_settings.py b/src/backend/services/kiosk_stt_settings.py new file mode 100644 index 00000000..a6b4d841 --- /dev/null +++ b/src/backend/services/kiosk_stt_settings.py @@ -0,0 +1,81 @@ +"""Kiosk STT settings service for persisting Deepgram Flux configuration.""" + +import json +import logging +from pathlib import Path +from typing import Optional + +from backend.schemas.kiosk_stt_settings import KioskSttSettings, KioskSttSettingsUpdate + +logger = logging.getLogger(__name__) + +# Default storage path +_DATA_DIR = Path(__file__).parent.parent / "data" +_SETTINGS_FILE = _DATA_DIR / "kiosk_stt_settings.json" + + +class KioskSttSettingsService: + """Service for managing kiosk STT settings persistence.""" + + def __init__(self, settings_path: Optional[Path] = None): + self._path = settings_path or _SETTINGS_FILE + self._cached: Optional[KioskSttSettings] = None + + def _ensure_data_dir(self) -> None: + """Ensure the data directory exists.""" + self._path.parent.mkdir(parents=True, exist_ok=True) + + def get_settings(self) -> KioskSttSettings: + """Load settings from file or return defaults.""" + if self._cached is not None: + return self._cached + + if self._path.exists(): + try: + data = json.loads(self._path.read_text()) + self._cached = KioskSttSettings.model_validate(data) + logger.info(f"Loaded kiosk STT settings from {self._path}") + except Exception as e: + logger.warning(f"Failed to load kiosk STT settings: {e}, using defaults") + self._cached = KioskSttSettings() + else: + self._cached = KioskSttSettings() + logger.info("Using default kiosk STT settings") + + return self._cached + + def update_settings(self, update: KioskSttSettingsUpdate) -> KioskSttSettings: + """Update settings with partial data and persist to file.""" + current = self.get_settings() + + # Apply non-None updates + update_data = update.model_dump(exclude_none=True) + merged = current.model_copy(update=update_data) + + self._save(merged) + return merged + + def reset_to_defaults(self) -> KioskSttSettings: + """Reset settings to defaults.""" + defaults = KioskSttSettings() + self._save(defaults) + return defaults + + def _save(self, settings: KioskSttSettings) -> None: + """Persist settings to file.""" + self._ensure_data_dir() + self._path.write_text(settings.model_dump_json(indent=2)) + self._cached = settings + logger.info(f"Saved kiosk STT settings to {self._path}") + + +# Singleton instance +_instance: Optional[KioskSttSettingsService] = None + + +def get_kiosk_stt_settings_service() -> KioskSttSettingsService: + """Get the singleton service instance.""" + global _instance + if _instance is None: + _instance = KioskSttSettingsService() + return _instance diff --git a/src/backend/services/stt_service.py b/src/backend/services/stt_service.py index 55fb6b99..f57bad1b 100644 --- a/src/backend/services/stt_service.py +++ b/src/backend/services/stt_service.py @@ -11,6 +11,7 @@ from deepgram.core.events import EventType from backend.config import get_settings +from backend.services.kiosk_stt_settings import get_kiosk_stt_settings_service logger = logging.getLogger(__name__) @@ -26,13 +27,23 @@ def __init__( api_key: str, session_id: str, on_transcript: Callable[[str, bool], None], - on_error: Optional[Callable[[str], None]] = None + on_error: Optional[Callable[[str], None]] = None, + eot_threshold: float = 0.7, + eot_timeout_ms: int = 5000, + eager_eot_threshold: Optional[float] = None, + keyterms: Optional[list[str]] = None, ): self.api_key = api_key self.session_id = session_id self.on_transcript = on_transcript self.on_error = on_error + # Configurable STT settings + self.eot_threshold = eot_threshold + self.eot_timeout_ms = eot_timeout_ms + self.eager_eot_threshold = eager_eot_threshold + self.keyterms = keyterms or [] + self._client = DeepgramClient(api_key=api_key) self._context_manager = None self._socket = None @@ -114,11 +125,22 @@ def connect(self) -> bool: "model": "flux-general-en", "encoding": "linear16", "sample_rate": str(SAMPLE_RATE), - "eot_threshold": "0.7", # End-of-turn confidence threshold - "eot_timeout_ms": "5000", # Max wait for end-of-turn + "eot_threshold": str(self.eot_threshold), + "eot_timeout_ms": str(self.eot_timeout_ms), } - logger.info(f"Connecting to Deepgram Flux for {self.session_id}...") + # Add optional eager EOT threshold + if self.eager_eot_threshold is not None: + params["eager_eot_threshold"] = str(self.eager_eot_threshold) + + # Add keyterms (Deepgram supports multiple keyterm params) + # Note: The SDK may handle this differently; we pass as list + if self.keyterms: + params["keyterm"] = self.keyterms + + logger.info(f"Connecting to Deepgram Flux for {self.session_id} with settings: " + f"eot_threshold={self.eot_threshold}, eot_timeout_ms={self.eot_timeout_ms}, " + f"eager_eot={self.eager_eot_threshold}, keyterms={len(self.keyterms)}") try: # Use v2 for Flux turn-taking @@ -205,12 +227,19 @@ async def create_session( if session_id in self.sessions: await self.close_session(session_id) - # Create new session + # Get current kiosk STT settings + kiosk_settings = get_kiosk_stt_settings_service().get_settings() + + # Create new session with configurable settings session = DeepgramSession( api_key=self.api_key, session_id=session_id, on_transcript=on_transcript, - on_error=on_error + on_error=on_error, + eot_threshold=kiosk_settings.eot_threshold, + eot_timeout_ms=kiosk_settings.eot_timeout_ms, + eager_eot_threshold=kiosk_settings.eager_eot_threshold, + keyterms=kiosk_settings.keyterms, ) # Connect in thread pool to not block asyncio From 76d65cf3cb9ebc15044cdf8c47e269310e18ebec Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 15 Dec 2025 22:44:43 -0500 Subject: [PATCH 04/78] feat: Implement configurable kiosk UI settings and display assistant responses on the kiosk screen, and refactor TTS service to use direct HTTP calls. --- frontend-kiosk/src/App.jsx | 95 ++++++++++++++++++- .../src/components/TranscriptionScreen.jsx | 21 +++- frontend/src/lib/api/kiosk.ts | 38 ++++++++ .../components/chat/KioskSettingsModal.svelte | 60 +++++++++++- frontend/src/lib/stores/kioskSettings.ts | 93 +++++++++++++----- src/backend/app.py | 2 + src/backend/data/kiosk_ui_settings.json | 3 + src/backend/routers/kiosk_ui.py | 33 +++++++ src/backend/routers/voice_assistant.py | 2 + src/backend/schemas/kiosk_ui_settings.py | 20 ++++ src/backend/services/kiosk_ui_settings.py | 73 ++++++++++++++ src/backend/services/tts_service.py | 48 ++++++---- 12 files changed, 437 insertions(+), 51 deletions(-) create mode 100644 src/backend/data/kiosk_ui_settings.json create mode 100644 src/backend/routers/kiosk_ui.py create mode 100644 src/backend/schemas/kiosk_ui_settings.py create mode 100644 src/backend/services/kiosk_ui_settings.py diff --git a/frontend-kiosk/src/App.jsx b/frontend-kiosk/src/App.jsx index 15d1f980..87c75f96 100644 --- a/frontend-kiosk/src/App.jsx +++ b/frontend-kiosk/src/App.jsx @@ -1,5 +1,5 @@ import { AnimatePresence, motion } from 'framer-motion'; -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import useWebSocket, { ReadyState } from 'react-use-websocket'; import Clock from './components/Clock'; import PhotoFrame from './components/PhotoFrame'; @@ -13,7 +13,26 @@ export default function App() { const wsUrl = `ws://${window.location.hostname}:8000/api/voice/connect?client_id=frontend_gui`; const [transcript, setTranscript] = useState(""); + const [assistantResponse, setAssistantResponse] = useState(""); const [agentState, setAgentState] = useState("IDLE"); + const [idleReturnDelay, setIdleReturnDelay] = useState(10000); // Default 10s + const audioRef = useRef(null); + + // Fetch UI settings on mount + useEffect(() => { + const fetchSettings = async () => { + try { + const response = await fetch(`http://${window.location.hostname}:8000/api/kiosk/ui/settings`); + if (response.ok) { + const data = await response.json(); + setIdleReturnDelay(data.idle_return_delay_ms); + } + } catch (e) { + console.error("Failed to fetch UI settings", e); + } + }; + fetchSettings(); + }, []); const { sendMessage, @@ -26,27 +45,91 @@ export default function App() { reconnectInterval: 3000, }); + // Play TTS audio + const playAudio = (base64Audio) => { + try { + // Convert base64 to audio blob (PCM 16-bit, 16kHz mono) + const binaryString = atob(base64Audio); + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + + // Create WAV header for PCM data + const sampleRate = 16000; + const numChannels = 1; + const bitsPerSample = 16; + const byteRate = sampleRate * numChannels * bitsPerSample / 8; + const blockAlign = numChannels * bitsPerSample / 8; + const dataSize = bytes.length; + const fileSize = 44 + dataSize; + + const wavBuffer = new ArrayBuffer(fileSize); + const view = new DataView(wavBuffer); + + // RIFF header + view.setUint32(0, 0x52494646, false); // "RIFF" + view.setUint32(4, fileSize - 8, true); + view.setUint32(8, 0x57415645, false); // "WAVE" + + // fmt chunk + view.setUint32(12, 0x666d7420, false); // "fmt " + view.setUint32(16, 16, true); // chunk size + view.setUint16(20, 1, true); // audio format (PCM) + view.setUint16(22, numChannels, true); + view.setUint32(24, sampleRate, true); + view.setUint32(28, byteRate, true); + view.setUint16(32, blockAlign, true); + view.setUint16(34, bitsPerSample, true); + + // data chunk + view.setUint32(36, 0x64617461, false); // "data" + view.setUint32(40, dataSize, true); + + // Copy PCM data + const wavBytes = new Uint8Array(wavBuffer); + wavBytes.set(bytes, 44); + + const blob = new Blob([wavBytes], { type: 'audio/wav' }); + const url = URL.createObjectURL(blob); + + if (audioRef.current) { + audioRef.current.src = url; + audioRef.current.play().catch(e => console.error("Audio play failed:", e)); + } + } catch (e) { + console.error("Failed to play audio:", e); + } + }; + useEffect(() => { if (lastMessage !== null) { try { const data = JSON.parse(lastMessage.data); if (data.type === 'transcript') { setTranscript(data.text); + } else if (data.type === 'assistant_response') { + console.log('Received assistant_response:', data.text); + setAssistantResponse(data.text); + } else if (data.type === 'tts_audio') { + console.log('Received TTS audio, length:', data.data?.length); + playAudio(data.data); } else if (data.type === 'state') { setAgentState(data.state); if (data.state === 'LISTENING' || data.state === 'THINKING') { setCurrentScreen(2); // Auto-jump to transcription screen + setAssistantResponse(""); // Clear previous response } if (data.state === 'IDLE') { - // Return to clock after delay - setTimeout(() => setCurrentScreen(0), 10000); + // Return to clock after configurable delay + setTimeout(() => setCurrentScreen(0), idleReturnDelay); } } } catch (e) { console.error("Failed to parse WS message", e); } } - }, [lastMessage]); + }, [lastMessage, idleReturnDelay]); const handleSwipe = (direction) => { if (direction > 0) { @@ -62,6 +145,7 @@ export default function App() { @@ -69,6 +153,9 @@ export default function App() { return (
+ {/* Hidden audio element for TTS playback */} +
{/* Main Content Area */} -
+
+ {/* User Transcript */} {transcript ? ( )} + + {/* Assistant Response */} + + {assistantResponse && ( + +

+ {assistantResponse} +

+
+ )} +
{/* Ambient glow when listening */} diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts index a141727d..167f24be 100644 --- a/frontend/src/lib/api/kiosk.ts +++ b/frontend/src/lib/api/kiosk.ts @@ -18,6 +18,14 @@ export interface KioskSttSettingsUpdate { keyterms?: string[]; } +export interface KioskUiSettings { + idle_return_delay_ms: number; +} + +export interface KioskUiSettingsUpdate { + idle_return_delay_ms?: number; +} + /** * Fetch current kiosk STT settings from the backend. */ @@ -60,3 +68,33 @@ export async function resetKioskSttSettings(): Promise { } return response.json(); } + +/** + * Fetch current kiosk UI settings from the backend. + */ +export async function fetchKioskUiSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/ui/settings`); + if (!response.ok) { + throw new Error(`Failed to fetch kiosk UI settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Update kiosk UI settings on the backend. + */ +export async function updateKioskUiSettings( + update: KioskUiSettingsUpdate +): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/ui/settings`, { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(update), + }); + if (!response.ok) { + throw new Error(`Failed to update kiosk UI settings: ${response.statusText}`); + } + return response.json(); +} diff --git a/frontend/src/lib/components/chat/KioskSettingsModal.svelte b/frontend/src/lib/components/chat/KioskSettingsModal.svelte index 54fe692b..ae7b44da 100644 --- a/frontend/src/lib/components/chat/KioskSettingsModal.svelte +++ b/frontend/src/lib/components/chat/KioskSettingsModal.svelte @@ -3,7 +3,7 @@ import { getDefaultKioskSttSettings, kioskSettingsStore, - type KioskSttSettings, + type KioskSettings, } from "../../stores/kioskSettings"; import ModelSettingsDialog from "./model-settings/ModelSettingsDialog.svelte"; import "./model-settings/model-settings-styles.css"; @@ -12,7 +12,7 @@ const dispatch = createEventDispatcher<{ close: void }>(); - let draft: KioskSttSettings = getDefaultKioskSttSettings(); + let draft: KioskSettings = getDefaultKioskSttSettings(); let dirty = false; let saving = false; let loading = true; @@ -297,6 +297,62 @@ {/if}
+ +
+
+ Display + Kiosk screen behavior settings. +
+ +
+ +
+
+
+ Return to Clock + {(draft.idle_return_delay_ms / 1000).toFixed(0)}s +
+ { + draft = { + ...draft, + idle_return_delay_ms: parseInt( + (e.target as HTMLInputElement).value, + 10, + ), + }; + markDirty(); + }} + /> +
+ 1s + 60s +
+
+
+
+
+
diff --git a/frontend/src/lib/stores/kioskSettings.ts b/frontend/src/lib/stores/kioskSettings.ts index d3b12000..496403b1 100644 --- a/frontend/src/lib/stores/kioskSettings.ts +++ b/frontend/src/lib/stores/kioskSettings.ts @@ -1,17 +1,25 @@ /** - * Kiosk STT settings store. - * Fetches from and persists to the backend API. + * Kiosk settings store. + * Fetches from and persists to the backend API (both STT and UI settings). */ import { get, writable } from 'svelte/store'; import { type KioskSttSettings, type KioskSttSettingsUpdate, + type KioskUiSettings, + type KioskUiSettingsUpdate, fetchKioskSttSettings, + fetchKioskUiSettings, resetKioskSttSettings, updateKioskSttSettings, + updateKioskUiSettings, } from '../api/kiosk'; +// Combined settings type +export interface KioskSettings extends KioskSttSettings, KioskUiSettings { } +export interface KioskSettingsUpdate extends KioskSttSettingsUpdate, KioskUiSettingsUpdate { } + export const DEFAULT_KIOSK_STT_SETTINGS: KioskSttSettings = { eot_threshold: 0.7, eot_timeout_ms: 5000, @@ -19,56 +27,93 @@ export const DEFAULT_KIOSK_STT_SETTINGS: KioskSttSettings = { keyterms: [], }; -function cloneSettings(value: KioskSttSettings): KioskSttSettings { - return JSON.parse(JSON.stringify(value)) as KioskSttSettings; +export const DEFAULT_KIOSK_UI_SETTINGS: KioskUiSettings = { + idle_return_delay_ms: 10000, +}; + +export const DEFAULT_KIOSK_SETTINGS: KioskSettings = { + ...DEFAULT_KIOSK_STT_SETTINGS, + ...DEFAULT_KIOSK_UI_SETTINGS, +}; + +function cloneSettings(value: KioskSettings): KioskSettings { + return JSON.parse(JSON.stringify(value)) as KioskSettings; } -export function getDefaultKioskSttSettings(): KioskSttSettings { - return cloneSettings(DEFAULT_KIOSK_STT_SETTINGS); +export function getDefaultKioskSttSettings(): KioskSettings { + return cloneSettings(DEFAULT_KIOSK_SETTINGS); } function createKioskSettingsStore() { - const store = writable(getDefaultKioskSttSettings()); + const store = writable(getDefaultKioskSttSettings()); let loaded = false; let loading = false; - async function load(): Promise { + async function load(): Promise { if (loading) { // Return current value while loading return get(store); } loading = true; try { - const settings = await fetchKioskSttSettings(); - store.set(settings); + // Load both STT and UI settings in parallel + const [sttSettings, uiSettings] = await Promise.all([ + fetchKioskSttSettings(), + fetchKioskUiSettings(), + ]); + const combined: KioskSettings = { ...sttSettings, ...uiSettings }; + store.set(combined); loaded = true; - return settings; + return combined; } catch (error) { - console.error('Failed to load kiosk STT settings:', error); + console.error('Failed to load kiosk settings:', error); return get(store); } finally { loading = false; } } - async function save(update: KioskSttSettingsUpdate): Promise { + async function save(update: KioskSettingsUpdate): Promise { try { - const settings = await updateKioskSttSettings(update); - store.set(settings); - return settings; + // Determine which APIs need to be called + const sttUpdate: KioskSttSettingsUpdate = {}; + const uiUpdate: KioskUiSettingsUpdate = {}; + + if (update.eot_threshold !== undefined) sttUpdate.eot_threshold = update.eot_threshold; + if (update.eot_timeout_ms !== undefined) sttUpdate.eot_timeout_ms = update.eot_timeout_ms; + if (update.eager_eot_threshold !== undefined) sttUpdate.eager_eot_threshold = update.eager_eot_threshold; + if (update.keyterms !== undefined) sttUpdate.keyterms = update.keyterms; + if (update.idle_return_delay_ms !== undefined) uiUpdate.idle_return_delay_ms = update.idle_return_delay_ms; + + const promises: Promise[] = []; + + if (Object.keys(sttUpdate).length > 0) { + promises.push(updateKioskSttSettings(sttUpdate)); + } + if (Object.keys(uiUpdate).length > 0) { + promises.push(updateKioskUiSettings(uiUpdate)); + } + + await Promise.all(promises); + + // Reload to get the combined state + return await load(); } catch (error) { - console.error('Failed to save kiosk STT settings:', error); + console.error('Failed to save kiosk settings:', error); throw error; } } - async function reset(): Promise { + async function reset(): Promise { try { - const settings = await resetKioskSttSettings(); - store.set(settings); - return settings; + // Reset STT settings (UI settings don't have a reset endpoint yet) + const sttSettings = await resetKioskSttSettings(); + const current = get(store); + const combined: KioskSettings = { ...sttSettings, idle_return_delay_ms: current.idle_return_delay_ms }; + store.set(combined); + return combined; } catch (error) { - console.error('Failed to reset kiosk STT settings:', error); + console.error('Failed to reset kiosk settings:', error); throw error; } } @@ -81,7 +126,7 @@ function createKioskSettingsStore() { get isLoaded(): boolean { return loaded; }, - get current(): KioskSttSettings { + get current(): KioskSettings { return get(store); }, }; @@ -90,4 +135,4 @@ function createKioskSettingsStore() { export const kioskSettingsStore = createKioskSettingsStore(); // Re-export types for convenience -export type { KioskSttSettings, KioskSttSettingsUpdate }; +export type { KioskSttSettings, KioskSttSettingsUpdate, KioskUiSettings, KioskUiSettingsUpdate }; diff --git a/src/backend/app.py b/src/backend/app.py index a5b62158..b546de66 100644 --- a/src/backend/app.py +++ b/src/backend/app.py @@ -24,6 +24,7 @@ from .routers.spotify_auth import router as spotify_auth_router from .routers.stt import router as stt_router from .routers.kiosk import router as kiosk_router +from .routers.kiosk_ui import router as kiosk_ui_router from .routers.suggestions import router as suggestions_router from .routers.uploads import router as uploads_router from .services.attachments import AttachmentService @@ -253,6 +254,7 @@ async def lifespan(app: FastAPI): app.include_router(mcp_router) app.include_router(stt_router) app.include_router(kiosk_router) + app.include_router(kiosk_ui_router) # helper for voice assistant imports to avoid circular deps if any, # though here it should be fine. diff --git a/src/backend/data/kiosk_ui_settings.json b/src/backend/data/kiosk_ui_settings.json new file mode 100644 index 00000000..1576f873 --- /dev/null +++ b/src/backend/data/kiosk_ui_settings.json @@ -0,0 +1,3 @@ +{ + "idle_return_delay_ms": 10000 +} diff --git a/src/backend/routers/kiosk_ui.py b/src/backend/routers/kiosk_ui.py new file mode 100644 index 00000000..658f16cc --- /dev/null +++ b/src/backend/routers/kiosk_ui.py @@ -0,0 +1,33 @@ +"""API routes for kiosk UI settings.""" + +import logging + +from fastapi import APIRouter, HTTPException + +from backend.schemas.kiosk_ui_settings import KioskUiSettings, KioskUiSettingsUpdate +from backend.services.kiosk_ui_settings import get_kiosk_ui_settings_service + +logger = logging.getLogger(__name__) +router = APIRouter(prefix="/api/kiosk/ui", tags=["Kiosk UI Settings"]) + + +@router.get("/settings", response_model=KioskUiSettings) +async def get_ui_settings() -> KioskUiSettings: + """Get current kiosk UI settings.""" + try: + service = get_kiosk_ui_settings_service() + return service.get_settings() + except Exception as e: + logger.error(f"Failed to get kiosk UI settings: {e}") + raise HTTPException(status_code=500, detail=str(e)) + + +@router.patch("/settings", response_model=KioskUiSettings) +async def update_ui_settings(update: KioskUiSettingsUpdate) -> KioskUiSettings: + """Update kiosk UI settings.""" + try: + service = get_kiosk_ui_settings_service() + return service.update_settings(update) + except Exception as e: + logger.error(f"Failed to update kiosk UI settings: {e}") + raise HTTPException(status_code=500, detail=str(e)) diff --git a/src/backend/routers/voice_assistant.py b/src/backend/routers/voice_assistant.py index 10d7fe3e..0c664004 100644 --- a/src/backend/routers/voice_assistant.py +++ b/src/backend/routers/voice_assistant.py @@ -39,6 +39,8 @@ async def on_transcript_received(text: str, is_final: bool): if response_text: await manager.update_state(client_id, "SPEAKING") + # Send response text to frontend for display + await manager.broadcast({"type": "assistant_response", "text": response_text}) # Use TTS try: audio_data = await tts_service.synthesize(response_text) diff --git a/src/backend/schemas/kiosk_ui_settings.py b/src/backend/schemas/kiosk_ui_settings.py new file mode 100644 index 00000000..b78a307e --- /dev/null +++ b/src/backend/schemas/kiosk_ui_settings.py @@ -0,0 +1,20 @@ +"""Kiosk UI settings schema for frontend behavior configuration.""" + +from pydantic import BaseModel, Field + + +class KioskUiSettings(BaseModel): + """Settings for kiosk frontend UI behavior.""" + + idle_return_delay_ms: int = Field( + default=10000, + ge=1000, + le=60000, + description="Delay (ms) before returning to clock screen after going IDLE.", + ) + + +class KioskUiSettingsUpdate(BaseModel): + """Partial update schema - all fields optional.""" + + idle_return_delay_ms: int | None = Field(default=None, ge=1000, le=60000) diff --git a/src/backend/services/kiosk_ui_settings.py b/src/backend/services/kiosk_ui_settings.py new file mode 100644 index 00000000..788c99c9 --- /dev/null +++ b/src/backend/services/kiosk_ui_settings.py @@ -0,0 +1,73 @@ +"""Service for managing kiosk UI settings.""" + +import json +import logging +from functools import lru_cache +from pathlib import Path + +from backend.schemas.kiosk_ui_settings import KioskUiSettings, KioskUiSettingsUpdate + +logger = logging.getLogger(__name__) + + +class KioskUiSettingsService: + """Manages kiosk UI settings persistence.""" + + def __init__(self, settings_path: Path | None = None): + if settings_path is None: + settings_path = Path(__file__).parent.parent / "data" / "kiosk_ui_settings.json" + self.settings_path = settings_path + self._settings: KioskUiSettings | None = None + + def get_settings(self) -> KioskUiSettings: + """Get current UI settings, loading from disk if needed.""" + if self._settings is None: + self._load_settings() + return self._settings # type: ignore + + def _load_settings(self) -> None: + """Load settings from disk.""" + try: + if self.settings_path.exists(): + with open(self.settings_path, "r") as f: + data = json.load(f) + self._settings = KioskUiSettings(**data) + else: + self._settings = KioskUiSettings() + self._save_settings() + except Exception as e: + logger.error(f"Failed to load kiosk UI settings: {e}") + self._settings = KioskUiSettings() + + def _save_settings(self) -> None: + """Save settings to disk.""" + try: + self.settings_path.parent.mkdir(parents=True, exist_ok=True) + with open(self.settings_path, "w") as f: + json.dump(self._settings.model_dump(), f, indent=2) + except Exception as e: + logger.error(f"Failed to save kiosk UI settings: {e}") + + def update_settings(self, update: KioskUiSettingsUpdate) -> KioskUiSettings: + """Update settings with partial data.""" + current = self.get_settings() + update_data = update.model_dump(exclude_unset=True) + + if update_data: + new_data = current.model_dump() + new_data.update(update_data) + self._settings = KioskUiSettings(**new_data) + self._save_settings() + + return self._settings # type: ignore + + +_service_instance: KioskUiSettingsService | None = None + + +def get_kiosk_ui_settings_service() -> KioskUiSettingsService: + """Get singleton instance of the UI settings service.""" + global _service_instance + if _service_instance is None: + _service_instance = KioskUiSettingsService() + return _service_instance diff --git a/src/backend/services/tts_service.py b/src/backend/services/tts_service.py index aaef5141..90f2e685 100644 --- a/src/backend/services/tts_service.py +++ b/src/backend/services/tts_service.py @@ -1,8 +1,11 @@ +import logging + import httpx -from deepgram import AsyncDeepgramClient from backend.config import get_settings +logger = logging.getLogger(__name__) + class TTSService: """Service for Text-to-Speech generation using Deepgram Aura.""" @@ -13,7 +16,8 @@ def __init__(self): if not api_key: raise ValueError("DEEPGRAM_API_KEY is not set") - self.client = AsyncDeepgramClient(api_key=api_key) + self.api_key = api_key + self.base_url = "https://api.deepgram.com/v1/speak" async def synthesize(self, text: str) -> bytes: """ @@ -21,29 +25,35 @@ async def synthesize(self, text: str) -> bytes: Returns raw PCM audio bytes (16kHz, 16-bit, mono). """ try: - # Use dict for options - speak_options = { + params = { "model": "aura-asteria-en", "encoding": "linear16", - "sample_rate": 16000, + "sample_rate": "16000", "container": "none", } - # Deepgram SDK synchronous call - # Using standard SDK usage, passing options as dict might be supported - # or passing kw arguments to the method. - # Assuming speak.v("1").stream(source, options) pattern - - # The 'source' argument is {"text": text}, and 'options' handles the rest. - - response = await self.client.speak.v("1").stream({"text": text}, speak_options) + headers = { + "Authorization": f"Token {self.api_key}", + "Content-Type": "application/json", + } - # The response should be a stream-able object. - # We want all bytes. - return await response.read() + payload = {"text": text} + + async with httpx.AsyncClient() as client: + response = await client.post( + self.base_url, + params=params, + headers=headers, + json=payload, + timeout=30.0, + ) + response.raise_for_status() + audio_data = response.content + logger.info(f"TTS synthesized {len(audio_data)} bytes for text: {text[:50]}...") + return audio_data except Exception as e: - print(f"TTS Error: {e}") - # Return empty bytes or raise? - # Let's return empty bytes to avoid crashing the caller + logger.error(f"TTS Error: {e}") + # Return empty bytes to avoid crashing the caller return b"" + From 82ca78a883b12e7651b2681a920d1f93d65d1e03 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 15 Dec 2025 23:19:51 -0500 Subject: [PATCH 05/78] chore: Remove stale static frontend build assets --- src/backend/static/assets/index-jn8KbIxX.css | 1 - src/backend/static/assets/index-qhzVSo28.js | 17 ----------------- src/backend/static/index.html | 14 -------------- src/backend/static/vite.svg | 1 - 4 files changed, 33 deletions(-) delete mode 100644 src/backend/static/assets/index-jn8KbIxX.css delete mode 100644 src/backend/static/assets/index-qhzVSo28.js delete mode 100644 src/backend/static/index.html delete mode 100644 src/backend/static/vite.svg diff --git a/src/backend/static/assets/index-jn8KbIxX.css b/src/backend/static/assets/index-jn8KbIxX.css deleted file mode 100644 index a9dc613e..00000000 --- a/src/backend/static/assets/index-jn8KbIxX.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-6{bottom:1.5rem}.bottom-8{bottom:2rem}.left-1\/2{left:50%}.left-12{left:3rem}.right-2{right:.5rem}.top-12{top:3rem}.top-2{top:.5rem}.z-50{z-index:50}.mt-6{margin-top:1.5rem}.flex{display:flex}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-8{width:2rem}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity, 1))}.border-white\/10{border-color:#ffffff1a}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/70{background-color:#000000b3}.bg-current{background-color:currentColor}.bg-cyan-900\/80{background-color:#164e63cc}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/40{background-color:#fff6}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/80{--tw-gradient-from: rgb(0 0 0 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-12{padding:3rem}.p-6{padding:1.5rem}.text-center{text-align:center}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-9xl{font-size:8rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-light{font-weight:300}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-widest{letter-spacing:.1em}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/40{color:#fff6}.text-white\/90{color:#ffffffe6}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#121212;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;overflow:hidden}#root{width:100%;height:100vh;margin:0;padding:0;display:flex;flex-direction:column}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media(min-width:768px){.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[10rem\]{font-size:10rem}} diff --git a/src/backend/static/assets/index-qhzVSo28.js b/src/backend/static/assets/index-qhzVSo28.js deleted file mode 100644 index 6a46beca..00000000 --- a/src/backend/static/assets/index-qhzVSo28.js +++ /dev/null @@ -1,17 +0,0 @@ -(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))u(c);new MutationObserver(c=>{for(const h of c)if(h.type==="childList")for(const f of h.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&u(f)}).observe(document,{childList:!0,subtree:!0});function s(c){const h={};return c.integrity&&(h.integrity=c.integrity),c.referrerPolicy&&(h.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?h.credentials="include":c.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function u(c){if(c.ep)return;c.ep=!0;const h=s(c);fetch(c.href,h)}})();function z1(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Po={exports:{}},Tl={};var zy;function N1(){if(zy)return Tl;zy=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function s(u,c,h){var f=null;if(h!==void 0&&(f=""+h),c.key!==void 0&&(f=""+c.key),"key"in c){h={};for(var p in c)p!=="key"&&(h[p]=c[p])}else h=c;return c=h.ref,{$$typeof:a,type:u,key:f,ref:c!==void 0?c:null,props:h}}return Tl.Fragment=i,Tl.jsx=s,Tl.jsxs=s,Tl}var Ny;function V1(){return Ny||(Ny=1,Po.exports=N1()),Po.exports}var st=V1(),Wo={exports:{}},lt={};var Vy;function U1(){if(Vy)return lt;Vy=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),b=Symbol.iterator;function T(M){return M===null||typeof M!="object"?null:(M=b&&M[b]||M["@@iterator"],typeof M=="function"?M:null)}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,N={};function D(M,H,K){this.props=M,this.context=H,this.refs=N,this.updater=K||A}D.prototype.isReactComponent={},D.prototype.setState=function(M,H){if(typeof M!="object"&&typeof M!="function"&&M!=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,M,H,"setState")},D.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function L(){}L.prototype=D.prototype;function Y(M,H,K){this.props=M,this.context=H,this.refs=N,this.updater=K||A}var J=Y.prototype=new L;J.constructor=Y,_(J,D.prototype),J.isPureReactComponent=!0;var q=Array.isArray;function Q(){}var X={H:null,A:null,T:null,S:null},F=Object.prototype.hasOwnProperty;function pt(M,H,K){var k=K.ref;return{$$typeof:a,type:M,key:H,ref:k!==void 0?k:null,props:K}}function wt(M,H){return pt(M.type,H,M.props)}function Ut(M){return typeof M=="object"&&M!==null&&M.$$typeof===a}function xt(M){var H={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(K){return H[K]})}var ae=/\/+/g;function ie(M,H){return typeof M=="object"&&M!==null&&M.key!=null?xt(""+M.key):H.toString(36)}function le(M){switch(M.status){case"fulfilled":return M.value;case"rejected":throw M.reason;default:switch(typeof M.status=="string"?M.then(Q,Q):(M.status="pending",M.then(function(H){M.status==="pending"&&(M.status="fulfilled",M.value=H)},function(H){M.status==="pending"&&(M.status="rejected",M.reason=H)})),M.status){case"fulfilled":return M.value;case"rejected":throw M.reason}}throw M}function V(M,H,K,k,it){var ot=typeof M;(ot==="undefined"||ot==="boolean")&&(M=null);var ht=!1;if(M===null)ht=!0;else switch(ot){case"bigint":case"string":case"number":ht=!0;break;case"object":switch(M.$$typeof){case a:case i:ht=!0;break;case g:return ht=M._init,V(ht(M._payload),H,K,k,it)}}if(ht)return it=it(M),ht=k===""?"."+ie(M,0):k,q(it)?(K="",ht!=null&&(K=ht.replace(ae,"$&/")+"/"),V(it,H,K,"",function(_i){return _i})):it!=null&&(Ut(it)&&(it=wt(it,K+(it.key==null||M&&M.key===it.key?"":(""+it.key).replace(ae,"$&/")+"/")+ht)),H.push(it)),1;ht=0;var Wt=k===""?".":k+":";if(q(M))for(var _t=0;_t>>1,at=V[tt];if(0>>1;ttc(K,W))kc(it,K)?(V[tt]=it,V[k]=W,tt=k):(V[tt]=K,V[H]=W,tt=H);else if(kc(it,W))V[tt]=it,V[k]=W,tt=k;else break t}}return G}function c(V,G){var W=V.sortIndex-G.sortIndex;return W!==0?W:V.id-G.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;a.unstable_now=function(){return h.now()}}else{var f=Date,p=f.now();a.unstable_now=function(){return f.now()-p}}var y=[],m=[],g=1,v=null,b=3,T=!1,A=!1,_=!1,N=!1,D=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,Y=typeof setImmediate<"u"?setImmediate:null;function J(V){for(var G=s(m);G!==null;){if(G.callback===null)u(m);else if(G.startTime<=V)u(m),G.sortIndex=G.expirationTime,i(y,G);else break;G=s(m)}}function q(V){if(_=!1,J(V),!A)if(s(y)!==null)A=!0,Q||(Q=!0,xt());else{var G=s(m);G!==null&&le(q,G.startTime-V)}}var Q=!1,X=-1,F=5,pt=-1;function wt(){return N?!0:!(a.unstable_now()-ptV&&wt());){var tt=v.callback;if(typeof tt=="function"){v.callback=null,b=v.priorityLevel;var at=tt(v.expirationTime<=V);if(V=a.unstable_now(),typeof at=="function"){v.callback=at,J(V),G=!0;break e}v===s(y)&&u(y),J(V)}else u(y);v=s(y)}if(v!==null)G=!0;else{var M=s(m);M!==null&&le(q,M.startTime-V),G=!1}}break t}finally{v=null,b=W,T=!1}G=void 0}}finally{G?xt():Q=!1}}}var xt;if(typeof Y=="function")xt=function(){Y(Ut)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,ie=ae.port2;ae.port1.onmessage=Ut,xt=function(){ie.postMessage(null)}}else xt=function(){D(Ut,0)};function le(V,G){X=D(function(){V(a.unstable_now())},G)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(V){V.callback=null},a.unstable_forceFrameRate=function(V){0>V||125tt?(V.sortIndex=W,i(m,V),s(y)===null&&V===s(m)&&(_?(L(X),X=-1):_=!0,le(q,W-tt))):(V.sortIndex=at,i(y,V),A||T||(A=!0,Q||(Q=!0,xt()))),V},a.unstable_shouldYield=wt,a.unstable_wrapCallback=function(V){var G=b;return function(){var W=b;b=G;try{return V.apply(this,arguments)}finally{b=W}}}})($o)),$o}var jy;function j1(){return jy||(jy=1,Io.exports=L1()),Io.exports}var tc={exports:{}},se={};var By;function B1(){if(By)return se;By=1;var a=Mi();function i(y){var m="https://react.dev/errors/"+y;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),tc.exports=B1(),tc.exports}var Yy;function H1(){if(Yy)return El;Yy=1;var a=j1(),i=Mi(),s=Mg();function u(t){var e="https://react.dev/errors/"+t;if(1at||(t.current=tt[at],tt[at]=null,at--)}function K(t,e){at++,tt[at]=t.current,t.current=e}var k=M(null),it=M(null),ot=M(null),ht=M(null);function Wt(t,e){switch(K(ot,e),K(it,t),K(k,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?ey(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=ey(e),t=ny(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}H(k),K(k,t)}function _t(){H(k),H(it),H(ot)}function _i(t){t.memoizedState!==null&&K(ht,t);var e=k.current,n=ny(e,t.type);e!==n&&(K(it,t),K(k,n))}function Ql(t){it.current===t&&(H(k),H(it)),ht.current===t&&(H(ht),gl._currentValue=W)}var Ru,wf;function na(t){if(Ru===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Ru=e&&e[1]||"",wf=-1)":-1r||E[l]!==R[r]){var U=` -`+E[l].replace(" at new "," at ");return t.displayName&&U.includes("")&&(U=U.replace("",t.displayName)),U}while(1<=l&&0<=r);break}}}finally{wu=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?na(n):""}function o0(t,e){switch(t.tag){case 26:case 27:case 5:return na(t.type);case 16:return na("Lazy");case 13:return t.child!==e&&e!==null?na("Suspense Fallback"):na("Suspense");case 19:return na("SuspenseList");case 0:case 15:return zu(t.type,!1);case 11:return zu(t.type.render,!1);case 1:return zu(t.type,!0);case 31:return na("Activity");default:return""}}function zf(t){try{var e="",n=null;do e+=o0(t,n),n=t,t=t.return;while(t);return e}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}var Nu=Object.prototype.hasOwnProperty,Vu=a.unstable_scheduleCallback,Uu=a.unstable_cancelCallback,c0=a.unstable_shouldYield,f0=a.unstable_requestPaint,ve=a.unstable_now,h0=a.unstable_getCurrentPriorityLevel,Nf=a.unstable_ImmediatePriority,Vf=a.unstable_UserBlockingPriority,Kl=a.unstable_NormalPriority,d0=a.unstable_LowPriority,Uf=a.unstable_IdlePriority,m0=a.log,y0=a.unstable_setDisableYieldValue,Ci=null,Se=null;function On(t){if(typeof m0=="function"&&y0(t),Se&&typeof Se.setStrictMode=="function")try{Se.setStrictMode(Ci,t)}catch{}}var be=Math.clz32?Math.clz32:v0,p0=Math.log,g0=Math.LN2;function v0(t){return t>>>=0,t===0?32:31-(p0(t)/g0|0)|0}var Zl=256,kl=262144,Jl=4194304;function aa(t){var e=t&42;if(e!==0)return e;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:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;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 Pl(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var r=0,o=t.suspendedLanes,d=t.pingedLanes;t=t.warmLanes;var S=l&134217727;return S!==0?(l=S&~o,l!==0?r=aa(l):(d&=S,d!==0?r=aa(d):n||(n=S&~t,n!==0&&(r=aa(n))))):(S=l&~o,S!==0?r=aa(S):d!==0?r=aa(d):n||(n=l&~t,n!==0&&(r=aa(n)))),r===0?0:e!==0&&e!==r&&(e&o)===0&&(o=r&-r,n=e&-e,o>=n||o===32&&(n&4194048)!==0)?e:r}function Ri(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function S0(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32: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 e+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 Lf(){var t=Jl;return Jl<<=1,(Jl&62914560)===0&&(Jl=4194304),t}function Lu(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function wi(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function b0(t,e,n,l,r,o){var d=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var S=t.entanglements,E=t.expirationTimes,R=t.hiddenUpdates;for(n=d&~n;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var D0=/[\n"\\]/g;function Re(t){return t.replace(D0,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Gu(t,e,n,l,r,o,d,S){t.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?t.type=d:t.removeAttribute("type"),e!=null?d==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Ce(e)):t.value!==""+Ce(e)&&(t.value=""+Ce(e)):d!=="submit"&&d!=="reset"||t.removeAttribute("value"),e!=null?Xu(t,d,Ce(e)):n!=null?Xu(t,d,Ce(n)):l!=null&&t.removeAttribute("value"),r==null&&o!=null&&(t.defaultChecked=!!o),r!=null&&(t.checked=r&&typeof r!="function"&&typeof r!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?t.name=""+Ce(S):t.removeAttribute("name")}function Pf(t,e,n,l,r,o,d,S){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.type=o),e!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||e!=null)){qu(t);return}n=n!=null?""+Ce(n):"",e=e!=null?""+Ce(e):n,S||e===t.value||(t.value=e),t.defaultValue=e}l=l??r,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=S?t.checked:!!l,t.defaultChecked=!!l,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.name=d),qu(t)}function Xu(t,e,n){e==="number"&&Il(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function La(t,e,n,l){if(t=t.options,e){e={};for(var r=0;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ju=!1;if(an)try{var Ui={};Object.defineProperty(Ui,"passive",{get:function(){Ju=!0}}),window.addEventListener("test",Ui,Ui),window.removeEventListener("test",Ui,Ui)}catch{Ju=!1}var xn=null,Pu=null,ts=null;function nh(){if(ts)return ts;var t,e=Pu,n=e.length,l,r="value"in xn?xn.value:xn.textContent,o=r.length;for(t=0;t=Bi),rh=" ",oh=!1;function ch(t,e){switch(t){case"keyup":return tS.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fh(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ya=!1;function nS(t,e){switch(t){case"compositionend":return fh(e);case"keypress":return e.which!==32?null:(oh=!0,rh);case"textInput":return t=e.data,t===rh&&oh?null:t;default:return null}}function aS(t,e){if(Ya)return t==="compositionend"||!tr&&ch(t,e)?(t=nh(),ts=Pu=xn=null,Ya=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=Sh(n)}}function Th(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Th(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Eh(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Il(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Il(t.document)}return e}function ar(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var fS=an&&"documentMode"in document&&11>=document.documentMode,qa=null,ir=null,Gi=null,lr=!1;function Ah(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;lr||qa==null||qa!==Il(l)||(l=qa,"selectionStart"in l&&ar(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Gi&&qi(Gi,l)||(Gi=l,l=ks(ir,"onSelect"),0>=d,r-=d,Je=1<<32-be(e)+r|n<rt?(mt=I,I=null):mt=I.sibling;var vt=w(x,I,C[rt],j);if(vt===null){I===null&&(I=mt);break}t&&I&&vt.alternate===null&&e(x,I),O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt,I=mt}if(rt===C.length)return n(x,I),yt&&sn(x,rt),$;if(I===null){for(;rtrt?(mt=I,I=null):mt=I.sibling;var Pn=w(x,I,vt.value,j);if(Pn===null){I===null&&(I=mt);break}t&&I&&Pn.alternate===null&&e(x,I),O=o(Pn,O,rt),gt===null?$=Pn:gt.sibling=Pn,gt=Pn,I=mt}if(vt.done)return n(x,I),yt&&sn(x,rt),$;if(I===null){for(;!vt.done;rt++,vt=C.next())vt=B(x,vt.value,j),vt!==null&&(O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt);return yt&&sn(x,rt),$}for(I=l(I);!vt.done;rt++,vt=C.next())vt=z(I,x,rt,vt.value,j),vt!==null&&(t&&vt.alternate!==null&&I.delete(vt.key===null?rt:vt.key),O=o(vt,O,rt),gt===null?$=vt:gt.sibling=vt,gt=vt);return t&&I.forEach(function(w1){return e(x,w1)}),yt&&sn(x,rt),$}function Ot(x,O,C,j){if(typeof C=="object"&&C!==null&&C.type===_&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case T:t:{for(var $=C.key;O!==null;){if(O.key===$){if($=C.type,$===_){if(O.tag===7){n(x,O.sibling),j=r(O,C.props.children),j.return=x,x=j;break t}}else if(O.elementType===$||typeof $=="object"&&$!==null&&$.$$typeof===F&&ma($)===O.type){n(x,O.sibling),j=r(O,C.props),Ji(j,C),j.return=x,x=j;break t}n(x,O);break}else e(x,O);O=O.sibling}C.type===_?(j=oa(C.props.children,x.mode,j,C.key),j.return=x,x=j):(j=cs(C.type,C.key,C.props,null,x.mode,j),Ji(j,C),j.return=x,x=j)}return d(x);case A:t:{for($=C.key;O!==null;){if(O.key===$)if(O.tag===4&&O.stateNode.containerInfo===C.containerInfo&&O.stateNode.implementation===C.implementation){n(x,O.sibling),j=r(O,C.children||[]),j.return=x,x=j;break t}else{n(x,O);break}else e(x,O);O=O.sibling}j=hr(C,x.mode,j),j.return=x,x=j}return d(x);case F:return C=ma(C),Ot(x,O,C,j)}if(le(C))return P(x,O,C,j);if(xt(C)){if($=xt(C),typeof $!="function")throw Error(u(150));return C=$.call(C),et(x,O,C,j)}if(typeof C.then=="function")return Ot(x,O,gs(C),j);if(C.$$typeof===Y)return Ot(x,O,ds(x,C),j);vs(x,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,O!==null&&O.tag===6?(n(x,O.sibling),j=r(O,C),j.return=x,x=j):(n(x,O),j=fr(C,x.mode,j),j.return=x,x=j),d(x)):n(x,O)}return function(x,O,C,j){try{ki=0;var $=Ot(x,O,C,j);return Ia=null,$}catch(I){if(I===Fa||I===ys)throw I;var gt=Ee(29,I,null,x.mode);return gt.lanes=j,gt.return=x,gt}finally{}}}var pa=Zh(!0),kh=Zh(!1),zn=!1;function Mr(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Or(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Nn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Vn(t,e,n){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(St&2)!==0){var r=l.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),l.pending=e,e=os(t),Rh(t,null,n),e}return rs(t,l,e,n),os(t)}function Pi(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Bf(t,n)}}function Dr(t,e){var n=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var r=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?r=o=d:o=o.next=d,n=n.next}while(n!==null);o===null?r=o=e:o=o.next=e}else r=o=e;n={baseState:l.baseState,firstBaseUpdate:r,lastBaseUpdate:o,shared:l.shared,callbacks:l.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var xr=!1;function Wi(){if(xr){var t=Wa;if(t!==null)throw t}}function Fi(t,e,n,l){xr=!1;var r=t.updateQueue;zn=!1;var o=r.firstBaseUpdate,d=r.lastBaseUpdate,S=r.shared.pending;if(S!==null){r.shared.pending=null;var E=S,R=E.next;E.next=null,d===null?o=R:d.next=R,d=E;var U=t.alternate;U!==null&&(U=U.updateQueue,S=U.lastBaseUpdate,S!==d&&(S===null?U.firstBaseUpdate=R:S.next=R,U.lastBaseUpdate=E))}if(o!==null){var B=r.baseState;d=0,U=R=E=null,S=o;do{var w=S.lane&-536870913,z=w!==S.lane;if(z?(dt&w)===w:(l&w)===w){w!==0&&w===Pa&&(xr=!0),U!==null&&(U=U.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});t:{var P=t,et=S;w=e;var Ot=n;switch(et.tag){case 1:if(P=et.payload,typeof P=="function"){B=P.call(Ot,B,w);break t}B=P;break t;case 3:P.flags=P.flags&-65537|128;case 0:if(P=et.payload,w=typeof P=="function"?P.call(Ot,B,w):P,w==null)break t;B=v({},B,w);break t;case 2:zn=!0}}w=S.callback,w!==null&&(t.flags|=64,z&&(t.flags|=8192),z=r.callbacks,z===null?r.callbacks=[w]:z.push(w))}else z={lane:w,tag:S.tag,payload:S.payload,callback:S.callback,next:null},U===null?(R=U=z,E=B):U=U.next=z,d|=w;if(S=S.next,S===null){if(S=r.shared.pending,S===null)break;z=S,S=z.next,z.next=null,r.lastBaseUpdate=z,r.shared.pending=null}}while(!0);U===null&&(E=B),r.baseState=E,r.firstBaseUpdate=R,r.lastBaseUpdate=U,o===null&&(r.shared.lanes=0),Hn|=d,t.lanes=d,t.memoizedState=B}}function Jh(t,e){if(typeof t!="function")throw Error(u(191,t));t.call(e)}function Ph(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;to?o:8;var d=V.T,S={};V.T=S,Zr(t,!1,e,n);try{var E=r(),R=V.S;if(R!==null&&R(S,E),E!==null&&typeof E=="object"&&typeof E.then=="function"){var U=bS(E,l);tl(t,e,U,xe(t))}else tl(t,e,l,xe(t))}catch(B){tl(t,e,{then:function(){},status:"rejected",reason:B},xe())}finally{G.p=o,d!==null&&S.types!==null&&(d.types=S.types),V.T=d}}function DS(){}function Qr(t,e,n,l){if(t.tag!==5)throw Error(u(476));var r=xd(t).queue;Dd(t,r,e,W,n===null?DS:function(){return _d(t),n(l)})}function xd(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:W},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function _d(t){var e=xd(t);e.next===null&&(e=t.alternate.memoizedState),tl(t,e.next.queue,{},xe())}function Kr(){return $t(gl)}function Cd(){return Yt().memoizedState}function Rd(){return Yt().memoizedState}function xS(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=xe();t=Nn(n);var l=Vn(e,t,n);l!==null&&(pe(l,e,n),Pi(l,e,n)),e={cache:br()},t.payload=e;return}e=e.return}}function _S(t,e,n){var l=xe();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_s(t)?zd(e,n):(n=or(t,e,n,l),n!==null&&(pe(n,t,l),Nd(n,e,l)))}function wd(t,e,n){var l=xe();tl(t,e,n,l)}function tl(t,e,n,l){var r={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_s(t))zd(e,r);else{var o=t.alternate;if(t.lanes===0&&(o===null||o.lanes===0)&&(o=e.lastRenderedReducer,o!==null))try{var d=e.lastRenderedState,S=o(d,n);if(r.hasEagerState=!0,r.eagerState=S,Te(S,d))return rs(t,e,r,0),Dt===null&&us(),!1}catch{}finally{}if(n=or(t,e,r,l),n!==null)return pe(n,t,l),Nd(n,e,l),!0}return!1}function Zr(t,e,n,l){if(l={lane:2,revertLane:Oo(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},_s(t)){if(e)throw Error(u(479))}else e=or(t,n,l,2),e!==null&&pe(e,t,2)}function _s(t){var e=t.alternate;return t===ut||e!==null&&e===ut}function zd(t,e){ti=Ts=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Nd(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,Bf(t,n)}}var el={readContext:$t,use:Ms,useCallback:Lt,useContext:Lt,useEffect:Lt,useImperativeHandle:Lt,useLayoutEffect:Lt,useInsertionEffect:Lt,useMemo:Lt,useReducer:Lt,useRef:Lt,useState:Lt,useDebugValue:Lt,useDeferredValue:Lt,useTransition:Lt,useSyncExternalStore:Lt,useId:Lt,useHostTransitionStatus:Lt,useFormState:Lt,useActionState:Lt,useOptimistic:Lt,useMemoCache:Lt,useCacheRefresh:Lt};el.useEffectEvent=Lt;var Vd={readContext:$t,use:Ms,useCallback:function(t,e){return re().memoizedState=[t,e===void 0?null:e],t},useContext:$t,useEffect:gd,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Ds(4194308,4,Td.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Ds(4194308,4,t,e)},useInsertionEffect:function(t,e){Ds(4,2,t,e)},useMemo:function(t,e){var n=re();e=e===void 0?null:e;var l=t();if(ga){On(!0);try{t()}finally{On(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=re();if(n!==void 0){var r=n(e);if(ga){On(!0);try{n(e)}finally{On(!1)}}}else r=e;return l.memoizedState=l.baseState=r,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:r},l.queue=t,t=t.dispatch=_S.bind(null,ut,t),[l.memoizedState,t]},useRef:function(t){var e=re();return t={current:t},e.memoizedState=t},useState:function(t){t=Hr(t);var e=t.queue,n=wd.bind(null,ut,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:Gr,useDeferredValue:function(t,e){var n=re();return Xr(n,t,e)},useTransition:function(){var t=Hr(!1);return t=Dd.bind(null,ut,t.queue,!0,!1),re().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=ut,r=re();if(yt){if(n===void 0)throw Error(u(407));n=n()}else{if(n=e(),Dt===null)throw Error(u(349));(dt&127)!==0||ed(l,e,n)}r.memoizedState=n;var o={value:n,getSnapshot:e};return r.queue=o,gd(ad.bind(null,l,o,t),[t]),l.flags|=2048,ni(9,{destroy:void 0},nd.bind(null,l,o,n,e),null),n},useId:function(){var t=re(),e=Dt.identifierPrefix;if(yt){var n=Pe,l=Je;n=(l&~(1<<32-be(l)-1)).toString(32)+n,e="_"+e+"R_"+n,n=Es++,0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof l.is=="string"?d.createElement("select",{is:l.is}):d.createElement("select"),l.multiple?o.multiple=!0:l.size&&(o.size=l.size);break;default:o=typeof l.is=="string"?d.createElement(r,{is:l.is}):d.createElement(r)}}o[Ft]=e,o[ce]=l;t:for(d=e.child;d!==null;){if(d.tag===5||d.tag===6)o.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break t;for(;d.sibling===null;){if(d.return===null||d.return===e)break t;d=d.return}d.sibling.return=d.return,d=d.sibling}e.stateNode=o;t:switch(ee(o,r,l),r){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break t;case"img":l=!0;break t;default:l=!1}l&&hn(e)}}return Rt(e),so(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==l&&hn(e);else{if(typeof l!="string"&&e.stateNode===null)throw Error(u(166));if(t=ot.current,ka(e)){if(t=e.stateNode,n=e.memoizedProps,l=null,r=It,r!==null)switch(r.tag){case 27:case 5:l=r.memoizedProps}t[Ft]=e,t=!!(t.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||$m(t.nodeValue,n)),t||Rn(e,!0)}else t=Js(t).createTextNode(l),t[Ft]=e,e.stateNode=t}return Rt(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(l=ka(e),n!==null){if(t===null){if(!l)throw Error(u(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(u(557));t[Ft]=e}else ca(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Rt(e),t=!1}else n=pr(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(Me(e),e):(Me(e),null);if((e.flags&128)!==0)throw Error(u(558))}return Rt(e),null;case 13:if(l=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(r=ka(e),l!==null&&l.dehydrated!==null){if(t===null){if(!r)throw Error(u(318));if(r=e.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(u(317));r[Ft]=e}else ca(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Rt(e),r=!1}else r=pr(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),r=!0;if(!r)return e.flags&256?(Me(e),e):(Me(e),null)}return Me(e),(e.flags&128)!==0?(e.lanes=n,e):(n=l!==null,t=t!==null&&t.memoizedState!==null,n&&(l=e.child,r=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(r=l.alternate.memoizedState.cachePool.pool),o=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(o=l.memoizedState.cachePool.pool),o!==r&&(l.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Ns(e,e.updateQueue),Rt(e),null);case 4:return _t(),t===null&&Co(e.stateNode.containerInfo),Rt(e),null;case 10:return rn(e.type),Rt(e),null;case 19:if(H(Ht),l=e.memoizedState,l===null)return Rt(e),null;if(r=(e.flags&128)!==0,o=l.rendering,o===null)if(r)al(l,!1);else{if(jt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(o=bs(t),o!==null){for(e.flags|=128,al(l,!1),t=o.updateQueue,e.updateQueue=t,Ns(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)wh(n,t),n=n.sibling;return K(Ht,Ht.current&1|2),yt&&sn(e,l.treeForkCount),e.child}t=t.sibling}l.tail!==null&&ve()>Bs&&(e.flags|=128,r=!0,al(l,!1),e.lanes=4194304)}else{if(!r)if(t=bs(o),t!==null){if(e.flags|=128,r=!0,t=t.updateQueue,e.updateQueue=t,Ns(e,t),al(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!yt)return Rt(e),null}else 2*ve()-l.renderingStartTime>Bs&&n!==536870912&&(e.flags|=128,r=!0,al(l,!1),e.lanes=4194304);l.isBackwards?(o.sibling=e.child,e.child=o):(t=l.last,t!==null?t.sibling=o:e.child=o,l.last=o)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ve(),t.sibling=null,n=Ht.current,K(Ht,r?n&1|2:n&1),yt&&sn(e,l.treeForkCount),t):(Rt(e),null);case 22:case 23:return Me(e),Cr(),l=e.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(e.flags|=8192):l&&(e.flags|=8192),l?(n&536870912)!==0&&(e.flags&128)===0&&(Rt(e),e.subtreeFlags&6&&(e.flags|=8192)):Rt(e),n=e.updateQueue,n!==null&&Ns(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==n&&(e.flags|=2048),t!==null&&H(da),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),rn(qt),Rt(e),null;case 25:return null;case 30:return null}throw Error(u(156,e.tag))}function NS(t,e){switch(mr(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return rn(qt),_t(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Ql(e),null;case 31:if(e.memoizedState!==null){if(Me(e),e.alternate===null)throw Error(u(340));ca()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Me(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(u(340));ca()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return H(Ht),null;case 4:return _t(),null;case 10:return rn(e.type),null;case 22:case 23:return Me(e),Cr(),t!==null&&H(da),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return rn(qt),null;case 25:return null;default:return null}}function im(t,e){switch(mr(e),e.tag){case 3:rn(qt),_t();break;case 26:case 27:case 5:Ql(e);break;case 4:_t();break;case 31:e.memoizedState!==null&&Me(e);break;case 13:Me(e);break;case 19:H(Ht);break;case 10:rn(e.type);break;case 22:case 23:Me(e),Cr(),t!==null&&H(da);break;case 24:rn(qt)}}function il(t,e){try{var n=e.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var r=l.next;n=r;do{if((n.tag&t)===t){l=void 0;var o=n.create,d=n.inst;l=o(),d.destroy=l}n=n.next}while(n!==r)}}catch(S){Tt(e,e.return,S)}}function jn(t,e,n){try{var l=e.updateQueue,r=l!==null?l.lastEffect:null;if(r!==null){var o=r.next;l=o;do{if((l.tag&t)===t){var d=l.inst,S=d.destroy;if(S!==void 0){d.destroy=void 0,r=e;var E=n,R=S;try{R()}catch(U){Tt(r,E,U)}}}l=l.next}while(l!==o)}}catch(U){Tt(e,e.return,U)}}function lm(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{Ph(e,n)}catch(l){Tt(t,t.return,l)}}}function sm(t,e,n){n.props=va(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(l){Tt(t,e,l)}}function ll(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof n=="function"?t.refCleanup=n(l):n.current=l}}catch(r){Tt(t,e,r)}}function We(t,e){var n=t.ref,l=t.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(r){Tt(t,e,r)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(r){Tt(t,e,r)}else n.current=null}function um(t){var e=t.type,n=t.memoizedProps,l=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break t;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(r){Tt(t,t.return,r)}}function uo(t,e,n){try{var l=t.stateNode;e1(l,t.type,n,e),l[ce]=e}catch(r){Tt(t,t.return,r)}}function rm(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Qn(t.type)||t.tag===4}function ro(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||rm(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Qn(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function oo(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=nn));else if(l!==4&&(l===27&&Qn(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(oo(t,e,n),t=t.sibling;t!==null;)oo(t,e,n),t=t.sibling}function Vs(t,e,n){var l=t.tag;if(l===5||l===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(l!==4&&(l===27&&Qn(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(Vs(t,e,n),t=t.sibling;t!==null;)Vs(t,e,n),t=t.sibling}function om(t){var e=t.stateNode,n=t.memoizedProps;try{for(var l=t.type,r=e.attributes;r.length;)e.removeAttributeNode(r[0]);ee(e,l,n),e[Ft]=t,e[ce]=n}catch(o){Tt(t,t.return,o)}}var dn=!1,Qt=!1,co=!1,cm=typeof WeakSet=="function"?WeakSet:Set,Pt=null;function VS(t,e){if(t=t.containerInfo,zo=eu,t=Eh(t),ar(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else t:{n=(n=t.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var r=l.anchorOffset,o=l.focusNode;l=l.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break t}var d=0,S=-1,E=-1,R=0,U=0,B=t,w=null;e:for(;;){for(var z;B!==n||r!==0&&B.nodeType!==3||(S=d+r),B!==o||l!==0&&B.nodeType!==3||(E=d+l),B.nodeType===3&&(d+=B.nodeValue.length),(z=B.firstChild)!==null;)w=B,B=z;for(;;){if(B===t)break e;if(w===n&&++R===r&&(S=d),w===o&&++U===l&&(E=d),(z=B.nextSibling)!==null)break;B=w,w=B.parentNode}B=z}n=S===-1||E===-1?null:{start:S,end:E}}else n=null}n=n||{start:0,end:0}}else n=null;for(No={focusedElem:t,selectionRange:n},eu=!1,Pt=e;Pt!==null;)if(e=Pt,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Pt=t;else for(;Pt!==null;){switch(e=Pt,o=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n title"))),ee(o,l,n),o[Ft]=t,Jt(o),l=o;break t;case"link":var d=py("link","href",r).get(l+(n.href||""));if(d){for(var S=0;SOt&&(d=Ot,Ot=et,et=d);var x=bh(S,et),O=bh(S,Ot);if(x&&O&&(z.rangeCount!==1||z.anchorNode!==x.node||z.anchorOffset!==x.offset||z.focusNode!==O.node||z.focusOffset!==O.offset)){var C=B.createRange();C.setStart(x.node,x.offset),z.removeAllRanges(),et>Ot?(z.addRange(C),z.extend(O.node,O.offset)):(C.setEnd(O.node,O.offset),z.addRange(C))}}}}for(B=[],z=S;z=z.parentNode;)z.nodeType===1&&B.push({element:z,left:z.scrollLeft,top:z.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;Sn?32:n,V.T=null,n=vo,vo=null;var o=qn,d=vn;if(Zt=0,ui=qn=null,vn=0,(St&6)!==0)throw Error(u(331));var S=St;if(St|=4,Tm(o.current),vm(o,o.current,d,n),St=S,fl(0,!1),Se&&typeof Se.onPostCommitFiberRoot=="function")try{Se.onPostCommitFiberRoot(Ci,o)}catch{}return!0}finally{G.p=r,V.T=l,Hm(t,e)}}function qm(t,e,n){e=ze(n,e),e=Wr(t.stateNode,e,2),t=Vn(t,e,2),t!==null&&(wi(t,2),Fe(t))}function Tt(t,e,n){if(t.tag===3)qm(t,t,n);else for(;e!==null;){if(e.tag===3){qm(e,t,n);break}else if(e.tag===1){var l=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Yn===null||!Yn.has(l))){t=ze(n,t),n=Gd(2),l=Vn(e,n,2),l!==null&&(Xd(n,l,e,t),wi(l,2),Fe(l));break}}e=e.return}}function Eo(t,e,n){var l=t.pingCache;if(l===null){l=t.pingCache=new jS;var r=new Set;l.set(e,r)}else r=l.get(e),r===void 0&&(r=new Set,l.set(e,r));r.has(n)||(mo=!0,r.add(n),t=GS.bind(null,t,e,n),e.then(t,t))}function GS(t,e,n){var l=t.pingCache;l!==null&&l.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,Dt===t&&(dt&n)===n&&(jt===4||jt===3&&(dt&62914560)===dt&&300>ve()-js?(St&2)===0&&ri(t,0):yo|=n,si===dt&&(si=0)),Fe(t)}function Gm(t,e){e===0&&(e=Lf()),t=ra(t,e),t!==null&&(wi(t,e),Fe(t))}function XS(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Gm(t,n)}function QS(t,e){var n=0;switch(t.tag){case 31:case 13:var l=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(u(314))}l!==null&&l.delete(e),Gm(t,n)}function KS(t,e){return Vu(t,e)}var Qs=null,ci=null,Ao=!1,Ks=!1,Mo=!1,Xn=0;function Fe(t){t!==ci&&t.next===null&&(ci===null?Qs=ci=t:ci=ci.next=t),Ks=!0,Ao||(Ao=!0,kS())}function fl(t,e){if(!Mo&&Ks){Mo=!0;do for(var n=!1,l=Qs;l!==null;){if(t!==0){var r=l.pendingLanes;if(r===0)var o=0;else{var d=l.suspendedLanes,S=l.pingedLanes;o=(1<<31-be(42|t)+1)-1,o&=r&~(d&~S),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,Zm(l,o))}else o=dt,o=Pl(l,l===Dt?o:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(o&3)===0||Ri(l,o)||(n=!0,Zm(l,o));l=l.next}while(n);Mo=!1}}function ZS(){Xm()}function Xm(){Ks=Ao=!1;var t=0;Xn!==0&&a1()&&(t=Xn);for(var e=ve(),n=null,l=Qs;l!==null;){var r=l.next,o=Qm(l,e);o===0?(l.next=null,n===null?Qs=r:n.next=r,r===null&&(ci=n)):(n=l,(t!==0||(o&3)!==0)&&(Ks=!0)),l=r}Zt!==0&&Zt!==5||fl(t),Xn!==0&&(Xn=0)}function Qm(t,e){for(var n=t.suspendedLanes,l=t.pingedLanes,r=t.expirationTimes,o=t.pendingLanes&-62914561;0S)break;var U=E.transferSize,B=E.initiatorType;U&&ty(B)&&(E=E.responseEnd,d+=U*(E"u"?null:document;function hy(t,e,n){var l=fi;if(l&&typeof e=="string"&&e){var r=Re(e);r='link[rel="'+t+'"][href="'+r+'"]',typeof n=="string"&&(r+='[crossorigin="'+n+'"]'),fy.has(r)||(fy.add(r),t={rel:t,crossOrigin:n,href:e},l.querySelector(r)===null&&(e=l.createElement("link"),ee(e,"link",t),Jt(e),l.head.appendChild(e)))}}function h1(t){Sn.D(t),hy("dns-prefetch",t,null)}function d1(t,e){Sn.C(t,e),hy("preconnect",t,e)}function m1(t,e,n){Sn.L(t,e,n);var l=fi;if(l&&t&&e){var r='link[rel="preload"][as="'+Re(e)+'"]';e==="image"&&n&&n.imageSrcSet?(r+='[imagesrcset="'+Re(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(r+='[imagesizes="'+Re(n.imageSizes)+'"]')):r+='[href="'+Re(t)+'"]';var o=r;switch(e){case"style":o=hi(t);break;case"script":o=di(t)}Be.has(o)||(t=v({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),Be.set(o,t),l.querySelector(r)!==null||e==="style"&&l.querySelector(yl(o))||e==="script"&&l.querySelector(pl(o))||(e=l.createElement("link"),ee(e,"link",t),Jt(e),l.head.appendChild(e)))}}function y1(t,e){Sn.m(t,e);var n=fi;if(n&&t){var l=e&&typeof e.as=="string"?e.as:"script",r='link[rel="modulepreload"][as="'+Re(l)+'"][href="'+Re(t)+'"]',o=r;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=di(t)}if(!Be.has(o)&&(t=v({rel:"modulepreload",href:t},e),Be.set(o,t),n.querySelector(r)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(pl(o)))return}l=n.createElement("link"),ee(l,"link",t),Jt(l),n.head.appendChild(l)}}}function p1(t,e,n){Sn.S(t,e,n);var l=fi;if(l&&t){var r=Va(l).hoistableStyles,o=hi(t);e=e||"default";var d=r.get(o);if(!d){var S={loading:0,preload:null};if(d=l.querySelector(yl(o)))S.loading=5;else{t=v({rel:"stylesheet",href:t,"data-precedence":e},n),(n=Be.get(o))&&Yo(t,n);var E=d=l.createElement("link");Jt(E),ee(E,"link",t),E._p=new Promise(function(R,U){E.onload=R,E.onerror=U}),E.addEventListener("load",function(){S.loading|=1}),E.addEventListener("error",function(){S.loading|=2}),S.loading|=4,Ws(d,e,l)}d={type:"stylesheet",instance:d,count:1,state:S},r.set(o,d)}}}function g1(t,e){Sn.X(t,e);var n=fi;if(n&&t){var l=Va(n).hoistableScripts,r=di(t),o=l.get(r);o||(o=n.querySelector(pl(r)),o||(t=v({src:t,async:!0},e),(e=Be.get(r))&&qo(t,e),o=n.createElement("script"),Jt(o),ee(o,"link",t),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(r,o))}}function v1(t,e){Sn.M(t,e);var n=fi;if(n&&t){var l=Va(n).hoistableScripts,r=di(t),o=l.get(r);o||(o=n.querySelector(pl(r)),o||(t=v({src:t,async:!0,type:"module"},e),(e=Be.get(r))&&qo(t,e),o=n.createElement("script"),Jt(o),ee(o,"link",t),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(r,o))}}function dy(t,e,n,l){var r=(r=ot.current)?Ps(r):null;if(!r)throw Error(u(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=hi(n.href),n=Va(r).hoistableStyles,l=n.get(e),l||(l={type:"style",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=hi(n.href);var o=Va(r).hoistableStyles,d=o.get(t);if(d||(r=r.ownerDocument||r,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(t,d),(o=r.querySelector(yl(t)))&&!o._p&&(d.instance=o,d.state.loading=5),Be.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Be.set(t,n),o||S1(r,t,n,d.state))),e&&l===null)throw Error(u(528,""));return d}if(e&&l!==null)throw Error(u(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=di(n),n=Va(r).hoistableScripts,l=n.get(e),l||(l={type:"script",instance:null,count:0,state:null},n.set(e,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(u(444,t))}}function hi(t){return'href="'+Re(t)+'"'}function yl(t){return'link[rel="stylesheet"]['+t+"]"}function my(t){return v({},t,{"data-precedence":t.precedence,precedence:null})}function S1(t,e,n,l){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?l.loading=1:(e=t.createElement("link"),l.preload=e,e.addEventListener("load",function(){return l.loading|=1}),e.addEventListener("error",function(){return l.loading|=2}),ee(e,"link",n),Jt(e),t.head.appendChild(e))}function di(t){return'[src="'+Re(t)+'"]'}function pl(t){return"script[async]"+t}function yy(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var l=t.querySelector('style[data-href~="'+Re(n.href)+'"]');if(l)return e.instance=l,Jt(l),l;var r=v({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),Jt(l),ee(l,"style",r),Ws(l,n.precedence,t),e.instance=l;case"stylesheet":r=hi(n.href);var o=t.querySelector(yl(r));if(o)return e.state.loading|=4,e.instance=o,Jt(o),o;l=my(n),(r=Be.get(r))&&Yo(l,r),o=(t.ownerDocument||t).createElement("link"),Jt(o);var d=o;return d._p=new Promise(function(S,E){d.onload=S,d.onerror=E}),ee(o,"link",l),e.state.loading|=4,Ws(o,n.precedence,t),e.instance=o;case"script":return o=di(n.src),(r=t.querySelector(pl(o)))?(e.instance=r,Jt(r),r):(l=n,(r=Be.get(o))&&(l=v({},n),qo(l,r)),t=t.ownerDocument||t,r=t.createElement("script"),Jt(r),ee(r,"link",l),t.head.appendChild(r),e.instance=r);case"void":return null;default:throw Error(u(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(l=e.instance,e.state.loading|=4,Ws(l,n.precedence,t));return e.instance}function Ws(t,e,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=l.length?l[l.length-1]:null,o=r,d=0;d title"):null)}function b1(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return t=e.disabled,typeof e.precedence=="string"&&t==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function vy(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function T1(t,e,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var r=hi(l.href),o=e.querySelector(yl(r));if(o){e=o._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Is.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=o,Jt(o);return}o=e.ownerDocument||e,l=my(l),(r=Be.get(r))&&Yo(l,r),o=o.createElement("link"),Jt(o);var d=o;d._p=new Promise(function(S,E){d.onload=S,d.onerror=E}),ee(o,"link",l),n.instance=o}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Is.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var Go=0;function E1(t,e){return t.stylesheets&&t.count===0&&tu(t,t.stylesheets),0Go?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(r)}}:null}function Is(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tu(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var $s=null;function tu(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,$s=new Map,e.forEach(A1,t),$s=null,Is.call(t))}function A1(t,e){if(!(e.state.loading&4)){var n=$s.get(t);if(n)var l=n.get(null);else{n=new Map,$s.set(t,n);for(var r=t.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Fo.exports=H1(),Fo.exports}var q1=Y1();const Kc=Z.createContext({});function Zc(a){const i=Z.useRef(null);return i.current===null&&(i.current=a()),i.current}const kc=typeof window<"u",Og=kc?Z.useLayoutEffect:Z.useEffect,Ou=Z.createContext(null);function Jc(a,i){a.indexOf(i)===-1&&a.push(i)}function Pc(a,i){const s=a.indexOf(i);s>-1&&a.splice(s,1)}const An=(a,i,s)=>s>i?i:s{};const Mn={},Dg=a=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a);function xg(a){return typeof a=="object"&&a!==null}const _g=a=>/^0[^.\s]+$/u.test(a);function Fc(a){let i;return()=>(i===void 0&&(i=a()),i)}const qe=a=>a,G1=(a,i)=>s=>i(a(s)),Yl=(...a)=>a.reduce(G1),Nl=(a,i,s)=>{const u=i-a;return u===0?1:(s-a)/u};class Ic{constructor(){this.subscriptions=[]}add(i){return Jc(this.subscriptions,i),()=>Pc(this.subscriptions,i)}notify(i,s,u){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](i,s,u);else for(let h=0;ha*1e3,Ye=a=>a/1e3;function Cg(a,i){return i?a*(1e3/i):0}const Rg=(a,i,s)=>(((1-3*s+3*i)*a+(3*s-6*i))*a+3*i)*a,X1=1e-7,Q1=12;function K1(a,i,s,u,c){let h,f,p=0;do f=i+(s-i)/2,h=Rg(f,u,c)-a,h>0?s=f:i=f;while(Math.abs(h)>X1&&++pK1(h,0,1,a,s);return h=>h===0||h===1?h:Rg(c(h),i,u)}const wg=a=>i=>i<=.5?a(2*i)/2:(2-a(2*(1-i)))/2,zg=a=>i=>1-a(1-i),Ng=ql(.33,1.53,.69,.99),$c=zg(Ng),Vg=wg($c),Ug=a=>(a*=2)<1?.5*$c(a):.5*(2-Math.pow(2,-10*(a-1))),tf=a=>1-Math.sin(Math.acos(a)),Lg=zg(tf),jg=wg(tf),Z1=ql(.42,0,1,1),k1=ql(0,0,.58,1),Bg=ql(.42,0,.58,1),J1=a=>Array.isArray(a)&&typeof a[0]!="number",Hg=a=>Array.isArray(a)&&typeof a[0]=="number",P1={linear:qe,easeIn:Z1,easeInOut:Bg,easeOut:k1,circIn:tf,circInOut:jg,circOut:Lg,backIn:$c,backInOut:Vg,backOut:Ng,anticipate:Ug},W1=a=>typeof a=="string",Gy=a=>{if(Hg(a)){Wc(a.length===4);const[i,s,u,c]=a;return ql(i,s,u,c)}else if(W1(a))return P1[a];return a},ru=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function F1(a,i){let s=new Set,u=new Set,c=!1,h=!1;const f=new WeakSet;let p={delta:0,timestamp:0,isProcessing:!1};function y(g){f.has(g)&&(m.schedule(g),a()),g(p)}const m={schedule:(g,v=!1,b=!1)=>{const A=b&&c?s:u;return v&&f.add(g),A.has(g)||A.add(g),g},cancel:g=>{u.delete(g),f.delete(g)},process:g=>{if(p=g,c){h=!0;return}c=!0,[s,u]=[u,s],s.forEach(y),s.clear(),c=!1,h&&(h=!1,m.process(g))}};return m}const I1=40;function Yg(a,i){let s=!1,u=!0;const c={delta:0,timestamp:0,isProcessing:!1},h=()=>s=!0,f=ru.reduce((Y,J)=>(Y[J]=F1(h),Y),{}),{setup:p,read:y,resolveKeyframes:m,preUpdate:g,update:v,preRender:b,render:T,postRender:A}=f,_=()=>{const Y=Mn.useManualTiming?c.timestamp:performance.now();s=!1,Mn.useManualTiming||(c.delta=u?1e3/60:Math.max(Math.min(Y-c.timestamp,I1),1)),c.timestamp=Y,c.isProcessing=!0,p.process(c),y.process(c),m.process(c),g.process(c),v.process(c),b.process(c),T.process(c),A.process(c),c.isProcessing=!1,s&&i&&(u=!1,a(_))},N=()=>{s=!0,u=!0,c.isProcessing||a(_)};return{schedule:ru.reduce((Y,J)=>{const q=f[J];return Y[J]=(Q,X=!1,F=!1)=>(s||N(),q.schedule(Q,X,F)),Y},{}),cancel:Y=>{for(let J=0;J(mu===void 0&&ge.set(ne.isProcessing||Mn.useManualTiming?ne.timestamp:performance.now()),mu),set:a=>{mu=a,queueMicrotask($1)}},qg=a=>i=>typeof i=="string"&&i.startsWith(a),Gg=qg("--"),tb=qg("var(--"),ef=a=>tb(a)?eb.test(a.split("/*")[0].trim()):!1,eb=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Oi={test:a=>typeof a=="number",parse:parseFloat,transform:a=>a},Vl={...Oi,transform:a=>An(0,1,a)},ou={...Oi,default:1},Cl=a=>Math.round(a*1e5)/1e5,nf=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function nb(a){return a==null}const ab=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,af=(a,i)=>s=>!!(typeof s=="string"&&ab.test(s)&&s.startsWith(a)||i&&!nb(s)&&Object.prototype.hasOwnProperty.call(s,i)),Xg=(a,i,s)=>u=>{if(typeof u!="string")return u;const[c,h,f,p]=u.match(nf);return{[a]:parseFloat(c),[i]:parseFloat(h),[s]:parseFloat(f),alpha:p!==void 0?parseFloat(p):1}},ib=a=>An(0,255,a),nc={...Oi,transform:a=>Math.round(ib(a))},xa={test:af("rgb","red"),parse:Xg("red","green","blue"),transform:({red:a,green:i,blue:s,alpha:u=1})=>"rgba("+nc.transform(a)+", "+nc.transform(i)+", "+nc.transform(s)+", "+Cl(Vl.transform(u))+")"};function lb(a){let i="",s="",u="",c="";return a.length>5?(i=a.substring(1,3),s=a.substring(3,5),u=a.substring(5,7),c=a.substring(7,9)):(i=a.substring(1,2),s=a.substring(2,3),u=a.substring(3,4),c=a.substring(4,5),i+=i,s+=s,u+=u,c+=c),{red:parseInt(i,16),green:parseInt(s,16),blue:parseInt(u,16),alpha:c?parseInt(c,16)/255:1}}const Ec={test:af("#"),parse:lb,transform:xa.transform},Gl=a=>({test:i=>typeof i=="string"&&i.endsWith(a)&&i.split(" ").length===1,parse:parseFloat,transform:i=>`${i}${a}`}),Fn=Gl("deg"),$e=Gl("%"),nt=Gl("px"),sb=Gl("vh"),ub=Gl("vw"),Xy={...$e,parse:a=>$e.parse(a)/100,transform:a=>$e.transform(a*100)},pi={test:af("hsl","hue"),parse:Xg("hue","saturation","lightness"),transform:({hue:a,saturation:i,lightness:s,alpha:u=1})=>"hsla("+Math.round(a)+", "+$e.transform(Cl(i))+", "+$e.transform(Cl(s))+", "+Cl(Vl.transform(u))+")"},Kt={test:a=>xa.test(a)||Ec.test(a)||pi.test(a),parse:a=>xa.test(a)?xa.parse(a):pi.test(a)?pi.parse(a):Ec.parse(a),transform:a=>typeof a=="string"?a:a.hasOwnProperty("red")?xa.transform(a):pi.transform(a),getAnimatableNone:a=>{const i=Kt.parse(a);return i.alpha=0,Kt.transform(i)}},rb=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function ob(a){return isNaN(a)&&typeof a=="string"&&(a.match(nf)?.length||0)+(a.match(rb)?.length||0)>0}const Qg="number",Kg="color",cb="var",fb="var(",Qy="${}",hb=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Ul(a){const i=a.toString(),s=[],u={color:[],number:[],var:[]},c=[];let h=0;const p=i.replace(hb,y=>(Kt.test(y)?(u.color.push(h),c.push(Kg),s.push(Kt.parse(y))):y.startsWith(fb)?(u.var.push(h),c.push(cb),s.push(y)):(u.number.push(h),c.push(Qg),s.push(parseFloat(y))),++h,Qy)).split(Qy);return{values:s,split:p,indexes:u,types:c}}function Zg(a){return Ul(a).values}function kg(a){const{split:i,types:s}=Ul(a),u=i.length;return c=>{let h="";for(let f=0;ftypeof a=="number"?0:Kt.test(a)?Kt.getAnimatableNone(a):a;function mb(a){const i=Zg(a);return kg(a)(i.map(db))}const $n={test:ob,parse:Zg,createTransformer:kg,getAnimatableNone:mb};function ac(a,i,s){return s<0&&(s+=1),s>1&&(s-=1),s<1/6?a+(i-a)*6*s:s<1/2?i:s<2/3?a+(i-a)*(2/3-s)*6:a}function yb({hue:a,saturation:i,lightness:s,alpha:u}){a/=360,i/=100,s/=100;let c=0,h=0,f=0;if(!i)c=h=f=s;else{const p=s<.5?s*(1+i):s+i-s*i,y=2*s-p;c=ac(y,p,a+1/3),h=ac(y,p,a),f=ac(y,p,a-1/3)}return{red:Math.round(c*255),green:Math.round(h*255),blue:Math.round(f*255),alpha:u}}function vu(a,i){return s=>s>0?i:a}const Vt=(a,i,s)=>a+(i-a)*s,ic=(a,i,s)=>{const u=a*a,c=s*(i*i-u)+u;return c<0?0:Math.sqrt(c)},pb=[Ec,xa,pi],gb=a=>pb.find(i=>i.test(a));function Ky(a){const i=gb(a);if(!i)return!1;let s=i.parse(a);return i===pi&&(s=yb(s)),s}const Zy=(a,i)=>{const s=Ky(a),u=Ky(i);if(!s||!u)return vu(a,i);const c={...s};return h=>(c.red=ic(s.red,u.red,h),c.green=ic(s.green,u.green,h),c.blue=ic(s.blue,u.blue,h),c.alpha=Vt(s.alpha,u.alpha,h),xa.transform(c))},Ac=new Set(["none","hidden"]);function vb(a,i){return Ac.has(a)?s=>s<=0?a:i:s=>s>=1?i:a}function Sb(a,i){return s=>Vt(a,i,s)}function lf(a){return typeof a=="number"?Sb:typeof a=="string"?ef(a)?vu:Kt.test(a)?Zy:Eb:Array.isArray(a)?Jg:typeof a=="object"?Kt.test(a)?Zy:bb:vu}function Jg(a,i){const s=[...a],u=s.length,c=a.map((h,f)=>lf(h)(h,i[f]));return h=>{for(let f=0;f{for(const h in u)s[h]=u[h](c);return s}}function Tb(a,i){const s=[],u={color:0,var:0,number:0};for(let c=0;c{const s=$n.createTransformer(i),u=Ul(a),c=Ul(i);return u.indexes.var.length===c.indexes.var.length&&u.indexes.color.length===c.indexes.color.length&&u.indexes.number.length>=c.indexes.number.length?Ac.has(a)&&!c.values.length||Ac.has(i)&&!u.values.length?vb(a,i):Yl(Jg(Tb(u,c),c.values),s):vu(a,i)};function Pg(a,i,s){return typeof a=="number"&&typeof i=="number"&&typeof s=="number"?Vt(a,i,s):lf(a)(a,i)}const Ab=a=>{const i=({timestamp:s})=>a(s);return{start:(s=!0)=>Nt.update(i,s),stop:()=>In(i),now:()=>ne.isProcessing?ne.timestamp:ge.now()}},Wg=(a,i,s=10)=>{let u="";const c=Math.max(Math.round(i/s),2);for(let h=0;h=Su?1/0:i}function Mb(a,i=100,s){const u=s({...a,keyframes:[0,i]}),c=Math.min(sf(u),Su);return{type:"keyframes",ease:h=>u.next(c*h).value/i,duration:Ye(c)}}const Ob=5;function Fg(a,i,s){const u=Math.max(i-Ob,0);return Cg(s-a(u),i-u)}const Bt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},lc=.001;function Db({duration:a=Bt.duration,bounce:i=Bt.bounce,velocity:s=Bt.velocity,mass:u=Bt.mass}){let c,h,f=1-i;f=An(Bt.minDamping,Bt.maxDamping,f),a=An(Bt.minDuration,Bt.maxDuration,Ye(a)),f<1?(c=m=>{const g=m*f,v=g*a,b=g-s,T=Mc(m,f),A=Math.exp(-v);return lc-b/T*A},h=m=>{const v=m*f*a,b=v*s+s,T=Math.pow(f,2)*Math.pow(m,2)*a,A=Math.exp(-v),_=Mc(Math.pow(m,2),f);return(-c(m)+lc>0?-1:1)*((b-T)*A)/_}):(c=m=>{const g=Math.exp(-m*a),v=(m-s)*a+1;return-lc+g*v},h=m=>{const g=Math.exp(-m*a),v=(s-m)*(a*a);return g*v});const p=5/a,y=_b(c,h,p);if(a=Ie(a),isNaN(y))return{stiffness:Bt.stiffness,damping:Bt.damping,duration:a};{const m=Math.pow(y,2)*u;return{stiffness:m,damping:f*2*Math.sqrt(u*m),duration:a}}}const xb=12;function _b(a,i,s){let u=s;for(let c=1;ca[s]!==void 0)}function wb(a){let i={velocity:Bt.velocity,stiffness:Bt.stiffness,damping:Bt.damping,mass:Bt.mass,isResolvedFromDuration:!1,...a};if(!ky(a,Rb)&&ky(a,Cb))if(a.visualDuration){const s=a.visualDuration,u=2*Math.PI/(s*1.2),c=u*u,h=2*An(.05,1,1-(a.bounce||0))*Math.sqrt(c);i={...i,mass:Bt.mass,stiffness:c,damping:h}}else{const s=Db(a);i={...i,...s,mass:Bt.mass},i.isResolvedFromDuration=!0}return i}function bu(a=Bt.visualDuration,i=Bt.bounce){const s=typeof a!="object"?{visualDuration:a,keyframes:[0,1],bounce:i}:a;let{restSpeed:u,restDelta:c}=s;const h=s.keyframes[0],f=s.keyframes[s.keyframes.length-1],p={done:!1,value:h},{stiffness:y,damping:m,mass:g,duration:v,velocity:b,isResolvedFromDuration:T}=wb({...s,velocity:-Ye(s.velocity||0)}),A=b||0,_=m/(2*Math.sqrt(y*g)),N=f-h,D=Ye(Math.sqrt(y/g)),L=Math.abs(N)<5;u||(u=L?Bt.restSpeed.granular:Bt.restSpeed.default),c||(c=L?Bt.restDelta.granular:Bt.restDelta.default);let Y;if(_<1){const q=Mc(D,_);Y=Q=>{const X=Math.exp(-_*D*Q);return f-X*((A+_*D*N)/q*Math.sin(q*Q)+N*Math.cos(q*Q))}}else if(_===1)Y=q=>f-Math.exp(-D*q)*(N+(A+D*N)*q);else{const q=D*Math.sqrt(_*_-1);Y=Q=>{const X=Math.exp(-_*D*Q),F=Math.min(q*Q,300);return f-X*((A+_*D*N)*Math.sinh(F)+q*N*Math.cosh(F))/q}}const J={calculatedDuration:T&&v||null,next:q=>{const Q=Y(q);if(T)p.done=q>=v;else{let X=q===0?A:0;_<1&&(X=q===0?Ie(A):Fg(Y,q,Q));const F=Math.abs(X)<=u,pt=Math.abs(f-Q)<=c;p.done=F&&pt}return p.value=p.done?f:Q,p},toString:()=>{const q=Math.min(sf(J),Su),Q=Wg(X=>J.next(q*X).value,q,30);return q+"ms "+Q},toTransition:()=>{}};return J}bu.applyToOptions=a=>{const i=Mb(a,100,bu);return a.ease=i.ease,a.duration=Ie(i.duration),a.type="keyframes",a};function Oc({keyframes:a,velocity:i=0,power:s=.8,timeConstant:u=325,bounceDamping:c=10,bounceStiffness:h=500,modifyTarget:f,min:p,max:y,restDelta:m=.5,restSpeed:g}){const v=a[0],b={done:!1,value:v},T=F=>p!==void 0&&Fy,A=F=>p===void 0?y:y===void 0||Math.abs(p-F)-_*Math.exp(-F/u),Y=F=>D+L(F),J=F=>{const pt=L(F),wt=Y(F);b.done=Math.abs(pt)<=m,b.value=b.done?D:wt};let q,Q;const X=F=>{T(b.value)&&(q=F,Q=bu({keyframes:[b.value,A(b.value)],velocity:Fg(Y,F,b.value),damping:c,stiffness:h,restDelta:m,restSpeed:g}))};return X(0),{calculatedDuration:null,next:F=>{let pt=!1;return!Q&&q===void 0&&(pt=!0,J(F),X(F)),q!==void 0&&F>=q?Q.next(F-q):(!pt&&J(F),b)}}}function zb(a,i,s){const u=[],c=s||Mn.mix||Pg,h=a.length-1;for(let f=0;fi[0];if(h===2&&i[0]===i[1])return()=>i[1];const f=a[0]===a[1];a[0]>a[h-1]&&(a=[...a].reverse(),i=[...i].reverse());const p=zb(i,u,c),y=p.length,m=g=>{if(f&&g1)for(;vm(An(a[0],a[h-1],g)):m}function Vb(a,i){const s=a[a.length-1];for(let u=1;u<=i;u++){const c=Nl(0,i,u);a.push(Vt(s,1,c))}}function Ub(a){const i=[0];return Vb(i,a.length-1),i}function Lb(a,i){return a.map(s=>s*i)}function jb(a,i){return a.map(()=>i||Bg).splice(0,a.length-1)}function Rl({duration:a=300,keyframes:i,times:s,ease:u="easeInOut"}){const c=J1(u)?u.map(Gy):Gy(u),h={done:!1,value:i[0]},f=Lb(s&&s.length===i.length?s:Ub(i),a),p=Nb(f,i,{ease:Array.isArray(c)?c:jb(i,c)});return{calculatedDuration:a,next:y=>(h.value=p(y),h.done=y>=a,h)}}const Bb=a=>a!==null;function uf(a,{repeat:i,repeatType:s="loop"},u,c=1){const h=a.filter(Bb),p=c<0||i&&s!=="loop"&&i%2===1?0:h.length-1;return!p||u===void 0?h[p]:u}const Hb={decay:Oc,inertia:Oc,tween:Rl,keyframes:Rl,spring:bu};function Ig(a){typeof a.type=="string"&&(a.type=Hb[a.type])}class rf{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(i=>{this.resolve=i})}notifyFinished(){this.resolve()}then(i,s){return this.finished.then(i,s)}}const Yb=a=>a/100;class of extends rf{constructor(i){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:s}=this.options;s&&s.updatedAt!==ge.now()&&this.tick(ge.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=i,this.initAnimation(),this.play(),i.autoplay===!1&&this.pause()}initAnimation(){const{options:i}=this;Ig(i);const{type:s=Rl,repeat:u=0,repeatDelay:c=0,repeatType:h,velocity:f=0}=i;let{keyframes:p}=i;const y=s||Rl;y!==Rl&&typeof p[0]!="number"&&(this.mixKeyframes=Yl(Yb,Pg(p[0],p[1])),p=[0,100]);const m=y({...i,keyframes:p});h==="mirror"&&(this.mirroredGenerator=y({...i,keyframes:[...p].reverse(),velocity:-f})),m.calculatedDuration===null&&(m.calculatedDuration=sf(m));const{calculatedDuration:g}=m;this.calculatedDuration=g,this.resolvedDuration=g+c,this.totalDuration=this.resolvedDuration*(u+1)-c,this.generator=m}updateTime(i){const s=Math.round(i-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=s}tick(i,s=!1){const{generator:u,totalDuration:c,mixKeyframes:h,mirroredGenerator:f,resolvedDuration:p,calculatedDuration:y}=this;if(this.startTime===null)return u.next(0);const{delay:m=0,keyframes:g,repeat:v,repeatType:b,repeatDelay:T,type:A,onUpdate:_,finalKeyframe:N}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,i):this.speed<0&&(this.startTime=Math.min(i-c/this.speed,this.startTime)),s?this.currentTime=i:this.updateTime(i);const D=this.currentTime-m*(this.playbackSpeed>=0?1:-1),L=this.playbackSpeed>=0?D<0:D>c;this.currentTime=Math.max(D,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=c);let Y=this.currentTime,J=u;if(v){const F=Math.min(this.currentTime,c)/p;let pt=Math.floor(F),wt=F%1;!wt&&F>=1&&(wt=1),wt===1&&pt--,pt=Math.min(pt,v+1),!!(pt%2)&&(b==="reverse"?(wt=1-wt,T&&(wt-=T/p)):b==="mirror"&&(J=f)),Y=An(0,1,wt)*p}const q=L?{done:!1,value:g[0]}:J.next(Y);h&&(q.value=h(q.value));let{done:Q}=q;!L&&y!==null&&(Q=this.playbackSpeed>=0?this.currentTime>=c:this.currentTime<=0);const X=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&Q);return X&&A!==Oc&&(q.value=uf(g,this.options,N,this.speed)),_&&_(q.value),X&&this.finish(),q}then(i,s){return this.finished.then(i,s)}get duration(){return Ye(this.calculatedDuration)}get iterationDuration(){const{delay:i=0}=this.options||{};return this.duration+Ye(i)}get time(){return Ye(this.currentTime)}set time(i){i=Ie(i),this.currentTime=i,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=i:this.driver&&(this.startTime=this.driver.now()-i/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(i){this.updateTime(ge.now());const s=this.playbackSpeed!==i;this.playbackSpeed=i,s&&(this.time=Ye(this.currentTime))}play(){if(this.isStopped)return;const{driver:i=Ab,startTime:s}=this.options;this.driver||(this.driver=i(c=>this.tick(c))),this.options.onPlay?.();const u=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=u):this.holdTime!==null?this.startTime=u-this.holdTime:this.startTime||(this.startTime=s??u),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ge.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(i){return this.startTime=0,this.tick(i,!0)}attachTimeline(i){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),i.observe(this)}}function qb(a){for(let i=1;ia*180/Math.PI,Dc=a=>{const i=_a(Math.atan2(a[1],a[0]));return xc(i)},Gb={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:Dc,rotateZ:Dc,skewX:a=>_a(Math.atan(a[1])),skewY:a=>_a(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},xc=a=>(a=a%360,a<0&&(a+=360),a),Jy=Dc,Py=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),Wy=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),Xb={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Py,scaleY:Wy,scale:a=>(Py(a)+Wy(a))/2,rotateX:a=>xc(_a(Math.atan2(a[6],a[5]))),rotateY:a=>xc(_a(Math.atan2(-a[2],a[0]))),rotateZ:Jy,rotate:Jy,skewX:a=>_a(Math.atan(a[4])),skewY:a=>_a(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function _c(a){return a.includes("scale")?1:0}function Cc(a,i){if(!a||a==="none")return _c(i);const s=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let u,c;if(s)u=Xb,c=s;else{const p=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);u=Gb,c=p}if(!c)return _c(i);const h=u[i],f=c[1].split(",").map(Kb);return typeof h=="function"?h(f):f[h]}const Qb=(a,i)=>{const{transform:s="none"}=getComputedStyle(a);return Cc(s,i)};function Kb(a){return parseFloat(a.trim())}const Di=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],xi=new Set(Di),Fy=a=>a===Oi||a===nt,Zb=new Set(["x","y","z"]),kb=Di.filter(a=>!Zb.has(a));function Jb(a){const i=[];return kb.forEach(s=>{const u=a.getValue(s);u!==void 0&&(i.push([s,u.get()]),u.set(s.startsWith("scale")?1:0))}),i}const Ca={width:({x:a},{paddingLeft:i="0",paddingRight:s="0"})=>a.max-a.min-parseFloat(i)-parseFloat(s),height:({y:a},{paddingTop:i="0",paddingBottom:s="0"})=>a.max-a.min-parseFloat(i)-parseFloat(s),top:(a,{top:i})=>parseFloat(i),left:(a,{left:i})=>parseFloat(i),bottom:({y:a},{top:i})=>parseFloat(i)+(a.max-a.min),right:({x:a},{left:i})=>parseFloat(i)+(a.max-a.min),x:(a,{transform:i})=>Cc(i,"x"),y:(a,{transform:i})=>Cc(i,"y")};Ca.translateX=Ca.x;Ca.translateY=Ca.y;const Ra=new Set;let Rc=!1,wc=!1,zc=!1;function $g(){if(wc){const a=Array.from(Ra).filter(u=>u.needsMeasurement),i=new Set(a.map(u=>u.element)),s=new Map;i.forEach(u=>{const c=Jb(u);c.length&&(s.set(u,c),u.render())}),a.forEach(u=>u.measureInitialState()),i.forEach(u=>{u.render();const c=s.get(u);c&&c.forEach(([h,f])=>{u.getValue(h)?.set(f)})}),a.forEach(u=>u.measureEndState()),a.forEach(u=>{u.suspendedScrollY!==void 0&&window.scrollTo(0,u.suspendedScrollY)})}wc=!1,Rc=!1,Ra.forEach(a=>a.complete(zc)),Ra.clear()}function tv(){Ra.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(wc=!0)})}function Pb(){zc=!0,tv(),$g(),zc=!1}class cf{constructor(i,s,u,c,h,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...i],this.onComplete=s,this.name=u,this.motionValue=c,this.element=h,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(Ra.add(this),Rc||(Rc=!0,Nt.read(tv),Nt.resolveKeyframes($g))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:i,name:s,element:u,motionValue:c}=this;if(i[0]===null){const h=c?.get(),f=i[i.length-1];if(h!==void 0)i[0]=h;else if(u&&s){const p=u.readValue(s,f);p!=null&&(i[0]=p)}i[0]===void 0&&(i[0]=f),c&&h===void 0&&c.set(i[0])}qb(i)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(i=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,i),Ra.delete(this)}cancel(){this.state==="scheduled"&&(Ra.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const Wb=a=>a.startsWith("--");function Fb(a,i,s){Wb(i)?a.style.setProperty(i,s):a.style[i]=s}const Ib=Fc(()=>window.ScrollTimeline!==void 0),$b={};function tT(a,i){const s=Fc(a);return()=>$b[i]??s()}const ev=tT(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),_l=([a,i,s,u])=>`cubic-bezier(${a}, ${i}, ${s}, ${u})`,Iy={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:_l([0,.65,.55,1]),circOut:_l([.55,0,1,.45]),backIn:_l([.31,.01,.66,-.59]),backOut:_l([.33,1.53,.69,.99])};function nv(a,i){if(a)return typeof a=="function"?ev()?Wg(a,i):"ease-out":Hg(a)?_l(a):Array.isArray(a)?a.map(s=>nv(s,i)||Iy.easeOut):Iy[a]}function eT(a,i,s,{delay:u=0,duration:c=300,repeat:h=0,repeatType:f="loop",ease:p="easeOut",times:y}={},m=void 0){const g={[i]:s};y&&(g.offset=y);const v=nv(p,c);Array.isArray(v)&&(g.easing=v);const b={delay:u,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:h+1,direction:f==="reverse"?"alternate":"normal"};return m&&(b.pseudoElement=m),a.animate(g,b)}function av(a){return typeof a=="function"&&"applyToOptions"in a}function nT({type:a,...i}){return av(a)&&ev()?a.applyToOptions(i):(i.duration??(i.duration=300),i.ease??(i.ease="easeOut"),i)}class aT extends rf{constructor(i){if(super(),this.finishedTime=null,this.isStopped=!1,!i)return;const{element:s,name:u,keyframes:c,pseudoElement:h,allowFlatten:f=!1,finalKeyframe:p,onComplete:y}=i;this.isPseudoElement=!!h,this.allowFlatten=f,this.options=i,Wc(typeof i.type!="string");const m=nT(i);this.animation=eT(s,u,c,m,h),m.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!h){const g=uf(c,this.options,p,this.speed);this.updateMotionValue?this.updateMotionValue(g):Fb(s,u,g),this.animation.cancel()}y?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:i}=this;i==="idle"||i==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const i=this.animation.effect?.getComputedTiming?.().duration||0;return Ye(Number(i))}get iterationDuration(){const{delay:i=0}=this.options||{};return this.duration+Ye(i)}get time(){return Ye(Number(this.animation.currentTime)||0)}set time(i){this.finishedTime=null,this.animation.currentTime=Ie(i)}get speed(){return this.animation.playbackRate}set speed(i){i<0&&(this.finishedTime=null),this.animation.playbackRate=i}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(i){this.animation.startTime=i}attachTimeline({timeline:i,observe:s}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,i&&Ib()?(this.animation.timeline=i,qe):s(this)}}const iv={anticipate:Ug,backInOut:Vg,circInOut:jg};function iT(a){return a in iv}function lT(a){typeof a.ease=="string"&&iT(a.ease)&&(a.ease=iv[a.ease])}const $y=10;class sT extends aT{constructor(i){lT(i),Ig(i),super(i),i.startTime&&(this.startTime=i.startTime),this.options=i}updateMotionValue(i){const{motionValue:s,onUpdate:u,onComplete:c,element:h,...f}=this.options;if(!s)return;if(i!==void 0){s.set(i);return}const p=new of({...f,autoplay:!1}),y=Ie(this.finishedTime??this.time);s.setWithVelocity(p.sample(y-$y).value,p.sample(y).value,$y),p.stop()}}const tp=(a,i)=>i==="zIndex"?!1:!!(typeof a=="number"||Array.isArray(a)||typeof a=="string"&&($n.test(a)||a==="0")&&!a.startsWith("url("));function uT(a){const i=a[0];if(a.length===1)return!0;for(let s=0;sObject.hasOwnProperty.call(Element.prototype,"animate"));function fT(a){const{motionValue:i,name:s,repeatDelay:u,repeatType:c,damping:h,type:f}=a;if(!(i?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:y,transformTemplate:m}=i.owner.getProps();return cT()&&s&&oT.has(s)&&(s!=="transform"||!m)&&!y&&!u&&c!=="mirror"&&h!==0&&f!=="inertia"}const hT=40;class dT extends rf{constructor({autoplay:i=!0,delay:s=0,type:u="keyframes",repeat:c=0,repeatDelay:h=0,repeatType:f="loop",keyframes:p,name:y,motionValue:m,element:g,...v}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ge.now();const b={autoplay:i,delay:s,type:u,repeat:c,repeatDelay:h,repeatType:f,name:y,motionValue:m,element:g,...v},T=g?.KeyframeResolver||cf;this.keyframeResolver=new T(p,(A,_,N)=>this.onKeyframesResolved(A,_,b,!N),y,m,g),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(i,s,u,c){this.keyframeResolver=void 0;const{name:h,type:f,velocity:p,delay:y,isHandoff:m,onUpdate:g}=u;this.resolvedAt=ge.now(),rT(i,h,f,p)||((Mn.instantAnimations||!y)&&g?.(uf(i,u,s)),i[0]=i[i.length-1],Nc(u),u.repeat=0);const b={startTime:c?this.resolvedAt?this.resolvedAt-this.createdAt>hT?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:s,...u,keyframes:i},T=!m&&fT(b)?new sT({...b,element:b.motionValue.owner.current}):new of(b);T.finished.then(()=>this.notifyFinished()).catch(qe),this.pendingTimeline&&(this.stopTimeline=T.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=T}get finished(){return this._animation?this.animation.finished:this._finished}then(i,s){return this.finished.finally(i).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Pb()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(i){this.animation.time=i}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(i){this.animation.speed=i}get startTime(){return this.animation.startTime}attachTimeline(i){return this._animation?this.stopTimeline=this.animation.attachTimeline(i):this.pendingTimeline=i,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}const mT=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function yT(a){const i=mT.exec(a);if(!i)return[,];const[,s,u,c]=i;return[`--${s??u}`,c]}function lv(a,i,s=1){const[u,c]=yT(a);if(!u)return;const h=window.getComputedStyle(i).getPropertyValue(u);if(h){const f=h.trim();return Dg(f)?parseFloat(f):f}return ef(c)?lv(c,i,s+1):c}function ff(a,i){return a?.[i]??a?.default??a}const sv=new Set(["width","height","top","left","right","bottom",...Di]),pT={test:a=>a==="auto",parse:a=>a},uv=a=>i=>i.test(a),rv=[Oi,nt,$e,Fn,ub,sb,pT],ep=a=>rv.find(uv(a));function gT(a){return typeof a=="number"?a===0:a!==null?a==="none"||a==="0"||_g(a):!0}const vT=new Set(["brightness","contrast","saturate","opacity"]);function ST(a){const[i,s]=a.slice(0,-1).split("(");if(i==="drop-shadow")return a;const[u]=s.match(nf)||[];if(!u)return a;const c=s.replace(u,"");let h=vT.has(i)?1:0;return u!==s&&(h*=100),i+"("+h+c+")"}const bT=/\b([a-z-]*)\(.*?\)/gu,Vc={...$n,getAnimatableNone:a=>{const i=a.match(bT);return i?i.map(ST).join(" "):a}},np={...Oi,transform:Math.round},TT={rotate:Fn,rotateX:Fn,rotateY:Fn,rotateZ:Fn,scale:ou,scaleX:ou,scaleY:ou,scaleZ:ou,skew:Fn,skewX:Fn,skewY:Fn,distance:nt,translateX:nt,translateY:nt,translateZ:nt,x:nt,y:nt,z:nt,perspective:nt,transformPerspective:nt,opacity:Vl,originX:Xy,originY:Xy,originZ:nt},hf={borderWidth:nt,borderTopWidth:nt,borderRightWidth:nt,borderBottomWidth:nt,borderLeftWidth:nt,borderRadius:nt,radius:nt,borderTopLeftRadius:nt,borderTopRightRadius:nt,borderBottomRightRadius:nt,borderBottomLeftRadius:nt,width:nt,maxWidth:nt,height:nt,maxHeight:nt,top:nt,right:nt,bottom:nt,left:nt,padding:nt,paddingTop:nt,paddingRight:nt,paddingBottom:nt,paddingLeft:nt,margin:nt,marginTop:nt,marginRight:nt,marginBottom:nt,marginLeft:nt,backgroundPositionX:nt,backgroundPositionY:nt,...TT,zIndex:np,fillOpacity:Vl,strokeOpacity:Vl,numOctaves:np},ET={...hf,color:Kt,backgroundColor:Kt,outlineColor:Kt,fill:Kt,stroke:Kt,borderColor:Kt,borderTopColor:Kt,borderRightColor:Kt,borderBottomColor:Kt,borderLeftColor:Kt,filter:Vc,WebkitFilter:Vc},ov=a=>ET[a];function cv(a,i){let s=ov(a);return s!==Vc&&(s=$n),s.getAnimatableNone?s.getAnimatableNone(i):void 0}const AT=new Set(["auto","none","0"]);function MT(a,i,s){let u=0,c;for(;u{i.getValue(p).set(y)}),this.resolveNoneKeyframes()}}function DT(a,i,s){if(a instanceof EventTarget)return[a];if(typeof a=="string"){let u=document;const c=s?.[a]??u.querySelectorAll(a);return c?Array.from(c):[]}return Array.from(a)}const fv=(a,i)=>i&&typeof a=="number"?i.transform(a):a;function hv(a){return xg(a)&&"offsetHeight"in a}const ap=30,xT=a=>!isNaN(parseFloat(a));class _T{constructor(i,s={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=u=>{const c=ge.now();if(this.updatedAt!==c&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(u),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const h of this.dependents)h.dirty()},this.hasAnimated=!1,this.setCurrent(i),this.owner=s.owner}setCurrent(i){this.current=i,this.updatedAt=ge.now(),this.canTrackVelocity===null&&i!==void 0&&(this.canTrackVelocity=xT(this.current))}setPrevFrameValue(i=this.current){this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt}onChange(i){return this.on("change",i)}on(i,s){this.events[i]||(this.events[i]=new Ic);const u=this.events[i].add(s);return i==="change"?()=>{u(),Nt.read(()=>{this.events.change.getSize()||this.stop()})}:u}clearListeners(){for(const i in this.events)this.events[i].clear()}attach(i,s){this.passiveEffect=i,this.stopPassiveEffect=s}set(i){this.passiveEffect?this.passiveEffect(i,this.updateAndNotify):this.updateAndNotify(i)}setWithVelocity(i,s,u){this.set(s),this.prev=void 0,this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt-u}jump(i,s=!0){this.updateAndNotify(i),this.prev=i,this.prevUpdatedAt=this.prevFrameValue=void 0,s&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(i){this.dependents||(this.dependents=new Set),this.dependents.add(i)}removeDependent(i){this.dependents&&this.dependents.delete(i)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const i=ge.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||i-this.updatedAt>ap)return 0;const s=Math.min(this.updatedAt-this.prevUpdatedAt,ap);return Cg(parseFloat(this.current)-parseFloat(this.prevFrameValue),s)}start(i){return this.stop(),new Promise(s=>{this.hasAnimated=!0,this.animation=i(s),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ei(a,i){return new _T(a,i)}const{schedule:df}=Yg(queueMicrotask,!1),Ze={x:!1,y:!1};function dv(){return Ze.x||Ze.y}function CT(a){return a==="x"||a==="y"?Ze[a]?null:(Ze[a]=!0,()=>{Ze[a]=!1}):Ze.x||Ze.y?null:(Ze.x=Ze.y=!0,()=>{Ze.x=Ze.y=!1})}function mv(a,i){const s=DT(a),u=new AbortController,c={passive:!0,...i,signal:u.signal};return[s,c,()=>u.abort()]}function ip(a){return!(a.pointerType==="touch"||dv())}function RT(a,i,s={}){const[u,c,h]=mv(a,s),f=p=>{if(!ip(p))return;const{target:y}=p,m=i(y,p);if(typeof m!="function"||!y)return;const g=v=>{ip(v)&&(m(v),y.removeEventListener("pointerleave",g))};y.addEventListener("pointerleave",g,c)};return u.forEach(p=>{p.addEventListener("pointerenter",f,c)}),h}const yv=(a,i)=>i?a===i?!0:yv(a,i.parentElement):!1,mf=a=>a.pointerType==="mouse"?typeof a.button!="number"||a.button<=0:a.isPrimary!==!1,wT=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function zT(a){return wT.has(a.tagName)||a.tabIndex!==-1}const yu=new WeakSet;function lp(a){return i=>{i.key==="Enter"&&a(i)}}function sc(a,i){a.dispatchEvent(new PointerEvent("pointer"+i,{isPrimary:!0,bubbles:!0}))}const NT=(a,i)=>{const s=a.currentTarget;if(!s)return;const u=lp(()=>{if(yu.has(s))return;sc(s,"down");const c=lp(()=>{sc(s,"up")}),h=()=>sc(s,"cancel");s.addEventListener("keyup",c,i),s.addEventListener("blur",h,i)});s.addEventListener("keydown",u,i),s.addEventListener("blur",()=>s.removeEventListener("keydown",u),i)};function sp(a){return mf(a)&&!dv()}function VT(a,i,s={}){const[u,c,h]=mv(a,s),f=p=>{const y=p.currentTarget;if(!sp(p))return;yu.add(y);const m=i(y,p),g=(T,A)=>{window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",b),yu.has(y)&&yu.delete(y),sp(T)&&typeof m=="function"&&m(T,{success:A})},v=T=>{g(T,y===window||y===document||s.useGlobalTarget||yv(y,T.target))},b=T=>{g(T,!1)};window.addEventListener("pointerup",v,c),window.addEventListener("pointercancel",b,c)};return u.forEach(p=>{(s.useGlobalTarget?window:p).addEventListener("pointerdown",f,c),hv(p)&&(p.addEventListener("focus",m=>NT(m,c)),!zT(p)&&!p.hasAttribute("tabindex")&&(p.tabIndex=0))}),h}function pv(a){return xg(a)&&"ownerSVGElement"in a}function UT(a){return pv(a)&&a.tagName==="svg"}const ue=a=>!!(a&&a.getVelocity),LT=[...rv,Kt,$n],jT=a=>LT.find(uv(a)),yf=Z.createContext({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function up(a,i){if(typeof a=="function")return a(i);a!=null&&(a.current=i)}function BT(...a){return i=>{let s=!1;const u=a.map(c=>{const h=up(c,i);return!s&&typeof h=="function"&&(s=!0),h});if(s)return()=>{for(let c=0;c{const{width:m,height:g,top:v,left:b,right:T}=f.current;if(i||!h.current||!m||!g)return;const A=s==="left"?`left: ${b}`:`right: ${T}`;h.current.dataset.motionPopId=c;const _=document.createElement("style");p&&(_.nonce=p);const N=u??document.head;return N.appendChild(_),_.sheet&&_.sheet.insertRule(` - [data-motion-pop-id="${c}"] { - position: absolute !important; - width: ${m}px !important; - height: ${g}px !important; - ${A}px !important; - top: ${v}px !important; - } - `),()=>{N.contains(_)&&N.removeChild(_)}},[i]),st.jsx(YT,{isPresent:i,childRef:h,sizeRef:f,children:Z.cloneElement(a,{ref:y})})}const GT=({children:a,initial:i,isPresent:s,onExitComplete:u,custom:c,presenceAffectsLayout:h,mode:f,anchorX:p,root:y})=>{const m=Zc(XT),g=Z.useId();let v=!0,b=Z.useMemo(()=>(v=!1,{id:g,initial:i,isPresent:s,custom:c,onExitComplete:T=>{m.set(T,!0);for(const A of m.values())if(!A)return;u&&u()},register:T=>(m.set(T,!1),()=>m.delete(T))}),[s,m,u]);return h&&v&&(b={...b}),Z.useMemo(()=>{m.forEach((T,A)=>m.set(A,!1))},[s]),Z.useEffect(()=>{!s&&!m.size&&u&&u()},[s]),f==="popLayout"&&(a=st.jsx(qT,{isPresent:s,anchorX:p,root:y,children:a})),st.jsx(Ou.Provider,{value:b,children:a})};function XT(){return new Map}function gv(a=!0){const i=Z.useContext(Ou);if(i===null)return[!0,null];const{isPresent:s,onExitComplete:u,register:c}=i,h=Z.useId();Z.useEffect(()=>{if(a)return c(h)},[a]);const f=Z.useCallback(()=>a&&u&&u(h),[h,u,a]);return!s&&u?[!1,f]:[!0]}const cu=a=>a.key||"";function rp(a){const i=[];return Z.Children.forEach(a,s=>{Z.isValidElement(s)&&i.push(s)}),i}const pf=({children:a,custom:i,initial:s=!0,onExitComplete:u,presenceAffectsLayout:c=!0,mode:h="sync",propagate:f=!1,anchorX:p="left",root:y})=>{const[m,g]=gv(f),v=Z.useMemo(()=>rp(a),[a]),b=f&&!m?[]:v.map(cu),T=Z.useRef(!0),A=Z.useRef(v),_=Zc(()=>new Map),[N,D]=Z.useState(v),[L,Y]=Z.useState(v);Og(()=>{T.current=!1,A.current=v;for(let Q=0;Q{const X=cu(Q),F=f&&!m?!1:v===L||b.includes(X),pt=()=>{if(_.has(X))_.set(X,!0);else return;let wt=!0;_.forEach(Ut=>{Ut||(wt=!1)}),wt&&(q?.(),Y(A.current),f&&g?.(),u&&u())};return st.jsx(GT,{isPresent:F,initial:!T.current||s?void 0:!1,custom:i,presenceAffectsLayout:c,mode:h,root:y,onExitComplete:F?void 0:pt,anchorX:p,children:Q},X)})})},vv=Z.createContext({strict:!1}),op={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Ai={};for(const a in op)Ai[a]={isEnabled:i=>op[a].some(s=>!!i[s])};function QT(a){for(const i in a)Ai[i]={...Ai[i],...a[i]}}const KT=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Tu(a){return a.startsWith("while")||a.startsWith("drag")&&a!=="draggable"||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||KT.has(a)}let Sv=a=>!Tu(a);function ZT(a){typeof a=="function"&&(Sv=i=>i.startsWith("on")?!Tu(i):a(i))}try{ZT(require("@emotion/is-prop-valid").default)}catch{}function kT(a,i,s){const u={};for(const c in a)c==="values"&&typeof a.values=="object"||(Sv(c)||s===!0&&Tu(c)||!i&&!Tu(c)||a.draggable&&c.startsWith("onDrag"))&&(u[c]=a[c]);return u}const Du=Z.createContext({});function xu(a){return a!==null&&typeof a=="object"&&typeof a.start=="function"}function Ll(a){return typeof a=="string"||Array.isArray(a)}const gf=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],vf=["initial",...gf];function _u(a){return xu(a.animate)||vf.some(i=>Ll(a[i]))}function bv(a){return!!(_u(a)||a.variants)}function JT(a,i){if(_u(a)){const{initial:s,animate:u}=a;return{initial:s===!1||Ll(s)?s:void 0,animate:Ll(u)?u:void 0}}return a.inherit!==!1?i:{}}function PT(a){const{initial:i,animate:s}=JT(a,Z.useContext(Du));return Z.useMemo(()=>({initial:i,animate:s}),[cp(i),cp(s)])}function cp(a){return Array.isArray(a)?a.join(" "):a}function fp(a,i){return i.max===i.min?0:a/(i.max-i.min)*100}const Al={correct:(a,i)=>{if(!i.target)return a;if(typeof a=="string")if(nt.test(a))a=parseFloat(a);else return a;const s=fp(a,i.target.x),u=fp(a,i.target.y);return`${s}% ${u}%`}},WT={correct:(a,{treeScale:i,projectionDelta:s})=>{const u=a,c=$n.parse(a);if(c.length>5)return u;const h=$n.createTransformer(a),f=typeof c[0]!="number"?1:0,p=s.x.scale*i.x,y=s.y.scale*i.y;c[0+f]/=p,c[1+f]/=y;const m=Vt(p,y,.5);return typeof c[2+f]=="number"&&(c[2+f]/=m),typeof c[3+f]=="number"&&(c[3+f]/=m),h(c)}},Uc={borderRadius:{...Al,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Al,borderTopRightRadius:Al,borderBottomLeftRadius:Al,borderBottomRightRadius:Al,boxShadow:WT};function Tv(a,{layout:i,layoutId:s}){return xi.has(a)||a.startsWith("origin")||(i||s!==void 0)&&(!!Uc[a]||a==="opacity")}const FT={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},IT=Di.length;function $T(a,i,s){let u="",c=!0;for(let h=0;h({style:{},transform:{},transformOrigin:{},vars:{}});function Ev(a,i,s){for(const u in i)!ue(i[u])&&!Tv(u,s)&&(a[u]=i[u])}function tE({transformTemplate:a},i){return Z.useMemo(()=>{const s=bf();return Sf(s,i,a),Object.assign({},s.vars,s.style)},[i])}function eE(a,i){const s=a.style||{},u={};return Ev(u,s,a),Object.assign(u,tE(a,i)),u}function nE(a,i){const s={},u=eE(a,i);return a.drag&&a.dragListener!==!1&&(s.draggable=!1,u.userSelect=u.WebkitUserSelect=u.WebkitTouchCallout="none",u.touchAction=a.drag===!0?"none":`pan-${a.drag==="x"?"y":"x"}`),a.tabIndex===void 0&&(a.onTap||a.onTapStart||a.whileTap)&&(s.tabIndex=0),s.style=u,s}const aE={offset:"stroke-dashoffset",array:"stroke-dasharray"},iE={offset:"strokeDashoffset",array:"strokeDasharray"};function lE(a,i,s=1,u=0,c=!0){a.pathLength=1;const h=c?aE:iE;a[h.offset]=nt.transform(-u);const f=nt.transform(i),p=nt.transform(s);a[h.array]=`${f} ${p}`}function Av(a,{attrX:i,attrY:s,attrScale:u,pathLength:c,pathSpacing:h=1,pathOffset:f=0,...p},y,m,g){if(Sf(a,p,m),y){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};const{attrs:v,style:b}=a;v.transform&&(b.transform=v.transform,delete v.transform),(b.transform||v.transformOrigin)&&(b.transformOrigin=v.transformOrigin??"50% 50%",delete v.transformOrigin),b.transform&&(b.transformBox=g?.transformBox??"fill-box",delete v.transformBox),i!==void 0&&(v.x=i),s!==void 0&&(v.y=s),u!==void 0&&(v.scale=u),c!==void 0&&lE(v,c,h,f,!1)}const Mv=()=>({...bf(),attrs:{}}),Ov=a=>typeof a=="string"&&a.toLowerCase()==="svg";function sE(a,i,s,u){const c=Z.useMemo(()=>{const h=Mv();return Av(h,i,Ov(u),a.transformTemplate,a.style),{...h.attrs,style:{...h.style}}},[i]);if(a.style){const h={};Ev(h,a.style,a),c.style={...h,...c.style}}return c}const uE=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Tf(a){return typeof a!="string"||a.includes("-")?!1:!!(uE.indexOf(a)>-1||/[A-Z]/u.test(a))}function rE(a,i,s,{latestValues:u},c,h=!1){const p=(Tf(a)?sE:nE)(i,u,c,a),y=kT(i,typeof a=="string",h),m=a!==Z.Fragment?{...y,...p,ref:s}:{},{children:g}=i,v=Z.useMemo(()=>ue(g)?g.get():g,[g]);return Z.createElement(a,{...m,children:v})}function hp(a){const i=[{},{}];return a?.values.forEach((s,u)=>{i[0][u]=s.get(),i[1][u]=s.getVelocity()}),i}function Ef(a,i,s,u){if(typeof i=="function"){const[c,h]=hp(u);i=i(s!==void 0?s:a.custom,c,h)}if(typeof i=="string"&&(i=a.variants&&a.variants[i]),typeof i=="function"){const[c,h]=hp(u);i=i(s!==void 0?s:a.custom,c,h)}return i}function pu(a){return ue(a)?a.get():a}function oE({scrapeMotionValuesFromProps:a,createRenderState:i},s,u,c){return{latestValues:cE(s,u,c,a),renderState:i()}}function cE(a,i,s,u){const c={},h=u(a,{});for(const b in h)c[b]=pu(h[b]);let{initial:f,animate:p}=a;const y=_u(a),m=bv(a);i&&m&&!y&&a.inherit!==!1&&(f===void 0&&(f=i.initial),p===void 0&&(p=i.animate));let g=s?s.initial===!1:!1;g=g||f===!1;const v=g?p:f;if(v&&typeof v!="boolean"&&!xu(v)){const b=Array.isArray(v)?v:[v];for(let T=0;T(i,s)=>{const u=Z.useContext(Du),c=Z.useContext(Ou),h=()=>oE(a,i,u,c);return s?h():Zc(h)};function Af(a,i,s){const{style:u}=a,c={};for(const h in u)(ue(u[h])||i.style&&ue(i.style[h])||Tv(h,a)||s?.getValue(h)?.liveStyle!==void 0)&&(c[h]=u[h]);return c}const fE=Dv({scrapeMotionValuesFromProps:Af,createRenderState:bf});function xv(a,i,s){const u=Af(a,i,s);for(const c in a)if(ue(a[c])||ue(i[c])){const h=Di.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;u[h]=a[c]}return u}const hE=Dv({scrapeMotionValuesFromProps:xv,createRenderState:Mv}),dE=Symbol.for("motionComponentSymbol");function gi(a){return a&&typeof a=="object"&&Object.prototype.hasOwnProperty.call(a,"current")}function mE(a,i,s){return Z.useCallback(u=>{u&&a.onMount&&a.onMount(u),i&&(u?i.mount(u):i.unmount()),s&&(typeof s=="function"?s(u):gi(s)&&(s.current=u))},[i])}const Mf=a=>a.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),yE="framerAppearId",_v="data-"+Mf(yE),Cv=Z.createContext({});function pE(a,i,s,u,c){const{visualElement:h}=Z.useContext(Du),f=Z.useContext(vv),p=Z.useContext(Ou),y=Z.useContext(yf).reducedMotion,m=Z.useRef(null);u=u||f.renderer,!m.current&&u&&(m.current=u(a,{visualState:i,parent:h,props:s,presenceContext:p,blockInitialAnimation:p?p.initial===!1:!1,reducedMotionConfig:y}));const g=m.current,v=Z.useContext(Cv);g&&!g.projection&&c&&(g.type==="html"||g.type==="svg")&&gE(m.current,s,c,v);const b=Z.useRef(!1);Z.useInsertionEffect(()=>{g&&b.current&&g.update(s,p)});const T=s[_v],A=Z.useRef(!!T&&!window.MotionHandoffIsComplete?.(T)&&window.MotionHasOptimisedAnimation?.(T));return Og(()=>{g&&(b.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),g.scheduleRenderMicrotask(),A.current&&g.animationState&&g.animationState.animateChanges())}),Z.useEffect(()=>{g&&(!A.current&&g.animationState&&g.animationState.animateChanges(),A.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(T)}),A.current=!1),g.enteringChildren=void 0)}),g}function gE(a,i,s,u){const{layoutId:c,layout:h,drag:f,dragConstraints:p,layoutScroll:y,layoutRoot:m,layoutCrossfade:g}=i;a.projection=new s(a.latestValues,i["data-framer-portal-id"]?void 0:Rv(a.parent)),a.projection.setOptions({layoutId:c,layout:h,alwaysMeasureLayout:!!f||p&&gi(p),visualElement:a,animationType:typeof h=="string"?h:"both",initialPromotionConfig:u,crossfade:g,layoutScroll:y,layoutRoot:m})}function Rv(a){if(a)return a.options.allowProjection!==!1?a.projection:Rv(a.parent)}function uc(a,{forwardMotionProps:i=!1}={},s,u){s&&QT(s);const c=Tf(a)?hE:fE;function h(p,y){let m;const g={...Z.useContext(yf),...p,layoutId:vE(p)},{isStatic:v}=g,b=PT(p),T=c(p,v);if(!v&&kc){SE();const A=bE(g);m=A.MeasureLayout,b.visualElement=pE(a,T,g,u,A.ProjectionNode)}return st.jsxs(Du.Provider,{value:b,children:[m&&b.visualElement?st.jsx(m,{visualElement:b.visualElement,...g}):null,rE(a,p,mE(T,b.visualElement,y),T,v,i)]})}h.displayName=`motion.${typeof a=="string"?a:`create(${a.displayName??a.name??""})`}`;const f=Z.forwardRef(h);return f[dE]=a,f}function vE({layoutId:a}){const i=Z.useContext(Kc).id;return i&&a!==void 0?i+"-"+a:a}function SE(a,i){Z.useContext(vv).strict}function bE(a){const{drag:i,layout:s}=Ai;if(!i&&!s)return{};const u={...i,...s};return{MeasureLayout:i?.isEnabled(a)||s?.isEnabled(a)?u.MeasureLayout:void 0,ProjectionNode:u.ProjectionNode}}function TE(a,i){if(typeof Proxy>"u")return uc;const s=new Map,u=(h,f)=>uc(h,f,a,i),c=(h,f)=>u(h,f);return new Proxy(c,{get:(h,f)=>f==="create"?u:(s.has(f)||s.set(f,uc(f,void 0,a,i)),s.get(f))})}function wv({top:a,left:i,right:s,bottom:u}){return{x:{min:i,max:s},y:{min:a,max:u}}}function EE({x:a,y:i}){return{top:i.min,right:a.max,bottom:i.max,left:a.min}}function AE(a,i){if(!i)return a;const s=i({x:a.left,y:a.top}),u=i({x:a.right,y:a.bottom});return{top:s.y,left:s.x,bottom:u.y,right:u.x}}function rc(a){return a===void 0||a===1}function Lc({scale:a,scaleX:i,scaleY:s}){return!rc(a)||!rc(i)||!rc(s)}function Oa(a){return Lc(a)||zv(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function zv(a){return dp(a.x)||dp(a.y)}function dp(a){return a&&a!=="0%"}function Eu(a,i,s){const u=a-s,c=i*u;return s+c}function mp(a,i,s,u,c){return c!==void 0&&(a=Eu(a,c,u)),Eu(a,s,u)+i}function jc(a,i=0,s=1,u,c){a.min=mp(a.min,i,s,u,c),a.max=mp(a.max,i,s,u,c)}function Nv(a,{x:i,y:s}){jc(a.x,i.translate,i.scale,i.originPoint),jc(a.y,s.translate,s.scale,s.originPoint)}const yp=.999999999999,pp=1.0000000000001;function ME(a,i,s,u=!1){const c=s.length;if(!c)return;i.x=i.y=1;let h,f;for(let p=0;pyp&&(i.x=1),i.yyp&&(i.y=1)}function vi(a,i){a.min=a.min+i,a.max=a.max+i}function gp(a,i,s,u,c=.5){const h=Vt(a.min,a.max,c);jc(a,i,s,h,u)}function Si(a,i){gp(a.x,i.x,i.scaleX,i.scale,i.originX),gp(a.y,i.y,i.scaleY,i.scale,i.originY)}function Vv(a,i){return wv(AE(a.getBoundingClientRect(),i))}function OE(a,i,s){const u=Vv(a,s),{scroll:c}=i;return c&&(vi(u.x,c.offset.x),vi(u.y,c.offset.y)),u}const vp=()=>({translate:0,scale:1,origin:0,originPoint:0}),bi=()=>({x:vp(),y:vp()}),Sp=()=>({min:0,max:0}),kt=()=>({x:Sp(),y:Sp()}),Bc={current:null},Uv={current:!1};function DE(){if(Uv.current=!0,!!kc)if(window.matchMedia){const a=window.matchMedia("(prefers-reduced-motion)"),i=()=>Bc.current=a.matches;a.addEventListener("change",i),i()}else Bc.current=!1}const xE=new WeakMap;function _E(a,i,s){for(const u in i){const c=i[u],h=s[u];if(ue(c))a.addValue(u,c);else if(ue(h))a.addValue(u,Ei(c,{owner:a}));else if(h!==c)if(a.hasValue(u)){const f=a.getValue(u);f.liveStyle===!0?f.jump(c):f.hasAnimated||f.set(c)}else{const f=a.getStaticValue(u);a.addValue(u,Ei(f!==void 0?f:c,{owner:a}))}}for(const u in s)i[u]===void 0&&a.removeValue(u);return i}const bp=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class CE{scrapeMotionValuesFromProps(i,s,u){return{}}constructor({parent:i,props:s,presenceContext:u,reducedMotionConfig:c,blockInitialAnimation:h,visualState:f},p={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=cf,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const b=ge.now();this.renderScheduledAtthis.bindToMotionValue(u,s)),Uv.current||DE(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Bc.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),In(this.notifyUpdate),In(this.render),this.valueSubscriptions.forEach(i=>i()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const i in this.events)this.events[i].clear();for(const i in this.features){const s=this.features[i];s&&(s.unmount(),s.isMounted=!1)}this.current=null}addChild(i){this.children.add(i),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(i)}removeChild(i){this.children.delete(i),this.enteringChildren&&this.enteringChildren.delete(i)}bindToMotionValue(i,s){this.valueSubscriptions.has(i)&&this.valueSubscriptions.get(i)();const u=xi.has(i);u&&this.onBindTransform&&this.onBindTransform();const c=s.on("change",f=>{this.latestValues[i]=f,this.props.onUpdate&&Nt.preRender(this.notifyUpdate),u&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let h;window.MotionCheckAppearSync&&(h=window.MotionCheckAppearSync(this,i,s)),this.valueSubscriptions.set(i,()=>{c(),h&&h(),s.owner&&s.stop()})}sortNodePosition(i){return!this.current||!this.sortInstanceNodePosition||this.type!==i.type?0:this.sortInstanceNodePosition(this.current,i.current)}updateFeatures(){let i="animation";for(i in Ai){const s=Ai[i];if(!s)continue;const{isEnabled:u,Feature:c}=s;if(!this.features[i]&&c&&u(this.props)&&(this.features[i]=new c(this)),this.features[i]){const h=this.features[i];h.isMounted?h.update():(h.mount(),h.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):kt()}getStaticValue(i){return this.latestValues[i]}setStaticValue(i,s){this.latestValues[i]=s}update(i,s){(i.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=i,this.prevPresenceContext=this.presenceContext,this.presenceContext=s;for(let u=0;us.variantChildren.delete(i)}addValue(i,s){const u=this.values.get(i);s!==u&&(u&&this.removeValue(i),this.bindToMotionValue(i,s),this.values.set(i,s),this.latestValues[i]=s.get())}removeValue(i){this.values.delete(i);const s=this.valueSubscriptions.get(i);s&&(s(),this.valueSubscriptions.delete(i)),delete this.latestValues[i],this.removeValueFromRenderState(i,this.renderState)}hasValue(i){return this.values.has(i)}getValue(i,s){if(this.props.values&&this.props.values[i])return this.props.values[i];let u=this.values.get(i);return u===void 0&&s!==void 0&&(u=Ei(s===null?void 0:s,{owner:this}),this.addValue(i,u)),u}readValue(i,s){let u=this.latestValues[i]!==void 0||!this.current?this.latestValues[i]:this.getBaseTargetFromProps(this.props,i)??this.readValueFromInstance(this.current,i,this.options);return u!=null&&(typeof u=="string"&&(Dg(u)||_g(u))?u=parseFloat(u):!jT(u)&&$n.test(s)&&(u=cv(i,s)),this.setBaseTarget(i,ue(u)?u.get():u)),ue(u)?u.get():u}setBaseTarget(i,s){this.baseTarget[i]=s}getBaseTarget(i){const{initial:s}=this.props;let u;if(typeof s=="string"||typeof s=="object"){const h=Ef(this.props,s,this.presenceContext?.custom);h&&(u=h[i])}if(s&&u!==void 0)return u;const c=this.getBaseTargetFromProps(this.props,i);return c!==void 0&&!ue(c)?c:this.initialValues[i]!==void 0&&u===void 0?void 0:this.baseTarget[i]}on(i,s){return this.events[i]||(this.events[i]=new Ic),this.events[i].add(s)}notify(i,...s){this.events[i]&&this.events[i].notify(...s)}scheduleRenderMicrotask(){df.render(this.render)}}class Lv extends CE{constructor(){super(...arguments),this.KeyframeResolver=OT}sortInstanceNodePosition(i,s){return i.compareDocumentPosition(s)&2?1:-1}getBaseTargetFromProps(i,s){return i.style?i.style[s]:void 0}removeValueFromRenderState(i,{vars:s,style:u}){delete s[i],delete u[i]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:i}=this.props;ue(i)&&(this.childSubscription=i.on("change",s=>{this.current&&(this.current.textContent=`${s}`)}))}}function jv(a,{style:i,vars:s},u,c){const h=a.style;let f;for(f in i)h[f]=i[f];c?.applyProjectionStyles(h,u);for(f in s)h.setProperty(f,s[f])}function RE(a){return window.getComputedStyle(a)}class wE extends Lv{constructor(){super(...arguments),this.type="html",this.renderInstance=jv}readValueFromInstance(i,s){if(xi.has(s))return this.projection?.isProjecting?_c(s):Qb(i,s);{const u=RE(i),c=(Gg(s)?u.getPropertyValue(s):u[s])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(i,{transformPagePoint:s}){return Vv(i,s)}build(i,s,u){Sf(i,s,u.transformTemplate)}scrapeMotionValuesFromProps(i,s,u){return Af(i,s,u)}}const Bv=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function zE(a,i,s,u){jv(a,i,void 0,u);for(const c in i.attrs)a.setAttribute(Bv.has(c)?c:Mf(c),i.attrs[c])}class NE extends Lv{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=kt}getBaseTargetFromProps(i,s){return i[s]}readValueFromInstance(i,s){if(xi.has(s)){const u=ov(s);return u&&u.default||0}return s=Bv.has(s)?s:Mf(s),i.getAttribute(s)}scrapeMotionValuesFromProps(i,s,u){return xv(i,s,u)}build(i,s,u){Av(i,s,this.isSVGTag,u.transformTemplate,u.style)}renderInstance(i,s,u,c){zE(i,s,u,c)}mount(i){this.isSVGTag=Ov(i.tagName),super.mount(i)}}const VE=(a,i)=>Tf(a)?new NE(i):new wE(i,{allowProjection:a!==Z.Fragment});function Ti(a,i,s){const u=a.getProps();return Ef(u,i,s!==void 0?s:u.custom,a)}const Hc=a=>Array.isArray(a);function UE(a,i,s){a.hasValue(i)?a.getValue(i).set(s):a.addValue(i,Ei(s))}function LE(a){return Hc(a)?a[a.length-1]||0:a}function jE(a,i){const s=Ti(a,i);let{transitionEnd:u={},transition:c={},...h}=s||{};h={...h,...u};for(const f in h){const p=LE(h[f]);UE(a,f,p)}}function BE(a){return!!(ue(a)&&a.add)}function Yc(a,i){const s=a.getValue("willChange");if(BE(s))return s.add(i);if(!s&&Mn.WillChange){const u=new Mn.WillChange("auto");a.addValue("willChange",u),u.add(i)}}function Hv(a){return a.props[_v]}const HE=a=>a!==null;function YE(a,{repeat:i,repeatType:s="loop"},u){const c=a.filter(HE),h=i&&s!=="loop"&&i%2===1?0:c.length-1;return c[h]}const qE={type:"spring",stiffness:500,damping:25,restSpeed:10},GE=a=>({type:"spring",stiffness:550,damping:a===0?2*Math.sqrt(550):30,restSpeed:10}),XE={type:"keyframes",duration:.8},QE={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},KE=(a,{keyframes:i})=>i.length>2?XE:xi.has(a)?a.startsWith("scale")?GE(i[1]):qE:QE;function ZE({when:a,delay:i,delayChildren:s,staggerChildren:u,staggerDirection:c,repeat:h,repeatType:f,repeatDelay:p,from:y,elapsed:m,...g}){return!!Object.keys(g).length}const Of=(a,i,s,u={},c,h)=>f=>{const p=ff(u,a)||{},y=p.delay||u.delay||0;let{elapsed:m=0}=u;m=m-Ie(y);const g={keyframes:Array.isArray(s)?s:[null,s],ease:"easeOut",velocity:i.getVelocity(),...p,delay:-m,onUpdate:b=>{i.set(b),p.onUpdate&&p.onUpdate(b)},onComplete:()=>{f(),p.onComplete&&p.onComplete()},name:a,motionValue:i,element:h?void 0:c};ZE(p)||Object.assign(g,KE(a,g)),g.duration&&(g.duration=Ie(g.duration)),g.repeatDelay&&(g.repeatDelay=Ie(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let v=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(Nc(g),g.delay===0&&(v=!0)),(Mn.instantAnimations||Mn.skipAnimations)&&(v=!0,Nc(g),g.delay=0),g.allowFlatten=!p.type&&!p.ease,v&&!h&&i.get()!==void 0){const b=YE(g.keyframes,p);if(b!==void 0){Nt.update(()=>{g.onUpdate(b),g.onComplete()});return}}return p.isSync?new of(g):new dT(g)};function kE({protectedKeys:a,needsAnimating:i},s){const u=a.hasOwnProperty(s)&&i[s]!==!0;return i[s]=!1,u}function Yv(a,i,{delay:s=0,transitionOverride:u,type:c}={}){let{transition:h=a.getDefaultTransition(),transitionEnd:f,...p}=i;u&&(h=u);const y=[],m=c&&a.animationState&&a.animationState.getState()[c];for(const g in p){const v=a.getValue(g,a.latestValues[g]??null),b=p[g];if(b===void 0||m&&kE(m,g))continue;const T={delay:s,...ff(h||{},g)},A=v.get();if(A!==void 0&&!v.isAnimating&&!Array.isArray(b)&&b===A&&!T.velocity)continue;let _=!1;if(window.MotionHandoffAnimation){const D=Hv(a);if(D){const L=window.MotionHandoffAnimation(D,g,Nt);L!==null&&(T.startTime=L,_=!0)}}Yc(a,g),v.start(Of(g,v,b,a.shouldReduceMotion&&sv.has(g)?{type:!1}:T,a,_));const N=v.animation;N&&y.push(N)}return f&&Promise.all(y).then(()=>{Nt.update(()=>{f&&jE(a,f)})}),y}function qv(a,i,s,u=0,c=1){const h=Array.from(a).sort((m,g)=>m.sortNodePosition(g)).indexOf(i),f=a.size,p=(f-1)*u;return typeof s=="function"?s(h,f):c===1?h*u:p-h*u}function qc(a,i,s={}){const u=Ti(a,i,s.type==="exit"?a.presenceContext?.custom:void 0);let{transition:c=a.getDefaultTransition()||{}}=u||{};s.transitionOverride&&(c=s.transitionOverride);const h=u?()=>Promise.all(Yv(a,u,s)):()=>Promise.resolve(),f=a.variantChildren&&a.variantChildren.size?(y=0)=>{const{delayChildren:m=0,staggerChildren:g,staggerDirection:v}=c;return JE(a,i,y,m,g,v,s)}:()=>Promise.resolve(),{when:p}=c;if(p){const[y,m]=p==="beforeChildren"?[h,f]:[f,h];return y().then(()=>m())}else return Promise.all([h(),f(s.delay)])}function JE(a,i,s=0,u=0,c=0,h=1,f){const p=[];for(const y of a.variantChildren)y.notify("AnimationStart",i),p.push(qc(y,i,{...f,delay:s+(typeof u=="function"?0:u)+qv(a.variantChildren,y,u,c,h)}).then(()=>y.notify("AnimationComplete",i)));return Promise.all(p)}function PE(a,i,s={}){a.notify("AnimationStart",i);let u;if(Array.isArray(i)){const c=i.map(h=>qc(a,h,s));u=Promise.all(c)}else if(typeof i=="string")u=qc(a,i,s);else{const c=typeof i=="function"?Ti(a,i,s.custom):i;u=Promise.all(Yv(a,c,s))}return u.then(()=>{a.notify("AnimationComplete",i)})}function Gv(a,i){if(!Array.isArray(i))return!1;const s=i.length;if(s!==a.length)return!1;for(let u=0;uPromise.all(i.map(({animation:s,options:u})=>PE(a,s,u)))}function tA(a){let i=$E(a),s=Tp(),u=!0;const c=y=>(m,g)=>{const v=Ti(a,g,y==="exit"?a.presenceContext?.custom:void 0);if(v){const{transition:b,transitionEnd:T,...A}=v;m={...m,...A,...T}}return m};function h(y){i=y(a)}function f(y){const{props:m}=a,g=Xv(a.parent)||{},v=[],b=new Set;let T={},A=1/0;for(let N=0;NA&&J,pt=!1;const wt=Array.isArray(Y)?Y:[Y];let Ut=wt.reduce(c(D),{});q===!1&&(Ut={});const{prevResolvedValues:xt={}}=L,ae={...xt,...Ut},ie=G=>{F=!0,b.has(G)&&(pt=!0,b.delete(G)),L.needsAnimating[G]=!0;const W=a.getValue(G);W&&(W.liveStyle=!1)};for(const G in ae){const W=Ut[G],tt=xt[G];if(T.hasOwnProperty(G))continue;let at=!1;Hc(W)&&Hc(tt)?at=!Gv(W,tt):at=W!==tt,at?W!=null?ie(G):b.add(G):W!==void 0&&b.has(G)?ie(G):L.protectedKeys[G]=!0}L.prevProp=Y,L.prevResolvedValues=Ut,L.isActive&&(T={...T,...Ut}),u&&a.blockInitialAnimation&&(F=!1);const le=Q&&X;F&&(!le||pt)&&v.push(...wt.map(G=>{const W={type:D};if(typeof G=="string"&&u&&!le&&a.manuallyAnimateOnMount&&a.parent){const{parent:tt}=a,at=Ti(tt,G);if(tt.enteringChildren&&at){const{delayChildren:M}=at.transition||{};W.delay=qv(tt.enteringChildren,a,M)}}return{animation:G,options:W}}))}if(b.size){const N={};if(typeof m.initial!="boolean"){const D=Ti(a,Array.isArray(m.initial)?m.initial[0]:m.initial);D&&D.transition&&(N.transition=D.transition)}b.forEach(D=>{const L=a.getBaseTarget(D),Y=a.getValue(D);Y&&(Y.liveStyle=!0),N[D]=L??null}),v.push({animation:N})}let _=!!v.length;return u&&(m.initial===!1||m.initial===m.animate)&&!a.manuallyAnimateOnMount&&(_=!1),u=!1,_?i(v):Promise.resolve()}function p(y,m){if(s[y].isActive===m)return Promise.resolve();a.variantChildren?.forEach(v=>v.animationState?.setActive(y,m)),s[y].isActive=m;const g=f(y);for(const v in s)s[v].protectedKeys={};return g}return{animateChanges:f,setActive:p,setAnimateFunction:h,getState:()=>s,reset:()=>{s=Tp()}}}function eA(a,i){return typeof i=="string"?i!==a:Array.isArray(i)?!Gv(i,a):!1}function Ta(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Tp(){return{animate:Ta(!0),whileInView:Ta(),whileHover:Ta(),whileTap:Ta(),whileDrag:Ta(),whileFocus:Ta(),exit:Ta()}}class ea{constructor(i){this.isMounted=!1,this.node=i}update(){}}class nA extends ea{constructor(i){super(i),i.animationState||(i.animationState=tA(i))}updateAnimationControlsSubscription(){const{animate:i}=this.node.getProps();xu(i)&&(this.unmountControls=i.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:i}=this.node.getProps(),{animate:s}=this.node.prevProps||{};i!==s&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let aA=0;class iA extends ea{constructor(){super(...arguments),this.id=aA++}update(){if(!this.node.presenceContext)return;const{isPresent:i,onExitComplete:s}=this.node.presenceContext,{isPresent:u}=this.node.prevPresenceContext||{};if(!this.node.animationState||i===u)return;const c=this.node.animationState.setActive("exit",!i);s&&!i&&c.then(()=>{s(this.id)})}mount(){const{register:i,onExitComplete:s}=this.node.presenceContext||{};s&&s(this.id),i&&(this.unmount=i(this.id))}unmount(){}}const lA={animation:{Feature:nA},exit:{Feature:iA}};function jl(a,i,s,u={passive:!0}){return a.addEventListener(i,s,u),()=>a.removeEventListener(i,s)}function Xl(a){return{point:{x:a.pageX,y:a.pageY}}}const sA=a=>i=>mf(i)&&a(i,Xl(i));function wl(a,i,s,u){return jl(a,i,sA(s),u)}const Qv=1e-4,uA=1-Qv,rA=1+Qv,Kv=.01,oA=0-Kv,cA=0+Kv;function oe(a){return a.max-a.min}function fA(a,i,s){return Math.abs(a-i)<=s}function Ep(a,i,s,u=.5){a.origin=u,a.originPoint=Vt(i.min,i.max,a.origin),a.scale=oe(s)/oe(i),a.translate=Vt(s.min,s.max,a.origin)-a.originPoint,(a.scale>=uA&&a.scale<=rA||isNaN(a.scale))&&(a.scale=1),(a.translate>=oA&&a.translate<=cA||isNaN(a.translate))&&(a.translate=0)}function zl(a,i,s,u){Ep(a.x,i.x,s.x,u?u.originX:void 0),Ep(a.y,i.y,s.y,u?u.originY:void 0)}function Ap(a,i,s){a.min=s.min+i.min,a.max=a.min+oe(i)}function hA(a,i,s){Ap(a.x,i.x,s.x),Ap(a.y,i.y,s.y)}function Mp(a,i,s){a.min=i.min-s.min,a.max=a.min+oe(i)}function Au(a,i,s){Mp(a.x,i.x,s.x),Mp(a.y,i.y,s.y)}function He(a){return[a("x"),a("y")]}const Zv=({current:a})=>a?a.ownerDocument.defaultView:null,Op=(a,i)=>Math.abs(a-i);function dA(a,i){const s=Op(a.x,i.x),u=Op(a.y,i.y);return Math.sqrt(s**2+u**2)}class kv{constructor(i,s,{transformPagePoint:u,contextWindow:c=window,dragSnapToOrigin:h=!1,distanceThreshold:f=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=cc(this.lastMoveEventInfo,this.history),T=this.startEvent!==null,A=dA(b.offset,{x:0,y:0})>=this.distanceThreshold;if(!T&&!A)return;const{point:_}=b,{timestamp:N}=ne;this.history.push({..._,timestamp:N});const{onStart:D,onMove:L}=this.handlers;T||(D&&D(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),L&&L(this.lastMoveEvent,b)},this.handlePointerMove=(b,T)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=oc(T,this.transformPagePoint),Nt.update(this.updatePoint,!0)},this.handlePointerUp=(b,T)=>{this.end();const{onEnd:A,onSessionEnd:_,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const D=cc(b.type==="pointercancel"?this.lastMoveEventInfo:oc(T,this.transformPagePoint),this.history);this.startEvent&&A&&A(b,D),_&&_(b,D)},!mf(i))return;this.dragSnapToOrigin=h,this.handlers=s,this.transformPagePoint=u,this.distanceThreshold=f,this.contextWindow=c||window;const p=Xl(i),y=oc(p,this.transformPagePoint),{point:m}=y,{timestamp:g}=ne;this.history=[{...m,timestamp:g}];const{onSessionStart:v}=s;v&&v(i,cc(y,this.history)),this.removeListeners=Yl(wl(this.contextWindow,"pointermove",this.handlePointerMove),wl(this.contextWindow,"pointerup",this.handlePointerUp),wl(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(i){this.handlers=i}end(){this.removeListeners&&this.removeListeners(),In(this.updatePoint)}}function oc(a,i){return i?{point:i(a.point)}:a}function Dp(a,i){return{x:a.x-i.x,y:a.y-i.y}}function cc({point:a},i){return{point:a,delta:Dp(a,Jv(i)),offset:Dp(a,mA(i)),velocity:yA(i,.1)}}function mA(a){return a[0]}function Jv(a){return a[a.length-1]}function yA(a,i){if(a.length<2)return{x:0,y:0};let s=a.length-1,u=null;const c=Jv(a);for(;s>=0&&(u=a[s],!(c.timestamp-u.timestamp>Ie(i)));)s--;if(!u)return{x:0,y:0};const h=Ye(c.timestamp-u.timestamp);if(h===0)return{x:0,y:0};const f={x:(c.x-u.x)/h,y:(c.y-u.y)/h};return f.x===1/0&&(f.x=0),f.y===1/0&&(f.y=0),f}function pA(a,{min:i,max:s},u){return i!==void 0&&as&&(a=u?Vt(s,a,u.max):Math.min(a,s)),a}function xp(a,i,s){return{min:i!==void 0?a.min+i:void 0,max:s!==void 0?a.max+s-(a.max-a.min):void 0}}function gA(a,{top:i,left:s,bottom:u,right:c}){return{x:xp(a.x,s,c),y:xp(a.y,i,u)}}function _p(a,i){let s=i.min-a.min,u=i.max-a.max;return i.max-i.minu?s=Nl(i.min,i.max-u,a.min):u>c&&(s=Nl(a.min,a.max-c,i.min)),An(0,1,s)}function bA(a,i){const s={};return i.min!==void 0&&(s.min=i.min-a.min),i.max!==void 0&&(s.max=i.max-a.min),s}const Gc=.35;function TA(a=Gc){return a===!1?a=0:a===!0&&(a=Gc),{x:Cp(a,"left","right"),y:Cp(a,"top","bottom")}}function Cp(a,i,s){return{min:Rp(a,i),max:Rp(a,s)}}function Rp(a,i){return typeof a=="number"?a:a[i]||0}const EA=new WeakMap;class AA{constructor(i){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=kt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=i}start(i,{snapToCursor:s=!1,distanceThreshold:u}={}){const{presenceContext:c}=this.visualElement;if(c&&c.isPresent===!1)return;const h=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),s&&this.snapToCursor(Xl(v).point)},f=(v,b)=>{const{drag:T,dragPropagation:A,onDragStart:_}=this.getProps();if(T&&!A&&(this.openDragLock&&this.openDragLock(),this.openDragLock=CT(T),!this.openDragLock))return;this.latestPointerEvent=v,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),He(D=>{let L=this.getAxisMotionValue(D).get()||0;if($e.test(L)){const{projection:Y}=this.visualElement;if(Y&&Y.layout){const J=Y.layout.layoutBox[D];J&&(L=oe(J)*(parseFloat(L)/100))}}this.originPoint[D]=L}),_&&Nt.postRender(()=>_(v,b)),Yc(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},p=(v,b)=>{this.latestPointerEvent=v,this.latestPanInfo=b;const{dragPropagation:T,dragDirectionLock:A,onDirectionLock:_,onDrag:N}=this.getProps();if(!T&&!this.openDragLock)return;const{offset:D}=b;if(A&&this.currentDirection===null){this.currentDirection=MA(D),this.currentDirection!==null&&_&&_(this.currentDirection);return}this.updateAxis("x",b.point,D),this.updateAxis("y",b.point,D),this.visualElement.render(),N&&N(v,b)},y=(v,b)=>{this.latestPointerEvent=v,this.latestPanInfo=b,this.stop(v,b),this.latestPointerEvent=null,this.latestPanInfo=null},m=()=>He(v=>this.getAnimationState(v)==="paused"&&this.getAxisMotionValue(v).animation?.play()),{dragSnapToOrigin:g}=this.getProps();this.panSession=new kv(i,{onSessionStart:h,onStart:f,onMove:p,onSessionEnd:y,resumeAnimation:m},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,distanceThreshold:u,contextWindow:Zv(this.visualElement)})}stop(i,s){const u=i||this.latestPointerEvent,c=s||this.latestPanInfo,h=this.isDragging;if(this.cancel(),!h||!c||!u)return;const{velocity:f}=c;this.startAnimation(f);const{onDragEnd:p}=this.getProps();p&&Nt.postRender(()=>p(u,c))}cancel(){this.isDragging=!1;const{projection:i,animationState:s}=this.visualElement;i&&(i.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:u}=this.getProps();!u&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),s&&s.setActive("whileDrag",!1)}updateAxis(i,s,u){const{drag:c}=this.getProps();if(!u||!fu(i,c,this.currentDirection))return;const h=this.getAxisMotionValue(i);let f=this.originPoint[i]+u[i];this.constraints&&this.constraints[i]&&(f=pA(f,this.constraints[i],this.elastic[i])),h.set(f)}resolveConstraints(){const{dragConstraints:i,dragElastic:s}=this.getProps(),u=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,c=this.constraints;i&&gi(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&u?this.constraints=gA(u.layoutBox,i):this.constraints=!1,this.elastic=TA(s),c!==this.constraints&&u&&this.constraints&&!this.hasMutatedConstraints&&He(h=>{this.constraints!==!1&&this.getAxisMotionValue(h)&&(this.constraints[h]=bA(u.layoutBox[h],this.constraints[h]))})}resolveRefConstraints(){const{dragConstraints:i,onMeasureDragConstraints:s}=this.getProps();if(!i||!gi(i))return!1;const u=i.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const h=OE(u,c.root,this.visualElement.getTransformPagePoint());let f=vA(c.layout.layoutBox,h);if(s){const p=s(EE(f));this.hasMutatedConstraints=!!p,p&&(f=wv(p))}return f}startAnimation(i){const{drag:s,dragMomentum:u,dragElastic:c,dragTransition:h,dragSnapToOrigin:f,onDragTransitionEnd:p}=this.getProps(),y=this.constraints||{},m=He(g=>{if(!fu(g,s,this.currentDirection))return;let v=y&&y[g]||{};f&&(v={min:0,max:0});const b=c?200:1e6,T=c?40:1e7,A={type:"inertia",velocity:u?i[g]:0,bounceStiffness:b,bounceDamping:T,timeConstant:750,restDelta:1,restSpeed:10,...h,...v};return this.startAxisValueAnimation(g,A)});return Promise.all(m).then(p)}startAxisValueAnimation(i,s){const u=this.getAxisMotionValue(i);return Yc(this.visualElement,i),u.start(Of(i,u,0,s,this.visualElement,!1))}stopAnimation(){He(i=>this.getAxisMotionValue(i).stop())}pauseAnimation(){He(i=>this.getAxisMotionValue(i).animation?.pause())}getAnimationState(i){return this.getAxisMotionValue(i).animation?.state}getAxisMotionValue(i){const s=`_drag${i.toUpperCase()}`,u=this.visualElement.getProps(),c=u[s];return c||this.visualElement.getValue(i,(u.initial?u.initial[i]:void 0)||0)}snapToCursor(i){He(s=>{const{drag:u}=this.getProps();if(!fu(s,u,this.currentDirection))return;const{projection:c}=this.visualElement,h=this.getAxisMotionValue(s);if(c&&c.layout){const{min:f,max:p}=c.layout.layoutBox[s];h.set(i[s]-Vt(f,p,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:i,dragConstraints:s}=this.getProps(),{projection:u}=this.visualElement;if(!gi(s)||!u||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};He(f=>{const p=this.getAxisMotionValue(f);if(p&&this.constraints!==!1){const y=p.get();c[f]=SA({min:y,max:y},this.constraints[f])}});const{transformTemplate:h}=this.visualElement.getProps();this.visualElement.current.style.transform=h?h({},""):"none",u.root&&u.root.updateScroll(),u.updateLayout(),this.resolveConstraints(),He(f=>{if(!fu(f,i,null))return;const p=this.getAxisMotionValue(f),{min:y,max:m}=this.constraints[f];p.set(Vt(y,m,c[f]))})}addListeners(){if(!this.visualElement.current)return;EA.set(this.visualElement,this);const i=this.visualElement.current,s=wl(i,"pointerdown",y=>{const{drag:m,dragListener:g=!0}=this.getProps();m&&g&&this.start(y)}),u=()=>{const{dragConstraints:y}=this.getProps();gi(y)&&y.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,h=c.addEventListener("measure",u);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),Nt.read(u);const f=jl(window,"resize",()=>this.scalePositionWithinConstraints()),p=c.addEventListener("didUpdate",(({delta:y,hasLayoutChanged:m})=>{this.isDragging&&m&&(He(g=>{const v=this.getAxisMotionValue(g);v&&(this.originPoint[g]+=y[g].translate,v.set(v.get()+y[g].translate))}),this.visualElement.render())}));return()=>{f(),s(),h(),p&&p()}}getProps(){const i=this.visualElement.getProps(),{drag:s=!1,dragDirectionLock:u=!1,dragPropagation:c=!1,dragConstraints:h=!1,dragElastic:f=Gc,dragMomentum:p=!0}=i;return{...i,drag:s,dragDirectionLock:u,dragPropagation:c,dragConstraints:h,dragElastic:f,dragMomentum:p}}}function fu(a,i,s){return(i===!0||i===a)&&(s===null||s===a)}function MA(a,i=10){let s=null;return Math.abs(a.y)>i?s="y":Math.abs(a.x)>i&&(s="x"),s}class OA extends ea{constructor(i){super(i),this.removeGroupControls=qe,this.removeListeners=qe,this.controls=new AA(i)}mount(){const{dragControls:i}=this.node.getProps();i&&(this.removeGroupControls=i.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||qe}unmount(){this.removeGroupControls(),this.removeListeners()}}const wp=a=>(i,s)=>{a&&Nt.postRender(()=>a(i,s))};class DA extends ea{constructor(){super(...arguments),this.removePointerDownListener=qe}onPointerDown(i){this.session=new kv(i,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Zv(this.node)})}createPanHandlers(){const{onPanSessionStart:i,onPanStart:s,onPan:u,onPanEnd:c}=this.node.getProps();return{onSessionStart:wp(i),onStart:wp(s),onMove:u,onEnd:(h,f)=>{delete this.session,c&&Nt.postRender(()=>c(h,f))}}}mount(){this.removePointerDownListener=wl(this.node.current,"pointerdown",i=>this.onPointerDown(i))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const gu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let fc=!1;class xA extends Z.Component{componentDidMount(){const{visualElement:i,layoutGroup:s,switchLayoutGroup:u,layoutId:c}=this.props,{projection:h}=i;h&&(s.group&&s.group.add(h),u&&u.register&&c&&u.register(h),fc&&h.root.didUpdate(),h.addEventListener("animationComplete",()=>{this.safeToRemove()}),h.setOptions({...h.options,onExitComplete:()=>this.safeToRemove()})),gu.hasEverUpdated=!0}getSnapshotBeforeUpdate(i){const{layoutDependency:s,visualElement:u,drag:c,isPresent:h}=this.props,{projection:f}=u;return f&&(f.isPresent=h,fc=!0,c||i.layoutDependency!==s||s===void 0||i.isPresent!==h?f.willUpdate():this.safeToRemove(),i.isPresent!==h&&(h?f.promote():f.relegate()||Nt.postRender(()=>{const p=f.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:i}=this.props.visualElement;i&&(i.root.didUpdate(),df.postRender(()=>{!i.currentAnimation&&i.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:i,layoutGroup:s,switchLayoutGroup:u}=this.props,{projection:c}=i;fc=!0,c&&(c.scheduleCheckAfterUnmount(),s&&s.group&&s.group.remove(c),u&&u.deregister&&u.deregister(c))}safeToRemove(){const{safeToRemove:i}=this.props;i&&i()}render(){return null}}function Pv(a){const[i,s]=gv(),u=Z.useContext(Kc);return st.jsx(xA,{...a,layoutGroup:u,switchLayoutGroup:Z.useContext(Cv),isPresent:i,safeToRemove:s})}function _A(a,i,s){const u=ue(a)?a:Ei(a);return u.start(Of("",u,i,s)),u.animation}const CA=(a,i)=>a.depth-i.depth;class RA{constructor(){this.children=[],this.isDirty=!1}add(i){Jc(this.children,i),this.isDirty=!0}remove(i){Pc(this.children,i),this.isDirty=!0}forEach(i){this.isDirty&&this.children.sort(CA),this.isDirty=!1,this.children.forEach(i)}}function wA(a,i){const s=ge.now(),u=({timestamp:c})=>{const h=c-s;h>=i&&(In(u),a(h-i))};return Nt.setup(u,!0),()=>In(u)}const Wv=["TopLeft","TopRight","BottomLeft","BottomRight"],zA=Wv.length,zp=a=>typeof a=="string"?parseFloat(a):a,Np=a=>typeof a=="number"||nt.test(a);function NA(a,i,s,u,c,h){c?(a.opacity=Vt(0,s.opacity??1,VA(u)),a.opacityExit=Vt(i.opacity??1,0,UA(u))):h&&(a.opacity=Vt(i.opacity??1,s.opacity??1,u));for(let f=0;fui?1:s(Nl(a,i,u))}function Up(a,i){a.min=i.min,a.max=i.max}function Ke(a,i){Up(a.x,i.x),Up(a.y,i.y)}function Lp(a,i){a.translate=i.translate,a.scale=i.scale,a.originPoint=i.originPoint,a.origin=i.origin}function jp(a,i,s,u,c){return a-=i,a=Eu(a,1/s,u),c!==void 0&&(a=Eu(a,1/c,u)),a}function LA(a,i=0,s=1,u=.5,c,h=a,f=a){if($e.test(i)&&(i=parseFloat(i),i=Vt(f.min,f.max,i/100)-f.min),typeof i!="number")return;let p=Vt(h.min,h.max,u);a===h&&(p-=i),a.min=jp(a.min,i,s,p,c),a.max=jp(a.max,i,s,p,c)}function Bp(a,i,[s,u,c],h,f){LA(a,i[s],i[u],i[c],i.scale,h,f)}const jA=["x","scaleX","originX"],BA=["y","scaleY","originY"];function Hp(a,i,s,u){Bp(a.x,i,jA,s?s.x:void 0,u?u.x:void 0),Bp(a.y,i,BA,s?s.y:void 0,u?u.y:void 0)}function Yp(a){return a.translate===0&&a.scale===1}function Iv(a){return Yp(a.x)&&Yp(a.y)}function qp(a,i){return a.min===i.min&&a.max===i.max}function HA(a,i){return qp(a.x,i.x)&&qp(a.y,i.y)}function Gp(a,i){return Math.round(a.min)===Math.round(i.min)&&Math.round(a.max)===Math.round(i.max)}function $v(a,i){return Gp(a.x,i.x)&&Gp(a.y,i.y)}function Xp(a){return oe(a.x)/oe(a.y)}function Qp(a,i){return a.translate===i.translate&&a.scale===i.scale&&a.originPoint===i.originPoint}class YA{constructor(){this.members=[]}add(i){Jc(this.members,i),i.scheduleRender()}remove(i){if(Pc(this.members,i),i===this.prevLead&&(this.prevLead=void 0),i===this.lead){const s=this.members[this.members.length-1];s&&this.promote(s)}}relegate(i){const s=this.members.findIndex(c=>i===c);if(s===0)return!1;let u;for(let c=s;c>=0;c--){const h=this.members[c];if(h.isPresent!==!1){u=h;break}}return u?(this.promote(u),!0):!1}promote(i,s){const u=this.lead;if(i!==u&&(this.prevLead=u,this.lead=i,i.show(),u)){u.instance&&u.scheduleRender(),i.scheduleRender(),i.resumeFrom=u,s&&(i.resumeFrom.preserveOpacity=!0),u.snapshot&&(i.snapshot=u.snapshot,i.snapshot.latestValues=u.animationValues||u.latestValues),i.root&&i.root.isUpdating&&(i.isLayoutDirty=!0);const{crossfade:c}=i.options;c===!1&&u.hide()}}exitAnimationComplete(){this.members.forEach(i=>{const{options:s,resumingFrom:u}=i;s.onExitComplete&&s.onExitComplete(),u&&u.options.onExitComplete&&u.options.onExitComplete()})}scheduleRender(){this.members.forEach(i=>{i.instance&&i.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function qA(a,i,s){let u="";const c=a.x.translate/i.x,h=a.y.translate/i.y,f=s?.z||0;if((c||h||f)&&(u=`translate3d(${c}px, ${h}px, ${f}px) `),(i.x!==1||i.y!==1)&&(u+=`scale(${1/i.x}, ${1/i.y}) `),s){const{transformPerspective:m,rotate:g,rotateX:v,rotateY:b,skewX:T,skewY:A}=s;m&&(u=`perspective(${m}px) ${u}`),g&&(u+=`rotate(${g}deg) `),v&&(u+=`rotateX(${v}deg) `),b&&(u+=`rotateY(${b}deg) `),T&&(u+=`skewX(${T}deg) `),A&&(u+=`skewY(${A}deg) `)}const p=a.x.scale*i.x,y=a.y.scale*i.y;return(p!==1||y!==1)&&(u+=`scale(${p}, ${y})`),u||"none"}const hc=["","X","Y","Z"],GA=1e3;let XA=0;function dc(a,i,s,u){const{latestValues:c}=i;c[a]&&(s[a]=c[a],i.setStaticValue(a,0),u&&(u[a]=0))}function t0(a){if(a.hasCheckedOptimisedAppear=!0,a.root===a)return;const{visualElement:i}=a.options;if(!i)return;const s=Hv(i);if(window.MotionHasOptimisedAnimation(s,"transform")){const{layout:c,layoutId:h}=a.options;window.MotionCancelOptimisedAnimation(s,"transform",Nt,!(c||h))}const{parent:u}=a;u&&!u.hasCheckedOptimisedAppear&&t0(u)}function e0({attachResizeListener:a,defaultParent:i,measureScroll:s,checkIsScrollRoot:u,resetTransform:c}){return class{constructor(f={},p=i?.()){this.id=XA++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ZA),this.nodes.forEach(WA),this.nodes.forEach(FA),this.nodes.forEach(kA)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=f,this.root=p?p.root||p:this,this.path=p?[...p.path,p]:[],this.parent=p,this.depth=p?p.depth+1:0;for(let y=0;ythis.root.updateBlockedByResize=!1;Nt.read(()=>{v=window.innerWidth}),a(f,()=>{const T=window.innerWidth;T!==v&&(v=T,this.root.updateBlockedByResize=!0,g&&g(),g=wA(b,250),gu.hasAnimatedSinceResize&&(gu.hasAnimatedSinceResize=!1,this.nodes.forEach(kp)))})}p&&this.root.registerSharedNode(p,this),this.options.animate!==!1&&m&&(p||y)&&this.addEventListener("didUpdate",({delta:g,hasLayoutChanged:v,hasRelativeLayoutChanged:b,layout:T})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const A=this.options.transition||m.getDefaultTransition()||n2,{onLayoutAnimationStart:_,onLayoutAnimationComplete:N}=m.getProps(),D=!this.targetLayout||!$v(this.targetLayout,T),L=!v&&b;if(this.options.layoutRoot||this.resumeFrom||L||v&&(D||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const Y={...ff(A,"layout"),onPlay:_,onComplete:N};(m.shouldReduceMotion||this.options.layoutRoot)&&(Y.delay=0,Y.type=!1),this.startAnimation(Y),this.setAnimationOrigin(g,L)}else v||kp(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=T})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const f=this.getStack();f&&f.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),In(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(IA),this.animationId++)}getTransformTemplate(){const{visualElement:f}=this.options;return f&&f.getProps().transformTemplate}willUpdate(f=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&t0(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let g=0;g{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!oe(this.snapshot.measuredBox.x)&&!oe(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let y=0;y{const q=J/1e3;Jp(v.x,f.x,q),Jp(v.y,f.y,q),this.setTargetDelta(v),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(Au(b,this.layout.layoutBox,this.relativeParent.layout.layoutBox),t2(this.relativeTarget,this.relativeTargetOrigin,b,q),Y&&HA(this.relativeTarget,Y)&&(this.isProjectionDirty=!1),Y||(Y=kt()),Ke(Y,this.relativeTarget)),_&&(this.animationValues=g,NA(g,m,this.latestValues,q,L,D)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=q},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(f){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(In(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Nt.update(()=>{gu.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ei(0)),this.currentAnimation=_A(this.motionValue,[0,1e3],{...f,velocity:0,isSync:!0,onUpdate:p=>{this.mixTargetDelta(p),f.onUpdate&&f.onUpdate(p)},onStop:()=>{},onComplete:()=>{f.onComplete&&f.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const f=this.getStack();f&&f.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(GA),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const f=this.getLead();let{targetWithTransforms:p,target:y,layout:m,latestValues:g}=f;if(!(!p||!y||!m)){if(this!==f&&this.layout&&m&&n0(this.options.animationType,this.layout.layoutBox,m.layoutBox)){y=this.target||kt();const v=oe(this.layout.layoutBox.x);y.x.min=f.target.x.min,y.x.max=y.x.min+v;const b=oe(this.layout.layoutBox.y);y.y.min=f.target.y.min,y.y.max=y.y.min+b}Ke(p,y),Si(p,g),zl(this.projectionDeltaWithTransform,this.layoutCorrected,p,g)}}registerSharedNode(f,p){this.sharedNodes.has(f)||this.sharedNodes.set(f,new YA),this.sharedNodes.get(f).add(p);const m=p.options.initialPromotionConfig;p.promote({transition:m?m.transition:void 0,preserveFollowOpacity:m&&m.shouldPreserveFollowOpacity?m.shouldPreserveFollowOpacity(p):void 0})}isLead(){const f=this.getStack();return f?f.lead===this:!0}getLead(){const{layoutId:f}=this.options;return f?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:f}=this.options;return f?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:f}=this.options;if(f)return this.root.sharedNodes.get(f)}promote({needsReset:f,transition:p,preserveFollowOpacity:y}={}){const m=this.getStack();m&&m.promote(this,y),f&&(this.projectionDelta=void 0,this.needsReset=!0),p&&this.setOptions({transition:p})}relegate(){const f=this.getStack();return f?f.relegate(this):!1}resetSkewAndRotation(){const{visualElement:f}=this.options;if(!f)return;let p=!1;const{latestValues:y}=f;if((y.z||y.rotate||y.rotateX||y.rotateY||y.rotateZ||y.skewX||y.skewY)&&(p=!0),!p)return;const m={};y.z&&dc("z",f,m,this.animationValues);for(let g=0;gf.currentAnimation?.stop()),this.root.nodes.forEach(Kp),this.root.sharedNodes.clear()}}}function QA(a){a.updateLayout()}function KA(a){const i=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&i&&a.hasListeners("didUpdate")){const{layoutBox:s,measuredBox:u}=a.layout,{animationType:c}=a.options,h=i.source!==a.layout.source;c==="size"?He(g=>{const v=h?i.measuredBox[g]:i.layoutBox[g],b=oe(v);v.min=s[g].min,v.max=v.min+b}):n0(c,i.layoutBox,s)&&He(g=>{const v=h?i.measuredBox[g]:i.layoutBox[g],b=oe(s[g]);v.max=v.min+b,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[g].max=a.relativeTarget[g].min+b)});const f=bi();zl(f,s,i.layoutBox);const p=bi();h?zl(p,a.applyTransform(u,!0),i.measuredBox):zl(p,s,i.layoutBox);const y=!Iv(f);let m=!1;if(!a.resumeFrom){const g=a.getClosestProjectingParent();if(g&&!g.resumeFrom){const{snapshot:v,layout:b}=g;if(v&&b){const T=kt();Au(T,i.layoutBox,v.layoutBox);const A=kt();Au(A,s,b.layoutBox),$v(T,A)||(m=!0),g.options.layoutRoot&&(a.relativeTarget=A,a.relativeTargetOrigin=T,a.relativeParent=g)}}}a.notifyListeners("didUpdate",{layout:s,snapshot:i,delta:p,layoutDelta:f,hasLayoutChanged:y,hasRelativeLayoutChanged:m})}else if(a.isLead()){const{onExitComplete:s}=a.options;s&&s()}a.options.transition=void 0}function ZA(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function kA(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function JA(a){a.clearSnapshot()}function Kp(a){a.clearMeasurements()}function Zp(a){a.isLayoutDirty=!1}function PA(a){const{visualElement:i}=a.options;i&&i.getProps().onBeforeLayoutMeasure&&i.notify("BeforeLayoutMeasure"),a.resetTransform()}function kp(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function WA(a){a.resolveTargetDelta()}function FA(a){a.calcProjection()}function IA(a){a.resetSkewAndRotation()}function $A(a){a.removeLeadSnapshot()}function Jp(a,i,s){a.translate=Vt(i.translate,0,s),a.scale=Vt(i.scale,1,s),a.origin=i.origin,a.originPoint=i.originPoint}function Pp(a,i,s,u){a.min=Vt(i.min,s.min,u),a.max=Vt(i.max,s.max,u)}function t2(a,i,s,u){Pp(a.x,i.x,s.x,u),Pp(a.y,i.y,s.y,u)}function e2(a){return a.animationValues&&a.animationValues.opacityExit!==void 0}const n2={duration:.45,ease:[.4,0,.1,1]},Wp=a=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),Fp=Wp("applewebkit/")&&!Wp("chrome/")?Math.round:qe;function Ip(a){a.min=Fp(a.min),a.max=Fp(a.max)}function a2(a){Ip(a.x),Ip(a.y)}function n0(a,i,s){return a==="position"||a==="preserve-aspect"&&!fA(Xp(i),Xp(s),.2)}function i2(a){return a!==a.root&&a.scroll?.wasRoot}const l2=e0({attachResizeListener:(a,i)=>jl(a,"resize",i),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),mc={current:void 0},a0=e0({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!mc.current){const a=new l2({});a.mount(window),a.setOptions({layoutScroll:!0}),mc.current=a}return mc.current},resetTransform:(a,i)=>{a.style.transform=i!==void 0?i:"none"},checkIsScrollRoot:a=>window.getComputedStyle(a).position==="fixed"}),s2={pan:{Feature:DA},drag:{Feature:OA,ProjectionNode:a0,MeasureLayout:Pv}};function $p(a,i,s){const{props:u}=a;a.animationState&&u.whileHover&&a.animationState.setActive("whileHover",s==="Start");const c="onHover"+s,h=u[c];h&&Nt.postRender(()=>h(i,Xl(i)))}class u2 extends ea{mount(){const{current:i}=this.node;i&&(this.unmount=RT(i,(s,u)=>($p(this.node,u,"Start"),c=>$p(this.node,c,"End"))))}unmount(){}}class r2 extends ea{constructor(){super(...arguments),this.isActive=!1}onFocus(){let i=!1;try{i=this.node.current.matches(":focus-visible")}catch{i=!0}!i||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Yl(jl(this.node.current,"focus",()=>this.onFocus()),jl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function tg(a,i,s){const{props:u}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&u.whileTap&&a.animationState.setActive("whileTap",s==="Start");const c="onTap"+(s==="End"?"":s),h=u[c];h&&Nt.postRender(()=>h(i,Xl(i)))}class o2 extends ea{mount(){const{current:i}=this.node;i&&(this.unmount=VT(i,(s,u)=>(tg(this.node,u,"Start"),(c,{success:h})=>tg(this.node,c,h?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Xc=new WeakMap,yc=new WeakMap,c2=a=>{const i=Xc.get(a.target);i&&i(a)},f2=a=>{a.forEach(c2)};function h2({root:a,...i}){const s=a||document;yc.has(s)||yc.set(s,{});const u=yc.get(s),c=JSON.stringify(i);return u[c]||(u[c]=new IntersectionObserver(f2,{root:a,...i})),u[c]}function d2(a,i,s){const u=h2(i);return Xc.set(a,s),u.observe(a),()=>{Xc.delete(a),u.unobserve(a)}}const m2={some:0,all:1};class y2 extends ea{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:i={}}=this.node.getProps(),{root:s,margin:u,amount:c="some",once:h}=i,f={root:s?s.current:void 0,rootMargin:u,threshold:typeof c=="number"?c:m2[c]},p=y=>{const{isIntersecting:m}=y;if(this.isInView===m||(this.isInView=m,h&&!m&&this.hasEnteredView))return;m&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",m);const{onViewportEnter:g,onViewportLeave:v}=this.node.getProps(),b=m?g:v;b&&b(y)};return d2(this.node.current,f,p)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:i,prevProps:s}=this.node;["amount","margin","root"].some(p2(i,s))&&this.startObserver()}unmount(){}}function p2({viewport:a={}},{viewport:i={}}={}){return s=>a[s]!==i[s]}const g2={inView:{Feature:y2},tap:{Feature:o2},focus:{Feature:r2},hover:{Feature:u2}},v2={layout:{ProjectionNode:a0,MeasureLayout:Pv}},S2={...lA,...g2,...s2,...v2},Bl=TE(S2,VE);var pc={},_e={},gc={},eg;function tn(){return eg||(eg=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.isEventSourceSupported=a.isReactNative=a.ReadyState=a.DEFAULT_HEARTBEAT=a.UNPARSABLE_JSON_OBJECT=a.DEFAULT_RECONNECT_INTERVAL_MS=a.DEFAULT_RECONNECT_LIMIT=a.SOCKET_IO_PING_CODE=a.SOCKET_IO_PATH=a.SOCKET_IO_PING_INTERVAL=a.DEFAULT_EVENT_SOURCE_OPTIONS=a.EMPTY_EVENT_HANDLERS=a.DEFAULT_OPTIONS=void 0;var i=1,s=1e3*i;a.DEFAULT_OPTIONS={},a.EMPTY_EVENT_HANDLERS={},a.DEFAULT_EVENT_SOURCE_OPTIONS={withCredentials:!1,events:a.EMPTY_EVENT_HANDLERS},a.SOCKET_IO_PING_INTERVAL=25*s,a.SOCKET_IO_PATH="/socket.io/?EIO=3&transport=websocket",a.SOCKET_IO_PING_CODE="2",a.DEFAULT_RECONNECT_LIMIT=20,a.DEFAULT_RECONNECT_INTERVAL_MS=5e3,a.UNPARSABLE_JSON_OBJECT={},a.DEFAULT_HEARTBEAT={message:"ping",timeout:6e4,interval:25e3};var u;(function(h){h[h.UNINSTANTIATED=-1]="UNINSTANTIATED",h[h.CONNECTING=0]="CONNECTING",h[h.OPEN=1]="OPEN",h[h.CLOSING=2]="CLOSING",h[h.CLOSED=3]="CLOSED"})(u||(a.ReadyState=u={}));var c=function(){try{return"EventSource"in globalThis}catch{return!1}};a.isReactNative=typeof navigator<"u"&&navigator.product==="ReactNative",a.isEventSourceSupported=!a.isReactNative&&c()})(gc)),gc}var Ml={},vc={},ng;function Df(){return ng||(ng=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.resetWebSockets=a.sharedWebSockets=void 0,a.sharedWebSockets={};var i=function(s){if(s&&a.sharedWebSockets.hasOwnProperty(s))delete a.sharedWebSockets[s];else for(var u in a.sharedWebSockets)a.sharedWebSockets.hasOwnProperty(u)&&delete a.sharedWebSockets[u]};a.resetWebSockets=i})(vc)),vc}var Ea={},bn={},ag;function xf(){if(ag)return bn;ag=1,Object.defineProperty(bn,"__esModule",{value:!0}),bn.setUpSocketIOPing=bn.appendQueryParams=bn.parseSocketIOUrl=void 0;var a=tn(),i=function(c){if(c){var h=/^https|wss/.test(c),f=c.replace(/^(https?|wss?)(:\/\/)?/,""),p=f.replace(/\/$/,""),y=h?"wss":"ws";return"".concat(y,"://").concat(p).concat(a.SOCKET_IO_PATH)}else if(c===""){var h=/^https/.test(window.location.protocol),y=h?"wss":"ws",m=window.location.port?":".concat(window.location.port):"";return"".concat(y,"://").concat(window.location.hostname).concat(m).concat(a.SOCKET_IO_PATH)}return c};bn.parseSocketIOUrl=i;var s=function(c,h){h===void 0&&(h={});var f=/\?([\w]+=[\w]+)/,p=f.test(c),y="".concat(Object.entries(h).reduce(function(m,g){var v=g[0],b=g[1];return m+"".concat(v,"=").concat(b,"&")},"").slice(0,-1));return"".concat(c).concat(p?"&":"?").concat(y)};bn.appendQueryParams=s;var u=function(c,h){h===void 0&&(h=a.SOCKET_IO_PING_INTERVAL);var f=function(){return c(a.SOCKET_IO_PING_CODE)};return window.setInterval(f,h)};return bn.setUpSocketIOPing=u,bn}var hu={},ig;function i0(){if(ig)return hu;ig=1,Object.defineProperty(hu,"__esModule",{value:!0}),hu.heartbeat=s;var a=tn();function i(u){return Array.isArray(u)?u.reduce(function(c,h){return c.current>h.current?c:h}).current:u.current}function s(u,c,h){var f=h||{},p=f.interval,y=p===void 0?a.DEFAULT_HEARTBEAT.interval:p,m=f.timeout,g=m===void 0?a.DEFAULT_HEARTBEAT.timeout:m,v=f.message,b=v===void 0?a.DEFAULT_HEARTBEAT.message:v,T=Math.max(100,y/10),A=Date.now(),_=setInterval(function(){var N=Date.now(),D=i(c);if(D+g<=N)console.warn("Heartbeat timed out, closing connection, last message received ".concat(N-D,"ms ago, last ping sent ").concat(N-A,"ms ago")),u.close();else if(D+y<=N&&A+y<=N)try{typeof b=="function"?u.send(b()):u.send(b),A=N}catch(L){console.error("Heartbeat failed, closing connection",L instanceof Error?L.message:L),u.close()}},T);return u.addEventListener("close",function(){clearInterval(_)}),function(){}}return hu}var Ol={},Sc={},lg;function _f(){return lg||(lg=1,(function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.resetSubscribers=a.removeSubscriber=a.addSubscriber=a.hasSubscribers=a.getSubscribers=void 0;var i={},s=[],u=function(y){return(0,a.hasSubscribers)(y)?Array.from(i[y]):s};a.getSubscribers=u;var c=function(y){var m;return((m=i[y])===null||m===void 0?void 0:m.size)>0};a.hasSubscribers=c;var h=function(y,m){i[y]=i[y]||new Set,i[y].add(m)};a.addSubscriber=h;var f=function(y,m){i[y].delete(m)};a.removeSubscriber=f;var p=function(y){if(y&&i.hasOwnProperty(y))delete i[y];else for(var m in i)i.hasOwnProperty(m)&&delete i[m]};a.resetSubscribers=p})(Sc)),Sc}var sg;function Cf(){if(sg)return Ol;sg=1,Object.defineProperty(Ol,"__esModule",{value:!0}),Ol.assertIsWebSocket=s,Ol.resetGlobalState=u;var a=Df(),i=_f();function s(c,h){if(!h&&!(c instanceof WebSocket))throw new Error("")}function u(c){(0,i.resetSubscribers)(c),(0,a.resetWebSockets)(c)}return Ol}var ug;function b2(){if(ug)return Ea;ug=1;var a=Ea&&Ea.__assign||function(){return a=Object.assign||function(g){for(var v,b=1,T=arguments.length;b0&&T[T.length-1])&&(D[0]===6||D[0]===2)){g=0;continue}if(D[0]===3&&(!T||D[1]>T[0]&&D[1]0&&D[D.length-1])&&(q[0]===6||q[0]===2)){A=0;continue}if(q[0]===3&&(!D||q[1]>D[0]&&q[1]=h.getTime()?u+1:s.getTime()>=p.getTime()?u:u-1}function gg(a){const i=ke(a),s=new Date(Date.UTC(i.getFullYear(),i.getMonth(),i.getDate(),i.getHours(),i.getMinutes(),i.getSeconds(),i.getMilliseconds()));return s.setUTCFullYear(i.getFullYear()),+a-+s}function w2(a,...i){const s=ta.bind(null,i.find(u=>typeof u=="object"));return i.map(s)}function vg(a,i){const s=ke(a,i?.in);return s.setHours(0,0,0,0),s}function z2(a,i,s){const[u,c]=w2(s?.in,a,i),h=vg(u),f=vg(c),p=+h-gg(h),y=+f-gg(f);return Math.round((p-y)/C2)}function N2(a,i){const s=s0(a,i),u=ta(a,0);return u.setFullYear(s,0,4),u.setHours(0,0,0,0),Mu(u)}function V2(a){return a instanceof Date||typeof a=="object"&&Object.prototype.toString.call(a)==="[object Date]"}function U2(a){return!(!V2(a)&&typeof a!="number"||isNaN(+ke(a)))}function L2(a,i){const s=ke(a,i?.in);return s.setFullYear(s.getFullYear(),0,1),s.setHours(0,0,0,0),s}const j2={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},B2=(a,i,s)=>{let u;const c=j2[a];return typeof c=="string"?u=c:i===1?u=c.one:u=c.other.replace("{{count}}",i.toString()),s?.addSuffix?s.comparison&&s.comparison>0?"in "+u:u+" ago":u};function Tc(a){return(i={})=>{const s=i.width?String(i.width):a.defaultWidth;return a.formats[s]||a.formats[a.defaultWidth]}}const H2={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Y2={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},q2={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},G2={date:Tc({formats:H2,defaultWidth:"full"}),time:Tc({formats:Y2,defaultWidth:"full"}),dateTime:Tc({formats:q2,defaultWidth:"full"})},X2={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Q2=(a,i,s,u)=>X2[a];function Dl(a){return(i,s)=>{const u=s?.context?String(s.context):"standalone";let c;if(u==="formatting"&&a.formattingValues){const f=a.defaultFormattingWidth||a.defaultWidth,p=s?.width?String(s.width):f;c=a.formattingValues[p]||a.formattingValues[f]}else{const f=a.defaultWidth,p=s?.width?String(s.width):a.defaultWidth;c=a.values[p]||a.values[f]}const h=a.argumentCallback?a.argumentCallback(i):i;return c[h]}}const K2={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Z2={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},k2={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},J2={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},P2={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},W2={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},F2=(a,i)=>{const s=Number(a),u=s%100;if(u>20||u<10)switch(u%10){case 1:return s+"st";case 2:return s+"nd";case 3:return s+"rd"}return s+"th"},I2={ordinalNumber:F2,era:Dl({values:K2,defaultWidth:"wide"}),quarter:Dl({values:Z2,defaultWidth:"wide",argumentCallback:a=>a-1}),month:Dl({values:k2,defaultWidth:"wide"}),day:Dl({values:J2,defaultWidth:"wide"}),dayPeriod:Dl({values:P2,defaultWidth:"wide",formattingValues:W2,defaultFormattingWidth:"wide"})};function xl(a){return(i,s={})=>{const u=s.width,c=u&&a.matchPatterns[u]||a.matchPatterns[a.defaultMatchWidth],h=i.match(c);if(!h)return null;const f=h[0],p=u&&a.parsePatterns[u]||a.parsePatterns[a.defaultParseWidth],y=Array.isArray(p)?tM(p,v=>v.test(f)):$2(p,v=>v.test(f));let m;m=a.valueCallback?a.valueCallback(y):y,m=s.valueCallback?s.valueCallback(m):m;const g=i.slice(f.length);return{value:m,rest:g}}}function $2(a,i){for(const s in a)if(Object.prototype.hasOwnProperty.call(a,s)&&i(a[s]))return s}function tM(a,i){for(let s=0;s{const u=i.match(a.matchPattern);if(!u)return null;const c=u[0],h=i.match(a.parsePattern);if(!h)return null;let f=a.valueCallback?a.valueCallback(h[0]):h[0];f=s.valueCallback?s.valueCallback(f):f;const p=i.slice(c.length);return{value:f,rest:p}}}const nM=/^(\d+)(th|st|nd|rd)?/i,aM=/\d+/i,iM={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},lM={any:[/^b/i,/^(a|c)/i]},sM={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},uM={any:[/1/i,/2/i,/3/i,/4/i]},rM={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},oM={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},cM={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},fM={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},hM={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},dM={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},mM={ordinalNumber:eM({matchPattern:nM,parsePattern:aM,valueCallback:a=>parseInt(a,10)}),era:xl({matchPatterns:iM,defaultMatchWidth:"wide",parsePatterns:lM,defaultParseWidth:"any"}),quarter:xl({matchPatterns:sM,defaultMatchWidth:"wide",parsePatterns:uM,defaultParseWidth:"any",valueCallback:a=>a+1}),month:xl({matchPatterns:rM,defaultMatchWidth:"wide",parsePatterns:oM,defaultParseWidth:"any"}),day:xl({matchPatterns:cM,defaultMatchWidth:"wide",parsePatterns:fM,defaultParseWidth:"any"}),dayPeriod:xl({matchPatterns:hM,defaultMatchWidth:"any",parsePatterns:dM,defaultParseWidth:"any"})},yM={code:"en-US",formatDistance:B2,formatLong:G2,formatRelative:Q2,localize:I2,match:mM,options:{weekStartsOn:0,firstWeekContainsDate:1}};function pM(a,i){const s=ke(a,i?.in);return z2(s,L2(s))+1}function gM(a,i){const s=ke(a,i?.in),u=+Mu(s)-+N2(s);return Math.round(u/l0)+1}function u0(a,i){const s=ke(a,i?.in),u=s.getFullYear(),c=Cu(),h=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,f=ta(i?.in||a,0);f.setFullYear(u+1,0,h),f.setHours(0,0,0,0);const p=Hl(f,i),y=ta(i?.in||a,0);y.setFullYear(u,0,h),y.setHours(0,0,0,0);const m=Hl(y,i);return+s>=+p?u+1:+s>=+m?u:u-1}function vM(a,i){const s=Cu(),u=i?.firstWeekContainsDate??i?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,c=u0(a,i),h=ta(i?.in||a,0);return h.setFullYear(c,0,u),h.setHours(0,0,0,0),Hl(h,i)}function SM(a,i){const s=ke(a,i?.in),u=+Hl(s,i)-+vM(s,i);return Math.round(u/l0)+1}function Et(a,i){const s=a<0?"-":"",u=Math.abs(a).toString().padStart(i,"0");return s+u}const Wn={y(a,i){const s=a.getFullYear(),u=s>0?s:1-s;return Et(i==="yy"?u%100:u,i.length)},M(a,i){const s=a.getMonth();return i==="M"?String(s+1):Et(s+1,2)},d(a,i){return Et(a.getDate(),i.length)},a(a,i){const s=a.getHours()/12>=1?"pm":"am";switch(i){case"a":case"aa":return s.toUpperCase();case"aaa":return s;case"aaaaa":return s[0];case"aaaa":default:return s==="am"?"a.m.":"p.m."}},h(a,i){return Et(a.getHours()%12||12,i.length)},H(a,i){return Et(a.getHours(),i.length)},m(a,i){return Et(a.getMinutes(),i.length)},s(a,i){return Et(a.getSeconds(),i.length)},S(a,i){const s=i.length,u=a.getMilliseconds(),c=Math.trunc(u*Math.pow(10,s-3));return Et(c,i.length)}},yi={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Sg={G:function(a,i,s){const u=a.getFullYear()>0?1:0;switch(i){case"G":case"GG":case"GGG":return s.era(u,{width:"abbreviated"});case"GGGGG":return s.era(u,{width:"narrow"});case"GGGG":default:return s.era(u,{width:"wide"})}},y:function(a,i,s){if(i==="yo"){const u=a.getFullYear(),c=u>0?u:1-u;return s.ordinalNumber(c,{unit:"year"})}return Wn.y(a,i)},Y:function(a,i,s,u){const c=u0(a,u),h=c>0?c:1-c;if(i==="YY"){const f=h%100;return Et(f,2)}return i==="Yo"?s.ordinalNumber(h,{unit:"year"}):Et(h,i.length)},R:function(a,i){const s=s0(a);return Et(s,i.length)},u:function(a,i){const s=a.getFullYear();return Et(s,i.length)},Q:function(a,i,s){const u=Math.ceil((a.getMonth()+1)/3);switch(i){case"Q":return String(u);case"QQ":return Et(u,2);case"Qo":return s.ordinalNumber(u,{unit:"quarter"});case"QQQ":return s.quarter(u,{width:"abbreviated",context:"formatting"});case"QQQQQ":return s.quarter(u,{width:"narrow",context:"formatting"});case"QQQQ":default:return s.quarter(u,{width:"wide",context:"formatting"})}},q:function(a,i,s){const u=Math.ceil((a.getMonth()+1)/3);switch(i){case"q":return String(u);case"qq":return Et(u,2);case"qo":return s.ordinalNumber(u,{unit:"quarter"});case"qqq":return s.quarter(u,{width:"abbreviated",context:"standalone"});case"qqqqq":return s.quarter(u,{width:"narrow",context:"standalone"});case"qqqq":default:return s.quarter(u,{width:"wide",context:"standalone"})}},M:function(a,i,s){const u=a.getMonth();switch(i){case"M":case"MM":return Wn.M(a,i);case"Mo":return s.ordinalNumber(u+1,{unit:"month"});case"MMM":return s.month(u,{width:"abbreviated",context:"formatting"});case"MMMMM":return s.month(u,{width:"narrow",context:"formatting"});case"MMMM":default:return s.month(u,{width:"wide",context:"formatting"})}},L:function(a,i,s){const u=a.getMonth();switch(i){case"L":return String(u+1);case"LL":return Et(u+1,2);case"Lo":return s.ordinalNumber(u+1,{unit:"month"});case"LLL":return s.month(u,{width:"abbreviated",context:"standalone"});case"LLLLL":return s.month(u,{width:"narrow",context:"standalone"});case"LLLL":default:return s.month(u,{width:"wide",context:"standalone"})}},w:function(a,i,s,u){const c=SM(a,u);return i==="wo"?s.ordinalNumber(c,{unit:"week"}):Et(c,i.length)},I:function(a,i,s){const u=gM(a);return i==="Io"?s.ordinalNumber(u,{unit:"week"}):Et(u,i.length)},d:function(a,i,s){return i==="do"?s.ordinalNumber(a.getDate(),{unit:"date"}):Wn.d(a,i)},D:function(a,i,s){const u=pM(a);return i==="Do"?s.ordinalNumber(u,{unit:"dayOfYear"}):Et(u,i.length)},E:function(a,i,s){const u=a.getDay();switch(i){case"E":case"EE":case"EEE":return s.day(u,{width:"abbreviated",context:"formatting"});case"EEEEE":return s.day(u,{width:"narrow",context:"formatting"});case"EEEEEE":return s.day(u,{width:"short",context:"formatting"});case"EEEE":default:return s.day(u,{width:"wide",context:"formatting"})}},e:function(a,i,s,u){const c=a.getDay(),h=(c-u.weekStartsOn+8)%7||7;switch(i){case"e":return String(h);case"ee":return Et(h,2);case"eo":return s.ordinalNumber(h,{unit:"day"});case"eee":return s.day(c,{width:"abbreviated",context:"formatting"});case"eeeee":return s.day(c,{width:"narrow",context:"formatting"});case"eeeeee":return s.day(c,{width:"short",context:"formatting"});case"eeee":default:return s.day(c,{width:"wide",context:"formatting"})}},c:function(a,i,s,u){const c=a.getDay(),h=(c-u.weekStartsOn+8)%7||7;switch(i){case"c":return String(h);case"cc":return Et(h,i.length);case"co":return s.ordinalNumber(h,{unit:"day"});case"ccc":return s.day(c,{width:"abbreviated",context:"standalone"});case"ccccc":return s.day(c,{width:"narrow",context:"standalone"});case"cccccc":return s.day(c,{width:"short",context:"standalone"});case"cccc":default:return s.day(c,{width:"wide",context:"standalone"})}},i:function(a,i,s){const u=a.getDay(),c=u===0?7:u;switch(i){case"i":return String(c);case"ii":return Et(c,i.length);case"io":return s.ordinalNumber(c,{unit:"day"});case"iii":return s.day(u,{width:"abbreviated",context:"formatting"});case"iiiii":return s.day(u,{width:"narrow",context:"formatting"});case"iiiiii":return s.day(u,{width:"short",context:"formatting"});case"iiii":default:return s.day(u,{width:"wide",context:"formatting"})}},a:function(a,i,s){const c=a.getHours()/12>=1?"pm":"am";switch(i){case"a":case"aa":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"aaa":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"aaaa":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},b:function(a,i,s){const u=a.getHours();let c;switch(u===12?c=yi.noon:u===0?c=yi.midnight:c=u/12>=1?"pm":"am",i){case"b":case"bb":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"bbb":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"bbbb":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},B:function(a,i,s){const u=a.getHours();let c;switch(u>=17?c=yi.evening:u>=12?c=yi.afternoon:u>=4?c=yi.morning:c=yi.night,i){case"B":case"BB":case"BBB":return s.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"BBBBB":return s.dayPeriod(c,{width:"narrow",context:"formatting"});case"BBBB":default:return s.dayPeriod(c,{width:"wide",context:"formatting"})}},h:function(a,i,s){if(i==="ho"){let u=a.getHours()%12;return u===0&&(u=12),s.ordinalNumber(u,{unit:"hour"})}return Wn.h(a,i)},H:function(a,i,s){return i==="Ho"?s.ordinalNumber(a.getHours(),{unit:"hour"}):Wn.H(a,i)},K:function(a,i,s){const u=a.getHours()%12;return i==="Ko"?s.ordinalNumber(u,{unit:"hour"}):Et(u,i.length)},k:function(a,i,s){let u=a.getHours();return u===0&&(u=24),i==="ko"?s.ordinalNumber(u,{unit:"hour"}):Et(u,i.length)},m:function(a,i,s){return i==="mo"?s.ordinalNumber(a.getMinutes(),{unit:"minute"}):Wn.m(a,i)},s:function(a,i,s){return i==="so"?s.ordinalNumber(a.getSeconds(),{unit:"second"}):Wn.s(a,i)},S:function(a,i){return Wn.S(a,i)},X:function(a,i,s){const u=a.getTimezoneOffset();if(u===0)return"Z";switch(i){case"X":return Tg(u);case"XXXX":case"XX":return Da(u);case"XXXXX":case"XXX":default:return Da(u,":")}},x:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"x":return Tg(u);case"xxxx":case"xx":return Da(u);case"xxxxx":case"xxx":default:return Da(u,":")}},O:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"O":case"OO":case"OOO":return"GMT"+bg(u,":");case"OOOO":default:return"GMT"+Da(u,":")}},z:function(a,i,s){const u=a.getTimezoneOffset();switch(i){case"z":case"zz":case"zzz":return"GMT"+bg(u,":");case"zzzz":default:return"GMT"+Da(u,":")}},t:function(a,i,s){const u=Math.trunc(+a/1e3);return Et(u,i.length)},T:function(a,i,s){return Et(+a,i.length)}};function bg(a,i=""){const s=a>0?"-":"+",u=Math.abs(a),c=Math.trunc(u/60),h=u%60;return h===0?s+String(c):s+String(c)+i+Et(h,2)}function Tg(a,i){return a%60===0?(a>0?"-":"+")+Et(Math.abs(a)/60,2):Da(a,i)}function Da(a,i=""){const s=a>0?"-":"+",u=Math.abs(a),c=Et(Math.trunc(u/60),2),h=Et(u%60,2);return s+c+i+h}const Eg=(a,i)=>{switch(a){case"P":return i.date({width:"short"});case"PP":return i.date({width:"medium"});case"PPP":return i.date({width:"long"});case"PPPP":default:return i.date({width:"full"})}},r0=(a,i)=>{switch(a){case"p":return i.time({width:"short"});case"pp":return i.time({width:"medium"});case"ppp":return i.time({width:"long"});case"pppp":default:return i.time({width:"full"})}},bM=(a,i)=>{const s=a.match(/(P+)(p+)?/)||[],u=s[1],c=s[2];if(!c)return Eg(a,i);let h;switch(u){case"P":h=i.dateTime({width:"short"});break;case"PP":h=i.dateTime({width:"medium"});break;case"PPP":h=i.dateTime({width:"long"});break;case"PPPP":default:h=i.dateTime({width:"full"});break}return h.replace("{{date}}",Eg(u,i)).replace("{{time}}",r0(c,i))},TM={p:r0,P:bM},EM=/^D+$/,AM=/^Y+$/,MM=["D","DD","YY","YYYY"];function OM(a){return EM.test(a)}function DM(a){return AM.test(a)}function xM(a,i,s){const u=_M(a,i,s);if(console.warn(u),MM.includes(a))throw new RangeError(u)}function _M(a,i,s){const u=a[0]==="Y"?"years":"days of the month";return`Use \`${a.toLowerCase()}\` instead of \`${a}\` (in \`${i}\`) for formatting ${u} to the input \`${s}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const CM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,RM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,wM=/^'([^]*?)'?$/,zM=/''/g,NM=/[a-zA-Z]/;function Ag(a,i,s){const u=Cu(),c=u.locale??yM,h=u.firstWeekContainsDate??u.locale?.options?.firstWeekContainsDate??1,f=u.weekStartsOn??u.locale?.options?.weekStartsOn??0,p=ke(a,s?.in);if(!U2(p))throw new RangeError("Invalid time value");let y=i.match(RM).map(g=>{const v=g[0];if(v==="p"||v==="P"){const b=TM[v];return b(g,c.formatLong)}return g}).join("").match(CM).map(g=>{if(g==="''")return{isToken:!1,value:"'"};const v=g[0];if(v==="'")return{isToken:!1,value:VM(g)};if(Sg[v])return{isToken:!0,value:g};if(v.match(NM))throw new RangeError("Format string contains an unescaped latin alphabet character `"+v+"`");return{isToken:!1,value:g}});c.localize.preprocessor&&(y=c.localize.preprocessor(p,y));const m={firstWeekContainsDate:h,weekStartsOn:f,locale:c};return y.map(g=>{if(!g.isToken)return g.value;const v=g.value;(DM(v)||OM(v))&&xM(v,i,String(a));const b=Sg[v[0]];return b(p,v,c.localize,m)}).join("")}function VM(a){const i=a.match(wM);return i?i[1].replace(zM,"'"):a}function UM(){const[a,i]=Z.useState(new Date);return Z.useEffect(()=>{const s=setInterval(()=>i(new Date),1e3);return()=>clearInterval(s)},[]),st.jsx("div",{className:"h-full w-full flex flex-col items-center justify-center bg-black text-white",children:st.jsxs("div",{className:"flex flex-col items-center",children:[st.jsx("h1",{className:"text-9xl md:text-[10rem] leading-none font-light tracking-tighter text-white/90",children:Ag(a,"HH:mm")}),st.jsx("div",{className:"mt-6 flex flex-col items-center space-y-2",children:st.jsx("p",{className:"text-2xl font-light tracking-wide text-gray-400 uppercase",children:Ag(a,"EEEE, MMMM do")})})]})})}const du=["https://picsum.photos/1920/1080?random=1","https://picsum.photos/1920/1080?random=2","https://picsum.photos/1920/1080?random=3","https://picsum.photos/1920/1080?random=4","https://picsum.photos/1920/1080?random=5"],LM=()=>{const[a,i]=Z.useState(0);return Z.useEffect(()=>{const s=setInterval(()=>{i(u=>(u+1)%du.length)},15e3);return()=>clearInterval(s)},[]),st.jsxs("div",{className:"w-full h-full bg-black relative overflow-hidden",children:[st.jsxs(pf,{mode:"popLayout",children:[st.jsx(Bl.img,{src:du[a],alt:"Memory",initial:{opacity:0,scale:1.1},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:2,ease:"easeInOut"},className:"absolute inset-0 w-full h-full object-cover"},du[a]),st.jsx(Bl.div,{className:"absolute inset-0 w-full h-full",animate:{scale:[1,1.05],x:[0,20]},transition:{duration:20,ease:"linear"}},`${du[a]}-move`)]}),st.jsx("div",{className:"absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-black/80 to-transparent pointer-events-none"})]})},jM=({transcript:a,isListening:i,agentState:s})=>{const u=Z.useRef(null);return Z.useEffect(()=>{u.current&&u.current.scrollIntoView({behavior:"smooth"})},[a]),st.jsxs("div",{className:"h-full w-full flex flex-col items-center justify-center p-12 bg-black relative",children:[st.jsx("div",{className:"absolute top-12 left-12 flex items-center space-x-4",children:i?st.jsxs("div",{className:"flex items-center space-x-2 text-red-500",children:[st.jsx("div",{className:"w-3 h-3 bg-current rounded-full animate-pulse"}),st.jsx("span",{className:"text-sm font-medium tracking-widest uppercase",children:"Listening"})]}):st.jsxs("div",{className:"flex items-center space-x-2 text-gray-600",children:[st.jsx("div",{className:"w-3 h-3 bg-current rounded-full"}),st.jsx("span",{className:"text-sm font-medium tracking-widest uppercase",children:s})]})}),st.jsx("div",{className:"w-full max-w-5xl text-center",children:st.jsx(pf,{mode:"wait",children:a?st.jsx(Bl.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0},children:st.jsxs("p",{className:"text-4xl md:text-5xl font-light tracking-tight text-white leading-relaxed",children:['"',a,'"']})}):st.jsx(Bl.div,{initial:{opacity:0},animate:{opacity:1},className:"text-white/40"})})})]})};function BM(){const[a,i]=Z.useState(0),s=`ws://${window.location.hostname}:8000/api/voice/connect?client_id=frontend_gui`,[u,c]=Z.useState(""),[h,f]=Z.useState("IDLE"),{sendMessage:p,lastMessage:y,readyState:m}=_2(s,{onOpen:()=>console.log("WebSocket Connected"),shouldReconnect:b=>!0,reconnectAttempts:10,reconnectInterval:3e3});Z.useEffect(()=>{a===2&&h==="IDLE"&&m===Qc.ReadyState.OPEN&&(console.log("Auto-starting listener..."),p(JSON.stringify({type:"manual_start_listening"})))},[a,h,m,p]),Z.useEffect(()=>{if(y!==null)try{const b=JSON.parse(y.data);b.type==="transcript"?c(b.text):b.type==="state"&&(f(b.state),(b.state==="LISTENING"||b.state==="THINKING")&&i(2),b.state==="IDLE"&&setTimeout(()=>i(0),1e4))}catch(b){console.error("Failed to parse WS message",b)}},[y]);const g=b=>{b>0?i(T=>(T+1)%3):i(T=>T===0?2:T-1)},v=[st.jsx(UM,{},"clock"),st.jsx(LM,{},"photos"),st.jsx(jM,{transcript:u,isListening:h==="LISTENING",agentState:h},"transcription")];return st.jsxs("div",{className:"w-screen h-screen bg-black overflow-hidden relative font-sans text-white select-none",children:[st.jsx(pf,{mode:"popLayout",initial:!1,children:st.jsx(Bl.div,{className:"absolute inset-0 w-full h-full",initial:{x:300,opacity:0},animate:{x:0,opacity:1},exit:{x:-300,opacity:0},transition:{type:"spring",stiffness:300,damping:30},drag:"x",dragConstraints:{left:0,right:0},dragElastic:.2,onDragEnd:(b,{offset:T,velocity:A})=>{const _=T.x;_<-100?g(1):_>100&&g(-1)},children:v[a]},a)}),st.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 flex space-x-3 z-50",children:[0,1,2].map(b=>st.jsx("div",{className:`h-1.5 rounded-full transition-all duration-300 ${b===a?"bg-white w-8":"bg-white/40 w-1.5"}`},b))}),st.jsx("div",{className:"fixed top-2 right-2 w-2 h-2 rounded-full z-50 transition-colors",style:{backgroundColor:m===Qc.ReadyState.OPEN?"#00ADB5":"#FF4136"}})]})}q1.createRoot(document.getElementById("root")).render(st.jsx(Z.StrictMode,{children:st.jsx(BM,{})})); diff --git a/src/backend/static/index.html b/src/backend/static/index.html deleted file mode 100644 index ee19b042..00000000 --- a/src/backend/static/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - frontend - - - - -
- - diff --git a/src/backend/static/vite.svg b/src/backend/static/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/src/backend/static/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 4e05e4cd4601851dccc726ab017cebe02b812f3b Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 15 Dec 2025 23:39:06 -0500 Subject: [PATCH 06/78] DEEPGRAM STT/TTS WORKING feat: Add configurable kiosk TTS settings, including backend service, API, and frontend UI for voice synthesis. --- frontend/src/lib/api/kiosk.ts | 92 +++++++++++++-- .../components/chat/KioskSettingsModal.svelte | 108 +++++++++++++++++- frontend/src/lib/stores/kioskSettings.ts | 54 +++++++-- src/backend/data/kiosk_tts_settings.json | 6 + src/backend/data/kiosk_ui_settings.json | 4 +- src/backend/routers/kiosk.py | 41 ++++++- src/backend/routers/voice_assistant.py | 4 +- src/backend/schemas/kiosk_tts_settings.py | 62 ++++++++++ src/backend/services/kiosk_tts_settings.py | 81 +++++++++++++ src/backend/services/tts_service.py | 16 ++- 10 files changed, 436 insertions(+), 32 deletions(-) create mode 100644 src/backend/data/kiosk_tts_settings.json create mode 100644 src/backend/schemas/kiosk_tts_settings.py create mode 100644 src/backend/services/kiosk_tts_settings.py diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts index 167f24be..9ff72ca1 100644 --- a/frontend/src/lib/api/kiosk.ts +++ b/frontend/src/lib/api/kiosk.ts @@ -1,9 +1,11 @@ /** - * Kiosk API client for STT settings. + * Kiosk API client for STT and TTS settings. */ import { API_BASE_URL } from './config'; +// ============== STT Settings ============== + export interface KioskSttSettings { eot_threshold: number; eot_timeout_ms: number; @@ -18,14 +20,6 @@ export interface KioskSttSettingsUpdate { keyterms?: string[]; } -export interface KioskUiSettings { - idle_return_delay_ms: number; -} - -export interface KioskUiSettingsUpdate { - idle_return_delay_ms?: number; -} - /** * Fetch current kiosk STT settings from the backend. */ @@ -69,6 +63,86 @@ export async function resetKioskSttSettings(): Promise { return response.json(); } +// ============== TTS Settings ============== + +export interface KioskTtsSettings { + enabled: boolean; + provider: string; + model: string; + sample_rate: number; +} + +export interface KioskTtsSettingsUpdate { + enabled?: boolean; + provider?: string; + model?: string; + sample_rate?: number; +} + +/** + * Fetch current kiosk TTS settings from the backend. + */ +export async function fetchKioskTtsSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/tts-settings`); + if (!response.ok) { + throw new Error(`Failed to fetch kiosk TTS settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Update kiosk TTS settings on the backend. + */ +export async function updateKioskTtsSettings( + update: KioskTtsSettingsUpdate +): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/tts-settings`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(update), + }); + if (!response.ok) { + throw new Error(`Failed to update kiosk TTS settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Reset kiosk TTS settings to defaults on the backend. + */ +export async function resetKioskTtsSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/tts-settings/reset`, { + method: 'POST', + }); + if (!response.ok) { + throw new Error(`Failed to reset kiosk TTS settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Fetch available TTS voice models. + */ +export async function fetchTtsVoices(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/tts-voices`); + if (!response.ok) { + throw new Error(`Failed to fetch TTS voices: ${response.statusText}`); + } + return response.json(); +} + +// ============== UI Settings ============== + +export interface KioskUiSettings { + idle_return_delay_ms: number; +} + +export interface KioskUiSettingsUpdate { + idle_return_delay_ms?: number; +} + /** * Fetch current kiosk UI settings from the backend. */ diff --git a/frontend/src/lib/components/chat/KioskSettingsModal.svelte b/frontend/src/lib/components/chat/KioskSettingsModal.svelte index ae7b44da..025dc252 100644 --- a/frontend/src/lib/components/chat/KioskSettingsModal.svelte +++ b/frontend/src/lib/components/chat/KioskSettingsModal.svelte @@ -1,5 +1,6 @@ + + + +
+ + diff --git a/src/backend/static/vite.svg b/src/backend/static/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/src/backend/static/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file From 894194430ae7f17bcd80d5c7b0720baaf4486bc8 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 16 Dec 2025 19:33:30 -0500 Subject: [PATCH 17/78] feat: Introduce LLM configuration to Kiosk settings UI, update default TTS model, and disable a server. --- data/mcp_servers.json | 2 +- frontend/src/lib/api/kiosk.ts | 63 +++ .../components/chat/KioskSettingsModal.svelte | 160 +++++- frontend/src/lib/stores/kioskSettings.ts | 84 ++- src/backend/data/kiosk_llm_settings.json | 6 +- src/backend/data/kiosk_tts_settings.json | 4 +- .../static/assets/ModelPicker-Cn_xB6on.css | 1 + .../static/assets/ModelPicker-JKtmtRjt.js | 1 + .../static/assets/WebSearchMenu-BL7jSOF3.js | 1 + .../static/assets/WebSearchMenu-CawX--ca.css | 1 + src/backend/static/assets/index-BibWzNNR.js | 509 ++++++++++++++++++ src/backend/static/assets/index-TxloFkvi.css | 1 + src/backend/static/index.html | 8 +- start_server.sh | 17 +- 14 files changed, 829 insertions(+), 29 deletions(-) create mode 100644 src/backend/static/assets/ModelPicker-Cn_xB6on.css create mode 100644 src/backend/static/assets/ModelPicker-JKtmtRjt.js create mode 100644 src/backend/static/assets/WebSearchMenu-BL7jSOF3.js create mode 100644 src/backend/static/assets/WebSearchMenu-CawX--ca.css create mode 100644 src/backend/static/assets/index-BibWzNNR.js create mode 100644 src/backend/static/assets/index-TxloFkvi.css diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 024a04c4..572363ea 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -3,7 +3,7 @@ { "contexts": [], "disabled_tools": [], - "enabled": true, + "enabled": false, "env": { "HOST_PROFILE_ID": "xps13", "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts index a014fd17..e082ee75 100644 --- a/frontend/src/lib/api/kiosk.ts +++ b/frontend/src/lib/api/kiosk.ts @@ -212,3 +212,66 @@ export async function updateServerKioskEnabled( throw new Error(`Failed to update kiosk_enabled for ${serverId}: ${response.statusText}`); } } + +// ============== LLM Settings ============== + +export interface KioskLlmSettings { + model: string; + system_prompt: string | null; + temperature: number; + max_tokens: number; + conversation_mode: boolean; + conversation_timeout_seconds: number; +} + +export interface KioskLlmSettingsUpdate { + model?: string; + system_prompt?: string | null; + temperature?: number; + max_tokens?: number; + conversation_mode?: boolean; + conversation_timeout_seconds?: number; +} + +/** + * Fetch current kiosk LLM settings from the backend. + */ +export async function fetchKioskLlmSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/llm-settings`); + if (!response.ok) { + throw new Error(`Failed to fetch kiosk LLM settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Update kiosk LLM settings on the backend. + */ +export async function updateKioskLlmSettings( + update: KioskLlmSettingsUpdate +): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/llm-settings`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(update), + }); + if (!response.ok) { + throw new Error(`Failed to update kiosk LLM settings: ${response.statusText}`); + } + return response.json(); +} + +/** + * Reset kiosk LLM settings to defaults on the backend. + */ +export async function resetKioskLlmSettings(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/llm-settings/reset`, { + method: 'POST', + }); + if (!response.ok) { + throw new Error(`Failed to reset kiosk LLM settings: ${response.statusText}`); + } + return response.json(); +} diff --git a/frontend/src/lib/components/chat/KioskSettingsModal.svelte b/frontend/src/lib/components/chat/KioskSettingsModal.svelte index 9efc2650..0ed1aee7 100644 --- a/frontend/src/lib/components/chat/KioskSettingsModal.svelte +++ b/frontend/src/lib/components/chat/KioskSettingsModal.svelte @@ -6,9 +6,12 @@ kioskSettingsStore, type KioskSettings, } from "../../stores/kioskSettings"; + import { modelStore } from "../../stores/models"; import ModelSettingsDialog from "./model-settings/ModelSettingsDialog.svelte"; import "./model-settings/model-settings-styles.css"; + const { filtered } = modelStore; + // Available TTS voices (loaded from API) let ttsVoices: string[] = []; @@ -43,6 +46,7 @@ const [settings, voices] = await Promise.all([ kioskSettingsStore.load(), fetchTtsVoices(), + modelStore.loadModels(), ]); draft = { ...settings }; ttsVoices = voices; @@ -141,6 +145,158 @@

Loading settings…

{:else}
+ +
+
+ Language Model + Configure the AI model and behavior. +
+ +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Temperature + {draft.temperature.toFixed(1)} +
+ { + draft = { + ...draft, + temperature: parseFloat( + (e.target as HTMLInputElement).value, + ), + }; + markDirty(); + }} + /> +
+ 0 (focused) + 2 (creative) +
+
+
+ + +
+
+
+ Max Tokens + {draft.max_tokens} +
+ { + draft = { + ...draft, + max_tokens: parseInt( + (e.target as HTMLInputElement).value, + 10, + ), + }; + markDirty(); + }} + /> +
+ 50 (short) + 2000 (long) +
+
+
+
+
+
@@ -402,12 +558,12 @@
');function oe(N,n){O(n,!1);const P=Q();let _=u(n,"selectableModels",24,()=>[]),C=u(n,"selectedModel",12,""),M=u(n,"modelsLoading",8,!1),d=u(n,"modelsError",8,null);function w(e){const t=e.target;t&&P("modelChange",{id:t.value})}R();var j=ae(),c=h(j);g(()=>{C(),V(()=>{M(),d(),_()})});var y=h(c);{var z=e=>{var t=Y();a(e,t)},A=e=>{var t=F(),B=L(t);{var G=s=>{var i=Z(),k=h(i),f={};g(()=>{D(k,`Failed to load models — ${d()}`),f!==(f=`Failed to load models — ${d()}`)&&(i.__value=`Failed to load models — ${d()}`)}),a(s,i)},H=s=>{var i=F(),k=L(i);{var f=r=>{var p=$();a(r,p)},I=r=>{var p=F(),J=L(p);X(J,1,_,x=>x.id,(x,o)=>{var m=ee(),K=h(m),q={};g(()=>{D(K,(l(o),b(()=>l(o).name??l(o).id))),q!==(q=(l(o),b(()=>l(o).id)))&&(m.value=(m.__value=(l(o),b(()=>l(o).id)))??"")}),a(x,m)}),a(r,p)};E(k,r=>{W(_()),b(()=>!_().length)?r(f):r(I,!1)},!0)}a(s,i)};E(B,s=>{d()?s(G):s(H,!1)},!0)}a(e,t)};E(y,e=>{M()?e(z):e(A,!1)})}g(()=>c.disabled=M()),S("change",c,w),T(c,C),a(N,j),U()}export{oe as default}; diff --git a/src/backend/static/assets/WebSearchMenu-BL7jSOF3.js b/src/backend/static/assets/WebSearchMenu-BL7jSOF3.js new file mode 100644 index 00000000..6cb9ba1d --- /dev/null +++ b/src/backend/static/assets/WebSearchMenu-BL7jSOF3.js @@ -0,0 +1 @@ +import{p as be,r as fe,v as ke,w as J,x as me,q as n,y as _e,i as he,f as Z,z as P,j as c,b as ge,t as Q,e as l,g as U,h as xe,A as we,B as ye,C as w,D as b,E as o,u as s,F as y,s as Ee,G as V,H as X,I as Y}from"./index-BibWzNNR.js";var Se=Z(``),Me=Z('');function De(ee,te){be(te,!1);const e=()=>me(u,"$webSearch",ae),[ae,ne]=we(),u=ye;let r=w(!1),k=null,T=w(!1),m=w(null),E=w(null),S=w(null);function f(){k&&(clearTimeout(k),k=null)}function R(a=!1){f(),!(!a&&!u.current.enabled)&&(b(r,!0),queueMicrotask(()=>{n(m)?.querySelector('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')?.focus()}))}function W(){f(),k=setTimeout(()=>{n(r)&&(b(r,!1),k=null)},250)}function _(){f(),n(r)&&(b(r,!1),n(E)?.focus())}function q(){u.current.enabled&&R()}function se(){u.current.enabled?(u.setEnabled(!1),_()):(u.setEnabled(!0),R(!0))}function le(a){const t=a.currentTarget.value;u.update({engine:t==="native"||t==="exa"?t:null})}function oe(a){const t=a.currentTarget.value;u.update({contextSize:t==="low"||t==="medium"||t==="high"?t:null})}function I(a){const t=a.currentTarget;if(t.value===""){u.update({maxResults:null});return}let i=Math.trunc(Number(t.value));Number.isFinite(i)&&(i<1&&(i=1),i>25&&(i=25),u.update({maxResults:i}))}function re(a){const t=a.currentTarget.value;u.update({searchPrompt:t})}function ue(a){const t=a.relatedTarget;n(S)&&t&&n(S).contains(t)||_()}function N(a){if(a.key==="Escape"){a.preventDefault(),_();return}if(a.key==="Tab"&&n(r)){const t=Array.from(n(m)?.querySelectorAll('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')??[]).filter(x=>!x.hasAttribute("disabled"));if(t.length===0)return;const i=t[0],g=t[t.length-1],v=document.activeElement;a.shiftKey&&v===i?(a.preventDefault(),g.focus()):!a.shiftKey&&v===g&&(a.preventDefault(),i.focus())}}function F(a){if(!n(r))return;const t=a.target;n(m)?.contains(t)||n(E)?.contains(t)||_()}fe(()=>{document.addEventListener("pointerdown",F)}),ke(()=>{f(),document.removeEventListener("pointerdown",F)}),J(()=>e(),()=>{b(T,e().enabled)}),J(()=>(e(),n(T)),()=>{!e().enabled&&n(T)&&_()}),_e(),he();var h=Me(),d=c(h),D=o(c(d),2),ie=c(D);P(d,a=>b(E,a),()=>n(E));var ce=o(d,2);{var ve=a=>{var t=Se(),i=c(t),g=c(i),v=o(c(g),2),x=c(v);x.value=x.__value="";var A=o(x);A.value=A.__value="native";var K=o(A);K.value=K.__value="exa";var L;V(v);var B=o(g,2),p=o(c(B),2),C=c(p);C.value=C.__value="";var $=o(C);$.value=$.__value="low";var z=o($);z.value=z.__value="medium";var H=o(z);H.value=H.__value="high";var j;V(p);var G=o(B,2),M=o(c(G),2),de=o(G,2),O=o(c(de),2);P(t,pe=>b(m,pe),()=>n(m)),Q(()=>{v.disabled=(e(),s(()=>!e().enabled)),L!==(L=(e(),s(()=>e().engine??"")))&&(v.value=(v.__value=(e(),s(()=>e().engine??"")))??"",X(v,(e(),s(()=>e().engine??"")))),p.disabled=(e(),s(()=>!e().enabled)),j!==(j=(e(),s(()=>e().contextSize??"")))&&(p.value=(p.__value=(e(),s(()=>e().contextSize??"")))??"",X(p,(e(),s(()=>e().contextSize??"")))),Y(M,(e(),s(()=>e().maxResults??""))),M.disabled=(e(),s(()=>!e().enabled)),Y(O,(e(),s(()=>e().searchPrompt??""))),O.disabled=(e(),s(()=>!e().enabled))}),l("change",v,le),l("change",p,oe),l("change",M,I),l("blur",M,I),l("input",O,re),l("mouseenter",t,f),l("mouseleave",t,W),l("focusin",t,f),l("focusout",t,ue),l("keydown",t,N),U(a,t)};ge(ce,a=>{n(r),e(),s(()=>n(r)&&e().enabled)&&a(ve)})}P(h,a=>b(S,a),()=>n(S)),Q(()=>{y(h,"data-enabled",(e(),s(()=>e().enabled))),y(h,"data-open",n(r)),y(d,"aria-expanded",(e(),n(r),s(()=>e().enabled&&n(r)))),y(D,"data-enabled",(e(),s(()=>e().enabled))),y(D,"aria-label",(e(),s(()=>e().enabled?"Web search on":"Web search off"))),Ee(ie,(e(),s(()=>e().enabled?"On":"Off")))}),l("click",d,se),l("mouseenter",d,q),l("focus",d,q),l("mouseleave",d,W),l("keydown",d,N),U(ee,h),xe(),ne()}export{De as default}; diff --git a/src/backend/static/assets/WebSearchMenu-CawX--ca.css b/src/backend/static/assets/WebSearchMenu-CawX--ca.css new file mode 100644 index 00000000..1d904774 --- /dev/null +++ b/src/backend/static/assets/WebSearchMenu-CawX--ca.css @@ -0,0 +1 @@ +.web-search.svelte-e7nk0k{position:relative;display:inline-flex;align-items:center}.web-search-summary.svelte-e7nk0k{gap:.5rem}.web-search[data-open=true].svelte-e7nk0k .web-search-summary:where(.svelte-e7nk0k){border-color:#38bdf8;color:#38bdf8}.web-search.svelte-e7nk0k .status:where(.svelte-e7nk0k){font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .4rem;border-radius:999px;border:1px solid rgba(62,90,140,.6);color:#9fb3d8}.web-search.svelte-e7nk0k .status[data-enabled=true]:where(.svelte-e7nk0k){border-color:#38bdf866;color:#7dd3fc}.web-search-menu.svelte-e7nk0k{display:none;position:absolute;top:calc(100% + .25rem);right:0;width:min(320px,80vw);background:#080e18f5;border:1px solid rgba(67,91,136,.6);border-radius:.75rem;padding:1rem;box-shadow:0 12px 24px #03081499;z-index:50;flex-direction:column;gap:.75rem;transform:none}.web-search[data-open=true].svelte-e7nk0k .web-search-menu:where(.svelte-e7nk0k){display:flex}.web-search-fields.svelte-e7nk0k{display:grid;gap:.75rem}.web-search-fields.svelte-e7nk0k label:where(.svelte-e7nk0k){display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;color:#9fb3d8}.web-search-fields.svelte-e7nk0k textarea:where(.svelte-e7nk0k){resize:vertical;min-height:3.5rem}.web-search.svelte-e7nk0k :where(.svelte-e7nk0k):focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.web-search.svelte-e7nk0k :where(.svelte-e7nk0k):focus{outline:none}@media (max-width: 640px){.web-search-menu.svelte-e7nk0k{right:auto;transform:none;width:min(320px,calc(100vw - 2rem));left:max(0px,calc((100% - min(320px,calc(100vw - 2rem)))/2))}}@media (max-width: 480px){.web-search-menu.svelte-e7nk0k{width:calc(100vw - 1.5rem);left:max(0px,calc((100% - (100vw - 1.5rem))/2))}} diff --git a/src/backend/static/assets/index-BibWzNNR.js b/src/backend/static/assets/index-BibWzNNR.js new file mode 100644 index 00000000..ecf9f247 --- /dev/null +++ b/src/backend/static/assets/index-BibWzNNR.js @@ -0,0 +1,509 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPicker-JKtmtRjt.js","assets/ModelPicker-Cn_xB6on.css","assets/WebSearchMenu-BL7jSOF3.js","assets/WebSearchMenu-CawX--ca.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))r(u);new MutationObserver(u=>{for(const a of u)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(u){const a={};return u.integrity&&(a.integrity=u.integrity),u.referrerPolicy&&(a.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?a.credentials="include":u.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(u){if(u.ep)return;u.ep=!0;const a=n(u);fetch(u.href,a)}})();const Sl=!1;var sa=Array.isArray,Ud=Array.prototype.indexOf,ko=Array.from,Ua=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,Al=Object.getOwnPropertyDescriptors,Bd=Object.prototype,jd=Array.prototype,Eo=Object.getPrototypeOf,si=Object.isExtensible;function Fu(e){return typeof e=="function"}const xr=()=>{};function qd(e){return e()}function Xu(e){for(var t=0;t{e=r,t=u});return{promise:n,resolve:e,reject:t}}function Wd(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const bn=2,wo=4,ts=8,wu=16,ir=32,Hr=64,So=128,kn=256,Ba=512,Bt=1024,En=2048,lr=4096,On=8192,Wr=16384,Ao=32768,Su=65536,oi=1<<17,Vd=1<<18,Au=1<<19,Cl=1<<20,to=1<<21,Co=1<<22,Or=1<<23,Wn=Symbol("$state"),Dl=Symbol("legacy props"),Gd=Symbol(""),Do=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function ns(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Kd(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Zd(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Yd(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Jd(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Xd(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Qd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function ef(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function tf(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function nf(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function rf(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function uf(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const rs=1,us=2,Tl=4,af=8,sf=16,of=1,lf=2,Fl=4,cf=8,df=16,ff=1,pf=2,Nt=Symbol(),hf="http://www.w3.org/1999/xhtml",mf="http://www.w3.org/2000/svg",vf="@attach";function gf(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function bf(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let _f=!1;function Ml(e){return e===this.v}function To(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Pl(e){return!To(e,this.v)}let Cu=!1,yf=!1;function xf(){Cu=!0}let lt=null;function bu(e){lt=e}function Qe(e,t=!1,n){lt={p:lt,c:null,e:null,s:e,x:null,l:Cu&&!t?{s:null,u:null,$:[]}:null}}function et(e){var t=lt,n=t.e;if(n!==null){t.e=null;for(var r of n)Kl(r)}return e!==void 0&&(t.x=e),lt=t.p,e??{}}function oa(){return!Cu||lt!==null&<.l===null}let br=[],ja=[];function Il(){var e=br;br=[],Xu(e)}function kf(){var e=ja;ja=[],Xu(e)}function Ef(){return br.length>0||ja.length>0}function Vr(e){if(br.length===0&&!Vu){var t=br;queueMicrotask(()=>{t===br&&Il()})}br.push(e)}function wf(){br.length>0&&Il(),ja.length>0&&kf()}const Sf=new WeakMap;function Nl(e){var t=He;if(t===null)return Ze.f|=Or,e;if((t.f&Ao)===0){if((t.f&So)===0)throw!t.parent&&e instanceof Error&&Ol(e),e;t.b.error(e)}else _u(e,t)}function _u(e,t){for(;t!==null;){if((t.f&So)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e instanceof Error&&Ol(e),e}function Ol(e){const t=Sf.get(e);t&&(Ua(e,"message",{value:t.message}),Ua(e,"stack",{value:t.stack}))}const ys=new Set;let ft=null,Fa=null,no=new Set,Ur=[],as=null,ro=!1,Vu=!1;class ar{current=new Map;#a=new Map;#t=new Set;#f=0;#s=null;#c=!1;#u=[];#n=[];#e=[];#r=[];#o=[];#d=[];#l=[];skipped_effects=new Set;process(t){Ur=[],Fa=null;for(const u of t)this.#p(u);if(this.#u.length===0&&this.#f===0){this.#h();var n=this.#e,r=this.#r;this.#e=[],this.#r=[],this.#o=[],Fa=ft,ft=null,ii(n),ii(r),ft===null?ft=this:ys.delete(this),this.#s?.resolve()}else this.#i(this.#e),this.#i(this.#r),this.#i(this.#o);for(const u of this.#u)Rr(u);for(const u of this.#n)Rr(u);this.#u=[],this.#n=[]}#p(t){t.f^=Bt;for(var n=t.first;n!==null;){var r=n.f,u=(r&(ir|Hr))!==0,a=u&&(r&Bt)!==0,s=a||(r&On)!==0||this.skipped_effects.has(n);if(!s&&n.fn!==null){if(u)n.f^=Bt;else if((r&wo)!==0)this.#r.push(n);else if((r&Bt)===0)if((r&Co)!==0){var i=n.b?.is_pending()?this.#n:this.#u;i.push(n)}else ca(n)&&((n.f&wu)!==0&&this.#o.push(n),Rr(n));var l=n.first;if(l!==null){n=l;continue}}var c=n.parent;for(n=n.next;n===null&&c!==null;)n=c.next,c=c.parent}}#i(t){for(const n of t)((n.f&En)!==0?this.#d:this.#l).push(n),on(n,Bt);t.length=0}capture(t,n){this.#a.has(t)||this.#a.set(t,n),this.current.set(t,t.v)}activate(){ft=this}deactivate(){ft=null,Fa=null;for(const t of no)if(no.delete(t),t(),ft!==null)break}neuter(){this.#c=!0}flush(){Ur.length>0?Ll():this.#h(),ft===this&&(this.#f===0&&ys.delete(this),this.deactivate())}#h(){if(!this.#c)for(const t of this.#t)t();this.#t.clear()}increment(){this.#f+=1}decrement(){if(this.#f-=1,this.#f===0){for(const t of this.#d)on(t,En),yu(t);for(const t of this.#l)on(t,lr),yu(t);this.#e=[],this.#r=[],this.flush()}else this.deactivate()}add_callback(t){this.#t.add(t)}settled(){return(this.#s??=Hd()).promise}static ensure(){if(ft===null){const t=ft=new ar;ys.add(ft),Vu||ar.enqueue(()=>{ft===t&&t.flush()})}return ft}static enqueue(t){Vr(t)}}function Af(e){var t=Vu;Vu=!0;try{for(var n;;){if(wf(),Ur.length===0&&!Ef()&&(ft?.flush(),Ur.length===0))return as=null,n;Ll()}}finally{Vu=t}}function Ll(){var e=vu;ro=!0;try{var t=0;for(fi(!0);Ur.length>0;){var n=ar.ensure();if(t++>1e3){var r,u;Cf()}n.process(Ur),kr.clear()}}finally{ro=!1,fi(e),as=null}}function Cf(){try{Xd()}catch(e){_u(e,as)}}let Pr=null;function ii(e){var t=e.length;if(t!==0){for(var n=0;n0)){kr.clear();for(const u of Pr)Rr(u);Pr=[]}}Pr=null}}function yu(e){for(var t=as=e;t.parent!==null;){t=t.parent;var n=t.f;if(ro&&t===He&&(n&wu)!==0)return;if((n&(Hr|ir))!==0){if((n&Bt)===0)return;t.f^=Bt}}Ur.push(t)}function Df(e){let t=0,n=Sr(0),r;return()=>{qf()&&(o(n),Du(()=>(t===0&&(r=m(()=>e(()=>Gu(n)))),t+=1,()=>{Vr(()=>{t-=1,t===0&&(r?.(),r=void 0,Gu(n))})})))}}var Tf=Su|Au|So;function Ff(e,t,n){new Mf(e,t,n)}class Mf{parent;#a=!1;#t;#f=null;#s;#c;#u;#n=null;#e=null;#r=null;#o=null;#d=0;#l=0;#p=!1;#i=null;#h=()=>{this.#i&&Br(this.#i,this.#d)};#b=Df(()=>(this.#i=Sr(this.#d),()=>{this.#i=null}));constructor(t,n,r){this.#t=t,this.#s=n,this.#c=r,this.parent=He.b,this.#a=!!this.#s.pending,this.#u=Gr(()=>{He.b=this;{try{this.#n=an(()=>r(this.#t))}catch(u){this.error(u)}this.#l>0?this.#v():this.#a=!1}},Tf)}#_(){try{this.#n=an(()=>this.#c(this.#t))}catch(t){this.error(t)}this.#a=!1}#y(){const t=this.#s.pending;t&&(this.#e=an(()=>t(this.#t)),ar.enqueue(()=>{this.#n=this.#m(()=>(ar.ensure(),an(()=>this.#c(this.#t)))),this.#l>0?this.#v():(Er(this.#e,()=>{this.#e=null}),this.#a=!1)}))}is_pending(){return this.#a||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!this.#s.pending}#m(t){var n=He,r=Ze,u=lt;wn(this.#u),hn(this.#u),bu(this.#u.ctx);try{return t()}catch(a){return Nl(a),null}finally{wn(n),hn(r),bu(u)}}#v(){const t=this.#s.pending;this.#n!==null&&(this.#o=document.createDocumentFragment(),Pf(this.#n,this.#o)),this.#e===null&&(this.#e=an(()=>t(this.#t)))}#g(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#g(t);return}this.#l+=t,this.#l===0&&(this.#a=!1,this.#e&&Er(this.#e,()=>{this.#e=null}),this.#o&&(this.#t.before(this.#o),this.#o=null))}update_pending_count(t){this.#g(t),this.#d+=t,no.add(this.#h)}get_effect_pending(){return this.#b(),o(this.#i)}error(t){var n=this.#s.onerror;let r=this.#s.failed;if(this.#p||!n&&!r)throw t;this.#n&&(Kt(this.#n),this.#n=null),this.#e&&(Kt(this.#e),this.#e=null),this.#r&&(Kt(this.#r),this.#r=null);var u=!1,a=!1;const s=()=>{if(u){bf();return}u=!0,a&&uf(),ar.ensure(),this.#d=0,this.#r!==null&&Er(this.#r,()=>{this.#r=null}),this.#a=this.has_pending_snippet(),this.#n=this.#m(()=>(this.#p=!1,an(()=>this.#c(this.#t)))),this.#l>0?this.#v():this.#a=!1};var i=Ze;try{hn(null),a=!0,n?.(t,s),a=!1}catch(l){_u(l,this.#u&&this.#u.parent)}finally{hn(i)}r&&Vr(()=>{this.#r=this.#m(()=>{this.#p=!0;try{return an(()=>{r(this.#t,()=>t,()=>s)})}catch(l){return _u(l,this.#u.parent),null}finally{this.#p=!1}})})}}function Pf(e,t){for(var n=e.nodes_start,r=e.nodes_end;n!==null;){var u=n===r?null:la(n);t.append(n),n=u}}function Rl(e,t,n){const r=oa()?ia:ct;if(t.length===0){n(e.map(r));return}var u=ft,a=He,s=If();Promise.all(t.map(i=>Nf(i))).then(i=>{u?.activate(),s();try{n([...e.map(r),...i])}catch(l){(a.f&Wr)===0&&_u(l,a)}u?.deactivate(),$l()}).catch(i=>{_u(i,a)})}function If(){var e=He,t=Ze,n=lt,r=ft;return function(){wn(e),hn(t),bu(n),r?.activate()}}function $l(){wn(null),hn(null),bu(null)}function ia(e){var t=bn|En,n=Ze!==null&&(Ze.f&bn)!==0?Ze:null;return He===null||n!==null&&(n.f&kn)!==0?t|=kn:He.f|=Au,{ctx:lt,deps:null,effects:null,equals:Ml,f:t,fn:e,reactions:null,rv:0,v:Nt,wv:0,parent:n??He,ac:null}}function Nf(e,t){let n=He;n===null&&Kd();var r=n.b,u=void 0,a=Sr(Nt),s=null,i=!Ze;return Vf(()=>{try{var l=e();s&&Promise.resolve(l).catch(()=>{})}catch(v){l=Promise.reject(v)}var c=()=>l;u=s?.then(c,c)??Promise.resolve(l),s=u;var d=ft,f=r.is_pending();i&&(r.update_pending_count(1),f||d.increment());const h=(v,p=void 0)=>{s=null,f||d.activate(),p?p!==Do&&(a.f|=Or,Br(a,p)):((a.f&Or)!==0&&(a.f^=Or),Br(a,v)),i&&(r.update_pending_count(-1),f||d.decrement()),$l()};if(u.then(h,v=>h(null,v||"unknown")),d)return()=>{queueMicrotask(()=>d.neuter())}}),new Promise(l=>{function c(d){function f(){d===u?l(a):c(u)}d.then(f,f)}c(u)})}function Of(e){const t=ia(e);return tc(t),t}function ct(e){const t=ia(e);return t.equals=Pl,t}function zl(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;no(e))),t}function D(e,t,n=!1){Ze!==null&&(!In||(Ze.f&oi)!==0)&&oa()&&(Ze.f&(bn|wu|Co|oi))!==0&&!sr?.includes(e)&&rf();let r=n?fu(t):t;return Br(e,r)}function Br(e,t){if(!e.equals(t)){var n=e.v;Kr?kr.set(e,t):kr.set(e,n),e.v=t;var r=ar.ensure();r.capture(e,n),(e.f&bn)!==0&&((e.f&En)!==0&&Fo(e),on(e,(e.f&kn)===0?Bt:lr)),e.wv=rc(),jl(e,En),oa()&&He!==null&&(He.f&Bt)!==0&&(He.f&(ir|Hr))===0&&(yn===null?Zf([e]):yn.push(e))}return t}function li(e,t=1){var n=o(e),r=t===1?n++:n--;return D(e,n),r}function Gu(e){D(e,e.v+1)}function jl(e,t){var n=e.reactions;if(n!==null)for(var r=oa(),u=n.length,a=0;a{if(Lr===a)return i();var l=Ze,c=Lr;hn(null),hi(a);var d=i();return hn(l),hi(c),d};return r&&n.set("length",pr(e.length)),new Proxy(e,{defineProperty(i,l,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&tf();var d=n.get(l);return d===void 0?d=s(()=>{var f=pr(c.value);return n.set(l,f),f}):D(d,c.value,!0),!0},deleteProperty(i,l){var c=n.get(l);if(c===void 0){if(l in i){const d=s(()=>pr(Nt));n.set(l,d),Gu(u)}}else D(c,Nt),Gu(u);return!0},get(i,l,c){if(l===Wn)return e;var d=n.get(l),f=l in i;if(d===void 0&&(!f||ur(i,l)?.writable)&&(d=s(()=>{var v=fu(f?i[l]:Nt),p=pr(v);return p}),n.set(l,d)),d!==void 0){var h=o(d);return h===Nt?void 0:h}return Reflect.get(i,l,c)},getOwnPropertyDescriptor(i,l){var c=Reflect.getOwnPropertyDescriptor(i,l);if(c&&"value"in c){var d=n.get(l);d&&(c.value=o(d))}else if(c===void 0){var f=n.get(l),h=f?.v;if(f!==void 0&&h!==Nt)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return c},has(i,l){if(l===Wn)return!0;var c=n.get(l),d=c!==void 0&&c.v!==Nt||Reflect.has(i,l);if(c!==void 0||He!==null&&(!d||ur(i,l)?.writable)){c===void 0&&(c=s(()=>{var h=d?fu(i[l]):Nt,v=pr(h);return v}),n.set(l,c));var f=o(c);if(f===Nt)return!1}return d},set(i,l,c,d){var f=n.get(l),h=l in i;if(r&&l==="length")for(var v=c;vpr(Nt)),n.set(v+"",p))}if(f===void 0)(!h||ur(i,l)?.writable)&&(f=s(()=>pr(void 0)),D(f,fu(c)),n.set(l,f));else{h=f.v!==Nt;var w=s(()=>fu(c));D(f,w)}var y=Reflect.getOwnPropertyDescriptor(i,l);if(y?.set&&y.set.call(d,c),!h){if(r&&typeof l=="string"){var _=n.get("length"),A=Number(l);Number.isInteger(A)&&A>=_.v&&D(_,A+1)}Gu(u)}return!0},ownKeys(i){o(u);var l=Reflect.ownKeys(i).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Nt});for(var[c,d]of n)d.v!==Nt&&!(c in i)&&l.push(c);return l},setPrototypeOf(){nf()}})}function ci(e){try{if(e!==null&&typeof e=="object"&&Wn in e)return e[Wn]}catch{}return e}function Rf(e,t){return Object.is(ci(e),ci(t))}var qa,ql,Hl,Wl;function $f(){if(qa===void 0){qa=window,ql=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Hl=ur(t,"firstChild").get,Wl=ur(t,"nextSibling").get,si(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),si(n)&&(n.__t=void 0)}}function Dr(e=""){return document.createTextNode(e)}function Bn(e){return Hl.call(e)}function la(e){return Wl.call(e)}function b(e,t){return Bn(e)}function me(e,t=!1){{var n=Bn(e);return n instanceof Comment&&n.data===""?la(n):n}}function C(e,t=1,n=!1){let r=e;for(;t--;)r=la(r);return r}function zf(e){e.textContent=""}function Mo(){return!1}function Uf(e,t){if(t){const n=document.body;e.autofocus=!0,Vr(()=>{document.activeElement===n&&e.focus()})}}let di=!1;function Bf(){di||(di=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function ss(e){var t=Ze,n=He;hn(null),wn(null);try{return e()}finally{hn(t),wn(n)}}function Vl(e,t,n,r=n){e.addEventListener(t,()=>ss(n));const u=e.__on_r;u?e.__on_r=()=>{u(),r(!0)}:e.__on_r=()=>r(!0),Bf()}function Gl(e){He===null&&Ze===null&&Jd(),Ze!==null&&(Ze.f&kn)!==0&&He===null&&Yd(),Kr&&Zd()}function jf(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Vn(e,t,n,r=!0){var u=He;u!==null&&(u.f&On)!==0&&(e|=On);var a={ctx:lt,deps:null,nodes_start:null,nodes_end:null,f:e|En,first:null,fn:t,last:null,next:null,parent:u,b:u&&u.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{Rr(a),a.f|=Ao}catch(l){throw Kt(a),l}else t!==null&&yu(a);if(r){var s=a;if(n&&s.deps===null&&s.teardown===null&&s.nodes_start===null&&s.first===s.last&&(s.f&Au)===0&&(s=s.first),s!==null&&(s.parent=u,u!==null&&jf(s,u),Ze!==null&&(Ze.f&bn)!==0&&(e&Hr)===0)){var i=Ze;(i.effects??=[]).push(s)}}return a}function qf(){return Ze!==null&&!In}function os(e){const t=Vn(ts,null,!1);return on(t,Bt),t.teardown=e,t}function uo(e){Gl();var t=He.f,n=!Ze&&(t&ir)!==0&&(t&Ao)===0;if(n){var r=lt;(r.e??=[]).push(e)}else return Kl(e)}function Kl(e){return Vn(wo|Cl,e,!1)}function Hf(e){return Gl(),Vn(ts|Cl,e,!0)}function Wf(e){ar.ensure();const t=Vn(Hr|Au,e,!0);return(n={})=>new Promise(r=>{n.outro?Er(t,()=>{Kt(t),r(void 0)}):(Kt(t),r(void 0))})}function jr(e){return Vn(wo,e,!1)}function fe(e,t){var n=lt,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Du(()=>{e(),!r.ran&&(r.ran=!0,m(t))})}function At(){var e=lt;Du(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&Bt)!==0&&on(n,lr),ca(n)&&Rr(n),t.ran=!1}})}function Vf(e){return Vn(Co|Au,e,!0)}function Du(e,t=0){return Vn(ts|t,e,!0)}function G(e,t=[],n=[]){Rl(t,n,r=>{Vn(ts,()=>e(...r.map(o)),!0)})}function Gr(e,t=0){var n=Vn(wu|t,e,!0);return n}function an(e,t=!0){return Vn(ir|Au,e,!0,t)}function Zl(e){var t=e.teardown;if(t!==null){const n=Kr,r=Ze;pi(!0),hn(null);try{t.call(null)}finally{pi(n),hn(r)}}}function Yl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const u=n.ac;u!==null&&ss(()=>{u.abort(Do)});var r=n.next;(n.f&Hr)!==0?n.parent=null:Kt(n,t),n=r}}function Gf(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&ir)===0&&Kt(t),t=n}}function Kt(e,t=!0){var n=!1;(t||(e.f&Vd)!==0)&&e.nodes_start!==null&&e.nodes_end!==null&&(Jl(e.nodes_start,e.nodes_end),n=!0),Yl(e,t&&!n),Ha(e,0),on(e,Wr);var r=e.transitions;if(r!==null)for(const a of r)a.stop();Zl(e);var u=e.parent;u!==null&&u.first!==null&&Xl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function Jl(e,t){for(;e!==null;){var n=e===t?null:la(e);e.remove(),e=n}}function Xl(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Er(e,t){var n=[];Po(e,n,!0),Ql(n,()=>{Kt(e),t&&t()})}function Ql(e,t){var n=e.length;if(n>0){var r=()=>--n||t();for(var u of e)u.out(r)}else t()}function Po(e,t,n){if((e.f&On)===0){if(e.f^=On,e.transitions!==null)for(const s of e.transitions)(s.is_global||n)&&t.push(s);for(var r=e.first;r!==null;){var u=r.next,a=(r.f&Su)!==0||(r.f&ir)!==0;Po(r,t,a?n:!1),r=u}}}function is(e){ec(e,!0)}function ec(e,t){if((e.f&On)!==0){e.f^=On,(e.f&Bt)===0&&(on(e,En),yu(e));for(var n=e.first;n!==null;){var r=n.next,u=(n.f&Su)!==0||(n.f&ir)!==0;ec(n,u?t:!1),n=r}if(e.transitions!==null)for(const a of e.transitions)(a.is_global||t)&&a.in()}}let cu=null;function Kf(e){var t=cu;try{if(cu=new Set,m(e),t!==null)for(var n of cu)t.add(n);return cu}finally{cu=t}}function ly(e){for(var t of Kf(e))Br(t,t.v)}let vu=!1;function fi(e){vu=e}let Kr=!1;function pi(e){Kr=e}let Ze=null,In=!1;function hn(e){Ze=e}let He=null;function wn(e){He=e}let sr=null;function tc(e){Ze!==null&&(sr===null?sr=[e]:sr.push(e))}let un=null,gn=0,yn=null;function Zf(e){yn=e}let nc=1,Qu=0,Lr=Qu;function hi(e){Lr=e}let _r=!1;function rc(){return++nc}function ca(e){var t=e.f;if((t&En)!==0)return!0;if((t&lr)!==0){var n=e.deps,r=(t&kn)!==0;if(n!==null){var u,a,s=(t&Ba)!==0,i=r&&He!==null&&!_r,l=n.length;if((s||i)&&(He===null||(He.f&Wr)===0)){var c=e,d=c.parent;for(u=0;ue.wv)return!0}(!r||He!==null&&!_r)&&on(e,Bt)}return!1}function uc(e,t,n=!0){var r=e.reactions;if(r!==null&&!sr?.includes(e))for(var u=0;u{e.ac.abort(Do)}),e.ac=null);try{e.f|=to;var f=e.fn,h=f(),v=e.deps;if(un!==null){var p;if(Ha(e,gn),v!==null&&gn>0)for(v.length=gn+un.length,p=0;pn?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Vr(()=>{t.addEventListener(e,u,r)}):t.addEventListener(e,u,r),u}function J(e,t,n,r,u){var a={capture:r,passive:u},s=ic(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&os(()=>{t.removeEventListener(e,s,a)})}function s0(e){for(var t=0;t{throw A});throw h}}finally{e.__root=t,delete e.currentTarget,hn(d),wn(f)}}}function Io(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("",""),t.content}function qr(e,t){var n=He;n.nodes_start===null&&(n.nodes_start=e,n.nodes_end=t)}function M(e,t){var n=(t&ff)!==0,r=(t&pf)!==0,u,a=!e.startsWith("");return()=>{u===void 0&&(u=Io(a?e:""+e),n||(u=Bn(u)));var s=r||ql?document.importNode(u,!0):u.cloneNode(!0);if(n){var i=Bn(s),l=s.lastChild;qr(i,l)}else qr(s,s);return s}}function o0(e,t,n="svg"){var r=!e.startsWith(""),u=`<${n}>${r?e:""+e}`,a;return()=>{if(!a){var s=Io(u),i=Bn(s);a=Bn(i)}var l=a.cloneNode(!0);return qr(l,l),l}}function No(e,t){return o0(e,t,"svg")}function Ln(e=""){{var t=Dr(e+"");return qr(t,t),t}}function Se(){var e=document.createDocumentFragment(),t=document.createComment(""),n=Dr();return e.append(t,n),qr(t,n),e}function k(e,t){e!==null&&e.before(t)}function X(e,t){var n=t==null?"":typeof t=="object"?t+"":t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=n+"")}function i0(e,t){return l0(e,t)}const tu=new Map;function l0(e,{target:t,anchor:n,props:r={},events:u,context:a,intro:s=!0}){$f();var i=new Set,l=f=>{for(var h=0;h{var f=n??t.appendChild(Dr());return Ff(f,{pending:()=>{}},h=>{if(a){Qe({});var v=lt;v.c=a}u&&(r.$$events=u),c=e(h,r)||{},a&&et()}),()=>{for(var h of i){t.removeEventListener(h,qu);var v=tu.get(h);--v===0?(document.removeEventListener(h,qu),tu.delete(h)):tu.set(h,v)}so.delete(l),f!==n&&f.parentNode?.removeChild(f)}});return c0.set(c,d),c}let c0=new WeakMap;function $(e,t,n=!1){var r=e,u=null,a=null,s=Nt,i=n?Su:0,l=!1;const c=(v,p=!0)=>{l=!0,h(p,v)};var d=null;function f(){d!==null&&(d.lastChild.remove(),r.before(d),d=null);var v=s?u:a,p=s?a:u;v&&is(v),p&&Er(p,()=>{s?a=null:u=null})}const h=(v,p)=>{if(s!==(s=v)){var w=Mo(),y=r;if(w&&(d=document.createDocumentFragment(),d.append(y=Dr())),s?u??=p&&an(()=>p(y)):a??=p&&an(()=>p(y)),w){var _=ft,A=s?u:a,E=s?a:u;A&&_.skipped_effects.delete(A),E&&_.skipped_effects.add(E),_.add_callback(f)}else f()}};Gr(()=>{l=!1,t(c),l||h(null,null)},i)}function jn(e,t){return t}function d0(e,t,n){for(var r=e.items,u=[],a=t.length,s=0;s0&&u.length===0&&n!==null;if(i){var l=n.parentNode;zf(l),l.append(n),r.clear(),Un(e,t[0].prev,t[a-1].next)}Ql(u,()=>{for(var c=0;c{var _=n();return sa(_)?_:_==null?[]:ko(_)}),p,w;function y(){f0(w,p,i,h,s,u,t,r,n),a!==null&&(p.length===0?d?is(d):d=an(()=>a(s)):d!==null&&Er(d,()=>{d=null}))}Gr(()=>{w??=He,p=o(v);var _=p.length;if(!(f&&_===0)){f=_===0;var A,E,g,S;if(Mo()){var x=new Set,T=ft;for(E=0;E<_;E+=1){g=p[E],S=r(g,E);var R=i.items.get(S)??h.get(S);R?(t&(rs|us))!==0&&lc(R,g,E,t):(A=cc(null,i,null,null,g,S,E,u,t,n,!0),h.set(S,A)),x.add(S)}for(const[z,F]of i.items)x.has(z)||T.skipped_effects.add(F.e);T.add_callback(y)}else y();o(v)}})}function f0(e,t,n,r,u,a,s,i,l){var c=(s&af)!==0,d=(s&(rs|us))!==0,f=t.length,h=n.items,v=n.first,p=v,w,y=null,_,A=[],E=[],g,S,x,T;if(c)for(T=0;T0){var ie=(s&Tl)!==0&&f===0?u:null;if(c){for(T=0;T{if(_!==void 0)for(x of _)x.a?.apply()}),e.first=n.first&&n.first.e,e.last=y&&y.e;for(var Y of r.values())Kt(Y.e);r.clear()}function lc(e,t,n,r){(r&rs)!==0&&Br(e.v,t),(r&us)!==0?Br(e.i,n):e.i=n}function cc(e,t,n,r,u,a,s,i,l,c,d){var f=(l&rs)!==0,h=(l&sf)===0,v=f?h?U(u,!1,!1):Sr(u):u,p=(l&us)===0?s:Sr(s),w={i:p,v,k:a,a:null,e:null,prev:n,next:r};try{if(e===null){var y=document.createDocumentFragment();y.append(e=Dr())}return w.e=an(()=>i(e,v,p,c),_f),w.e.prev=n&&n.e,w.e.next=r&&r.e,n===null?d||(t.first=w):(n.next=w,n.e.next=w.e),r!==null&&(r.prev=w,r.e.prev=w.e),w}finally{}}function xs(e,t,n){for(var r=e.next?e.next.e.nodes_start:n,u=t?t.e.nodes_start:n,a=e.e.nodes_start;a!==null&&a!==r;){var s=la(a);u.before(a),a=s}}function Un(e,t,n){t===null?e.first=n:(t.next=n,t.e.next=n&&n.e),n!==null&&(n.prev=t,n.e.prev=t&&t.e)}function oo(e,t,n=!1,r=!1,u=!1){var a=e,s="";G(()=>{var i=He;if(s!==(s=t()??"")&&(i.nodes_start!==null&&(Jl(i.nodes_start,i.nodes_end),i.nodes_start=i.nodes_end=null),s!=="")){var l=s+"";n?l=`${l}`:r&&(l=`${l}`);var c=Io(l);if((n||r)&&(c=Bn(c)),qr(Bn(c),c.lastChild),n||r)for(;Bn(c);)a.before(Bn(c));else a.before(c)}})}function Gt(e,t,n,r,u){var a=t.$$slots?.[n],s=!1;a===!0&&(a=t[n==="default"?"children":n],s=!0),a===void 0||a(e,s?()=>r:r)}function vi(e,t,n){var r=e,u,a,s=null,i=null;function l(){a&&(Er(a),a=null),s&&(s.lastChild.remove(),r.before(s),s=null),a=i,i=null}Gr(()=>{if(u!==(u=t())){var c=Mo();if(u){var d=r;c&&(s=document.createDocumentFragment(),s.append(d=Dr()),a&&ft.skipped_effects.add(a)),i=an(()=>n(d,u))}c?ft.add_callback(l):l()}},Su)}function p0(e,t,n,r,u,a){var s,i,l=null,c=e,d;Gr(()=>{const f=t()||null;var h=mf;f!==s&&(d&&(f===null?Er(d,()=>{d=null,i=null}):f===i?is(d):Kt(d)),f&&f!==i&&(d=an(()=>{if(l=document.createElementNS(h,f),qr(l,l),r){var v=l.appendChild(Dr());r(l,v)}He.nodes_end=l,c.before(l)})),s=f,s&&(i=s))},Su)}function Wa(e,t,n){jr(()=>{var r=m(()=>t(e,n?.())||{});if(n&&r?.update){var u=!1,a={};Du(()=>{var s=n();L(s),u&&To(a,s)&&(a=s,r.update(s))}),u=!0}if(r?.destroy)return()=>r.destroy()})}function h0(e,t){var n=void 0,r;Gr(()=>{n!==(n=t())&&(r&&(Kt(r),r=null),n&&(r=an(()=>{jr(()=>n(e))})))})}function dc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var u=e.length;for(t=0;t=0;){var i=s+a;(s===0||gi.includes(r[s-1]))&&(i===r.length||gi.includes(r[i]))?r=(s===0?"":r.substring(0,s))+r.substring(i+1):s=i}}return r===""?null:r}function bi(e,t=!1){var n=t?" !important;":";",r="";for(var u in e){var a=e[u];a!=null&&a!==""&&(r+=" "+u+": "+a+n)}return r}function ks(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function g0(e,t){if(t){var n="",r,u;if(Array.isArray(t)?(r=t[0],u=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,s=0,i=!1,l=[];r&&l.push(...Object.keys(r).map(ks)),u&&l.push(...Object.keys(u).map(ks));var c=0,d=-1;const w=e.length;for(var f=0;f{Rn(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),os(()=>{t.disconnect()})}function cy(e,t,n=t){var r=!0;Vl(e,"change",u=>{var a=u?"[selected]":":checked",s;if(e.multiple)s=[].map.call(e.querySelectorAll(a),Ku);else{var i=e.querySelector(a)??e.querySelector("option:not([disabled])");s=i&&Ku(i)}n(s)}),jr(()=>{var u=t();if(Rn(e,u,r),r&&u===void 0){var a=e.querySelector(":checked");a!==null&&(u=Ku(a),n(u))}e.__value=u,r=!1}),or(e)}function Ku(e){return"__value"in e?e.__value:e.value}const Mu=Symbol("class"),Pu=Symbol("style"),fc=Symbol("is custom element"),pc=Symbol("is html");function Ot(e,t){var n=ls(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!=="PROGRESS")||(e.value=t??"")}function Vt(e,t){var n=ls(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function b0(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function oe(e,t,n,r){var u=ls(e);u[t]!==(u[t]=n)&&(t==="loading"&&(e[Gd]=n),n==null?e.removeAttribute(t):typeof n!="string"&&hc(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function _0(e,t,n,r,u=!1,a=!1){var s=ls(e),i=s[fc],l=!s[pc],c=t||{},d=e.tagName==="OPTION";for(var f in t)f in n||(n[f]=null);n.class?n.class=Ma(n.class):n[Mu]&&(n.class=null),n[Pu]&&(n.style??=null);var h=hc(e);for(const E in n){let g=n[E];if(d&&E==="value"&&g==null){e.value=e.__value="",c[E]=g;continue}if(E==="class"){var v=e.namespaceURI==="http://www.w3.org/1999/xhtml";St(e,v,g,r,t?.[Mu],n[Mu]),c[E]=g,c[Mu]=n[Mu];continue}if(E==="style"){nr(e,g,t?.[Pu],n[Pu]),c[E]=g,c[Pu]=n[Pu];continue}var p=c[E];if(!(g===p&&!(g===void 0&&e.hasAttribute(E)))){c[E]=g;var w=E[0]+E[1];if(w!=="$$")if(w==="on"){const S={},x="$$"+E;let T=E.slice(2);var y=t0(T);if(Qf(T)&&(T=T.slice(0,-7),S.capture=!0),!y&&p){if(g!=null)continue;e.removeEventListener(T,c[x],S),c[x]=null}if(g!=null)if(y)e[`__${T}`]=g,s0([T]);else{let R=function(z){c[E].call(this,z)};c[x]=ic(T,e,R,S)}else y&&(e[`__${T}`]=void 0)}else if(E==="style")oe(e,E,g);else if(E==="autofocus")Uf(e,!!g);else if(!i&&(E==="__value"||E==="value"&&g!=null))e.value=e.__value=g;else if(E==="selected"&&d)b0(e,g);else{var _=E;l||(_=r0(_));var A=_==="defaultValue"||_==="defaultChecked";if(g==null&&!i&&!A)if(s[E]=null,_==="value"||_==="checked"){let S=e;const x=t===void 0;if(_==="value"){let T=S.defaultValue;S.removeAttribute(_),S.defaultValue=T,S.value=S.__value=x?T:null}else{let T=S.defaultChecked;S.removeAttribute(_),S.defaultChecked=T,S.checked=x?T:!1}}else e.removeAttribute(E);else A||h.includes(_)&&(i||typeof g!="string")?(e[_]=g,_ in s&&(s[_]=Nt)):typeof g!="function"&&oe(e,_,g)}}}return c}function _i(e,t,n=[],r=[],u,a=!1,s=!1){Rl(n,r,i=>{var l=void 0,c={},d=e.nodeName==="SELECT",f=!1;if(Gr(()=>{var v=t(...i.map(o)),p=_0(e,l,v,u,a,s);f&&d&&"value"in v&&Rn(e,v.value);for(let y of Object.getOwnPropertySymbols(c))v[y]||Kt(c[y]);for(let y of Object.getOwnPropertySymbols(v)){var w=v[y];y.description===vf&&(!l||w!==l[y])&&(c[y]&&Kt(c[y]),c[y]=an(()=>h0(e,()=>w))),p[y]=w}l=p}),d){var h=e;jr(()=>{Rn(h,l.value,!0),or(h)})}f=!0})}function ls(e){return e.__attributes??={[fc]:e.nodeName.includes("-"),[pc]:e.namespaceURI===hf}}var yi=new Map;function hc(e){var t=e.getAttribute("is")||e.nodeName,n=yi.get(t);if(n)return n;yi.set(t,n=[]);for(var r,u=e,a=Element.prototype;a!==u;){r=Al(u);for(var s in r)r[s].set&&n.push(s);u=Eo(u)}return n}function rr(e,t,n=t){var r=new WeakSet;Vl(e,"input",async u=>{var a=u?e.defaultValue:e.value;if(a=ws(e)?Ss(a):a,n(a),ft!==null&&r.add(ft),await Jf(),a!==(a=t())){var s=e.selectionStart,i=e.selectionEnd;e.value=a??"",i!==null&&(e.selectionStart=s,e.selectionEnd=Math.min(i,e.value.length))}}),m(t)==null&&e.value&&(n(ws(e)?Ss(e.value):e.value),ft!==null&&r.add(ft)),Du(()=>{var u=t();if(e===document.activeElement){var a=Fa??ft;if(r.has(a))return}ws(e)&&u===Ss(e.value)||e.type==="date"&&!u&&!e.value||u!==e.value&&(e.value=u??"")})}function ws(e){var t=e.type;return t==="number"||t==="range"}function Ss(e){return e===""?null:+e}function y0(e,t,n){var r=ur(e,t);r&&r.set&&(e[t]=n,os(()=>{e[t]=null}))}function xi(e,t){return e===t||e?.[Wn]===t}function Ar(e={},t,n,r){return jr(()=>{var u,a;return Du(()=>{u=a,a=[],m(()=>{e!==n(...a)&&(t(e,...a),u&&xi(n(...u),e)&&t(null,...u))})}),()=>{Vr(()=>{a&&xi(n(...a),e)&&t(null,...a)})}}),e}function Oo(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function rt(e=!1){const t=lt,n=t.l.u;if(!n)return;let r=()=>L(t.s);if(e){let u=0,a={};const s=ia(()=>{let i=!1;const l=t.s;for(const c in l)l[c]!==a[c]&&(a[c]=l[c],i=!0);return i&&u++,u});r=()=>o(s)}n.b.length&&Hf(()=>{ki(t,r),Xu(n.b)}),uo(()=>{const u=m(()=>n.m.map(qd));return()=>{for(const a of u)typeof a=="function"&&a()}}),n.a.length&&uo(()=>{ki(t,r),Xu(n.a)})}function ki(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function Lo(e,t,n){if(e==null)return t(void 0),n&&n(void 0),xr;const r=m(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const nu=[];function x0(e,t){return{subscribe:kt(e,t).subscribe}}function kt(e,t=xr){let n=null;const r=new Set;function u(i){if(To(e,i)&&(e=i,n)){const l=!nu.length;for(const c of r)c[1](),nu.push(c,e);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:u,update:a,subscribe:s}}function Ft(e,t,n){const r=!Array.isArray(e),u=r?[e]:e;if(!u.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const a=t.length<2;return x0(n,(s,i)=>{let l=!1;const c=[];let d=0,f=xr;const h=()=>{if(d)return;f();const p=t(r?c[0]:c,s,i);a?s(p):f=typeof p=="function"?p:xr},v=u.map((p,w)=>Lo(p,y=>{c[w]=y,d&=~(1<{d|=1<t=n)(),t}let ya=!1,io=Symbol();function Xe(e,t,n){const r=n[t]??={store:null,source:U(void 0),unsubscribe:xr};if(r.store!==e&&!(io in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=xr;else{var u=!0;r.unsubscribe=Lo(e,a=>{u?r.source.v=a:D(r.source,a)}),u=!1}return e&&io in n?at(e):o(r.source)}function Gn(){const e={};function t(){os(()=>{for(var n in e)e[n].unsubscribe();Ua(e,io,{enumerable:!1,value:!0})})}return[e,t]}function k0(e,t,n){return e.set(n),t}function E0(e){var t=ya;try{return ya=!1,[e(),ya]}finally{ya=t}}const w0={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=He;try{wn(e.parent_effect),e.special[t]=ne({get[t](){return e.props[t]}},t,Fl)}finally{wn(r)}}return e.special[t](n),li(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),li(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Sn(e,t){return new Proxy({props:e,exclude:t,special:{},version:Sr(0),parent_effect:He},w0)}const S0={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Fu(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let u=e.props[r];Fu(u)&&(u=u());const a=ur(u,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Fu(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const u=ur(r,t);return u&&!u.configurable&&(u.configurable=!0),u}}},has(e,t){if(t===Wn||t===Dl)return!1;for(let n of e.props)if(Fu(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Fu(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Kn(...e){return new Proxy({props:e},S0)}function ne(e,t,n,r){var u=!Cu||(n&lf)!==0,a=(n&cf)!==0,s=(n&df)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=s?m(r):r),i),d;if(a){var f=Wn in e||Dl in e;d=ur(e,t)?.set??(f&&t in e?E=>e[t]=E:void 0)}var h,v=!1;a?[h,v]=E0(()=>e[t]):h=e[t],h===void 0&&r!==void 0&&(h=c(),d&&(u&&ef(),d(h)));var p;if(u?p=()=>{var E=e[t];return E===void 0?c():(l=!0,E)}:p=()=>{var E=e[t];return E!==void 0&&(i=void 0),E===void 0?i:E},u&&(n&Fl)===0)return p;if(d){var w=e.$$legacy;return(function(E,g){return arguments.length>0?((!u||!g||w||v)&&d(g?p():E),E):p()})}var y=!1,_=((n&of)!==0?ia:ct)(()=>(y=!1,p()));a&&o(_);var A=He;return(function(E,g){if(arguments.length>0){const S=g?o(_):u&&a?fu(E):E;return D(_,S),y=!0,i!==void 0&&(i=S),E}return Kr&&y||(A.f&Wr)!==0?_.v:o(_)})}function da(e){lt===null&&ns(),Cu&<.l!==null?vc(lt).m.push(e):uo(()=>{const t=m(e);if(typeof t=="function")return t})}function fa(e){lt===null&&ns(),da(()=>()=>m(e))}function A0(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Et(){const e=lt;return e===null&&ns(),(t,n,r)=>{const u=e.s.$$events?.[t];if(u){const a=sa(u)?u.slice():[u],s=A0(t,n,r);for(const i of a)i.call(e.x,s);return!s.defaultPrevented}return!0}}function mc(e){lt===null&&ns(),lt.l===null&&Qd(),vc(lt).a.push(e)}function vc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const C0="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(C0);xf();const jt="";function dt(e){return e.startsWith("/")?`${jt}${e}`:`${jt}/${e}`}const D0=/\r?\n/;function Ei(e){const t=[],n=e.split(/\n\n|\r\r|\r\n\r\n/);for(const r of n){const u=r.trim();if(!u)continue;const a=u.split(D0);let s="message",i=[],l;for(const c of a)if(c&&!c.startsWith(":")){if(c.startsWith("event:")){s=c.slice(6).trim()||"message";continue}if(c.startsWith("data:")){i.push(c.slice(5).trimStart());continue}if(c.startsWith("id:")){l=c.slice(3).trim();continue}}t.push({event:s,data:i.length?i.join(` +`):void 0,id:l})}return t}class xu extends Error{status;constructor(t,n){super(n),this.status=t}}async function bt(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const u=await n.json();r=u.detail||u.message||JSON.stringify(u)}catch{}throw new xu(n.status,r)}return await n.json()}async function T0(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const u=await n.json();r=u.detail||u.message||JSON.stringify(u)}catch{}throw new xu(n.status,r)}}async function F0(){return bt(dt("/api/models"))}async function M0(){return bt(dt("/api/stt/deepgram/token"),{method:"POST",body:JSON.stringify({})})}async function P0(e){const t=`/api/chat/generation/${encodeURIComponent(e)}`;return bt(dt(t))}async function wi(e,t){const n=`/api/chat/session/${encodeURIComponent(e)}/messages/${encodeURIComponent(t)}`;await T0(dt(n),{method:"DELETE"})}async function I0(){return bt(dt("/api/settings/model"))}async function Si(e){return bt(dt("/api/settings/model"),{method:"PUT",body:JSON.stringify(e)})}async function N0(){return bt(dt("/api/settings/system-prompt"))}async function O0(e){return bt(dt("/api/settings/system-prompt"),{method:"PUT",body:JSON.stringify(e)})}async function L0(){return bt(dt("/api/mcp/servers/"))}async function R0(e,t){const n=`/api/mcp/servers/${encodeURIComponent(e)}`;return bt(dt(n),{method:"PATCH",body:JSON.stringify(t)})}async function $0(){return bt(dt("/api/mcp/servers/refresh"),{method:"POST",body:JSON.stringify({})})}async function z0(){return bt(dt("/api/google-auth/status"))}async function U0(e){return bt(dt("/api/google-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function B0(){return bt(dt("/api/monarch-auth/status"))}async function j0(e){return bt(dt("/api/monarch-auth/credentials"),{method:"POST",body:JSON.stringify(e)})}async function q0(){return bt(dt("/api/monarch-auth/credentials"),{method:"DELETE"})}async function H0(){return bt(dt("/api/spotify-auth/status"))}async function W0(e){return bt(dt("/api/spotify-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function V0(e,t){const n=new FormData;n.append("file",e),n.append("session_id",t);const r=await fetch(dt("/api/uploads"),{method:"POST",body:n});if(!r.ok){let u=r.statusText||"Upload failed";try{u=(await r.json())?.detail??u}catch{}throw new xu(r.status||0,u)}return await r.json()}const G0=/\n\n|\r\r|\r\n\r\n/;async function K0(e,{onChunk:t,onDone:n,onError:r,onSession:u,onNotice:a,signal:s}={}){const i=await fetch(dt("/api/chat/stream"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e),signal:s});if(!i.ok||!i.body){const f=i.statusText||"Failed to connect to chat stream",h=new xu(i.status||0,f);throw r?.(h),h}const l=i.body.getReader(),c=new TextDecoder;let d="";try{for(;;){const{value:f,done:h}=await l.read();if(h)break;d+=c.decode(f,{stream:!0});const v=d.split(G0);d=v.pop()??"";for(const p of v){const w=Ei(p);for(const y of w){if(y.event==="session"&&y.data){try{const _=JSON.parse(y.data);_.session_id&&u?.(_.session_id)}catch(_){console.warn("Failed to parse session payload",_)}continue}if(y.event==="notice"){if(y.data)try{const _=JSON.parse(y.data);a?.(_)}catch(_){console.warn("Failed to parse notice payload",_,y.data)}continue}if(y.event!=="message"){t?.({choices:[],object:"event",meta:{event:y.event,data:y.data}},y);continue}if(y.data==="[DONE]"){n?.();return}if(y.data)try{const _=JSON.parse(y.data);t?.(_,y)}catch(_){console.warn("Failed to parse SSE chunk",_,y.data)}}}}if(d.trim()){const f=Ei(d);for(const h of f)if(h.event==="session"&&h.data)try{const v=JSON.parse(h.data);v.session_id&&u?.(v.session_id)}catch(v){console.warn("Failed to parse session payload",v)}else if(h.event==="notice"){if(h.data)try{const v=JSON.parse(h.data);a?.(v)}catch(v){console.warn("Failed to parse notice payload",v,h.data)}}else if(h.event==="message"){if(h.data==="[DONE]")n?.();else if(h.data)try{const v=JSON.parse(h.data);t?.(v,h)}catch(v){console.warn("Failed to parse SSE chunk",v,h.data)}}}n?.()}catch(f){if(f instanceof DOMException&&f.name==="AbortError")return;const h=f instanceof Error?f:new Error(String(f));throw r?.(h),h}finally{l.releaseLock()}}async function Iu(){return bt(dt("/api/presets/"))}async function Z0(e){return bt(dt("/api/presets/"),{method:"POST",body:JSON.stringify(e)})}async function Y0(e,t){const n=`/api/presets/${encodeURIComponent(e)}`;return bt(dt(n),{method:"PUT",body:JSON.stringify(t??{})})}async function J0(e){const t=`/api/presets/${encodeURIComponent(e)}`;return bt(dt(t),{method:"DELETE"})}async function X0(e){const t=`/api/presets/${encodeURIComponent(e)}/apply`;return bt(dt(t),{method:"POST",body:JSON.stringify({})})}async function Q0(e){const t=`/api/presets/${encodeURIComponent(e)}/set-default`;return bt(dt(t),{method:"POST",body:JSON.stringify({})})}async function ep(){return bt(dt("/api/presets/default"))}const gc=[{key:"total_cost",label:"Total cost"},{key:"created_at",label:"Created"},{key:"model",label:"Model"},{key:"origin",label:"Origin"},{key:"usage",label:"Usage"},{key:"is_byok",label:"Self-hosted"},{key:"cache_discount",label:"Cache discount"},{key:"upstream_inference_cost",label:"Upstream inference cost"},{key:"cancelled",label:"Cancelled"},{key:"provider_name",label:"Provider"},{key:"latency",label:"Latency (ms)"},{key:"moderation_latency",label:"Moderation latency (ms)"},{key:"generation_time",label:"Generation time (ms)"},{key:"finish_reason",label:"Finish reason"},{key:"native_finish_reason",label:"Native finish reason"},{key:"tokens_prompt",label:"Prompt tokens"},{key:"tokens_completion",label:"Completion tokens"},{key:"native_tokens_prompt",label:"Native prompt tokens"},{key:"native_tokens_completion",label:"Native completion tokens"},{key:"native_tokens_reasoning",label:"Native reasoning tokens"},{key:"num_media_prompt",label:"Prompt media"},{key:"num_media_completion",label:"Completion media"},{key:"num_search_results",label:"Search results"}];function Ai(e){if(e==null||e==="")return{text:"—",isMultiline:!1};if(typeof e=="boolean")return{text:e?"Yes":"No",isMultiline:!1};if(typeof e=="number")return{text:Number.isFinite(e)?e.toString():String(e),isMultiline:!1};if(typeof e=="object")try{const n=JSON.stringify(e,null,2);return{text:n,isMultiline:n.includes(` +`)}}catch(n){console.warn("Failed to stringify generation detail value",n,e);const r=String(e);return{text:r,isMultiline:r.includes(` +`)}}const t=String(e);return{text:t,isMultiline:t.includes(` +`)}}const tp="modulepreload",np=function(e){return"/"+e},Ci={},Di=function(t,n,r){let u=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=s?.nonce||s?.getAttribute("nonce");u=l(n.map(c=>{if(c=np(c),c in Ci)return;Ci[c]=!0;const d=c.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const h=document.createElement("link");if(h.rel=d?"stylesheet":tp,d||(h.as="script"),h.crossOrigin="",h.href=c,i&&h.setAttribute("nonce",i),document.head.appendChild(h),d)return new Promise((v,p)=>{h.addEventListener("load",v),h.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return u.then(s=>{for(const i of s||[])i.status==="rejected"&&a(i.reason);return t().catch(a)})},Ti={enabled:!1,engine:null,maxResults:5,searchPrompt:"",contextSize:null};function Fi(e,t){const n={...t};if(Object.prototype.hasOwnProperty.call(e,"enabled")&&(n.enabled=!!e.enabled),Object.prototype.hasOwnProperty.call(e,"engine")){const r=e.engine;n.engine=r==="native"||r==="exa"?r:null}if(Object.prototype.hasOwnProperty.call(e,"maxResults")){const r=e.maxResults;if(r==null)n.maxResults=null;else{const u=Number(r);Number.isFinite(u)&&u>0?n.maxResults=Math.min(Math.round(u),25):n.maxResults=t.maxResults}}if(Object.prototype.hasOwnProperty.call(e,"searchPrompt")){const r=e.searchPrompt;n.searchPrompt=typeof r=="string"?r:t.searchPrompt}if(Object.prototype.hasOwnProperty.call(e,"contextSize")){const r=e.contextSize;n.contextSize=r==="low"||r==="medium"||r==="high"?r:null}return n}function rp(e=Ti){const t=kt({...e});function n(s){t.update(i=>Fi(s,i))}function r(s){t.update(i=>Fi({enabled:s},i))}function u(){t.set({...Ti})}const a=Ft(t,s=>s.enabled);return{subscribe:t.subscribe,get current(){return at(t)},update:n,setEnabled:r,reset:u,isEnabled:a}}const bc=rp(),up=[{label:"GPT",keywords:["gpt","openai","o1","o3"]},{label:"Claude",keywords:["claude"]},{label:"Gemini",keywords:["gemini","palm-2","palm2"]},{label:"Grok",keywords:["grok"]},{label:"Cohere",keywords:["cohere","command"]},{label:"Nova",keywords:["nova"]},{label:"Qwen",keywords:["qwen"]},{label:"Yi",keywords:["yi"]},{label:"DeepSeek",keywords:["deepseek"]},{label:"Mistral",keywords:["mistral","mixtral"]},{label:"Llama4",keywords:["llama-4"]},{label:"Llama3",keywords:["llama-3"]},{label:"Llama2",keywords:["llama-2"]},{label:"RWKV",keywords:["rwkv"]},{label:"Router",keywords:["router"]},{label:"Media",keywords:["media"]},{label:"Other",keywords:[]}];function _c(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function Ro(e){const t=[];if(Array.isArray(e)){for(const n of e)typeof n=="string"&&n.trim()&&t.push(n.trim().toLowerCase());return t}if(typeof e=="string"&&e.trim())return e.split(/[,/]/).map(n=>n.trim().toLowerCase()).filter(Boolean);if(e&&typeof e=="object"){const n=Object.values(e);for(const r of n)t.push(...Ro(r))}return t}function $o(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const s of["input_modalities","input","modalities","inputs"])u(a[s])}return u(e.input_modalities),u(r),Array.from(t);function u(a){for(const s of Ro(a))t.add(s)}}function zo(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const i of["output_modalities","output","outputs"])u(a[i]);const s=a.modalities;s&&(u(s.output),u(s.outputs))}return u(e.output_modalities),u(r),Array.from(t);function u(a){for(const s of Ro(a))t.add(s)}}const yc=1e6,xc=6,ap=["prompt_price_per_million","input_price_per_million","input_token_price_per_million"],sp=["prompt_price","input_price","input_token_price"],op=["prompt","input","input_tokens","prompt_tokens"],ip=["completion_price_per_million","output_price_per_million","output_token_price_per_million"],lp=["completion_price","output_price","output_token_price"],cp=["completion","output","output_tokens","completion_tokens"];function kc(e,t){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number(e.toFixed(t))}function Ec(e,t,n){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number((e*t).toFixed(n))}function Va(e,t){for(const n of t){if(!(n in e))continue;const r=_c(e[n]);if(r!==null)return r}return null}function dp(e){const t=[],n=u=>{u&&typeof u=="object"&&t.push(u)};n(e.pricing),e.provider&&typeof e.provider=="object"&&n(e.provider.pricing);const r=e.top_provider;return r&&typeof r=="object"&&n(r.pricing),t}function fp(e,t,n,r,u){const a=Va(e,t),s=kc(a,u);if(s!==null)return s;const i=Va(e,n),l=Ec(i,r,u);return l!==null?l:null}function pp(e,t,n,r,u){if(!e)return null;const a=e,s=Va(a,t),i=kc(s,u);if(i!==null)return i;const l=Va(a,n),c=Ec(l,r,u);return c!==null?c:null}function wc(e,t,n,r,u,a){const i=fp(e,t,n,u,a);if(i!==null)return i;const l=[...r,...n];for(const c of dp(e)){const d=pp(c,t,l,u,a);if(d!==null)return d}return null}function Sc(e){return wc(e,ap,sp,op,yc,xc)}function hp(e){return wc(e,ip,lp,cp,yc,xc)}function Pa(e){return Sc(e)}function Zu(e){const t=[e.max_context,e.context_length,e.context_window,e.context_tokens,e.stats?.context_length];for(const n of t){const r=_c(n);if(r!==null)return r}return null}function mp(e){return e===null?"—":e===0?"FREE":e>=100?`$${e.toFixed(0)}`:e>=10?`$${e.toFixed(1)}`:e>=1?`$${e.toFixed(2)}`:e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(3)}`}function xa(e){return e===null?"Unknown":e>=1e3?`${(e/1e3).toFixed(1)}k tokens`:`${e} tokens`}function Ac(e){const t=e.provider;if(t&&typeof t=="object"){const r=t,u=r.display_name;if(typeof u=="string"&&u.trim())return u.trim();const a=r.name??r.id??r.slug;if(typeof a=="string"&&a.trim())return a.trim()}if(typeof e.provider=="string")return e.provider.trim()||null;const n=e.id?.split("/")??[];return n.length>=2?n[n.length-2]??null:null}function Cc(e){const t=new Set,n=[];typeof e.id=="string"&&n.push(e.id.toLowerCase()),typeof e.name=="string"&&n.push(e.name.toLowerCase()),Array.isArray(e.tags)&&n.push(...e.tags.map(u=>String(u).toLowerCase()));const r=n.join(" ");for(const u of up)u.label!=="Other"&&u.keywords.some(a=>r.includes(a))&&t.add(u.label);return t.size===0&&t.add("Other"),Array.from(t)}function Uo(e){const t=new Set,n=[],r=e;if(n.push(r.parameters,r.supported_parameters),e.capabilities&&typeof e.capabilities=="object"){const u=e.capabilities;n.push(u.parameters,u.supports_parameters)}for(const u of n)if(u){if(Array.isArray(u)){for(const a of u){const s=As(a);s&&t.add(s)}continue}if(typeof u=="object")for(const a of Object.keys(u)){const s=As(a);s&&t.add(s)}if(typeof u=="string"){const a=As(u);a&&t.add(a)}}return Array.from(t)}function Dc(e){const t=e,n=[t.is_moderated,t.moderation,t.requires_moderation],r=e.capabilities;r&&typeof r=="object"&&(n.push(r.is_moderated),n.push(r.requires_moderation));const u=e.provider;u&&typeof u=="object"&&n.push(u.is_moderated);const a=t.top_provider;a&&typeof a=="object"&&n.push(a.is_moderated);const s=t.metadata;s&&typeof s=="object"&&n.push(s.is_moderated);for(const i of n)if(typeof i=="boolean")return i?"moderated":"unmoderated";return null}function As(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function ru(){return{include:[],exclude:[]}}function lo(){return{search:"",inputModalities:ru(),outputModalities:ru(),minContext:null,minPromptPrice:null,maxPromptPrice:null,sort:"newness",series:ru(),providers:ru(),supportedParameters:ru(),moderation:ru()}}const vp={inputModalities:[],outputModalities:[],minContext:null,maxContext:null,minPromptPrice:null,maxPromptPrice:null,series:[],providers:[],supportedParameters:[],moderation:[]},gp={models:[],loading:!1,error:null,filters:lo(),facets:{...vp}};function bp(e){const t=new Set,n=new Set;let r=null,u=null,a=null,s=null;const i=new Set,l=new Set,c=new Set,d=new Set;for(const f of e){for(const y of $o(f))t.add(y);for(const y of zo(f))n.add(y);const h=Zu(f);h!==null&&(r=r===null?h:Math.min(r,h),u=u===null?h:Math.max(u,h));const v=Pa(f);v!==null&&(a=a===null?v:Math.min(a,v),s=s===null?v:Math.max(s,v));for(const y of Cc(f))i.add(y);const p=Ac(f);p&&l.add(p);for(const y of Uo(f))c.add(y);const w=Dc(f);w&&d.add(w)}return{inputModalities:Array.from(t).sort(),outputModalities:Array.from(n).sort(),minContext:r,maxContext:u,minPromptPrice:a,maxPromptPrice:s,series:Array.from(i).sort(),providers:Array.from(l).sort(),supportedParameters:Array.from(c).sort(),moderation:Array.from(d).sort()}}function Bo(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t||null}function Cs(e){const t=[];for(const n of e){const r=Bo(n);r&&t.push(r)}return t}function _p(e,t){return e.include.includes(t)?"include":e.exclude.includes(t)?"exclude":"neutral"}function Tc(e,t,n){const r=e.include.filter(a=>a!==t),u=e.exclude.filter(a=>a!==t);return n==="include"?{include:[...r,t],exclude:u}:n==="exclude"?{include:r,exclude:[...u,t]}:{include:r,exclude:u}}function yp(e,t,n){const r=Bo(t);return r?Tc(e,r,n):e}function uu(e,t){const n=Cs(e.include),r=Cs(e.exclude);if(n.length===0&&r.length===0)return!0;const u=new Set(Cs(t));if(n.length>0){for(const a of n)if(!u.has(a))return!1}if(r.length>0){for(const a of r)if(u.has(a))return!1}return!0}function xp(e){const{models:t,filters:n}=e;if(!Array.isArray(t)||t.length===0)return[];const r=n.search.toLowerCase().split(/\s+/).filter(Boolean),u=t.filter(i=>{if(r.length>0){const h=[i.id,i.name,i.description,(i.tags??[]).join(" ")].join(" ").toLowerCase();if(!r.every(p=>h.includes(p)))return!1}if(!uu(n.inputModalities,$o(i))||!uu(n.outputModalities,zo(i)))return!1;const l=Zu(i);if(n.minContext!==null&&(l===null||ln.maxPromptPrice)||!uu(n.series,Cc(i)))return!1;const d=Ac(i);if(!uu(n.providers,d?[d]:[])||!uu(n.supportedParameters,Uo(i)))return!1;const f=Dc(i);return!!uu(n.moderation,f?[f]:[])}),a={newness:(i,l)=>{const c=Date.parse(i.created_at??"")||0;return(Date.parse(l.created_at??"")||0)-c},price:(i,l)=>{const c=Pa(i),d=Pa(l),f=c??Number.POSITIVE_INFINITY,h=d??Number.POSITIVE_INFINITY;return f===h?0:f{const c=Zu(i),d=Zu(l),f=c??-1/0,h=d??-1/0;return f===h?0:h-f}},s=a[n.sort]??a.newness;return u.slice().sort(s)}function au(e,t){const n=Bo(t);if(!n)return e;const r=_p(e,n);return Tc(e,n,r==="include"?"exclude":r==="exclude"?"neutral":"include")}function kp(e,t,n,r){const u={...e};return u[t]=yp(e[t],n,r),u}function su(e){return e===null||Number.isNaN(e)||!Number.isFinite(e)||e<0?null:e}function xn(e){return e.include.length>0||e.exclude.length>0}function Ep(e){return!!(e.search.trim()||xn(e.inputModalities)||xn(e.outputModalities)||xn(e.series)||xn(e.providers)||xn(e.supportedParameters)||xn(e.moderation)||e.minContext!==null||e.minPromptPrice!==null||e.maxPromptPrice!==null)}function wp(e,t,n){if(!Array.isArray(e)||e.length===0)return[];if(!n||e.some(u=>u.id===n))return e;const r=t.find(u=>u.id===n);return r?[r,...e]:e}function Sp(e,t){return!Array.isArray(e)||e.length===0||!t?null:e.find(r=>r.id===t)??null}function Ap(){const e=kt({...gp});async function t(){e.update(F=>({...F,loading:!0,error:null}));try{const F=await F0(),I=Array.isArray(F.data)?F.data:[],K=bp(I);return e.update(N=>({...N,models:I,facets:K,loading:!1,error:null})),F}catch(F){const I=F instanceof Error?F.message:String(F);e.update(K=>({...K,loading:!1,error:I}))}}function n(F){e.update(I=>({...I,filters:{...I.filters,search:F}}))}function r(F){e.update(I=>({...I,filters:{...I.filters,inputModalities:au(I.filters.inputModalities,F)}}))}function u(F){e.update(I=>({...I,filters:{...I.filters,outputModalities:au(I.filters.outputModalities,F)}}))}function a(F){e.update(I=>({...I,filters:{...I.filters,series:au(I.filters.series,F)}}))}function s(F){e.update(I=>({...I,filters:{...I.filters,providers:au(I.filters.providers,F)}}))}function i(F){e.update(I=>({...I,filters:{...I.filters,supportedParameters:au(I.filters.supportedParameters,F)}}))}function l(F){e.update(I=>({...I,filters:{...I.filters,moderation:au(I.filters.moderation,F)}}))}function c(F,I,K){e.update(N=>({...N,filters:kp(N.filters,F,I,K)}))}function d(F){e.update(I=>({...I,filters:{...I.filters,minContext:su(F)}}))}function f(F){e.update(I=>({...I,filters:{...I.filters,minPromptPrice:su(F)}}))}function h(F){e.update(I=>({...I,filters:{...I.filters,maxPromptPrice:su(F)}}))}function v(F){e.update(I=>({...I,filters:{...I.filters,sort:F}}))}function p(){e.update(F=>{const I=lo();return I.sort=F.filters.sort,{...F,filters:I}})}function w(){const F=at(e).filters,I={};return xn(F.inputModalities)&&(I.inputModalities=F.inputModalities),xn(F.outputModalities)&&(I.outputModalities=F.outputModalities),F.minContext!==null&&(I.minContext=F.minContext),F.minPromptPrice!==null&&(I.minPromptPrice=F.minPromptPrice),F.maxPromptPrice!==null&&(I.maxPromptPrice=F.maxPromptPrice),xn(F.series)&&(I.series=F.series),xn(F.providers)&&(I.providers=F.providers),xn(F.supportedParameters)&&(I.supportedParameters=F.supportedParameters),xn(F.moderation)&&(I.moderation=F.moderation),I.sort=F.sort,I}function y(F){e.update(I=>{const K=lo();return K.search=I.filters.search,F.inputModalities&&(K.inputModalities=F.inputModalities),F.outputModalities&&(K.outputModalities=F.outputModalities),F.minContext!==void 0&&(K.minContext=su(F.minContext)),F.minPromptPrice!==void 0&&(K.minPromptPrice=su(F.minPromptPrice)),F.maxPromptPrice!==void 0&&(K.maxPromptPrice=su(F.maxPromptPrice)),F.series&&(K.series=F.series),F.providers&&(K.providers=F.providers),F.supportedParameters&&(K.supportedParameters=F.supportedParameters),F.moderation&&(K.moderation=F.moderation),F.sort&&(K.sort=F.sort),{...I,filters:K}})}const _=Ft(e,F=>F.models),A=Ft(e,F=>F.loading),E=Ft(e,F=>F.error),g=Ft(e,F=>F.filters),S=Ft(e,F=>F.facets),x=Ft(e,F=>xp(F)),T=Ft(e,F=>Ep(F.filters)),R=Ft([x,_,T],([F,I,K])=>{const N=K?F:I;return Q=>wp(N,I,Q)}),z=Ft(_,F=>I=>Sp(F,I));return{subscribe:e.subscribe,loadModels:t,setSearch:n,toggleInputModality:r,toggleOutputModality:u,toggleSeries:a,toggleProvider:s,toggleSupportedParameter:i,toggleModeration:l,setSelectionState:c,setMinContext:d,setMinPromptPrice:f,setMaxPromptPrice:h,setSort:v,resetFilters:p,getFilters:w,setFilters:y,models:_,loading:A,error:E,filters:g,facets:S,filtered:x,activeFilters:T,selectable:R,activeFor:z}}const wr=Ap(),ka={loading:!1,saving:!1,applying:null,deleting:null,creating:!1,settingDefault:null,error:null,items:[],lastApplied:null,lastResult:null};function Cp(){const e=kt({...ka});async function t(){e.set({...ka,loading:!0});try{const c=await Iu();e.set({...ka,loading:!1,items:c})}catch(c){const d=c instanceof Error?c.message:"Failed to load presets.";e.set({...ka,loading:!1,error:d})}}async function n(c){const d={name:c.trim(),model_filters:wr.getFilters()};if(!d.name)return e.update(f=>({...f,error:"Preset name is required."})),null;e.update(f=>({...f,creating:!0,error:null,lastResult:null}));try{const f=await Z0(d),h=await Iu();return e.update(v=>({...v,creating:!1,error:null,items:h,lastResult:f})),f}catch(f){const h=f instanceof Error?f.message:"Failed to create preset.";return e.update(v=>({...v,creating:!1,error:h})),null}}async function r(c,d){e.update(f=>({...f,saving:!0,error:null,lastResult:null}));try{const f={...d,model_filters:wr.getFilters()},h=await Y0(c,f),v=await Iu();return e.update(p=>({...p,saving:!1,error:null,items:v,lastResult:h})),h}catch(f){const h=f instanceof Error?f.message:"Failed to save snapshot.";return e.update(v=>({...v,saving:!1,error:h})),null}}async function u(c){e.update(d=>({...d,deleting:c,error:null}));try{const d=await J0(c),f=await Iu();return e.update(h=>({...h,deleting:null,items:f})),!!d?.deleted}catch(d){const f=d instanceof Error?d.message:"Failed to delete preset.";return e.update(h=>({...h,deleting:null,error:f})),!1}}async function a(c){e.update(d=>({...d,applying:c,error:null,lastApplied:null,lastResult:null}));try{const d=await X0(c);return d?.model_filters&&wr.setFilters(d.model_filters),e.update(f=>({...f,applying:null,lastApplied:c,lastResult:d})),d}catch(d){const f=d instanceof Error?d.message:"Failed to apply preset.";return e.update(h=>({...h,applying:null,error:f})),null}}async function s(c){e.update(d=>({...d,settingDefault:c,error:null}));try{const d=await Q0(c),f=await Iu();return e.update(h=>({...h,settingDefault:null,items:f,lastResult:d})),d}catch(d){const f=d instanceof Error?d.message:"Failed to set default preset.";return e.update(h=>({...h,settingDefault:null,error:f})),null}}async function i(){try{return await ep()}catch(c){return console.error("Failed to load default preset:",c),null}}function l(){e.update(c=>({...c,error:null}))}return{subscribe:e.subscribe,load:t,create:n,saveSnapshot:r,remove:u,apply:a,setDefault:s,loadDefault:i,clearError:l}}const Pn=Cp();var Dp=M(''),Tp=M(''),Fp=M(''),Mp=M(''),Pp=M('
');function Ip(e,t){Qe(t,!1);const n=()=>Xe(bc,"$webSearchStore",u),r=()=>Xe(Pn,"$presetsStore",u),[u,a]=Gn(),s=Et();let i=ne(t,"selectableModels",24,()=>[]),l=ne(t,"selectedModel",8,""),c=ne(t,"modelsLoading",8,!1),d=ne(t,"modelsError",8,null),f=ne(t,"hasMessages",8,!1),h=U(null),v=U(null),p=U(!1),w=U(!1);async function y(){if(!o(h)){D(p,!0);try{const Z=await Di(()=>import("./ModelPicker-JKtmtRjt.js"),__vite__mapDeps([0,1]));D(h,Z.default)}catch(Z){console.error("Failed to load ModelPicker",Z)}finally{D(p,!1)}}}async function _(){if(!o(v)){D(w,!0);try{const Z=await Di(()=>import("./WebSearchMenu-BL7jSOF3.js"),__vite__mapDeps([2,3]));D(v,Z.default)}catch(Z){console.error("Failed to load WebSearchMenu",Z)}finally{D(w,!1)}}}da(()=>{y(),_()});function A(){s("openExplorer")}function E(){s("clear")}function g(Z){s("modelChange",Z.detail)}function S(){s("openModelSettings")}function x(){s("openSystemSettings")}function T(){s("openSpeechSettings")}function R(){s("openKioskSettings")}function z(){s("openPresets")}rt();var F=Pp(),I=b(F),K=b(I),N=b(K),Q=C(N,2);{var q=Z=>{var B=Se(),ye=me(B);vi(ye,()=>o(h),(Me,Re)=>{Re(Me,{get selectableModels(){return i()},get selectedModel(){return l()},get modelsLoading(){return c()},get modelsError(){return d()},$$events:{modelChange:g}})}),k(Z,B)},ae=Z=>{var B=Dp();G(()=>oe(B,"data-loading",o(p))),k(Z,B)};$(Q,Z=>{o(h)?Z(q):Z(ae,!1)})}var ie=C(Q,2);{var Y=Z=>{var B=Se(),ye=me(B);vi(ye,()=>o(v),(Me,Re)=>{Re(Me,{})}),k(Z,B)},W=Z=>{var B=Tp(),ye=b(B),Me=C(b(ye),2),Re=b(Me);G(()=>{oe(B,"data-loading",o(w)),oe(Me,"data-enabled",(n(),m(()=>n().enabled))),X(Re,(n(),m(()=>n().enabled?"On":"Off")))}),k(Z,B)};$(ie,Z=>{o(v)?Z(Y):Z(W,!1)})}var O=C(ie,2),V=C(O,2),he=C(V,2);{var pe=Z=>{var B=Fp(),ye=C(b(B),4),Me=b(ye);G(()=>{oe(B,"title",(r(),m(()=>`Applying ${r().applying}… (click to manage presets)`))),oe(ye,"title",(r(),m(()=>r().applying))),X(Me,(r(),m(()=>r().applying)))}),J("click",B,z),k(Z,B)},H=Z=>{var B=Se(),ye=me(B);{var Me=Re=>{var We=Mp(),Ae=C(b(We),4),tt=b(Ae);G(()=>{oe(We,"title",(r(),m(()=>`Active preset: ${r().lastApplied} (click to manage)`))),oe(Ae,"title",(r(),m(()=>r().lastApplied))),X(tt,(r(),m(()=>r().lastApplied)))}),J("click",We,z),k(Re,We)};$(ye,Re=>{r(),m(()=>r().lastApplied)&&Re(Me)},!0)}k(Z,B)};$(he,Z=>{r(),m(()=>r().applying)?Z(pe):Z(H,!1)})}var j=C(he,2),ce=C(j,2),ee=C(ce,2),De=C(ee,2);G(()=>{O.disabled=c()||!l(),De.disabled=!f()}),J("click",N,A),J("click",O,S),J("click",V,z),J("click",j,x),J("click",ce,T),J("click",ee,R),J("click",De,E),k(e,F),et(),a()}/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const Np={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};var Op=No("");function Zn(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]),r=Sn(n,["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"]);Qe(t,!1);let u=ne(t,"name",8,void 0),a=ne(t,"color",8,"currentColor"),s=ne(t,"size",8,24),i=ne(t,"strokeWidth",8,2),l=ne(t,"absoluteStrokeWidth",8,!1),c=ne(t,"iconNode",24,()=>[]);const d=(...p)=>p.filter((w,y,_)=>!!w&&_.indexOf(w)===y).join(" ");rt();var f=Op();_i(f,(p,w)=>({...Np,...r,width:s(),height:s(),stroke:a(),"stroke-width":p,class:w}),[()=>(L(l()),L(i()),L(s()),m(()=>l()?Number(i())*24/Number(s()):i())),()=>(L(u()),L(n),m(()=>d("lucide-icon","lucide",u()?`lucide-${u()}`:"",n.class)))]);var h=b(f);mt(h,1,c,jn,(p,w)=>{var y=Of(()=>Wd(o(w),2));let _=()=>o(y)[0],A=()=>o(y)[1];var E=Se(),g=me(E);p0(g,_,!0,(S,x)=>{_i(S,()=>({...A()}))}),k(p,E)});var v=C(h);Gt(v,t,"default",{}),k(e,f),et()}function Lp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M12 18V5"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77"}]];Zn(e,Kn({name:"brain"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Rp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M5 21v-6"}],["path",{d:"M12 21V9"}],["path",{d:"M19 21V3"}]];Zn(e,Kn({name:"chart-no-axes-column-increasing"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function $p(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M20 6 9 17l-5-5"}]];Zn(e,Kn({name:"check"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function zp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];Zn(e,Kn({name:"clipboard-copy"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Up(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}],["path",{d:"M2 12h20"}]];Zn(e,Kn({name:"globe"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Mi(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];Zn(e,Kn({name:"pencil"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Bp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}],["path",{d:"M16 16h5v5"}]];Zn(e,Kn({name:"refresh-ccw"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function jp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"}],["path",{d:"m21.854 2.147-10.94 10.939"}]];Zn(e,Kn({name:"send"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function qp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];Zn(e,Kn({name:"trash-2"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Hp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"}]];Zn(e,Kn({name:"wrench"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Wp(e,t=null){let n=0,r=2;function u(c){if(typeof c=="number")r=Number.isFinite(c)&&c>0?c:2;else if(c&&typeof c=="object"&&"maxMultiplier"in c){const d=c.maxMultiplier;typeof d=="number"&&Number.isFinite(d)&&d>0&&(r=d)}}u(t);function a(){const c=e.style.height;if(e.style.height="auto",n=e.clientHeight||e.scrollHeight||0,e.style.height=c,!n){const d=getComputedStyle(e);n=parseFloat(d.lineHeight||"0")||24}}function s(){const c=Math.max(1,Math.round(n*r));e.style.height="auto";const d=e.scrollHeight,f=Math.min(d,c);e.style.height=`${f}px`,e.style.overflowY=d>c?"auto":"hidden",e.style.maxHeight=`${c}px`}function i(){s()}const l=requestAnimationFrame(()=>{a(),s()});return e.addEventListener("input",i),{update(c){u(c),a(),s()},destroy(){cancelAnimationFrame(l),e.removeEventListener("input",i),e.style.overflowY="",e.style.maxHeight=""}}}const jo="speech.settings.v1",Vp={fast:{label:"Fast speech",stt:{utteranceEndMs:1e3,endpointing:800,autoSubmitDelayMs:100}},normal:{label:"Normal speech",stt:{utteranceEndMs:1500,endpointing:1200,autoSubmitDelayMs:400}},slow:{label:"Slow speech",stt:{utteranceEndMs:2500,endpointing:2e3,autoSubmitDelayMs:800}}},Gp=[{value:"nova-3-general",label:"Nova-3 General"},{value:"nova-3-medical",label:"Nova-3 Medical"},{value:"nova-2-finance",label:"Nova-2 Finance"},{value:"nova-2-conversationalai",label:"Nova-2 Conversational AI"}],Kp={stt:{provider:"deepgram",model:"nova-3",interimResults:!0,vadEvents:!0,utteranceEndMs:1500,endpointing:1200,autoSubmit:!0,autoSubmitDelayMs:0,smartFormat:!0,punctuate:!0,numerals:!0,fillerWords:!1,profanityFilter:!1},updatedAt:null};function Zp(e){return JSON.parse(JSON.stringify(e))}function $r(){return Zp(Kp)}function Ds(e,t,n){return Math.min(Math.max(Math.round(e),t),n)}function hr(e,t){return typeof e=="boolean"?e:t}function Ts(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number(e);if(Number.isFinite(t))return t}return null}function co(e){const t=$r(),n={stt:{...t.stt},updatedAt:t.updatedAt};if(!e||typeof e!="object")return n;const r=e,u=r.stt??r.stt;if(u&&typeof u=="object"){const s=u,i=typeof s.model=="string"||typeof s.model=="string"?s.model:null,l=i?i.trim():"";n.stt.provider="deepgram",n.stt.model=l||t.stt.model,n.stt.interimResults=hr(s.interimResults??s.interim_results,t.stt.interimResults),n.stt.vadEvents=hr(s.vadEvents??s.vad_events,t.stt.vadEvents);const c=Ts(s.utteranceEndMs??s.utterance_end_ms);c!==null&&(n.stt.utteranceEndMs=Ds(c,500,5e3));const d=Ts(s.endpointing);d!==null&&(n.stt.endpointing=Ds(d,300,5e3)),n.stt.autoSubmit=hr(s.autoSubmit??s.auto_submit,t.stt.autoSubmit);const f=Ts(s.autoSubmitDelayMs??s.auto_submit_delay_ms);f!==null&&(n.stt.autoSubmitDelayMs=Ds(f,0,2e4)),n.stt.smartFormat=hr(s.smartFormat??s.smart_format,t.stt.smartFormat),n.stt.punctuate=hr(s.punctuate,t.stt.punctuate),n.stt.numerals=hr(s.numerals,t.stt.numerals),n.stt.fillerWords=hr(s.fillerWords??s.filler_words,t.stt.fillerWords),n.stt.profanityFilter=hr(s.profanityFilter??s.profanity_filter,t.stt.profanityFilter)}const a=r.updatedAt??r.updated_at;return n.updatedAt=typeof a=="string"&&a?a:null,n}function Pi(){if(typeof window>"u"||!window.localStorage)return $r();try{const e=window.localStorage.getItem(jo);if(!e)return $r();const t=JSON.parse(e);return co(t)}catch(e){return console.warn("Failed to read speech settings from storage",e),$r()}}function Yp(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(jo,JSON.stringify(e))}catch(t){console.warn("Failed to persist speech settings",t)}}function Jp(){const e=Pi(),t=kt(e);function n(s){const i=co(s),l={...i,stt:{...i.stt},updatedAt:new Date().toISOString()};return t.set(l),Yp(l),l}function r(s){const i=at(t),l={...i,stt:{...i.stt},updatedAt:i.updatedAt};return s.stt&&(l.stt={...l.stt,...s.stt}),s.updatedAt!==void 0&&(l.updatedAt=s.updatedAt),n(l)}function u(){return n($r())}function a(){const s=Pi();t.set(s)}return typeof window<"u"&&window.addEventListener("storage",s=>{if(s.key===jo)try{const i=s.newValue?JSON.parse(s.newValue):null,l=co(i);t.set(l)}catch(i){console.warn("Failed to synchronize speech settings from storage",i)}}),{subscribe:t.subscribe,save:n,update:r,reset:u,refresh:a,get current(){return at(t)}}}const Ga=Jp(),Xp={mode:"idle",recording:!1,connecting:!1,error:null,promptText:"",promptVersion:0,keepPromptSynced:!1,pendingSubmit:null},sn=kt({...Xp});let Ia=null,Ir=null,vr=null,Mr=0,Qn="",Na="",Oa=!1,La=null,Ra=null,fo=0;function cs(){Ra&&(clearTimeout(Ra),Ra=null),fo++}function Ka(e,t){sn.update(n=>({...n,promptText:e,promptVersion:n.promptVersion+1,keepPromptSynced:t?!0:n.keepPromptSynced}))}function Qp(){Qn="",Na="",Oa=!1}function po(){La&&(clearTimeout(La),La=null)}function e1(){if(vr)try{vr.close()}catch(e){console.warn("Failed to close Deepgram socket",e)}vr=null}function Fc(){if(Ir)try{Ir.stop()}catch{}if(Ir=null,Ia)try{Ia.getTracks().forEach(e=>e.stop())}catch{}Ia=null}function Nn(e={}){Fc(),e1(),po(),sn.update(t=>({...t,recording:!1,connecting:!1,keepPromptSynced:!1,pendingSubmit:e.submitText?{text:e.submitText}:null,mode:"idle"}))}function Nu(e){sn.update(t=>({...t,error:e,recording:!1,connecting:!1,keepPromptSynced:!1,mode:"idle"}))}function Ii(e){const t=e.trim(),n=Ga.current,r=n?.stt.autoSubmit??!0,u=Math.max(n?.stt.autoSubmitDelayMs??0,0);if(cs(),!t){Nn({submitText:null});return}if(r){if(u<=0){Nn({submitText:t});return}Nn(),Ka(t,!1);const a=++fo;Ra=setTimeout(()=>{a===fo&&sn.update(s=>({...s,pendingSubmit:{text:t}}))},u)}else Nn(),Ka(t,!1)}async function t1(e){const t=at(sn);(t.connecting||t.recording)&&Nn(),cs();const n=Ga.current;if(!n){Nu("Speech settings unavailable");return}const r=++Mr;Qp(),sn.set({...t,mode:e,connecting:!0,recording:!1,error:null,keepPromptSynced:!0,pendingSubmit:null});let u;try{if(u=(await M0()).access_token,!u)throw new Error("Missing Deepgram token")}catch(_){if(r!==Mr)return;Nn();const A=_ instanceof Error?_.message:"Failed to get Deepgram token";Nu(A);return}let a;try{a=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}catch(_){if(r!==Mr)return;Nn();const A=_ instanceof Error?_.message:"Microphone access denied";Nu(A);return}const i=["audio/ogg;codecs=opus","audio/webm;codecs=opus","audio/webm"].find(_=>{try{return MediaRecorder.isTypeSupported(_)}catch{return!1}}),l="opus",c=n.stt,d=Math.max(c.utteranceEndMs,500),f=Math.max(c.endpointing,300),v=`wss://api.deepgram.com/v1/listen?${new URLSearchParams({model:c.model,interim_results:String(c.interimResults!==!1),vad_events:String(c.vadEvents!==!1),smart_format:String(c.smartFormat!==!1),punctuate:String(c.punctuate!==!1),numerals:String(c.numerals!==!1),filler_words:String(c.fillerWords===!0),profanity_filter:String(c.profanityFilter===!0),utterance_end_ms:String(d),endpointing:String(f),encoding:l,no_delay:"false",multichannel:"false",alternatives:"1"}).toString()}`,w=u.includes(".")&&u.split(".").length>=3?["Bearer",u]:["token",u],y=new WebSocket(v,w);vr=y,Ia=a,y.addEventListener("open",()=>{if(r===Mr){sn.update(_=>({..._,connecting:!1,recording:!0,error:null,keepPromptSynced:!0}));try{Ir=new MediaRecorder(a,i?{mimeType:i}:void 0)}catch{Nu("MediaRecorder not supported"),Nn();return}Ir.addEventListener("dataavailable",async _=>{if(!(!_.data||_.data.size===0))try{const A=await _.data.arrayBuffer();vr&&vr.readyState===WebSocket.OPEN&&vr.send(A)}catch(A){console.warn("Failed to send audio chunk",A)}}),Ir.addEventListener("stop",()=>{try{vr?.send(new Uint8Array)}catch{}}),Ir.start(250)}}),y.addEventListener("message",_=>{if(r!==Mr||typeof _.data!="string")return;let A;try{A=JSON.parse(_.data)}catch{return}n1(A)}),y.addEventListener("error",_=>{console.warn("Deepgram socket error",_),r===Mr&&(Nu("Deepgram connection error"),Nn())}),y.addEventListener("close",()=>{r===Mr&&(Fc(),sn.update(_=>({..._,recording:!1,connecting:!1,keepPromptSynced:!1})))})}function n1(e,t,n){const r=e;if(r.type==="UtteranceEnd"){Oa||Ii(Qn||Na),po(),La=setTimeout(()=>{Oa=!1},1e3);return}if(r.type!=="Results")return;const s=(r.channel?.alternatives?.[0]?.transcript??"").trim();if(s){const c=Qn?`${Qn} ${s}`.trim():s;Na=c,Ka(c,!0)}r.is_final===!0&&s&&(Qn=Qn?`${Qn} ${s}`.trim():s,Ka(Qn,!0)),r.speech_final===!0&&(Oa=!0,po(),Ii(Qn||Na||s))}async function r1(){cs();const e=at(sn);if(e.mode==="dictation"&&(e.recording||e.connecting)){Nn(),sn.update(n=>({...n,mode:"idle",keepPromptSynced:!1}));return}sn.update(n=>({...n,mode:"dictation"})),await t1("dictation")}function Ni(){cs(),Nn(),sn.update(e=>({...e,mode:"idle"}))}function Oi(){const e=at(sn);if(!e.pendingSubmit)return null;const t=e.pendingSubmit;return sn.update(n=>({...n,pendingSubmit:null})),t}const Mc={subscribe:sn.subscribe};function Hu(e){return typeof e=="object"&&e!==null}function er(e){if(typeof e!="string")return;const t=e.trim();return t||void 0}function Li(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=e.trim();if(!t)return;const n=Number.parseInt(t,10);if(Number.isFinite(n))return n}}function pu(e){if(!Hu(e))return null;const t=er(e.url);if(!t)return null;const n={url:t},r=er(e.title)??er(e.name)??er(e.label);r&&(n.title=r);const u=er(e.content)??er(e.snippet)??er(e.text)??er(e.description);u&&(n.content=u);const a=Li(e.startIndex??e.start_index);a!==void 0&&(n.startIndex=a);const s=Li(e.endIndex??e.end_index);return s!==void 0&&(n.endIndex=s),n}function u1(e){const t=er(e.type),n=t?t.toLowerCase():null,r=[];"url_citation"in e&&r.push(e.url_citation),"urlCitation"in e&&r.push(e.urlCitation),"citation"in e&&r.push(e.citation),"payload"in e&&r.push(e.payload),"data"in e&&r.push(e.data);for(const u of r){const a=pu(u);if(a)return a}return n==="url_citation"||n==="url-citation"?pu(e):null}function ou(e,t,n){const r=`${n.url}|${n.startIndex??""}|${n.endIndex??""}`;t.has(r)||(t.add(r),e.push(n))}function a1(e){const t=[],n=new Set,r=/\[([^\]]+)\]\(([^)]+)\)/g;let u;for(;(u=r.exec(e))!==null;){const a=u[1].trim(),s=u[2].trim();s&&!n.has(s)&&(n.add(s),t.push({url:s,title:a||void 0,startIndex:u.index,endIndex:u.index+u[0].length}))}return t}function Nr(...e){const t=[],n=new Set,r=new WeakSet,u=[];function a(s){if(s!=null){if(Array.isArray(s)||Hu(s)){const i=s;if(r.has(i))return;r.add(i)}u.push(s)}}for(e.forEach(a);u.length>0;){const s=u.shift();if(s==null)continue;if(Array.isArray(s)){for(const c of s){if(c==null)continue;if(Array.isArray(c)||Hu(c)){a(c);continue}const d=pu(c);d&&ou(t,n,d)}continue}if(!Hu(s)){const c=pu(s);c&&ou(t,n,c);continue}const i=u1(s);if(i)ou(t,n,i);else{const c=pu(s);c&&ou(t,n,c)}a(s.meta),a(s.metadata),a(s.annotations),a(s.citations),a(s.url_citation),a(s.urlCitation),a(s.payload),a(s.data),a(s.message);const l=s.content??s.text;if(typeof l=="string"&&l.length>0){const c=a1(l);for(const d of c)ou(t,n,d)}for(const c of Object.values(s))if(c!=null)if(Array.isArray(c)||Hu(c))a(c);else{const d=pu(c);d&&ou(t,n,d)}}return t}function s1(e,t){const n=e.trim(),r=[];n&&r.push({type:"text",text:n});for(const u of t)r.push({type:"image_url",image_url:{url:u.deliveryUrl},metadata:{attachment_id:u.id,display_url:u.displayUrl,mime_type:u.mimeType,size_bytes:u.sizeBytes,filename:u.metadata?.filename,session_id:u.sessionId,uploaded_at:u.uploadedAt,expires_at:u.expiresAt}});return r.length===1&&r[0].type==="text"?r[0].text:r.length>0?r:""}function ho(e){if(typeof e=="string"){const u=e;return{parts:u?[{type:"text",text:u}]:[],text:u}}const t=[],n=[];for(const u of e){if(u?.type==="text"&&typeof u.text=="string"){const a=u.text;t.push({type:"text",text:a}),n.push(a);continue}if(u?.type==="image_url"&&"image_url"in u){const a=u.image_url;if(!a||typeof a.url!="string")continue;const s=u.metadata??{},i=typeof s.display_url=="string"&&s.display_url?s.display_url:a.url,l=typeof s.attachment_id=="string"&&s.attachment_id?s.attachment_id:void 0,c=typeof s.mime_type=="string"&&s.mime_type?s.mime_type:void 0,d=typeof s.size_bytes=="number"&&Number.isFinite(s.size_bytes)?Number(s.size_bytes):void 0,f=typeof s.filename=="string"&&s.filename?s.filename:void 0,h=typeof s.session_id=="string"&&s.session_id?s.session_id:void 0,v=typeof s.uploaded_at=="string"&&s.uploaded_at?s.uploaded_at:void 0,p=typeof s.expires_at=="string"&&s.expires_at?s.expires_at:null;t.push({type:"image",url:a.url,displayUrl:i,attachmentId:l,mimeType:c,sizeBytes:d,fileName:f,sessionId:h,uploadedAt:v,expiresAt:p,metadata:u.metadata??null})}}const r=n.join(` +`).trim();return{parts:t,text:r}}function Za(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(t=>Za(t));if(typeof e=="string")return e.length>0?[{text:e}]:[];if(typeof e=="object"){const t=e,n=t.text,r=t.type,u=[];if(typeof n=="string"&&n.length>0){const s={text:n};typeof r=="string"&&r.length>0&&(s.type=r),u.push(s)}const a=["segments","segment","messages","message","content","contents","parts","steps","items"];for(const s of a){const i=t[s];i!==void 0&&u.push(...Za(i))}return u}return[]}function o1(e){if(!e||typeof e!="object")return{segments:[],hasPayload:!1};const t=e.choices;if(!Array.isArray(t))return{segments:[],hasPayload:!1};const n=[];let r=!1;for(const u of t){if(!u||typeof u!="object")continue;const a=u.delta;if(!(!a||typeof a!="object")&&"reasoning"in a){r=!0;const s=a.reasoning;n.push(...Za(s))}}return{segments:n,hasPayload:r}}function i1(e,t){const n=t.filter(s=>s.text.length>0);if(n.length===0)return e??[];if(!e||e.length===0)return n;const r=e.map(s=>s.text).join(""),u=n.map(s=>s.text).join("");if(u.startsWith(r)){const s=u.slice(r.length);if(s.length===0)return e;const i=[...e],l=i.length-1,c=n[n.length-1];return i[l]={text:`${i[l].text}${s}`,type:c.type??i[l].type},i}const a=[...e];for(const s of n)a.some(l=>l.text===s.text&&l.type===s.type)||a.push(s);return a}function Ri(e){return e?.reduce((t,n)=>t+n.text.length,0)??0}async function l1(e,t={}){const{signal:n,onSession:r,onMessageDelta:u,onMetadata:a,onToolEvent:s,onDone:i,onError:l}=t,{onNotice:c}=t;await K0(e,{signal:n,onSession:r,onDone:i,onError:l,onNotice:c,onChunk(d,f){const h=f?.event??"message";if(h==="message"){const{text:v,fragments:p}=c1(d),{segments:w,hasPayload:y}=o1(d);if(!v&&p.length===0&&w.length===0&&!y)return;u?.({text:v,fragments:p,reasoningSegments:w,hasReasoningPayload:y,chunk:d});return}if(h==="metadata"&&f?.data){try{const v=JSON.parse(f.data);a?.(v)}catch(v){console.warn("Failed to parse metadata payload",v,f.data)}return}if(h==="tool"&&f?.data)try{const v=JSON.parse(f.data);s?.(v)}catch(v){console.warn("Failed to parse tool payload",v,f.data)}}})}function c1(e){const t=[],n=[],r=e.choices??[];for(const u of r){const a=u.delta??{},s=a.content;if(typeof s=="string")s&&t.push(s);else if(Array.isArray(s))for(const l of s)l&&typeof l=="object"&&n.push(l);const i=a.images;if(Array.isArray(i))for(const l of i)l&&typeof l=="object"&&n.push(l)}return{text:t.join(""),fragments:n}}const Fs={loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:null,lastSyncedModel:null,lastSavedAt:null,version:0};function d1(e){if(!e)return;const t={};for(const[n,r]of Object.entries(e))if(r!=null&&!(typeof r=="string"&&r.trim()==="")){if(Array.isArray(r)){if(r.length===0)continue;t[n]=r;continue}if(typeof r=="object"){if(Object.entries(r).length===0)continue;t[n]=r;continue}t[n]=r}return Object.keys(t).length>0?t:void 0}function f1(){const e=kt({...Fs});let t=0;async function n(){const l=at(e);if(!l.dirty||!l.data)return l.dirty&&e.update(h=>({...h,dirty:!1})),!0;const c=l.version,d={model:l.data.model,provider:l.data.provider??null};"supports_tools"in l.data&&(d.supports_tools=l.data.supports_tools===void 0?null:l.data.supports_tools);const f=d1(l.data.parameters);f?d.parameters=f:d.parameters=null,e.update(h=>({...h,saving:!0,saveError:null}));try{const h=await Si(d);return e.update(v=>{const p=Date.now();return v.version!==c?{...v,saving:!1,saveError:null,lastSavedAt:p,lastSyncedModel:h.model}:{...v,saving:!1,saveError:null,dirty:!1,data:h,lastSyncedModel:h.model,lastSavedAt:p}}),!0}catch(h){const v=h instanceof Error?h.message:"Failed to save model settings.";return e.update(p=>({...p,saving:!1,saveError:v})),!1}}async function r(l){const c=++t;e.set({...Fs,loading:!0});try{const d=await I0();let f=d;if(l&&d.model!==l&&(f=await Si({model:l,parameters:null,provider:null})),c!==t)return;e.set({loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:f,lastSyncedModel:f.model,lastSavedAt:Date.now(),version:0})}catch(d){if(c!==t)return;const f=d instanceof Error?d.message:"Failed to load model settings.";e.set({...Fs,error:f})}}function u(l,c){e.update(d=>{if(!d.data)return d;const f={...d.data.parameters??{}};c==null?delete f[l]:f[l]=c;const h={...d.data,parameters:Object.keys(f).length>0?f:null};return{...d,data:h,dirty:!0,saveError:null,version:d.version+1}})}function a(l){e.update(c=>{if(!c.data||c.data.model===l)return c;const d={...c.data,model:l};return{...c,data:d,dirty:!0,saveError:null,version:c.version+1}})}function s(){e.update(l=>{if(!l.data)return l;const c={...l.data,parameters:null};return{...l,data:c,dirty:!0,saveError:null,version:l.version+1}})}function i(){e.update(l=>({...l,error:null,saveError:null}))}return{subscribe:e.subscribe,load:r,updateParameter:u,setModel:a,resetToDefaults:s,clearErrors:i,flushSave:n}}const Dt=f1();function p1(e){return typeof e=="object"&&e!==null}const $i={messages:[],sessionId:null,isStreaming:!1,error:null,selectedModel:"openrouter/auto"};function Ou(e){let t=null;const n=typeof globalThis<"u"?globalThis.crypto:void 0;if(n?.randomUUID)try{t=n.randomUUID()}catch(r){console.warn("Failed to generate UUID via crypto.randomUUID",r)}if(!t&&n?.getRandomValues){const r=new Uint32Array(4);n.getRandomValues(r),t=Array.from(r,u=>u.toString(16).padStart(8,"0")).join("")}return t||(t=`${Date.now().toString(36)}${Math.random().toString(36).slice(2,12)}`),`${e}_${t.replace(/-/g,"")}`}function Pc(e,t){const n=[],r=new Set;for(const u of e){if(u.type!=="image")continue;const a=u.attachmentId??u.displayUrl??u.url;!a||r.has(a)||(r.add(a),n.push({id:u.attachmentId??a,sessionId:u.sessionId??t??"",mimeType:u.mimeType??"image/png",sizeBytes:u.sizeBytes??0,displayUrl:u.displayUrl||u.url,deliveryUrl:u.displayUrl||u.url,uploadedAt:u.uploadedAt??new Date().toISOString(),expiresAt:u.expiresAt??null,metadata:u.metadata??null}))}return n}function h1(e,t,n,r,u){if(!(Array.isArray(e)||r.length>0)){const d=`${(typeof e=="string"?e:t)??""}${n}`;return{content:d,text:d,attachments:[]}}const s=Array.isArray(e)?[...e]:[];if(!Array.isArray(e)){const c=typeof e=="string"?e:t;c&&s.push({type:"text",text:c})}if(r.length>0)s.push(...r);else if(n){const c=s[s.length-1];c&&c.type==="text"&&typeof c.text=="string"?c.text+=n:s.push({type:"text",text:n})}if(s.length===0){const d=`${(typeof e=="string"?e:t)??""}${n}`;return{content:d,text:d,attachments:[]}}const i=ho(s),l=Pc(i.parts,u);return{content:s,text:i.text,attachments:l}}function zi(e){const t=[],n=new Set,r=e.details?.serverMessageId;if(typeof r=="number"){const u=String(r);t.push(u),n.add(u)}return e.id&&!n.has(e.id)&&t.push(e.id),t}function m1(e,t,n,r,u){const a={model:e.selectedModel,session_id:e.sessionId??void 0,messages:[{role:"user",content:t,client_message_id:r}],metadata:{client_assistant_message_id:u,client_parent_message_id:r}};if(n.enabled){const s={id:"web"};n.engine&&(s.engine=n.engine),n.maxResults!==null&&n.maxResults!==void 0&&(s.max_results=n.maxResults);const i=n.searchPrompt.trim();i&&(s.search_prompt=i),a.plugins=[s],n.contextSize&&(a.web_search_options={search_context_size:n.contextSize})}return a}function v1(){const e=kt({...$i});let t=null;function n(...p){for(const w of p)if(typeof w=="string"&&w)return w;return null}async function r(p){const w=p.text??"",y=(p.attachments??[]).map(N=>({...N})),_=w.trim(),A=at(e);if(A.isStreaming&&t?.abort(),!_&&y.length===0)return;const E=Ou("user"),g=Ou("assistant"),S=s1(_,y),x=ho(S),T=y,R=bc.current,z=m1(A,S,R,E,g),F=new Date().toISOString();e.update(N=>({...N,messages:[...N.messages,{id:E,role:"user",content:S,text:x.text,attachments:T,createdAt:F,createdAtUtc:F},{id:g,role:"assistant",content:"",text:"",attachments:[],pending:!0,createdAt:null,createdAtUtc:null,details:R.enabled?{webSearchConfig:{engine:R.engine,maxResults:R.maxResults,contextSize:R.contextSize,searchPrompt:R.searchPrompt}}:void 0}],isStreaming:!0,error:null}));const I=new AbortController;t=I;const K=new Map;try{await l1(z,{signal:I.signal,onSession(N){e.update(Q=>({...Q,sessionId:N}))},onNotice(N){if(console.log("[NOTICE] Received notice:",N),!N||typeof N!="object"){console.warn("[NOTICE] Invalid payload:",N);return}const Q=N.type;console.log("[NOTICE] Notice type:",Q),console.log("[NOTICE] No handler for notice type:",Q)},onMessageDelta({text:N,fragments:Q,reasoningSegments:q,hasReasoningPayload:ae,chunk:ie}){e.update(Y=>{const W=Y.messages.map(O=>{if(O.id!==g)return O;const V=h1(O.content,O.text,N,Q,Y.sessionId),he=V.attachments.length>0?V.attachments:O.attachments,pe={...O,content:V.content,text:V.text,attachments:he??[]};if(q.length>0||ae){const j=O.details??{},ce={...j,reasoningStatus:"streaming"};q.length>0&&(ce.reasoning=i1(j.reasoning,q)),pe.details=ce}const H=ie?Nr(ie):[];if(H.length>0){let j=pe.details;j||(j=O.details?{...O.details}:{});const ce=Nr(j?.citations??null,H);ce.length>0&&(j.citations=ce,pe.details=j)}return pe});return{...Y,messages:W}})},onMetadata(N){e.update(Q=>{const q=Q.messages.map(ae=>{if(ae.id!==g)return ae;const ie=ae.details??{},Y=Za(N.reasoning),W=Y.length>0;let O=ie.reasoning;W&&(O=Ri(Y)>=Ri(ie.reasoning)?Y:ie.reasoning??Y);const V=W?ae.pending?"streaming":"complete":ie.reasoningStatus??null,he=typeof N.message_id=="number"?N.message_id:ie.serverMessageId??null;let pe=ie.meta??null,H=ie.citations??null;if(N.meta===null)pe=null,H=null;else if(p1(N.meta)){pe=N.meta;const ee=Nr(N.meta,N);ee.length>0&&(H=ee)}else{const ee=Nr(N);ee.length>0&&(H=ee)}const j=n(N.created_at,N.created_at_utc,ae.createdAt??null),ce=n(N.created_at_utc,ae.createdAtUtc??null);return{...ae,details:{...ie,model:typeof N.model=="string"?N.model:ie.model??null,finishReason:typeof N.finish_reason=="string"?N.finish_reason:ie.finishReason??null,reasoning:O,reasoningStatus:V,usage:N.usage&&typeof N.usage=="object"?N.usage:ie.usage??null,routing:N.routing&&typeof N.routing=="object"?N.routing:ie.routing??null,toolCalls:Array.isArray(N.tool_calls)?N.tool_calls:ie.toolCalls??null,generationId:typeof N.generation_id=="string"?N.generation_id:ie.generationId??null,serverMessageId:he,meta:pe,citations:H},createdAt:j,createdAtUtc:ce}});return{...Q,messages:q}})},onToolEvent(N){const Q=typeof N.call_id=="string"?N.call_id:Ou("tool"),q=typeof N.status=="string"?N.status:"started",ae=typeof N.name=="string"?N.name:"tool",ie=N.result,Y=typeof ie=="string"?ie:ie&&typeof ie=="object"?JSON.stringify(ie):null,W=typeof N.message_id=="number"?N.message_id:null,O=N.content,V=at(e);let he,pe,H=[];if(Array.isArray(O)){const ce=ho(O);H=Pc(ce.parts,V.sessionId),he=O,pe=ce.text}else q==="started"?(he=`Running ${ae}…`,pe=`Running ${ae}…`):(he=Y??`Tool ${ae} responded.`,pe=Y??`Tool ${ae} responded.`);let j=K.get(Q);if(j)e.update(ce=>{const ee=ce.messages.map(De=>{if(De.id!==j)return De;const Z={...De.details??{},toolName:ae,toolStatus:q,toolResult:Y??De.details?.toolResult??null,serverMessageId:W??De.details?.serverMessageId??null},B=n(N.created_at,N.created_at_utc,De.createdAt??null),ye=n(N.created_at_utc,De.createdAtUtc??null);return{...De,content:he,text:pe,attachments:H.length>0?H:De.attachments??[],pending:q==="started",details:Z,createdAt:B,createdAtUtc:ye??B??De.createdAtUtc??null}});return{...ce,messages:ee}});else{j=Ou("tool"),K.set(Q,j);const ce=new Date().toISOString(),ee=n(N.created_at,N.created_at_utc,ce),De=n(N.created_at_utc,ee??ce);e.update(Z=>({...Z,messages:[...Z.messages,{id:j,role:"tool",content:he,text:pe,attachments:H,pending:q==="started",details:{toolName:ae,toolStatus:q,toolResult:Y??null,serverMessageId:W},createdAt:ee,createdAtUtc:De}]}))}},onDone(){e.update(N=>{const Q=N.messages.map(q=>{if(q.id!==g)return q;const ae=q.details?{...q.details,reasoningStatus:q.details.reasoning?"complete":q.details.reasoningStatus??null}:void 0,ie=new Date().toISOString(),Y=q.createdAt??ie;return{...q,pending:!1,details:ae,createdAt:Y,createdAtUtc:q.createdAtUtc??Y}});return{...N,isStreaming:!1,messages:Q}})},onError(N){console.error("Chat stream error",N),e.update(Q=>({...Q,isStreaming:!1,error:N.message??"Unknown error",messages:Q.messages.filter(q=>q.id!==g&&!(q.role==="tool"&&q.pending))}))}})}catch(N){if(N instanceof DOMException&&N.name==="AbortError")return;const Q=N instanceof Error?N.message:String(N);e.update(q=>({...q,isStreaming:!1,error:Q,messages:q.messages.filter(ae=>ae.id!==g&&!(ae.role==="tool"&&ae.pending))}))}finally{t=null}}function u(){t&&(t.abort(),t=null,e.update(p=>{const w=p.messages.filter(y=>!(y.role==="assistant"&&y.pending&&!y.text||y.role==="tool"&&y.pending));return{...p,isStreaming:!1,messages:w}}))}function a(){t?.abort(),t=null,e.update(p=>({...$i,selectedModel:p.selectedModel}))}function s(p,w){const y=p.messages.findIndex(g=>g.id===w);if(y===-1)return p;const _=p.messages.slice(),A=[],[E]=_.splice(y,1);if(!E)return p;if(E.role==="assistant")for(A.push(E.id);y<_.length&&_[y].role==="tool";)_.splice(y,1);else if(E.role==="user")for(;y<_.length&&_[y].role!=="user"&&_[y].role!=="system";){const[g]=_.splice(y,1);g?.role==="assistant"&&g.id&&A.push(g.id)}return{...p,messages:_}}async function i(p,w){let y=null;const _=new Set;for(const A of w){if(A.role==="assistant"||A.role==="tool")continue;const E=zi(A);let g=!1;for(const S of E)if(!(!S||_.has(S))){_.add(S);try{await wi(p,S),g=!0;break}catch(x){if(x instanceof xu&&x.status===404)continue;y||(y=x instanceof Error?x.message:"Failed to delete previous message.");break}}}return y}async function l(p){const w=at(e);if(w.isStreaming)return;const y=w.messages.find(_=>_.id===p);if(y){if(w.sessionId){const _=zi(y);let A=null;for(const E of _)try{await wi(w.sessionId,E),A=null;break}catch(g){if(g instanceof xu&&g.status===404)continue;A=g instanceof Error?g.message:"Failed to delete message.";break}A&&e.update(E=>({...E,error:A}))}e.update(_=>s(_,p))}}async function c(p){const w=at(e),y=w.messages.findIndex(g=>g.id===p);if(y===-1)return;const _=w.messages[y];if(_.role!=="user")return;w.isStreaming&&(t?.abort(),t=null);const A=w.messages.slice(y),E=w.messages.slice(0,y);if(e.update(g=>({...g,messages:E,isStreaming:!1,error:null})),w.sessionId){const g=await i(w.sessionId,A);g&&e.update(S=>({...S,error:g}))}await r({text:_.text,attachments:(_.attachments??[]).map(g=>({...g}))})}async function d(p,w){const y=w.trim();if(!y)return;const _=at(e),A=_.messages.findIndex(x=>x.id===p);if(A===-1)return;const E=_.messages[A];if(E.role!=="user")return;_.isStreaming&&(t?.abort(),t=null);const g=_.messages.slice(A),S=_.messages.slice(0,A);if(e.update(x=>({...x,messages:S,isStreaming:!1,error:null})),_.sessionId){const x=await i(_.sessionId,g);x&&e.update(T=>({...T,error:x}))}await r({text:y,attachments:(E.attachments??[]).map(x=>({...x}))})}function f(){e.update(p=>({...p,error:null}))}function h(p){e.update(w=>({...w,selectedModel:p}));try{Dt.clearErrors(),Dt.load(p)}catch{}}function v(){const p=at(e);if(p.sessionId)return p.sessionId;const w=Ou("session");return e.update(y=>({...y,sessionId:w})),w}return{subscribe:e.subscribe,sendMessage:r,cancelStream:u,clearConversation:a,deleteMessage:l,retryMessage:c,editMessage:d,clearError:f,setModel:h,ensureSessionId:v}}const ea=v1();var g1=M('Uploading…'),b1=M(' '),_1=M('
Attachment preview
'),y1=M('
'),x1=M(''),k1=M(''),E1=M(''),w1=M('
');function S1(e,t){Qe(t,!1);const n=()=>Xe(Mc,"$speechState",r),[r,u]=Gn(),a=U(),s=U(),i=U(),l=U(),c=U(),d=U(),f=U(),h=U();let v=ne(t,"prompt",12,""),p=ne(t,"isStreaming",8,!1),w=ne(t,"presetAttachments",24,()=>[]);const y=Et(),_=new Set(["image/png","image/jpeg","image/webp","image/gif"]),A=10*1024*1024,E=4;let g=U([]),S=U(null),x=U(null),T=U(null);function R(){return globalThis.crypto?.randomUUID?`attachment_${globalThis.crypto.randomUUID().replace(/-/g,"")}`:`attachment_${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function z(te){if(!(!te||typeof te!="string")&&te.startsWith("blob:"))try{URL.revokeObjectURL(te)}catch{}}function F(te){if(W(),!te||te.length===0){D(S,null);return}const Ee=[];for(const ge of te){if(!ge)continue;const Te=ge.displayUrl??ge.deliveryUrl??null;Te&&Ee.push({id:ge.id??R(),file:null,previewUrl:Te,status:"ready",resource:{...ge,metadata:ge.metadata?{...ge.metadata}:null}})}D(g,Ee),D(S,null)}function I(){if(p())return;const te=v().trim();if(o(g).some($e=>$e.status==="uploading")){D(S,"Please wait for uploads to finish.");return}if(o(g).some($e=>$e.status==="error")){D(S,"Remove failed uploads before sending.");return}const Te=o(g).filter($e=>$e.status==="ready"&&$e.resource).map($e=>$e.resource);!te&&Te.length===0||(y("submit",{text:te,attachments:Te}),v(""),D(S,null),W())}function K(te){te.key==="Enter"&&!te.shiftKey&&(te.preventDefault(),I())}function N(){y("cancel")}function Q(){p()&&n().mode!=="dictation"||n().connecting&&!n().recording&&n().mode!=="dictation"||y("startDictation")}function q(){p()||(D(S,null),o(x)?.click())}function ae(te){const Ee=te.target,ge=Ee.files?Array.from(Ee.files):[];if(Ee.value="",!ge.length)return;const Te=E-o(g).length;if(Te<=0){D(S,`You can attach up to ${E} images.`);return}const $e=ea.ensureSessionId(),ue=ge.slice(0,Te);ge.length>Te&&D(S,`Only ${E} images allowed per message.`);for(const ve of ue){if(!_.has(ve.type)){D(S,"Unsupported image format.");continue}if(ve.size>A){D(S,"Images must be 10 MB or less.");continue}const xe=URL.createObjectURL(ve),we={id:R(),file:ve,previewUrl:xe,status:"uploading"};D(g,[...o(g),we]),ie(we,$e)}}async function ie(te,Ee){if(te.file)try{const{attachment:ge}=await V0(te.file,Ee);D(g,o(g).map(Te=>Te.id===te.id?{...Te,status:"ready",resource:ge}:Te))}catch(ge){const Te=ge instanceof Error?ge.message:"Failed to upload image.";D(g,o(g).map($e=>$e.id===te.id?{...$e,status:"error",error:Te}:$e))}}function Y(te){D(g,o(g).filter(Ee=>Ee.id===te?(z(Ee.previewUrl),!1):!0)),o(g).length||D(S,null)}function W(){o(g).forEach(te=>{z(te.previewUrl)}),D(g,[])}fa(()=>{W()}),fe(()=>L(v()),()=>{D(a,v().trim())}),fe(()=>o(g),()=>{D(s,o(g).some(te=>te.status==="uploading"))}),fe(()=>o(g),()=>{D(i,o(g).some(te=>te.status==="error"))}),fe(()=>o(g),()=>{D(l,o(g).some(te=>te.status==="ready"))}),fe(()=>(L(p()),o(s),o(i),o(a),o(l)),()=>{D(c,p()||o(s)||o(i)||!o(a)&&!o(l))}),fe(()=>(L(w()),o(T)),()=>{w()!==o(T)&&(F(w()),D(T,w()))}),fe(()=>n(),()=>{D(d,n().mode==="dictation"&&(n().recording||n().connecting))}),fe(()=>n(),()=>{D(f,n().connecting&&!n().recording)}),fe(()=>n(),()=>{D(h,n().error)}),At(),rt();var O=w1(),V=b(O),he=b(V);{var pe=te=>{var Ee=y1();mt(Ee,5,()=>o(g),ge=>ge.id,(ge,Te)=>{var $e=_1();let ue;var ve=b($e),xe=C(ve,2);{var we=Le=>{var Be=g1();k(Le,Be)};$(xe,Le=>{o(Te),m(()=>o(Te).status==="uploading")&&Le(we)})}var be=C(xe,2);{var Oe=Le=>{var Be=b1(),Ve=b(Be);G(()=>X(Ve,(o(Te),m(()=>o(Te).error??"Upload failed.")))),k(Le,Be)};$(be,Le=>{o(Te),m(()=>o(Te).status==="error")&&Le(Oe)})}var Ce=C(be,2);G(Le=>{ue=St($e,1,"attachment-chip svelte-1ct3ltt",null,ue,Le),oe(ve,"src",(o(Te),m(()=>o(Te).previewUrl??o(Te).resource?.displayUrl??o(Te).resource?.deliveryUrl??"")))},[()=>({uploading:o(Te).status==="uploading",error:o(Te).status==="error"})]),J("click",Ce,()=>Y(o(Te).id)),k(ge,$e)}),k(te,Ee)};$(he,te=>{o(g),m(()=>o(g).length)&&te(pe)})}var H=C(he,2);{var j=te=>{var Ee=x1(),ge=b(Ee);G(()=>X(ge,o(S))),k(te,Ee)};$(H,te=>{o(S)&&te(j)})}var ce=C(H,2);{var ee=te=>{var Ee=k1(),ge=b(Ee);G(()=>X(ge,o(h))),k(te,Ee)};$(ce,te=>{o(h)&&te(ee)})}var De=C(ce,2),Z=b(De),B=C(Z,2);Ar(B,te=>D(x,te),()=>o(x));var ye=C(B,2);jr(()=>rr(ye,v)),jr(()=>J("keydown",ye,K)),Wa(ye,(te,Ee)=>Wp?.(te,Ee),v);var Me=C(ye,2),Re=b(Me);{var We=te=>{var Ee=E1();J("click",Ee,N),k(te,Ee)};$(Re,te=>{p()&&te(We)})}var Ae=C(Re,2),tt=C(Ae,2),_e=C(b(tt),2);jp(_e,{size:16,"aria-hidden":"true","stroke-width":2}),G(()=>{Z.disabled=(L(p()),o(g),m(()=>p()||o(g).length>=E)),oe(ye,"placeholder",p()?"Waiting for response…":"Type here…"),oe(ye,"aria-disabled",p()),Ae.disabled=p()&&!o(d)||o(f)&&!o(d),oe(Ae,"aria-pressed",o(d)?"true":"false"),oe(Ae,"data-active",o(d)?"true":"false"),tt.disabled=o(c)}),J("click",Z,q),J("change",B,ae),J("click",Ae,Q),J("submit",O,Oo(I)),k(e,O),et(),u()}var A1=M('
');function cr(e,t){Qe(t,!1);let n=ne(t,"open",8,!1),r=ne(t,"labelledBy",8,null),u=ne(t,"modalClass",8,""),a=ne(t,"bodyClass",8,""),s=ne(t,"layerClass",8,""),i=ne(t,"closeLabel",8,"Close modal"),l=ne(t,"closeOnBackdrop",8,!0),c=ne(t,"focusOnOpen",8,!0),d=ne(t,"closeDisabled",8,!1);const f=Et();let h=U(null),v=U(!1);function p(g){!l()||d()||g.target===g.currentTarget&&f("close")}function w(){d()||f("close")}function y(g){!n()||d()||g.key==="Escape"&&(g.preventDefault(),f("close"))}fe(()=>(L(n()),o(v),L(c()),o(h)),()=>{n()&&!o(v)?(D(v,!0),c()&&o(h)&&o(h).focus()):!n()&&o(v)&&D(v,!1)}),At(),rt();var _=Se();J("keydown",qa,y);var A=me(_);{var E=g=>{var S=A1(),x=b(S),T=C(x,2),R=b(T),z=b(R),F=b(z);Gt(F,t,"heading",{});var I=C(z,2),K=b(I);Gt(K,t,"actions",{});var N=C(K,2),Q=C(R,2),q=b(Q);Gt(q,t,"default",{});var ae=C(Q,2);Gt(ae,t,"footer",{}),Ar(T,ie=>D(h,ie),()=>o(h)),G((ie,Y,W)=>{St(S,1,ie),oe(x,"aria-label",i()),St(T,1,Y),oe(T,"aria-labelledby",r()||void 0),oe(N,"aria-label",i()),N.disabled=d(),St(Q,1,W)},[()=>Ma((L(s()),m(()=>`model-settings-layer ${s()}`.trim()))),()=>Ma((L(u()),m(()=>`model-settings-modal ${u()}`.trim()))),()=>Ma((L(a()),m(()=>`model-settings-body ${a()}`.trim())))]),J("click",x,p),J("click",N,w),k(g,S)};$(A,g=>{n()&&g(E)})}k(e,_),et()}var C1=M('

Loading…

'),D1=M('

'),T1=M('
 
'),F1=M('
'),M1=M('
'),P1=M('

No details available.

'),I1=M('

'),N1=M('

Generation details

',1);function O1(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"generationId",8,null),a=ne(t,"loading",8,!1),s=ne(t,"error",8,null),i=ne(t,"data",8,null),l=ne(t,"fields",8,gc),c=U([]);function d(){n("close")}fe(()=>(L(i()),L(l()),Ai),()=>{D(c,i()?l().map(p=>({field:p,display:Ai(i()?.[p.key])})):[])}),At(),rt();var f=Se(),h=me(f);{var v=p=>{cr(p,{get open(){return r()},labelledBy:"generation-modal-title",modalClass:"generation-modal",closeLabel:"Close generation details",$$events:{close:d},children:(w,y)=>{var _=Se(),A=me(_);{var E=S=>{var x=C1();k(S,x)},g=S=>{var x=Se(),T=me(x);{var R=F=>{var I=D1(),K=b(I);G(()=>X(K,s())),k(F,I)},z=F=>{var I=Se(),K=me(I);{var N=q=>{var ae=M1();mt(ae,5,()=>o(c),ie=>ie.field.key,(ie,Y)=>{var W=F1(),O=b(W),V=b(O),he=C(O,2),pe=b(he);{var H=ce=>{var ee=T1(),De=b(ee);G(()=>X(De,(o(Y),m(()=>o(Y).display.text)))),k(ce,ee)},j=ce=>{var ee=Ln();G(()=>X(ee,(o(Y),m(()=>o(Y).display.text)))),k(ce,ee)};$(pe,ce=>{o(Y),m(()=>o(Y).display.isMultiline)?ce(H):ce(j,!1)})}G(()=>X(V,(o(Y),m(()=>o(Y).field.label)))),k(ie,W)}),k(q,ae)},Q=q=>{var ae=P1();k(q,ae)};$(K,q=>{i()?q(N):q(Q,!1)},!0)}k(F,I)};$(T,F=>{s()?F(R):F(z,!1)},!0)}k(S,x)};$(A,S=>{a()?S(E):S(g,!1)})}k(w,_)},$$slots:{default:!0,heading:(w,y)=>{var _=N1(),A=C(me(_),2);{var E=g=>{var S=I1(),x=b(S);G(()=>X(x,`ID: ${u()??""}`)),k(g,S)};$(A,g=>{u()&&g(E)})}k(w,_)}}})};$(h,p=>{r()&&p(v)})}k(e,f),et()}var L1=M('Updated'),R1=M('
Edit message
');function $1(e,t){Qe(t,!1);const n=U(),r=U(),u=U();let a=ne(t,"value",12,""),s=ne(t,"originalValue",8,""),i=ne(t,"saving",8,!1),l=ne(t,"disabled",8,!1);const c=Et();let d=U(null);da(()=>{o(d)&&(o(d).focus(),o(d).setSelectionRange(0,o(d).value.length))});function f(){o(r)&&c("submit",{text:o(n)})}function h(){i()||c("cancel")}function v(F){F.key==="Enter"&&!F.shiftKey&&(F.preventDefault(),f())}fe(()=>L(a()),()=>{D(n,a().trim())}),fe(()=>(o(n),L(i()),L(l())),()=>{D(r,!!o(n)&&!i()&&!l())}),fe(()=>(o(n),L(s())),()=>{D(u,o(n)!==s().trim())}),At(),rt();var p=R1(),w=b(p),y=b(w),_=C(b(y),2);{var A=F=>{var I=L1();k(F,I)};$(_,F=>{o(u)&&F(A)})}var E=C(y,2);Ar(E,F=>D(d,F),()=>o(d));var g=C(E,2),S=b(g),x=C(S,2),T=b(x);{var R=F=>{var I=Ln("Sending…");k(F,I)},z=F=>{var I=Ln("Save & Send");k(F,I)};$(T,F=>{i()?F(R):F(z,!1)})}G(()=>{E.disabled=i()||l(),S.disabled=i(),x.disabled=!o(r)}),rr(E,a),J("keydown",E,v),J("click",S,h),J("submit",p,Oo(f)),k(e,p),et()}const Ui={open:!1,messageId:null,citations:[]};function Ic(){const{subscribe:e,set:t,update:n}=kt(Ui);function r(a,s){t({open:!0,messageId:a,citations:s})}function u(){t(Ui)}return{subscribe:e,openWithCitations:r,close:u}}Ic();const Ms={open:!1,messageId:null,segments:[],status:null};function z1(e,t){if(e.length!==t.length)return!1;for(let n=0;n{if(!l.open||!l.messageId)return l;const c=i.find(h=>h.id===l.messageId);if(!c)return Ms;const d=c.details?.reasoning??[],f=c.details?.reasoningStatus??null;return z1(d,l.segments)&&f===l.status?l:{...l,segments:d,status:f}})}return{subscribe:e,openWithDetails:r,openForMessage:u,close:a,syncFromMessages:s}}const Nc="tool",B1=["prompt_tokens","input_tokens","prompt","input","promptTokens","inputTokens"],j1=["completion_tokens","output_tokens","completion","output","completionTokens","outputTokens"],q1=["total_tokens","total","totalTokens"];function H1(e,t=Nc){const n=[],r={},u={};for(let a=0;a0;let c=0,d=a+1;for(;Oc(e[d],t);)c+=1,d+=1;const f=l?i.length:0,h=Math.max(f,c),v=h>0,p=W1(s.details?.usage);r[s.id]={used:v,count:h,tokens:p}}s.role!==t&&n.push(s)}return{visibleMessages:n,assistantToolUsage:r,messageIndexMap:u}}function Bi(e,t,n,r=Nc){const u=t[n];if(typeof u!="number")return[];const a=e[u];if(!a||a.role!=="assistant")return[];const s=[],i=Array.isArray(a.details?.toolCalls)?a.details?.toolCalls:[];let l=u+1;for(;Oc(e[l],r);){const c=e[l],d=c.details??{},f=i[s.length],v=(typeof d?.toolName=="string"?d.toolName:null)??Ps(f)??"Tool",p=typeof d?.toolStatus=="string"?d.toolStatus:null,w=typeof d?.toolResult=="string"?d.toolResult:null,y=typeof c.content=="string"?c.content:null,_=w??y??Is(f),A=Ns(f);s.push({id:c.id,name:v,status:p,input:A,result:_}),l+=1}return s.length===0&&i.length>0?i.forEach((c,d)=>{s.push({id:`${a.id}-metadata-${d}`,name:Ps(c)??`Tool ${d+1}`,status:null,input:Ns(c),result:Is(c)})}):s.length>0&&i.length>0&&s.forEach((c,d)=>{const f=i[d];f&&((!c.name||c.name==="Tool")&&(c.name=Ps(f)??c.name),c.input||(c.input=Ns(f)),c.result||(c.result=Is(f)))}),s}function Oc(e,t){return e?.role===t}function Ps(e){if(!e)return null;const t=e.name;if(typeof t=="string"&&t.trim().length>0)return t;const n=e.function;if(n&&typeof n=="object"){const r=n.name;if(typeof r=="string"&&r.trim().length>0)return r}return null}function Is(e){if(!e)return null;const t=e.result;if(typeof t=="string")return t;if(t&&typeof t=="object")try{return JSON.stringify(t,null,2)}catch(r){console.warn("Failed to stringify tool result",r)}const n=e.function;if(n&&typeof n=="object"){const r=n.arguments;if(typeof r=="string")return r;if(r&&typeof r=="object")try{return JSON.stringify(r,null,2)}catch(u){console.warn("Failed to stringify tool arguments",u)}}return null}function Ns(e){if(!e)return null;const t=e.arguments,n=ji(t);if(n)return n;const r=e.function;if(r&&typeof r=="object"){const u=ji(r.arguments);if(u)return u}return null}function W1(e){if(!e||typeof e!="object")return null;const t=e,n=Os(t,B1),r=Os(t,j1);let u=Os(t,q1);return u==null&&(n!=null||r!=null)&&(u=(n??0)+(r??0)),n==null&&r==null&&u==null?null:{inputTokens:n,outputTokens:r,totalTokens:u}}function Os(e,t){for(const n of t){if(!(n in e))continue;const r=V1(e[n]);if(r!=null)return r}return null}function V1(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function ji(e){if(typeof e=="string"){const t=e.trim();if(!t)return null;try{const n=JSON.parse(t);return typeof n=="string"?n:JSON.stringify(n,null,2)}catch{return t}}if(e&&typeof e=="object")try{return JSON.stringify(e,null,2)}catch(t){console.warn("Failed to stringify tool arguments",t,e)}return null}const qi={open:!1,messageId:null,tools:[]};function G1(){const{subscribe:e,set:t,update:n}=kt(qi);function r(i,l){t({open:!0,messageId:i,tools:l})}function u(i,l,c,d){const f=Bi(i,l,c,d);r(c,f)}function a(){t(qi)}function s(i,l,c){n(d=>{if(!d.open||!d.messageId)return d;const f=Bi(i,l,d.messageId,c);return f.length===d.tools.length&&f.every((v,p)=>{const w=d.tools[p];return w?.id===v.id&&w?.name===v.name&&w?.status===v.status&&w?.input===v.input&&w?.result===v.result})?d:{...d,tools:f}})}return{subscribe:e,openWithEntries:r,openForMessage:u,close:a,syncEntries:s}}const Hi={open:!1,messageId:null,details:null};function K1(){const{subscribe:e,set:t,update:n}=kt(Hi);function r(s,i){t({open:!0,messageId:s,details:i??{engine:null,maxResults:null,contextSize:null,searchPrompt:null}})}function u(s){const i=s.details?.webSearchConfig;if(i&&typeof i=="object"){const l={engine:i.engine??null,maxResults:i.maxResults??null,contextSize:i.contextSize??null,searchPrompt:i.searchPrompt??null};r(s.id,l)}else r(s.id,null)}function a(){t(Hi)}return{subscribe:e,openWithDetails:r,openForMessage:u,close:a}}var Z1=M('

No web citations found.

'),Y1=M('

'),J1=M('

'),X1=M(" "),Q1=M(" "),eh=M('
'),th=M('
  • '),nh=M('
      '),rh=M('

      '),uh=M('

      Web Citations

      ',1);function ah(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"citations",24,()=>[]);function s(){n("close")}rt();var i=Se(),l=me(i);{var c=d=>{cr(d,{get open(){return r()},labelledBy:"citations-modal-title",modalClass:"citations-modal",bodyClass:"citations-modal-body",closeLabel:"Close web citations",$$events:{close:s},children:(f,h)=>{var v=Se(),p=me(v);{var w=_=>{var A=Z1();k(_,A)},y=_=>{var A=nh();mt(A,5,a,jn,(E,g,S)=>{var x=th(),T=b(x),R=b(T);R.textContent=`Citation ${S+1}`;var z=C(R,2),F=C(T,2);{var I=Y=>{var W=Y1(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).title)))),k(Y,W)};$(F,Y=>{o(g),m(()=>o(g).title)&&Y(I)})}var K=C(F,2),N=b(K),Q=C(K,2);{var q=Y=>{var W=J1(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).content)))),k(Y,W)};$(Q,Y=>{o(g),m(()=>o(g).content)&&Y(q)})}var ae=C(Q,2);{var ie=Y=>{var W=eh(),O=b(W);{var V=H=>{var j=X1(),ce=b(j);G(()=>X(ce,`Start: ${o(g),m(()=>o(g).startIndex)??""}`)),k(H,j)};$(O,H=>{o(g),m(()=>o(g).startIndex!==void 0)&&H(V)})}var he=C(O,2);{var pe=H=>{var j=Q1(),ce=b(j);G(()=>X(ce,`End: ${o(g),m(()=>o(g).endIndex)??""}`)),k(H,j)};$(he,H=>{o(g),m(()=>o(g).endIndex!==void 0)&&H(pe)})}k(Y,W)};$(ae,Y=>{o(g),m(()=>o(g).startIndex!==void 0||o(g).endIndex!==void 0)&&Y(ie)})}G(()=>{oe(z,"href",(o(g),m(()=>o(g).url))),X(N,(o(g),m(()=>o(g).url)))}),k(E,x)}),k(_,A)};$(p,_=>{L(a()),m(()=>a().length===0)?_(w):_(y,!1)})}k(f,v)},$$slots:{default:!0,heading:(f,h)=>{var v=uh(),p=C(me(v),2);{var w=y=>{var _=rh(),A=b(_);G(()=>X(A,`Message ID: ${u()??""}`)),k(y,_)};$(p,y=>{u()&&y(w)})}k(f,v)}}})};$(l,d=>{r()&&d(c)})}k(e,i),et()}const Wi='',sh='',oh=2e3,ih="copy-code-button",Vi="copy-code-block";function lh(e){e.classList.add(Vi);const t=document.createElement("button");t.type="button",t.className=ih,t.setAttribute("aria-label","Copy code"),t.setAttribute("title","Copy code"),t.innerHTML=Wi;let n=null;const r=async()=>{const a=e.querySelector("code")?.textContent??e.textContent??"";if(a){if(!navigator?.clipboard?.writeText){console.warn("Clipboard API unavailable; cannot copy code block");return}try{await navigator.clipboard.writeText(a)}catch(s){console.error("Failed to copy code block",s);return}n!==null&&window.clearTimeout(n),t.classList.add("copied"),t.setAttribute("aria-label","Code copied"),t.innerHTML=sh,n=window.setTimeout(()=>{e.isConnected&&(t.classList.remove("copied"),t.setAttribute("aria-label","Copy code"),t.innerHTML=Wi,n=null)},oh)}};return t.addEventListener("click",r),e.appendChild(t),{cleanup:()=>{t.removeEventListener("click",r),n!==null&&window.clearTimeout(n),t.remove(),e.classList.remove(Vi)}}}function Gi(e,t){e.querySelectorAll("pre").forEach(r=>{t.has(r)||t.set(r,lh(r))}),Array.from(t.keys()).forEach(r=>{if(!e.contains(r)){const u=t.get(r);u&&(u.cleanup(),t.delete(r))}})}function mo(e){const t=new Map,n=new MutationObserver(()=>{Gi(e,t)});return n.observe(e,{childList:!0,subtree:!0}),Gi(e,t),{destroy:()=>{n.disconnect(),Array.from(t.values()).forEach(r=>r.cleanup()),t.clear()}}}const Ki={};function ch(e){let t=Ki[e];if(t)return t;t=Ki[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&d<=57343?u+="���":u+=String.fromCharCode(d),a+=6;continue}}if((i&248)===240&&a+91114111?u+="����":(f-=65536,u+=String.fromCharCode(55296+(f>>10),56320+(f&1023))),a+=9;continue}}u+="�"}return u})}ku.defaultChars=";/?:@&=+$,#";ku.componentChars="";const Zi={};function dh(e){let t=Zi[e];if(t)return t;t=Zi[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=dh(t);let u="";for(let a=0,s=e.length;a=55296&&i<=57343){if(i>=55296&&i<=56319&&a+1=56320&&l<=57343){u+=encodeURIComponent(e[a]+e[a+1]),a++;continue}}u+="%EF%BF%BD";continue}u+=encodeURIComponent(e[a])}return u}pa.defaultChars=";/?:@&=+$,-_.!~*'()#";pa.componentChars="-_.!~*'()";function qo(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Ya(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const fh=/^([a-z0-9.+-]+:)/i,ph=/:[0-9]*$/,hh=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,mh=["<",">",'"',"`"," ","\r",` +`," "],vh=["{","}","|","\\","^","`"].concat(mh),gh=["'"].concat(vh),Yi=["%","/","?",";","#"].concat(gh),Ji=["/","?","#"],bh=255,Xi=/^[+a-z0-9A-Z_-]{0,63}$/,_h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Qi={javascript:!0,"javascript:":!0},el={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Ho(e,t){if(e&&e instanceof Ya)return e;const n=new Ya;return n.parse(e,t),n}Ya.prototype.parse=function(e,t){let n,r,u,a=e;if(a=a.trim(),!t&&e.split("#").length===1){const c=hh.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let s=fh.exec(a);if(s&&(s=s[0],n=s.toLowerCase(),this.protocol=s,a=a.substr(s.length)),(t||s||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(u=a.substr(0,2)==="//",u&&!(s&&Qi[s])&&(a=a.substr(2),this.slashes=!0)),!Qi[s]&&(u||s&&!el[s])){let c=-1;for(let p=0;p127?A+="x":A+=_[E];if(!A.match(Xi)){const E=p.slice(0,w),g=p.slice(w+1),S=_.match(_h);S&&(E.push(S[1]),g.unshift(S[2])),g.length&&(a=g.join(".")+a),this.hostname=E.join(".");break}}}}this.hostname.length>bh&&(this.hostname=""),v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const i=a.indexOf("#");i!==-1&&(this.hash=a.substr(i),a=a.slice(0,i));const l=a.indexOf("?");return l!==-1&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),el[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Ya.prototype.parseHost=function(e){let t=ph.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const yh=Object.freeze(Object.defineProperty({__proto__:null,decode:ku,encode:pa,format:qo,parse:Ho},Symbol.toStringTag,{value:"Module"})),Lc=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Rc=/[\0-\x1F\x7F-\x9F]/,xh=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,Wo=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,$c=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,zc=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,kh=Object.freeze(Object.defineProperty({__proto__:null,Any:Lc,Cc:Rc,Cf:xh,P:Wo,S:$c,Z:zc},Symbol.toStringTag,{value:"Module"})),Eh=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),wh=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var Ls;const Sh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ah=(Ls=String.fromCodePoint)!==null&&Ls!==void 0?Ls:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function Ch(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Sh.get(e))!==null&&t!==void 0?t:e}var Lt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Lt||(Lt={}));const Dh=32;var yr;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(yr||(yr={}));function vo(e){return e>=Lt.ZERO&&e<=Lt.NINE}function Th(e){return e>=Lt.UPPER_A&&e<=Lt.UPPER_F||e>=Lt.LOWER_A&&e<=Lt.LOWER_F}function Fh(e){return e>=Lt.UPPER_A&&e<=Lt.UPPER_Z||e>=Lt.LOWER_A&&e<=Lt.LOWER_Z||vo(e)}function Mh(e){return e===Lt.EQUALS||Fh(e)}var It;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(It||(It={}));var gr;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(gr||(gr={}));class Ph{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=It.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=gr.Strict}startEntity(t){this.decodeMode=t,this.state=It.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case It.EntityStart:return t.charCodeAt(n)===Lt.NUM?(this.state=It.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=It.NamedEntity,this.stateNamedEntity(t,n));case It.NumericStart:return this.stateNumericStart(t,n);case It.NumericDecimal:return this.stateNumericDecimal(t,n);case It.NumericHex:return this.stateNumericHex(t,n);case It.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|Dh)===Lt.LOWER_X?(this.state=It.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=It.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,u){if(n!==r){const a=r-n;this.result=this.result*Math.pow(u,a)+parseInt(t.substr(n,a),u),this.consumed+=a}}stateNumericHex(t,n){const r=n;for(;n>14;for(;n>14,a!==0){if(s===Lt.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==gr.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,u=(r[n]&yr.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,u,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:u}=this;return this.emitCodePoint(n===1?u[t]&~yr.VALUE_LENGTH:u[t+1],r),n===3&&this.emitCodePoint(u[t+2],r),r}end(){var t;switch(this.state){case It.NamedEntity:return this.result!==0&&(this.decodeMode!==gr.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case It.NumericDecimal:return this.emitNumericEntity(0,2);case It.NumericHex:return this.emitNumericEntity(0,3);case It.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case It.EntityStart:return 0}}}function Uc(e){let t="";const n=new Ph(e,r=>t+=Ah(r));return function(u,a){let s=0,i=0;for(;(i=u.indexOf("&",i))>=0;){t+=u.slice(s,i),n.startEntity(a);const c=n.write(u,i+1);if(c<0){s=i+n.end();break}s=i+c,i=c===0?s+1:s}const l=t+u.slice(s);return t="",l}}function Ih(e,t,n,r){const u=(t&yr.BRANCH_LENGTH)>>7,a=t&yr.JUMP_TABLE;if(u===0)return a!==0&&r===a?n:-1;if(a){const l=r-a;return l<0||l>=u?-1:e[n+l]-1}let s=n,i=s+u-1;for(;s<=i;){const l=s+i>>>1,c=e[l];if(cr)i=l-1;else return e[l+u]}return-1}const Nh=Uc(Eh);Uc(wh);function Bc(e,t=gr.Legacy){return Nh(e,t)}function Oh(e){return Object.prototype.toString.call(e)}function Vo(e){return Oh(e)==="[object String]"}const Lh=Object.prototype.hasOwnProperty;function Rh(e,t){return Lh.call(e,t)}function ds(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){if(n){if(typeof n!="object")throw new TypeError(n+"must be object");Object.keys(n).forEach(function(r){e[r]=n[r]})}}),e}function jc(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function Go(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function Ja(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const qc=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,$h=/&([a-z#][a-z0-9]{1,31});/gi,zh=new RegExp(qc.source+"|"+$h.source,"gi"),Uh=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Bh(e,t){if(t.charCodeAt(0)===35&&Uh.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Go(r)?Ja(r):e}const n=Bc(e);return n!==e?n:e}function jh(e){return e.indexOf("\\")<0?e:e.replace(qc,"$1")}function Eu(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(zh,function(t,n,r){return n||Bh(t,r)})}const qh=/[&<>"]/,Hh=/[&<>"]/g,Wh={"&":"&","<":"<",">":">",'"':"""};function Vh(e){return Wh[e]}function Cr(e){return qh.test(e)?e.replace(Hh,Vh):e}const Gh=/[.?*+^$[\]\\(){}|-]/g;function Kh(e){return e.replace(Gh,"\\$&")}function pt(e){switch(e){case 9:case 32:return!0}return!1}function ta(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function na(e){return Wo.test(e)||$c.test(e)}function ra(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function fs(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Zh={mdurl:yh,ucmicro:kh},Yh=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:jc,assign:ds,escapeHtml:Cr,escapeRE:Kh,fromCodePoint:Ja,has:Rh,isMdAsciiPunct:ra,isPunctChar:na,isSpace:pt,isString:Vo,isValidEntityCode:Go,isWhiteSpace:ta,lib:Zh,normalizeReference:fs,unescapeAll:Eu,unescapeMd:jh},Symbol.toStringTag,{value:"Module"}));function Jh(e,t,n){let r,u,a,s;const i=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos32))return a;if(r===41){if(s===0)break;s--}u++}return t===u||s!==0||(a.str=Eu(e.slice(t,u)),a.pos=u,a.ok=!0),a}function Qh(e,t,n,r){let u,a=t;const s={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)s.str=r.str,s.marker=r.marker;else{if(a>=n)return s;let i=e.charCodeAt(a);if(i!==34&&i!==39&&i!==40)return s;t++,a++,i===40&&(i=41),s.marker=i}for(;a"+Cr(a.content)+""};Yn.code_block=function(e,t,n,r,u){const a=e[t];return""+Cr(e[t].content)+` +`};Yn.fence=function(e,t,n,r,u){const a=e[t],s=a.info?Eu(a.info).trim():"";let i="",l="";if(s){const d=s.split(/(\s+)/g);i=d[0],l=d.slice(2).join("")}let c;if(n.highlight?c=n.highlight(a.content,i,l)||Cr(a.content):c=Cr(a.content),c.indexOf("${c} +`}return`
      ${c}
      +`};Yn.image=function(e,t,n,r,u){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=u.renderInlineAsText(a.children,n,r),u.renderToken(e,t,n)};Yn.hardbreak=function(e,t,n){return n.xhtmlOut?`
      +`:`
      +`};Yn.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?`
      +`:`
      +`:` +`};Yn.text=function(e,t){return Cr(e[t].content)};Yn.html_block=function(e,t){return e[t].content};Yn.html_inline=function(e,t){return e[t].content};function Tu(){this.rules=ds({},Yn)}Tu.prototype.renderAttrs=function(t){let n,r,u;if(!t.attrs)return"";for(u="",n=0,r=t.attrs.length;n +`:">",a};Tu.prototype.renderInline=function(e,t,n){let r="";const u=this.rules;for(let a=0,s=e.length;a=0&&(r=this.attrs[n][1]),r};$n.prototype.attrJoin=function(t,n){const r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};function Hc(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}Hc.prototype.Token=$n;const tm=/\r\n?|\n/g,nm=/\0/g;function rm(e){let t;t=e.src.replace(tm,` +`),t=t.replace(nm,"�"),e.src=t}function um(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function am(e){const t=e.tokens;for(let n=0,r=t.length;n\s]/i.test(e)}function om(e){return/^<\/a\s*>/i.test(e)}function im(e){const t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n=0;s--){const i=u[s];if(i.type==="link_close"){for(s--;u[s].level!==i.level&&u[s].type!=="link_open";)s--;continue}if(i.type==="html_inline"&&(sm(i.content)&&a>0&&a--,om(i.content)&&a++),!(a>0)&&i.type==="text"&&e.md.linkify.test(i.content)){const l=i.content;let c=e.md.linkify.match(l);const d=[];let f=i.level,h=0;c.length>0&&c[0].index===0&&s>0&&u[s-1].type==="text_special"&&(c=c.slice(1));for(let v=0;vh){const S=new e.Token("text","",0);S.content=l.slice(h,_),S.level=f,d.push(S)}const A=new e.Token("link_open","a",1);A.attrs=[["href",w]],A.level=f++,A.markup="linkify",A.info="auto",d.push(A);const E=new e.Token("text","",0);E.content=y,E.level=f,d.push(E);const g=new e.Token("link_close","a",-1);g.level=--f,g.markup="linkify",g.info="auto",d.push(g),h=c[v].lastIndex}if(h=0;n--){const r=e[n];r.type==="text"&&!t&&(r.content=r.content.replace(cm,fm)),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function hm(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];r.type==="text"&&!t&&Wc.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function mm(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type==="inline"&&(lm.test(e.tokens[t].content)&&pm(e.tokens[t].children),Wc.test(e.tokens[t].content)&&hm(e.tokens[t].children))}const vm=/['"]/,tl=/['"]/g,nl="’";function Ea(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function gm(e,t){let n;const r=[];for(let u=0;u=0&&!(r[n].level<=s);n--);if(r.length=n+1,a.type!=="text")continue;let i=a.content,l=0,c=i.length;e:for(;l=0)p=i.charCodeAt(d.index-1);else for(n=u-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){p=e[n].content.charCodeAt(e[n].content.length-1);break}let w=32;if(l=48&&p<=57&&(h=f=!1),f&&h&&(f=y,h=_),!f&&!h){v&&(a.content=Ea(a.content,d.index,nl));continue}if(h)for(n=r.length-1;n>=0;n--){let g=r[n];if(r[n].level=0;t--)e.tokens[t].type!=="inline"||!vm.test(e.tokens[t].content)||gm(e.tokens[t].children,e)}function _m(e){let t,n;const r=e.tokens,u=r.length;for(let a=0;a0&&this.level++,this.tokens.push(r),r};Jn.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};Jn.prototype.skipEmptyLines=function(t){for(let n=this.lineMax;tn;)if(!pt(this.src.charCodeAt(--t)))return t+1;return t};Jn.prototype.skipChars=function(t,n){for(let r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t};Jn.prototype.getLines=function(t,n,r,u){if(t>=n)return"";const a=new Array(n-t);for(let s=0,i=t;ir?a[s]=new Array(l-r+1).join(" ")+this.src.slice(d,f):a[s]=this.src.slice(d,f)}return a.join("")};Jn.prototype.Token=$n;const ym=65536;function $s(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function rl(e){const t=[],n=e.length;let r=0,u=e.charCodeAt(r),a=!1,s=0,i="";for(;rn)return!1;let u=t+1;if(e.sCount[u]=4)return!1;let a=e.bMarks[u]+e.tShift[u];if(a>=e.eMarks[u])return!1;const s=e.src.charCodeAt(a++);if(s!==124&&s!==45&&s!==58||a>=e.eMarks[u])return!1;const i=e.src.charCodeAt(a++);if(i!==124&&i!==45&&i!==58&&!pt(i)||s===45&&pt(i))return!1;for(;a=4)return!1;c=rl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop();const f=c.length;if(f===0||f!==d.length)return!1;if(r)return!0;const h=e.parentType;e.parentType="table";const v=e.md.block.ruler.getRules("blockquote"),p=e.push("table_open","table",1),w=[t,0];p.map=w;const y=e.push("thead_open","thead",1);y.map=[t,t+1];const _=e.push("tr_open","tr",1);_.map=[t,t+1];for(let g=0;g=4||(c=rl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop(),E+=f-c.length,E>ym))break;if(u===t+2){const x=e.push("tbody_open","tbody",1);x.map=A=[t+2,0]}const S=e.push("tr_open","tr",1);S.map=[u,u+1];for(let x=0;x=4){r++,u=r;continue}break}e.line=u;const a=e.push("code_block","code",0);return a.content=e.getLines(t,u,4+e.blkIndent,!1)+` +`,a.map=[t,e.line],!0}function Em(e,t,n,r){let u=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||u+3>a)return!1;const s=e.src.charCodeAt(u);if(s!==126&&s!==96)return!1;let i=u;u=e.skipChars(u,s);let l=u-i;if(l<3)return!1;const c=e.src.slice(i,u),d=e.src.slice(u,a);if(s===96&&d.indexOf(String.fromCharCode(s))>=0)return!1;if(r)return!0;let f=t,h=!1;for(;f++,!(f>=n||(u=i=e.bMarks[f]+e.tShift[f],a=e.eMarks[f],u=4)&&(u=e.skipChars(u,s),!(u-i=4||e.src.charCodeAt(u)!==62)return!1;if(r)return!0;const i=[],l=[],c=[],d=[],f=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let v=!1,p;for(p=t;p=a)break;if(e.src.charCodeAt(u++)===62&&!E){let S=e.sCount[p]+1,x,T;e.src.charCodeAt(u)===32?(u++,S++,T=!1,x=!0):e.src.charCodeAt(u)===9?(x=!0,(e.bsCount[p]+S)%4===3?(u++,S++,T=!1):T=!0):x=!1;let R=S;for(i.push(e.bMarks[p]),e.bMarks[p]=u;u=a,l.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(x?1:0),c.push(e.sCount[p]),e.sCount[p]=R-S,d.push(e.tShift[p]),e.tShift[p]=u-e.bMarks[p];continue}if(v)break;let g=!1;for(let S=0,x=f.length;S";const _=[t,0];y.map=_,e.md.block.tokenize(e,t,p);const A=e.push("blockquote_close","blockquote",-1);A.markup=">",e.lineMax=s,e.parentType=h,_[1]=e.line;for(let E=0;E=4)return!1;let a=e.bMarks[t]+e.tShift[t];const s=e.src.charCodeAt(a++);if(s!==42&&s!==45&&s!==95)return!1;let i=1;for(;a=r)return-1;let a=e.src.charCodeAt(u++);if(a<48||a>57)return-1;for(;;){if(u>=r)return-1;if(a=e.src.charCodeAt(u++),a>=48&&a<=57){if(u-n>=10)return-1;continue}if(a===41||a===46)break;return-1}return u=4||e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(d=!0);let f,h,v;if((v=al(e,l))>=0){if(f=!0,s=e.bMarks[l]+e.tShift[l],h=Number(e.src.slice(s,v-1)),d&&h!==1)return!1}else if((v=ul(e,l))>=0)f=!1;else return!1;if(d&&e.skipSpaces(v)>=e.eMarks[l])return!1;if(r)return!0;const p=e.src.charCodeAt(v-1),w=e.tokens.length;f?(i=e.push("ordered_list_open","ol",1),h!==1&&(i.attrs=[["start",h]])):i=e.push("bullet_list_open","ul",1);const y=[l,0];i.map=y,i.markup=String.fromCharCode(p);let _=!1;const A=e.md.block.ruler.getRules("list"),E=e.parentType;for(e.parentType="list";l=u?T=1:T=S-g,T>4&&(T=1);const R=g+T;i=e.push("list_item_open","li",1),i.markup=String.fromCharCode(p);const z=[l,0];i.map=z,f&&(i.info=e.src.slice(s,v-1));const F=e.tight,I=e.tShift[l],K=e.sCount[l],N=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=R,e.tight=!0,e.tShift[l]=x-e.bMarks[l],e.sCount[l]=S,x>=u&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,!0),(!e.tight||_)&&(c=!1),_=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=N,e.tShift[l]=I,e.sCount[l]=K,e.tight=F,i=e.push("list_item_close","li",-1),i.markup=String.fromCharCode(p),l=e.line,z[1]=l,l>=n||e.sCount[l]=4)break;let Q=!1;for(let q=0,ae=A.length;q=4||e.src.charCodeAt(u)!==91)return!1;function i(A){const E=e.lineMax;if(A>=E||e.isEmpty(A))return null;let g=!1;if(e.sCount[A]-e.blkIndent>3&&(g=!0),e.sCount[A]<0&&(g=!0),!g){const T=e.md.block.ruler.getRules("reference"),R=e.parentType;e.parentType="reference";let z=!1;for(let F=0,I=T.length;F"u"&&(e.env.references={}),typeof e.env.references[_]>"u"&&(e.env.references[_]={title:y,href:f}),e.line=s),!0):!1}const Tm=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Fm="[a-zA-Z_:][a-zA-Z0-9:._-]*",Mm="[^\"'=<>`\\x00-\\x20]+",Pm="'[^']*'",Im='"[^"]*"',Nm="(?:"+Mm+"|"+Pm+"|"+Im+")",Om="(?:\\s+"+Fm+"(?:\\s*=\\s*"+Nm+")?)",Vc="<[A-Za-z][A-Za-z0-9\\-]*"+Om+"*\\s*\\/?>",Gc="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Lm="",Rm="<[?][\\s\\S]*?[?]>",$m="]*>",zm="",Um=new RegExp("^(?:"+Vc+"|"+Gc+"|"+Lm+"|"+Rm+"|"+$m+"|"+zm+")"),Bm=new RegExp("^(?:"+Vc+"|"+Gc+")"),iu=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Bm.source+"\\s*$"),/^$/,!1]];function jm(e,t,n,r){let u=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(u)!==60)return!1;let s=e.src.slice(u,a),i=0;for(;i=4)return!1;let s=e.src.charCodeAt(u);if(s!==35||u>=a)return!1;let i=1;for(s=e.src.charCodeAt(++u);s===35&&u6||uu&&pt(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(i),1);c.markup="########".slice(0,i),c.map=[t,e.line];const d=e.push("inline","",0);d.content=e.src.slice(u,a).trim(),d.map=[t,e.line],d.children=[];const f=e.push("heading_close","h"+String(i),-1);return f.markup="########".slice(0,i),!0}function Hm(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const u=e.parentType;e.parentType="paragraph";let a=0,s,i=t+1;for(;i3)continue;if(e.sCount[i]>=e.blkIndent){let v=e.bMarks[i]+e.tShift[i];const p=e.eMarks[i];if(v=p))){a=s===61?1:2;break}}if(e.sCount[i]<0)continue;let h=!1;for(let v=0,p=r.length;v3||e.sCount[a]<0)continue;let c=!1;for(let d=0,f=r.length;d=n||e.sCount[s]=a){e.line=n;break}const l=e.line;let c=!1;for(let d=0;d=e.line)throw new Error("block rule didn't increment state.line");break}if(!c)throw new Error("none of the block rules matched");e.tight=!i,e.isEmpty(e.line-1)&&(i=!0),s=e.line,s0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],u={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(u),r};ha.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),u=e>0?this.src.charCodeAt(e-1):32;let a=e;for(;a0)return!1;const n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const u=e.pending.match(Km);if(!u)return!1;const a=u[1],s=e.md.linkify.matchAtStart(e.src.slice(n-a.length));if(!s)return!1;let i=s.url;if(i.length<=a.length)return!1;i=i.replace(/\*+$/,"");const l=e.md.normalizeLink(i);if(!e.md.validateLink(l))return!1;if(!t){e.pending=e.pending.slice(0,-a.length);const c=e.push("link_open","a",1);c.attrs=[["href",l]],c.markup="linkify",c.info="auto";const d=e.push("text","",0);d.content=e.md.normalizeLinkText(i);const f=e.push("link_close","a",-1);f.markup="linkify",f.info="auto"}return e.pos+=i.length-a.length,!0}function Ym(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const r=e.pending.length-1,u=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let a=r-1;for(;a>=1&&e.pending.charCodeAt(a-1)===32;)a--;e.pending=e.pending.slice(0,a),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n?@[]^_`{|}~-".split("").forEach(function(e){Zo[e.charCodeAt(0)]=1});function Jm(e,t){let n=e.pos;const r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let u=e.src.charCodeAt(n);if(u===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&u<=56319&&n+1=56320&&i<=57343&&(a+=e.src[n+1],n++)}const s="\\"+a;if(!t){const i=e.push("text_special","",0);u<256&&Zo[u]!==0?i.content=a:i.content=s,i.markup=s,i.info="escape"}return e.pos=n+1,!0}function Xm(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;const u=n;n++;const a=e.posMax;for(;n=0;r--){const u=t[r];if(u.marker!==95&&u.marker!==42||u.end===-1)continue;const a=t[u.end],s=r>0&&t[r-1].end===u.end+1&&t[r-1].marker===u.marker&&t[r-1].token===u.token-1&&t[u.end+1].token===a.token+1,i=String.fromCharCode(u.marker),l=e.tokens[u.token];l.type=s?"strong_open":"em_open",l.tag=s?"strong":"em",l.nesting=1,l.markup=s?i+i:i,l.content="";const c=e.tokens[a.token];c.type=s?"strong_close":"em_close",c.tag=s?"strong":"em",c.nesting=-1,c.markup=s?i+i:i,c.content="",s&&(e.tokens[t[r-1].token].content="",e.tokens[t[u.end+1].token].content="",r--)}}function nv(e){const t=e.tokens_meta,n=e.tokens_meta.length;ol(e,e.delimiters);for(let r=0;r=f)return!1;if(l=p,u=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),u.ok){for(s=e.md.normalizeLink(u.str),e.md.validateLink(s)?p=u.pos:s="",l=p;p=f||e.src.charCodeAt(p)!==41)&&(c=!0),p++}if(c){if(typeof e.env.references>"u")return!1;if(p=0?r=e.src.slice(l,p++):p=v+1):p=v+1,r||(r=e.src.slice(h,v)),a=e.env.references[fs(r)],!a)return e.pos=d,!1;s=a.href,i=a.title}if(!t){e.pos=h,e.posMax=v;const w=e.push("link_open","a",1),y=[["href",s]];w.attrs=y,i&&y.push(["title",i]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=p,e.posMax=f,!0}function uv(e,t){let n,r,u,a,s,i,l,c,d="";const f=e.pos,h=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const v=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(p<0)return!1;if(a=p+1,a=h)return!1;for(c=a,i=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),i.ok&&(d=e.md.normalizeLink(i.str),e.md.validateLink(d)?a=i.pos:d=""),c=a;a=h||e.src.charCodeAt(a)!==41)return e.pos=f,!1;a++}else{if(typeof e.env.references>"u")return!1;if(a=0?u=e.src.slice(c,a++):a=p+1):a=p+1,u||(u=e.src.slice(v,p)),s=e.env.references[fs(u)],!s)return e.pos=f,!1;d=s.href,l=s.title}if(!t){r=e.src.slice(v,p);const w=[];e.md.inline.parse(r,e.md,e.env,w);const y=e.push("image","img",0),_=[["src",d],["alt",""]];y.attrs=_,y.children=w,y.content=r,l&&_.push(["title",l])}return e.pos=a,e.posMax=h,!0}const av=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,sv=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function ov(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;const r=e.pos,u=e.posMax;for(;;){if(++n>=u)return!1;const s=e.src.charCodeAt(n);if(s===60)return!1;if(s===62)break}const a=e.src.slice(r+1,n);if(sv.test(a)){const s=e.md.normalizeLink(a);if(!e.md.validateLink(s))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",s]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}if(av.test(a)){const s=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(s))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",s]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}return!1}function iv(e){return/^\s]/i.test(e)}function lv(e){return/^<\/a\s*>/i.test(e)}function cv(e){const t=e|32;return t>=97&&t<=122}function dv(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;const u=e.src.charCodeAt(r+1);if(u!==33&&u!==63&&u!==47&&!cv(u))return!1;const a=e.src.slice(r).match(Um);if(!a)return!1;if(!t){const s=e.push("html_inline","",0);s.content=a[0],iv(s.content)&&e.linkLevel++,lv(s.content)&&e.linkLevel--}return e.pos+=a[0].length,!0}const fv=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,pv=/^&([a-z][a-z0-9]{1,31});/i;function hv(e,t){const n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){const a=e.src.slice(n).match(fv);if(a){if(!t){const s=a[1][0].toLowerCase()==="x"?parseInt(a[1].slice(1),16):parseInt(a[1],10),i=e.push("text_special","",0);i.content=Go(s)?Ja(s):Ja(65533),i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}else{const a=e.src.slice(n).match(pv);if(a){const s=Bc(a[0]);if(s!==a[0]){if(!t){const i=e.push("text_special","",0);i.content=s,i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}}return!1}function il(e){const t={},n=e.length;if(!n)return;let r=0,u=-2;const a=[];for(let s=0;sl;c-=a[c]+1){const f=e[c];if(f.marker===i.marker&&f.open&&f.end<0){let h=!1;if((f.close||i.open)&&(f.length+i.length)%3===0&&(f.length%3!==0||i.length%3!==0)&&(h=!0),!h){const v=c>0&&!e[c-1].open?a[c-1]+1:0;a[s]=s-c+v,a[c]=v,i.open=!1,f.end=s,f.close=!1,d=-1,u=-2;break}}}d!==-1&&(t[i.marker][(i.open?3:0)+(i.length||0)%3]=d)}}function mv(e){const t=e.tokens_meta,n=e.tokens_meta.length;il(e.delimiters);for(let r=0;r0&&r++,u[t].type==="text"&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;s||e.pos++,a[t]=e.pos};ma.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,u=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(s){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};ma.prototype.parse=function(e,t,n,r){const u=new this.State(e,t,n,r);this.tokenize(u);const a=this.ruler2.getRules(""),s=a.length;for(let i=0;i|$))",t.tpl_email_fuzzy="(^|"+n+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}function go(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){n&&Object.keys(n).forEach(function(r){e[r]=n[r]})}),e}function hs(e){return Object.prototype.toString.call(e)}function bv(e){return hs(e)==="[object String]"}function _v(e){return hs(e)==="[object Object]"}function yv(e){return hs(e)==="[object RegExp]"}function ll(e){return hs(e)==="[object Function]"}function xv(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const Yc={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function kv(e){return Object.keys(e||{}).reduce(function(t,n){return t||Yc.hasOwnProperty(n)},!1)}const Ev={"http:":{validate:function(e,t,n){const r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){const r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},wv="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Sv="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Av(e){e.__index__=-1,e.__text_cache__=""}function Cv(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function cl(){return function(e,t){t.normalize(e)}}function Xa(e){const t=e.re=gv(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(wv),n.push(t.src_xn),t.src_tlds=n.join("|");function r(i){return i.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const u=[];e.__compiled__={};function a(i,l){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+l)}Object.keys(e.__schemas__).forEach(function(i){const l=e.__schemas__[i];if(l===null)return;const c={validate:null,link:null};if(e.__compiled__[i]=c,_v(l)){yv(l.validate)?c.validate=Cv(l.validate):ll(l.validate)?c.validate=l.validate:a(i,l),ll(l.normalize)?c.normalize=l.normalize:l.normalize?a(i,l):c.normalize=cl();return}if(bv(l)){u.push(i);return}a(i,l)}),u.forEach(function(i){e.__compiled__[e.__schemas__[i]]&&(e.__compiled__[i].validate=e.__compiled__[e.__schemas__[i]].validate,e.__compiled__[i].normalize=e.__compiled__[e.__schemas__[i]].normalize)}),e.__compiled__[""]={validate:null,normalize:cl()};const s=Object.keys(e.__compiled__).filter(function(i){return i.length>0&&e.__compiled__[i]}).map(xv).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),Av(e)}function Dv(e,t){const n=e.__index__,r=e.__last_index__,u=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=u,this.text=u,this.url=u}function bo(e,t){const n=new Dv(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function _n(e,t){if(!(this instanceof _n))return new _n(e,t);t||kv(e)&&(t=e,e={}),this.__opts__=go({},Yc,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=go({},Ev,e),this.__compiled__={},this.__tlds__=Sv,this.__tlds_replaced__=!1,this.re={},Xa(this)}_n.prototype.add=function(t,n){return this.__schemas__[t]=n,Xa(this),this};_n.prototype.set=function(t){return this.__opts__=go(this.__opts__,t),this};_n.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let n,r,u,a,s,i,l,c,d;if(this.re.schema_test.test(t)){for(l=this.re.schema_search,l.lastIndex=0;(n=l.exec(t))!==null;)if(a=this.testSchemaAt(t,n[2],l.lastIndex),a){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+a;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=t.search(this.re.host_fuzzy_test),c>=0&&(this.__index__<0||c=0&&(u=t.match(this.re.email_fuzzy))!==null&&(s=u.index+u[1].length,i=u.index+u[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=i))),this.__index__>=0};_n.prototype.pretest=function(t){return this.re.pretest.test(t)};_n.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0};_n.prototype.match=function(t){const n=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(n.push(bo(this,r)),r=this.__last_index__);let u=r?t.slice(r):t;for(;this.test(u);)n.push(bo(this,r)),u=u.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};_n.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const n=this.re.schema_at_start.exec(t);if(!n)return null;const r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,bo(this,0)):null};_n.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,u,a){return r!==a[u-1]}).reverse(),Xa(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Xa(this),this)};_n.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};_n.prototype.onCompile=function(){};const gu=2147483647,qn=36,Yo=1,ua=26,Tv=38,Fv=700,Jc=72,Xc=128,Qc="-",Mv=/^xn--/,Pv=/[^\0-\x7F]/,Iv=/[\x2E\u3002\uFF0E\uFF61]/g,Nv={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Bs=qn-Yo,Hn=Math.floor,js=String.fromCharCode;function mr(e){throw new RangeError(Nv[e])}function Ov(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}function ed(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(Iv,".");const u=e.split("."),a=Ov(u,t).join(".");return r+a}function td(e){const t=[];let n=0;const r=e.length;for(;n=55296&&u<=56319&&nString.fromCodePoint(...e),Rv=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:qn},dl=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},nd=function(e,t,n){let r=0;for(e=n?Hn(e/Fv):e>>1,e+=Hn(e/t);e>Bs*ua>>1;r+=qn)e=Hn(e/Bs);return Hn(r+(Bs+1)*e/(e+Tv))},rd=function(e){const t=[],n=e.length;let r=0,u=Xc,a=Jc,s=e.lastIndexOf(Qc);s<0&&(s=0);for(let i=0;i=128&&mr("not-basic"),t.push(e.charCodeAt(i));for(let i=s>0?s+1:0;i=n&&mr("invalid-input");const h=Rv(e.charCodeAt(i++));h>=qn&&mr("invalid-input"),h>Hn((gu-r)/d)&&mr("overflow"),r+=h*d;const v=f<=a?Yo:f>=a+ua?ua:f-a;if(hHn(gu/p)&&mr("overflow"),d*=p}const c=t.length+1;a=nd(r-l,c,l==0),Hn(r/c)>gu-u&&mr("overflow"),u+=Hn(r/c),r%=c,t.splice(r++,0,u)}return String.fromCodePoint(...t)},ud=function(e){const t=[];e=td(e);const n=e.length;let r=Xc,u=0,a=Jc;for(const l of e)l<128&&t.push(js(l));const s=t.length;let i=s;for(s&&t.push(Qc);i=r&&dHn((gu-u)/c)&&mr("overflow"),u+=(l-r)*c,r=l;for(const d of e)if(dgu&&mr("overflow"),d===r){let f=u;for(let h=qn;;h+=qn){const v=h<=a?Yo:h>=a+ua?ua:h-a;if(f=0))try{t.hostname=ad.toASCII(t.hostname)}catch{}return pa(qo(t))}function Kv(e){const t=Ho(e,!0);if(t.hostname&&(!t.protocol||sd.indexOf(t.protocol)>=0))try{t.hostname=ad.toUnicode(t.hostname)}catch{}return ku(qo(t),ku.defaultChars+"%")}function An(e,t){if(!(this instanceof An))return new An(e,t);t||Vo(e)||(t=e||{},e="default"),this.inline=new ma,this.block=new ps,this.core=new Ko,this.renderer=new Tu,this.linkify=new _n,this.validateLink=Vv,this.normalizeLink=Gv,this.normalizeLinkText=Kv,this.utils=Yh,this.helpers=ds({},em),this.options={},this.configure(e),t&&this.set(t)}An.prototype.set=function(e){return ds(this.options,e),this};An.prototype.configure=function(e){const t=this;if(Vo(e)){const n=e;if(e=qv[n],!e)throw new Error('Wrong `markdown-it` preset "'+n+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};An.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(u){n=n.concat(this[u].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(u){return n.indexOf(u)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};An.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(u){n=n.concat(this[u].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(u){return n.indexOf(u)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};An.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};An.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens};An.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};An.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens};An.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */const{entries:od,setPrototypeOf:fl,isFrozen:Zv,getPrototypeOf:Yv,getOwnPropertyDescriptor:Jv}=Object;let{freeze:ln,seal:Cn,create:id}=Object,{apply:_o,construct:yo}=typeof Reflect<"u"&&Reflect;ln||(ln=function(t){return t});Cn||(Cn=function(t){return t});_o||(_o=function(t,n){for(var r=arguments.length,u=new Array(r>2?r-2:0),a=2;a1?n-1:0),u=1;u1?n-1:0),u=1;u2&&arguments[2]!==void 0?arguments[2]:$a;fl&&fl(e,null);let r=t.length;for(;r--;){let u=t[r];if(typeof u=="string"){const a=n(u);a!==u&&(Zv(t)||(t[r]=a),u=a)}e[u]=!0}return e}function r2(e){for(let t=0;t/gm),i2=Cn(/\$\{[\w\W]*/gm),l2=Cn(/^data-[\-\w.\u00B7-\uFFFF]+$/),c2=Cn(/^aria-[\-\w]+$/),ld=Cn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),d2=Cn(/^(?:\w+script|data):/i),f2=Cn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),cd=Cn(/^html$/i),p2=Cn(/^[a-z][.\w]*(-[.\w]+)+$/i);var bl=Object.freeze({__proto__:null,ARIA_ATTR:c2,ATTR_WHITESPACE:f2,CUSTOM_ELEMENT:p2,DATA_ATTR:l2,DOCTYPE_NAME:cd,ERB_EXPR:o2,IS_ALLOWED_URI:ld,IS_SCRIPT_OR_DATA:d2,MUSTACHE_EXPR:s2,TMPLIT_EXPR:i2});const Uu={element:1,text:3,progressingInstruction:7,comment:8,document:9},h2=function(){return typeof window>"u"?null:window},m2=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const u="data-tt-policy-suffix";n&&n.hasAttribute(u)&&(r=n.getAttribute(u));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},_l=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function dd(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h2();const t=se=>dd(se);if(t.version="3.2.7",t.removed=[],!e||!e.document||e.document.nodeType!==Uu.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const r=n,u=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:i,Element:l,NodeFilter:c,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:f,DOMParser:h,trustedTypes:v}=e,p=l.prototype,w=zu(p,"cloneNode"),y=zu(p,"remove"),_=zu(p,"nextSibling"),A=zu(p,"childNodes"),E=zu(p,"parentNode");if(typeof s=="function"){const se=n.createElement("template");se.content&&se.content.ownerDocument&&(n=se.content.ownerDocument)}let g,S="";const{implementation:x,createNodeIterator:T,createDocumentFragment:R,getElementsByTagName:z}=n,{importNode:F}=r;let I=_l();t.isSupported=typeof od=="function"&&typeof E=="function"&&x&&x.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:K,ERB_EXPR:N,TMPLIT_EXPR:Q,DATA_ATTR:q,ARIA_ATTR:ae,IS_SCRIPT_OR_DATA:ie,ATTR_WHITESPACE:Y,CUSTOM_ELEMENT:W}=bl;let{IS_ALLOWED_URI:O}=bl,V=null;const he=Ke({},[...hl,...Ws,...Vs,...Gs,...ml]);let pe=null;const H=Ke({},[...vl,...Ks,...gl,...Aa]);let j=Object.seal(id(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ce=null,ee=null,De=!0,Z=!0,B=!1,ye=!0,Me=!1,Re=!0,We=!1,Ae=!1,tt=!1,_e=!1,te=!1,Ee=!1,ge=!0,Te=!1;const $e="user-content-";let ue=!0,ve=!1,xe={},we=null;const be=Ke({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Oe=null;const Ce=Ke({},["audio","video","img","source","image","track"]);let Le=null;const Be=Ke({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",je="http://www.w3.org/2000/svg",Pe="http://www.w3.org/1999/xhtml";let ut=Pe,Rt=!1,qt=null;const Zt=Ke({},[Ve,je,Pe],qs);let $t=Ke({},["mi","mo","mn","ms","mtext"]),Yt=Ke({},["annotation-xml"]);const nt=Ke({},["title","style","font","a","script"]);let Ge=null;const Ct=["application/xhtml+xml","text/html"],Jt="text/html";let de=null,Ie=null;const vt=n.createElement("form"),Mt=function(P){return P instanceof RegExp||P instanceof Function},Tt=function(){let P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ie&&Ie===P)){if((!P||typeof P!="object")&&(P={}),P=tr(P),Ge=Ct.indexOf(P.PARSER_MEDIA_TYPE)===-1?Jt:P.PARSER_MEDIA_TYPE,de=Ge==="application/xhtml+xml"?qs:$a,V=Mn(P,"ALLOWED_TAGS")?Ke({},P.ALLOWED_TAGS,de):he,pe=Mn(P,"ALLOWED_ATTR")?Ke({},P.ALLOWED_ATTR,de):H,qt=Mn(P,"ALLOWED_NAMESPACES")?Ke({},P.ALLOWED_NAMESPACES,qs):Zt,Le=Mn(P,"ADD_URI_SAFE_ATTR")?Ke(tr(Be),P.ADD_URI_SAFE_ATTR,de):Be,Oe=Mn(P,"ADD_DATA_URI_TAGS")?Ke(tr(Ce),P.ADD_DATA_URI_TAGS,de):Ce,we=Mn(P,"FORBID_CONTENTS")?Ke({},P.FORBID_CONTENTS,de):be,ce=Mn(P,"FORBID_TAGS")?Ke({},P.FORBID_TAGS,de):tr({}),ee=Mn(P,"FORBID_ATTR")?Ke({},P.FORBID_ATTR,de):tr({}),xe=Mn(P,"USE_PROFILES")?P.USE_PROFILES:!1,De=P.ALLOW_ARIA_ATTR!==!1,Z=P.ALLOW_DATA_ATTR!==!1,B=P.ALLOW_UNKNOWN_PROTOCOLS||!1,ye=P.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=P.SAFE_FOR_TEMPLATES||!1,Re=P.SAFE_FOR_XML!==!1,We=P.WHOLE_DOCUMENT||!1,_e=P.RETURN_DOM||!1,te=P.RETURN_DOM_FRAGMENT||!1,Ee=P.RETURN_TRUSTED_TYPE||!1,tt=P.FORCE_BODY||!1,ge=P.SANITIZE_DOM!==!1,Te=P.SANITIZE_NAMED_PROPS||!1,ue=P.KEEP_CONTENT!==!1,ve=P.IN_PLACE||!1,O=P.ALLOWED_URI_REGEXP||ld,ut=P.NAMESPACE||Pe,$t=P.MATHML_TEXT_INTEGRATION_POINTS||$t,Yt=P.HTML_INTEGRATION_POINTS||Yt,j=P.CUSTOM_ELEMENT_HANDLING||{},P.CUSTOM_ELEMENT_HANDLING&&Mt(P.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=P.CUSTOM_ELEMENT_HANDLING.tagNameCheck),P.CUSTOM_ELEMENT_HANDLING&&Mt(P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),P.CUSTOM_ELEMENT_HANDLING&&typeof P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(j.allowCustomizedBuiltInElements=P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(Z=!1),te&&(_e=!0),xe&&(V=Ke({},ml),pe=[],xe.html===!0&&(Ke(V,hl),Ke(pe,vl)),xe.svg===!0&&(Ke(V,Ws),Ke(pe,Ks),Ke(pe,Aa)),xe.svgFilters===!0&&(Ke(V,Vs),Ke(pe,Ks),Ke(pe,Aa)),xe.mathMl===!0&&(Ke(V,Gs),Ke(pe,gl),Ke(pe,Aa))),P.ADD_TAGS&&(V===he&&(V=tr(V)),Ke(V,P.ADD_TAGS,de)),P.ADD_ATTR&&(pe===H&&(pe=tr(pe)),Ke(pe,P.ADD_ATTR,de)),P.ADD_URI_SAFE_ATTR&&Ke(Le,P.ADD_URI_SAFE_ATTR,de),P.FORBID_CONTENTS&&(we===be&&(we=tr(we)),Ke(we,P.FORBID_CONTENTS,de)),ue&&(V["#text"]=!0),We&&Ke(V,["html","head","body"]),V.table&&(Ke(V,["tbody"]),delete ce.tbody),P.TRUSTED_TYPES_POLICY){if(typeof P.TRUSTED_TYPES_POLICY.createHTML!="function")throw $u('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof P.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw $u('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');g=P.TRUSTED_TYPES_POLICY,S=g.createHTML("")}else g===void 0&&(g=m2(v,u)),g!==null&&typeof S=="string"&&(S=g.createHTML(""));ln&&ln(P),Ie=P}},zt=Ke({},[...Ws,...Vs,...u2]),Yr=Ke({},[...Gs,...a2]),dr=function(P){let re=E(P);(!re||!re.tagName)&&(re={namespaceURI:ut,tagName:"template"});const ke=$a(P.tagName),Fe=$a(re.tagName);return qt[P.namespaceURI]?P.namespaceURI===je?re.namespaceURI===Pe?ke==="svg":re.namespaceURI===Ve?ke==="svg"&&(Fe==="annotation-xml"||$t[Fe]):!!zt[ke]:P.namespaceURI===Ve?re.namespaceURI===Pe?ke==="math":re.namespaceURI===je?ke==="math"&&Yt[Fe]:!!Yr[ke]:P.namespaceURI===Pe?re.namespaceURI===je&&!Yt[Fe]||re.namespaceURI===Ve&&!$t[Fe]?!1:!Yr[ke]&&(nt[ke]||!zt[ke]):!!(Ge==="application/xhtml+xml"&&qt[P.namespaceURI]):!1},ze=function(P){Lu(t.removed,{element:P});try{E(P).removeChild(P)}catch{y(P)}},ot=function(P,re){try{Lu(t.removed,{attribute:re.getAttributeNode(P),from:re})}catch{Lu(t.removed,{attribute:null,from:re})}if(re.removeAttribute(P),P==="is")if(_e||te)try{ze(re)}catch{}else try{re.setAttribute(P,"")}catch{}},Pt=function(P){let re=null,ke=null;if(tt)P=""+P;else{const Ue=Hs(P,/^[\r\n\t ]+/);ke=Ue&&Ue[0]}Ge==="application/xhtml+xml"&&ut===Pe&&(P=''+P+"");const Fe=g?g.createHTML(P):P;if(ut===Pe)try{re=new h().parseFromString(Fe,Ge)}catch{}if(!re||!re.documentElement){re=x.createDocument(ut,"template",null);try{re.documentElement.innerHTML=Rt?S:Fe}catch{}}const qe=re.body||re.documentElement;return P&&ke&&qe.insertBefore(n.createTextNode(ke),qe.childNodes[0]||null),ut===Pe?z.call(re,We?"html":"body")[0]:We?re.documentElement:qe},_t=function(P){return T.call(P.ownerDocument||P,P,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Xt=function(P){return P instanceof f&&(typeof P.nodeName!="string"||typeof P.textContent!="string"||typeof P.removeChild!="function"||!(P.attributes instanceof d)||typeof P.removeAttribute!="function"||typeof P.setAttribute!="function"||typeof P.namespaceURI!="string"||typeof P.insertBefore!="function"||typeof P.hasChildNodes!="function")},Ut=function(P){return typeof i=="function"&&P instanceof i};function yt(se,P,re){Sa(se,ke=>{ke.call(t,P,re,Ie)})}const vn=function(P){let re=null;if(yt(I.beforeSanitizeElements,P,null),Xt(P))return ze(P),!0;const ke=de(P.nodeName);if(yt(I.uponSanitizeElement,P,{tagName:ke,allowedTags:V}),Re&&P.hasChildNodes()&&!Ut(P.firstElementChild)&&rn(/<[/\w!]/g,P.innerHTML)&&rn(/<[/\w!]/g,P.textContent)||P.nodeType===Uu.progressingInstruction||Re&&P.nodeType===Uu.comment&&rn(/<[/\w]/g,P.data))return ze(P),!0;if(!V[ke]||ce[ke]){if(!ce[ke]&&Tr(ke)&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,ke)||j.tagNameCheck instanceof Function&&j.tagNameCheck(ke)))return!1;if(ue&&!we[ke]){const Fe=E(P)||P.parentNode,qe=A(P)||P.childNodes;if(qe&&Fe){const Ue=qe.length;for(let st=Ue-1;st>=0;--st){const gt=w(qe[st],!0);gt.__removalCount=(P.__removalCount||0)+1,Fe.insertBefore(gt,_(P))}}}return ze(P),!0}return P instanceof l&&!dr(P)||(ke==="noscript"||ke==="noembed"||ke==="noframes")&&rn(/<\/no(script|embed|frames)/i,P.innerHTML)?(ze(P),!0):(Me&&P.nodeType===Uu.text&&(re=P.textContent,Sa([K,N,Q],Fe=>{re=Ru(re,Fe," ")}),P.textContent!==re&&(Lu(t.removed,{element:P.cloneNode()}),P.textContent=re)),yt(I.afterSanitizeElements,P,null),!1)},fr=function(P,re,ke){if(ge&&(re==="id"||re==="name")&&(ke in n||ke in vt))return!1;if(!(Z&&!ee[re]&&rn(q,re))){if(!(De&&rn(ae,re))){if(!pe[re]||ee[re]){if(!(Tr(P)&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,P)||j.tagNameCheck instanceof Function&&j.tagNameCheck(P))&&(j.attributeNameCheck instanceof RegExp&&rn(j.attributeNameCheck,re)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(re,P))||re==="is"&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,ke)||j.tagNameCheck instanceof Function&&j.tagNameCheck(ke))))return!1}else if(!Le[re]){if(!rn(O,Ru(ke,Y,""))){if(!((re==="src"||re==="xlink:href"||re==="href")&&P!=="script"&&e2(ke,"data:")===0&&Oe[P])){if(!(B&&!rn(ie,Ru(ke,Y,"")))){if(ke)return!1}}}}}}return!0},Tr=function(P){return P!=="annotation-xml"&&Hs(P,W)},Jr=function(P){yt(I.beforeSanitizeAttributes,P,null);const{attributes:re}=P;if(!re||Xt(P))return;const ke={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:pe,forceKeepAttr:void 0};let Fe=re.length;for(;Fe--;){const qe=re[Fe],{name:Ue,namespaceURI:st,value:gt}=qe,Je=de(Ue),it=gt;let Ye=Ue==="value"?it:t2(it);if(ke.attrName=Je,ke.attrValue=Ye,ke.keepAttr=!0,ke.forceKeepAttr=void 0,yt(I.uponSanitizeAttribute,P,ke),Ye=ke.attrValue,Te&&(Je==="id"||Je==="name")&&(ot(Ue,P),Ye=$e+Ye),Re&&rn(/((--!?|])>)|<\/(style|title|textarea)/i,Ye)){ot(Ue,P);continue}if(Je==="attributename"&&Hs(Ye,"href")){ot(Ue,P);continue}if(ke.forceKeepAttr)continue;if(!ke.keepAttr){ot(Ue,P);continue}if(!ye&&rn(/\/>/i,Ye)){ot(Ue,P);continue}Me&&Sa([K,N,Q],ht=>{Ye=Ru(Ye,ht," ")});const dn=de(P.nodeName);if(!fr(dn,Je,Ye)){ot(Ue,P);continue}if(g&&typeof v=="object"&&typeof v.getAttributeType=="function"&&!st)switch(v.getAttributeType(dn,Je)){case"TrustedHTML":{Ye=g.createHTML(Ye);break}case"TrustedScriptURL":{Ye=g.createScriptURL(Ye);break}}if(Ye!==it)try{st?P.setAttributeNS(st,Ue,Ye):P.setAttribute(Ue,Ye),Xt(P)?ze(P):pl(t.removed)}catch{ot(Ue,P)}}yt(I.afterSanitizeAttributes,P,null)},Ne=function se(P){let re=null;const ke=_t(P);for(yt(I.beforeSanitizeShadowDOM,P,null);re=ke.nextNode();)yt(I.uponSanitizeShadowNode,re,null),vn(re),Jr(re),re.content instanceof a&&se(re.content);yt(I.afterSanitizeShadowDOM,P,null)};return t.sanitize=function(se){let P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},re=null,ke=null,Fe=null,qe=null;if(Rt=!se,Rt&&(se=""),typeof se!="string"&&!Ut(se))if(typeof se.toString=="function"){if(se=se.toString(),typeof se!="string")throw $u("dirty is not a string, aborting")}else throw $u("toString is not a function");if(!t.isSupported)return se;if(Ae||Tt(P),t.removed=[],typeof se=="string"&&(ve=!1),ve){if(se.nodeName){const gt=de(se.nodeName);if(!V[gt]||ce[gt])throw $u("root node is forbidden and cannot be sanitized in-place")}}else if(se instanceof i)re=Pt(""),ke=re.ownerDocument.importNode(se,!0),ke.nodeType===Uu.element&&ke.nodeName==="BODY"||ke.nodeName==="HTML"?re=ke:re.appendChild(ke);else{if(!_e&&!Me&&!We&&se.indexOf("<")===-1)return g&&Ee?g.createHTML(se):se;if(re=Pt(se),!re)return _e?null:Ee?S:""}re&&tt&&ze(re.firstChild);const Ue=_t(ve?se:re);for(;Fe=Ue.nextNode();)vn(Fe),Jr(Fe),Fe.content instanceof a&&Ne(Fe.content);if(ve)return se;if(_e){if(te)for(qe=R.call(re.ownerDocument);re.firstChild;)qe.appendChild(re.firstChild);else qe=re;return(pe.shadowroot||pe.shadowrootmode)&&(qe=F.call(r,qe,!0)),qe}let st=We?re.outerHTML:re.innerHTML;return We&&V["!doctype"]&&re.ownerDocument&&re.ownerDocument.doctype&&re.ownerDocument.doctype.name&&rn(cd,re.ownerDocument.doctype.name)&&(st=" +`+st),Me&&Sa([K,N,Q],gt=>{st=Ru(st,gt," ")}),g&&Ee?g.createHTML(st):st},t.setConfig=function(){let se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Tt(se),Ae=!0},t.clearConfig=function(){Ie=null,Ae=!1},t.isValidAttribute=function(se,P,re){Ie||Tt({});const ke=de(se),Fe=de(P);return fr(ke,Fe,re)},t.addHook=function(se,P){typeof P=="function"&&Lu(I[se],P)},t.removeHook=function(se,P){if(P!==void 0){const re=Xv(I[se],P);return re===-1?void 0:Qv(I[se],re,1)[0]}return pl(I[se])},t.removeHooks=function(se){I[se]=[]},t.removeAllHooks=function(){I=_l()},t}var fd=dd();const v2=new An({html:!1,linkify:!0,typographer:!0,breaks:!0}),g2={USE_PROFILES:{html:!0},ADD_ATTR:["target","rel","class","colspan","rowspan","scope"],ADD_TAGS:["table","thead","tbody","tfoot","tr","th","td"]};fd.addHook("afterSanitizeAttributes",e=>{const t=e;if(!t||typeof t.tagName!="string"||t.tagName.toUpperCase()!=="A")return;t.setAttribute("target","_blank");const n=(t.getAttribute("rel")||"").split(/\s+/).filter(Boolean),r=["noopener","noreferrer","nofollow","ugc"],u=Array.from(new Set([...n,...r]));t.setAttribute("rel",u.join(" "))});function hu(e){if(!e)return"";const t=v2.render(e);return fd.sanitize(t,g2)}var b2=M(' '),_2=M(' '),y2=M(''),x2=M(''),k2=M(' '),E2=M(' '),w2=M(''),S2=M(' '),A2=M(' '),C2=M(''),D2=M('
      '),T2=M('
      '),F2=M('
      '),M2=M(' ',1),P2=M(''),I2=M('
      ');function N2(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U();let s=ne(t,"message",8),i=ne(t,"toolSummary",8),l=ne(t,"copied",8,!1),c=ne(t,"disableDelete",8,!1);const d=Et();let f=U(!1),h=U([]),v=U(!1),p=U(!1),w=U("View tool usage"),y=U(null),_=U(null),A=U(null);const E=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function g(){d("copy",{message:s()})}function S(){d("openReasoning",{message:s()})}function x(){d("openTool",{message:s()})}function T(){d("openWebSearchDetails",{message:s()})}function R(){const ue=s().details?.generationId;ue&&d("openUsage",{id:ue})}function z(){d("edit",{message:s()})}function F(){d("retry",{message:s()})}function I(){c()||d("delete",{message:s()})}function K(ue){d("editAttachment",{message:s(),attachment:ue})}function N(ue){const ve=ue.metadata?.filename;return typeof ve=="string"&&ve.trim()?ve:null}function Q(ue){const ve=N(ue);return ve?`Open attachment ${ve}`:"Open attachment"}function q(ue){return N(ue)??"Attachment preview"}const ae="America/New_York";function ie(ue){if(!ue)return null;const ve=new Date(ue);if(Number.isNaN(ve.getTime()))return null;const xe=new Intl.DateTimeFormat("en-US",{timeZone:"UTC",weekday:"short",month:"short",day:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(ve),we=Pe=>xe.find(ut=>ut.type===Pe)?.value??"",be=we("weekday"),Oe=we("month"),Ce=we("day"),Le=we("year"),Be=we("hour"),Ve=we("minute"),je=we("second");return`${be} ${Oe} ${Ce} ${Le} ${Be}:${Ve}:${je} UTC`.replace(/\s+/g," ")}function Y(ue,ve){if(!ue)return null;const xe=typeof ue=="string"&&ue?ue:String(ue),we=new Date(xe);if(Number.isNaN(we.getTime()))return{iso:xe,display:xe,tooltip:xe};try{const Oe=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:ae,timeZoneName:"short"}).formatToParts(we),Ce=nt=>Oe.find(Ge=>Ge.type===nt)?.value??"",Le=Ce("hour"),Be=Ce("minute"),Ve=Ce("second"),je=Ce("dayPeriod"),Pe=Ce("timeZoneName"),ut=`${Le}:${Be} ${je}${Pe?` ${Pe}`:""}`.trim(),Rt=`${Le}:${Be}:${Ve} ${je}${Pe?` ${Pe}`:""}`.trim(),qt=new Intl.DateTimeFormat(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:ae,timeZoneName:"short"}),Zt=ie(ve??ue),$t=`${qt.format(we)} (${Rt})`,Yt=Zt?`${$t} +${Zt}`:$t;return{iso:xe,display:ut,tooltip:Yt}}catch(be){console.warn("Failed to format timestamp",be);const Oe=ie(ve??ue);return{iso:xe,display:we.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),tooltip:Oe??xe}}}fe(()=>L(i()),()=>{D(n,i()?.tokens?.totalTokens??null)}),fe(()=>o(n),()=>{D(A,o(n)!=null?`${E.format(o(n))} tokens`:null)}),fe(()=>L(i()),()=>{D(y,i()?.count&&i().count>0?`×${i().count}`:null)}),fe(()=>L(i()),()=>{D(p,!!i()?.used)}),fe(()=>{},()=>{D(_,null)}),fe(()=>(L(i()),o(A)),()=>{D(w,(()=>{const ue=[];return i()?.count&&i().count>0&&ue.push(`${i().count} ${i().count===1?"hop":"hops"}`),o(A)&&ue.push(`${o(A)}`),ue.length===0?"View tool usage":`View tool usage — ${ue.join(", ")}`})())}),fe(()=>L(s()),()=>{D(f,(s().details?.reasoning?.length??0)>0||!!s().details?.reasoningStatus)}),fe(()=>(L(s()),o(h),Nr),()=>{const ue=s().details?.meta?.web_search_results;s().role==="assistant"&&(console.log("=== FULL MESSAGE DEBUG ==="),console.log("Message ID:",s().id),console.log("Message role:",s().role),console.log("Message.details:",JSON.stringify(s().details,null,2)),console.log("webSearchResults:",ue),console.log("Is Array?",Array.isArray(ue)),console.log("Length:",Array.isArray(ue)?ue.length:0),console.log("========================")),Array.isArray(ue)&&ue.length>0?(D(h,ue.map(ve=>({url:ve.url||"",title:ve.title||ve.name||"",content:ve.snippet||ve.content||ve.description||""})).filter(ve=>ve.url)),console.log("Citations extracted:",o(h))):(D(h,Nr(s().details?.citations??null,s().details?.meta??null,s().details??null,s().content??null,{content:typeof s().content=="string"?s().content:null})),console.log("Citations from collectCitations:",o(h)))}),fe(()=>o(h),()=>{D(r,o(h).length>0)}),fe(()=>L(s()),()=>{D(v,!!s().details?.webSearchConfig)}),fe(()=>L(s()),()=>{D(u,(s().attachments?.length??0)>0)}),fe(()=>L(s()),()=>{D(a,Y(s().createdAt,s().createdAtUtc))}),At(),rt();var W=I2(),O=b(W);let V;var he=b(O);{var pe=ue=>{var ve=A2(),xe=b(ve),we=b(xe),be=C(we);{var Oe=Ce=>{var Le=S2(),Be=b(Le);{var Ve=nt=>{var Ge=b2(),Ct=b(Ge);G(()=>X(Ct,`— ${L(s()),m(()=>s().details.model)??""}`)),k(nt,Ge)};$(Be,nt=>{L(s()),m(()=>s().details?.model)&&nt(Ve)})}var je=C(Be,2);{var Pe=nt=>{var Ge=_2(),Ct=b(Ge);G(()=>X(Ct,o(A))),k(nt,Ge)};$(je,nt=>{o(A)&&nt(Pe)})}var ut=C(je,2);{var Rt=nt=>{var Ge=y2();let Ct;var Jt=b(Ge);Lp(Jt,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),G(de=>{Ct=St(Ge,1,"sender-reasoning-indicator svelte-1cnmaqf",null,Ct,de),oe(Ge,"title",(L(s()),m(()=>s().details?.reasoningStatus==="streaming"?"Reasoning stream in progress":"View reasoning trace")))},[()=>({streaming:s().details?.reasoningStatus==="streaming"})]),J("click",Ge,S),k(nt,Ge)};$(ut,nt=>{o(f)&&nt(Rt)})}var qt=C(ut,2);{var Zt=nt=>{var Ge=x2(),Ct=b(Ge);Up(Ct,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),J("click",Ge,T),k(nt,Ge)};$(qt,nt=>{o(v)&&nt(Zt)})}var $t=C(qt,2);{var Yt=nt=>{var Ge=w2(),Ct=b(Ge);Hp(Ct,{size:14,strokeWidth:1.8,"aria-hidden":"true"});var Jt=C(Ct,2);{var de=Mt=>{var Tt=k2(),zt=b(Tt);G(()=>X(zt,o(y))),k(Mt,Tt)};$(Jt,Mt=>{o(y)&&Mt(de)})}var Ie=C(Jt,2);{var vt=Mt=>{var Tt=E2(),zt=b(Tt);G(()=>X(zt,o(_))),k(Mt,Tt)};$(Ie,Mt=>{o(_)&&Mt(vt)})}G(()=>{oe(Ge,"aria-label",o(w)),oe(Ge,"title",o(w))}),J("click",Ge,x),k(nt,Ge)};$($t,nt=>{o(p)&&nt(Yt)})}k(Ce,Le)};$(be,Ce=>{L(s()),m(()=>s().role==="assistant")&&Ce(Oe)})}G(()=>X(we,`${L(s()),m(()=>s().role)??""} `)),k(ue,ve)};$(he,ue=>{L(s()),m(()=>s().role!=="user")&&ue(pe)})}var H=C(he,2),j=b(H);{var ce=ue=>{var ve=Se(),xe=me(ve);oo(xe,()=>(L(hu),L(s()),m(()=>hu(s().text)))),k(ue,ve)};$(j,ue=>{L(s()),m(()=>s().text)&&ue(ce)})}var ee=C(j,2);{var De=ue=>{var ve=T2();mt(ve,5,()=>(L(s()),m(()=>s().attachments)),xe=>xe.id??xe.displayUrl??xe.deliveryUrl,(xe,we)=>{var be=D2(),Oe=b(be),Ce=b(Oe),Le=b(Ce),Be=C(Ce,2);{var Ve=je=>{var Pe=C2(),ut=b(Pe);Mi(ut,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),J("click",Pe,()=>K(o(we))),k(je,Pe)};$(Be,je=>{L(s()),m(()=>s().role==="assistant")&&je(Ve)})}G((je,Pe)=>{oe(Ce,"href",(o(we),m(()=>o(we).displayUrl||o(we).deliveryUrl))),oe(Ce,"aria-label",je),oe(Le,"src",(o(we),m(()=>o(we).displayUrl||o(we).deliveryUrl))),oe(Le,"alt",Pe)},[()=>(o(we),m(()=>Q(o(we)))),()=>(o(we),m(()=>q(o(we))))]),k(xe,be)}),k(ue,ve)};$(ee,ue=>{L(s()),m(()=>s().attachments?.length)&&ue(De)})}Wa(H,ue=>mo?.(ue));var Z=C(H,2);{var B=ue=>{var ve=F2(),xe=b(ve),we=b(xe);G(()=>{oe(xe,"datetime",(o(a),m(()=>o(a).iso))),oe(xe,"title",(o(a),m(()=>o(a).tooltip))),X(we,(o(a),m(()=>o(a).display)))}),k(ue,ve)};$(Z,ue=>{o(a)&&ue(B)})}var ye=C(Z,2),Me=b(ye);let Re;var We=b(Me);{var Ae=ue=>{$p(ue,{size:16,strokeWidth:1.6,"aria-hidden":"true"})},tt=ue=>{zp(ue,{size:16,strokeWidth:1.6,"aria-hidden":"true"})};$(We,ue=>{l()?ue(Ae):ue(tt,!1)})}var _e=C(Me,2);{var te=ue=>{var ve=M2(),xe=me(ve),we=b(xe);Mi(we,{size:16,strokeWidth:1.6,"aria-hidden":"true"});var be=C(xe,2),Oe=b(be);Bp(Oe,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),J("click",xe,z),J("click",be,F),k(ue,ve)};$(_e,ue=>{L(s()),m(()=>s().role==="user")&&ue(te)})}var Ee=C(_e,2);{var ge=ue=>{var ve=P2(),xe=b(ve);Rp(xe,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),J("click",ve,R),k(ue,ve)};$(Ee,ue=>{L(s()),m(()=>s().role==="assistant"&&s().details?.generationId)&&ue(ge)})}var Te=C(Ee,2),$e=b(Te);qp($e,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),G((ue,ve)=>{St(W,1,(L(s()),m(()=>`message ${s().role}`)),"svelte-1cnmaqf"),V=St(O,1,"bubble svelte-1cnmaqf",null,V,ue),Re=St(Me,1,"message-action svelte-1cnmaqf",null,Re,ve),oe(Me,"aria-label",l()?"Message copied":"Copy message"),Te.disabled=c()},[()=>({"has-attachments":o(u)}),()=>({copied:l()})]),J("click",Me,g),J("click",Te,I),k(e,W),et()}var O2=M('

      '),L2=M(' '),R2=M('

      No reasoning data received yet.

      '),$2=M('
       
      '),z2=M('
      ');function U2(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"segments",24,()=>[]),s=ne(t,"status",8,null),i=U(null),l=U(null),c=U("");const d=12;let f=!0,h=!1;function v(g){if(!g||g.length===0)return"";let S="",x;for(const T of g){if(!T||typeof T.text!="string"||T.text.length===0)continue;const R=T.text;x&&T.type&&x!==T.type&&(S.endsWith(` +`)||(S+=` +`),S+=` +`),S.length>0&&!S.endsWith(" ")&&!S.endsWith(` +`)&&!S.endsWith(" ")&&!S.endsWith("(")&&!S.endsWith("[")&&!S.endsWith("{")&&!S.endsWith("/")&&!S.endsWith("'")&&!S.endsWith("’")&&!/^[\s,.!?;:)/\]\}'"›»]/u.test(R)&&R[0]!=="'"&&R[0]!=="’"&&(S+=" "),S+=R,x=T.type??x}return S}mc(()=>{r()&&!h&&(f=!0),h=r(),r()&&o(i)&&o(i).focus(),r()&&o(l)&&s()==="streaming"&&f&&Bl(l,o(l).scrollTop=o(l).scrollHeight)});function p(){if(!o(l))return;const{scrollTop:g,scrollHeight:S,clientHeight:x}=o(l);f=S-(g+x)<=d}function w(){n("close")}function y(g){r()&&g.key==="Escape"&&(g.preventDefault(),w())}fe(()=>L(a()),()=>{D(c,v(a()))}),At(),rt();var _=Se();J("keydown",qa,y);var A=me(_);{var E=g=>{var S=z2(),x=b(S),T=C(x,2),R=b(T),z=b(R),F=C(b(z),2);{var I=O=>{var V=O2(),he=b(V);G(()=>X(he,`Message ID: ${u()??""}`)),k(O,V)};$(F,O=>{u()&&O(I)})}var K=C(z,2),N=b(K);{var Q=O=>{var V=L2(),he=C(b(V));G(()=>{St(V,1,`reasoning-status ${s()}`,"svelte-2cxve6"),X(he,` ${s()==="streaming"?"Streaming":"Complete"}`)}),k(O,V)};$(N,O=>{s()&&O(Q)})}var q=C(N,2),ae=C(R,2),ie=b(ae);{var Y=O=>{var V=R2();k(O,V)},W=O=>{var V=$2(),he=b(V);G(()=>X(he,o(c))),k(O,V)};$(ie,O=>{o(c),m(()=>o(c).length===0)?O(Y):O(W,!1)})}Ar(ae,O=>D(l,O),()=>o(l)),Ar(T,O=>D(i,O),()=>o(i)),J("click",x,w),J("click",q,w),J("scroll",ae,p),k(g,S)};$(A,g=>{r()&&g(E)})}k(e,_),et()}var B2=M('

      No tool activity recorded.

      '),j2=M(' '),q2=M('
      '),H2=M('
      '),W2=M('

      No details provided.

      '),V2=M('
    • Show input & output
    • '),G2=M('
        '),K2=M('

        '),Z2=M('

        Tools used

        ',1);function Y2(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"tools",24,()=>[]);function s(){n("close")}rt();var i=Se(),l=me(i);{var c=d=>{cr(d,{get open(){return r()},labelledBy:"tool-usage-modal-title",modalClass:"tool-usage-modal",bodyClass:"tool-usage-body",closeLabel:"Close tool usage details",$$events:{close:s},children:(f,h)=>{var v=Se(),p=me(v);{var w=_=>{var A=B2();k(_,A)},y=_=>{var A=G2();mt(A,5,a,E=>E.id,(E,g)=>{var S=V2(),x=b(S),T=b(x),R=b(T),z=C(T,2);{var F=Y=>{var W=j2(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).status)))),k(Y,W)};$(z,Y=>{o(g),m(()=>o(g).status)&&Y(F)})}var I=C(x,2),K=C(b(I),2);{var N=Y=>{var W=q2(),O=C(b(W),2),V=b(O);oo(V,()=>(L(hu),o(g),m(()=>hu(o(g).input)))),Wa(O,he=>mo?.(he)),k(Y,W)};$(K,Y=>{o(g),m(()=>o(g).input)&&Y(N)})}var Q=C(K,2);{var q=Y=>{var W=H2(),O=C(b(W),2),V=b(O);oo(V,()=>(L(hu),o(g),m(()=>hu(o(g).result)))),Wa(O,he=>mo?.(he)),k(Y,W)};$(Q,Y=>{o(g),m(()=>o(g).result)&&Y(q)})}var ae=C(Q,2);{var ie=Y=>{var W=W2();k(Y,W)};$(ae,Y=>{o(g),m(()=>!o(g).input&&!o(g).result)&&Y(ie)})}G(()=>X(R,(o(g),m(()=>o(g).name)))),k(E,S)}),k(_,A)};$(p,_=>{L(a()),m(()=>a().length===0)?_(w):_(y,!1)})}k(f,v)},$$slots:{default:!0,heading:(f,h)=>{var v=Z2(),p=C(me(v),2);{var w=y=>{var _=K2(),A=b(_);G(()=>X(A,`Message ID: ${u()??""}`)),k(y,_)};$(p,y=>{u()&&y(w)})}k(f,v)}}})};$(l,d=>{r()&&d(c)})}k(e,i),et()}var J2=M('

        No web search details available.

        '),X2=M('
        Context Size
        Amount of search context provided to the model
        '),Q2=M('
        Custom Search Prompt
        Instructions for how to incorporate search results
        '),eg=M('
        Search Engine
        Max Results
        Number of search results retrieved
        '),tg=M('

        '),ng=M('

        Web Search Details

        ',1);function rg(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"details",8,null);function s(){n("close")}function i(h){return h?h==="native"?"Native (OpenAI/Anthropic)":h==="exa"?"Exa":h:"Auto"}function l(h){return h?h.charAt(0).toUpperCase()+h.slice(1):"Default"}rt();var c=Se(),d=me(c);{var f=h=>{cr(h,{get open(){return r()},labelledBy:"web-search-details-modal-title",modalClass:"web-search-details-modal",bodyClass:"web-search-details-modal-body",closeLabel:"Close web search details",$$events:{close:s},children:(v,p)=>{var w=Se(),y=me(w);{var _=E=>{var g=J2();k(E,g)},A=E=>{var g=eg(),S=b(g),x=C(b(S),2),T=b(x),R=C(x,2),z=b(R);{var F=W=>{var O=Ln("Automatic selection based on model provider");k(W,O)},I=W=>{var O=Se(),V=me(O);{var he=H=>{var j=Ln("Using provider's built-in web search");k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=De=>{var Z=Ln("Using Exa's AI-powered search API");k(De,Z)};$(ce,De=>{L(a()),m(()=>a().engine==="exa")&&De(ee)},!0)}k(H,j)};$(V,H=>{L(a()),m(()=>a().engine==="native")?H(he):H(pe,!1)},!0)}k(W,O)};$(z,W=>{L(a()),m(()=>!a().engine||a().engine===null)?W(F):W(I,!1)})}var K=C(S,2),N=C(b(K),2),Q=b(N),q=C(K,2);{var ae=W=>{var O=X2(),V=C(b(O),2),he=b(V);G(pe=>X(he,pe),[()=>(L(a()),m(()=>l(a().contextSize)))]),k(W,O)};$(q,W=>{L(a()),m(()=>a().contextSize)&&W(ae)})}var ie=C(q,2);{var Y=W=>{var O=Q2(),V=C(b(O),2),he=b(V);G(()=>X(he,(L(a()),m(()=>a().searchPrompt)))),k(W,O)};$(ie,W=>{L(a()),m(()=>a().searchPrompt&&a().searchPrompt.trim())&&W(Y)})}G(W=>{X(T,W),X(Q,(L(a()),m(()=>a().maxResults??5)))},[()=>(L(a()),m(()=>i(a().engine)))]),k(E,g)};$(y,E=>{a()?E(A,!1):E(_)})}k(v,w)},$$slots:{default:!0,heading:(v,p)=>{var w=ng(),y=C(me(w),2);{var _=A=>{var E=tg(),g=b(E);G(()=>X(g,`Message ID: ${u()??""}`)),k(A,E)};$(y,A=>{u()&&A(_)})}k(v,w)}}})};$(d,h=>{r()&&h(f)})}k(e,c),et()}var ug=M('
        '),ag=M('
        ',1);function sg(e,t){Qe(t,!1);const n=()=>Xe(g,"$toolUsageModal",s),r=()=>Xe(S,"$reasoningModal",s),u=()=>Xe(x,"$citationsModal",s),a=()=>Xe(T,"$webSearchDetailsModal",s),[s,i]=Gn();let l=ne(t,"messages",24,()=>[]),c=ne(t,"disableDelete",8,!1),d=U(null),f=U(null),h=null,v=U([]),p=U({}),w=U({});const y="tool";let _=!1;const A=12;let E=!0;const g=G1(),S=U1(),x=Ic(),T=K1(),R=Et();mc(()=>{if(o(d)){if(_){_=!1;return}E&&Bl(d,o(d).scrollTop=o(d).scrollHeight)}});function z(){if(!o(d))return;const{scrollTop:B,scrollHeight:ye,clientHeight:Me}=o(d);E=ye-(B+Me)<=A}function F(B){B&&R("openGenerationDetails",{id:B})}async function I(B){try{await navigator.clipboard.writeText(B.text??"")}catch(ye){console.error("Failed to copy message",ye);return}D(f,B.id),_=!0,h&&clearTimeout(h),h=setTimeout(()=>{_=!0,D(f,null),h=null},2e3)}fa(()=>{h&&clearTimeout(h)});function K(B){g.openForMessage(l(),o(w),B.id,y)}function N(){g.close()}function Q(B){S.openForMessage(B)}function q(){S.close()}function ae(B){const ye=Nr(B.details?.citations??null,B.details?.meta??null,B.details??null);x.openWithCitations(B.id,ye)}function ie(){x.close()}function Y(B){T.openForMessage(B)}function W(){T.close()}function O(B){B&&R("deleteMessage",{id:B.id})}function V(B){B&&R("retryMessage",{id:B.id})}function he(B){B&&R("editMessage",{id:B.id})}function pe(B){!B?.message||!B?.attachment||R("editAssistantAttachment",B)}fe(()=>L(l()),()=>{const B=H1(l(),y);D(v,B.visibleMessages),D(p,B.assistantToolUsage),D(w,B.messageIndexMap)}),fe(()=>(L(l()),o(w)),()=>{g.syncEntries(l(),o(w),y)}),fe(()=>L(l()),()=>{S.syncFromMessages(l())}),At(),rt();var H=ag(),j=me(H);mt(j,5,()=>o(v),B=>B.id,(B,ye)=>{var Me=ug(),Re=b(Me);{let We=ct(()=>(o(f),o(ye),m(()=>o(f)===o(ye).id)));N2(Re,{get message(){return o(ye)},get toolSummary(){return o(p),o(ye),m(()=>o(p)[o(ye).id])},get copied(){return o(We)},get disableDelete(){return c()},$$events:{copy:Ae=>I(Ae.detail.message),openTool:Ae=>K(Ae.detail.message),openReasoning:Ae=>Q(Ae.detail.message),openCitations:Ae=>ae(Ae.detail.message),openWebSearchDetails:Ae=>Y(Ae.detail.message),openUsage:Ae=>F(Ae.detail.id),delete:Ae=>O(Ae.detail.message),retry:Ae=>V(Ae.detail.message),edit:Ae=>he(Ae.detail.message),editAttachment:Ae=>pe(Ae.detail)}})}k(B,Me)}),Ar(j,B=>D(d,B),()=>o(d));var ce=C(j,2);Y2(ce,{get open(){return n(),m(()=>n().open)},get messageId(){return n(),m(()=>n().messageId)},get tools(){return n(),m(()=>n().tools)},$$events:{close:N}});var ee=C(ce,2);U2(ee,{get open(){return r(),m(()=>r().open)},get messageId(){return r(),m(()=>r().messageId)},get segments(){return r(),m(()=>r().segments)},get status(){return r(),m(()=>r().status)},$$events:{close:q}});var De=C(ee,2);ah(De,{get open(){return u(),m(()=>u().open)},get messageId(){return u(),m(()=>u().messageId)},get citations(){return u(),m(()=>u().citations)},$$events:{close:ie}});var Z=C(De,2);rg(Z,{get open(){return a(),m(()=>a().open)},get messageId(){return a(),m(()=>a().messageId)},get details(){return a(),m(()=>a().details)},$$events:{close:W}}),J("scroll",j,z),k(e,H),et(),i()}const og=[{key:"temperature",aliases:["temperature"],label:"Temperature",description:"Higher values increase randomness.",fallback:{type:"number",min:0,max:2,step:.1}},{key:"top_p",aliases:["top_p"],label:"Top P",description:"Limits sampling to a cumulative probability mass.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_k",aliases:["top_k"],label:"Top K",description:"Restrict sampling to the top K tokens.",fallback:{type:"integer",min:1,max:400,step:1}},{key:"min_p",aliases:["min_p"],label:"Min P",description:"Nucleus sampling floor; smaller values widen sampling.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_a",aliases:["top_a"],label:"Top A",description:"Alternative nucleus control for certain models.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"max_tokens",aliases:["max_tokens","max_output_tokens"],label:"Max completion tokens",description:"Upper bound on tokens generated in the response.",fallback:{type:"integer",min:1,max:32768,step:1}},{key:"frequency_penalty",aliases:["frequency_penalty"],label:"Frequency penalty",description:"Penalize frequent tokens; useful to reduce repetition.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"presence_penalty",aliases:["presence_penalty"],label:"Presence penalty",description:"Encourage introducing new topics by penalizing seen tokens.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"repetition_penalty",aliases:["repetition_penalty"],label:"Repetition penalty",description:"Higher values push the model away from repeating itself.",fallback:{type:"number",min:0,max:2,step:.05}},{key:"top_logprobs",aliases:["top_logprobs"],label:"Top logprobs",description:"Return log probabilities for the top N tokens per step.",fallback:{type:"integer",min:0,max:20,step:1}},{key:"seed",aliases:["seed"],label:"Seed",description:"Deterministic seed (when supported).",fallback:{type:"integer",min:0,step:1}},{key:"parallel_tool_calls",aliases:["parallel_tool_calls"],label:"Parallel tool calls",description:"Allow the model to invoke multiple tools simultaneously.",fallback:{type:"boolean"}},{key:"structured_outputs",aliases:["structured_outputs","json_schema","response_format"],label:"Structured outputs",description:"Favor structured responses when supported by the provider.",fallback:{type:"boolean"}},{key:"safe_prompt",aliases:["safe_prompt"],label:"Safe prompt",description:"Ask the provider to apply additional safety prompting.",fallback:{type:"boolean"}},{key:"raw_mode",aliases:["raw_mode"],label:"Raw mode",description:"Bypass guardrails when the provider allows it.",fallback:{type:"boolean"}}];function Yu(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function Zs(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);if(Number.isFinite(t))return t}}function pd(e){const t={};if(!e||!e.capabilities)return t;const r=e.capabilities.parameters;if(!r||typeof r!="object")return t;function u(a,s){const i=Yu(a);if(!i||!s||typeof s!="object")return;const l=s,c={},d=l.type??l.datatype??l.kind;typeof d=="string"&&(c.type=d.toLowerCase());const f=l.min??l.minimum??l.lower_bound??l.minimum_value,h=l.max??l.maximum??l.upper_bound??l.maximum_value,v=l.step??l.increment??l.resolution,p=Zs(f),w=Zs(h),y=Zs(v);p!==void 0&&(c.min=p),w!==void 0&&(c.max=w),y!==void 0&&(c.step=y),t[i]=c;const _=l.properties;if(_&&typeof _=="object")for(const[A,E]of Object.entries(_))u(`${a}.${A}`,E)}for(const[a,s]of Object.entries(r))u(a,s);return t}function hd(e){const t=new Set;if(!e)return t;const n=e.supported_parameters_normalized;if(Array.isArray(n))for(const u of n){const a=Yu(u);a&&t.add(a)}const r=e.supported_parameters;if(Array.isArray(r))for(const u of r){const a=Yu(u);a&&t.add(a)}if(t.size===0)for(const u of Uo(e)){const a=Yu(u);a&&t.add(a)}return t}function ig(e,t){const n=e.fallback;if(n.type==="boolean")return{key:e.key,label:e.label,description:e.description,type:"boolean"};const r={key:e.key,label:e.label,description:e.description,type:n.type,min:n.min,max:n.max,step:n.step};if(!t)return r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r;const u=t.type?.toLowerCase();return u==="boolean"?{key:e.key,label:e.label,description:e.description,type:"boolean"}:(u==="integer"||u==="int"?r.type="integer":(u==="number"||u==="float"||u==="double")&&(r.type="number"),t.min!==void 0&&(r.min=t.min),t.max!==void 0&&(r.max=t.max),t.step!==void 0&&(r.step=t.step),r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r)}function lg(e,t){const n=hd(e),r=new Set(t?Object.keys(t):[]),u=pd(e),a=[],s=new Set;for(const i of og){if(!i.aliases.some(f=>n.has(f))&&!r.has(i.key)||s.has(i.key))continue;const c=i.aliases.map(f=>u[f]).find(f=>f!==void 0),d=ig(i,c);"min"in d&&"max"in d&&d.min!==void 0&&d.max!==void 0&&d.min>=d.max&&(d.min=void 0,d.max=void 0),a.push(d),s.add(i.key)}return a}function md(e,t){const n=e?.[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Qa(e,t){let n=e;return t.min!==void 0&&(n=Math.max(n,t.min)),t.max!==void 0&&(n=Math.min(n,t.max)),n}function vd(e){const t=e.min??0,n=e.max??t;if(t<=0&&n>=0)return Qa(0,e);const r=t+(n-t)/2;return Qa(r,e)}function cg(e,t){const n=md(t,e.key);return n!==void 0?Qa(n,e):vd(e)}function yl(e){if(e.step&&e.step>0)return e.step;if(e.type==="integer")return 1;const t=e.min??0,r=(e.max??t+1)-t;if(!Number.isFinite(r)||r<=0)return .01;const u=r/100;return u>0?u:.01}function dg(e,t){const n=e.min??0,u=(e.max??n)-n;if(!Number.isFinite(u)||u===0)return"0%";const s=(Qa(t??vd(e),e)-n)/u*100;return`${Math.min(100,Math.max(0,s))}%`}const fg=new Intl.NumberFormat(void 0,{maximumFractionDigits:4});function es(e){return typeof e=="number"&&Number.isFinite(e)?String(e):""}function Bu(e,t){return t.type==="integer"?String(Math.round(e)):fg.format(e)}var pg=M('
        ');function hg(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U();let i=ne(t,"field",8),l=ne(t,"parameters",8),c=ne(t,"numericValue",8),d=ne(t,"hasCustom",8,!1),f=ne(t,"handlers",8);fe(()=>(L(i()),L(l())),()=>{D(n,cg(i(),l()))}),fe(()=>(L(i()),L(c())),()=>{D(r,dg(i(),c()))}),fe(()=>(L(c()),L(i())),()=>{D(u,c()!==void 0?Bu(c(),i()):"Provider default")}),fe(()=>(L(i()),o(n)),()=>{D(a,i().min??o(n))}),fe(()=>(L(i()),o(n)),()=>{D(s,i().max??o(n))}),At(),rt();var h=pg(),v=b(h),p=b(v);let w;var y=b(p),_=C(p,2),A=C(v,2),E=C(A,2),g=b(E),S=b(g),x=C(g,2),T=b(x);G((R,z,F,I)=>{w=St(p,1,"range-value",null,w,R),X(y,o(u)),_.disabled=!d(),oe(A,"min",(L(i()),m(()=>i().min))),oe(A,"max",(L(i()),m(()=>i().max))),oe(A,"step",z),Ot(A,o(n)),nr(A,`--slider-fill:${o(r)};`),oe(A,"aria-valuemin",(L(i()),m(()=>i().min))),oe(A,"aria-valuemax",(L(i()),m(()=>i().max))),oe(A,"aria-valuenow",c()??void 0),oe(A,"aria-valuetext",o(u)),X(S,F),X(T,I)},[()=>({default:!d()}),()=>(L(yl),L(i()),m(()=>yl(i()))),()=>(L(Bu),o(a),L(i()),m(()=>Bu(o(a),i()))),()=>(L(Bu),o(s),L(i()),m(()=>Bu(o(s),i())))]),J("click",_,()=>f().onRangeReset(i().key)),J("input",A,R=>f().onSliderInput(i().key,R)),k(e,h),et()}var mg=M(' '),vg=M(''),gg=M('
        Enabled
        '),bg=M('');function _g(e,t){Qe(t,!1);let n=ne(t,"field",8),r=ne(t,"parameters",8),u=ne(t,"handlers",8);const a=_=>_.type==="number"||_.type==="integer";let s=U(),i=U(!1);fe(()=>(L(n()),L(r())),()=>{a(n())?D(s,md(r(),n().key)):D(s,void 0)}),fe(()=>(L(r()),L(n())),()=>{D(i,r()?.[n().key]!=null)}),At(),rt();var l=bg(),c=b(l),d=b(c),f=b(d),h=C(d,2);{var v=_=>{var A=mg(),E=b(A);G(()=>X(E,(L(n()),m(()=>n().description)))),k(_,A)};$(h,_=>{L(n()),m(()=>n().description)&&_(v)})}var p=C(c,2);{var w=_=>{var A=Se(),E=me(A);{var g=x=>{hg(x,{get field(){return n()},get parameters(){return r()},get numericValue(){return o(s)},get hasCustom(){return o(i)},get handlers(){return u()}})},S=x=>{var T=vg();G(R=>{oe(T,"inputmode",(L(n()),m(()=>n().type==="integer"?"numeric":"decimal"))),oe(T,"step",(L(n()),m(()=>n().step??(n().type==="integer"?1:"any")))),oe(T,"min",(L(n()),m(()=>n().min??void 0))),oe(T,"max",(L(n()),m(()=>n().max??void 0))),Ot(T,R)},[()=>(L(es),L(r()),L(n()),m(()=>es(r()?.[n().key])))]),J("change",T,R=>u().onNumberChange(n().key,R)),k(x,T)};$(E,x=>{L(n()),m(()=>n().min!==void 0&&n().max!==void 0)?x(g):x(S,!1)})}k(_,A)},y=_=>{var A=Se(),E=me(A);{var g=S=>{var x=gg(),T=b(x);G(()=>{oe(T,"id",(L(n()),m(()=>`field-${n().key}`))),Vt(T,(L(r()),L(n()),m(()=>r()?.[n().key]===!0)))}),J("change",T,R=>u().onBooleanChange(n().key,R)),k(S,x)};$(E,S=>{L(n()),m(()=>n().type==="boolean")&&S(g)},!0)}k(_,A)};$(p,_=>{L(n()),m(()=>a(n()))?_(w):_(y,!1)})}G(()=>X(f,(L(n()),m(()=>n().label)))),k(e,l),et()}var yg=M(""),xg=M(''),kg=M(''),Eg=M('
        Reasoning tokens Adjust effort, budget, or output visibility when the provider supports reasoning traces.
        ');function wg(e,t){Qe(t,!1);let n=ne(t,"reasoning",8),r=ne(t,"handlers",8);rt();var u=Eg(),a=C(b(u),2),s=b(a),i=C(b(s),2),l=b(i);l.value=l.__value="default";var c=C(l);c.value=c.__value="on";var d=C(c);d.value=d.__value="off";var f;or(i);var h=C(s,2);{var v=A=>{var E=xg(),g=C(b(E),2),S=b(g);S.value=S.__value="";var x=C(S);mt(x,1,()=>(L(n()),m(()=>n().options)),jn,(R,z)=>{var F=yg(),I=b(F),K={};G(N=>{X(I,N),K!==(K=o(z))&&(F.value=(F.__value=o(z))??"")},[()=>(o(z),m(()=>o(z).charAt(0).toUpperCase()+o(z).slice(1)))]),k(R,F)});var T;or(g),G(()=>{oe(E,"aria-disabled",(L(n()),m(()=>!n().effort.supported))),g.disabled=(L(n()),m(()=>!n().effort.supported)),T!==(T=(L(n()),m(()=>n().effort.supported?n().effort.value??"":"")))&&(g.value=(g.__value=(L(n()),m(()=>n().effort.supported?n().effort.value??"":"")))??"",Rn(g,(L(n()),m(()=>n().effort.supported?n().effort.value??"":""))))}),J("change",g,function(...R){r().onEffortChange?.apply(this,R)}),k(A,E)};$(h,A=>{L(n()),m(()=>n().effort.showField)&&A(v)})}var p=C(h,2);{var w=A=>{var E=kg(),g=C(b(E),2);G(S=>{oe(E,"aria-disabled",(L(n()),m(()=>!n().maxTokens.supported))),oe(g,"min",(L(n()),m(()=>n().schemas.maxTokens?.min??void 0))),oe(g,"max",(L(n()),m(()=>n().schemas.maxTokens?.max??void 0))),oe(g,"step",(L(n()),m(()=>n().schemas.maxTokens?.step??1))),g.disabled=(L(n()),m(()=>!n().maxTokens.supported)),Ot(g,S)},[()=>(L(es),L(n()),m(()=>es(n().maxTokens.value)))]),J("change",g,function(...S){r().onMaxTokensChange?.apply(this,S)}),k(A,E)};$(p,A=>{L(n()),m(()=>n().maxTokens.showField)&&A(w)})}var y=C(p,2),_=b(y);G(()=>{f!==(f=(L(n()),m(()=>n().enabledSelection)))&&(i.value=(i.__value=(L(n()),m(()=>n().enabledSelection)))??"",Rn(i,(L(n()),m(()=>n().enabledSelection)))),Vt(_,(L(n()),m(()=>n().exclude)))}),J("change",i,function(...A){r().onEnabledChange?.apply(this,A)}),J("change",_,function(...A){r().onExcludeChange?.apply(this,A)}),k(e,u),et()}const Sg=["reasoning","reasoning_effort","reasoning_max_tokens","reasoning_exclude","reasoning_enabled","include_reasoning"],Ca={effort:["reasoning.effort","reasoning_effort"],maxTokens:["reasoning.max_tokens","reasoning_max_tokens","thinking_budget"],exclude:["reasoning.exclude","reasoning_exclude","include_reasoning"],enabled:["reasoning.enabled","reasoning_enabled"]};function Ag(e){if(!e)return!1;const t=["openai/o1","openai/o3","openai/gpt-5","gpt-5","/grok","grok-"],n=[],r=a=>{if(typeof a!="string")return;const s=a.trim().toLowerCase();s&&n.push(s)};if(r(e.id),r(e.name),Array.isArray(e.tags))for(const a of e.tags)r(a);const u=e;return r(u.series),r(u.family),n.some(a=>t.some(s=>a.includes(s)))}function Cg(e){const t=[];for(const n of e){const r=Yu(n);r&&t.push(r)}return t}function Dg(){return Ft(Dt,e=>e.data?.parameters??null)}function Tg(e,t){return Ft([e,t],([n,r])=>lg(n,r))}function Fg(e){return Ft(e,t=>!!(t&&Object.keys(t).length>0))}function Mg(e){return Ft(e,t=>pd(t))}function Pg(e){return Ft(e,t=>hd(t))}function Ig(e){return Ft(e,t=>{const n=r=>{for(const u of Cg(r)){const a=t[u];if(a)return a}};return{effort:n(Ca.effort),maxTokens:n(Ca.maxTokens),exclude:n(Ca.exclude),enabled:n(Ca.enabled)}})}function Ng(e){return Ft(e,t=>t?.reasoning??null)}function Og(e,t,n,r,u){const a=["low","medium","high"];return Ft([e,t,n,r,u],([s,i,l,c,d])=>{const f=i?.effort??null,h=i?.max_tokens??null,v=i?.exclude===!0,p=i?i.enabled===!0?"on":i.enabled===!1?"off":"default":"default",w=(()=>{if(s?.reasoning&&Object.keys(s.reasoning).length>0)return!0;for(const R of Sg)if(l.has(R))return!0;for(const R of Object.values(c))if(R)return!0;return!1})(),y=!!(c.effort||l.has("reasoning_effort")||Ag(d)),_=!!(c.maxTokens||l.has("reasoning_max_tokens")),A=f!==null,E=h!==null;return{supported:w,schemas:c,enabledSelection:p,options:a,effort:{value:f,supported:w&&(y||A),showField:y||A},maxTokens:{value:h,supported:w&&(_||E),showField:_||E},exclude:v}})}function Lg(){return kt(null)}function Rg(){const e=kt(!1),t=kt(""),n=Lg(),r=Dg(),u=Tg(n,r),a=Fg(r),s=Mg(n),i=Pg(n),l=Ig(s),c=Ng(r),d=Og(r,c,i,l,n);let f=null;const v=Ft([e,t,Dt],([E,g,S])=>({open:E,selectedModel:g,settingsState:S})).subscribe(({open:E,selectedModel:g,settingsState:S})=>{!E||!g||(S.data&&S.data.model!==g&&Dt.setModel(g),f!==g&&(f=g,Dt.clearErrors(),Dt.load(g)))});fa(()=>{v()});const p={onSliderInput:(E,g)=>{const S=g.currentTarget;if(!S)return;const x=Number(S.value);Number.isFinite(x)&&Dt.updateParameter(E,x)},onRangeReset:E=>{Dt.updateParameter(E,null)},onNumberChange:(E,g)=>{const S=g.currentTarget;if(!S)return;const x=S.value.trim();if(!x){Dt.updateParameter(E,null);return}const T=Number(x);if(!Number.isFinite(T)){Dt.updateParameter(E,null);return}Dt.updateParameter(E,T)},onBooleanChange:(E,g)=>{const S=g.currentTarget;S&&Dt.updateParameter(E,S.checked)}};function w(E){const g=at(c)?{...at(c)}:{};E(g);for(const S of Object.keys(g)){const x=g[S];(x==null||typeof x=="string"&&x.trim()==="")&&delete g[S]}Object.keys(g).length===0?Dt.updateParameter("reasoning",null):Dt.updateParameter("reasoning",g)}const y={onEnabledChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value;w(x=>{S==="on"?x.enabled=!0:S==="off"?x.enabled=!1:delete x.enabled})},onEffortChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value;w(x=>{S?x.effort=S:delete x.effort})},onMaxTokensChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value.trim();if(!S){w(T=>{delete T.max_tokens});return}const x=Number(S);if(!Number.isFinite(x)||x<=0){w(T=>{delete T.max_tokens});return}w(T=>{T.max_tokens=x})},onExcludeChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.checked;w(x=>{S?x.exclude=!0:delete x.exclude})}};let _={open:!1,selectedModel:"",model:null};function A(E){E.open!==_.open&&(e.set(E.open),_.open=E.open),E.selectedModel!==_.selectedModel&&(t.set(E.selectedModel),_.selectedModel=E.selectedModel),E.model!==_.model&&(n.set(E.model),_.model=E.model)}return{settingsState:Dt,parameters:r,fields:u,hasCustomParameters:a,reasoning:d,parameterHandlers:p,reasoningHandlers:y,resetToDefaults:()=>Dt.resetToDefaults(),flushSave:()=>Dt.flushSave(),sync:A}}var $g=M('

        Loading settings…

        '),zg=M('

        '),Ug=M('

        This model does not expose configurable parameters.

        '),Bg=M('
        '),jg=M('
        '),qg=M('

        Model settings

        ',1),Hg=M(''),Wg=M(' '),Vg=M('Saving changes…'),Gg=M('Pending changes; closing this modal will save.'),Kg=M('Changes save when you close this modal.'),Zg=M('
        ');function Yg(e,t){Qe(t,!1);const n=()=>Xe(v,"$settingsState",i),r=()=>Xe(y,"$hasCustomParameters",i),u=()=>Xe(_,"$reasoning",i),a=()=>Xe(w,"$fields",i),s=()=>Xe(p,"$parameters",i),[i,l]=Gn();let c=ne(t,"open",8,!1),d=ne(t,"selectedModel",8,""),f=ne(t,"model",8,null);const h=Et(),{settingsState:v,parameters:p,fields:w,hasCustomParameters:y,reasoning:_,parameterHandlers:A,reasoningHandlers:E,resetToDefaults:g,flushSave:S,sync:x}=Rg();let T=!1;async function R(){if(T||n().saving)return;T=!0,await S()&&h("close"),T=!1}fe(()=>(L(c()),L(d()),L(f())),()=>{x({open:c(),selectedModel:d(),model:f()})}),At(),rt();var z=Se(),F=me(z);{var I=K=>{cr(K,{get open(){return c()},labelledBy:"model-settings-title",closeLabel:"Close model settings",$$events:{close:()=>void R()},children:(N,Q)=>{var q=Se(),ae=me(q);{var ie=W=>{var O=$g();k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=zg(),ce=b(j);G(()=>X(ce,(n(),m(()=>n().error)))),k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=Z=>{var B=Ug();k(Z,B)},De=Z=>{var B=jg(),ye=b(B);{var Me=Ae=>{wg(Ae,{get reasoning(){return u()},get handlers(){return E}})};$(ye,Ae=>{u(),m(()=>u().supported)&&Ae(Me)})}var Re=C(ye,2);{var We=Ae=>{var tt=Bg();mt(tt,5,a,_e=>_e.key,(_e,te)=>{_g(_e,{get field(){return o(te)},get parameters(){return s()},get handlers(){return A}})}),k(Ae,tt)};$(Re,Ae=>{a(),m(()=>a().length)&&Ae(We)})}k(Z,B)};$(ce,Z=>{u(),a(),m(()=>!u().supported&&!a().length)?Z(ee):Z(De,!1)})}k(H,j)};$(V,H=>{n(),m(()=>n().error)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{n(),m(()=>n().loading)?W(ie):W(Y,!1)})}k(N,q)},$$slots:{default:!0,heading:(N,Q)=>{var q=qg(),ae=C(me(q),2),ie=b(ae);{var Y=O=>{var V=Ln();G(()=>X(V,(L(f()),m(()=>f().name)))),k(O,V)},W=O=>{var V=Se(),he=me(V);{var pe=j=>{var ce=Ln();G(()=>X(ce,(L(f()),m(()=>f().id)))),k(j,ce)},H=j=>{var ce=Ln();G(()=>X(ce,d())),k(j,ce)};$(he,j=>{L(f()),m(()=>f()?.id)?j(pe):j(H,!1)},!0)}k(O,V)};$(ie,O=>{L(f()),m(()=>f()?.name)?O(Y):O(W,!1)})}k(N,q)},actions:(N,Q)=>{var q=Hg();G(()=>q.disabled=(r(),n(),m(()=>!r()||n().saving))),J("click",q,g),k(N,q)},footer:(N,Q)=>{var q=Zg(),ae=b(q);{var ie=W=>{var O=Wg(),V=b(O);G(()=>X(V,(n(),m(()=>n().saveError)))),k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=Vg();k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=Z=>{var B=Gg();k(Z,B)},De=Z=>{var B=Kg();k(Z,B)};$(ce,Z=>{n(),m(()=>n().dirty)?Z(ee):Z(De,!1)},!0)}k(H,j)};$(V,H=>{n(),m(()=>n().saving)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{n(),m(()=>n().saveError)?W(ie):W(Y,!1)})}k(N,q)}}})};$(F,K=>{c()&&K(I)})}k(e,z),et(),l()}const Jg={loading:!1,adding:!1,deleting:null,error:null,items:[]};function Xg(){const e=kt({...Jg});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await fetch(`${jt}/api/suggestions`);if(!a.ok)throw new Error(`HTTP ${a.status}`);const s=await a.json();e.update(i=>({...i,loading:!1,items:s.suggestions}))}catch(a){const s=a instanceof Error?a.message:"Failed to load suggestions.";e.update(i=>({...i,loading:!1,error:s}))}}async function n(a,s){e.update(i=>({...i,adding:!0,error:null}));try{const i=await fetch(`${jt}/api/suggestions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a,text:s})});if(!i.ok)throw new Error(`HTTP ${i.status}`);const l=await i.json();return e.update(c=>({...c,adding:!1,items:l.suggestions})),l.suggestions}catch(i){const l=i instanceof Error?i.message:"Failed to add suggestion.";return e.update(c=>({...c,adding:!1,error:l})),null}}async function r(a){e.update(s=>({...s,deleting:a,error:null}));try{const s=await fetch(`${jt}/api/suggestions/${a}`,{method:"DELETE"});if(!s.ok)throw new Error(`HTTP ${s.status}`);const i=await s.json();return e.update(l=>({...l,deleting:null,items:i.suggestions})),i.suggestions}catch(s){const i=s instanceof Error?s.message:"Failed to delete suggestion.";return e.update(l=>({...l,deleting:null,error:i})),null}}function u(){e.update(a=>({...a,error:null}))}return{subscribe:e.subscribe,load:t,add:n,remove:r,clearError:u}}const du=Xg();var Qg=M('

        '),eb=M('

        Loading presets…

        '),tb=M('

        No presets saved yet.

        '),nb=M('Default'),rb=M(' Filters'),ub=M(''),ab=M('
      • '),sb=M('
          '),ob=M('
          ',1),ib=M('

          Presets

          Save and manage snapshots of the current configuration.

          ',1),lb=M(' '),cb=M(' '),db=M('Create, update, or apply a preset.'),fb=M('
          ');function pb(e,t){Qe(t,!1);const n=()=>Xe(ea,"$chatStore",u),r=()=>Xe(Pn,"$presetsStore",u),[u,a]=Gn();let s=ne(t,"open",8,!1);const i=Et();let l=U(""),c=U(null),d=U(null),f=U(!1),h=U(!1);function v(){i("close")}async function p(){const x=o(l).trim();if(!x)return;await Dt.load(n().selectedModel),await Pn.create(x)&&D(l,"")}async function w(x){const T=await Pn.apply(x.name);T?.model&&ea.setModel(T.model),await du.load()}async function y(x){await Dt.load(n().selectedModel),await Pn.saveSnapshot(x.name)}async function _(x){if(!x.is_default){if(o(c)===x.name){await Pn.remove(x.name),D(c,null);return}D(c,x.name),setTimeout(()=>{o(c)===x.name&&D(c,null)},3e3)}}async function A(x){await Pn.setDefault(x.name)}fe(()=>(L(s()),o(h),Pn),()=>{s()&&!o(h)&&(D(h,!0),Pn.load())}),fe(()=>(L(s()),o(h)),()=>{!s()&&o(h)&&D(h,!1)}),fe(()=>(L(s()),o(f),o(d)),()=>{s()&&!o(f)&&(D(f,!0),setTimeout(()=>{o(d)?.focus()},0))}),fe(()=>(L(s()),o(f)),()=>{!s()&&o(f)&&D(f,!1)}),At(),rt();var E=Se(),g=me(E);{var S=x=>{cr(x,{get open(){return s()},labelledBy:"presets-title",modalClass:"presets-modal",bodyClass:"presets-body",closeLabel:"Close presets",$$events:{close:v},children:(T,R)=>{var z=ob(),F=me(z),I=b(F);Ar(I,W=>D(d,W),()=>o(d));var K=C(I,2),N=b(K),Q=C(F,2);{var q=W=>{var O=Qg(),V=b(O);G(()=>X(V,(r(),m(()=>r().error)))),k(W,O)};$(Q,W=>{r(),m(()=>r().error)&&W(q)})}var ae=C(Q,2);{var ie=W=>{var O=eb();k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=tb();k(H,j)},pe=H=>{var j=sb();mt(j,5,()=>(r(),m(()=>r().items)),ce=>ce.name,(ce,ee)=>{var De=ab(),Z=b(De),B=b(Z),ye=b(B),Me=C(ye);{var Re=je=>{var Pe=nb();k(je,Pe)};$(Me,je=>{o(ee),m(()=>o(ee).is_default)&&je(Re)})}var We=C(Me,2);{var Ae=je=>{var Pe=rb();k(je,Pe)};$(We,je=>{o(ee),m(()=>o(ee).has_filters)&&je(Ae)})}var tt=C(B,2),_e=b(tt),te=b(_e),Ee=C(_e,2),ge=b(Ee),Te=b(ge),$e=C(ge,4),ue=b($e),ve=C(Z,2),xe=b(ve),we=b(xe),be=C(xe,2),Oe=b(be),Ce=C(be,2);{var Le=je=>{var Pe=ub(),ut=b(Pe);G(()=>{Pe.disabled=(r(),o(ee),m(()=>r().settingDefault===o(ee).name)),oe(Pe,"aria-busy",(r(),o(ee),m(()=>r().settingDefault===o(ee).name))),X(ut,(r(),o(ee),m(()=>r().settingDefault===o(ee).name?"Setting…":"Set as default")))}),J("click",Pe,()=>A(o(ee))),k(je,Pe)};$(Ce,je=>{o(ee),m(()=>!o(ee).is_default)&&je(Le)})}var Be=C(Ce,2),Ve=b(Be);G((je,Pe)=>{X(ye,`${o(ee),m(()=>o(ee).name)??""} `),X(te,(o(ee),m(()=>o(ee).model))),X(Te,je),X(ue,Pe),xe.disabled=(r(),o(ee),m(()=>r().applying===o(ee).name)),oe(xe,"aria-busy",(r(),o(ee),m(()=>r().applying===o(ee).name))),X(we,(r(),o(ee),m(()=>r().applying===o(ee).name?"Applying…":"Apply"))),be.disabled=(r(),m(()=>r().saving)),oe(be,"aria-busy",(r(),m(()=>r().saving))),X(Oe,(r(),m(()=>r().saving?"Saving…":"Save snapshot"))),Be.disabled=(o(ee),r(),m(()=>o(ee).is_default||r().deleting===o(ee).name)),oe(Be,"aria-busy",(r(),o(ee),m(()=>r().deleting===o(ee).name))),oe(Be,"title",(o(ee),m(()=>o(ee).is_default?"Cannot delete default preset":"Delete preset"))),X(Ve,(o(c),o(ee),r(),m(()=>o(c)===o(ee).name?"Confirm delete":r().deleting===o(ee).name?"Deleting…":"Delete")))},[()=>(o(ee),m(()=>new Date(o(ee).created_at).toLocaleString())),()=>(o(ee),m(()=>new Date(o(ee).updated_at).toLocaleString()))]),J("click",xe,()=>w(o(ee))),J("click",be,()=>y(o(ee))),J("click",Be,()=>_(o(ee))),k(ce,De)}),k(H,j)};$(V,H=>{r(),m(()=>!r().items.length)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{r(),m(()=>r().loading)?W(ie):W(Y,!1)})}G(W=>{K.disabled=W,oe(K,"aria-busy",(r(),m(()=>r().creating))),X(N,(r(),m(()=>r().creating?"Creating…":"Create from current")))},[()=>(o(l),r(),m(()=>!o(l).trim()||r().creating))]),rr(I,()=>o(l),W=>D(l,W)),J("keydown",I,W=>W.key==="Enter"?p():null),J("click",K,p),k(T,z)},$$slots:{default:!0,heading:(T,R)=>{var z=ib();k(T,z)},footer:(T,R)=>{var z=fb(),F=b(z);{var I=N=>{var Q=lb(),q=b(Q);G(()=>X(q,`Applied preset: ${r(),m(()=>r().lastApplied)??""}`)),k(N,Q)},K=N=>{var Q=Se(),q=me(Q);{var ae=Y=>{var W=cb(),O=b(W);G(()=>X(O,`Saved: ${r(),m(()=>r().lastResult.name)??""}`)),k(Y,W)},ie=Y=>{var W=db();k(Y,W)};$(q,Y=>{r(),m(()=>r().lastResult)?Y(ae):Y(ie,!1)},!0)}k(N,Q)};$(F,N=>{r(),m(()=>r().lastApplied)?N(I):N(K,!1)})}k(T,z)}}})};$(g,x=>{s()&&x(S)})}k(e,E),et(),a()}var hb=M('
          '),mb=M('
          '),vb=M(''),gb=M('
          ');function bb(e,t){Qe(t,!1);const n=Et();let r=ne(t,"suggestions",24,()=>[]),u=ne(t,"deleting",8,null),a=U(!1),s=U(""),i=U("");function l(g){n("select",{text:g})}function c(g,S){S.stopPropagation(),n("delete",{index:g})}function d(){D(a,!0)}function f(){o(s).trim()&&o(i).trim()&&(n("add"),D(s,""),D(i,""),D(a,!1))}function h(){D(s,""),D(i,""),D(a,!1)}function v(){const g=o(s).trim(),S=o(i).trim();return g&&S?{label:g,text:S}:null}var p={getNewSuggestion:v};rt();var w=gb(),y=b(w);mt(y,3,r,g=>g.text,(g,S,x)=>{var T=hb(),R=b(T),z=b(R),F=C(R,2);G(()=>{X(z,(o(S),m(()=>o(S).label))),F.disabled=u()===o(x)}),J("click",R,()=>l(o(S).text)),J("click",F,I=>c(o(x),I)),k(g,T)});var _=C(y,2);{var A=g=>{var S=mb(),x=b(S),T=C(x,2),R=C(T,2),z=C(R,2);rr(x,()=>o(s),F=>D(s,F)),J("keydown",x,F=>F.key==="Enter"&&f()),rr(T,()=>o(i),F=>D(i,F)),J("keydown",T,F=>F.key==="Enter"&&f()),J("click",R,f),J("click",z,h),k(g,S)},E=g=>{var S=vb();J("click",S,d),k(g,S)};$(_,g=>{o(a)?g(A):g(E,!1)})}return k(e,w),y0(t,"getNewSuggestion",v),et(p)}var _b=M(""),yb=M('

          Deepgram model

          Choose the speech-to-text engine and helper features.

          Model
          Speech timing presets

          Timing & auto-submit

          Tune silence detection and message submission.

          Endpointing window (ms)

          How long Deepgram waits after silence before finalizing the transcript.

          Utterance gap (ms)

          Silence between words before Deepgram starts a new interim segment.

          Send automatically when speech ends. Delay waits after endpointing.

          ',1),xb=M('

          Speech settings

          Configure Deepgram speech-to-text dictation settings.

          ',1),kb=M(''),Eb=M('

          '),wb=M('

          Saving changes…

          '),Sb=M('

          '),Ab=M('

          '),Cb=M('
          ');function Db(e,t){Qe(t,!1);let n=ne(t,"open",8,!1);const r=Et();let u=U(f()),a=U(!1),s=U(!1),i=U(null),l=U(null),c=U(!1),d=!1;function f(){const x=Ga.current??$r();return{...x,stt:{...x.stt}}}function h(){d||o(s)||(d=!0,(async()=>(await _()&&r("close"),d=!1))())}function v(x=null,T="pending"){D(a,!0),D(i,x),D(l,T??"pending")}function p(x,T){D(u,{...o(u),stt:{...o(u).stt,[x]:T}}),v()}function w(x,T){const R=x.target;if(!R)return;const z=Number(R.value);Number.isFinite(z)&&T(z)}function y(x){const T=Vp[x];D(u,{...o(u),stt:{...o(u).stt,utteranceEndMs:T.stt.utteranceEndMs,endpointing:T.stt.endpointing,autoSubmitDelayMs:T.stt.autoSubmitDelayMs}}),v(`${T.label} preset applied; closing will save.`,"pending")}async function _(){if(!o(a))return!0;D(s,!0),D(i,"Saving changes…"),D(l,"pending");try{const x=Ga.save(o(u));return D(u,{...x,stt:{...x.stt}}),D(a,!1),D(i,"Saved"),D(l,"success"),!0}catch(x){const T=x instanceof Error?x.message:"Failed to save speech settings.";return D(i,T),D(l,"error"),!1}finally{D(s,!1)}}function A(){D(u,$r()),D(a,!0),D(i,"Defaults restored; closing will save."),D(l,"pending")}fe(()=>(L(n()),o(c),o(a),o(s)),()=>{n()&&!o(c)?(D(u,f()),D(a,!1),D(s,!1),D(i,"Changes save when you close this modal."),D(l,"info"),D(c,!0)):!n()&&o(c)&&(D(c,!1),o(a)&&!o(s)&&_())}),At(),rt();var E=Se(),g=me(E);{var S=x=>{cr(x,{get open(){return n()},labelledBy:"speech-settings-title",modalClass:"speech-settings-modal",bodyClass:"speech-settings-body",closeLabel:"Close speech settings",$$events:{close:()=>void h()},children:(T,R)=>{var z=yb(),F=me(z),I=C(b(F),2),K=b(I),N=C(b(K),2);mt(N,5,()=>Gp,jn,(be,Oe)=>{var Ce=_b(),Le=b(Ce),Be={};G(()=>{X(Le,(o(Oe),m(()=>o(Oe).label))),Be!==(Be=(o(Oe),m(()=>o(Oe).value)))&&(Ce.value=(Ce.__value=(o(Oe),m(()=>o(Oe).value)))??"")}),k(be,Ce)});var Q;or(N);var q=C(K,2),ae=C(b(q),2),ie=b(ae),Y=C(ie,2),W=C(Y,2),O=C(I,2),V=b(O),he=b(V),pe=C(V,2),H=b(pe),j=C(pe,2),ce=b(j),ee=C(j,2),De=b(ee),Z=C(ee,2),B=b(Z),ye=C(Z,2),Me=b(ye),Re=C(ye,2),We=b(Re),Ae=C(F,2),tt=C(b(Ae),2),_e=b(tt),te=C(b(_e),2),Ee=C(_e,2),ge=C(b(Ee),2),Te=C(tt,2),$e=b(Te),ue=b($e),ve=b(ue),xe=C($e,2),we=C(b(xe),2);G(()=>{Q!==(Q=(o(u),m(()=>o(u).stt.model)))&&(N.value=(N.__value=(o(u),m(()=>o(u).stt.model)))??"",Rn(N,(o(u),m(()=>o(u).stt.model)))),Vt(he,(o(u),m(()=>o(u).stt.interimResults))),Vt(H,(o(u),m(()=>o(u).stt.vadEvents))),Vt(ce,(o(u),m(()=>o(u).stt.smartFormat))),Vt(De,(o(u),m(()=>o(u).stt.punctuate))),Vt(B,(o(u),m(()=>o(u).stt.numerals))),Vt(Me,(o(u),m(()=>o(u).stt.fillerWords))),Vt(We,(o(u),m(()=>o(u).stt.profanityFilter))),Ot(te,(o(u),m(()=>o(u).stt.endpointing))),Ot(ge,(o(u),m(()=>o(u).stt.utteranceEndMs))),Vt(ve,(o(u),m(()=>o(u).stt.autoSubmit))),Ot(we,(o(u),m(()=>o(u).stt.autoSubmitDelayMs))),we.disabled=(o(u),m(()=>!o(u).stt.autoSubmit))}),J("change",N,be=>p("model",be.target.value)),J("click",ie,()=>y("fast")),J("click",Y,()=>y("normal")),J("click",W,()=>y("slow")),J("change",he,be=>p("interimResults",be.target.checked)),J("change",H,be=>p("vadEvents",be.target.checked)),J("change",ce,be=>p("smartFormat",be.target.checked)),J("change",De,be=>p("punctuate",be.target.checked)),J("change",B,be=>p("numerals",be.target.checked)),J("change",Me,be=>p("fillerWords",be.target.checked)),J("change",We,be=>p("profanityFilter",be.target.checked)),J("change",te,be=>w(be,Oe=>p("endpointing",Oe))),J("change",ge,be=>w(be,Oe=>p("utteranceEndMs",Oe))),J("change",ve,be=>p("autoSubmit",be.target.checked)),J("change",we,be=>w(be,Oe=>p("autoSubmitDelayMs",Oe))),k(T,z)},$$slots:{default:!0,heading:(T,R)=>{var z=xb();k(T,z)},actions:(T,R)=>{var z=kb();G(()=>z.disabled=o(s)),J("click",z,A),k(T,z)},footer:(T,R)=>{var z=Cb(),F=b(z);{var I=N=>{var Q=Eb(),q=b(Q);G(()=>X(q,o(i))),k(N,Q)},K=N=>{var Q=Se(),q=me(Q);{var ae=Y=>{var W=wb();k(Y,W)},ie=Y=>{var W=Se(),O=me(W);{var V=pe=>{var H=Sb(),j=b(H);G(()=>X(j,o(i)??"Pending changes; closing this modal will save.")),k(pe,H)},he=pe=>{var H=Ab(),j=b(H);G(()=>{oe(H,"data-variant",o(l)??"info"),X(j,o(i)??"Changes save when you close this modal.")}),k(pe,H)};$(O,pe=>{o(a)?pe(V):pe(he,!1)},!0)}k(Y,W)};$(q,Y=>{o(s)?Y(ae):Y(ie,!1)},!0)}k(N,Q)};$(F,N=>{o(l)==="error"?N(I):N(K,!1)})}k(T,z)}}})};$(g,x=>{n()&&x(S)})}k(e,E),et()}const za=["Google Calendar","Google Tasks","Gmail","Google Drive"],Ys={loading:!1,authorizing:!1,authorized:!1,userEmail:null,expiresAt:null,services:[...za],error:null};function Tb(e){return new Promise((t,n)=>{const r=s=>{const i=s.data;if(!i||typeof i!="object"||i.source!=="google-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const d=typeof c=="string"?c:"Authorization failed.";n(new Error(d))}},u=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(u)};window.addEventListener("message",r)})}function Fb(){const e=kt({...Ys});async function t(){e.update(u=>({...u,loading:!0,error:null}));try{const u=await z0();e.set({loading:!1,authorizing:!1,authorized:u.authorized,userEmail:u.user_email??null,expiresAt:u.expires_at??null,services:u.services&&u.services.length>0?u.services:[...za],error:null})}catch(u){const a=u instanceof Error?u.message:"Failed to check Google authorization status.";e.set({...Ys,services:[...za],loading:!1,error:a})}}function n(){e.set({...Ys,services:[...za]})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Google authorization is only available in a browser environment."})),!1;if(at(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await U0({}),s=window.open(a.auth_url,"google-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!s)throw new Error("Popup was blocked. Allow pop-ups and try again.");return s.focus(),await Tb(s),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const s=a instanceof Error?a.message:"Failed to start Google authorization.";return e.update(i=>({...i,authorizing:!1,error:s})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}const Da={loading:!1,refreshing:!1,saving:!1,dirty:!1,error:null,saveError:null,servers:[],updatedAt:null,pending:{},pendingChanges:{}};function xl(e,t){return{...e,servers:t.servers??[],updatedAt:t.updated_at??null,error:null,saveError:null}}function Mb(){const e=kt({...Da});async function t(){e.set({...Da,loading:!0});try{const f=await L0();e.set({...Da,servers:f.servers,updatedAt:f.updated_at??null,loading:!1})}catch(f){const h=f instanceof Error?f.message:"Failed to load MCP servers.";e.set({...Da,loading:!1,error:h})}}function n(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function r(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,kiosk_enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},kiosk_enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function u(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,frontend_enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},frontend_enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function a(f,h,v){e.update(p=>{const w=p.servers.find(g=>g.id===f);if(!w)return p;const y=new Set(w.disabled_tools??[]);v?y.delete(h):y.add(h);const _=Array.from(y).sort(),A=p.servers.map(g=>g.id!==f?g:{...g,disabled_tools:_,tools:g.tools.map(S=>S.name===h?{...S,enabled:v}:S)}),E={...p.pendingChanges,[f]:{...p.pendingChanges[f]??{},disabled_tools:_}};return{...p,servers:A,dirty:!0,saveError:null,pendingChanges:E}})}function s(f,h,v){e.update(p=>{const w=p.servers.find(E=>E.id===f);if(!w)return p;const y={...w.env??{},...p.pendingChanges[f]?.env??{}};y[h]=v;const _=p.servers.map(E=>E.id===f?{...E,env:y}:E),A={...p.pendingChanges,[f]:{...p.pendingChanges[f]??{},env:y}};return{...p,servers:_,dirty:!0,saveError:null,pendingChanges:A}})}async function i(){e.update(f=>({...f,refreshing:!0,error:null}));try{const f=await $0();e.update(h=>({...xl(h,f),refreshing:!1}))}catch(f){const h=f instanceof Error?f.message:"Failed to refresh MCP servers.";e.update(v=>({...v,refreshing:!1,saveError:h}))}}function l(f){return at(e).servers.find(v=>v.id===f)}function c(f){return!!at(e).pending[f]}async function d(){const f=at(e);if(!f.dirty)return!0;const h=Object.entries(f.pendingChanges);if(!h.length)return e.update(p=>({...p,dirty:!1})),!0;e.update(p=>({...p,saving:!0,saveError:null}));let v=!0;for(const[p,w]of h){e.update(y=>({...y,pending:{...y.pending,[p]:!0}}));try{const y=await R0(p,w);e.update(_=>{const A={..._.pending};delete A[p];const E={..._.pendingChanges};delete E[p];const g=xl(_,y),S=Object.keys(E).length>0;return{...g,pending:A,pendingChanges:E,dirty:S}})}catch(y){let _="Failed to update MCP server.";if(y instanceof Error)_=y.message;else if(typeof y=="object"&&y!==null){const A=y;_=String(A.detail||A.message||A.error||JSON.stringify(y))}else typeof y=="string"&&(_=y);_.includes("[object Object]")&&(_="Failed to save MCP server settings. Check server logs for details."),e.update(A=>{const E={...A.pending};return delete E[p],{...A,pending:E,saving:!1,saveError:_}}),v=!1;break}}return v?(e.update(p=>({...p,saving:!1,dirty:!1})),!0):(e.update(p=>({...p,saving:!1,dirty:!0})),!1)}return{subscribe:e.subscribe,load:t,refresh:i,setServerEnabled:n,setKioskEnabled:r,setFrontendEnabled:u,setToolEnabled:a,setServerEnv:s,getServer:l,isPending:c,flushPending:d}}const kl={loading:!1,saving:!1,refreshing:!1,configured:!1,email:null,error:null};function Pb(){const e=kt({...kl});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await B0();e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null})}catch(a){const s=a instanceof Error?a.message:"Failed to check Monarch status.";e.set({...kl,loading:!1,error:s})}}async function n(a){e.update(s=>({...s,saving:!0,error:null}));try{const s=await j0(a);return e.set({loading:!1,saving:!1,refreshing:!1,configured:s.configured,email:s.email,error:null}),!0}catch(s){const i=s instanceof Error?s.message:"Failed to save Monarch credentials.";return e.update(l=>({...l,saving:!1,error:i})),!1}}async function r(){e.update(a=>({...a,saving:!0,error:null}));try{const a=await q0();return e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null}),!0}catch(a){const s=a instanceof Error?a.message:"Failed to remove Monarch credentials.";return e.update(i=>({...i,saving:!1,error:s})),!1}}async function u(){e.update(a=>({...a,refreshing:!0,error:null}));try{return await new Promise(a=>setTimeout(a,2e3)),e.update(a=>({...a,refreshing:!1})),{success:!0,message:"Account data refreshed successfully"}}catch(a){const s=a instanceof Error?a.message:"Failed to refresh account data.";return e.update(i=>({...i,refreshing:!1,error:s})),{success:!1,message:s}}}return{subscribe:e.subscribe,load:t,save:n,remove:r,refresh:u}}const Js={loading:!1,authorizing:!1,authorized:!1,userEmail:null,error:null};function Ib(e){return new Promise((t,n)=>{const r=s=>{const i=s.data;if(!i||typeof i!="object"||i.source!=="spotify-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const d=typeof c=="string"?c:"Authorization failed.";n(new Error(d))}},u=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(u)};window.addEventListener("message",r)})}function Nb(){const e=kt({...Js});async function t(){e.update(u=>({...u,loading:!0,error:null}));try{const u=await H0();e.set({loading:!1,authorizing:!1,authorized:u.authorized,userEmail:u.user_email??null,error:null})}catch(u){const a=u instanceof Error?u.message:"Failed to check Spotify authorization status.";e.set({...Js,loading:!1,error:a})}}function n(){e.set({...Js})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Spotify authorization is only available in a browser environment."})),!1;if(at(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await W0({}),s=window.open(a.auth_url,"spotify-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!s)throw new Error("Popup was blocked. Allow pop-ups and try again.");return s.focus(),await Ib(s),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const s=a instanceof Error?a.message:"Failed to start Spotify authorization.";return e.update(i=>({...i,authorizing:!1,error:s})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}const Xs={loading:!1,saving:!1,error:null,saveError:null,value:"",initialValue:"",dirty:!1};function Ob(){const e=kt({...Xs});function t(i,l){return i.trim()!==l.trim()}function n(i){return i.system_prompt?.trim()??""}async function r(){e.set({...Xs,loading:!0});try{const i=await N0(),l=n(i);e.set({loading:!1,saving:!1,error:null,saveError:null,value:l,initialValue:l,dirty:!1})}catch(i){const l=i instanceof Error?i.message:"Failed to load system prompt.";e.set({...Xs,loading:!1,error:l})}}function u(i){e.update(l=>{const c=i;return{...l,value:c,dirty:t(c,l.initialValue),saveError:null}})}async function a(){let i="";e.update(c=>(i=c.value,{...c,saving:!0,saveError:null}));const l={system_prompt:i.trim()||null};try{const c=await O0(l),d=n(c);e.set({loading:!1,saving:!1,error:null,saveError:null,value:d,initialValue:d,dirty:!1})}catch(c){const d=c instanceof Error?c.message:"Failed to save system prompt.";e.update(f=>({...f,saving:!1,saveError:d}))}}function s(){e.update(i=>({...i,value:i.initialValue,dirty:!1,saveError:null}))}return{subscribe:e.subscribe,load:r,save:a,reset:s,updateValue:u}}var Lb=M('

          Loading system prompt…

          '),Rb=M('

          '),$b=M('

          '),zb=M('

          Pending changes; closing this modal will save.

          '),Ub=M('

          Changes save when you close this modal.

          '),Bb=M(' ',1),jb=M('

          Checking Google authorization…

          '),qb=M('

          ',1),Hb=M('

          '),Wb=M('

          Access will refresh automatically.

          '),Vb=M('

          Connected as .

          ',1),Gb=M('

          Google services are not connected.

          '),Kb=M("
        • "),Zb=M('

          Checking Spotify authorization…

          '),Yb=M('

          ',1),Jb=M('

          Connected as .

          Access will refresh automatically.

          ',1),Xb=M('

          Spotify is not connected.

          '),Qb=M(''),e_=M(''),t_=M('

          Checking Monarch status…

          '),n_=M('

          Connected as .

          '),r_=No(''),u_=No(''),a_=M('

          '),s_=M(`

          If you already use an app, you must reset MFA in Monarch + Settings to see the secret key again. Enter the new key here AND in + your app.

          `),o_=M('

          '),i_=M('

          Toggle integrations available to the assistant.

          '),l_=M('

          Loading MCP servers…

          '),c_=M('

          '),d_=M('

          No MCP servers configured.

          '),f_=M(' ',1),p_=M(' ',1),h_=M(""),m_=M(`
          This machine Select which computer you're on. Sets host profile + and storage path.
          `),v_=M('
        • '),g_=M('
            '),b_=M('

            Tool list unavailable.

            '),__=M('

            '),y_=M('
            '),x_=M('
          • '),k_=M('
              '),E_=M('

              '),w_=M('

              Pending changes save when you close this modal.

              '),S_=M(" ",1),A_=M(`

              System prompt

              Applied to new chat sessions when no custom prompt is present.

              Google services

              Connect Calendar, Tasks, Gmail, and Drive with a single consent.

                Click "Connect Google Services" to authorize these integrations for + the assistant.

                Spotify

                Connect Spotify for music control and playback.

                Click "Connect Spotify" to authorize music control and playback + features.

                Monarch Money

                Connect your Monarch Money account.

                MCP servers

                `,1),C_=M('

                System settings

                Configure orchestration defaults and MCP servers.

                ',1),D_=M('

                Resolve the errors above before closing.

                '),T_=M('

                Saving changes…

                '),F_=M('

                Pending changes; closing this modal will save.

                '),M_=M('

                Changes save when you close this modal.

                '),P_=M('
                ');function I_(e,t){Qe(t,!1);const n=()=>Xe(f,"$systemPrompt",i),r=()=>Xe(h,"$mcpServers",i),u=()=>Xe(v,"$googleAuth",i),a=()=>Xe(w,"$spotifyAuth",i),s=()=>Xe(p,"$monarchAuth",i),[i,l]=Gn();let c=ne(t,"open",8,!1);const d=Et(),f=Ob(),h=Mb(),v=Fb(),p=Pb(),w=Nb();let y=U(!1),_=!1,A=U(new Set);const E=[{id:"xps13",label:"Dell XPS 13",path:"/home/jack/gdrive/host_profiles"},{id:"ryzen-desktop",label:"Ryzen Desktop",path:"/home/human/gdrive/host_profiles"}];async function g(){await Promise.all([f.load(),h.load(),v.load(),p.load(),w.load()])}async function S(){return at(f).dirty?(await f.save(),!at(f).saveError):!0}async function x(){if(_||n().saving||r().saving)return;_=!0;const Z=await S(),B=Z?await h.flushPending():!1,ye=at(f),Me=at(h);Z&&B&&!ye.saveError&&!Me.saveError&&d("close"),_=!1}let T=U(""),R=U(""),z=U(""),F=U(!1);function I(Z,B){const ye=E.find(Me=>Me.id===B);ye&&(Y(Z,"HOST_PROFILE_ID",ye.id),Y(Z,"HOST_ROOT_PATH",ye.path))}function K(){!o(T)||!o(R)||p.save({email:o(T),password:o(R),mfa_secret:o(z)||null})}function N(Z){const B=Z.target;f.updateValue(B?.value??"")}function Q(Z,B){r().saving||h.setServerEnabled(Z,B)}function q(Z,B){r().saving||h.setKioskEnabled(Z,B)}function ae(Z,B){r().saving||h.setFrontendEnabled(Z,B)}function ie(Z,B,ye){r().saving||h.setToolEnabled(Z,B,ye)}function Y(Z,B,ye){r().saving||h.setServerEnv(Z,B,ye)}function W(){const Z=at(h);Z.dirty||Z.saving||h.refresh()}function O(){u().loading||u().authorizing||v.load()}async function V(){u().authorizing||await v.authorize()}function he(){a().loading||a().authorizing||w.load()}async function pe(){a().authorizing||await w.authorize()}function H(Z){if(!Z)return null;try{const B=new Date(Z);return Number.isNaN(B.getTime())?Z:new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",year:"numeric",month:"short",day:"2-digit"}).format(B)}catch(B){return console.warn("Failed to format timestamp",B),Z}}function j(Z){const B=new Set(o(A));B.has(Z)?B.delete(Z):B.add(Z),D(A,B)}fe(()=>(L(c()),o(y)),()=>{c()&&!o(y)?(D(y,!0),g()):!c()&&o(y)&&(D(y,!1),f.reset(),v.reset(),w.reset())}),At(),rt();var ce=Se(),ee=me(ce);{var De=Z=>{{let B=ct(()=>(n(),r(),u(),m(()=>n().saving||r().saving||u().authorizing)));cr(Z,{get open(){return c()},labelledBy:"system-settings-title",modalClass:"system-settings-modal",bodyClass:"system-settings-body",layerClass:"system-settings-layer",closeLabel:"Close system settings",get closeDisabled(){return o(B)},$$events:{close:()=>void x()},children:(ye,Me)=>{var Re=A_(),We=me(Re),Ae=b(We),tt=C(b(Ae),2),_e=b(tt),te=C(Ae,2),Ee=b(te);{var ge=Ne=>{var se=Lb();k(Ne,se)},Te=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=Rb(),Ue=b(qe);G(()=>X(Ue,(n(),m(()=>n().error)))),k(Fe,qe)},ke=Fe=>{var qe=Bb(),Ue=me(qe),st=C(Ue,2);{var gt=it=>{var Ye=$b(),dn=b(Ye);G(()=>X(dn,(n(),m(()=>n().saveError)))),k(it,Ye)},Je=it=>{var Ye=Se(),dn=me(Ye);{var ht=en=>{var le=zb();k(en,le)},Qt=en=>{var le=Ub();k(en,le)};$(dn,en=>{n(),m(()=>n().dirty)?en(ht):en(Qt,!1)},!0)}k(it,Ye)};$(st,it=>{n(),m(()=>n().saveError)?it(gt):it(Je,!1)})}G(()=>Ue.disabled=(n(),m(()=>n().saving))),rr(Ue,()=>n().value,it=>k0(f,m(n).value=it,m(n))),J("input",Ue,N),k(Fe,qe)};$(P,Fe=>{n(),m(()=>n().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Ee,Ne=>{n(),m(()=>n().loading)?Ne(ge):Ne(Te,!1)})}var $e=C(We,2),ue=b($e),ve=C(b(ue),2),xe=b(ve),we=b(xe),be=C(ue,2),Oe=b(be);{var Ce=Ne=>{var se=jb();k(Ne,se)},Le=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=qb(),Ue=me(qe),st=b(Ue),gt=C(Ue,2),Je=b(gt);G(()=>{X(st,(u(),m(()=>u().error))),Je.disabled=(u(),m(()=>u().loading||u().authorizing))}),J("click",Je,O),k(Fe,qe)},ke=Fe=>{var qe=Se(),Ue=me(qe);{var st=Je=>{var it=Vb(),Ye=me(it),dn=C(b(Ye)),ht=b(dn),Qt=C(Ye,2);{var en=fn=>{var Xn=Hb(),wt=b(Xn);G(Dn=>X(wt,`Current token expires ${Dn??""}.`),[()=>(u(),m(()=>H(u().expiresAt)??"soon"))]),k(fn,Xn)},le=fn=>{var Xn=Wb();k(fn,Xn)};$(Qt,fn=>{u(),m(()=>u().expiresAt)?fn(en):fn(le,!1)})}G(()=>X(ht,(u(),m(()=>u().userEmail)))),k(Je,it)},gt=Je=>{var it=Gb();k(Je,it)};$(Ue,Je=>{u(),m(()=>u().authorized)?Je(st):Je(gt,!1)},!0)}k(Fe,qe)};$(P,Fe=>{u(),m(()=>u().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Oe,Ne=>{u(),m(()=>u().loading)?Ne(Ce):Ne(Le,!1)})}var Be=C(Oe,2);mt(Be,5,()=>(u(),m(()=>u().services)),jn,(Ne,se)=>{var P=Kb(),re=b(P);G(()=>X(re,o(se))),k(Ne,P)});var Ve=C($e,2),je=b(Ve),Pe=C(b(je),2),ut=b(Pe),Rt=b(ut),qt=C(je,2),Zt=b(qt);{var $t=Ne=>{var se=Zb();k(Ne,se)},Yt=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=Yb(),Ue=me(qe),st=b(Ue),gt=C(Ue,2),Je=b(gt);G(()=>{X(st,(a(),m(()=>a().error))),Je.disabled=(a(),m(()=>a().loading||a().authorizing))}),J("click",Je,he),k(Fe,qe)},ke=Fe=>{var qe=Se(),Ue=me(qe);{var st=Je=>{var it=Jb(),Ye=me(it),dn=C(b(Ye)),ht=b(dn);G(()=>X(ht,(a(),m(()=>a().userEmail)))),k(Je,it)},gt=Je=>{var it=Xb();k(Je,it)};$(Ue,Je=>{a(),m(()=>a().authorized)?Je(st):Je(gt,!1)},!0)}k(Fe,qe)};$(P,Fe=>{a(),m(()=>a().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Zt,Ne=>{a(),m(()=>a().loading)?Ne($t):Ne(Yt,!1)})}var nt=C(Ve,2),Ge=b(nt),Ct=C(b(Ge),2),Jt=b(Ct);{var de=Ne=>{var se=Qb();G(()=>se.disabled=(s(),m(()=>s().saving))),J("click",se,()=>p.remove()),k(Ne,se)},Ie=Ne=>{var se=e_(),P=b(se);G(()=>{se.disabled=(s(),o(T),o(R),m(()=>s().saving||!o(T)||!o(R))),X(P,(s(),m(()=>s().saving?"Saving...":"Connect")))}),J("click",se,K),k(Ne,se)};$(Jt,Ne=>{s(),m(()=>s().configured)?Ne(de):Ne(Ie,!1)})}var vt=C(Ge,2),Mt=b(vt);{var Tt=Ne=>{var se=t_();k(Ne,se)},zt=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=n_(),Ue=C(b(qe)),st=b(Ue);G(()=>X(st,(s(),m(()=>s().email)))),k(Fe,qe)},ke=Fe=>{var qe=s_(),Ue=b(qe),st=C(b(Ue)),gt=C(Ue,2),Je=C(b(gt)),it=b(Je),Ye=C(it,2),dn=b(Ye);{var ht=wt=>{var Dn=r_();k(wt,Dn)},Qt=wt=>{var Dn=u_();k(wt,Dn)};$(dn,wt=>{o(F)?wt(ht):wt(Qt,!1)})}var en=C(gt,2),le=C(b(en)),fn=C(en,4);{var Xn=wt=>{var Dn=a_(),ms=b(Dn);G(()=>X(ms,(s(),m(()=>s().error)))),k(wt,Dn)};$(fn,wt=>{s(),m(()=>s().error)&&wt(Xn)})}G(()=>{oe(it,"type",o(F)?"text":"password"),oe(Ye,"title",o(F)?"Hide password":"Show password")}),rr(st,()=>o(T),wt=>D(T,wt)),rr(it,()=>o(R),wt=>D(R,wt)),J("click",Ye,()=>D(F,!o(F))),rr(le,()=>o(z),wt=>D(z,wt)),k(Fe,qe)};$(P,Fe=>{s(),m(()=>s().configured)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Mt,Ne=>{s(),m(()=>s().loading)?Ne(Tt):Ne(zt,!1)})}var Yr=C(nt,2),dr=b(Yr),ze=b(dr),ot=C(b(ze),2);{var Pt=Ne=>{var se=o_(),P=b(se);G(re=>X(P,`Last updated ${re??""}`),[()=>(r(),m(()=>H(r().updatedAt)??""))]),k(Ne,se)},_t=Ne=>{var se=i_();k(Ne,se)};$(ot,Ne=>{r(),m(()=>r().updatedAt)?Ne(Pt):Ne(_t,!1)})}var Xt=C(ze,2),Ut=b(Xt),yt=b(Ut),vn=C(dr,2),fr=b(vn);{var Tr=Ne=>{var se=l_();k(Ne,se)},Jr=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=c_(),Ue=b(qe);G(()=>X(Ue,(r(),m(()=>r().error)))),k(Fe,qe)},ke=Fe=>{var qe=S_(),Ue=me(qe);{var st=ht=>{var Qt=d_();k(ht,Qt)},gt=ht=>{var Qt=k_();mt(Qt,5,()=>(r(),m(()=>r().servers)),jn,(en,le)=>{var fn=x_(),Xn=b(fn),wt=b(Xn),Dn=b(wt),ms=b(Dn),_d=C(Dn,2),vs=b(_d);let Xo;var yd=b(vs),xd=C(vs,2);{var kd=xt=>{var pn=f_(),Tn=C(me(pn),2),tn=b(Tn);G(()=>{oe(Tn,"title",(o(le),m(()=>o(le).module))),X(tn,`Module: ${o(le),m(()=>o(le).module)??""}`)}),k(xt,pn)},Ed=xt=>{var pn=Se(),Tn=me(pn);{var tn=Fn=>{var Qr=p_(),Fr=C(me(Qr),2),Ht=b(Fr);G((Wt,zn)=>{oe(Fr,"title",Wt),X(Ht,`Command: ${zn??""}`)},[()=>(o(le),m(()=>o(le).command.join(" "))),()=>(o(le),m(()=>o(le).command.join(" ")))]),k(Fn,Qr)};$(Tn,Fn=>{o(le),m(()=>o(le).command?.length)&&Fn(tn)},!0)}k(xt,pn)};$(xd,xt=>{o(le),m(()=>o(le).module)?xt(kd):xt(Ed,!1)})}var wd=C(wt,2),Qo=b(wd),ga=b(Qo),Sd=C(ga,2),Ad=b(Sd),ba=C(Qo,2);let ei;var gs=b(ba),bs=C(ba,2);let ti;var _s=b(bs),Cd=C(Xn,2),ni=b(Cd);{var Dd=xt=>{var pn=m_(),Tn=b(pn),tn=C(b(Tn),2),Fn=b(tn);Fn.value=Fn.__value="";var Qr=C(Fn);mt(Qr,1,()=>E,jn,(Ht,Wt)=>{var zn=h_(),nn=b(zn),eu={};G(()=>{X(nn,(o(Wt),m(()=>o(Wt).label))),eu!==(eu=(o(Wt),m(()=>o(Wt).id)))&&(zn.value=(zn.__value=(o(Wt),m(()=>o(Wt).id)))??"")}),k(Ht,zn)});var Fr;or(tn),G(()=>{tn.disabled=(r(),o(le),m(()=>r().pending[o(le).id]||r().saving)),Fr!==(Fr=(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??"")))&&(tn.value=(tn.__value=(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??"")))??"",Rn(tn,(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??""))))}),J("change",tn,Ht=>I(o(le).id,Ht.target.value)),k(xt,pn)};$(ni,xt=>{o(le),m(()=>o(le).id==="shell-control")&&xt(Dd)})}var Xr=C(ni,2);let ri;var Td=b(Xr),Fd=b(Td),Md=C(Xr,2);{var Pd=xt=>{var pn=y_(),Tn=b(pn);{var tn=Ht=>{var Wt=g_();mt(Wt,5,()=>(o(le),m(()=>o(le).tools)),jn,(zn,nn)=>{var eu=v_(),ui=b(eu),ai=b(ui),Id=b(ai),Nd=C(ai,2),Od=b(Nd),Ld=C(ui,2),_a=b(Ld),Rd=C(_a,2),$d=b(Rd);G(()=>{oe(eu,"data-disabled",(o(nn),m(()=>!o(nn).enabled))),X(Id,(o(nn),m(()=>o(nn).name))),X(Od,(o(nn),m(()=>o(nn).qualified_name))),Vt(_a,(o(nn),m(()=>o(nn).enabled))),_a.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),X($d,(o(nn),m(()=>o(nn).enabled?"Enabled":"Disabled")))}),J("change",_a,zd=>ie(o(le).id,o(nn).name,zd.target.checked)),k(zn,eu)}),k(Ht,Wt)},Fn=Ht=>{var Wt=b_();k(Ht,Wt)};$(Tn,Ht=>{o(le),m(()=>o(le).tools.length)?Ht(tn):Ht(Fn,!1)})}var Qr=C(Tn,2);{var Fr=Ht=>{var Wt=__(),zn=b(Wt);G(nn=>X(zn,`Disabled tool ids: ${nn??""}`),[()=>(o(le),m(()=>o(le).disabled_tools.join(", ")))]),k(Ht,Wt)};$(Qr,Ht=>{o(le),m(()=>o(le).disabled_tools.length)&&Ht(Fr)})}G(()=>oe(pn,"id",`tools-${o(le),m(()=>o(le).id)??""}`)),k(xt,pn)};$(Md,xt=>{o(A),o(le),m(()=>o(A).has(o(le).id))&&xt(Pd)})}G((xt,pn,Tn,tn,Fn)=>{oe(fn,"data-connected",(o(le),m(()=>o(le).connected))),oe(fn,"data-pending",(r(),o(le),m(()=>r().pending[o(le).id]?"true":"false"))),oe(fn,"data-dirty",(r(),o(le),m(()=>r().pendingChanges[o(le).id]?"true":"false"))),X(ms,(o(le),m(()=>o(le).id))),Xo=St(vs,1,"",null,Xo,xt),X(yd,(o(le),m(()=>o(le).connected?"Connected":"Offline"))),Vt(ga,(o(le),m(()=>o(le).enabled))),ga.disabled=(r(),o(le),m(()=>r().pending[o(le).id]||r().saving)),X(Ad,(o(le),m(()=>o(le).enabled?"Running":"Stopped"))),ei=St(ba,1,"toggle frontend-toggle",null,ei,pn),oe(ba,"title",(o(le),m(()=>o(le).enabled?"Enable for main web frontend":"Server must be running"))),Vt(gs,(o(le),m(()=>o(le).frontend_enabled??!0))),gs.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),ti=St(bs,1,"toggle kiosk-toggle",null,ti,Tn),oe(bs,"title",(o(le),m(()=>o(le).enabled?"Enable for kiosk voice assistant":"Server must be running"))),Vt(_s,(o(le),m(()=>o(le).kiosk_enabled??!1))),_s.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),ri=St(Xr,1,"tools-toggle",null,ri,tn),oe(Xr,"aria-expanded",Fn),oe(Xr,"aria-controls",`tools-${o(le),m(()=>o(le).id)??""}`),X(Fd,`${o(le),m(()=>o(le).tool_count)??""} tool${o(le),m(()=>o(le).tool_count===1?"":"s")??""} available`)},[()=>({connected:o(le).connected,offline:!o(le).connected}),()=>({"toggle-disabled":!o(le).enabled}),()=>({"toggle-disabled":!o(le).enabled}),()=>({open:o(A).has(o(le).id)}),()=>(o(A),o(le),m(()=>o(A).has(o(le).id)))]),J("change",ga,xt=>Q(o(le).id,xt.target.checked)),J("change",gs,xt=>ae(o(le).id,xt.target.checked)),J("change",_s,xt=>q(o(le).id,xt.target.checked)),J("click",Xr,()=>j(o(le).id)),k(en,fn)}),k(ht,Qt)};$(Ue,ht=>{r(),m(()=>!r().servers.length)?ht(st):ht(gt,!1)})}var Je=C(Ue,2);{var it=ht=>{var Qt=E_(),en=b(Qt);G(()=>X(en,(r(),m(()=>r().saveError)))),k(ht,Qt)};$(Je,ht=>{r(),m(()=>r().saveError)&&ht(it)})}var Ye=C(Je,2);{var dn=ht=>{var Qt=w_();k(ht,Qt)};$(Ye,ht=>{r(),m(()=>r().dirty)&&ht(dn)})}k(Fe,qe)};$(P,Fe=>{r(),m(()=>r().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(fr,Ne=>{r(),m(()=>r().loading)?Ne(Tr):Ne(Jr,!1)})}G(()=>{_e.disabled=(n(),r(),m(()=>!n().dirty||n().saving||r().saving)),xe.disabled=(u(),m(()=>u().loading||u().authorizing)),X(we,(u(),m(()=>u().authorizing?"Authorizing…":u().authorized?"Reconnect Google Services":"Connect Google Services"))),ut.disabled=(a(),m(()=>a().loading||a().authorizing)),X(Rt,(a(),m(()=>a().authorizing?"Authorizing…":a().authorized?"Reconnect Spotify":"Connect Spotify"))),Ut.disabled=(r(),m(()=>r().refreshing||r().saving||r().dirty)),X(yt,(r(),m(()=>r().refreshing?"Refreshing…":"Refresh")))}),J("click",_e,()=>f.reset()),J("click",xe,()=>void V()),J("click",ut,()=>void pe()),J("click",Ut,W),k(ye,Re)},$$slots:{default:!0,heading:(ye,Me)=>{var Re=C_();k(ye,Re)},footer:(ye,Me)=>{var Re=P_(),We=b(Re);{var Ae=_e=>{var te=D_();k(_e,te)},tt=_e=>{var te=Se(),Ee=me(te);{var ge=$e=>{var ue=T_();k($e,ue)},Te=$e=>{var ue=Se(),ve=me(ue);{var xe=be=>{var Oe=F_();k(be,Oe)},we=be=>{var Oe=M_();k(be,Oe)};$(ve,be=>{n(),r(),m(()=>n().dirty||r().dirty)?be(xe):be(we,!1)},!0)}k($e,ue)};$(Ee,$e=>{n(),r(),m(()=>n().saving||r().saving)?$e(ge):$e(Te,!1)},!0)}k(_e,te)};$(We,_e=>{r(),n(),m(()=>r().saveError||n().saveError)?_e(Ae):_e(tt,!1)})}k(ye,Re)}}})}};$(ee,Z=>{c()&&Z(De)})}k(e,ce),et(),l()}async function N_(){const e=await fetch(`${jt}/api/kiosk/stt-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk STT settings: ${e.statusText}`);return e.json()}async function O_(e){const t=await fetch(`${jt}/api/kiosk/stt-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk STT settings: ${t.statusText}`);return t.json()}async function L_(){const e=await fetch(`${jt}/api/kiosk/stt-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk STT settings: ${e.statusText}`);return e.json()}async function R_(){const e=await fetch(`${jt}/api/kiosk/tts-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk TTS settings: ${e.statusText}`);return e.json()}async function $_(e){const t=await fetch(`${jt}/api/kiosk/tts-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk TTS settings: ${t.statusText}`);return t.json()}async function z_(){const e=await fetch(`${jt}/api/kiosk/tts-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk TTS settings: ${e.statusText}`);return e.json()}async function U_(){const e=await fetch(`${jt}/api/kiosk/tts-voices`);if(!e.ok)throw new Error(`Failed to fetch TTS voices: ${e.statusText}`);return e.json()}async function B_(){const e=await fetch(`${jt}/api/kiosk/ui/settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk UI settings: ${e.statusText}`);return e.json()}async function j_(e){const t=await fetch(`${jt}/api/kiosk/ui/settings`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk UI settings: ${t.statusText}`);return t.json()}async function q_(){const e=await fetch(`${jt}/api/kiosk/llm-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk LLM settings: ${e.statusText}`);return e.json()}async function H_(e){const t=await fetch(`${jt}/api/kiosk/llm-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk LLM settings: ${t.statusText}`);return t.json()}async function W_(){const e=await fetch(`${jt}/api/kiosk/llm-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk LLM settings: ${e.statusText}`);return e.json()}const V_={eot_threshold:.7,eot_timeout_ms:5e3,eager_eot_threshold:null,keyterms:[]},Ta={enabled:!0,provider:"deepgram",model:"aura-asteria-en",sample_rate:16e3},G_={idle_return_delay_ms:1e4},K_={llm_model:"openai/gpt-4o-mini",system_prompt:"You are a helpful voice assistant who replies succinctly.",temperature:.7,max_tokens:500,conversation_mode:!1,conversation_timeout_seconds:10},Z_={...V_,enabled:Ta.enabled,provider:Ta.provider,tts_model:Ta.model,sample_rate:Ta.sample_rate,...G_,...K_};function Y_(e){return JSON.parse(JSON.stringify(e))}function gd(){return Y_(Z_)}function J_(){const e=kt(gd());let t=!1,n=!1;async function r(){if(n)return at(e);n=!0;try{const[s,i,l,c]=await Promise.all([N_(),R_(),B_(),q_()]),d={...s,enabled:i.enabled,provider:i.provider,tts_model:i.model,sample_rate:i.sample_rate,...l,llm_model:c.model,system_prompt:c.system_prompt,temperature:c.temperature,max_tokens:c.max_tokens,conversation_mode:c.conversation_mode,conversation_timeout_seconds:c.conversation_timeout_seconds};return e.set(d),t=!0,d}catch(s){return console.error("Failed to load kiosk settings:",s),at(e)}finally{n=!1}}async function u(s){try{const i={},l={},c={};s.eot_threshold!==void 0&&(i.eot_threshold=s.eot_threshold),s.eot_timeout_ms!==void 0&&(i.eot_timeout_ms=s.eot_timeout_ms),s.eager_eot_threshold!==void 0&&(i.eager_eot_threshold=s.eager_eot_threshold),s.keyterms!==void 0&&(i.keyterms=s.keyterms),s.enabled!==void 0&&(l.enabled=s.enabled),s.provider!==void 0&&(l.provider=s.provider),s.tts_model!==void 0&&(l.model=s.tts_model),s.sample_rate!==void 0&&(l.sample_rate=s.sample_rate),s.idle_return_delay_ms!==void 0&&(c.idle_return_delay_ms=s.idle_return_delay_ms);const d={};s.llm_model!==void 0&&(d.model=s.llm_model),s.system_prompt!==void 0&&(d.system_prompt=s.system_prompt),s.temperature!==void 0&&(d.temperature=s.temperature),s.max_tokens!==void 0&&(d.max_tokens=s.max_tokens),s.conversation_mode!==void 0&&(d.conversation_mode=s.conversation_mode),s.conversation_timeout_seconds!==void 0&&(d.conversation_timeout_seconds=s.conversation_timeout_seconds);const f=[];return Object.keys(i).length>0&&f.push(O_(i)),Object.keys(l).length>0&&f.push($_(l)),Object.keys(c).length>0&&f.push(j_(c)),Object.keys(d).length>0&&f.push(H_(d)),await Promise.all(f),await r()}catch(i){throw console.error("Failed to save kiosk settings:",i),i}}async function a(){try{const[s,i,l]=await Promise.all([L_(),z_(),W_()]),c=at(e),d={...s,enabled:i.enabled,provider:i.provider,tts_model:i.model,sample_rate:i.sample_rate,idle_return_delay_ms:c.idle_return_delay_ms,llm_model:l.model,system_prompt:l.system_prompt,temperature:l.temperature,max_tokens:l.max_tokens,conversation_mode:l.conversation_mode,conversation_timeout_seconds:l.conversation_timeout_seconds};return e.set(d),d}catch(s){throw console.error("Failed to reset kiosk settings:",s),s}}return{subscribe:e.subscribe,load:r,save:u,reset:a,get isLoaded(){return t},get current(){return at(e)}}}const Qs=J_();var X_=M('

                Loading settings…

                '),Q_=M('
                Eager EOT Threshold
                0.3 (eager) 0.9 (conservative)
                '),e3=M(""),t3=M('
                '),n3=M(""),r3=M(`
                Speech Recognition Deepgram Flux end-of-turn detection settings.
                EOT Threshold
                0.5 (fast) 0.9 (reliable)
                EOT Timeout
                500ms 10s
                Advanced Optional fine-tuning options.
                Display Kiosk screen behavior settings.
                Return to Clock
                1s 60s
                Text-to-Speech Voice synthesis settings for assistant responses.
                Language Model Configure the AI model and behavior.
                Temperature
                0 (focused) 2 (creative)
                Max Tokens
                50 (short) 2000 (long)
                Keyterms Words to boost recognition (one per line, up to 100).
                `),u3=M('

                Kiosk settings

                Configure the voice assistant kiosk.

                ',1),a3=M(''),s3=M(' '),o3=M('Saving changes…'),i3=M('Pending changes; closing this modal will save.'),l3=M('Changes save when you close this modal.'),c3=M('
                ');function d3(e,t){Qe(t,!1);const n=()=>Xe(wr,"$modelStore",r),[r,u]=Gn();let a=U([]),s=ne(t,"open",8,!1);const i=Et();let l=U(gd()),c=U(!1),d=U(!1),f=U(!0),h=U(null),v=U(!1),p=!1;async function w(){D(f,!0);try{const[R,z]=await Promise.all([Qs.load(),U_(),wr.loadModels()]);D(l,{...R}),D(a,z)}catch{D(h,"Failed to load settings")}finally{D(f,!1)}}function y(){p||o(d)||(p=!0,(async()=>(await A()&&i("close"),p=!1))())}function _(){D(c,!0),D(h,null)}async function A(){if(!o(c))return!0;D(d,!0),D(h,null);try{const R=await Qs.save(o(l));return D(l,{...R}),D(c,!1),!0}catch(R){const z=R instanceof Error?R.message:"Failed to save settings.";return D(h,z),!1}finally{D(d,!1)}}async function E(){D(d,!0);try{const R=await Qs.reset();D(l,{...R}),D(c,!1),D(h,null)}catch{D(h,"Failed to reset settings")}finally{D(d,!1)}}function g(R,z,F){return`${(R-z)/(F-z)*100}%`}fe(()=>(L(s()),o(v),o(c),o(d)),()=>{s()&&!o(v)?(D(v,!0),D(c,!1),D(d,!1),D(h,null),w()):!s()&&o(v)&&(D(v,!1),o(c)&&!o(d)&&A())}),At(),rt();var S=Se(),x=me(S);{var T=R=>{cr(R,{get open(){return s()},labelledBy:"kiosk-settings-title",closeLabel:"Close kiosk settings",$$events:{close:()=>void y()},children:(z,F)=>{var I=Se(),K=me(I);{var N=q=>{var ae=X_();k(q,ae)},Q=q=>{var ae=r3(),ie=b(ae),Y=C(b(ie),2),W=b(Y),O=b(W),V=b(O),he=C(b(V),2),pe=b(he),H=C(V,2),j=C(W,2),ce=b(j),ee=b(ce),De=C(b(ee),2),Z=b(De),B=C(ee,2),ye=C(ie,2),Me=C(b(ye),2),Re=b(Me),We=C(Me,2);{var Ae=ze=>{var ot=Q_(),Pt=b(ot),_t=C(b(Pt),2),Xt=b(_t),Ut=C(Pt,2);G((yt,vn)=>{X(Xt,yt),Ot(Ut,(o(l),m(()=>o(l).eager_eot_threshold??.5))),Ut.disabled=o(d),nr(Ut,`--slider-fill: ${vn??""}`)},[()=>(o(l),m(()=>o(l).eager_eot_threshold?.toFixed(2)??"—")),()=>(o(l),m(()=>g(o(l).eager_eot_threshold??.5,.3,.9)))]),J("input",Ut,yt=>{D(l,{...o(l),eager_eot_threshold:parseFloat(yt.target.value)}),_()}),k(ze,ot)};$(We,ze=>{o(l),m(()=>o(l).eager_eot_threshold!==null)&&ze(Ae)})}var tt=C(ye,2),_e=C(b(tt),2),te=b(_e),Ee=b(te),ge=b(Ee),Te=C(b(ge),2),$e=b(Te),ue=C(ge,2),ve=C(tt,2),xe=C(b(ve),2),we=b(xe),be=b(we),Oe=C(we,2);{var Ce=ze=>{var ot=t3(),Pt=b(ot),_t=C(b(Pt),2);mt(_t,5,()=>o(a),jn,(Ut,yt)=>{var vn=e3(),fr=b(vn),Tr={};G(Jr=>{X(fr,Jr),Tr!==(Tr=o(yt))&&(vn.value=(vn.__value=o(yt))??"")},[()=>(o(yt),m(()=>o(yt).replace("aura-","").replace("-en","")))]),k(Ut,vn)});var Xt;or(_t),G(()=>{_t.disabled=o(d),Xt!==(Xt=(o(l),m(()=>o(l).tts_model)))&&(_t.value=(_t.__value=(o(l),m(()=>o(l).tts_model)))??"",Rn(_t,(o(l),m(()=>o(l).tts_model))))}),J("change",_t,Ut=>{D(l,{...o(l),tts_model:Ut.target.value}),_()}),k(ze,ot)};$(Oe,ze=>{o(l),m(()=>o(l).enabled)&&ze(Ce)})}var Le=C(ve,2),Be=C(b(Le),2),Ve=b(Be),je=b(Ve),Pe=C(b(je),2);mt(Pe,5,()=>(n(),m(()=>n().models)),ze=>ze.id,(ze,ot)=>{var Pt=n3(),_t=b(Pt),Xt={};G(()=>{X(_t,(o(ot),m(()=>o(ot).name??o(ot).id))),Xt!==(Xt=(o(ot),m(()=>o(ot).id)))&&(Pt.value=(Pt.__value=(o(ot),m(()=>o(ot).id)))??"")}),k(ze,Pt)});var ut;or(Pe);var Rt=C(Ve,2),qt=b(Rt),Zt=C(b(qt),2),$t=C(Rt,2),Yt=b($t),nt=b(Yt),Ge=C(b(nt),2),Ct=b(Ge),Jt=C(nt,2),de=C($t,2),Ie=b(de),vt=b(Ie),Mt=C(b(vt),2),Tt=b(Mt),zt=C(vt,2),Yr=C(Le,2),dr=C(b(Yr),2);G((ze,ot,Pt,_t,Xt,Ut,yt,vn,fr)=>{X(pe,ze),Ot(H,(o(l),m(()=>o(l).eot_threshold))),H.disabled=o(d),nr(H,`--slider-fill: ${ot??""}`),X(Z,`${o(l),m(()=>o(l).eot_timeout_ms)??""}ms`),Ot(B,(o(l),m(()=>o(l).eot_timeout_ms))),B.disabled=o(d),nr(B,`--slider-fill: ${Pt??""}`),Vt(Re,(o(l),m(()=>o(l).eager_eot_threshold!==null))),Re.disabled=o(d),X($e,`${_t??""}s`),Ot(ue,(o(l),m(()=>o(l).idle_return_delay_ms))),ue.disabled=o(d),nr(ue,`--slider-fill: ${Xt??""}`),Vt(be,(o(l),m(()=>o(l).enabled))),be.disabled=o(d),Pe.disabled=o(d),ut!==(ut=(o(l),m(()=>o(l).llm_model)))&&(Pe.value=(Pe.__value=(o(l),m(()=>o(l).llm_model)))??"",Rn(Pe,(o(l),m(()=>o(l).llm_model)))),Zt.disabled=o(d),Ot(Zt,(o(l),m(()=>o(l).system_prompt??""))),X(Ct,Ut),Ot(Jt,(o(l),m(()=>o(l).temperature))),Jt.disabled=o(d),nr(Jt,`--slider-fill: ${yt??""}`),X(Tt,(o(l),m(()=>o(l).max_tokens))),Ot(zt,(o(l),m(()=>o(l).max_tokens))),zt.disabled=o(d),nr(zt,`--slider-fill: ${vn??""}`),dr.disabled=o(d),Ot(dr,fr)},[()=>(o(l),m(()=>o(l).eot_threshold.toFixed(2))),()=>(o(l),m(()=>g(o(l).eot_threshold,.5,.9))),()=>(o(l),m(()=>g(o(l).eot_timeout_ms,500,1e4))),()=>(o(l),m(()=>(o(l).idle_return_delay_ms/1e3).toFixed(0))),()=>(o(l),m(()=>g(o(l).idle_return_delay_ms,1e3,6e4))),()=>(o(l),m(()=>o(l).temperature.toFixed(1))),()=>(o(l),m(()=>g(o(l).temperature,0,2))),()=>(o(l),m(()=>g(o(l).max_tokens,50,2e3))),()=>(o(l),m(()=>o(l).keyterms.join(` +`)))]),J("input",H,ze=>{D(l,{...o(l),eot_threshold:parseFloat(ze.target.value)}),_()}),J("input",B,ze=>{D(l,{...o(l),eot_timeout_ms:parseInt(ze.target.value,10)}),_()}),J("change",Re,ze=>{const ot=ze.target.checked;D(l,{...o(l),eager_eot_threshold:ot?.5:null}),_()}),J("input",ue,ze=>{D(l,{...o(l),idle_return_delay_ms:parseInt(ze.target.value,10)}),_()}),J("change",be,ze=>{D(l,{...o(l),enabled:ze.target.checked}),_()}),J("change",Pe,ze=>{D(l,{...o(l),llm_model:ze.target.value}),_()}),J("input",Zt,ze=>{D(l,{...o(l),system_prompt:ze.target.value||null}),_()}),J("input",Jt,ze=>{D(l,{...o(l),temperature:parseFloat(ze.target.value)}),_()}),J("input",zt,ze=>{D(l,{...o(l),max_tokens:parseInt(ze.target.value,10)}),_()}),J("input",dr,ze=>{const Pt=ze.target.value.split(` +`).map(_t=>_t.trim()).filter(_t=>_t.length>0).slice(0,100);D(l,{...o(l),keyterms:Pt}),_()}),k(q,ae)};$(K,q=>{o(f)?q(N):q(Q,!1)})}k(z,I)},$$slots:{default:!0,heading:(z,F)=>{var I=u3();k(z,I)},actions:(z,F)=>{var I=a3();G(()=>I.disabled=o(d)||o(f)),J("click",I,E),k(z,I)},footer:(z,F)=>{var I=c3(),K=b(I);{var N=q=>{var ae=s3(),ie=b(ae);G(()=>X(ie,o(h))),k(q,ae)},Q=q=>{var ae=Se(),ie=me(ae);{var Y=O=>{var V=o3();k(O,V)},W=O=>{var V=Se(),he=me(V);{var pe=j=>{var ce=i3();k(j,ce)},H=j=>{var ce=l3();k(j,ce)};$(he,j=>{o(c)?j(pe):j(H,!1)},!0)}k(O,V)};$(ie,O=>{o(d)?O(Y):O(W,!1)},!0)}k(q,ae)};$(K,q=>{o(h)?q(N):q(Q,!1)})}k(z,I)}}})};$(x,R=>{s()&&R(T)})}k(e,S),et(),u()}var f3=M('
                ');function xo(e,t){Qe(t,!1);let n=ne(t,"title",8),r=ne(t,"startOpen",8,!1),u=ne(t,"forceOpen",8,!1),a=U(r()),s=U(!1);const i=c(n());function l(){u()||D(a,!o(a))}function c(A){const E=A.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"section",g=Math.abs(Array.from(A).reduce((S,x)=>S*31+x.charCodeAt(0),7)).toString(36);return`filter-section-${E}-${g}`}fe(()=>(L(u()),o(a),o(s),L(r())),()=>{u()?(o(a)||D(a,!0),D(s,!0)):o(s)&&(D(a,r()),D(s,!1))}),At(),rt();var d=f3(),f=b(d),h=b(f);let v;var p=b(h),w=b(p),y=C(f,2),_=b(y);Gt(_,t,"default",{}),G(A=>{St(d,1,`filter-section ${o(a)?"expanded":"collapsed"}`,"svelte-10u46cr"),v=St(h,1,"toggle svelte-10u46cr",null,v,A),oe(h,"aria-expanded",o(a)),oe(h,"aria-controls",i),oe(h,"aria-disabled",u()),X(w,n()),oe(y,"id",i),oe(y,"hidden",!o(a))},[()=>({locked:u()})]),J("click",h,l),k(e,d),et()}var p3=M('
                ');function h3(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U(),i=U(),l=Et();let c=ne(t,"id",8),d=ne(t,"min",8,0),f=ne(t,"max",8,100),h=ne(t,"step",8,1),v=ne(t,"value",24,()=>({min:d(),max:f()})),p=ne(t,"disabled",8,!1),w=ne(t,"ariaLabelMin",8,"Minimum value"),y=ne(t,"ariaLabelMax",8,"Maximum value");const _=6;function A(I,K,N){return!Number.isFinite(I)||IN?N:Number(I.toFixed(_))}function E(I,K,N){const Q=N-K;return!Number.isFinite(Q)||Q<=0?0:(I-K)/Q*100}function g(I,K){const N={min:I,max:K};l("input",N),l("change",N)}function S(I){const K=I.target,N=A(Number(K.value),o(n),o(a));if(N>o(a)){g(o(a),o(a));return}g(N,o(a))}function x(I){const K=I.target,N=A(Number(K.value),o(u),o(r));if(NL(d()),()=>{D(n,Number.isFinite(d())?d():0)}),fe(()=>(L(f()),o(n)),()=>{D(r,Number.isFinite(f())?f():o(n))}),fe(()=>(L(v()),o(n),o(r)),()=>{D(u,A(v()?.min??o(n),o(n),o(r)))}),fe(()=>(L(v()),o(r),o(n)),()=>{D(a,A(v()?.max??o(r),o(n),o(r)))}),fe(()=>(o(u),o(a)),()=>{o(u)>o(a)&&D(u,o(a))}),fe(()=>(o(u),o(n),o(r)),()=>{D(s,E(o(u),o(n),o(r)))}),fe(()=>(o(a),o(n),o(r)),()=>{D(i,E(o(a),o(n),o(r)))}),At(),rt();var T=p3(),R=C(b(T),2),z=C(R,2),F=C(z,2);G(()=>{oe(T,"data-disabled",p()),nr(R,`left: ${o(s)}%; right: ${100-o(i)}%;`),oe(z,"id",c()?`${c()}-min`:void 0),oe(z,"min",o(n)),oe(z,"max",o(a)),oe(z,"step",h()),Ot(z,o(u)),oe(z,"aria-label",w()),z.disabled=p(),oe(F,"id",c()?`${c()}-max`:void 0),oe(F,"min",o(u)),oe(F,"max",o(r)),oe(F,"step",h()),Ot(F,o(a)),oe(F,"aria-label",y()),F.disabled=p()}),J("input",z,S),J("input",F,x),k(e,T),et()}var m3=M('

                '),v3=M(''),g3=M('
                ');function lu(e,t){Qe(t,!1);let n=ne(t,"title",8),r=ne(t,"options",24,()=>[]),u=ne(t,"selected",24,()=>[]),a=ne(t,"excluded",24,()=>[]),s=ne(t,"emptyMessage",8,"No options available."),i=ne(t,"variant",8,"default");const l=Et();let c=U([]);function d(p){l("toggle",p)}function f(p){return p.trim().toLowerCase()}function h(p,w){if(p.length===0)return!1;const y=f(w);return y?p.some(_=>f(_)===y):!1}function v(p){return h(u(),p)?"include":h(a(),p)?"exclude":"neutral"}fe(()=>L(r()),()=>{D(c,r().map(p=>{const w=v(p);return{value:p,state:w,pressed:w==="include"?"true":w==="exclude"?"mixed":"false"}}))}),At(),rt();{let p=ct(()=>(L(u()),L(a()),m(()=>u().length+a().length>0)));xo(e,{get title(){return n()},get forceOpen(){return o(p)},children:(w,y)=>{var _=g3(),A=b(_);{var E=S=>{var x=m3(),T=b(x);G(()=>X(T,s())),k(S,x)},g=S=>{var x=Se(),T=me(x);mt(T,1,()=>o(c),({value:R,state:z,pressed:F})=>R,(R,z)=>{let F=()=>o(z).value,I=()=>o(z).state,K=()=>o(z).pressed;var N=v3();let Q;var q=b(N),ae=b(q);G(ie=>{Q=St(N,1,"pill svelte-2m3fny",null,Q,ie),oe(N,"aria-pressed",K()),oe(N,"data-state",I()),X(ae,F())},[()=>({active:I()==="include",exclude:I()==="exclude"})]),J("click",N,()=>d(F())),k(R,N)}),k(S,x)};$(A,S=>{L(r()),m(()=>r().length===0)?S(E):S(g,!1)})}G(()=>oe(_,"data-variant",i())),k(w,_)},$$slots:{default:!0}})}et()}const Jo=1e-9,va=[4e3,16e3,32e3,64e3,128e3,256e3,1e6],aa=va.length,Ju=0;function b3(e){return!Number.isFinite(e)||e<=0?"Any":e>=1e6?"1M":e>=1e3?`${Math.round(e/1e3)}K`:`${e}`}const El=["Any",...va.map(e=>b3(e))],Zr=[0,.1,.2,.5,1,5,10],zr=Zr.length,mu=zr,wl="$10+";function Wu(e){if(e<=0)return"FREE";const t=Math.abs(e),n=t>=10||t>=1?0:t>=.1?1:t>=.01?2:3;return`$${e.toFixed(n).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")}`}const eo=Zr.map(e=>Wu(e));function ju(e,t,n){return!Number.isFinite(e)||en?n:Math.round(e)}function bd(e){let t=0,n=Number.POSITIVE_INFINITY;for(let r=0;rMath.abs(n-e)<=Jo);return t>=0?t:bd(e)}function x3(e){if(e===null)return mu;const t=Zr.findIndex(n=>Math.abs(n-e)<=Jo);return t>=0?t:bd(e)}function k3(e){if(e===null||e<=0)return Ju;for(let t=0;t=mu)return null;const t=Math.min(Math.max(e,0),zr-1);return Zr[t]}function A3(e){if(!e)return 0;let t=0;e.search.trim()&&(t+=1);const n=r=>{t+=r.include.length+r.exclude.length};return n(e.inputModalities),n(e.outputModalities),n(e.series),n(e.providers),n(e.supportedParameters),n(e.moderation),e.minContext!==null&&(t+=1),e.minPromptPrice!==null&&(t+=1),e.maxPromptPrice!==null&&(t+=1),t}var C3=M('

                No context metadata available.

                '),D3=M('

                '),T3=M(' '),F3=M('
                Minimum tokens
                '),M3=M('

                No pricing metadata available.

                '),P3=M('

                '),I3=M(' '),N3=M('
                '),O3=M('
                Prompt price (per 1M tokens)
                '),L3=M('');function R3(e,t){Qe(t,!1);const n=()=>Xe(i,"$facets",a),r=()=>Xe(l,"$filters",a),u=()=>Xe(E,"$activeFilters",a),[a,s]=Gn(),{facets:i,filters:l,toggleInputModality:c,toggleOutputModality:d,toggleSeries:f,toggleProvider:h,toggleSupportedParameter:v,toggleModeration:p,setMinContext:w,setMinPromptPrice:y,setMaxPromptPrice:_,resetFilters:A,activeFilters:E}=wr,g="context-length-slider",S="prompt-price-slider";let x=U(),T=U(null),R=U(),z=U(0),F=U(""),I=U(null),K=U(!1),N=U(0),Q=U([]),q=U(!1),ae=U({min:0,max:0}),ie=U(""),Y=U([]);function W(_e){if(o(K)){w(null);return}const te=ju(_e,Ju,aa);w(E3(te))}function O(_e){if(o(q)){y(null),_(null);return}const te=_e.detail,Ee=ju(te.min,0,zr-1),ge=ju(te.max,0,mu);y(w3(Ee)),_(S3(ge))}fe(()=>n(),()=>{D(T,n())}),fe(()=>r(),()=>{D(x,r())}),fe(()=>u(),()=>{D(R,u())}),fe(()=>o(x),()=>{D(z,A3(o(x)))}),fe(()=>o(z),()=>{D(F,o(z)>0?`${o(z)} active filter${o(z)===1?"":"s"}`:"All models shown.")}),fe(()=>(o(T),o(K),o(x),El),()=>{const _e=o(T)?.maxContext??null;D(I,_e),D(K,_e===null),D(N,o(K)?Ju:k3(o(x)?.minContext??null)),D(Q,o(K)?[]:El)}),fe(()=>o(T),()=>{const _e=o(T)?.maxPromptPrice??null;D(q,_e===null)}),fe(()=>(o(q),o(x),zr),()=>{D(ae,(()=>{if(o(q))return{min:0,max:mu};const _e=y3(o(x)?.minPromptPrice??null),te=x3(o(x)?.maxPromptPrice??null),Ee=ju(_e,0,zr-1),ge=ju(te,0,mu);return Ee>ge?{min:ge,max:ge}:{min:Ee,max:ge}})())}),fe(()=>(o(x),wl),()=>{D(ie,(()=>{const _e=o(x)?.minPromptPrice,te=o(x)?.maxPromptPrice,Ee=_e===null?eo[0]:Wu(_e),ge=te===null?wl:Wu(te);return`${Ee} – ${ge}`})())}),fe(()=>(o(q),eo),()=>{D(Y,o(q)?[]:eo)}),At(),rt();var V=L3(),he=b(V),pe=b(he),H=C(b(pe),2);let j;var ce=b(H),ee=C(pe,2),De=C(he,2),Z=b(De);{let _e=ct(()=>(o(T),m(()=>o(T)?.inputModalities??[]))),te=ct(()=>(o(x),m(()=>o(x)?.inputModalities?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.inputModalities?.exclude??[])));lu(Z,{title:"Input modalities",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No modality data available.",$$events:{toggle:ge=>c(ge.detail)}})}var B=C(Z,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.outputModalities??[]))),te=ct(()=>(o(x),m(()=>o(x)?.outputModalities?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.outputModalities?.exclude??[])));lu(B,{title:"Output modalities",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No modality data available.",$$events:{toggle:ge=>d(ge.detail)}})}var ye=C(B,2);{let _e=ct(()=>(o(x),m(()=>o(x)?.minContext!==null)));xo(ye,{title:"Context length",get forceOpen(){return o(_e)},children:(te,Ee)=>{var ge=Se(),Te=me(ge);{var $e=ve=>{var xe=Se(),we=me(xe);{var be=Ce=>{var Le=C3();k(Ce,Le)},Oe=Ce=>{var Le=D3(),Be=b(Le);G(Ve=>X(Be,`All models offer ${Ve??""} context.`),[()=>(L(xa),o(I),m(()=>xa(o(I))))]),k(Ce,Le)};$(we,Ce=>{o(T),m(()=>o(T)?.maxContext===null||o(T)?.maxContext===void 0)?Ce(be):Ce(Oe,!1)})}k(ve,xe)},ue=ve=>{var xe=F3(),we=b(xe),be=C(b(we),2),Oe=b(be),Ce=C(we,2);oe(Ce,"id",g),oe(Ce,"step",1);var Le=C(Ce,2);mt(Le,7,()=>o(Q),(Be,Ve)=>Be+Ve,(Be,Ve)=>{var je=T3(),Pe=b(je);G(()=>X(Pe,o(Ve))),k(Be,je)}),G(Be=>{X(Oe,Be),oe(Ce,"min",Ju),oe(Ce,"max",aa),Ot(Ce,o(N))},[()=>(o(x),L(xa),m(()=>o(x)?.minContext===null?"Any":xa(o(x)?.minContext??0)))]),J("input",Ce,Be=>W(Number(Be.target.value))),k(ve,xe)};$(Te,ve=>{o(K)?ve($e):ve(ue,!1)})}k(te,ge)},$$slots:{default:!0}})}var Me=C(ye,2);{let _e=ct(()=>(o(x),m(()=>o(x)?.minPromptPrice!==null||o(x)?.maxPromptPrice!==null)));xo(Me,{title:"Prompt pricing",get forceOpen(){return o(_e)},children:(te,Ee)=>{var ge=Se(),Te=me(ge);{var $e=ve=>{var xe=Se(),we=me(xe);{var be=Ce=>{var Le=M3();k(Ce,Le)},Oe=Ce=>{var Le=P3(),Be=b(Le);G(Ve=>X(Be,`All models share ${Ve??""} pricing.`),[()=>(L(Wu),o(T),m(()=>Wu(o(T)?.maxPromptPrice??0)))]),k(Ce,Le)};$(we,Ce=>{o(T),m(()=>o(T)?.maxPromptPrice===null||o(T)?.maxPromptPrice===void 0)?Ce(be):Ce(Oe,!1)})}k(ve,xe)},ue=ve=>{var xe=O3(),we=b(xe),be=C(b(we),2),Oe=b(be),Ce=C(we,2);h3(Ce,{id:S,min:0,get max(){return mu},step:1,get value(){return o(ae)},ariaLabelMin:"Minimum prompt price",ariaLabelMax:"Maximum prompt price",get disabled(){return o(q)},$$events:{input:O,change:O}});var Le=C(Ce,2);{var Be=Ve=>{var je=N3();mt(je,7,()=>o(Y),(Pe,ut)=>Pe+ut,(Pe,ut)=>{var Rt=I3(),qt=b(Rt);G(()=>X(qt,o(ut))),k(Pe,Rt)}),k(Ve,je)};$(Le,Ve=>{o(Y),m(()=>o(Y).length>0)&&Ve(Be)})}G(()=>X(Oe,o(ie))),k(ve,xe)};$(Te,ve=>{o(q)?ve($e):ve(ue,!1)})}k(te,ge)},$$slots:{default:!0}})}var Re=C(Me,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.series??[]))),te=ct(()=>(o(x),m(()=>o(x)?.series?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.series?.exclude??[])));lu(Re,{title:"Series",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"Series information unavailable.",$$events:{toggle:ge=>f(ge.detail)}})}var We=C(Re,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.supportedParameters??[]))),te=ct(()=>(o(x),m(()=>o(x)?.supportedParameters?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.supportedParameters?.exclude??[])));lu(We,{title:"Supported parameters",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},variant:"columns",emptyMessage:"No parameter metadata available.",$$events:{toggle:ge=>v(ge.detail)}})}var Ae=C(We,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.providers??[]))),te=ct(()=>(o(x),m(()=>o(x)?.providers?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.providers?.exclude??[])));lu(Ae,{title:"Providers",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No provider data available.",$$events:{toggle:ge=>h(ge.detail)}})}var tt=C(Ae,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.moderation??[]))),te=ct(()=>(o(x),m(()=>o(x)?.moderation?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.moderation?.exclude??[])));lu(tt,{title:"Moderation",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},variant:"compact",emptyMessage:"No moderation metadata available.",$$events:{toggle:ge=>p(ge.detail)}})}G(_e=>{j=St(H,1,"filters-status svelte-1247vns",null,j,_e),X(ce,o(F)),ee.disabled=!o(R)},[()=>({muted:o(z)===0})]),J("click",ee,A),k(e,V),et(),s()}var $3=M(""),z3=M('
                ');function U3(e,t){Qe(t,!1);let n=ne(t,"selected",8),r=ne(t,"onSelect",8);const u=[{label:"Newest",value:"newness"},{label:"Lowest price",value:"price"},{label:"Longest context",value:"context"}];function a(c){const d=c.target;r()(d.value)}rt();var s=z3(),i=C(b(s),2);mt(i,5,()=>u,jn,(c,d)=>{var f=$3(),h=b(f),v={};G(()=>{X(h,(o(d),m(()=>o(d).label))),v!==(v=(o(d),m(()=>o(d).value)))&&(f.value=(f.__value=(o(d),m(()=>o(d).value)))??"")}),k(c,f)});var l;or(i),G(()=>{l!==(l=n())&&(i.value=(i.__value=n())??"",Rn(i,n()))}),J("change",i,a),k(e,s),et()}const B3="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M400-240%20160-480l240-240%2056%2058-142%20142h486v80H314l142%20142-56%2058Z'/%3e%3c/svg%3e";var j3=M('
                Chat

                Model Explorer

                ');function q3(e,t){Qe(t,!1);let n=ne(t,"resultCount",8,0),r=ne(t,"searchValue",8,""),u=ne(t,"onSearch",8),a=ne(t,"sort",8),s=ne(t,"onSort",8),i=ne(t,"onClose",8);function l(g){const S=g.target;S&&u()(S.value)}rt();var c=j3(),d=b(c),f=b(d),h=b(f),v=C(d,2),p=b(v),w=C(b(p),2),y=C(p,2),_=b(y),A=b(_),E=C(_,2);U3(E,{get selected(){return a()},get onSelect(){return s()}}),G(()=>{oe(h,"src",B3),Ot(w,r()),X(A,`${n()??""} result${n()===1?"":"s"}`)}),J("click",f,Oo(function(...g){i()?.apply(this,g)})),J("input",w,l),k(e,c),et()}var H3=M('
                '),W3=M('

                ');function V3(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U(),i=U(),l=U(),c=U(),d=U(),f=U(),h=U(),v=U(),p=U(),w=U(),y=U();let _=ne(t,"model",8),A=ne(t,"onSelect",8);const E=1e6;function g(O){return O&&O.split(/[\s_/-]+/).filter(Boolean).map(V=>V.charAt(0).toUpperCase()+V.slice(1)).join(" ")}function S(O){const V=new Set,he=[];for(const pe of O){const H=g(pe.trim());if(!H)continue;const j=H.toLowerCase();V.has(j)||(V.add(j),he.push(H))}return he}function x(O){if(O===null)return"Unknown";const V=O/E,he=V>=10?0:1;return`${V.toFixed(he).replace(/\.0$/,"")}M tokens`}function T(O){return O.length?O.join(", "):null}function R(O,V){if(O===null)return null;const he=mp(O);return he==="FREE"?"FREE":`${he} ${V}`}const z="/ 1M tokens";function F(O,V,he,pe){const H=R(he,pe);return H?{key:O,label:V,value:H}:null}function I(O,V,he){return he?{key:O,label:V,value:he}:null}function K(){A()(_())}function N(O){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),A()(_()))}fe(()=>L(_()),()=>{D(n,_().name??_().id)}),fe(()=>L(_()),()=>{D(r,Sc(_()))}),fe(()=>L(_()),()=>{D(u,hp(_()))}),fe(()=>L(_()),()=>{D(a,Zu(_()))}),fe(()=>o(a),()=>{D(s,x(o(a)))}),fe(()=>L(_()),()=>{D(i,$o(_()).map(O=>O.toLowerCase()))}),fe(()=>L(_()),()=>{D(l,zo(_()).map(O=>O.toLowerCase()))}),fe(()=>o(r),()=>{D(c,o(r)!==null)}),fe(()=>o(u),()=>{D(d,o(u)!==null)}),fe(()=>o(i),()=>{D(f,S(o(i)))}),fe(()=>o(l),()=>{D(h,S(o(l)))}),fe(()=>L(_()),()=>{D(v,(()=>{const O=_().provider;if(O&&typeof O=="object"){if(O.display_name)return O.display_name;if(O.slug)return O.slug}const V=_().id?.split("/")??[];return V.length>1?V[V.length-2]:null})())}),fe(()=>(o(s),o(v),o(f),o(h)),()=>{D(p,[I("context","Context",o(s)),I("provider","Provider",o(v)),I("input-modalities","Input",T(o(f))),I("output-modalities","Output",T(o(h)))].filter(O=>!!O))}),fe(()=>(o(c),o(r),o(d),o(u)),()=>{D(w,[o(c)?F("input-price","Input price",o(r),z):null,o(d)?F("output-price","Output price",o(u),z):null].filter(O=>!!O))}),fe(()=>(o(p),o(w)),()=>{D(y,[...o(p),...o(w)])}),At(),rt();var Q=W3(),q=b(Q),ae=b(q),ie=b(ae),Y=C(q,2),W=b(Y);mt(W,5,()=>o(y),O=>O.key,(O,V)=>{var he=H3(),pe=b(he),H=b(pe),j=C(pe,2),ce=b(j);G(()=>{X(H,(o(V),m(()=>o(V).label))),X(ce,(o(V),m(()=>o(V).value)))}),k(O,he)}),G(()=>{oe(Q,"aria-label",`Use model ${o(n)}`),X(ie,o(n))}),J("click",Q,K),J("keydown",Q,N),k(e,Q),et()}var G3=M(''),K3=M('

                Active filters

                ');function Z3(e,t){Qe(t,!1);let n=ne(t,"chips",24,()=>[]);const r=Et();function u(l){r("clear",l)}rt();var a=Se(),s=me(a);{var i=l=>{var c=K3(),d=C(b(c),2);mt(d,5,n,f=>f.id,(f,h)=>{var v=G3();let p;var w=b(v),y=b(w),_=b(y),A=C(y,4),E=b(A);G(g=>{p=St(v,1,"chip svelte-v6y1b4",null,p,g),oe(v,"aria-label",(o(h),m(()=>`Remove ${o(h).state==="exclude"?"excluded":"included"} filter ${o(h).categoryLabel} ${o(h).valueLabel}`))),X(_,(o(h),m(()=>o(h).categoryLabel))),X(E,`${o(h),m(()=>o(h).state==="exclude"?"Not ":"")??""}${o(h),m(()=>o(h).valueLabel)??""}`)},[()=>({include:o(h).state==="include",exclude:o(h).state==="exclude"})]),J("click",v,()=>u(o(h))),k(f,v)}),k(l,c)};$(s,l=>{L(n()),m(()=>n().length>0)&&l(i)})}k(e,a),et()}var Y3=M('

                '),J3=M("
              • "),X3=M('
                  '),Q3=M('
                  ');function ey(e,t){Qe(t,!1);let n=ne(t,"models",24,()=>[]),r=ne(t,"filtersActive",8,!1),u=ne(t,"onSelect",8),a=ne(t,"filterChips",24,()=>[]);const s=Et();function i(v){s("clearFilter",v.detail)}rt();var l=Q3(),c=b(l);Z3(c,{get chips(){return a()},$$events:{clear:i}});var d=C(c,2);{var f=v=>{var p=Y3(),w=b(p);{var y=A=>{var E=Ln("No models match your current filters.");k(A,E)},_=A=>{var E=Ln("No models available.");k(A,E)};$(w,A=>{r()?A(y):A(_,!1)})}k(v,p)},h=v=>{var p=X3();mt(p,5,n,w=>w.id,(w,y)=>{var _=J3(),A=b(_);V3(A,{get model(){return o(y)},get onSelect(){return u()}}),k(w,_)}),k(v,p)};$(d,v=>{L(n()),m(()=>n().length===0)?v(f):v(h,!1)})}k(e,l),et()}var ty=M('Active'),ny=M('
                  '),ry=M(' ',1);function uy(e,t){Qe(t,!1);const n=()=>Xe(h,"$filtered",a),r=()=>Xe(y,"$activeFilters",a),u=()=>Xe(v,"$filters",a),[a,s]=Gn(),i=U(),l=U(),c=U();let d=ne(t,"open",12,!1);const f=Et(),{filtered:h,filters:v,setSearch:p,setSort:w,activeFilters:y,setSelectionState:_}=wr,A={inputModalities:{label:"Input"},outputModalities:{label:"Output"},series:{label:"Series"},providers:{label:"Provider"},supportedParameters:{label:"Parameter"},moderation:{label:"Moderation"}},E=["inputModalities","outputModalities","series","providers","supportedParameters","moderation"],g="(max-width: 1024px)";let S=U(!1),x=U(!0),T=!1,R=U([]);const z="modal-open";let F=()=>{typeof document<"u"&&document.body.classList.remove(z)};fa(()=>F());function I(){d(!1),f("close")}function K(H){f("select",{id:H.id}),I()}function N(H){w(H)}function Q(H){p(H)}function q(H){const j=[];for(const ce of E){const ee=H[ce];if(!ee)continue;const Z=A[ce]?.label??ce;for(const B of ee.include)j.push(ae(ce,Z,B,"include"));for(const B of ee.exclude)j.push(ae(ce,Z,B,"exclude"))}return j}function ae(H,j,ce,ee){const De=ce.trim();return{id:`${H}:${ee}:${De}`,category:H,categoryLabel:j,value:De,valueLabel:ie(De),state:ee}}function ie(H){return H.replace(/[_-]/g," ")||H}function Y(H){D(S,H),H?T||D(x,!1):(D(x,!0),T=!1)}function W(){D(x,!o(x)),T=!0}function O(H){const j=H.detail;_(j.category,j.value,"neutral")}da(()=>{if(typeof window>"u")return;const H=window.matchMedia(g);Y(H.matches);const j=ce=>{Y(ce.matches)};return typeof H.addEventListener=="function"?(H.addEventListener("change",j),()=>H.removeEventListener("change",j)):(H.addListener(j),()=>H.removeListener(j))}),fe(()=>L(d()),()=>{typeof document<"u"&&(d()?document.body.classList.add(z):document.body.classList.remove(z))}),fe(()=>n(),()=>{D(i,n())}),fe(()=>r(),()=>{D(l,r())}),fe(()=>u(),()=>{D(c,u())}),fe(()=>o(c),()=>{D(R,o(c)?q(o(c)):[])}),At(),rt();var V=Se(),he=me(V);{var pe=H=>{var j=ry(),ce=me(j),ee=C(ce,2),De=b(ee);q3(De,{get resultCount(){return o(i),m(()=>o(i).length)},get searchValue(){return u(),m(()=>u().search)},onSearch:Q,get sort(){return u(),m(()=>u().sort)},onSort:N,onClose:I});var Z=C(De,2),B=b(Z);{var ye=Ae=>{var tt=ny(),_e=b(tt);let te;var Ee=C(b(_e),2);{var ge=Te=>{var $e=ty();k(Te,$e)};$(Ee,Te=>{o(l)&&Te(ge)})}G(Te=>{te=St(_e,1,"filters-toggle svelte-drtqmy",null,te,Te),oe(_e,"aria-expanded",o(x))},[()=>({open:o(x)})]),J("click",_e,W),k(Ae,tt)};$(B,Ae=>{o(S)&&Ae(ye)})}var Me=C(B,2),Re=b(Me);R3(Re,{});var We=C(Me,2);ey(We,{get models(){return o(i)},get filtersActive(){return o(l)},get filterChips(){return o(R)},onSelect:K,$$events:{clearFilter:O}}),G(()=>{oe(ee,"data-compact",o(S)),oe(Z,"data-compact",o(S)),oe(Me,"data-compact",o(S)),oe(Me,"data-open",o(x))}),J("click",ce,I),k(H,j)};$(he,H=>{d()&&H(pe)})}k(e,V),et(),s()}var ay=M(''),sy=M('
                  ');function oy(e,t){Qe(t,!1);const n=()=>Xe(T,"$selectable",c),r=()=>Xe(ea,"$chatStore",c),u=()=>Xe(R,"$activeFor",c),a=()=>Xe(Mc,"$speechState",c),s=()=>Xe(S,"$modelsLoading",c),i=()=>Xe(x,"$modelsError",c),l=()=>Xe(du,"$suggestionsStore",c),[c,d]=Gn(),{sendMessage:f,cancelStream:h,clearConversation:v,deleteMessage:p,retryMessage:w,editMessage:y,clearError:_,setModel:A}=ea,{loadModels:E,models:g,loading:S,error:x,selectable:T,activeFor:R}=wr;let z=U(""),F=U([]),I=U(),K=U(!1),N=U(!1),Q=U(!1),q=U(!1),ae=U(!1),ie=U(!1),Y=U(!1),W=U(0),O=U(!1),V=U(null),he=U(null),pe=U(null),H=U([]),j=U(null);const ce=gc;let ee=U(null),De=U(""),Z=U(""),B=U(!1);da(async()=>{await E(),await du.load();const de=await Pn.loadDefault();if(de){const Ie=await Pn.apply(de.name);Ie?.model&&A(Ie.model),await du.load()}});async function ye(){if(!o(I))return;const de=o(I).getNewSuggestion();de&&await du.add(de.label,de.text)}async function Me(de){await du.remove(de.detail.index)}fa(()=>{typeof document<"u"&&document.body.classList.remove("modal-open")});function Re(de){A(de)}function We(){r1()}function Ae(de){A(de.detail.id)}function tt(de){D(z,de)}function _e(de){r().isStreaming||p(de.detail.id)}function te(de){w(de)}function Ee(de){if(!de?.attachment)return;$e();const Ie={...de.attachment,metadata:de.attachment.metadata?{...de.attachment.metadata}:null},vt=o(F)??[],Tt=vt.some(zt=>zt.id===Ie.id||zt.displayUrl===Ie.displayUrl||zt.deliveryUrl===Ie.deliveryUrl)?vt:[...vt,Ie];D(F,Tt)}function ge(de){const Ie=r().messages.find(vt=>vt.id===de&&vt.role==="user");Ie&&(D(B,!1),D(ee,de),D(De,Ie.text),D(Z,Ie.text))}function Te(){D(ee,null),D(De,""),D(Z,"")}function $e(){o(B)||Te()}function ue(){$e()}function ve(de){if(!o(ee))return;const Ie=de.trim();if(!Ie)return;const vt=o(ee);D(B,!0),Te(),y(vt,Ie).catch(Tt=>{console.error("Failed to apply message edit",Tt)}).finally(()=>{D(B,!1)})}async function xe(de){if(de){D(N,!0),D(O,!0),D(V,null),D(he,null),D(pe,de);try{const Ie=await P0(de);D(he,Ie?.data??null)}catch(Ie){const vt=Ie instanceof Error?Ie.message:"Failed to load details.";D(V,vt)}finally{D(O,!1)}}}function we(){D(N,!1),D(pe,null),D(he,null),D(V,null)}async function be(de){const Ie=de.trim();if(Ie){D(z,Ie);try{await f({text:Ie,attachments:[]}),D(z,"")}catch(vt){console.error("Failed to send speech transcription",vt)}}}fe(()=>(o(K),o(N),o(Q),o(q),o(ae),o(ie)),()=>{typeof document<"u"&&document.body.classList.toggle("modal-open",o(K)||o(N)||o(Q)||o(q)||o(ae)||o(ie))}),fe(()=>(n(),r()),()=>{D(H,n()(r().selectedModel))}),fe(()=>(u(),r()),()=>{D(j,u()(r().selectedModel))}),fe(()=>(a(),o(W)),()=>{a().promptVersion!==o(W)&&(D(W,a().promptVersion),D(z,a().promptText))}),fe(()=>(a(),r(),Oi),()=>{if(a().pendingSubmit&&!r().isStreaming){const de=Oi();de&&be(de.text)}}),fe(()=>(o(ee),Ni),()=>{o(ee)&&Ni()}),At(),rt();var Oe=sy(),Ce=b(Oe);{let de=ct(()=>(r(),m(()=>r().messages.length>0)));Ip(Ce,{get selectableModels(){return o(H)},get selectedModel(){return r(),m(()=>r().selectedModel)},get modelsLoading(){return s()},get modelsError(){return i()},get hasMessages(){return o(de)},$$events:{openExplorer:()=>D(K,!0),clear:()=>{D(F,[]),D(z,""),v()},modelChange:Ie=>Re(Ie.detail.id),openModelSettings:()=>D(Q,!0),openSystemSettings:()=>D(q,!0),openSpeechSettings:()=>D(ae,!0),openKioskSettings:()=>D(ie,!0),openPresets:()=>D(Y,!0)}})}var Le=C(Ce,2);{var Be=de=>{Ar(bb(de,{get suggestions(){return l(),m(()=>l().items)},get deleting(){return l(),m(()=>l().deleting)},$$events:{add:ye,delete:Me,select:Ie=>tt(Ie.detail.text)},$$legacy:!0}),Ie=>D(I,Ie),()=>o(I))};$(Le,de=>{r(),m(()=>!r().messages.length)&&de(Be)})}var Ve=C(Le,2);sg(Ve,{get messages(){return r(),m(()=>r().messages)},get disableDelete(){return r(),m(()=>r().isStreaming)},$$events:{openGenerationDetails:de=>xe(de.detail.id),deleteMessage:_e,retryMessage:de=>te(de.detail.id),editMessage:de=>ge(de.detail.id),editAssistantAttachment:de=>Ee(de.detail)}});var je=C(Ve,2);{var Pe=de=>{var Ie=ay(),vt=b(Ie),Mt=b(vt),Tt=C(vt,2);G(()=>X(Mt,(r(),m(()=>r().error)))),J("click",Tt,_),k(de,Ie)};$(je,de=>{r(),m(()=>r().error)&&de(Pe)})}var ut=C(je,2);{var Rt=de=>{$1(de,{get originalValue(){return o(Z)},get saving(){return o(B)},get disabled(){return o(B)},get value(){return o(De)},set value(Ie){D(De,Ie)},$$events:{cancel:ue,submit:Ie=>ve(Ie.detail.text)},$$legacy:!0})},qt=de=>{S1(de,{get presetAttachments(){return o(F)},get isStreaming(){return r(),m(()=>r().isStreaming)},get prompt(){return o(z)},set prompt(Ie){D(z,Ie)},$$events:{submit:Ie=>f(Ie.detail),cancel:h,startDictation:We},$$legacy:!0})};$(ut,de=>{o(ee)?de(Rt):de(qt,!1)})}var Zt=C(ut,2);O1(Zt,{get open(){return o(N)},get generationId(){return o(pe)},get loading(){return o(O)},get error(){return o(V)},get data(){return o(he)},get fields(){return ce},$$events:{close:we}});var $t=C(Zt,2);Yg($t,{get open(){return o(Q)},get selectedModel(){return r(),m(()=>r().selectedModel)},get model(){return o(j)},$$events:{close:()=>D(Q,!1)}});var Yt=C($t,2);I_(Yt,{get open(){return o(q)},$$events:{close:()=>D(q,!1)}});var nt=C(Yt,2);Db(nt,{get open(){return o(ae)},$$events:{close:()=>D(ae,!1)}});var Ge=C(nt,2);d3(Ge,{get open(){return o(ie)},$$events:{close:()=>D(ie,!1)}});var Ct=C(Ge,2);pb(Ct,{get open(){return o(Y)},$$events:{close:()=>D(Y,!1)}});var Jt=C(Ct,2);uy(Jt,{get open(){return o(K)},set open(de){D(K,de)},$$events:{select:Ae},$$legacy:!0}),k(e,Oe),et(),d()}i0(oy,{target:document.getElementById("app")});export{Gn as A,bc as B,U as C,D,C as E,oe as F,or as G,Rn as H,Ot as I,ne as a,$ as b,Et as c,cy as d,J as e,M as f,k as g,et as h,rt as i,b as j,ly as k,Se as l,me as m,L as n,mt as o,Qe as p,o as q,da as r,X as s,G as t,m as u,fa as v,fe as w,Xe as x,At as y,Ar as z}; diff --git a/src/backend/static/assets/index-TxloFkvi.css b/src/backend/static/assets/index-TxloFkvi.css new file mode 100644 index 00000000..ad0cb319 --- /dev/null +++ b/src/backend/static/assets/index-TxloFkvi.css @@ -0,0 +1 @@ +:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--line-height: 1.5;--color-bg: #0b101b;--color-surface: rgba(10, 16, 28, .95);--color-surface-2: rgba(12, 18, 32, .9);--color-surface-3: rgba(11, 18, 34, .82);--color-border: rgba(37, 49, 77, .85);--color-border-strong: rgba(67, 91, 136, .6);--color-text: #f3f5ff;--color-muted: #9fb3d8;--color-subtle: #7b87a1;--color-accent: #38bdf8;--color-accent-strong: #4f46e5;--color-accent-contrast: #07101e;--color-danger: #f87171;--color-danger-strong: #fecaca;--shadow-elevated: 0 18px 48px rgba(3, 8, 20, .55);--shadow-soft: 0 12px 28px rgba(4, 8, 20, .45);--shadow-focus: 0 0 0 3px rgba(56, 189, 248, .2);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--transition-fast: .15s ease;--transition-med: .2s ease;--bp-xl: 1280px;--bp-lg: 1024px;--bp-md: 768px;--bp-sm: 640px;--bp-xs: 480px;font-family:var(--font-sans);line-height:var(--line-height);font-weight:400;color-scheme:dark;background-color:var(--color-bg);color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--color-bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.btn{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font-weight:600;line-height:1.1;cursor:pointer;transition:border-color var(--transition-med),color var(--transition-med),background var(--transition-med),box-shadow var(--transition-med),transform var(--transition-fast)}.btn:hover:not(:disabled),.btn:focus-visible:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-primary{--btn-bg: linear-gradient(135deg, rgba(56, 189, 248, .9), rgba(59, 130, 246, .9));--btn-border: transparent;--btn-color: var(--color-accent-contrast);box-shadow:0 10px 30px #38bdf840}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled){color:var(--color-accent-contrast);transform:translateY(-1px);box-shadow:0 12px 32px #38bdf859}.btn-ghost{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text)}.btn-ghost:hover:not(:disabled),.btn-ghost:focus-visible:not(:disabled){background:#10192bbf}.btn-danger{--btn-bg: rgba(139, 35, 35, .12);--btn-border: rgba(139, 35, 35, .6);--btn-color: var(--color-danger-strong)}.btn-danger:hover:not(:disabled),.btn-danger:focus-visible:not(:disabled){border-color:#fca5a5;color:#ffe4e6;background:#a02d2d33}.btn-soft{--btn-bg: rgba(79, 70, 229, .16);--btn-border: rgba(79, 70, 229, .35);--btn-color: #c7d2fe}.btn-soft:hover:not(:disabled),.btn-soft:focus-visible:not(:disabled){border-color:#6366f18c;color:#e0e7ff;background:#4f46e538}.btn-quiet{--btn-bg: var(--color-surface-3);--btn-border: rgba(71, 99, 150, .45);--btn-color: var(--color-text)}.btn-small{padding:.35rem .8rem;font-size:.86rem}.btn-icon{width:2.25rem;height:2.25rem;padding:0}.btn-tonal{--btn-bg: rgba(56, 189, 248, .12);--btn-border: rgba(56, 189, 248, .4);--btn-color: #e0f2fe}.input-control,input.styled-input,.styled-input input,.form-field input[type=text],.form-field input[type=number],.form-field input[type=email],.form-field input[type=password]{width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.48rem .65rem;font:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.input-control:focus-visible,input.styled-input:focus-visible,.styled-input input:focus-visible,.form-field input[type=text]:focus-visible,.form-field input[type=number]:focus-visible,.form-field input[type=email]:focus-visible,.form-field input[type=password]:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.input-control:disabled,input.styled-input:disabled,.styled-input input:disabled,.form-field input[type=text]:disabled,.form-field input[type=number]:disabled,.form-field input[type=email]:disabled,.form-field input[type=password]:disabled{opacity:.6;cursor:not-allowed}.select-control,select.styled-select,.styled-select select,.form-field select{appearance:none;width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#090e1aeb;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .6rem center;background-size:.9rem;color:var(--color-text);padding:.48rem 2rem .48rem .65rem;font:inherit;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.select-control:focus-visible,select.styled-select:focus-visible,.styled-select select:focus-visible,.form-field select:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-control:disabled,select.styled-select:disabled,.styled-select select:disabled,.form-field select:disabled{opacity:.6;cursor:not-allowed}.select-control option,select.styled-select option,.styled-select select option,.form-field select option{background:#0a101a;color:var(--color-text)}.textarea-control,textarea.form-field,textarea.styled-textarea{width:100%;min-height:120px;resize:vertical;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.85rem 1rem;font:inherit;line-height:1.5;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.textarea-control:focus-visible,textarea.form-field:focus-visible,textarea.styled-textarea:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.textarea-control:disabled{opacity:.6;cursor:not-allowed}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field-label,.field-label{font-size:.82rem;font-weight:600;color:#cfd8f3}.form-field-hint,.field-hint{font-size:.75rem;color:#8094bb}.topbar.svelte-1vc4gmw{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start;background:transparent;position:relative;z-index:20;padding:2rem 2rem 1rem}.topbar-content.svelte-1vc4gmw{width:100%;display:flex;align-items:center;justify-content:flex-start}.controls.svelte-1vc4gmw{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){flex:0 0 auto}.chat-header .controls .model-picker{display:flex}.chat-header .controls .model-picker,.chat-header .controls .web-search{width:auto}.preset-badge.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;border:1px solid #25314d;background:#0c1322b3;color:#c8d6ef;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.preset-badge.svelte-1vc4gmw:hover,.preset-badge.svelte-1vc4gmw:focus-visible{border-color:#38bdf8;color:#f2f6ff;background:#0c1628d9;outline:none;box-shadow:0 0 0 2px #38bdf840}.preset-badge.svelte-1vc4gmw .label:where(.svelte-1vc4gmw){text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;color:#9fb3d8}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e5edff}.preset-badge.svelte-1vc4gmw .dot:where(.svelte-1vc4gmw){width:.4rem;height:.4rem;border-radius:999px;background:#22c55e;box-shadow:0 0 0 2px #22c55e26}.preset-badge.applying.svelte-1vc4gmw .spinner:where(.svelte-1vc4gmw){width:.85rem;height:.85rem;border-radius:999px;border:2px solid rgba(148,187,233,.25);border-top-color:#38bdf8;animation:svelte-1vc4gmw-spin .9s linear infinite}@keyframes svelte-1vc4gmw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-header .controls select{appearance:none;padding:.45rem 2rem .45rem .75rem;border-radius:.5rem;background-color:#090e1aeb;color:#f3f5ff;border:1px solid rgba(37,49,77,.9);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .65rem center;background-size:.9rem;min-width:160px;font:inherit}.chat-header .controls select:hover{border-color:#38bdf8;background-color:#0c1322f2;color:#f8fafc}.chat-header .controls select:focus{outline:2px solid #38bdf8;outline-offset:2px;border-color:#38bdf8;box-shadow:none}.chat-header .controls select:disabled{opacity:.6;cursor:not-allowed;background-color:#090e1a99}.chat-header .controls select option{background:#0a101a;color:#f3f5ff}.chat-header .controls .btn{white-space:nowrap}.chat-header .controls .btn.system-settings svg{width:1.05rem;height:1.05rem}.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.75rem}.web-search-loading.svelte-1vc4gmw .status:where(.svelte-1vc4gmw){font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .4rem;border-radius:999px;border:1px solid rgba(62,90,140,.6);color:#9fb3d8}@media (max-width: 1280px){.topbar.svelte-1vc4gmw{height:auto;padding:.75rem 1.5rem 1rem}.topbar-content.svelte-1vc4gmw{flex-direction:column;align-items:stretch;gap:.75rem;width:100%;max-width:900px;margin:0 auto}.controls.svelte-1vc4gmw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%;max-width:900px;margin:0 auto;gap:.75rem;justify-items:stretch}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){width:100%;min-width:0}.chat-header .controls .btn,.chat-header .controls select,.preset-badge.svelte-1vc4gmw,.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw,.chat-header .controls .model-picker,.chat-header .controls .web-search{width:100%}.chat-header .controls .btn,.preset-badge.svelte-1vc4gmw{justify-content:center}.chat-header .controls select{min-width:0;text-align:left}.chat-header .controls .explorer{grid-column:1}.chat-header .controls .model-picker,.model-picker-loading.svelte-1vc4gmw{grid-column:2}.preset-badge.svelte-1vc4gmw{grid-column:1 / -1;order:9}.web-search-loading.svelte-1vc4gmw{justify-content:center}}@media (max-width: 1024px){.topbar.svelte-1vc4gmw{padding:.75rem 1.25rem 1rem}.controls.svelte-1vc4gmw{gap:.65rem}}@media (max-width: 768px){.topbar.svelte-1vc4gmw{padding:.75rem 1.15rem}.topbar-content.svelte-1vc4gmw,.controls.svelte-1vc4gmw{max-width:100%}.chat-header .controls .btn,.chat-header .controls select{padding:.55rem .9rem}.chat-header .controls .btn.system-settings svg{width:1rem;height:1rem}}@media (max-width: 480px){.topbar.svelte-1vc4gmw{padding:.75rem 1rem .5rem}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:20ch}}.composer.svelte-1ct3ltt{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1rem;background:transparent;position:relative;z-index:20}.composer-content.svelte-1ct3ltt{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;justify-content:flex-end;padding:0 2rem}.attachment-strip.svelte-1ct3ltt{display:flex;flex-wrap:wrap;gap:.75rem}.attachment-chip.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .35rem;border-radius:.85rem;background:#172034d9;border:1px solid rgba(67,91,136,.45)}.attachment-chip.uploading.svelte-1ct3ltt{border-color:#818cf8a6}.attachment-chip.error.svelte-1ct3ltt{border-color:#f87171a6;background:#371414bf}.attachment-chip.svelte-1ct3ltt img:where(.svelte-1ct3ltt){width:48px;height:48px;border-radius:.65rem;object-fit:cover}.chip-status.svelte-1ct3ltt{font-size:.75rem;color:#e2e8f0e6}.attachment-chip.error.svelte-1ct3ltt .chip-status:where(.svelte-1ct3ltt){color:#fecaca}.remove-attachment.svelte-1ct3ltt{appearance:none;border:none;background:#0f172ab3;color:#e2e8f0e6;border-radius:999px;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;line-height:1}.remove-attachment.svelte-1ct3ltt:hover,.remove-attachment.svelte-1ct3ltt:focus-visible{background:#4f46e5d9;color:#fff;outline:none}.composer-error.svelte-1ct3ltt{font-size:.8rem;color:#fca5a5;background:#3e141f99;border:1px solid rgba(248,113,113,.4);padding:.45rem .75rem;border-radius:.65rem}.composer-error.voice.svelte-1ct3ltt{color:#fbbf24;background:#5c3e0c99;border-color:#fbbf2466}.input-shell.svelte-1ct3ltt{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:999px;background:#0b1222d1;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex:1 1 auto;min-height:2.5rem;background:transparent;border:none;color:inherit;padding:.25rem 0;resize:none;font:inherit;line-height:1.55}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt):focus{outline:none}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt)::placeholder{color:#d0d6eb99}.icon-button.svelte-1ct3ltt{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:#172034d9;color:inherit;cursor:pointer;transition:background .12s ease}.icon-button.leading.svelte-1ct3ltt{background:#1d2945e6}.icon-button.svelte-1ct3ltt:hover,.icon-button.svelte-1ct3ltt:focus{background:#2e4065e6;outline:none}.icon-button[data-active=true].svelte-1ct3ltt{background:#4f46e5d9;color:#f8f9ff}.icon-button[data-active=true].svelte-1ct3ltt:hover,.icon-button[data-active=true].svelte-1ct3ltt:focus{background:#6366f1e6}.icon-button.svelte-1ct3ltt:disabled{opacity:.45;cursor:not-allowed}.composer-actions.svelte-1ct3ltt{display:flex;align-items:center;gap:.5rem}.send-button.svelte-1ct3ltt{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.25rem;padding:0 1.15rem;border-radius:999px;border:none;background:#3c63c8d9;color:#f3f5ff;font-weight:600;font-size:.85rem;letter-spacing:.01em;cursor:pointer;transition:background .15s ease,color .15s ease}.send-button.svelte-1ct3ltt .send-label:where(.svelte-1ct3ltt){line-height:1}.send-button.svelte-1ct3ltt:hover,.send-button.svelte-1ct3ltt:focus-visible{background:#5684e8f2;outline:none}.send-button.svelte-1ct3ltt:disabled{cursor:not-allowed;opacity:.7;background:#3c63c880;color:#dadeeee6}.stop-inline.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.35rem;background:none;border:1px solid rgba(236,72,153,.6);color:#f472b6;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.stop-inline.svelte-1ct3ltt:hover,.stop-inline.svelte-1ct3ltt:focus{border-color:#f472b6e6;color:#fecdd3;outline:none}.stop-indicator.svelte-1ct3ltt{width:.75rem;height:.75rem;border-radius:.2rem;background:linear-gradient(135deg,#f472b6,#f97316)}.sr-only.svelte-1ct3ltt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 1024px){.composer.svelte-1ct3ltt{padding:0 0 .75rem}.composer-content.svelte-1ct3ltt{padding:0 1.5rem}}@media (max-width: 768px){.composer.svelte-1ct3ltt{padding:0 0 .5rem}.composer-content.svelte-1ct3ltt{padding:0 1rem;gap:.6rem}.attachment-strip.svelte-1ct3ltt{gap:.6rem}.input-shell.svelte-1ct3ltt{flex-wrap:wrap;align-items:stretch;padding:.75rem .85rem;border-radius:1.5rem;gap:.6rem}.icon-button.leading.svelte-1ct3ltt{order:0}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex-basis:100%;order:1;min-height:3rem;padding:.25rem .1rem}.composer-actions.svelte-1ct3ltt{order:2;width:100%;justify-content:flex-end;flex-wrap:wrap;gap:.45rem}.icon-button.svelte-1ct3ltt,.send-button.svelte-1ct3ltt{height:2.4rem}}@media (max-width: 480px){.composer-content.svelte-1ct3ltt{padding:0 .75rem}.input-shell.svelte-1ct3ltt{padding:.7rem;gap:.5rem}.composer-actions.svelte-1ct3ltt{justify-content:space-between;gap:.4rem}.composer-actions.svelte-1ct3ltt>:where(.svelte-1ct3ltt){flex:1 1 calc(50% - .4rem);min-width:0}.send-button.svelte-1ct3ltt{width:100%}}.model-settings-layer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.model-settings-backdrop{position:absolute;inset:0;background:#040814a6;border:none;padding:0;margin:0;cursor:pointer}.model-settings-backdrop:focus-visible{outline:2px solid var(--color-accent)}.model-settings-modal{position:relative;width:min(640px,100%);max-height:min(80vh,720px);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.model-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(67,91,136,.45)}.model-settings-heading h2{margin:0;font-size:1.05rem;font-weight:600}.model-settings-subtitle{margin:.35rem 0 0;font-size:.8rem;color:var(--color-muted)}.model-settings-actions{display:flex;align-items:center;gap:.5rem}.model-settings-actions :global(.btn){white-space:nowrap}.model-settings-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.status{margin:0;font-size:.85rem;color:var(--color-muted)}.status.error{color:var(--color-danger-strong)}.settings-grid{display:grid;gap:1rem}.settings-stack{display:flex;flex-direction:column;gap:1.25rem}.setting{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:var(--color-surface-2)}.setting-header{display:flex;flex-direction:column;gap:.35rem}.setting-label{font-weight:600}.setting-hint{font-size:.75rem;color:#8094bb}.setting-range{display:flex;flex-direction:column;gap:.55rem}.setting-range-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.range-value{font-size:.78rem;font-weight:600;color:var(--color-text)}.range-value.default{color:#8ea7d2;font-weight:500;font-style:italic}.range-reset{background:none;border:1px solid rgba(71,99,150,.45);border-radius:999px;color:#9fb3d8;padding:.2rem .6rem;font-size:.68rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,opacity .2s ease}.range-reset:hover:not(:disabled),.range-reset:focus-visible{border-color:var(--color-accent);color:var(--color-accent);outline:none}.range-reset:disabled{opacity:.45;cursor:not-allowed}.setting-range .range-input{width:100%;appearance:none;height:.45rem;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%);position:relative}.setting-range .range-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.setting-range .range-input::-webkit-slider-runnable-track{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%)}.setting-range .range-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;margin-top:-.28rem;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-webkit-slider-thumb:hover{transform:scale(1.05)}.setting-range .range-input::-moz-range-track{height:100%;border-radius:999px;background:#3d547b59}.setting-range .range-input::-moz-range-progress{height:100%;border-radius:999px;background:#38bdf8e6}.setting-range .range-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-moz-range-thumb:hover{transform:scale(1.05)}.range-extents{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:#8094bb}.reasoning{gap:.75rem}.reasoning-controls{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.reasoning-field{display:flex;flex-direction:column;gap:.35rem}.reasoning-toggle{display:inline-flex;align-items:center;gap:.5rem}.reasoning-toggle input{width:1.1rem;height:1.1rem}.setting-boolean{display:inline-flex;align-items:center;gap:.5rem}.setting-boolean input{width:1.1rem;height:1.1rem}.model-settings-footer{padding:.85rem 1.5rem;border-top:1px solid rgba(67,91,136,.45);background:#090e1af2}@media (max-width: 640px){.model-settings-layer{padding:1.5rem}.model-settings-modal{width:100%}}.generation-modal{width:min(520px,100%);max-height:min(80vh,640px)}.generation-modal-details.svelte-1uwhn5q{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.generation-detail-row.svelte-1uwhn5q{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.6rem;background:#090e1a99}.generation-detail-row.svelte-1uwhn5q dt:where(.svelte-1uwhn5q){font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#7b87a1}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q){margin:0;font-size:.9rem;color:#f3f5ff;font-weight:500;word-break:break-word}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q) pre:where(.svelte-1uwhn5q){margin:0;white-space:pre-wrap;font-family:var(--font-mono);background:#0c1220bf;border-radius:.55rem;padding:.65rem .75rem;border:1px solid rgba(67,91,136,.25)}.message-editor.svelte-hszu4t{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1.25rem;position:relative;z-index:20}.editor-shell.svelte-hszu4t{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem;border-radius:1rem;background:#0b1222e6;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.editor-header.svelte-hszu4t{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#96a0ba}.editor-status.svelte-hszu4t{text-transform:none;font-size:.75rem;color:#b1bddcd9}textarea.svelte-hszu4t{width:100%;min-height:4rem;background:#060a14ad;border:1px solid rgba(57,82,124,.55);border-radius:.75rem;padding:.75rem 1rem;resize:vertical;color:inherit;font:inherit;line-height:1.5}textarea.svelte-hszu4t:focus{outline:none;border-color:#8aa2d2e6;box-shadow:0 0 0 1px #8aa2d28c}textarea.svelte-hszu4t:disabled{opacity:.75;cursor:not-allowed}.editor-actions.svelte-hszu4t{display:flex;justify-content:flex-end;gap:.75rem}.button.svelte-hszu4t{padding:.5rem 1.1rem;border-radius:999px;border:none;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.button.primary.svelte-hszu4t{background:#3c63c8d9;color:#f8fafc}.button.primary.svelte-hszu4t:hover,.button.primary.svelte-hszu4t:focus{background:#5684e8f2}.button.primary.svelte-hszu4t:disabled{background:#3c63c880;cursor:not-allowed}.button.secondary.svelte-hszu4t{background:#1d2945e6;color:#d1d5e5}.button.secondary.svelte-hszu4t:hover,.button.secondary.svelte-hszu4t:focus{background:#2e4065f2}.button.secondary.svelte-hszu4t:disabled{opacity:.6;cursor:not-allowed}.status.svelte-15rpl30{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.citations-modal-list.svelte-15rpl30{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.25rem}.citations-modal-item.svelte-15rpl30{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.65rem}.citations-modal-header.svelte-15rpl30{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.citations-modal-number.svelte-15rpl30{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#facc15}.citations-modal-link.svelte-15rpl30{font-size:.75rem;font-weight:600;padding:.3rem .65rem;border-radius:.4rem;background:#38bdf81f;color:#7dd3fc;text-decoration:none;border:1px solid rgba(56,189,248,.25);transition:background .14s ease,border-color .14s ease,color .14s ease}.citations-modal-link.svelte-15rpl30:hover,.citations-modal-link.svelte-15rpl30:focus-visible{background:#38bdf833;border-color:#38bdf873;color:#bae6fd;outline:none}.citations-modal-title.svelte-15rpl30{margin:0;font-size:.95rem;font-weight:600;color:#f3f5ff;line-height:1.4}.citations-modal-url.svelte-15rpl30{font-size:.75rem;color:#94addb;word-break:break-all;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.citations-modal-content.svelte-15rpl30{margin:0;font-size:.85rem;line-height:1.5;color:#e0e7ffd9;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35)}.citations-modal-meta.svelte-15rpl30{display:flex;gap:.85rem;font-size:.72rem;color:#9fb3d8bf;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.message.svelte-1cnmaqf{display:flex}.message.user.svelte-1cnmaqf{justify-content:flex-end}.message.assistant.svelte-1cnmaqf{justify-content:flex-start}.bubble.svelte-1cnmaqf{max-width:75%;padding:1rem 1.5rem;border-radius:.95rem;background:#121a2ed9;border:1px solid rgba(58,77,120,.38);position:relative}.message.user.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:#263258c7}.message.assistant.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:transparent;border:none;padding:.5rem 0}.message-meta.svelte-1cnmaqf{margin-top:.35rem;font-size:.75rem;color:#ffffffa6;display:flex}.message.assistant.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-start}.message.user.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-end}.message-meta.svelte-1cnmaqf time:where(.svelte-1cnmaqf){letter-spacing:.02em}.sender.svelte-1cnmaqf{display:flex;align-items:center;gap:.65rem;font-size:.75rem;font-weight:600;margin-bottom:.5rem;color:#7b87a1}.sender-label.svelte-1cnmaqf{text-transform:uppercase}.sender-label.svelte-1cnmaqf .sender-model:where(.svelte-1cnmaqf){text-transform:none;font-weight:500;display:inline-flex;align-items:center;gap:.35rem}.sender-token-count.svelte-1cnmaqf{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;background:#7d8baa29;color:#cbd5f5;font-size:.7rem;font-weight:600;text-transform:none;white-space:nowrap}.sender-model-text.svelte-1cnmaqf{display:inline-block}.sender-reasoning-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#c084fc;background:none;border:none;padding:0;cursor:pointer}.sender-reasoning-indicator.streaming.svelte-1cnmaqf{animation:svelte-1cnmaqf-reasoningPulse 1.25s ease-in-out infinite}.sender-reasoning-indicator.svelte-1cnmaqf:hover,.sender-reasoning-indicator.svelte-1cnmaqf:focus-visible{color:#e9d5ff;outline:none}.sender-tool-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;gap:.35rem;min-height:1.5rem;padding:.2rem .5rem;border-radius:999px;color:#38bdf8;background:#38bdf81a;border:1px solid rgba(56,189,248,.25);font-size:.75rem;font-weight:600;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease}.sender-tool-indicator.svelte-1cnmaqf:hover,.sender-tool-indicator.svelte-1cnmaqf:focus-visible{color:#7dd3fc;background:#38bdf82e;border-color:#7dd3fc8c;outline:none}.sender-tool-count.svelte-1cnmaqf{font-size:.7rem;font-weight:700}.sender-tool-tokens.svelte-1cnmaqf{font-size:.7rem;font-weight:500;color:#94e9ffe6}.sender-citation-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#facc15;background:none;border:none;padding:0;cursor:pointer}.sender-citation-indicator.svelte-1cnmaqf:hover,.sender-citation-indicator.svelte-1cnmaqf:focus-visible{color:#fde68a;outline:none}.message-content.svelte-1cnmaqf{line-height:1.55;font-size:.95rem;color:#e2e8f8;overflow:visible}.message-content.svelte-1cnmaqf p{margin:0 0 .85rem}.message-content.svelte-1cnmaqf p:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#182238cc;border-radius:.35rem;padding:.15rem .35rem;font-size:.85rem;word-break:break-word}.message-content.svelte-1cnmaqf pre{margin:0 0 1rem;background:#0d1422e6;border-radius:.65rem;border:1px solid rgba(67,91,136,.35);padding:1rem 1.1rem;overflow-x:auto}.message-content.svelte-1cnmaqf pre.copy-code-block{position:relative;padding-top:2.2rem}.message-content.svelte-1cnmaqf pre:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf pre code{background:transparent;padding:0;font-size:.85rem;display:block}.message-content.svelte-1cnmaqf .copy-code-button{position:absolute;top:.65rem;right:.75rem;width:1.85rem;height:1.85rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.5rem;background:#09101cd9;color:#d4e0f5d9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.message-content.svelte-1cnmaqf .copy-code-button:hover,.message-content.svelte-1cnmaqf .copy-code-button:focus-visible{color:#f8fafc;background:#1c263cf2;transform:translateY(-1px);outline:none}.message-content.svelte-1cnmaqf .copy-code-button:active{transform:translateY(0)}.message-content.svelte-1cnmaqf .copy-code-button.copied{color:#34d399}.message-content.svelte-1cnmaqf .copy-code-button svg{width:1rem;height:1rem;display:block}.message-content.svelte-1cnmaqf table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.85rem}.message-content.svelte-1cnmaqf table:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf th,.message-content.svelte-1cnmaqf td{border:1px solid rgba(67,91,136,.45);padding:.5rem .75rem;text-align:left;vertical-align:top}.message-content.svelte-1cnmaqf th{background:#182238d9;font-weight:600;color:#f8fafc}.message-content.svelte-1cnmaqf a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.message-content.svelte-1cnmaqf img{display:block;max-width:100%;height:auto;margin:.85rem 0}.bubble.has-attachments.svelte-1cnmaqf{max-width:100%}.message-attachments.svelte-1cnmaqf{display:flex;flex-direction:column;gap:.75rem;margin-top:.85rem;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf){margin:0;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-shell:where(.svelte-1cnmaqf){position:relative}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){display:block;width:100%;border-radius:.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#10182873;transition:transform .12s ease,border-color .12s ease}.message.user.svelte-1cnmaqf .message-attachments:where(.svelte-1cnmaqf) .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){background:#2a3b6099}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):hover,.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):focus-visible{border-color:#93c5fda6;transform:translateY(-1px);outline:none}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) img:where(.svelte-1cnmaqf){display:block;width:100%;height:auto;max-height:70vh;object-fit:contain}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf){position:absolute;left:50%;bottom:.85rem;transform:translate(-50%,8px);opacity:0;pointer-events:none;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:999px;border:1px solid rgba(147,197,253,.75);background:#080e1cd1;color:#e2e8f0;font-size:.75rem;letter-spacing:.01em;text-transform:uppercase;transition:opacity .15s ease,transform .15s ease;z-index:2}.message-attachments.svelte-1cnmaqf .attachment-shell:where(.svelte-1cnmaqf):hover .attachment-edit:where(.svelte-1cnmaqf),.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):focus-visible{opacity:1;transform:translate(-50%);pointer-events:auto;outline:none}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):hover{background:#1e2a48eb;border-color:#b4cfffd9}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf) svg{width:.85rem;height:.85rem}.message-attachments.svelte-1cnmaqf .attachment-edit-label:where(.svelte-1cnmaqf){font-weight:600}.message-actions.svelte-1cnmaqf{position:absolute;bottom:-1.6rem;display:flex;gap:.35rem;padding:.1rem .2rem;background:transparent;border:none;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5}.message.svelte-1cnmaqf:hover .message-actions:where(.svelte-1cnmaqf),.message.svelte-1cnmaqf:focus-within .message-actions:where(.svelte-1cnmaqf),.message-actions.svelte-1cnmaqf:hover{opacity:1;pointer-events:auto}.message.assistant.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){left:0;right:auto;justify-content:flex-start}.message.user.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){right:0;left:auto;justify-content:flex-end;bottom:-2.1rem}.message-action.svelte-1cnmaqf{width:1.8rem;height:1.8rem;border-radius:.5rem;border:none;background:transparent;color:#d4e0f5cc;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;position:relative;transition:color .12s ease,transform .12s ease}.message-action.svelte-1cnmaqf:hover,.message-action.svelte-1cnmaqf:focus-visible{color:#f8fafc;transform:translateY(-1px);outline:none}.message-action.svelte-1cnmaqf:active{transform:translateY(0)}.message-action.copied.svelte-1cnmaqf{color:#34d399}.message-action.svelte-1cnmaqf:disabled{opacity:.4;cursor:not-allowed;transform:none}@keyframes svelte-1cnmaqf-reasoningPulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}50%{transform:scale(1.15);filter:drop-shadow(0 0 6px rgba(192,132,252,.5))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}}.reasoning-modal-layer.svelte-2cxve6{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.reasoning-modal-backdrop.svelte-2cxve6{position:absolute;inset:0;background:#04081499;border:none;padding:0;margin:0;cursor:pointer}.reasoning-modal-backdrop.svelte-2cxve6:focus-visible{outline:2px solid #38bdf8}.reasoning-modal.svelte-2cxve6{position:relative;width:min(520px,100%);max-height:min(75vh,640px);background:#0a101cf2;border:1px solid rgba(78,54,128,.4);border-radius:1rem;box-shadow:0 18px 48px #0308148c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.reasoning-modal-header.svelte-2cxve6{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(78,54,128,.35)}.reasoning-modal-header.svelte-2cxve6 h2:where(.svelte-2cxve6){margin:0;font-size:1.05rem;font-weight:600}.reasoning-modal-subtitle.svelte-2cxve6{margin:.35rem 0 0;font-size:.75rem;color:#9f8ed2;word-break:break-all}.reasoning-modal-actions.svelte-2cxve6{display:flex;align-items:center;gap:.75rem}.modal-close.svelte-2cxve6{background:none;border:1px solid rgba(124,58,237,.4);border-radius:999px;color:#f3f5ff;padding:.35rem .9rem;cursor:pointer;font-size:.75rem}.modal-close.svelte-2cxve6:hover,.modal-close.svelte-2cxve6:focus-visible{border-color:#c084fc;color:#c084fc;outline:none}.reasoning-status.svelte-2cxve6{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;padding:.25rem .65rem;border-radius:999px;border:1px solid rgba(192,132,252,.35);color:#e9d5ff;background:#7c3aed1f}.reasoning-status.streaming.svelte-2cxve6{animation:svelte-2cxve6-reasoningStatusPulse 1.4s ease-in-out infinite}.reasoning-status-indicator.svelte-2cxve6{width:.5rem;height:.5rem;border-radius:999px;background:#c084fc;position:relative}.reasoning-modal-body.svelte-2cxve6{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.reasoning-modal-status.svelte-2cxve6{margin:0;font-size:.9rem;color:#b8a6e3}.reasoning-modal-text.svelte-2cxve6{margin:0;font-size:.88rem;line-height:1.5;white-space:pre-wrap;background:#182034d9;border-radius:.75rem;border:1px solid rgba(99,102,241,.3);padding:.85rem 1rem;color:#f3f5ff;overflow-x:auto}@keyframes svelte-2cxve6-reasoningStatusPulse{0%{box-shadow:0 0 #c084fc73}70%{box-shadow:0 0 0 10px #c084fc00}to{box-shadow:0 0 #c084fc00}}.tool-usage-modal{width:min(520px,100%);max-height:min(75vh,600px)}.tool-usage-body{padding-bottom:1.5rem}.tool-usage-modal-list.svelte-12mixwl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.tool-usage-modal-item.svelte-12mixwl{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem}.tool-usage-modal-item-header.svelte-12mixwl{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.tool-usage-modal-name.svelte-12mixwl{font-size:.95rem;font-weight:600;color:#f3f5ff}.tool-usage-modal-status-pill.svelte-12mixwl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .45rem;border-radius:999px;background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.25)}.tool-usage-modal-details.svelte-12mixwl{border-top:1px solid rgba(67,91,136,.35);padding-top:.5rem}.tool-usage-modal-summary.svelte-12mixwl{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:.02em;color:#94addb}.tool-usage-modal-summary.svelte-12mixwl::-webkit-details-marker{display:none}.tool-usage-modal-summary.svelte-12mixwl:before{content:"▸";transition:transform .2s ease;font-size:.75rem}.tool-usage-modal-details[open].svelte-12mixwl .tool-usage-modal-summary:where(.svelte-12mixwl):before{transform:rotate(90deg)}.tool-usage-modal-section.svelte-12mixwl{margin-top:.65rem;display:flex;flex-direction:column;gap:.35rem}.tool-usage-modal-section-label.svelte-12mixwl{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#7b92c4}.tool-usage-modal-block.svelte-12mixwl{margin:0;font-size:.85rem;line-height:1.5;background:#0f1626d9;border-radius:.6rem;border:1px solid rgba(67,91,136,.35);padding:.75rem .85rem;color:#dbe9ff;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl p{margin:0 0 .75rem}.tool-usage-modal-block.svelte-12mixwl p:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#1c263ccc;border-radius:.35rem;padding:.1rem .35rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl pre{margin:0 0 .85rem;background:#0d1422e6;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);padding:.85rem;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl pre.copy-code-block{position:relative;padding-top:2rem}.tool-usage-modal-block.svelte-12mixwl pre:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl .copy-code-button{position:absolute;top:.55rem;right:.6rem;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.45rem;background:#080e18d9;color:#deeaffd9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:hover,.tool-usage-modal-block.svelte-12mixwl .copy-code-button:focus-visible{color:#f1f5ff;background:#1a2436f2;transform:translateY(-1px);outline:none}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:active{transform:translateY(0)}.tool-usage-modal-block.svelte-12mixwl .copy-code-button.copied{color:#34d399}.tool-usage-modal-block.svelte-12mixwl .copy-code-button svg{width:.95rem;height:.95rem;display:block}.tool-usage-modal-block.svelte-12mixwl table{width:100%;border-collapse:collapse;margin:0 0 .75rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl table:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl th,.tool-usage-modal-block.svelte-12mixwl td{border:1px solid rgba(67,91,136,.45);padding:.45rem .6rem;text-align:left;vertical-align:top}.tool-usage-modal-block.svelte-12mixwl th{background:#182238d9;font-weight:600;color:#f1f5ff}.tool-usage-modal-block.svelte-12mixwl a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.tool-usage-status.svelte-12mixwl{font-size:.78rem}.status.svelte-1oswcu0{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.details-grid.svelte-1oswcu0{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;padding:.5rem 0}.detail-item.svelte-1oswcu0{background:#090e1a99;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.detail-item.full-width.svelte-1oswcu0{grid-column:1 / -1}.detail-label.svelte-1oswcu0{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94addb}.detail-value.svelte-1oswcu0{font-size:1.1rem;font-weight:600;color:#f3f5ff;line-height:1.3}.detail-value.engine.svelte-1oswcu0{color:#7dd3fc}.detail-value.prompt.svelte-1oswcu0{font-size:.9rem;font-weight:400;line-height:1.5;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;white-space:pre-wrap;word-break:break-word}.detail-description.svelte-1oswcu0{font-size:.8rem;color:#9fb3d8bf;line-height:1.4}@media (max-width: 640px){.details-grid.svelte-1oswcu0{grid-template-columns:1fr}}.conversation.svelte-26wxji{flex:1 1 auto;overflow-y:auto;padding:2rem 0;display:flex;flex-direction:column;gap:1.5rem;scroll-padding-top:4rem;scroll-padding-bottom:4rem;scrollbar-gutter:stable}.conversation-item.svelte-26wxji{padding:0 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.conversation.svelte-26wxji{padding:1.5rem 0;gap:1.25rem}.conversation-item.svelte-26wxji{padding:0 1.5rem}}@media (max-width: 640px){.conversation.svelte-26wxji{padding:1rem 0;gap:1rem}.conversation-item.svelte-26wxji{padding:0 1rem}}@media (max-width: 480px){.conversation-item.svelte-26wxji{padding:0 .75rem}}.presets-modal{width:min(820px,calc(100% - 2rem));max-height:min(80vh,720px)}.presets-body{display:flex;flex-direction:column;gap:1.25rem}.create-row.svelte-14pmhe{display:flex;gap:.5rem}.create-row.svelte-14pmhe input[type=text]:where(.svelte-14pmhe){flex:1;min-width:200px}.preset-list.svelte-14pmhe{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.preset-item.svelte-14pmhe{display:flex;align-items:center;gap:.75rem;border:1px solid rgba(37,49,77,.6);border-radius:.65rem;padding:.6rem .75rem;background:#0c132299}.preset-item.svelte-14pmhe .meta:where(.svelte-14pmhe){flex:1;min-width:0}.preset-item.svelte-14pmhe .name:where(.svelte-14pmhe){font-weight:600;display:flex;align-items:center;gap:.5rem}.default-badge.svelte-14pmhe{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.4)}.filters-badge.svelte-14pmhe{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#3b82f626;color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.filters-badge.svelte-14pmhe svg:where(.svelte-14pmhe){width:12px;height:12px}.preset-item.svelte-14pmhe .details:where(.svelte-14pmhe){display:flex;gap:.5rem;color:#9fb3d8;font-size:.85rem;flex-wrap:wrap}.preset-item.svelte-14pmhe .details:where(.svelte-14pmhe) .model:where(.svelte-14pmhe){color:#c7d7f4}.preset-item.svelte-14pmhe .actions:where(.svelte-14pmhe){display:inline-flex;gap:.4rem}.preset-item.svelte-14pmhe .actions:where(.svelte-14pmhe) button:where(.svelte-14pmhe){display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap;font:inherit}.suggestions.svelte-1r3jne1{display:flex;flex-wrap:wrap;gap:.75rem;padding:1.5rem 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}.suggestion-item.svelte-1r3jne1{position:relative;display:inline-flex;align-items:center}.suggestion-btn.svelte-1r3jne1{font-size:.85rem;padding:.625rem 2.5rem .625rem 1.25rem;border-radius:999px;background:#141e3366;border:1px solid rgba(57,76,114,.6);color:inherit;cursor:pointer;font:inherit}.suggestion-btn.svelte-1r3jne1:hover,.suggestion-btn.svelte-1r3jne1:focus{border-color:#8cb4ff99}.delete-btn.svelte-1r3jne1{position:absolute;right:0;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:none;background:transparent;color:#ff6b6b;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.delete-btn.svelte-1r3jne1:hover:not([disabled]){color:#f44}.delete-btn[disabled].svelte-1r3jne1{opacity:.5;cursor:not-allowed}.add-btn.svelte-1r3jne1{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .18s ease,color .18s ease}.add-btn.svelte-1r3jne1:hover,.add-btn.svelte-1r3jne1:focus-visible{transform:translateY(-1px) scale(1.04);color:#7effb8;text-shadow:0 0 6px rgba(127,255,184,.45)}.add-btn.svelte-1r3jne1:active{transform:scale(.92);text-shadow:none}.add-form.svelte-1r3jne1{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){padding:.5rem .75rem;border-radius:.5rem;background:#141e3399;border:1px solid rgba(57,76,114,.6);color:inherit;font:inherit}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1)::placeholder{color:#fff6}.add-submit-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:#14503366;border:1px solid rgba(57,114,76,.6);color:#a0e0b0;cursor:pointer;font:inherit}.add-cancel-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:transparent;border:1px solid rgba(114,57,57,.6);color:#e0a0a0;cursor:pointer;font:inherit}@media (max-width: 1024px){.suggestions.svelte-1r3jne1{padding:1.25rem 1.5rem;gap:.65rem}}@media (max-width: 768px){.suggestions.svelte-1r3jne1{padding:1rem;gap:.5rem}.suggestion-item.svelte-1r3jne1{width:100%}.suggestion-btn.svelte-1r3jne1{width:100%;text-align:center}.add-btn.svelte-1r3jne1,.add-form.svelte-1r3jne1{width:100%}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){flex:1;min-width:120px}}@media (max-width: 480px){.suggestions.svelte-1r3jne1{padding:.85rem .75rem;gap:.45rem}}.speech-settings-modal{width:min(640px,100%)}.speech-settings-body{display:flex;flex-direction:column;gap:1.25rem}.speech-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220f0;padding:1.15rem;display:flex;flex-direction:column;gap:1rem}.speech-card-header{display:flex;flex-direction:column;gap:.3rem}.speech-card-header h3{margin:0;font-size:.95rem;font-weight:600}.speech-card-header p{margin:0;font-size:.78rem;color:#8094bb}.model-presets-row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.speech-field{display:flex;flex-direction:column;gap:.4rem}.speech-field .field-label,.speech-field label{font-size:.8rem;font-weight:600}.presets-field .speech-presets{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.toggle-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.toggle-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:.75rem;border:1px solid rgba(71,99,150,.45);background:#0a101cd9}.toggle-item input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.toggle-item span{font-size:.82rem}.timing-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.auto-submit-block{display:flex;flex-direction:column;gap:.75rem;border:1px solid rgba(71,99,150,.45);border-radius:.85rem;padding:.85rem 1rem;background:#0a101cd9}.auto-submit-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.inline-checkbox{display:inline-flex;align-items:center;gap:.5rem}.inline-checkbox input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.delay-inline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.delay-inline input[type=number]{width:120px}.delay-label{font-size:.78rem;font-weight:500;color:#cbd5f5}.speech-hint{font-size:.72rem;color:#8094bb}.model-settings-footer .status{font-size:.78rem}.model-settings-footer .status[data-variant=success]{color:#34d399}.model-settings-footer .status[data-variant=error]{color:#f87171}.model-settings-footer .status[data-variant=pending]{color:#facc15}@media (max-width: 560px){.model-presets-row{grid-template-columns:minmax(0,1fr)}.delay-inline input[type=number]{width:min(200px,100%)}}@media (max-width: 440px){.delay-inline{flex-direction:column;align-items:flex-start}}.system-settings-layer{z-index:150}.system-settings-modal{width:min(720px,100%)}.system-settings-header{align-items:center}.system-settings-body{display:flex;flex-direction:column;gap:1.25rem}.system-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220eb;padding:1.1rem;display:flex;flex-direction:column;gap:.9rem}.system-card-body{display:flex;flex-direction:column;gap:.75rem}.system-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.system-card-header h3{margin:0;font-size:.95rem;font-weight:600}.system-card-caption{margin:.35rem 0 0;font-size:.78rem;color:#8094bb}.system-card-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.status.success{color:#34d399}.google-auth-body{gap:.65rem}.google-auth-email{color:#38bdf8;font-weight:600}.google-auth-actions{display:flex;align-items:center;gap:.5rem}.google-services-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));font-size:.8rem;color:#9fb6e3}.google-services-list li:before{content:"•";color:#38bdf8;margin-right:.45rem}.system-prompt{min-height:140px;line-height:1.45}.server-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.server-row{border:1px solid rgba(71,99,150,.35);border-radius:.75rem;padding:.85rem;background:#080d18e6;display:flex;flex-direction:column;gap:.75rem}.server-row[data-pending=true]{opacity:.6}.server-row-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.server-toggles{display:flex;align-items:center;gap:1rem;flex-shrink:0}.running-toggle{color:#34d399}.running-toggle input{accent-color:#34d399}.frontend-toggle{color:#38bdf8}.frontend-toggle input{accent-color:#38bdf8}.kiosk-toggle{color:#a78bfa}.kiosk-toggle input{accent-color:#a78bfa}.toggle-disabled{opacity:.4;cursor:not-allowed}.server-heading h4{margin:0;font-size:.9rem;font-weight:600}.server-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.75rem;color:#8ea7d2}.server-meta .connected{color:#34d399}.server-meta .offline{color:#f87171}.server-row-body{display:flex;flex-direction:column;gap:.65rem}.tools-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;border-radius:.5rem;border:1px solid rgba(71,99,150,.35);background:#0a101cb3;color:#8ea7d2;padding:.55rem .75rem;font-size:.8rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.tools-toggle:hover{border-color:#38bdf8;color:#38bdf8;background:#0a101cd9}.tools-toggle.open{border-color:#38bdf8;color:#38bdf8;background:#10192bd9}.tools-toggle__label{font-weight:500}.tools-toggle__icon{transition:transform .2s ease;flex-shrink:0}.tools-toggle.open .tools-toggle__icon{transform:rotate(180deg)}.tools-dropdown{display:flex;flex-direction:column;gap:.65rem;padding-top:.25rem}.shell-server-settings{display:flex;flex-direction:column;gap:.6rem;padding:.65rem .75rem;border:1px solid rgba(71,99,150,.3);border-radius:.65rem;background:#0a101cd9}.shell-setting{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.shell-setting__info{display:flex;flex-direction:column;gap:.2rem;min-width:220px;flex:1}.shell-setting .password-input-wrapper{width:100%;max-width:320px}.tool-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.tool-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .5rem;border:1px solid rgba(71,99,150,.25);border-radius:.6rem;background:#0c1220bf}.tool-row[data-disabled=true]{opacity:.7}.tool-info{display:flex;flex-direction:column;gap:.2rem}.tool-name{font-weight:600;font-size:.85rem}.tool-qualified{font-size:.7rem;color:#8094bb}.toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:#cfd8f3}.toggle input{width:1.2rem;height:1.2rem;accent-color:#38bdf8}.system-settings-footer{display:flex;align-items:center;justify-content:space-between}.status.warning{color:#fbbf24}.status.muted{color:#8094bb}.monarch-form{display:flex;flex-direction:column;gap:.85rem}.monarch-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#cfd8f3}.password-input-wrapper{display:flex;align-items:center;position:relative}.password-input-wrapper input{flex:1;padding-right:2.5rem}.password-input-wrapper .btn{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);padding:.2rem .4rem;width:auto;height:auto;border:none;background:none;color:#8094bb;box-shadow:none}.password-input-wrapper .btn:hover,.password-input-wrapper .btn:focus-visible{color:#38bdf8;box-shadow:none}.shell-setting input[type=text],.shell-setting input[type=password],.shell-setting select{width:100%;max-width:320px}.keyterms-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;resize:vertical;min-height:70px;line-height:1.4}.keyterms-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.keyterms-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.keyterms-input.svelte-10jke8k::placeholder{color:var(--color-muted);opacity:.6}.setting-select.svelte-10jke8k{display:flex;flex-direction:column;gap:.5rem}.select-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;cursor:pointer}.select-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.filter-section.svelte-10u46cr{border:1px solid #1c253f;border-radius:.9rem;padding:0;background:#0a101deb;transition:border-color .2s ease,background .2s ease}.filter-section.expanded.svelte-10u46cr{border-color:#2a3760;background:#0c1322f2}.filter-section.svelte-10u46cr header:where(.svelte-10u46cr){margin:0}.toggle.svelte-10u46cr{width:100%;border:none;background:none;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.95rem 1.1rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:color .2s ease}.toggle.svelte-10u46cr:hover,.toggle.svelte-10u46cr:focus-visible{color:#38bdf8}.toggle.locked.svelte-10u46cr{cursor:default;pointer-events:none;color:inherit}.toggle.svelte-10u46cr:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.toggle.svelte-10u46cr:focus:not(:focus-visible){outline:none}.title.svelte-10u46cr{flex:1;text-align:left}.chevron.svelte-10u46cr{width:.9rem;height:.9rem;position:relative;transition:transform .25s ease}.chevron.svelte-10u46cr:before{content:"";position:absolute;inset:0;mask:url('data:image/svg+xml,%3Csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath fill="white" d="m8.59 16.59 1.41 1.41L16 12l-5.99-5.99-1.41 1.41L13.17 12z"/%3E%3C/svg%3E') center / contain no-repeat;background:currentColor}.filter-section.expanded.svelte-10u46cr .chevron:where(.svelte-10u46cr){transform:rotate(90deg)}.content.svelte-10u46cr{padding:1rem 1.1rem 1.2rem;border-top:1px solid rgba(28,37,63,.75)}.filter-section.collapsed.svelte-10u46cr .content:where(.svelte-10u46cr){display:none}.range-slider.svelte-1q5g18c{position:relative;width:100%;height:2.25rem}.range-slider[data-disabled=true].svelte-1q5g18c{opacity:.5;pointer-events:none}.track.svelte-1q5g18c,.range.svelte-1q5g18c{position:absolute;inset:50% 0 auto;transform:translateY(-50%);height:.35rem;border-radius:999px}.track.svelte-1q5g18c{background:#38538459}.range.svelte-1q5g18c{background:linear-gradient(90deg,#2563eb,#38bdf8)}input[type=range].svelte-1q5g18c{position:absolute;inset:0;margin:0;width:100%;height:100%;background:none;pointer-events:none;appearance:none;-webkit-appearance:none}input[type=range].svelte-1q5g18c::-webkit-slider-runnable-track{height:0}input[type=range].svelte-1q5g18c::-moz-range-track{height:0;background:none}input[type=range].svelte-1q5g18c::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c::-moz-range-thumb{pointer-events:auto;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c:hover::-webkit-slider-thumb,input[type=range].svelte-1q5g18c:focus-visible::-webkit-slider-thumb{transform:scale(1.05);border-color:#38bdf8}input[type=range].svelte-1q5g18c:hover::-moz-range-thumb,input[type=range].svelte-1q5g18c:focus-visible::-moz-range-thumb{transform:scale(1.05);border-color:#38bdf8}.thumb-min.svelte-1q5g18c{z-index:3}.thumb-max.svelte-1q5g18c{z-index:4}.options.svelte-2m3fny{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:start}.options[data-variant=columns].svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.options[data-variant=compact].svelte-2m3fny{display:flex;flex-wrap:wrap;gap:.4rem}.pill.svelte-2m3fny{border-radius:.5rem;border:1px solid rgba(31,42,69,.65);background:#0e1421e6;color:#d4daee;padding:.45rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease;text-align:left}.options[data-variant=compact].svelte-2m3fny .pill:where(.svelte-2m3fny){width:auto;padding:.3rem .65rem;border-radius:999px;gap:.5rem}.pill.svelte-2m3fny .label:where(.svelte-2m3fny){flex:1;white-space:normal}.indicator.svelte-2m3fny{width:.55rem;height:.55rem;border-radius:50%;background:#38bdf8;opacity:0;transition:opacity .2s ease}.pill.svelte-2m3fny:hover{border-color:#38bdf8;color:#f2f7ff;transform:translateY(-1px)}.pill.svelte-2m3fny:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.pill.svelte-2m3fny:focus:not(:focus-visible){outline:none}.pill.active.svelte-2m3fny{background:#233c68d9;border-color:#38bdf8;color:#38bdf8}.pill.active.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1}.pill.exclude.svelte-2m3fny{background:#ef444426;border-color:#f87171bf;color:#fca5a5}.pill.exclude.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1;background:#f87171}.pill.exclude.svelte-2m3fny:hover{border-color:#f87171;color:#fee2e2}.options[data-variant=compact].svelte-2m3fny .indicator:where(.svelte-2m3fny){display:none}.options[data-variant=compact].svelte-2m3fny .pill.active:where(.svelte-2m3fny){background:#38bdf826}.options[data-variant=compact].svelte-2m3fny .pill.exclude:where(.svelte-2m3fny){background:#f8717133;border-color:#f87171b3;color:#fecaca}.empty.svelte-2m3fny{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.options.svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (max-width: 480px){.options.svelte-2m3fny{grid-template-columns:1fr}}.filters-panel.svelte-1247vns{border:1px solid #141d33;border-radius:1rem;background:#080d18d9;display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem;min-height:0}.filters-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.filters-header.svelte-1247vns h3:where(.svelte-1247vns){margin:0}.filters-status.svelte-1247vns{margin:.2rem 0 0;font-size:.82rem;color:#9ca4bc}.filters-status.muted.svelte-1247vns{color:#6f7892}.filters-content.svelte-1247vns{padding:0;display:flex;flex-direction:column;gap:1rem;flex:1 1 auto;min-height:0;overflow-y:auto}.slider-group.svelte-1247vns{display:flex;flex-direction:column;gap:.85rem}.slider-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.88rem}.slider-label.svelte-1247vns{color:#b9c2d7}.slider-value.svelte-1247vns{font-variant-numeric:tabular-nums;color:#f0f4ff;font-weight:600}.slider.svelte-1247vns{width:100%;appearance:none;height:.35rem;border-radius:999px;background:#22314e99;outline:none;cursor:pointer;accent-color:#2563eb}.slider.svelte-1247vns:disabled{cursor:not-allowed;opacity:.45}.slider.svelte-1247vns::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-track{background:transparent}.slider-scale.svelte-1247vns{display:flex;justify-content:space-between;font-size:.78rem;color:#6f7892;text-transform:uppercase;letter-spacing:.04em}.price-scale.svelte-1247vns{gap:.5rem}.slider-scale.svelte-1247vns span:where(.svelte-1247vns){flex:1;text-align:center}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):first-child{text-align:left}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):last-child{text-align:right}.hint.svelte-1247vns{margin:0;font-size:.85rem;color:#7f89a3}@media (max-width: 1024px){.filters-panel.svelte-1247vns{order:-1;max-height:none}.filters-content.svelte-1247vns{max-height:none;flex:none;min-height:auto;overflow:visible}}@media (max-width: 480px){.filters-panel.svelte-1247vns{padding:1rem}}.sort.svelte-3bn1bu{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;flex-wrap:nowrap;white-space:nowrap}.sort-label.svelte-3bn1bu{color:#d4daee;font-weight:500;white-space:nowrap}.sort-select.svelte-3bn1bu{min-width:140px;flex-shrink:0}.explorer-header.svelte-d2gcy1{display:grid;grid-template-columns:1fr;align-items:start;row-gap:.75rem}.explorer-header.svelte-d2gcy1 h2:where(.svelte-d2gcy1){margin:0}.title-group.svelte-d2gcy1{display:flex;align-items:center;gap:.75rem;justify-self:start;flex-wrap:wrap}.chat-link.svelte-d2gcy1{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font-size:.88rem;font-weight:600;letter-spacing:.02em}.chat-link.svelte-d2gcy1 .label:where(.svelte-d2gcy1){line-height:1}.chat-link.svelte-d2gcy1 .icon:where(.svelte-d2gcy1){width:1.1rem;height:1.1rem;flex-shrink:0;display:block}.chat-link.svelte-d2gcy1:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}.summary.svelte-d2gcy1{margin:0;color:#8a92ac;font-size:.88rem;white-space:nowrap}.header-controls.svelte-d2gcy1{display:flex;flex-direction:column;gap:.75rem;width:min(100%,320px);justify-self:start}.search.svelte-d2gcy1{width:100%;min-width:0}.search.svelte-d2gcy1 input:where(.svelte-d2gcy1){width:100%}.meta-row.svelte-d2gcy1{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.75rem;width:auto;white-space:nowrap}.summary.svelte-d2gcy1,.meta-row.svelte-d2gcy1 .sort{flex:0 0 auto}.visually-hidden.svelte-d2gcy1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 480px){.meta-row.svelte-d2gcy1{gap:.5rem}.summary.svelte-d2gcy1{white-space:normal}}.model-card.svelte-b7ahyp{border:1px solid #1f2c48;border-radius:.85rem;padding:.85rem;display:grid;gap:.75rem;background:#0c1324;height:100%;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.model-card.svelte-b7ahyp:hover{border-color:#38bdf899;box-shadow:0 4px 18px #070c1673;transform:translateY(-1px)}.model-card.svelte-b7ahyp:focus-visible{outline:2px solid rgba(56,189,248,.9);outline-offset:2px;border-color:#38bdf8b3;box-shadow:0 0 0 4px #38bdf82e}header.svelte-b7ahyp{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem}h4.svelte-b7ahyp{margin:0;font-size:1rem;font-weight:600}.info-section.svelte-b7ahyp{display:grid}.info-grid.svelte-b7ahyp{margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.info-item.svelte-b7ahyp{display:grid;gap:.2rem;padding:.45rem .6rem;border-radius:.75rem;background:#10172bd9;border:1px solid rgba(56,83,132,.35)}.info-item.svelte-b7ahyp dt:where(.svelte-b7ahyp){margin:0;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#7d87a2}.info-item.svelte-b7ahyp dd:where(.svelte-b7ahyp){margin:0;font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2;color:#e2e8f0;word-break:break-word}.active-filters.svelte-v6y1b4{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .25rem}.title.svelte-v6y1b4{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7f89a3;margin:0}.chip-list.svelte-v6y1b4{display:flex;flex-wrap:wrap;gap:.4rem}.chip.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid rgba(31,42,69,.7);background:#0e1421e6;color:#ccd3ea;padding:.25rem .65rem;font-size:.78rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.chip.svelte-v6y1b4:hover{transform:translateY(-1px);border-color:#38bdf8}.chip.svelte-v6y1b4:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.chip.svelte-v6y1b4:focus:not(:focus-visible){outline:none}.chip.include.svelte-v6y1b4{border-color:#38bdf899;background:#1f527859;color:#e0f2ff}.chip.exclude.svelte-v6y1b4{border-color:#f87171b3;background:#6e161659;color:#fee2e2}.chip-label.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.3rem}.chip-category.svelte-v6y1b4{font-weight:600}.chip-value.svelte-v6y1b4{font-weight:500}.chip-remove.svelte-v6y1b4{font-size:.85rem;line-height:1}@media (max-width: 640px){.active-filters.svelte-v6y1b4{padding:.25rem 0}.chip.svelte-v6y1b4{font-size:.75rem}}.results.svelte-6ipifh{display:flex;flex-direction:column;gap:1.25rem;min-height:0;flex:1}.model-grid.svelte-6ipifh{list-style:none;margin:0;padding:0 .25rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;overflow-y:auto}.empty.svelte-6ipifh{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.model-grid.svelte-6ipifh{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0}}@media (max-width: 480px){.model-grid.svelte-6ipifh{grid-template-columns:1fr}}.modal-backdrop.svelte-drtqmy{position:fixed;inset:0;background:#030a16a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.model-explorer.svelte-drtqmy{position:fixed;inset:4vh;background:#080d18;border:1px solid #141d33;border-radius:1rem;padding:1.5rem;display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:1.75rem;row-gap:1.25rem;z-index:100;max-height:90vh;overflow:hidden}.model-explorer[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.explorer-header{grid-column:1;grid-row:1;align-self:start}.body.svelte-drtqmy{flex:1;min-height:0}.body[data-compact=false].svelte-drtqmy{display:contents}.body[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.body-toolbar.svelte-drtqmy{display:none}.filters-toggle.svelte-drtqmy{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;border:1px solid #25314d;background:#0b111de6;color:#f2f4f8;padding:.45rem .95rem;font-weight:600;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.filters-toggle.svelte-drtqmy:hover{border-color:#38bdf8;color:#38bdf8}.filters-toggle.open.svelte-drtqmy{border-color:#38bdf8;color:#38bdf8;background:#10192bf2}.filters-toggle__status.svelte-drtqmy{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#041225;background:#38bdf847;border-radius:999px;padding:.12rem .5rem}.filters-panel-container.svelte-drtqmy{min-height:0}.body[data-compact=false].svelte-drtqmy .filters-panel-container:where(.svelte-drtqmy){display:contents}.filters-panel-container[data-compact=true].svelte-drtqmy:not([data-open=true]){display:none}.body[data-compact=false].svelte-drtqmy .filters-panel{grid-column:1;grid-row:2;align-self:stretch}.body[data-compact=false].svelte-drtqmy .results{grid-column:2;grid-row:1 / span 2;align-self:stretch}body.modal-open{overflow:hidden}@media (max-width: 1024px){.model-explorer.svelte-drtqmy{max-height:none}.body-toolbar.svelte-drtqmy{display:flex;justify-content:space-between;align-items:center}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:min(60vh,540px);overflow-y:auto}}@media (max-width: 768px){.model-explorer.svelte-drtqmy{inset:2vh;padding:1.25rem}}@media (max-width: 640px){.model-explorer.svelte-drtqmy{inset:0;border-radius:0;height:100dvh;max-height:none;overflow-y:auto;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.body.svelte-drtqmy{gap:1rem}.filters-toggle.svelte-drtqmy{width:100%;justify-content:space-between}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:none;box-shadow:0 18px 36px #04091273}}.svelte-1n46o8q{box-sizing:border-box}.chat-app.svelte-1n46o8q{--header-h: 64px;--composer-h: 140px;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0);background:radial-gradient(circle at top,#162135,#05070f 55%,#04060d);color:#f3f5ff;overflow:hidden;position:relative}.chat-app.svelte-1n46o8q:before,.chat-app.svelte-1n46o8q:after{content:"";position:fixed;left:0;right:0;pointer-events:none;z-index:10}.chat-app.svelte-1n46o8q:before{top:0;height:calc(var(--header-h) + 2rem);background:linear-gradient(to bottom,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}.chat-app.svelte-1n46o8q:after{bottom:0;height:calc(var(--composer-h) + 2rem);background:linear-gradient(to top,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}@media (max-width: 1024px){.chat-app.svelte-1n46o8q{--header-h: 58px;--composer-h: 130px}}@media (max-width: 768px){.chat-app.svelte-1n46o8q{--header-h: 56px;--composer-h: 170px}.chat-app.svelte-1n46o8q:before{height:calc(var(--header-h) + 1.5rem)}.chat-app.svelte-1n46o8q:after{height:calc(var(--composer-h) + 1.5rem)}}.chat-error.svelte-1n46o8q{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 auto 1.25rem;padding:.9rem 1.25rem;width:min(800px,calc(100% - 4rem));border-radius:.75rem;border:1px solid rgba(248,113,113,.4);background:#45141499;color:#fecaca;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q){border:1px solid rgba(248,113,113,.6);border-radius:999px;background:transparent;color:inherit;padding:.3rem .9rem;cursor:pointer}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):hover,.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):focus-visible{border-color:#fca5a5;color:#fca5a5;outline:none} diff --git a/src/backend/static/index.html b/src/backend/static/index.html index 4d24fc1b..8efad30a 100644 --- a/src/backend/static/index.html +++ b/src/backend/static/index.html @@ -4,11 +4,11 @@ - Kiosk - - + frontend + + -
                  +
                  diff --git a/start_server.sh b/start_server.sh index d5c58451..03a4056c 100755 --- a/start_server.sh +++ b/start_server.sh @@ -58,10 +58,19 @@ echo "Backend: http://localhost:8000" echo "Svelte Chat UI: http://localhost:5173" echo "Kiosk UI: http://localhost:5174" echo "" -echo "From other machines (use your IP):" -echo " Backend: http://192.168.1.223:8000" -echo " Svelte Chat UI: http://192.168.1.223:5173" -echo " Kiosk UI: http://192.168.1.223:5174" +# Detect the primary IP address +LOCAL_IP=$(hostname -I 2>/dev/null | awk '{print $1}') +if [ -z "$LOCAL_IP" ]; then + LOCAL_IP=$(ip route get 1 2>/dev/null | awk '{print $7}' | head -1) +fi +if [ -n "$LOCAL_IP" ]; then + echo "From other machines (use your IP):" + echo " Backend: http://${LOCAL_IP}:8000" + echo " Svelte Chat UI: http://${LOCAL_IP}:5173" + echo " Kiosk UI: http://${LOCAL_IP}:5174" +else + echo "From other machines, use your machine's IP address." +fi echo "==============================================" echo "Press Ctrl+C to stop all servers" echo "" From c271dc5c4e91f3d706bc12da6f75f165d0fff25b Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 16 Dec 2025 20:43:25 -0500 Subject: [PATCH 18/78] feat: Implement kiosk preset management with new backend services, schemas, data, and frontend UI for loading, activating, and saving configurations. --- frontend/src/lib/api/kiosk.ts | 86 ++++++++ .../components/chat/KioskSettingsModal.svelte | 199 +++++++++++++++--- src/backend/data/kiosk_presets.json | 57 +++++ src/backend/data/kiosk_tts_settings.json | 2 +- src/backend/data/kiosk_ui_settings.json | 2 +- src/backend/routers/kiosk.py | 74 ++++++- src/backend/schemas/kiosk_presets.py | 91 ++++++++ src/backend/services/kiosk_presets.py | 104 +++++++++ 8 files changed, 582 insertions(+), 33 deletions(-) create mode 100644 src/backend/data/kiosk_presets.json create mode 100644 src/backend/schemas/kiosk_presets.py create mode 100644 src/backend/services/kiosk_presets.py diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts index e082ee75..1fb176bf 100644 --- a/frontend/src/lib/api/kiosk.ts +++ b/frontend/src/lib/api/kiosk.ts @@ -275,3 +275,89 @@ export async function resetKioskLlmSettings(): Promise { } return response.json(); } + +// ============== Presets ============== + +export interface KioskPreset { + name: string; + // LLM settings + model: string; + system_prompt: string; + temperature: number; + max_tokens: number; + // STT settings + eot_threshold: number; + eot_timeout_ms: number; + keyterms: string[]; + // TTS settings + tts_enabled: boolean; + tts_model: string; + tts_sample_rate: number; +} + +export interface KioskPresets { + presets: KioskPreset[]; + active_index: number; +} + +/** + * Fetch all kiosk presets from the backend. + */ +export async function fetchKioskPresets(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/presets`); + if (!response.ok) { + throw new Error(`Failed to fetch kiosk presets: ${response.statusText}`); + } + return response.json(); +} + +/** + * Activate a preset by index. This also applies its settings. + */ +export async function activateKioskPreset(index: number): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/presets/activate`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ index }), + }); + if (!response.ok) { + throw new Error(`Failed to activate kiosk preset: ${response.statusText}`); + } + return response.json(); +} + +/** + * Update a single preset by index. + */ +export async function updateKioskPreset( + index: number, + preset: KioskPreset +): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/presets`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ index, preset }), + }); + if (!response.ok) { + throw new Error(`Failed to update kiosk preset: ${response.statusText}`); + } + return response.json(); +} + +/** + * Reset all presets to defaults. + */ +export async function resetKioskPresets(): Promise { + const response = await fetch(`${API_BASE_URL}/api/kiosk/presets/reset`, { + method: 'POST', + }); + if (!response.ok) { + throw new Error(`Failed to reset kiosk presets: ${response.statusText}`); + } + return response.json(); +} + diff --git a/frontend/src/lib/components/chat/KioskSettingsModal.svelte b/frontend/src/lib/components/chat/KioskSettingsModal.svelte index 0ed1aee7..82692587 100644 --- a/frontend/src/lib/components/chat/KioskSettingsModal.svelte +++ b/frontend/src/lib/components/chat/KioskSettingsModal.svelte @@ -1,6 +1,13 @@ + +{#if open} + void closeModal()} + > + +

                  CLI Settings

                  +

                  + Configure the command-line assistant. +

                  +
                  + +
                  + + +
                  + + {#if loading} +

                  Loading settings…

                  + {:else} +
                  + +
                  +
                  + Language Model + Configure the AI model and behavior for the CLI. +
                  + +
                  + +
                  + + +
                  + + +
                  + + +
                  + + +
                  +
                  +
                  + Temperature + {draft.temperature?.toFixed(1) ?? "0.7"} +
                  + { + draft = { + ...draft, + temperature: parseFloat( + (e.target as HTMLInputElement).value, + ), + }; + markDirty(); + }} + /> +
                  + 0 (focused) + 2 (creative) +
                  +
                  +
                  + + +
                  +
                  +
                  + Max Tokens + {draft.max_tokens ?? 1000} +
                  + { + draft = { + ...draft, + max_tokens: parseInt( + (e.target as HTMLInputElement).value, + 10, + ), + }; + markDirty(); + }} + /> +
                  + 50 + 4000 +
                  +
                  +
                  +
                  +
                  +
                  + {/if} + +
                  + {#if statusMessage} + {statusMessage} + {:else if saving} + Saving changes… + {:else if dirty} + Pending changes; closing this modal will save. + {:else} + Changes save on close. "Set as default" updates the reset target. + {/if} +
                  +
                  +{/if} + + diff --git a/frontend/src/lib/components/chat/SystemSettingsModal.svelte b/frontend/src/lib/components/chat/SystemSettingsModal.svelte index 7b0da0df..2412532e 100644 --- a/frontend/src/lib/components/chat/SystemSettingsModal.svelte +++ b/frontend/src/lib/components/chat/SystemSettingsModal.svelte @@ -142,6 +142,13 @@ mcpServers.setFrontendEnabled(serverId, enabled); } + function toggleCli(serverId: string, enabled: boolean): void { + if ($mcpServers.saving) { + return; + } + mcpServers.setCliEnabled(serverId, enabled); + } + function toggleTool(serverId: string, tool: string, enabled: boolean): void { if ($mcpServers.saving) { return; @@ -649,7 +656,7 @@ > Kiosk +
                  diff --git a/frontend/src/lib/stores/cliSettings.ts b/frontend/src/lib/stores/cliSettings.ts new file mode 100644 index 00000000..feddaac3 --- /dev/null +++ b/frontend/src/lib/stores/cliSettings.ts @@ -0,0 +1,175 @@ +/** + * CLI settings store. + * Fetches from and persists to the backend API (LLM settings). + * Uses unified /api/clients/cli/* endpoints. + */ + +import { get, writable } from 'svelte/store'; +import { + resetCliSettings as apiResetCliSettings, + applyCliPresetByName, + createCliPreset, + deleteCliPreset, + getCliLlmSettings, + getCliPresets, + updateCliLlmSettings +} from '../api/cli'; +import type { LlmSettingsUpdate } from '../api/types'; + +export interface CliSettings { + // LLM settings + model: string; + system_prompt: string | null; + temperature: number; + max_tokens: number; +} + +export interface CliSettingsUpdate extends Partial { } + +export const DEFAULT_CLI_SETTINGS: CliSettings = { + model: 'openai/gpt-4o-mini', + system_prompt: `You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks. + +PRINCIPLES: +1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself. +2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access. +3. READ before WRITE. Query current state before changing anything. Never assume. +4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists. +5. BACKUP before destructive edits. Verify the backup exists before proceeding. +6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing. + +WHEN THINGS FAIL: +- Read both stdout and stderr carefully - they usually explain why. +- Explain the root cause briefly. +- Offer what YOU can try next (retry, workaround, different approach). +- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions. + +Workflow: get profile → query state → act → verify → report.`, + temperature: 0.7, + max_tokens: 1000, +}; + +function createCliSettingsStore() { + const store = writable(DEFAULT_CLI_SETTINGS); + let loaded = false; + let loading = false; + + async function load(): Promise { + if (loading) { + return get(store); + } + loading = true; + try { + const llmSettings = await getCliLlmSettings(); + + // If backend returns null prompt, use our default if it's the first load? + // Or just trust the backend. For now, trust backend, but reset() will force our default. + const settings: CliSettings = { + model: llmSettings.model, + system_prompt: llmSettings.system_prompt, + temperature: llmSettings.temperature, + max_tokens: llmSettings.max_tokens, + }; + + store.set(settings); + loaded = true; + return settings; + } catch (error) { + console.error('Failed to load CLI settings:', error); + // Return defaults on error + return get(store); + } finally { + loading = false; + } + } + + async function updateLlm(update: LlmSettingsUpdate): Promise { + const current = get(store); + // Optimistic update + store.set({ + ...current, + ...update, + model: update.model ?? current.model, + system_prompt: update.system_prompt ?? current.system_prompt, + temperature: update.temperature ?? current.temperature, + max_tokens: update.max_tokens ?? current.max_tokens, + }); + + try { + const result = await updateCliLlmSettings(update); + // Confirm with server response + store.update(s => ({ + ...s, + model: result.model, + system_prompt: result.system_prompt, + temperature: result.temperature, + max_tokens: result.max_tokens, + })); + } catch (error) { + console.error('Failed to update CLI LLM settings:', error); + // Revert on error + store.set(current); + throw error; + } + } + + async function reset(): Promise { + try { + // fast-path: try to apply "default" preset + try { + await applyCliPresetByName('default'); + await load(); + return; + } catch (e) { + // If no default preset, fall back to hard reset + console.log('No user default found, performing hard reset'); + } + + await apiResetCliSettings(); + await load(); // Reload to get defaults from server + // Apply our frontend-specific defaults since backend defaults are generic + await updateLlm(DEFAULT_CLI_SETTINGS); + } catch (error) { + console.error('Failed to reset CLI settings:', error); + throw error; + } + } + + async function saveAsDefault(): Promise { + const current = get(store); + try { + // Check if 'default' preset exists and delete it + const presets = await getCliPresets(); + if (presets.presets.some(p => p.name === 'default')) { + await deleteCliPreset('default'); + } + + // Create new 'default' preset with current settings + await createCliPreset({ + name: 'default', + llm: { + model: current.model, + system_prompt: current.system_prompt, + temperature: current.temperature, + max_tokens: current.max_tokens, + } + }); + + // Optionally verify validation of creation? + } catch (error) { + console.error('Failed to save as default:', error); + throw error; + } + } + + + return { + subscribe: store.subscribe, + load, + updateLlm, + reset, + saveAsDefault, + }; +} + +export const cliSettings = createCliSettingsStore(); diff --git a/frontend/src/lib/stores/mcpServers.ts b/frontend/src/lib/stores/mcpServers.ts index 0ca6f28c..d419d556 100644 --- a/frontend/src/lib/stores/mcpServers.ts +++ b/frontend/src/lib/stores/mcpServers.ts @@ -3,6 +3,7 @@ import { fetchMcpServers, patchMcpServer, refreshMcpServers, + setMcpServerClientEnabled, } from '../api/client'; import type { McpServerStatus, @@ -91,48 +92,62 @@ export function createMcpServersStore() { }); } - function setKioskEnabled(serverId: string, kioskEnabled: boolean): void { + async function setClientEnabled(serverId: string, clientId: string, enabled: boolean): Promise { + // Update local state immediately for responsive UI store.update((state) => { - const servers = state.servers.map((server) => - server.id === serverId ? { ...server, kiosk_enabled: kioskEnabled } : server, - ); - const pendingChanges = { - ...state.pendingChanges, - [serverId]: { - ...(state.pendingChanges[serverId] ?? {}), - kiosk_enabled: kioskEnabled, - }, - }; + const servers = state.servers.map((server) => { + if (server.id !== serverId) return server; + // Update the client_enabled map if it exists + const clientEnabled = { ...(server.client_enabled ?? {}) }; + clientEnabled[clientId] = enabled; + return { ...server, client_enabled: clientEnabled }; + }); return { ...state, servers, - dirty: true, + pending: { ...state.pending, [serverId]: true }, saveError: null, - pendingChanges, }; }); + + try { + // Call the backend to persist the change + const response = await setMcpServerClientEnabled(serverId, clientId, enabled); + store.update((state) => { + const nextPending = { ...state.pending }; + delete nextPending[serverId]; + return { + ...state, + servers: response.servers ?? state.servers, + updatedAt: response.updated_at ?? state.updatedAt, + pending: nextPending, + }; + }); + } catch (error) { + const message = error instanceof Error ? error.message : 'Failed to update MCP server client enabled.'; + store.update((state) => { + const nextPending = { ...state.pending }; + delete nextPending[serverId]; + return { + ...state, + pending: nextPending, + saveError: message, + }; + }); + } + } + + // Legacy wrappers for backwards compatibility with existing UI components + function setKioskEnabled(serverId: string, kioskEnabled: boolean): void { + setClientEnabled(serverId, 'kiosk', kioskEnabled); } function setFrontendEnabled(serverId: string, frontendEnabled: boolean): void { - store.update((state) => { - const servers = state.servers.map((server) => - server.id === serverId ? { ...server, frontend_enabled: frontendEnabled } : server, - ); - const pendingChanges = { - ...state.pendingChanges, - [serverId]: { - ...(state.pendingChanges[serverId] ?? {}), - frontend_enabled: frontendEnabled, - }, - }; - return { - ...state, - servers, - dirty: true, - saveError: null, - pendingChanges, - }; - }); + setClientEnabled(serverId, 'svelte', frontendEnabled); + } + + function setCliEnabled(serverId: string, cliEnabled: boolean): void { + setClientEnabled(serverId, 'cli', cliEnabled); } function setToolEnabled(serverId: string, tool: string, enabled: boolean): void { @@ -333,8 +348,10 @@ export function createMcpServersStore() { load, refresh, setServerEnabled, + setClientEnabled, setKioskEnabled, setFrontendEnabled, + setCliEnabled, setToolEnabled, setServerEnv, getServer, diff --git a/src/backend/data/clients/cli/llm.json b/src/backend/data/clients/cli/llm.json index 0e8ce7e1..bf9510a2 100644 --- a/src/backend/data/clients/cli/llm.json +++ b/src/backend/data/clients/cli/llm.json @@ -1,9 +1,9 @@ { - "model": "openai/gpt-5.1", + "model": "openai/gpt-5.2", "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", - "temperature": 0.3, - "max_tokens": 4096, - "supports_tools": true, + "temperature": 0.7, + "max_tokens": 1000, + "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 } \ No newline at end of file diff --git a/src/backend/data/clients/cli/presets.json b/src/backend/data/clients/cli/presets.json index ecd8dcf6..bdeff206 100644 --- a/src/backend/data/clients/cli/presets.json +++ b/src/backend/data/clients/cli/presets.json @@ -1,4 +1,21 @@ { - "presets": [], - "active_index": null -} + "presets": [ + { + "name": "default", + "llm": { + "model": "openai/gpt-5.2", + "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", + "temperature": 0.7, + "max_tokens": 1000, + "supports_tools": null, + "conversation_mode": false, + "conversation_timeout_seconds": 10.0 + }, + "stt": null, + "tts": null, + "created_at": "2025-12-20T05:37:23.178482+00:00", + "updated_at": "2025-12-20T05:37:23.178482+00:00" + } + ], + "active_index": 0 +} \ No newline at end of file diff --git a/src/backend/data/clients/kiosk/llm.json b/src/backend/data/clients/kiosk/llm.json index 32922d07..e2001d05 100644 --- a/src/backend/data/clients/kiosk/llm.json +++ b/src/backend/data/clients/kiosk/llm.json @@ -1,5 +1,5 @@ { - "model": "openai/gpt-4o-mini", + "model": "openai/gpt-5.2", "system_prompt": "You are a helpful voice assistant. Provide thorough, comprehensive answers.", "temperature": 0.7, "max_tokens": 800, diff --git a/src/backend/data/clients/kiosk/tts.json b/src/backend/data/clients/kiosk/tts.json index 831c476f..80806301 100644 --- a/src/backend/data/clients/kiosk/tts.json +++ b/src/backend/data/clients/kiosk/tts.json @@ -1,5 +1,5 @@ { - "enabled": true, + "enabled": false, "provider": "openai", "model": "tts-1", "voice": "alloy", @@ -17,4 +17,4 @@ ": " ], "character_maximum": 50 -} +} \ No newline at end of file diff --git a/src/backend/data/clients/kiosk/ui.json b/src/backend/data/clients/kiosk/ui.json new file mode 100644 index 00000000..f01162b8 --- /dev/null +++ b/src/backend/data/clients/kiosk/ui.json @@ -0,0 +1,3 @@ +{ + "idle_return_delay_ms": 10000 +} \ No newline at end of file diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 667bc5f5..383cde93 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,5 +1,5 @@ { - "model": "mistralai/mistral-small-creative", + "model": "openai/gpt-5.2", "system_prompt": "You are a helpful assistant. yea", "temperature": 0.7, "max_tokens": 4096, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index ff71a490..2546a97b 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -13,55 +13,13 @@ }, "stt": null, "tts": null, - "mcp_servers": [ - { - "server_id": "shell-control", - "enabled": true - }, - { - "server_id": "notes", - "enabled": false - }, - { - "server_id": "monarch-money", - "enabled": true - }, - { - "server_id": "custom-gmail", - "enabled": true - }, - { - "server_id": "custom-gdrive", - "enabled": false - }, - { - "server_id": "custom-pdf", - "enabled": true - }, - { - "server_id": "custom-calendar", - "enabled": true - }, - { - "server_id": "spotify", - "enabled": true - }, - { - "server_id": "local-calculator", - "enabled": false - }, - { - "server_id": "housekeeping", - "enabled": true - } - ], "created_at": "2025-12-19T10:56:16.306632+00:00", "updated_at": "2025-12-19T10:56:16.306632+00:00" }, { "name": "shell", "llm": { - "model": "mistralai/mistral-small-creative", + "model": "openai/gpt-5.2", "system_prompt": "You are a helpful assistant. yea", "temperature": 0.7, "max_tokens": 4096, @@ -71,48 +29,6 @@ }, "stt": null, "tts": null, - "mcp_servers": [ - { - "server_id": "shell-control", - "enabled": true - }, - { - "server_id": "notes", - "enabled": false - }, - { - "server_id": "monarch-money", - "enabled": true - }, - { - "server_id": "custom-gmail", - "enabled": true - }, - { - "server_id": "custom-gdrive", - "enabled": false - }, - { - "server_id": "custom-pdf", - "enabled": true - }, - { - "server_id": "custom-calendar", - "enabled": true - }, - { - "server_id": "spotify", - "enabled": true - }, - { - "server_id": "local-calculator", - "enabled": false - }, - { - "server_id": "housekeeping", - "enabled": true - } - ], "created_at": "2025-12-19T10:57:12.163449+00:00", "updated_at": "2025-12-19T10:57:12.163449+00:00" }, @@ -129,48 +45,6 @@ }, "stt": null, "tts": null, - "mcp_servers": [ - { - "server_id": "shell-control", - "enabled": false - }, - { - "server_id": "notes", - "enabled": true - }, - { - "server_id": "monarch-money", - "enabled": true - }, - { - "server_id": "custom-gmail", - "enabled": true - }, - { - "server_id": "custom-gdrive", - "enabled": false - }, - { - "server_id": "custom-pdf", - "enabled": true - }, - { - "server_id": "custom-calendar", - "enabled": true - }, - { - "server_id": "spotify", - "enabled": true - }, - { - "server_id": "local-calculator", - "enabled": false - }, - { - "server_id": "housekeeping", - "enabled": false - } - ], "created_at": "2025-12-19T11:20:27.054736+00:00", "updated_at": "2025-12-19T11:20:27.054736+00:00" } diff --git a/src/backend/routers/clients.py b/src/backend/routers/clients.py index a70b3fe6..8e81aca1 100644 --- a/src/backend/routers/clients.py +++ b/src/backend/routers/clients.py @@ -4,7 +4,6 @@ /api/clients/{client_id}/llm /api/clients/{client_id}/stt /api/clients/{client_id}/tts - /api/clients/{client_id}/mcp-servers /api/clients/{client_id}/presets """ @@ -20,8 +19,6 @@ ClientSettings, LlmSettings, LlmSettingsUpdate, - McpServerRef, - McpServersUpdate, SttSettings, SttSettingsUpdate, TtsSettings, @@ -33,8 +30,6 @@ ClientSettingsService, get_client_settings_service, ) -from backend.services.mcp_server_settings import MCPServerSettingsService -from backend.chat.orchestrator import ChatOrchestrator logger = logging.getLogger(__name__) @@ -61,14 +56,6 @@ def get_service( return get_client_settings_service(client_id) -def get_mcp_settings_service(request: Request) -> Optional[MCPServerSettingsService]: - """Get MCP server settings service from request state (if available).""" - return getattr(request.app.state, "mcp_server_settings_service", None) - - -def get_chat_orchestrator(request: Request) -> Optional[ChatOrchestrator]: - """Get chat orchestrator from request state (if available).""" - return getattr(request.app.state, "chat_orchestrator", None) # ============================================================================= @@ -247,38 +234,6 @@ async def reset_ui_settings( return service.get_ui() -# ============================================================================= -# MCP Servers -# ============================================================================= - - -@router.get("/{client_id}/mcp-servers", response_model=list[McpServerRef]) -async def get_mcp_servers( - service: ClientSettingsService = Depends(get_service), -) -> list[McpServerRef]: - """Get MCP server configuration for the client.""" - return service.get_mcp_servers() - - -@router.put("/{client_id}/mcp-servers", response_model=list[McpServerRef]) -async def update_mcp_servers( - update: McpServersUpdate, - service: ClientSettingsService = Depends(get_service), -) -> list[McpServerRef]: - """Update MCP server configuration for the client.""" - return service.update_mcp_servers(update) - - -@router.patch("/{client_id}/mcp-servers/{server_id}") -async def toggle_mcp_server( - server_id: str, - enabled: bool, - service: ClientSettingsService = Depends(get_service), -) -> list[McpServerRef]: - """Enable or disable a specific MCP server for the client.""" - return service.set_mcp_server_enabled(server_id, enabled) - - # ============================================================================= # Presets # ============================================================================= @@ -346,70 +301,26 @@ async def activate_preset( @router.post("/{client_id}/presets/by-name/{name}/apply", response_model=ClientSettings) async def apply_preset_by_name( name: str, - request: Request, client_id: str = Depends(validate_client_id), service: ClientSettingsService = Depends(get_service), ) -> ClientSettings: """Apply a preset by name. - This also syncs the preset's MCP server settings to the global registry - so the chat orchestrator uses the correct MCP servers for this client. + This applies the preset's LLM, STT, and TTS settings. + MCP server configuration is managed separately via /api/mcp/servers/. """ presets = service.get_presets() preset_index = None - preset = None for i, p in enumerate(presets.presets): if p.name == name: preset_index = i - preset = p break - if preset_index is None or preset is None: + if preset_index is None: raise HTTPException(status_code=404, detail=f"Preset not found: {name}") - # Activate the preset (saves to client-specific storage) - result = service.activate_preset(preset_index) - - # Also sync MCP server settings to the global registry - # This ensures the chat orchestrator uses the correct MCP servers - mcp_service = get_mcp_settings_service(request) - orchestrator = get_chat_orchestrator(request) - - if mcp_service is not None and preset.mcp_servers: - # Build a map of preset MCP server enabled states - preset_mcp_map = { - s.server_id if isinstance(s, McpServerRef) else s.get("server_id"): - s.enabled if isinstance(s, McpServerRef) else s.get("enabled", True) - for s in preset.mcp_servers - } - - # Patch each server's client_enabled map in the global registry - try: - configs = await mcp_service.get_configs() - for config in configs: - if config.id in preset_mcp_map: - new_enabled = preset_mcp_map[config.id] - current_enabled = config.client_enabled.get(client_id, False) - if current_enabled != new_enabled: - # Update the client_enabled map for this client - updated_client_enabled = dict(config.client_enabled) - updated_client_enabled[client_id] = new_enabled - await mcp_service.patch_server( - config.id, - overrides={"client_enabled": updated_client_enabled} - ) - - # Refresh orchestrator with updated configs - if orchestrator is not None: - updated_configs = await mcp_service.get_configs() - await orchestrator.apply_mcp_configs(updated_configs) - - logger.info(f"Synced MCP server settings for preset '{name}' (client: {client_id})") - except Exception as e: - # Log but don't fail - the preset was still applied to client storage - logger.warning(f"Failed to sync MCP settings to global registry: {e}") - - return result + # Activate the preset (applies LLM/STT/TTS settings) + return service.activate_preset(preset_index) @router.delete("/{client_id}/presets/by-name/{name}", response_model=ClientPresets) diff --git a/src/backend/schemas/client_settings.py b/src/backend/schemas/client_settings.py index d57cfad1..013e2a62 100644 --- a/src/backend/schemas/client_settings.py +++ b/src/backend/schemas/client_settings.py @@ -179,32 +179,18 @@ class TtsSettingsUpdate(BaseModel): # ============================================================================= -class McpServerRef(BaseModel): - """Reference to an MCP server with client-specific enabled state.""" - - server_id: str = Field(description="MCP server identifier") - enabled: bool = Field(default=True, description="Whether enabled for this client") - - -class McpServersUpdate(BaseModel): - """Update for MCP server references.""" - - servers: list[McpServerRef] = Field(default_factory=list) - - # ============================================================================= # Client Presets # ============================================================================= class ClientPreset(BaseModel): - """A preset configuration bundle.""" + """A preset configuration bundle (LLM settings only - MCP servers are separate).""" name: str = Field(description="Display name for the preset") llm: LlmSettings = Field(default_factory=LlmSettings) stt: Optional[SttSettings] = None tts: Optional[TtsSettings] = None - mcp_servers: list[McpServerRef] = Field(default_factory=list) created_at: Optional[str] = Field(default=None, description="ISO timestamp when preset was created") updated_at: Optional[str] = Field(default=None, description="ISO timestamp when preset was last modified") @@ -216,7 +202,6 @@ class ClientPresetUpdate(BaseModel): llm: Optional[LlmSettingsUpdate] = None stt: Optional[SttSettingsUpdate] = None tts: Optional[TtsSettingsUpdate] = None - mcp_servers: Optional[list[McpServerRef]] = None class ClientPresets(BaseModel): @@ -257,13 +242,12 @@ class UiSettingsUpdate(BaseModel): class ClientSettings(BaseModel): - """Complete settings bundle for a client.""" + """Complete settings bundle for a client (excludes MCP servers - they're global).""" llm: LlmSettings = Field(default_factory=LlmSettings) stt: Optional[SttSettings] = None tts: Optional[TtsSettings] = None ui: Optional[UiSettings] = None - mcp_servers: list[McpServerRef] = Field(default_factory=list) __all__ = [ @@ -275,8 +259,6 @@ class ClientSettings(BaseModel): "TtsSettingsUpdate", "UiSettings", "UiSettingsUpdate", - "McpServerRef", - "McpServersUpdate", "ClientPreset", "ClientPresetUpdate", "ClientPresets", diff --git a/src/backend/services/client_settings_service.py b/src/backend/services/client_settings_service.py index 1bb22da1..b76281af 100644 --- a/src/backend/services/client_settings_service.py +++ b/src/backend/services/client_settings_service.py @@ -16,8 +16,6 @@ ClientSettings, LlmSettings, LlmSettingsUpdate, - McpServerRef, - McpServersUpdate, SttSettings, SttSettingsUpdate, TtsSettings, @@ -165,50 +163,6 @@ def update_tts(self, update: TtsSettingsUpdate) -> TtsSettings: self._cache["tts"] = merged return merged - # ========================================================================= - # MCP Servers - # ========================================================================= - - def get_mcp_servers(self) -> list[McpServerRef]: - """Get MCP server references for this client.""" - if "mcp_servers" in self._cache: - return self._cache["mcp_servers"] # type: ignore - - data = self._load_json("mcp_servers") - if data and isinstance(data, dict) and "servers" in data: - try: - servers = [McpServerRef.model_validate(s) for s in data["servers"]] - except Exception as e: - logger.warning(f"Invalid MCP servers for {self.client_id}: {e}") - servers = [] - else: - servers = [] - - self._cache["mcp_servers"] = servers - return servers - - def update_mcp_servers(self, update: McpServersUpdate) -> list[McpServerRef]: - """Replace MCP server references.""" - servers = update.servers - self._save_json("mcp_servers", {"servers": [s.model_dump() for s in servers]}) - self._cache["mcp_servers"] = servers - return servers - - def set_mcp_server_enabled(self, server_id: str, enabled: bool) -> list[McpServerRef]: - """Enable or disable a specific MCP server.""" - current = self.get_mcp_servers() - found = False - for server in current: - if server.server_id == server_id: - server.enabled = enabled - found = True - break - if not found: - current.append(McpServerRef(server_id=server_id, enabled=enabled)) - self._save_json("mcp_servers", {"servers": [s.model_dump() for s in current]}) - self._cache["mcp_servers"] = current - return current - # ========================================================================= # UI Settings # ========================================================================= @@ -297,7 +251,7 @@ def update_preset(self, index: int, update: ClientPresetUpdate) -> ClientPresets return presets def activate_preset(self, index: int) -> ClientSettings: - """Activate a preset and apply its settings.""" + """Activate a preset and apply its settings (LLM only - MCP is separate).""" presets = self.get_presets() if index < 0 or index >= len(presets.presets): raise ValueError(f"Preset index {index} out of range") @@ -306,7 +260,7 @@ def activate_preset(self, index: int) -> ClientSettings: presets.active_index = index self._save_presets(presets) - # Apply preset settings + # Apply preset settings (LLM, STT, TTS only) self.replace_llm(preset.llm) if preset.stt: self._save_json("stt", preset.stt.model_dump()) @@ -314,23 +268,11 @@ def activate_preset(self, index: int) -> ClientSettings: if preset.tts: self._save_json("tts", preset.tts.model_dump()) self._cache["tts"] = preset.tts - if preset.mcp_servers: - # Ensure all items are McpServerRef models, then serialize - validated_servers = [ - s if isinstance(s, McpServerRef) else McpServerRef.model_validate(s) - for s in preset.mcp_servers - ] - self._save_json("mcp_servers", {"servers": [s.model_dump() for s in validated_servers]}) - self._cache["mcp_servers"] = validated_servers - - - return ClientSettings( llm=preset.llm, stt=preset.stt, tts=preset.tts, - mcp_servers=preset.mcp_servers, ) def add_preset(self, preset: ClientPreset) -> ClientPresets: @@ -345,7 +287,6 @@ def add_preset(self, preset: ClientPreset) -> ClientPresets: llm=preset.llm, stt=preset.stt, tts=preset.tts, - mcp_servers=preset.mcp_servers, created_at=now, updated_at=now, ) @@ -380,19 +321,18 @@ def _save_presets(self, presets: ClientPresets) -> None: # ========================================================================= def get_all(self) -> ClientSettings: - """Get complete settings bundle.""" + """Get complete settings bundle (excludes MCP - that's global).""" return ClientSettings( llm=self.get_llm(), stt=self.get_stt(), tts=self.get_tts(), ui=self.get_ui(), - mcp_servers=self.get_mcp_servers(), ) def reset_all(self) -> ClientSettings: """Reset all settings to defaults.""" self._cache.clear() - for name in ["llm", "stt", "tts", "ui", "mcp_servers", "presets"]: + for name in ["llm", "stt", "tts", "ui", "presets"]: path = self._file_path(name) if path.exists(): path.unlink() diff --git a/src/backend/services/suggestions.py b/src/backend/services/suggestions.py index ab175e35..b8d9f077 100644 --- a/src/backend/services/suggestions.py +++ b/src/backend/services/suggestions.py @@ -56,21 +56,8 @@ def _load_from_disk(self) -> None: self._suggestions = loaded if loaded else self._get_defaults() def _get_defaults(self) -> List[Suggestion]: - """Get default suggestions.""" - return [ - Suggestion( - label="Next.js advantages", - text="What are the advantages of using Next.js?", - ), - Suggestion( - label="Dijkstra code", - text="Write code to demonstrate Dijkstra's algorithm", - ), - Suggestion( - label="Essay helper", text="Help me write an essay about Silicon Valley" - ), - Suggestion(label="Weather", text="What is the weather in Orlando?"), - ] + """Get default suggestions (empty - user must add their own).""" + return [] def _save_to_disk(self) -> None: """Save suggestions to disk.""" From 5706b0f3a414f946891f2339bab0e2c73d977d07 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 02:03:47 -0500 Subject: [PATCH 42/78] feat: add MCP servers modal and related styles; enhance speech and system settings styles - Introduced `McpServersModal.svelte` for managing MCP server configurations. - Updated styles in `speech-settings.css` and `system-settings.css` to accommodate new components. - Added new styles for presets settings in `presets-settings.css`. - Enhanced status indicators for speech settings to include new speech status classes. --- CODE_THAT_LIVES_ON_RASPI/raspi-smarthome | 1 - frontend/src/App.svelte | 21 +- .../src/lib/components/chat/ChatHeader.svelte | 106 +- .../components/chat/McpServersModal.svelte | 466 +++++++++ .../lib/components/chat/PresetsModal.svelte | 95 +- .../chat/SystemSettingsModal.svelte | 934 +++++++++++------- .../lib/components/chat/presets-settings.css | 93 ++ .../lib/components/chat/speech-settings.css | 12 +- .../lib/components/chat/system-settings.css | 3 +- 9 files changed, 1224 insertions(+), 507 deletions(-) delete mode 160000 CODE_THAT_LIVES_ON_RASPI/raspi-smarthome create mode 100644 frontend/src/lib/components/chat/McpServersModal.svelte create mode 100644 frontend/src/lib/components/chat/presets-settings.css diff --git a/CODE_THAT_LIVES_ON_RASPI/raspi-smarthome b/CODE_THAT_LIVES_ON_RASPI/raspi-smarthome deleted file mode 160000 index 020ab416..00000000 --- a/CODE_THAT_LIVES_ON_RASPI/raspi-smarthome +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 020ab4168b22e7e8e472f4fc8545966348e34568 diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index e12135d3..5aa29c5e 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -14,13 +14,12 @@ import MessageEditor from "./lib/components/chat/MessageEditor.svelte"; import MessageList from "./lib/components/chat/MessageList.svelte"; import ModelSettingsModal from "./lib/components/chat/ModelSettingsModal.svelte"; - import PresetsModal from "./lib/components/chat/PresetsModal.svelte"; import QuickPrompts from "./lib/components/chat/QuickPrompts.svelte"; - import SpeechSettingsModal from "./lib/components/chat/SpeechSettingsModal.svelte"; import SystemSettingsModal from "./lib/components/chat/SystemSettingsModal.svelte"; import KioskSettingsModal from "./lib/components/chat/KioskSettingsModal.svelte"; import CliSettingsModal from "./lib/components/chat/CliSettingsModal.svelte"; + import McpServersModal from "./lib/components/chat/McpServersModal.svelte"; import ModelExplorer from "./lib/components/model-explorer/ModelExplorer.svelte"; import { clearPendingSubmit, @@ -60,11 +59,10 @@ let generationModalOpen = false; let modelSettingsOpen = false; let systemSettingsOpen = false; - let speechSettingsOpen = false; + let mcpServersOpen = false; let kioskSettingsOpen = false; let cliSettingsOpen = false; - let presetsOpen = false; let lastSpeechPromptVersion = 0; let generationModalLoading = false; let generationModalError: string | null = null; @@ -116,8 +114,7 @@ generationModalOpen || modelSettingsOpen || systemSettingsOpen || - speechSettingsOpen || - + mcpServersOpen || kioskSettingsOpen || cliSettingsOpen, ); @@ -316,10 +313,9 @@ on:modelChange={(event) => handleModelChange(event.detail.id)} on:openModelSettings={() => (modelSettingsOpen = true)} on:openSystemSettings={() => (systemSettingsOpen = true)} - on:openSpeechSettings={() => (speechSettingsOpen = true)} + on:openMcpServers={() => (mcpServersOpen = true)} on:openKioskSettings={() => (kioskSettingsOpen = true)} on:openCliSettings={() => (cliSettingsOpen = true)} - on:openPresets={() => (presetsOpen = true)} /> {#if !$chatStore.messages.length} @@ -393,12 +389,11 @@ on:close={() => (systemSettingsOpen = false)} /> - (speechSettingsOpen = false)} + (mcpServersOpen = false)} /> - (kioskSettingsOpen = false)} @@ -409,8 +404,6 @@ on:close={() => (cliSettingsOpen = false)} /> - (presetsOpen = false)} /> - diff --git a/frontend/src/lib/components/chat/ChatHeader.svelte b/frontend/src/lib/components/chat/ChatHeader.svelte index 6f33f029..3d39f112 100644 --- a/frontend/src/lib/components/chat/ChatHeader.svelte +++ b/frontend/src/lib/components/chat/ChatHeader.svelte @@ -17,10 +17,9 @@ modelChange: { id: string }; openModelSettings: void; openSystemSettings: void; - openSpeechSettings: void; openKioskSettings: void; openCliSettings: void; - openPresets: void; + openMcpServers: void; }>(); export let selectableModels: SelectableModel[] = []; @@ -84,10 +83,6 @@ dispatch("openSystemSettings"); } - function forwardOpenSpeechSettings(): void { - dispatch("openSpeechSettings"); - } - function forwardOpenKioskSettings(): void { dispatch("openKioskSettings"); } @@ -96,8 +91,8 @@ dispatch("openCliSettings"); } - function forwardOpenPresets(): void { - dispatch("openPresets"); + function forwardOpenMcpServers(): void { + dispatch("openMcpServers"); } @@ -188,23 +183,13 @@ - - {#if $presetsStore.applying} +
                  + + +
                  + {#if $mcpServers.loading} +

                  Loading MCP servers...

                  + {:else if $mcpServers.error} +

                  {$mcpServers.error}

                  + {:else} + {#if !$mcpServers.servers.length} +

                  No MCP servers configured.

                  + {:else} +
                    + {#each $mcpServers.servers as server} +
                  • +
                    +
                    +

                    {server.id}

                    +
                    + + {server.connected ? "Connected" : "Offline"} + + {#if server.module} + + Module: {server.module} + {:else if server.command?.length} + + Command: {server.command.join(" ")} + {/if} +
                    +
                    +
                    + + + + +
                    +
                    + +
                    + {#if server.id === "shell-control"} +
                    +
                    +
                    + This machine + + Select which computer you're on. Sets host profile + and storage path. + +
                    + +
                    +
                    + {/if} + + + + {#if expandedServers.has(server.id)} +
                    + {#if server.tools.length} +
                      + {#each server.tools as tool} +
                    • +
                      + {tool.name} + {tool.qualified_name} +
                      + +
                    • + {/each} +
                    + {:else} +

                    Tool list unavailable.

                    + {/if} + + {#if server.disabled_tools.length} +

                    + Disabled tool ids: {server.disabled_tools.join( + ", ", + )} +

                    + {/if} +
                    + {/if} +
                    +
                  • + {/each} +
                  + {/if} + {#if $mcpServers.saveError} +

                  {$mcpServers.saveError}

                  + {/if} + {#if $mcpServers.dirty} +

                  + Pending changes save when you close this modal. +

                  + {/if} + {/if} +
                  + + +
                  + {#if $mcpServers.saveError} +

                  Resolve the errors above before closing.

                  + {:else if $mcpServers.saving} +

                  Saving changes...

                  + {:else if $mcpServers.dirty} +

                  Pending changes; closing this modal will save.

                  + {:else} +

                  Changes save when you close this modal.

                  + {/if} +
                  + +{/if} diff --git a/frontend/src/lib/components/chat/PresetsModal.svelte b/frontend/src/lib/components/chat/PresetsModal.svelte index 5821bbe1..c1d1e96f 100644 --- a/frontend/src/lib/components/chat/PresetsModal.svelte +++ b/frontend/src/lib/components/chat/PresetsModal.svelte @@ -6,6 +6,7 @@ import { presetsStore } from "../../stores/presets"; import { suggestionsStore } from "../../stores/suggestions"; import ModelSettingsDialog from "./model-settings/ModelSettingsDialog.svelte"; + import "./presets-settings.css"; export let open = false; @@ -329,97 +330,3 @@ {/if} - - diff --git a/frontend/src/lib/components/chat/SystemSettingsModal.svelte b/frontend/src/lib/components/chat/SystemSettingsModal.svelte index 2412532e..4ec3e85d 100644 --- a/frontend/src/lib/components/chat/SystemSettingsModal.svelte +++ b/frontend/src/lib/components/chat/SystemSettingsModal.svelte @@ -1,60 +1,62 @@ {#if open} @@ -240,14 +336,14 @@ layerClass="system-settings-layer" closeLabel="Close system settings" closeDisabled={$systemPrompt.saving || - $mcpServers.saving || + speechSaving || $googleAuth.authorizing} on:close={() => void closeModal()} >

                  System settings

                  - Configure orchestration defaults and MCP servers. + Configure orchestration defaults, presets, and speech settings.

                  @@ -265,8 +361,7 @@ class="btn btn-ghost btn-small" on:click={() => systemPrompt.reset()} disabled={!$systemPrompt.dirty || - $systemPrompt.saving || - $mcpServers.saving} + $systemPrompt.saving} > Reset @@ -560,299 +655,446 @@
                  -

                  MCP servers

                  - {#if $mcpServers.updatedAt} -

                  - Last updated {formatUpdatedAt($mcpServers.updatedAt) ?? ""} -

                  - {:else} -

                  - Toggle integrations available to the assistant. -

                  - {/if} +

                  Presets

                  +

                  + Save and manage snapshots of the current configuration. +

                  -
                  +
                  + +
                  +
                  + + event.key === "Enter" ? handleCreatePreset() : null} + />
                  - -
                  - {#if $mcpServers.loading} -

                  Loading MCP servers…

                  - {:else if $mcpServers.error} -

                  {$mcpServers.error}

                  + {#if $presetsStore.error} +

                  {$presetsStore.error}

                  + {/if} + + {#if $presetsStore.loading} +

                  Loading presets…

                  + {:else if !$presetsStore.items.length} +

                  No presets saved yet.

                  {:else} - {#if !$mcpServers.servers.length} -

                  No MCP servers configured.

                  - {:else} -
                    - {#each $mcpServers.servers as server} -
                  • -
                    -
                    -

                    {server.id}

                    -
                    - - {server.connected ? "Connected" : "Offline"} - - {#if server.module} - - Module: {server.module} - {:else if server.command?.length} - - Command: {server.command.join(" ")} - {/if} -
                    -
                    -
                    -
                  • +
                    +
                    + {item.name} + {#if item.is_default} + Default - - toggleServer( - server.id, - (event.target as HTMLInputElement).checked, - )} - /> - {server.enabled ? "Running" : "Stopped"} - - -
                    +
                    + {item.model} + + {new Date(item.created_at).toLocaleString()} - - toggleKiosk( - server.id, - (event.target as HTMLInputElement).checked, - )} - /> - Kiosk - - + {new Date(item.updated_at).toLocaleString()} - - toggleCli( - server.id, - (event.target as HTMLInputElement).checked, - )} - /> - CLI - -
                    +
                    - -
                    - {#if server.id === "shell-control"} -
                    -
                    -
                    - This machine - - Select which computer you're on. Sets host profile - and storage path. - -
                    - -
                    -
                    - {/if} - +
                    +
                    + + + {#if !item.is_default} + {/if} + +
                    +
                  • + {/each} +
                  + {/if} - {#if expandedServers.has(server.id)} -
                  - {#if server.tools.length} -
                    - {#each server.tools as tool} -
                  • -
                    - {tool.name} - {tool.qualified_name} -
                    - -
                  • - {/each} -
                  - {:else} -

                  Tool list unavailable.

                  - {/if} - - {#if server.disabled_tools.length} -

                  - Disabled tool ids: {server.disabled_tools.join( - ", ", - )} -

                  - {/if} -
                  - {/if} -
                  - - {/each} - - {/if} - {#if $mcpServers.saveError} -

                  {$mcpServers.saveError}

                  - {/if} - {#if $mcpServers.dirty} -

                  - Pending changes save when you close this modal. + {#if $presetsStore.lastApplied} +

                  + Applied preset: {$presetsStore.lastApplied} +

                  + {:else if $presetsStore.lastResult} +

                  Saved: {$presetsStore.lastResult.name}

                  + {:else} +

                  Create, update, or apply a preset.

                  + {/if} +
                  +
                  + +
                  +
                  +
                  +

                  Speech settings

                  +

                  + Configure Deepgram speech-to-text dictation settings. +

                  +
                  +
                  + +
                  +
                  + +
                  +
                  +
                  +

                  Deepgram model

                  +

                  Choose the speech-to-text engine and helper features.

                  +
                  + +
                  +
                  + Model + +
                  +
                  + Speech timing presets +
                  + + + +
                  +
                  +
                  + +
                  + + + + + + + +
                  +
                  + +
                  +
                  +

                  Timing & auto-submit

                  +

                  Tune silence detection and message submission.

                  +
                  + +
                  +
                  + Endpointing window (ms) + + handleSpeechNumberInput(event, (value) => + updateSpeechStt("endpointing", value), + )} + /> +

                  + How long Deepgram waits after silence before finalizing the + transcript. +

                  +
                  +
                  + Utterance gap (ms) + + handleSpeechNumberInput(event, (value) => + updateSpeechStt("utteranceEndMs", value), + )} + /> +

                  + Silence between words before Deepgram starts a new interim + segment. +

                  +
                  +
                  + +
                  +
                  + +

                  + Send automatically when speech ends. Delay waits after + endpointing. +

                  +
                  +
                  + + + handleSpeechNumberInput(event, (value) => + updateSpeechStt("autoSubmitDelayMs", value), + )} + /> +
                  +
                  +
                  + +
                  + {#if speechStatusVariant === "error"} +

                  + {speechStatusMessage} +

                  + {:else if speechSaving} +

                  + Saving changes… +

                  + {:else if speechDirty} +

                  + {speechStatusMessage ?? + "Pending changes; closing system settings will save."} +

                  + {:else} +

                  + {speechStatusMessage ?? + "Changes save when you close system settings."}

                  {/if} - {/if} +
                  - {#if $mcpServers.saveError || $systemPrompt.saveError} + {#if $systemPrompt.saveError || speechStatusVariant === "error"}

                  Resolve the errors above before closing.

                  - {:else if $systemPrompt.saving || $mcpServers.saving} + {:else if $systemPrompt.saving || speechSaving}

                  Saving changes…

                  - {:else if $systemPrompt.dirty || $mcpServers.dirty} + {:else if $systemPrompt.dirty || speechDirty}

                  Pending changes; closing this modal will save.

                  {:else}

                  Changes save when you close this modal.

                  diff --git a/frontend/src/lib/components/chat/presets-settings.css b/frontend/src/lib/components/chat/presets-settings.css new file mode 100644 index 00000000..8b65fbf2 --- /dev/null +++ b/frontend/src/lib/components/chat/presets-settings.css @@ -0,0 +1,93 @@ +:global(.presets-modal) { + width: min(820px, calc(100% - 2rem)); + max-height: min(80vh, 720px); +} +:global(.presets-body) { + display: flex; + flex-direction: column; + gap: 1.25rem; +} +.create-row { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; +} +.create-row input[type="text"] { + flex: 1; + min-width: 200px; +} +.preset-list { + list-style: none; + padding: 0; + margin: 0; + display: grid; + gap: 0.5rem; +} +.preset-item { + display: flex; + align-items: center; + gap: 0.75rem; + border: 1px solid rgba(37, 49, 77, 0.6); + border-radius: 0.65rem; + padding: 0.6rem 0.75rem; + background: rgba(12, 19, 34, 0.6); +} +.preset-item .meta { + flex: 1; + min-width: 0; +} +.preset-item .name { + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; +} +.default-badge { + display: inline-block; + padding: 0.15rem 0.5rem; + font-size: 0.75rem; + font-weight: 500; + border-radius: 999px; + background: rgba(34, 197, 94, 0.2); + color: #86efac; + border: 1px solid rgba(34, 197, 94, 0.4); +} +.filters-badge { + display: inline-flex; + align-items: center; + gap: 0.25rem; + padding: 0.15rem 0.5rem; + font-size: 0.75rem; + font-weight: 500; + border-radius: 999px; + background: rgba(59, 130, 246, 0.15); + color: #93c5fd; + border: 1px solid rgba(59, 130, 246, 0.3); +} +.filters-badge svg { + width: 12px; + height: 12px; +} +.preset-item .details { + display: flex; + gap: 0.5rem; + color: #9fb3d8; + font-size: 0.85rem; + flex-wrap: wrap; +} +.preset-item .details .model { + color: #c7d7f4; +} +.preset-item .actions { + display: inline-flex; + gap: 0.4rem; + flex-wrap: wrap; +} +.preset-item .actions button { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.35rem; + white-space: nowrap; + font: inherit; +} diff --git a/frontend/src/lib/components/chat/speech-settings.css b/frontend/src/lib/components/chat/speech-settings.css index 0292d04c..d16e7801 100644 --- a/frontend/src/lib/components/chat/speech-settings.css +++ b/frontend/src/lib/components/chat/speech-settings.css @@ -145,19 +145,23 @@ color: #8094bb; } -.model-settings-footer .status { +.model-settings-footer .status, +.speech-status .status { font-size: 0.78rem; } -.model-settings-footer .status[data-variant='success'] { +.model-settings-footer .status[data-variant='success'], +.speech-status .status[data-variant='success'] { color: #34d399; } -.model-settings-footer .status[data-variant='error'] { +.model-settings-footer .status[data-variant='error'], +.speech-status .status[data-variant='error'] { color: #f87171; } -.model-settings-footer .status[data-variant='pending'] { +.model-settings-footer .status[data-variant='pending'], +.speech-status .status[data-variant='pending'] { color: #facc15; } diff --git a/frontend/src/lib/components/chat/system-settings.css b/frontend/src/lib/components/chat/system-settings.css index 44ac1da7..972d6d2c 100644 --- a/frontend/src/lib/components/chat/system-settings.css +++ b/frontend/src/lib/components/chat/system-settings.css @@ -2,7 +2,8 @@ z-index: 150; } -.system-settings-modal { +.system-settings-modal, +.mcp-settings-modal { width: min(720px, 100%); } From bd0cce2293736ead6e12d6e0a0aae142ac7bfce4 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 02:31:47 -0500 Subject: [PATCH 43/78] feat: Integrate Google, Spotify, and Monarch Money authentication with new UI and logic into the MCP servers modal. --- .../src/lib/components/chat/ChatHeader.svelte | 308 ++++++------- .../components/chat/McpServersModal.svelte | 323 +++++++++++++- .../chat/SystemSettingsModal.svelte | 406 +----------------- .../lib/components/chat/speech-settings.css | 12 +- 4 files changed, 501 insertions(+), 548 deletions(-) diff --git a/frontend/src/lib/components/chat/ChatHeader.svelte b/frontend/src/lib/components/chat/ChatHeader.svelte index 3d39f112..5595438f 100644 --- a/frontend/src/lib/components/chat/ChatHeader.svelte +++ b/frontend/src/lib/components/chat/ChatHeader.svelte @@ -213,161 +213,163 @@ {/if} - + xmlns="http://www.w3.org/2000/svg" + aria-hidden="true" + > + + + + + + - + height="18" + viewBox="0 0 24 24" + fill="none" + xmlns="http://www.w3.org/2000/svg" + aria-hidden="true" + > + + + + + - + + - + + - + +
                  @@ -399,6 +401,11 @@ .controls > * { flex: 0 0 auto; } + .icon-row { + display: flex; + align-items: center; + gap: 0.75rem; + } :global(.chat-header .controls .model-picker) { display: flex; } @@ -571,6 +578,14 @@ .preset-badge { justify-content: center; } + .icon-row { + grid-column: 1 / -1; + justify-content: center; + flex-wrap: nowrap; + } + .icon-row :global(.btn) { + width: auto; + } :global(.chat-header .controls select) { min-width: 0; text-align: left; @@ -616,6 +631,9 @@ width: 1rem; height: 1rem; } + .icon-row { + gap: 0.5rem; + } } @media (max-width: 480px) { .topbar { diff --git a/frontend/src/lib/components/chat/McpServersModal.svelte b/frontend/src/lib/components/chat/McpServersModal.svelte index 8b40841b..347c6185 100644 --- a/frontend/src/lib/components/chat/McpServersModal.svelte +++ b/frontend/src/lib/components/chat/McpServersModal.svelte @@ -1,7 +1,10 @@ @@ -336,8 +244,7 @@ layerClass="system-settings-layer" closeLabel="Close system settings" closeDisabled={$systemPrompt.saving || - speechSaving || - $googleAuth.authorizing} + speechSaving} on:close={() => void closeModal()} > @@ -384,273 +291,11 @@ > {#if $systemPrompt.saveError}

                  {$systemPrompt.saveError}

                  - {:else if $systemPrompt.dirty} -

                  Pending changes; closing this modal will save.

                  - {:else} -

                  Changes save when you close this modal.

                  {/if} {/if}
                  -
                  -
                  -
                  -

                  Google services

                  -

                  - Connect Calendar, Tasks, Gmail, and Drive with a single consent. -

                  -
                  -
                  - -
                  -
                  - -
                  - {#if $googleAuth.loading} -

                  Checking Google authorization…

                  - {:else if $googleAuth.error} -

                  {$googleAuth.error}

                  -
                  - -
                  - {:else if $googleAuth.authorized} -

                  - Connected as {$googleAuth.userEmail}. -

                  - {#if $googleAuth.expiresAt} -

                  - Current token expires {formatUpdatedAt($googleAuth.expiresAt) ?? - "soon"}. -

                  - {:else} -

                  Access will refresh automatically.

                  - {/if} - {:else} -

                  Google services are not connected.

                  - {/if} - -
                    - {#each $googleAuth.services as service} -
                  • {service}
                  • - {/each} -
                  - -

                  - Click "Connect Google Services" to authorize these integrations for - the assistant. -

                  -
                  -
                  - -
                  -
                  -
                  -

                  Spotify

                  -

                  - Connect Spotify for music control and playback. -

                  -
                  -
                  - -
                  -
                  - -
                  - {#if $spotifyAuth.loading} -

                  Checking Spotify authorization…

                  - {:else if $spotifyAuth.error} -

                  {$spotifyAuth.error}

                  -
                  - -
                  - {:else if $spotifyAuth.authorized} -

                  - Connected as {$spotifyAuth.userEmail}. -

                  -

                  Access will refresh automatically.

                  - {:else} -

                  Spotify is not connected.

                  - {/if} - -

                  - Click "Connect Spotify" to authorize music control and playback - features. -

                  -
                  -
                  - -
                  -
                  -
                  -

                  Monarch Money

                  -

                  Connect your Monarch Money account.

                  -
                  -
                  - {#if $monarchAuth.configured} - - {:else} - - {/if} -
                  -
                  - -
                  - {#if $monarchAuth.loading} -

                  Checking Monarch status…

                  - {:else if $monarchAuth.configured} -

                  - Connected as {$monarchAuth.email}. -

                  - {:else} -
                  - - - -

                  - If you already use an app, you must reset MFA in Monarch - Settings to see the secret key again. Enter the new key here AND in - your app. -

                  - {#if $monarchAuth.error} -

                  {$monarchAuth.error}

                  - {/if} -
                  - {/if} -
                  -
                  @@ -1061,37 +706,14 @@
                  -
                  - {#if speechStatusVariant === "error"} -

                  - {speechStatusMessage} -

                  - {:else if speechSaving} -

                  - Saving changes… -

                  - {:else if speechDirty} -

                  - {speechStatusMessage ?? - "Pending changes; closing system settings will save."} -

                  - {:else} -

                  - {speechStatusMessage ?? - "Changes save when you close system settings."} -

                  - {/if} -
                  - {#if $systemPrompt.saveError || speechStatusVariant === "error"} + {#if $systemPrompt.saveError}

                  Resolve the errors above before closing.

                  + {:else if speechSaveError} +

                  {speechSaveError}

                  {:else if $systemPrompt.saving || speechSaving}

                  Saving changes…

                  {:else if $systemPrompt.dirty || speechDirty} diff --git a/frontend/src/lib/components/chat/speech-settings.css b/frontend/src/lib/components/chat/speech-settings.css index d16e7801..0292d04c 100644 --- a/frontend/src/lib/components/chat/speech-settings.css +++ b/frontend/src/lib/components/chat/speech-settings.css @@ -145,23 +145,19 @@ color: #8094bb; } -.model-settings-footer .status, -.speech-status .status { +.model-settings-footer .status { font-size: 0.78rem; } -.model-settings-footer .status[data-variant='success'], -.speech-status .status[data-variant='success'] { +.model-settings-footer .status[data-variant='success'] { color: #34d399; } -.model-settings-footer .status[data-variant='error'], -.speech-status .status[data-variant='error'] { +.model-settings-footer .status[data-variant='error'] { color: #f87171; } -.model-settings-footer .status[data-variant='pending'], -.speech-status .status[data-variant='pending'] { +.model-settings-footer .status[data-variant='pending'] { color: #facc15; } From 6086cc7b88ae3c9694226fcc65493403ab5f0e8c Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 02:45:39 -0500 Subject: [PATCH 44/78] feat: Swap system settings and MCP servers button functionality in ChatHeader component --- .../src/lib/components/chat/ChatHeader.svelte | 72 +++++++------------ 1 file changed, 27 insertions(+), 45 deletions(-) diff --git a/frontend/src/lib/components/chat/ChatHeader.svelte b/frontend/src/lib/components/chat/ChatHeader.svelte index 5595438f..4f8e5f56 100644 --- a/frontend/src/lib/components/chat/ChatHeader.svelte +++ b/frontend/src/lib/components/chat/ChatHeader.svelte @@ -215,59 +215,47 @@
                  From d17befa30cfe63468ca27e2506e8ba50409ea50a Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 03:01:50 -0500 Subject: [PATCH 45/78] feat: Implement auto-sizing for text areas in CLI and Kiosk settings modals; update styles and configurations --- .../components/chat/CliSettingsModal.svelte | 7 ++++++ .../components/chat/KioskSettingsModal.svelte | 7 ++++++ .../chat/SystemSettingsModal.svelte | 2 ++ frontend/src/lib/components/chat/autoSize.ts | 24 +++++++++++++++++++ .../model-settings/model-settings-styles.css | 6 ++++- .../lib/components/chat/system-settings.css | 2 ++ src/backend/data/clients/kiosk/tts.json | 2 +- src/backend/data/clients/svelte/llm.json | 4 ++-- src/backend/data/clients/svelte/presets.json | 2 +- 9 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 frontend/src/lib/components/chat/autoSize.ts diff --git a/frontend/src/lib/components/chat/CliSettingsModal.svelte b/frontend/src/lib/components/chat/CliSettingsModal.svelte index 05406dc2..a7c6404b 100644 --- a/frontend/src/lib/components/chat/CliSettingsModal.svelte +++ b/frontend/src/lib/components/chat/CliSettingsModal.svelte @@ -8,6 +8,7 @@ import { modelStore } from "../../stores/models"; import ModelSettingsDialog from "./model-settings/ModelSettingsDialog.svelte"; import "./model-settings/model-settings-styles.css"; + import { autoSize } from "./autoSize"; import "./system-settings.css"; const { filtered } = modelStore; @@ -221,6 +222,7 @@ rows="6" disabled={saving} placeholder="You are a helpful CLI assistant..." + use:autoSize={draft.system_prompt} on:input={(e) => { draft = { ...draft, @@ -355,6 +357,11 @@ line-height: 1.4; } + .keyterms-input.system-prompt { + resize: none; + overflow: hidden; + } + .keyterms-input:focus { outline: none; border-color: var(--color-accent); diff --git a/frontend/src/lib/components/chat/KioskSettingsModal.svelte b/frontend/src/lib/components/chat/KioskSettingsModal.svelte index db4f01d4..11589e2b 100644 --- a/frontend/src/lib/components/chat/KioskSettingsModal.svelte +++ b/frontend/src/lib/components/chat/KioskSettingsModal.svelte @@ -14,6 +14,7 @@ type KioskSettings, } from "../../stores/kioskSettings"; import { modelStore } from "../../stores/models"; + import { autoSize } from "./autoSize"; import ModelSettingsDialog from "./model-settings/ModelSettingsDialog.svelte"; import "./model-settings/model-settings-styles.css"; import "./system-settings.css"; @@ -297,6 +298,7 @@ rows="4" disabled={saving} placeholder="You are a helpful voice assistant..." + use:autoSize={draft.system_prompt} on:input={(e) => { draft = { ...draft, @@ -846,6 +848,11 @@ line-height: 1.4; } + .keyterms-input.system-prompt { + resize: none; + overflow: hidden; + } + .keyterms-input:focus { outline: none; border-color: var(--color-accent); diff --git a/frontend/src/lib/components/chat/SystemSettingsModal.svelte b/frontend/src/lib/components/chat/SystemSettingsModal.svelte index 61a20dd1..030ca832 100644 --- a/frontend/src/lib/components/chat/SystemSettingsModal.svelte +++ b/frontend/src/lib/components/chat/SystemSettingsModal.svelte @@ -5,6 +5,7 @@ import { chatStore } from "../../stores/chat"; import { modelSettingsStore } from "../../stores/modelSettings"; import { presetsStore } from "../../stores/presets"; + import { autoSize } from "./autoSize"; import { DEEPGRAM_MODEL_OPTIONS, SPEECH_TIMING_PRESETS, @@ -288,6 +289,7 @@ on:input={handlePromptInput} placeholder="Provide guidance for the assistant to follow at the start of new conversations." disabled={$systemPrompt.saving} + use:autoSize={$systemPrompt.value} > {#if $systemPrompt.saveError}

                  {$systemPrompt.saveError}

                  diff --git a/frontend/src/lib/components/chat/autoSize.ts b/frontend/src/lib/components/chat/autoSize.ts new file mode 100644 index 00000000..4fafb38d --- /dev/null +++ b/frontend/src/lib/components/chat/autoSize.ts @@ -0,0 +1,24 @@ +export function autoSize( + node: HTMLTextAreaElement, + _value?: string | null, +): { + update: (value?: string | null) => void; + destroy: () => void; +} { + const resize = (): void => { + node.style.height = "auto"; + node.style.height = `${node.scrollHeight}px`; + }; + + const handleInput = (): void => resize(); + + resize(); + node.addEventListener("input", handleInput); + + return { + update: () => resize(), + destroy: () => { + node.removeEventListener("input", handleInput); + }, + }; +} diff --git a/frontend/src/lib/components/chat/model-settings/model-settings-styles.css b/frontend/src/lib/components/chat/model-settings/model-settings-styles.css index e403754e..8d9f9067 100644 --- a/frontend/src/lib/components/chat/model-settings/model-settings-styles.css +++ b/frontend/src/lib/components/chat/model-settings/model-settings-styles.css @@ -258,7 +258,7 @@ .reasoning-controls { display: grid; gap: 0.75rem; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + grid-template-columns: repeat(2, minmax(0, 1fr)); } .reasoning-field { @@ -303,4 +303,8 @@ .model-settings-modal { width: 100%; } + + .reasoning-controls { + grid-template-columns: 1fr; + } } diff --git a/frontend/src/lib/components/chat/system-settings.css b/frontend/src/lib/components/chat/system-settings.css index 972d6d2c..e80a3d6d 100644 --- a/frontend/src/lib/components/chat/system-settings.css +++ b/frontend/src/lib/components/chat/system-settings.css @@ -100,6 +100,8 @@ .system-prompt { min-height: 140px; line-height: 1.45; + resize: none; + overflow: hidden; } .server-list { diff --git a/src/backend/data/clients/kiosk/tts.json b/src/backend/data/clients/kiosk/tts.json index 80806301..8b95e711 100644 --- a/src/backend/data/clients/kiosk/tts.json +++ b/src/backend/data/clients/kiosk/tts.json @@ -1,5 +1,5 @@ { - "enabled": false, + "enabled": true, "provider": "openai", "model": "tts-1", "voice": "alloy", diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 383cde93..9a8dd70e 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { - "model": "openai/gpt-5.2", - "system_prompt": "You are a helpful assistant. yea", + "model": "openai/gpt-4o-mini", + "system_prompt": "You are a helpful assistant.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 2546a97b..49ce1243 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -49,5 +49,5 @@ "updated_at": "2025-12-19T11:20:27.054736+00:00" } ], - "active_index": 1 + "active_index": 0 } \ No newline at end of file From 82b93282fb1f6aade2181c7e4d795f5afae1a488 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 03:04:37 -0500 Subject: [PATCH 46/78] feat: Add eager_eot_threshold to Kiosk STT settings and update related interfaces --- frontend/src/lib/api/kiosk.ts | 2 ++ frontend/src/lib/stores/kioskSettings.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/frontend/src/lib/api/kiosk.ts b/frontend/src/lib/api/kiosk.ts index 12ba33a7..a9b408c2 100644 --- a/frontend/src/lib/api/kiosk.ts +++ b/frontend/src/lib/api/kiosk.ts @@ -10,12 +10,14 @@ import { API_BASE_URL } from './config'; export interface KioskSttSettings { eot_threshold: number; eot_timeout_ms: number; + eager_eot_threshold?: number | null; keyterms: string[]; } export interface KioskSttSettingsUpdate { eot_threshold?: number; eot_timeout_ms?: number; + eager_eot_threshold?: number | null; keyterms?: string[]; } diff --git a/frontend/src/lib/stores/kioskSettings.ts b/frontend/src/lib/stores/kioskSettings.ts index ddebcf8a..b3b4e53a 100644 --- a/frontend/src/lib/stores/kioskSettings.ts +++ b/frontend/src/lib/stores/kioskSettings.ts @@ -32,6 +32,7 @@ export interface KioskSettings { // STT settings eot_threshold: number; eot_timeout_ms: number; + eager_eot_threshold: number | null; keyterms: string[]; // TTS settings (OpenAI) enabled: boolean; @@ -57,6 +58,7 @@ export const DEFAULT_KIOSK_SETTINGS: KioskSettings = { // STT eot_threshold: 0.7, eot_timeout_ms: 5000, + eager_eot_threshold: null, keyterms: [], // TTS (OpenAI) enabled: true, @@ -105,6 +107,7 @@ function createKioskSettingsStore() { // STT eot_threshold: sttSettings.eot_threshold, eot_timeout_ms: sttSettings.eot_timeout_ms, + eager_eot_threshold: sttSettings.eager_eot_threshold ?? null, keyterms: sttSettings.keyterms, // TTS enabled: ttsSettings.enabled, @@ -144,6 +147,7 @@ function createKioskSettingsStore() { // STT fields if (update.eot_threshold !== undefined) sttUpdate.eot_threshold = update.eot_threshold; if (update.eot_timeout_ms !== undefined) sttUpdate.eot_timeout_ms = update.eot_timeout_ms; + if (update.eager_eot_threshold !== undefined) sttUpdate.eager_eot_threshold = update.eager_eot_threshold; if (update.keyterms !== undefined) sttUpdate.keyterms = update.keyterms; // TTS fields @@ -200,6 +204,7 @@ function createKioskSettingsStore() { // STT eot_threshold: sttSettings.eot_threshold, eot_timeout_ms: sttSettings.eot_timeout_ms, + eager_eot_threshold: sttSettings.eager_eot_threshold ?? null, keyterms: sttSettings.keyterms, // TTS enabled: ttsSettings.enabled, From 5abe6d13eff50e42c852c86fa2244ec5d6a815cf Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 03:23:00 -0500 Subject: [PATCH 47/78] feat: Enhance client ID resolution and model settings handling in chat orchestrator and streaming handler --- frontend-cli/shell_chat.py | 9 +++- src/backend/chat/orchestrator.py | 62 +++++++++++++++++++++----- src/backend/chat/streaming/handler.py | 16 ++++--- src/backend/services/model_settings.py | 5 +++ 4 files changed, 73 insertions(+), 19 deletions(-) diff --git a/frontend-cli/shell_chat.py b/frontend-cli/shell_chat.py index bf437fd7..ed01fb32 100644 --- a/frontend-cli/shell_chat.py +++ b/frontend-cli/shell_chat.py @@ -90,8 +90,14 @@ async def _check_health(self) -> bool: if resp.status_code == 200: data = resp.json() model = data.get("active_model", "unknown") + try: + llm_resp = await client.get(f"{self.client_api}/llm") + if llm_resp.status_code == 200: + model = llm_resp.json().get("model", model) + except Exception: + pass self.console.print( - f"[dim]Connected to backend. Model: {model}[/dim]" + f"[dim]Connected to backend. CLI model: {model}[/dim]" ) return True except Exception as e: @@ -371,6 +377,7 @@ async def _stream_chat(self, message: str) -> None: """Send message and stream response via SSE.""" payload: dict[str, Any] = { "messages": [{"role": "user", "content": message}], + "metadata": {"client_id": self.CLIENT_ID}, } if self.session_id: payload["session_id"] = self.session_id diff --git a/src/backend/chat/orchestrator.py b/src/backend/chat/orchestrator.py index 4e615afc..0b23cde4 100644 --- a/src/backend/chat/orchestrator.py +++ b/src/backend/chat/orchestrator.py @@ -38,6 +38,7 @@ ToolPayload = list[dict[str, Any]] +_KNOWN_CLIENT_IDS = {"cli", "kiosk", "svelte"} def _iter_attachment_ids(content: Any) -> Iterable[str]: @@ -115,6 +116,9 @@ def __init__( min_level=logging_settings.conversations_level, ) self._model_settings = model_settings + self._model_settings_by_client: dict[str, ModelSettingsService] = { + model_settings.client_id: model_settings + } self._mcp_settings = mcp_settings self._streaming = StreamingHandler( self._client, @@ -181,6 +185,44 @@ def set_attachment_service(self, service: "AttachmentService | None") -> None: self._streaming.set_attachment_service(service) + def _resolve_client_id( + self, + session_id: str, + metadata: dict[str, Any] | None, + ) -> str: + """Resolve client id from request metadata or session id prefix.""" + + if isinstance(metadata, dict): + candidate = metadata.get("client_id") + if isinstance(candidate, str): + candidate = candidate.strip() + if candidate: + if candidate in _KNOWN_CLIENT_IDS: + return candidate + logger.info( + "Unknown client_id '%s' provided; defaulting to svelte", + candidate, + ) + + if session_id.startswith("kiosk_"): + return "kiosk" + if session_id.startswith("cli_"): + return "cli" + return "svelte" + + def _get_model_settings_for_client(self, client_id: str) -> ModelSettingsService: + """Return cached model settings service for the requested client.""" + + service = self._model_settings_by_client.get(client_id) + if service is None: + service = ModelSettingsService( + default_model=self._settings.default_model, + default_system_prompt=self._settings.openrouter_system_prompt, + client_id=client_id, + ) + self._model_settings_by_client[client_id] = service + return service + async def process_stream( self, request: ChatCompletionRequest, @@ -197,11 +239,16 @@ async def process_stream( existing = await self._repo.session_exists(session_id) await self._repo.ensure_session(session_id) + request_metadata = request.metadata if isinstance(request.metadata, dict) else None + assistant_parent_message_id: str | None = None - if isinstance(request.metadata, dict): - parent_candidate = request.metadata.get("client_parent_message_id") + if request_metadata: + parent_candidate = request_metadata.get("client_parent_message_id") if isinstance(parent_candidate, str): assistant_parent_message_id = parent_candidate + + client_id = self._resolve_client_id(session_id, request_metadata) + model_settings = self._get_model_settings_for_client(client_id) stored_messages = await self._repo.get_messages(session_id) system_messages = [ message for message in stored_messages if message.get("role") == "system" @@ -209,7 +256,7 @@ async def process_stream( incoming_has_system = any( message.role == "system" for message in incoming_messages ) - system_prompt_value = await self._model_settings.get_system_prompt() + system_prompt_value = await model_settings.get_system_prompt() system_prompt = _build_enhanced_system_prompt(system_prompt_value) has_system_message = bool(system_messages) @@ -271,14 +318,6 @@ async def process_stream( # Filter tools based on session type and server config configs = await self._mcp_settings.get_configs() - # Determine client_id from session_id prefix - if session_id.startswith("kiosk_"): - client_id = "kiosk" - elif session_id.startswith("cli_"): - client_id = "cli" - else: - client_id = "svelte" - # Filter by client-specific enabled state allowed_servers = {cfg.id for cfg in configs if cfg.is_enabled_for_client(client_id)} @@ -309,6 +348,7 @@ async def process_stream( conversation, tools_payload, assistant_parent_message_id, + model_settings=model_settings, ): yield event diff --git a/src/backend/chat/streaming/handler.py b/src/backend/chat/streaming/handler.py index ccdc0e3b..e5fed325 100644 --- a/src/backend/chat/streaming/handler.py +++ b/src/backend/chat/streaming/handler.py @@ -129,6 +129,7 @@ async def stream_conversation( conversation: list[dict[str, Any]], tools_payload: list[dict[str, Any]], assistant_parent_message_id: str | None, + model_settings: ModelSettingsService | None = None, ) -> AsyncGenerator[SseEvent, None]: """Yield SSE events while maintaining state and executing tools.""" @@ -146,6 +147,7 @@ async def stream_conversation( requested_tool_choice = ( tool_choice_value if isinstance(tool_choice_value, str) else None ) + active_model_settings = model_settings or self._model_settings base_tools_disabled = requested_tool_choice == "none" has_structured_tool_choice = isinstance(tool_choice_value, dict) can_retry_without_tools = ( @@ -164,11 +166,11 @@ async def stream_conversation( overrides: dict[str, Any] = {} capability: ModelCapabilities | None = None model_supports_tools = True - if self._model_settings is not None: + if active_model_settings is not None: ( model_override, overrides, - ) = await self._model_settings.get_openrouter_overrides() + ) = await active_model_settings.get_openrouter_overrides() if model_override: active_model = model_override overrides = dict(overrides) if overrides else {} @@ -199,9 +201,9 @@ async def stream_conversation( continue payload.setdefault(key, value) - if self._model_settings is not None: - if hasattr(self._model_settings, "sanitize_payload_for_model"): - capability = await self._model_settings.sanitize_payload_for_model( # type: ignore[attr-defined] + if active_model_settings is not None: + if hasattr(active_model_settings, "sanitize_payload_for_model"): + capability = await active_model_settings.sanitize_payload_for_model( # type: ignore[attr-defined] active_model, payload, client=self._client, @@ -211,13 +213,13 @@ async def stream_conversation( else: try: model_supports_tools = ( - await self._model_settings.model_supports_tools( # type: ignore[misc] + await active_model_settings.model_supports_tools( # type: ignore[misc] client=self._client, # type: ignore[arg-type] ) ) except TypeError: model_supports_tools = ( - await self._model_settings.model_supports_tools() + await active_model_settings.model_supports_tools() ) # type: ignore[misc] if not model_supports_tools and tools_available and not tools_disabled: diff --git a/src/backend/services/model_settings.py b/src/backend/services/model_settings.py index 9c0edd9d..c3265dfd 100644 --- a/src/backend/services/model_settings.py +++ b/src/backend/services/model_settings.py @@ -151,6 +151,11 @@ def _get_service(self): """Get the client settings service for our client.""" return get_client_settings_service(self._client_id) + @property + def client_id(self) -> str: + """Return the client identifier for these settings.""" + return self._client_id + def _get_llm(self) -> LlmSettings: """Get current LLM settings from client settings service.""" return self._get_service().get_llm() From 19dc542bd905825488d84885c99e852589ed140a Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 20 Dec 2025 23:49:46 -0500 Subject: [PATCH 48/78] feat: add system maintenance tools and update default LLM model, system prompt, and active preset. --- src/backend/data/clients/svelte/llm.json | 4 +- src/backend/data/clients/svelte/presets.json | 2 +- .../mcp_servers/shell_control_server.py | 147 ++++++++++++++++++ 3 files changed, 150 insertions(+), 3 deletions(-) diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 9a8dd70e..1c821c3c 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { - "model": "openai/gpt-4o-mini", - "system_prompt": "You are a helpful assistant.", + "model": "openai/gpt-5.2", + "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 49ce1243..2546a97b 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -49,5 +49,5 @@ "updated_at": "2025-12-19T11:20:27.054736+00:00" } ], - "active_index": 0 + "active_index": 1 } \ No newline at end of file diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 3e676a67..59e57f90 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1781,6 +1781,150 @@ async def host_detect_system() -> str: ) +# ============================================================================= +# System Maintenance Tools +# ============================================================================= + +# Paths to maintenance scripts (user's ~/.config/scripts/) +_MAINTENANCE_SCRIPTS = { + "update_system": "~/.config/scripts/update-system.sh", + "cleanup_system": "~/.config/scripts/cleanup-system.sh", + "update_antigravity": "~/.config/scripts/update-antigravity.sh", +} + + +async def _run_maintenance_script(script_key: str, timeout_seconds: int = 300) -> dict: + """Run a maintenance script and return structured results.""" + script_path = os.path.expanduser(_MAINTENANCE_SCRIPTS.get(script_key, "")) + + if not script_path or not os.path.isfile(script_path): + return { + "status": "error", + "script": script_key, + "message": f"Script not found: {script_path}", + } + + if not os.access(script_path, os.X_OK): + return { + "status": "error", + "script": script_key, + "message": f"Script not executable: {script_path}", + } + + shell_env = _build_shell_env() + start = time.perf_counter() + + try: + process = await asyncio.create_subprocess_shell( + f"bash {shlex.quote(script_path)}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + env=shell_env, + ) + + stdout_bytes, _ = await asyncio.wait_for( + process.communicate(), + timeout=float(timeout_seconds), + ) + + exit_code = process.returncode if process.returncode is not None else -1 + duration_ms = (time.perf_counter() - start) * 1000 + output = stdout_bytes.decode("utf-8", errors="replace") + + # Smart truncate for LLM consumption + truncated_output, was_truncated = _smart_truncate(output, success=(exit_code == 0)) + + return { + "status": "ok" if exit_code == 0 else "error", + "script": script_key, + "exit_code": exit_code, + "duration_ms": duration_ms, + "output": truncated_output, + "truncated": was_truncated, + } + + except asyncio.TimeoutError: + duration_ms = (time.perf_counter() - start) * 1000 + return { + "status": "timeout", + "script": script_key, + "message": f"Script timed out after {timeout_seconds} seconds", + "duration_ms": duration_ms, + } + except Exception as exc: + duration_ms = (time.perf_counter() - start) * 1000 + return { + "status": "error", + "script": script_key, + "message": str(exc), + "duration_ms": duration_ms, + } + + +@mcp.tool("system_update") # type: ignore +async def system_update() -> str: + """Run full system update: packages (pacman + AUR), VS Code extensions, Antigravity, cleanup. + + This is fully automatic with no prompts. Runs ~/.config/scripts/update-system.sh. + + Typical runtime: 1-5 minutes depending on updates available. + + Returns: + JSON with status, exit_code, and output summary. + """ + result = await _run_maintenance_script("update_system", timeout_seconds=600) + + # Trigger a software snapshot after successful update + if result.get("status") == "ok": + try: + snapshot = await _auto_snapshot_software({"packages", "services"}) + if snapshot: + result["profile_updated"] = True + except Exception: + pass # Non-critical, don't fail the update + + return json.dumps(result) + + +@mcp.tool("system_cleanup") # type: ignore +async def system_cleanup() -> str: + """Clean up system: package cache, orphans, user cache, journal logs, trash. + + This is fully automatic with no prompts. Runs ~/.config/scripts/cleanup-system.sh. + + Typical runtime: 10-60 seconds. + + Returns: + JSON with status, exit_code, and space freed. + """ + result = await _run_maintenance_script("cleanup_system", timeout_seconds=120) + return json.dumps(result) + + +@mcp.tool("update_antigravity") # type: ignore +async def update_antigravity() -> str: + """Install Antigravity update from downloaded tarball. + + Checks ~/Downloads/Antigravity.tar.gz and installs if present. + Fully automatic - no prompts. Deletes tarball after successful install. + + If no tarball is present, returns success with a message indicating no update available. + + Returns: + JSON with status and installation details. + """ + result = await _run_maintenance_script("update_antigravity", timeout_seconds=60) + + # Check if it was a "no tarball" case (script exits 0 but says "skipping") + output = result.get("output", "") + if "skipping" in output.lower() or "no antigravity tarball" in output.lower(): + result["message"] = "No Antigravity update tarball found in ~/Downloads" + elif result.get("status") == "ok": + result["message"] = "Antigravity updated successfully" + + return json.dumps(result) + + def _shutdown_sessions() -> None: """Synchronously terminate all active shell sessions on shutdown. @@ -1824,5 +1968,8 @@ def run() -> None: # pragma: no cover - integration entrypoint "host_get_profile", "host_update_profile", "host_detect_system", + "system_update", + "system_cleanup", + "update_antigravity", "run", ] From 5261d443b2a1130896927cdac314dde95b17f5d3 Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 21 Dec 2025 22:31:43 -0500 Subject: [PATCH 49/78] feat: add HTTP transport support to MCP servers, introduce a new script to run them as HTTP services, and update server configurations. --- data/mcp_servers.json | 10 + pyproject.toml | 2 +- src/backend/chat/mcp_client.py | 10 +- src/backend/chat/mcp_registry.py | 22 +- src/backend/data/clients/svelte/llm.json | 2 +- src/backend/mcp_servers/calculator_server.py | 42 ++- src/backend/mcp_servers/calendar_server.py | 44 ++- src/backend/mcp_servers/gdrive_server.py | 41 ++- src/backend/mcp_servers/gmail_server.py | 41 ++- .../mcp_servers/housekeeping_server.py | 41 ++- src/backend/mcp_servers/monarch_server.py | 47 +++- src/backend/mcp_servers/notes_server.py | 41 ++- .../mcp_servers/shell_control_server.py | 132 +++++---- src/backend/mcp_servers/spotify_server.py | 42 ++- src/backend/run_mcp_servers.py | 253 ++++++++++++++++++ start.sh | 27 +- uv.lock | 135 +++++++++- 17 files changed, 814 insertions(+), 118 deletions(-) create mode 100644 src/backend/run_mcp_servers.py diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 44298552..a10f4bf5 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -13,6 +13,7 @@ "HOST_PROFILE_ID": "xps13", "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" }, + "http_port": 9001, "id": "shell-control", "module": "backend.mcp_servers.shell_control_server", "tool_overrides": {} @@ -27,6 +28,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9009, "id": "notes", "module": "backend.mcp_servers.notes_server", "tool_overrides": {} @@ -40,6 +42,7 @@ "contexts": [], "enabled": false, "env": {}, + "http_port": 9008, "id": "monarch-money", "module": "backend.mcp_servers.monarch_server", "tool_overrides": {} @@ -54,6 +57,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9005, "id": "custom-gmail", "module": "backend.mcp_servers.gmail_server", "tool_overrides": {} @@ -68,6 +72,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9006, "id": "custom-gdrive", "module": "backend.mcp_servers.gdrive_server", "tool_overrides": {} @@ -82,6 +87,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9007, "id": "custom-pdf", "module": "backend.mcp_servers.pdf_server", "tool_overrides": {} @@ -96,6 +102,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9004, "id": "custom-calendar", "module": "backend.mcp_servers.calendar_server", "tool_overrides": {} @@ -110,6 +117,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9010, "id": "spotify", "module": "backend.mcp_servers.spotify_server", "tool_overrides": {} @@ -124,6 +132,7 @@ "disabled_tools": [], "enabled": false, "env": {}, + "http_port": 9003, "id": "local-calculator", "module": "backend.mcp_servers.calculator_server", "tool_overrides": {} @@ -141,6 +150,7 @@ ], "enabled": true, "env": {}, + "http_port": 9002, "id": "housekeeping", "module": "backend.mcp_servers.housekeeping_server", "tool_overrides": {} diff --git a/pyproject.toml b/pyproject.toml index 7b6b9b44..ee1254a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "fastapi[standard]>=0.115.0", "httpx[http2]>=0.27.2", "aiosqlite>=0.20.0", - "mcp>=1.17.0", + "mcp>=1.25.0", "pydantic-settings>=2.4.0", "psutil>=7.1.0", "pytest>=8.4.2", diff --git a/src/backend/chat/mcp_client.py b/src/backend/chat/mcp_client.py index 36b5a623..a0fdb6f3 100644 --- a/src/backend/chat/mcp_client.py +++ b/src/backend/chat/mcp_client.py @@ -100,7 +100,7 @@ async def _run_lifecycle(self) -> None: exit_stack = AsyncExitStack() try: if self._http_url is not None: - from mcp.client.sse import sse_client + from mcp.client.streamable_http import streamablehttp_client logger.info( "Connecting to HTTP MCP server at %s (id=%s)", @@ -108,11 +108,9 @@ async def _run_lifecycle(self) -> None: self._server_id, ) async with asyncio.timeout(HTTP_CONNECTION_TIMEOUT): - sse_manager = sse_client( - self._http_url, timeout=HTTP_CONNECTION_TIMEOUT - ) - (read_stream, write_stream) = await exit_stack.enter_async_context( - sse_manager + http_manager = streamablehttp_client(self._http_url) + (read_stream, write_stream, _) = await exit_stack.enter_async_context( + http_manager ) elif self._launch_command is not None: params = StdioServerParameters( diff --git a/src/backend/chat/mcp_registry.py b/src/backend/chat/mcp_registry.py index 94c32a87..d9822ab8 100644 --- a/src/backend/chat/mcp_registry.py +++ b/src/backend/chat/mcp_registry.py @@ -87,6 +87,10 @@ class MCPServerConfig(BaseModel): default=None, description="HTTP/SSE endpoint URL for remote MCP server (e.g., http://example.com/mcp)", ) + http_port: int | None = Field( + default=None, + description="Local HTTP port to connect to (implies http://127.0.0.1:{port}/mcp)", + ) cwd: Path | None = Field( default=None, description="Working directory for the launched process", @@ -200,6 +204,11 @@ def _normalize_tool_overrides(cls, value: Any) -> Any: @model_validator(mode="after") def _validate_launch_method(self) -> "MCPServerConfig": + if self.http_port is not None: + # If http_port is set, we treat it as an HTTP connection, ignoring module/command for client purposes. + # We don't enforce exclusivity here because 'module' might be present for the runner script. + return self + methods_specified = sum( [ self.module is not None, @@ -208,7 +217,7 @@ def _validate_launch_method(self) -> "MCPServerConfig": ] ) if methods_specified == 0: - message = "Define exactly one of 'module', 'command', or 'http_url' for MCP server '%s'" + message = "Define exactly one of 'module', 'command', 'http_url', or 'http_port' for MCP server '%s'" raise ValueError(message % self.id) if methods_specified > 1: message = "Cannot specify more than one of 'module', 'command', or 'http_url' for MCP server '%s'" @@ -877,7 +886,14 @@ async def _launch_server(self, config: MCPServerConfig) -> None: cwd = config.resolved_cwd(self._default_cwd) try: - if config.http_url is not None: + if config.http_port is not None: + # Construct local URL from port (defaulting to /mcp path) + config_url = f"http://127.0.0.1:{config.http_port}/mcp" + client = MCPToolClient( + http_url=config_url, + server_id=config.id, + ) + elif config.http_url is not None: client = MCPToolClient( http_url=config.http_url, server_id=config.id, @@ -910,7 +926,7 @@ def _requires_restart( if old_cfg is None: return True - comparable_fields = ("module", "command", "http_url", "cwd", "env") + comparable_fields = ("module", "command", "http_url", "http_port", "cwd", "env") for attr in comparable_fields: if getattr(old_cfg, attr) != getattr(new_cfg, attr): return True diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 1c821c3c..383cde93 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { "model": "openai/gpt-5.2", - "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", + "system_prompt": "You are a helpful assistant. yea", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/mcp_servers/calculator_server.py b/src/backend/mcp_servers/calculator_server.py index 3bf8c654..045626c1 100644 --- a/src/backend/mcp_servers/calculator_server.py +++ b/src/backend/mcp_servers/calculator_server.py @@ -2,11 +2,16 @@ from __future__ import annotations +import argparse from typing import Literal from mcp.server.fastmcp import FastMCP -mcp = FastMCP("local-calculator") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9003 + +# Create FastMCP instance with stateless HTTP support +mcp = FastMCP("local-calculator", stateless_http=True, json_response=True) @mcp.tool("calculator_evaluate") @@ -33,12 +38,41 @@ async def evaluate( return str(result) -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + parser = argparse.ArgumentParser(description="Calculator MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = ["mcp", "run", "evaluate"] diff --git a/src/backend/mcp_servers/calendar_server.py b/src/backend/mcp_servers/calendar_server.py index 48a92434..940c31d0 100644 --- a/src/backend/mcp_servers/calendar_server.py +++ b/src/backend/mcp_servers/calendar_server.py @@ -37,8 +37,11 @@ parse_rfc3339_datetime, ) -# Create MCP server instance -mcp: FastMCP = FastMCP("custom-calendar") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9004 + +# Create MCP server instance with stateless HTTP support +mcp: FastMCP = FastMCP("custom-calendar", stateless_http=True, json_response=True) def get_tasks_service(user_email: str): @@ -1527,13 +1530,42 @@ async def list_calendars( return f"Error listing calendars: {exc}" -def run() -> None: # pragma: no cover - integration entrypoint - """Run the MCP server.""" - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Calendar MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ diff --git a/src/backend/mcp_servers/gdrive_server.py b/src/backend/mcp_servers/gdrive_server.py index 8ed8a56f..8a613be7 100644 --- a/src/backend/mcp_servers/gdrive_server.py +++ b/src/backend/mcp_servers/gdrive_server.py @@ -19,7 +19,10 @@ get_drive_service, ) -mcp = FastMCP("custom-gdrive") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9006 + +mcp = FastMCP("custom-gdrive", stateless_http=True, json_response=True) DRIVE_FIELDS_MINIMAL = ( "files(id, name, mimeType, size, modifiedTime, webViewLink, iconLink)" ) @@ -1420,12 +1423,42 @@ async def check_drive_file_public_access( return "\n".join(lines) -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Google Drive MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ diff --git a/src/backend/mcp_servers/gmail_server.py b/src/backend/mcp_servers/gmail_server.py index 35f27854..385e17bc 100644 --- a/src/backend/mcp_servers/gmail_server.py +++ b/src/backend/mcp_servers/gmail_server.py @@ -33,7 +33,10 @@ get_gmail_service, ) -mcp = FastMCP("custom-gmail") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9005 + +mcp = FastMCP("custom-gmail", stateless_http=True, json_response=True) GMAIL_BATCH_SIZE = 25 HTML_BODY_TRUNCATE_LIMIT = 20000 @@ -1390,12 +1393,42 @@ async def batch_modify_gmail_message_labels( return f"Labels updated for {len(message_ids)} messages: {'; '.join(actions)}" -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Gmail MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ diff --git a/src/backend/mcp_servers/housekeeping_server.py b/src/backend/mcp_servers/housekeeping_server.py index 79fc8b83..28ba975f 100644 --- a/src/backend/mcp_servers/housekeeping_server.py +++ b/src/backend/mcp_servers/housekeeping_server.py @@ -22,7 +22,10 @@ format_timezone_offset, ) -mcp = FastMCP("housekeeping") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9002 + +mcp = FastMCP("housekeeping", stateless_http=True, json_response=True) _MESSAGE_PREVIEW_LIMIT = 2000 _MAX_HISTORY_LIMIT = 100 @@ -249,12 +252,42 @@ async def chat_history( } -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Housekeeping MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = ["mcp", "run", "test_echo", "current_time", "chat_history"] diff --git a/src/backend/mcp_servers/monarch_server.py b/src/backend/mcp_servers/monarch_server.py index e6e53f93..e6e80888 100644 --- a/src/backend/mcp_servers/monarch_server.py +++ b/src/backend/mcp_servers/monarch_server.py @@ -27,7 +27,10 @@ class MonarchAPIError(Exception): pass -mcp = FastMCP("monarch") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9008 + +mcp = FastMCP("monarch", stateless_http=True, json_response=True) def _project_root() -> Path: @@ -1849,9 +1852,39 @@ async def upload_monarch_account_balance_history( return {"error": error_msg} -def run() -> None: - mcp.run() - - -if __name__ == "__main__": - run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() + + +if __name__ == "__main__": # pragma: no cover - CLI helper + import argparse + parser = argparse.ArgumentParser(description="Monarch Money MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) diff --git a/src/backend/mcp_servers/notes_server.py b/src/backend/mcp_servers/notes_server.py index b0e3755b..127900f4 100644 --- a/src/backend/mcp_servers/notes_server.py +++ b/src/backend/mcp_servers/notes_server.py @@ -20,7 +20,10 @@ get_drive_service, ) -mcp = FastMCP("notes") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9009 + +mcp = FastMCP("notes", stateless_http=True, json_response=True) # Default vault folder name in Google Drive DEFAULT_VAULT_FOLDER_NAME = "NOTES" @@ -1476,12 +1479,42 @@ async def vault_info( return "\n".join(lines) -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Notes MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 59e57f90..da6987f9 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -20,7 +20,10 @@ from mcp.server.fastmcp import FastMCP -mcp: FastMCP = FastMCP("shell-control") # type: ignore +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9001 + +mcp: FastMCP = FastMCP("shell-control", stateless_http=True, json_response=True) # type: ignore OUTPUT_TAIL_BYTES = 4 * 1024 # For success: last 4KB is usually enough @@ -1788,32 +1791,31 @@ async def host_detect_system() -> str: # Paths to maintenance scripts (user's ~/.config/scripts/) _MAINTENANCE_SCRIPTS = { "update_system": "~/.config/scripts/update-system.sh", - "cleanup_system": "~/.config/scripts/cleanup-system.sh", - "update_antigravity": "~/.config/scripts/update-antigravity.sh", + "backup_system": "~/.config/scripts/backup-system.sh", } async def _run_maintenance_script(script_key: str, timeout_seconds: int = 300) -> dict: """Run a maintenance script and return structured results.""" script_path = os.path.expanduser(_MAINTENANCE_SCRIPTS.get(script_key, "")) - + if not script_path or not os.path.isfile(script_path): return { "status": "error", "script": script_key, "message": f"Script not found: {script_path}", } - + if not os.access(script_path, os.X_OK): return { "status": "error", "script": script_key, "message": f"Script not executable: {script_path}", } - + shell_env = _build_shell_env() start = time.perf_counter() - + try: process = await asyncio.create_subprocess_shell( f"bash {shlex.quote(script_path)}", @@ -1821,19 +1823,19 @@ async def _run_maintenance_script(script_key: str, timeout_seconds: int = 300) - stderr=asyncio.subprocess.STDOUT, env=shell_env, ) - + stdout_bytes, _ = await asyncio.wait_for( process.communicate(), timeout=float(timeout_seconds), ) - + exit_code = process.returncode if process.returncode is not None else -1 duration_ms = (time.perf_counter() - start) * 1000 output = stdout_bytes.decode("utf-8", errors="replace") - + # Smart truncate for LLM consumption truncated_output, was_truncated = _smart_truncate(output, success=(exit_code == 0)) - + return { "status": "ok" if exit_code == 0 else "error", "script": script_key, @@ -1842,7 +1844,7 @@ async def _run_maintenance_script(script_key: str, timeout_seconds: int = 300) - "output": truncated_output, "truncated": was_truncated, } - + except asyncio.TimeoutError: duration_ms = (time.perf_counter() - start) * 1000 return { @@ -1863,17 +1865,23 @@ async def _run_maintenance_script(script_key: str, timeout_seconds: int = 300) - @mcp.tool("system_update") # type: ignore async def system_update() -> str: - """Run full system update: packages (pacman + AUR), VS Code extensions, Antigravity, cleanup. - - This is fully automatic with no prompts. Runs ~/.config/scripts/update-system.sh. - - Typical runtime: 1-5 minutes depending on updates available. - + """Install and update packages, extensions, and apps. + + Includes: + - System packages (pacman + AUR via yay) + - VS Code Insiders extensions + - Tarball apps (Antigravity, etc. from ~/Downloads) + - Package cache cleanup + orphan removal + + Does NOT back up configs. For backups, use system_backup. + Fully automatic with no prompts. Runs ~/.config/scripts/update-system.sh. + Typical runtime: 1-5 minutes. + Returns: JSON with status, exit_code, and output summary. """ result = await _run_maintenance_script("update_system", timeout_seconds=600) - + # Trigger a software snapshot after successful update if result.get("status") == "ok": try: @@ -1882,46 +1890,26 @@ async def system_update() -> str: result["profile_updated"] = True except Exception: pass # Non-critical, don't fail the update - + return json.dumps(result) -@mcp.tool("system_cleanup") # type: ignore -async def system_cleanup() -> str: - """Clean up system: package cache, orphans, user cache, journal logs, trash. - - This is fully automatic with no prompts. Runs ~/.config/scripts/cleanup-system.sh. - - Typical runtime: 10-60 seconds. - - Returns: - JSON with status, exit_code, and space freed. - """ - result = await _run_maintenance_script("cleanup_system", timeout_seconds=120) - return json.dumps(result) +@mcp.tool("system_backup") # type: ignore +async def system_backup() -> str: + """Back up everything: Timeshift snapshot + dotfiles git sync. + Includes: + - Timeshift snapshot (system-level, excludes /home) + - Dotfiles sync, commit, and push to git remote + + Run this BEFORE making major system changes or after config tweaks. + Fully automatic with no prompts. Runs ~/.config/scripts/backup-system.sh. + Typical runtime: 1-3 minutes. -@mcp.tool("update_antigravity") # type: ignore -async def update_antigravity() -> str: - """Install Antigravity update from downloaded tarball. - - Checks ~/Downloads/Antigravity.tar.gz and installs if present. - Fully automatic - no prompts. Deletes tarball after successful install. - - If no tarball is present, returns success with a message indicating no update available. - Returns: - JSON with status and installation details. + JSON with status, exit_code, and backup details. """ - result = await _run_maintenance_script("update_antigravity", timeout_seconds=60) - - # Check if it was a "no tarball" case (script exits 0 but says "skipping") - output = result.get("output", "") - if "skipping" in output.lower() or "no antigravity tarball" in output.lower(): - result["message"] = "No Antigravity update tarball found in ~/Downloads" - elif result.get("status") == "ok": - result["message"] = "Antigravity updated successfully" - + result = await _run_maintenance_script("backup_system", timeout_seconds=300) return json.dumps(result) @@ -1950,12 +1938,42 @@ def _shutdown_sessions() -> None: atexit.register(_shutdown_sessions) -def run() -> None: # pragma: no cover - integration entrypoint - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Shell Control MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ @@ -1969,7 +1987,7 @@ def run() -> None: # pragma: no cover - integration entrypoint "host_update_profile", "host_detect_system", "system_update", - "system_cleanup", - "update_antigravity", + "system_backup", "run", ] + diff --git a/src/backend/mcp_servers/spotify_server.py b/src/backend/mcp_servers/spotify_server.py index 591ada40..3548d929 100644 --- a/src/backend/mcp_servers/spotify_server.py +++ b/src/backend/mcp_servers/spotify_server.py @@ -16,7 +16,10 @@ normalize_track_uri, ) -mcp = FastMCP("spotify") +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9010 + +mcp = FastMCP("spotify", stateless_http=True, json_response=True) def _format_track_info(track: dict[str, Any]) -> str: @@ -1272,13 +1275,42 @@ async def get_saved_tracks( } -def run() -> None: # pragma: no cover - integration entrypoint - """Run the Spotify MCP server.""" - mcp.run() +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the Spotify MCP server with the specified transport.""" + if transport == "streamable-http": + import uvicorn + app = mcp.streamable_http_app() + uvicorn.run(app, host=host, port=port) + else: + mcp.run() if __name__ == "__main__": # pragma: no cover - CLI helper - run() + import argparse + parser = argparse.ArgumentParser(description="Spotify MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) __all__ = [ diff --git a/src/backend/run_mcp_servers.py b/src/backend/run_mcp_servers.py new file mode 100644 index 00000000..2cd95d58 --- /dev/null +++ b/src/backend/run_mcp_servers.py @@ -0,0 +1,253 @@ +#!/usr/bin/env python +"""Launch all enabled MCP servers in HTTP transport mode. + +This script reads the mcp_servers.json configuration and starts each +enabled server as an HTTP endpoint on its configured port. + +Usage: + python run_mcp_servers.py [--config PATH] +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import logging +import signal +import sys +from pathlib import Path +from typing import Any + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", +) +logger = logging.getLogger(__name__) + +# Default port assignments for HTTP transport +DEFAULT_PORTS = { + "shell-control": 9001, + "housekeeping": 9002, + "local-calculator": 9003, + "custom-calendar": 9004, + "custom-gmail": 9005, + "custom-gdrive": 9006, + "custom-pdf": 9007, + "monarch-money": 9008, + "notes": 9009, + "spotify": 9010, +} + +# Map server IDs to their run functions +SERVER_MODULES = { + "shell-control": "backend.mcp_servers.shell_control_server", + "housekeeping": "backend.mcp_servers.housekeeping_server", + "local-calculator": "backend.mcp_servers.calculator_server", + "custom-calendar": "backend.mcp_servers.calendar_server", + "custom-gmail": "backend.mcp_servers.gmail_server", + "custom-gdrive": "backend.mcp_servers.gdrive_server", + "custom-pdf": "backend.mcp_servers.pdf_server", + "monarch-money": "backend.mcp_servers.monarch_server", + "notes": "backend.mcp_servers.notes_server", + "spotify": "backend.mcp_servers.spotify_server", +} + + +def get_default_config_path() -> Path: + """Get the default path to mcp_servers.json.""" + # Script is in src/backend/, config is in data/ + script_dir = Path(__file__).resolve().parent + # Navigate from src/backend to project root, then to data/ + return script_dir.parents[1] / "data" / "mcp_servers.json" + + +def load_config(config_path: Path) -> dict[str, Any]: + """Load the MCP servers configuration from JSON file.""" + if not config_path.exists(): + logger.error("Configuration file not found: %s", config_path) + sys.exit(1) + + with open(config_path) as f: + return json.load(f) + + +async def start_server( + server_id: str, + module_path: str, + port: int, + host: str = "127.0.0.1", + env: dict[str, str] | None = None, +) -> asyncio.subprocess.Process | None: + """Start a single MCP server as a subprocess. + + Args: + server_id: Unique identifier for the server + module_path: Python module path (e.g., backend.mcp_servers.shell_control_server) + port: HTTP port to bind to + host: Host address to bind to + env: Environment variables for the server + + Returns: + The subprocess.Process object, or None if failed to start + """ + import os + + # Build environment + server_env = os.environ.copy() + if env: + server_env.update(env) + + cmd = [ + sys.executable, + "-m", + module_path, + "--transport", + "streamable-http", + "--host", + host, + "--port", + str(port), + ] + + logger.info("Starting %s on http://%s:%d", server_id, host, port) + + try: + process = await asyncio.create_subprocess_exec( + *cmd, + env=server_env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + logger.info("Started %s (PID: %d)", server_id, process.pid) + return process + except Exception as e: + logger.error("Failed to start %s: %s", server_id, e) + return None + + +async def monitor_process(server_id: str, process: asyncio.subprocess.Process) -> None: + """Monitor a server process and log its output.""" + if process.stdout: + async for line in process.stdout: + logger.info("[%s] %s", server_id, line.decode().strip()) + + +async def run_servers(config_path: Path, host: str = "127.0.0.1") -> None: + """Start all enabled MCP servers and monitor them.""" + config = load_config(config_path) + servers = config.get("servers", []) + + if not servers: + logger.warning("No servers configured in %s", config_path) + return + + # Filter enabled servers + enabled_servers = [s for s in servers if s.get("enabled", False)] + + if not enabled_servers: + logger.warning("No servers are enabled in configuration") + return + + logger.info("Starting %d enabled MCP servers...", len(enabled_servers)) + + processes: dict[str, asyncio.subprocess.Process] = {} + tasks: list[asyncio.Task] = [] + + shutdown_event = asyncio.Event() + + def handle_signal(): + logger.info("Received shutdown signal, stopping servers...") + shutdown_event.set() + + # Register signal handlers + loop = asyncio.get_running_loop() + for sig in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(sig, handle_signal) + + try: + for server in enabled_servers: + server_id = server.get("id") + if not server_id: + logger.warning("Server entry missing 'id', skipping") + continue + + # Get port from config or use default + port = server.get("http_port") or DEFAULT_PORTS.get(server_id) + if not port: + logger.warning("No port configured for %s, skipping", server_id) + continue + + # Get module path from config or use default mapping + module_path = server.get("module") or SERVER_MODULES.get(server_id) + if not module_path: + logger.warning("No module path for %s, skipping", server_id) + continue + + # Get environment variables + env = server.get("env", {}) + + # Start the server + process = await start_server( + server_id, module_path, port, host, env or None + ) + if process: + processes[server_id] = process + # Create monitoring task + task = asyncio.create_task(monitor_process(server_id, process)) + tasks.append(task) + + if not processes: + logger.error("No servers were started successfully") + return + + logger.info("All %d servers started successfully", len(processes)) + logger.info("Press Ctrl+C to stop all servers") + + # Wait for shutdown signal + await shutdown_event.wait() + + finally: + # Cleanup: terminate all processes + logger.info("Shutting down servers...") + for server_id, process in processes.items(): + if process.returncode is None: + logger.info("Stopping %s (PID: %d)", server_id, process.pid) + process.terminate() + try: + await asyncio.wait_for(process.wait(), timeout=5.0) + except asyncio.TimeoutError: + logger.warning("Force killing %s", server_id) + process.kill() + + # Cancel monitoring tasks + for task in tasks: + task.cancel() + + logger.info("All servers stopped") + + +def main() -> None: + """Main entry point for the MCP server runner.""" + parser = argparse.ArgumentParser( + description="Launch all enabled MCP servers in HTTP mode" + ) + parser.add_argument( + "--config", + type=Path, + default=get_default_config_path(), + help="Path to mcp_servers.json configuration file", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host address to bind servers to (default: 127.0.0.1)", + ) + + args = parser.parse_args() + + asyncio.run(run_servers(args.config, args.host)) + + +if __name__ == "__main__": + main() diff --git a/start.sh b/start.sh index 84770dcf..3b20859e 100755 --- a/start.sh +++ b/start.sh @@ -57,6 +57,7 @@ else echo -e " ${CYAN}2${NC} - Frontend (Svelte chat UI on :5173)" echo -e " ${CYAN}3${NC} - Frontend-Kiosk (Kiosk UI on :5174)" echo -e " ${CYAN}4${NC} - Frontend-CLI (Terminal chat client)" + echo -e " ${CYAN}5${NC} - MCP HTTP (MCP servers on :9001-9010)" echo "" echo -e " ${CYAN}all${NC} - Start 1, 2, and 3 (web stack)" echo "" @@ -66,7 +67,7 @@ fi # Handle 'all' shortcut if [[ "$selection" == "all" ]]; then - selection="123" + selection="1235" fi # Validate input @@ -75,8 +76,8 @@ if [[ -z "$selection" ]]; then exit 1 fi -if [[ ! "$selection" =~ ^[1-4]+$ ]]; then - echo -e "${RED}Invalid selection. Use only numbers 1-4 or 'all'.${NC}" +if [[ ! "$selection" =~ ^[1-5]+$ ]]; then + echo -e "${RED}Invalid selection. Use only numbers 1-5 or 'all'.${NC}" exit 1 fi @@ -87,16 +88,26 @@ START_BACKEND=false START_FRONTEND=false START_KIOSK=false START_CLI=false +START_MCP_HTTP=false # Parse selection [[ "$selection" == *"1"* ]] && START_BACKEND=true [[ "$selection" == *"2"* ]] && START_FRONTEND=true [[ "$selection" == *"3"* ]] && START_KIOSK=true [[ "$selection" == *"4"* ]] && START_CLI=true +[[ "$selection" == *"5"* ]] && START_MCP_HTTP=true + +# Start MCP HTTP servers (before backend if both selected) +if $START_MCP_HTTP; then + echo -e "${GREEN}[0/5] Starting MCP HTTP Servers...${NC}" + uv run python -m backend.run_mcp_servers & + PIDS+=($!) + sleep 3 # Give MCP servers time to start +fi # Start Backend if $START_BACKEND; then - echo -e "${GREEN}[1/4] Starting Backend...${NC}" + echo -e "${GREEN}[1/5] Starting Backend...${NC}" uv run python scripts/kill_port.py 8000 uv run uvicorn backend.app:create_app \ --factory \ @@ -108,7 +119,7 @@ fi # Start Svelte Frontend if $START_FRONTEND; then - echo -e "${GREEN}[2/4] Starting Frontend (Svelte)...${NC}" + echo -e "${GREEN}[2/5] Starting Frontend (Svelte)...${NC}" uv run python scripts/kill_port.py 5173 (cd "$SCRIPT_DIR/frontend" && npm run dev) & PIDS+=($!) @@ -116,7 +127,7 @@ fi # Start Kiosk Frontend if $START_KIOSK; then - echo -e "${GREEN}[3/4] Starting Frontend-Kiosk...${NC}" + echo -e "${GREEN}[3/5] Starting Frontend-Kiosk...${NC}" uv run python scripts/kill_port.py 5174 (cd "$SCRIPT_DIR/frontend-kiosk" && npm run dev) & PIDS+=($!) @@ -125,9 +136,9 @@ fi # Handle CLI if $START_CLI; then # Check if other services are running - if $START_BACKEND || $START_FRONTEND || $START_KIOSK; then + if $START_BACKEND || $START_FRONTEND || $START_KIOSK || $START_MCP_HTTP; then # Other services are running in background, wait a moment then start CLI in foreground - echo -e "${GREEN}[4/4] Starting Frontend-CLI...${NC}" + echo -e "${GREEN}[4/5] Starting Frontend-CLI...${NC}" echo "" sleep 1 source .venv/bin/activate && shell-chat diff --git a/uv.lock b/uv.lock index da64d69e..bf96d586 100644 --- a/uv.lock +++ b/uv.lock @@ -194,7 +194,7 @@ requires-dist = [ { name = "gql", specifier = "<3.5.0" }, { name = "httpx", extras = ["http2"], specifier = ">=0.27.2" }, { name = "kreuzberg", extras = ["chunking", "entity-extraction", "gmft", "easyocr", "langdetect"], specifier = ">=3.20.2" }, - { name = "mcp", specifier = ">=1.17.0" }, + { name = "mcp", specifier = ">=1.25.0" }, { name = "monarchmoney", specifier = ">=0.1.12" }, { name = "openai", specifier = ">=2.14.0" }, { name = "psutil", specifier = ">=7.1.0" }, @@ -272,6 +272,51 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, ] +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + [[package]] name = "chardetng-py" version = "0.3.5" @@ -445,6 +490,62 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, ] +[[package]] +name = "cryptography" +version = "46.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" }, + { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" }, + { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" }, + { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" }, + { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" }, + { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" }, + { url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" }, + { url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" }, + { url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" }, + { url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" }, + { url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" }, + { url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" }, + { url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" }, + { url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" }, + { url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" }, + { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" }, + { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" }, + { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" }, + { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" }, + { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" }, + { url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" }, +] + [[package]] name = "cycler" version = "0.12.1" @@ -1607,7 +1708,7 @@ wheels = [ [[package]] name = "mcp" -version = "1.17.0" +version = "1.25.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1616,15 +1717,18 @@ dependencies = [ { name = "jsonschema" }, { name = "pydantic" }, { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, { name = "python-multipart" }, { name = "pywin32", marker = "sys_platform == 'win32'" }, { name = "sse-starlette" }, { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5a/79/5724a540df19e192e8606c543cdcf162de8eb435077520cca150f7365ec0/mcp-1.17.0.tar.gz", hash = "sha256:1b57fabf3203240ccc48e39859faf3ae1ccb0b571ff798bbedae800c73c6df90", size = 477951, upload-time = "2025-10-10T12:16:44.519Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/2d/649d80a0ecf6a1f82632ca44bec21c0461a9d9fc8934d38cb5b319f2db5e/mcp-1.25.0.tar.gz", hash = "sha256:56310361ebf0364e2d438e5b45f7668cbb124e158bb358333cd06e49e83a6802", size = 605387, upload-time = "2025-12-19T10:19:56.985Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/72/3751feae343a5ad07959df713907b5c3fbaed269d697a14b0c449080cf2e/mcp-1.17.0-py3-none-any.whl", hash = "sha256:0660ef275cada7a545af154db3082f176cf1d2681d5e35ae63e014faf0a35d40", size = 167737, upload-time = "2025-10-10T12:16:42.863Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fc/6dc7659c2ae5ddf280477011f4213a74f806862856b796ef08f028e664bf/mcp-1.25.0-py3-none-any.whl", hash = "sha256:b37c38144a666add0862614cc79ec276e97d72aa8ca26d622818d4e278b9721a", size = 233076, upload-time = "2025-12-19T10:19:55.416Z" }, ] [[package]] @@ -2413,6 +2517,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d5/19/9ff4551b42f2068686c50c0d199072fa67aee57fc5cf86770cacf71efda3/pyclipper-1.3.0.post6-cp313-cp313-win_amd64.whl", hash = "sha256:e5ff68fa770ac654c7974fc78792978796f068bd274e95930c0691c31e192889", size = 109672, upload-time = "2024-10-18T12:22:30.411Z" }, ] +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + [[package]] name = "pydantic" version = "2.11.9" @@ -2484,6 +2597,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + [[package]] name = "pyparsing" version = "3.2.5" From db0ad39ef7b9b39ab4c5c1381cb3aee148d770dd Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 21 Dec 2025 23:59:41 -0500 Subject: [PATCH 50/78] refactor: delete `run_mcp_servers.py` and update `mcp_servers.json` to remove `http_port` and `disabled_tools` fields. --- data/mcp_servers.json | 92 +++++------- src/backend/run_mcp_servers.py | 253 --------------------------------- 2 files changed, 35 insertions(+), 310 deletions(-) delete mode 100644 src/backend/run_mcp_servers.py diff --git a/data/mcp_servers.json b/data/mcp_servers.json index a10f4bf5..18c8fcd7 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -3,48 +3,40 @@ { "client_enabled": { "cli": true, - "kiosk": true, + "kiosk": false, "svelte": true }, "contexts": [], - "disabled_tools": [], - "enabled": true, - "env": { - "HOST_PROFILE_ID": "xps13", - "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" - }, - "http_port": 9001, - "id": "shell-control", - "module": "backend.mcp_servers.shell_control_server", + "enabled": false, + "env": {}, + "id": "local-calculator", + "module": "backend.mcp_servers.calculator_server", "tool_overrides": {} }, { "client_enabled": { - "cli": false, - "kiosk": true, - "svelte": false + "cli": true, + "kiosk": false, + "svelte": true }, "contexts": [], - "disabled_tools": [], - "enabled": false, + "enabled": true, "env": {}, - "http_port": 9009, - "id": "notes", - "module": "backend.mcp_servers.notes_server", + "id": "housekeeping", + "module": "backend.mcp_servers.housekeeping_server", "tool_overrides": {} }, { "client_enabled": { "cli": true, - "kiosk": true, - "svelte": false + "kiosk": false, + "svelte": true }, "contexts": [], "enabled": false, "env": {}, - "http_port": 9008, - "id": "monarch-money", - "module": "backend.mcp_servers.monarch_server", + "id": "custom-calendar", + "module": "backend.mcp_servers.calendar_server", "tool_overrides": {} }, { @@ -54,25 +46,21 @@ "svelte": true }, "contexts": [], - "disabled_tools": [], "enabled": false, "env": {}, - "http_port": 9005, "id": "custom-gmail", "module": "backend.mcp_servers.gmail_server", "tool_overrides": {} }, { "client_enabled": { - "cli": false, - "kiosk": true, - "svelte": false + "cli": true, + "kiosk": false, + "svelte": true }, "contexts": [], - "disabled_tools": [], "enabled": false, "env": {}, - "http_port": 9006, "id": "custom-gdrive", "module": "backend.mcp_servers.gdrive_server", "tool_overrides": {} @@ -84,10 +72,8 @@ "svelte": true }, "contexts": [], - "disabled_tools": [], "enabled": false, "env": {}, - "http_port": 9007, "id": "custom-pdf", "module": "backend.mcp_servers.pdf_server", "tool_overrides": {} @@ -99,12 +85,10 @@ "svelte": true }, "contexts": [], - "disabled_tools": [], "enabled": false, "env": {}, - "http_port": 9004, - "id": "custom-calendar", - "module": "backend.mcp_servers.calendar_server", + "id": "monarch-money", + "module": "backend.mcp_servers.monarch_server", "tool_overrides": {} }, { @@ -114,45 +98,39 @@ "svelte": true }, "contexts": [], - "disabled_tools": [], "enabled": false, "env": {}, - "http_port": 9010, - "id": "spotify", - "module": "backend.mcp_servers.spotify_server", + "id": "notes", + "module": "backend.mcp_servers.notes_server", "tool_overrides": {} }, { "client_enabled": { - "cli": false, + "cli": true, "kiosk": true, - "svelte": false + "svelte": true }, "contexts": [], - "disabled_tools": [], - "enabled": false, - "env": {}, - "http_port": 9003, - "id": "local-calculator", - "module": "backend.mcp_servers.calculator_server", + "enabled": true, + "env": { + "HOST_PROFILE_ID": "xps13", + "HOST_ROOT_PATH": "/home/jack/gdrive/host_profiles" + }, + "id": "shell-control", + "module": "backend.mcp_servers.shell_control_server", "tool_overrides": {} }, { "client_enabled": { "cli": true, - "kiosk": true, + "kiosk": false, "svelte": true }, "contexts": [], - "disabled_tools": [ - "chat_history", - "test_echo" - ], - "enabled": true, + "enabled": false, "env": {}, - "http_port": 9002, - "id": "housekeeping", - "module": "backend.mcp_servers.housekeeping_server", + "id": "spotify", + "module": "backend.mcp_servers.spotify_server", "tool_overrides": {} } ] diff --git a/src/backend/run_mcp_servers.py b/src/backend/run_mcp_servers.py deleted file mode 100644 index 2cd95d58..00000000 --- a/src/backend/run_mcp_servers.py +++ /dev/null @@ -1,253 +0,0 @@ -#!/usr/bin/env python -"""Launch all enabled MCP servers in HTTP transport mode. - -This script reads the mcp_servers.json configuration and starts each -enabled server as an HTTP endpoint on its configured port. - -Usage: - python run_mcp_servers.py [--config PATH] -""" - -from __future__ import annotations - -import argparse -import asyncio -import json -import logging -import signal -import sys -from pathlib import Path -from typing import Any - -logging.basicConfig( - level=logging.INFO, - format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", -) -logger = logging.getLogger(__name__) - -# Default port assignments for HTTP transport -DEFAULT_PORTS = { - "shell-control": 9001, - "housekeeping": 9002, - "local-calculator": 9003, - "custom-calendar": 9004, - "custom-gmail": 9005, - "custom-gdrive": 9006, - "custom-pdf": 9007, - "monarch-money": 9008, - "notes": 9009, - "spotify": 9010, -} - -# Map server IDs to their run functions -SERVER_MODULES = { - "shell-control": "backend.mcp_servers.shell_control_server", - "housekeeping": "backend.mcp_servers.housekeeping_server", - "local-calculator": "backend.mcp_servers.calculator_server", - "custom-calendar": "backend.mcp_servers.calendar_server", - "custom-gmail": "backend.mcp_servers.gmail_server", - "custom-gdrive": "backend.mcp_servers.gdrive_server", - "custom-pdf": "backend.mcp_servers.pdf_server", - "monarch-money": "backend.mcp_servers.monarch_server", - "notes": "backend.mcp_servers.notes_server", - "spotify": "backend.mcp_servers.spotify_server", -} - - -def get_default_config_path() -> Path: - """Get the default path to mcp_servers.json.""" - # Script is in src/backend/, config is in data/ - script_dir = Path(__file__).resolve().parent - # Navigate from src/backend to project root, then to data/ - return script_dir.parents[1] / "data" / "mcp_servers.json" - - -def load_config(config_path: Path) -> dict[str, Any]: - """Load the MCP servers configuration from JSON file.""" - if not config_path.exists(): - logger.error("Configuration file not found: %s", config_path) - sys.exit(1) - - with open(config_path) as f: - return json.load(f) - - -async def start_server( - server_id: str, - module_path: str, - port: int, - host: str = "127.0.0.1", - env: dict[str, str] | None = None, -) -> asyncio.subprocess.Process | None: - """Start a single MCP server as a subprocess. - - Args: - server_id: Unique identifier for the server - module_path: Python module path (e.g., backend.mcp_servers.shell_control_server) - port: HTTP port to bind to - host: Host address to bind to - env: Environment variables for the server - - Returns: - The subprocess.Process object, or None if failed to start - """ - import os - - # Build environment - server_env = os.environ.copy() - if env: - server_env.update(env) - - cmd = [ - sys.executable, - "-m", - module_path, - "--transport", - "streamable-http", - "--host", - host, - "--port", - str(port), - ] - - logger.info("Starting %s on http://%s:%d", server_id, host, port) - - try: - process = await asyncio.create_subprocess_exec( - *cmd, - env=server_env, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - ) - logger.info("Started %s (PID: %d)", server_id, process.pid) - return process - except Exception as e: - logger.error("Failed to start %s: %s", server_id, e) - return None - - -async def monitor_process(server_id: str, process: asyncio.subprocess.Process) -> None: - """Monitor a server process and log its output.""" - if process.stdout: - async for line in process.stdout: - logger.info("[%s] %s", server_id, line.decode().strip()) - - -async def run_servers(config_path: Path, host: str = "127.0.0.1") -> None: - """Start all enabled MCP servers and monitor them.""" - config = load_config(config_path) - servers = config.get("servers", []) - - if not servers: - logger.warning("No servers configured in %s", config_path) - return - - # Filter enabled servers - enabled_servers = [s for s in servers if s.get("enabled", False)] - - if not enabled_servers: - logger.warning("No servers are enabled in configuration") - return - - logger.info("Starting %d enabled MCP servers...", len(enabled_servers)) - - processes: dict[str, asyncio.subprocess.Process] = {} - tasks: list[asyncio.Task] = [] - - shutdown_event = asyncio.Event() - - def handle_signal(): - logger.info("Received shutdown signal, stopping servers...") - shutdown_event.set() - - # Register signal handlers - loop = asyncio.get_running_loop() - for sig in (signal.SIGINT, signal.SIGTERM): - loop.add_signal_handler(sig, handle_signal) - - try: - for server in enabled_servers: - server_id = server.get("id") - if not server_id: - logger.warning("Server entry missing 'id', skipping") - continue - - # Get port from config or use default - port = server.get("http_port") or DEFAULT_PORTS.get(server_id) - if not port: - logger.warning("No port configured for %s, skipping", server_id) - continue - - # Get module path from config or use default mapping - module_path = server.get("module") or SERVER_MODULES.get(server_id) - if not module_path: - logger.warning("No module path for %s, skipping", server_id) - continue - - # Get environment variables - env = server.get("env", {}) - - # Start the server - process = await start_server( - server_id, module_path, port, host, env or None - ) - if process: - processes[server_id] = process - # Create monitoring task - task = asyncio.create_task(monitor_process(server_id, process)) - tasks.append(task) - - if not processes: - logger.error("No servers were started successfully") - return - - logger.info("All %d servers started successfully", len(processes)) - logger.info("Press Ctrl+C to stop all servers") - - # Wait for shutdown signal - await shutdown_event.wait() - - finally: - # Cleanup: terminate all processes - logger.info("Shutting down servers...") - for server_id, process in processes.items(): - if process.returncode is None: - logger.info("Stopping %s (PID: %d)", server_id, process.pid) - process.terminate() - try: - await asyncio.wait_for(process.wait(), timeout=5.0) - except asyncio.TimeoutError: - logger.warning("Force killing %s", server_id) - process.kill() - - # Cancel monitoring tasks - for task in tasks: - task.cancel() - - logger.info("All servers stopped") - - -def main() -> None: - """Main entry point for the MCP server runner.""" - parser = argparse.ArgumentParser( - description="Launch all enabled MCP servers in HTTP mode" - ) - parser.add_argument( - "--config", - type=Path, - default=get_default_config_path(), - help="Path to mcp_servers.json configuration file", - ) - parser.add_argument( - "--host", - default="127.0.0.1", - help="Host address to bind servers to (default: 127.0.0.1)", - ) - - args = parser.parse_args() - - asyncio.run(run_servers(args.config, args.host)) - - -if __name__ == "__main__": - main() From bd3d89761679e6e498d28e297709898b20a3b323 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 22 Dec 2025 01:55:46 -0500 Subject: [PATCH 51/78] Refactor code structure for improved readability and maintainability --- README.md | 1 + code_that_lives_on _raspi/raspi-smarthome | 1 - data/mcp_servers.json | 20 +- docs/HTTP_MCP_SERVERS.md | 35 +- docs/SCHEMA_GENERATION_EXPLAINED.md | 2 +- frontend/src/lib/api/types.ts | 6 + pyproject.toml | 1 + src/backend/chat/mcp_client.py | 294 ++++++++-- src/backend/chat/mcp_registry.py | 49 +- src/backend/mcp_servers/__init__.py | 51 +- src/backend/mcp_servers/calculator_server.py | 18 +- src/backend/mcp_servers/calendar_server.py | 18 +- src/backend/mcp_servers/gdrive_server.py | 17 +- src/backend/mcp_servers/gmail_server.py | 17 +- .../mcp_servers/housekeeping_server.py | 17 +- src/backend/mcp_servers/monarch_server.py | 17 +- src/backend/mcp_servers/notes_server.py | 17 +- src/backend/mcp_servers/pdf_server.py | 61 ++- .../mcp_servers/shell_control_server.py | 18 +- src/backend/mcp_servers/spotify_server.py | 17 +- src/backend/routers/mcp_servers.py | 2 + src/backend/schemas/mcp_servers.py | 6 + start.sh | 57 +- tests/test_mcp_client.py | 88 ++- tests/test_mcp_registry.py | 60 +- tests/test_mcp_server_settings.py | 17 +- uv.lock | 516 ++++++++++++++++++ 27 files changed, 1157 insertions(+), 266 deletions(-) delete mode 160000 code_that_lives_on _raspi/raspi-smarthome diff --git a/README.md b/README.md index 9c9d3599..049b1e80 100644 --- a/README.md +++ b/README.md @@ -238,6 +238,7 @@ MCP servers are configured in `data/mcp_servers.json` and hot-reloaded via API. - **PDF tools** — extract text and metadata - **Monarch Money** — personal finance data and transactions - **Calculator & utilities** — housekeeping helpers +- Local servers run over streamable HTTP using `http_port`; remote servers use `http_url`. - The canonical list of bundled servers lives in `src/backend/mcp_servers/__init__.py` (`BUILTIN_MCP_SERVER_DEFINITIONS`). The FastAPI factory consumes that list to generate default entries with the same enable/disable defaults, so updating the diff --git a/code_that_lives_on _raspi/raspi-smarthome b/code_that_lives_on _raspi/raspi-smarthome deleted file mode 160000 index 020ab416..00000000 --- a/code_that_lives_on _raspi/raspi-smarthome +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 020ab4168b22e7e8e472f4fc8545966348e34568 diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 18c8fcd7..fd3e3b1f 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -7,8 +7,9 @@ "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, + "http_port": 9003, "id": "local-calculator", "module": "backend.mcp_servers.calculator_server", "tool_overrides": {} @@ -20,8 +21,9 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, + "http_port": 9002, "id": "housekeeping", "module": "backend.mcp_servers.housekeeping_server", "tool_overrides": {} @@ -33,8 +35,9 @@ "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, + "http_port": 9004, "id": "custom-calendar", "module": "backend.mcp_servers.calendar_server", "tool_overrides": {} @@ -48,6 +51,7 @@ "contexts": [], "enabled": false, "env": {}, + "http_port": 9005, "id": "custom-gmail", "module": "backend.mcp_servers.gmail_server", "tool_overrides": {} @@ -61,6 +65,7 @@ "contexts": [], "enabled": false, "env": {}, + "http_port": 9006, "id": "custom-gdrive", "module": "backend.mcp_servers.gdrive_server", "tool_overrides": {} @@ -74,6 +79,7 @@ "contexts": [], "enabled": false, "env": {}, + "http_port": 9007, "id": "custom-pdf", "module": "backend.mcp_servers.pdf_server", "tool_overrides": {} @@ -87,6 +93,7 @@ "contexts": [], "enabled": false, "env": {}, + "http_port": 9008, "id": "monarch-money", "module": "backend.mcp_servers.monarch_server", "tool_overrides": {} @@ -98,8 +105,9 @@ "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, + "http_port": 9009, "id": "notes", "module": "backend.mcp_servers.notes_server", "tool_overrides": {} @@ -116,6 +124,7 @@ "HOST_PROFILE_ID": "xps13", "HOST_ROOT_PATH": "/home/jack/gdrive/host_profiles" }, + "http_port": 9001, "id": "shell-control", "module": "backend.mcp_servers.shell_control_server", "tool_overrides": {} @@ -127,8 +136,9 @@ "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, + "http_port": 9010, "id": "spotify", "module": "backend.mcp_servers.spotify_server", "tool_overrides": {} diff --git a/docs/HTTP_MCP_SERVERS.md b/docs/HTTP_MCP_SERVERS.md index db6cae6b..51db3e9d 100644 --- a/docs/HTTP_MCP_SERVERS.md +++ b/docs/HTTP_MCP_SERVERS.md @@ -1,14 +1,13 @@ # HTTP MCP Servers Configuration Guide -This document explains how to configure and use HTTP/SSE-based MCP servers in addition to the standard Python module-based servers. +This document explains how to configure and use HTTP/SSE-based MCP servers, including local module launches and remote endpoints. ## Overview -The MCP client supports three transport methods: +The backend now uses **streamable HTTP** for all MCP servers. You can either: -1. **Python Module** - Launch MCP server as a Python module (default) -2. **Custom Command** - Launch MCP server with arbitrary command -3. **HTTP/SSE** - Connect to remote HTTP MCP server via Server-Sent Events +1. **Local module/command servers** - Launched by the backend with an assigned `http_port` +2. **Remote HTTP/SSE servers** - Connected via `http_url` HTTP transport is ideal for: - Remote MCP servers running on different machines @@ -19,9 +18,29 @@ HTTP transport is ideal for: ## Configuration -### Basic HTTP Server Configuration +### Local Module Server (HTTP) -Add an HTTP server to your `data/mcp_servers.json`: +Launch a bundled Python module over HTTP by supplying `http_port`: + +```json +{ + "servers": [ + { + "id": "housekeeping", + "module": "backend.mcp_servers.housekeeping_server", + "http_port": 9002, + "enabled": true + } + ] +} +``` + +The backend starts the module with: +`python -m --transport streamable-http --host 127.0.0.1 --port ` + +### Basic HTTP Server Configuration (Remote) + +Add a remote HTTP server to your `data/mcp_servers.json`: ```json { @@ -113,7 +132,7 @@ If a connection takes longer than 30 seconds, it will fail with a timeout error. ### Reconnection Logic -HTTP servers support automatic reconnection (unlike subprocess-based servers): +HTTP servers support automatic reconnection: - **Max Attempts**: 3 reconnection attempts - **Delay**: 2 seconds between attempts diff --git a/docs/SCHEMA_GENERATION_EXPLAINED.md b/docs/SCHEMA_GENERATION_EXPLAINED.md index ee1e9ee2..4299b6cb 100644 --- a/docs/SCHEMA_GENERATION_EXPLAINED.md +++ b/docs/SCHEMA_GENERATION_EXPLAINED.md @@ -6,7 +6,7 @@ ```python # In src/backend/mcp_servers/calendar_server.py -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP DEFAULT_USER_EMAIL = "jck411@gmail.com" mcp: FastMCP = FastMCP("custom-calendar") diff --git a/frontend/src/lib/api/types.ts b/frontend/src/lib/api/types.ts index e74de327..f5e4b000 100644 --- a/frontend/src/lib/api/types.ts +++ b/frontend/src/lib/api/types.ts @@ -338,6 +338,8 @@ export interface McpServerStatus { connected: boolean; module?: string | null; command?: string[] | null; + http_url?: string | null; + http_port?: number | null; cwd?: string | null; env?: Record; tool_prefix?: string | null; @@ -357,6 +359,8 @@ export interface McpServerDefinition { enabled?: boolean; module?: string | null; command?: string[] | null; + http_url?: string | null; + http_port?: number | null; cwd?: string | null; env?: Record; tool_prefix?: string | null; @@ -372,6 +376,8 @@ export interface McpServerUpdatePayload { disabled_tools?: string[]; module?: string | null; command?: string[] | null; + http_url?: string | null; + http_port?: number | null; cwd?: string | null; env?: Record | null; tool_prefix?: string | null; diff --git a/pyproject.toml b/pyproject.toml index ee1254a3..f2d58202 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,6 +10,7 @@ readme = "README.md" requires-python = ">=3.13" dependencies = [ "fastapi[standard]>=0.115.0", + "fastmcp>=2.14.1", "httpx[http2]>=0.27.2", "aiosqlite>=0.20.0", "mcp>=1.25.0", diff --git a/src/backend/chat/mcp_client.py b/src/backend/chat/mcp_client.py index a0fdb6f3..3482a2b9 100644 --- a/src/backend/chat/mcp_client.py +++ b/src/backend/chat/mcp_client.py @@ -6,13 +6,13 @@ import json import logging import sys -from contextlib import AsyncExitStack +from contextlib import AsyncExitStack, suppress +from collections import deque from pathlib import Path -from typing import Any, AsyncContextManager, Sequence, cast +from typing import Any, Sequence import httpx from mcp.client.session import ClientSession -from mcp.client.stdio import StdioServerParameters, stdio_client from mcp.types import CallToolResult, ListToolsResult, Tool logger = logging.getLogger(__name__) @@ -23,6 +23,10 @@ HTTP_MAX_RECONNECT_ATTEMPTS = 3 # Delay between reconnection attempts (seconds) HTTP_RECONNECT_DELAY = 2.0 +# Number of log lines to retain from spawned MCP servers +PROCESS_LOG_MAX_LINES = 200 +# Poll interval while waiting for local MCP server ports to open +PORT_READY_POLL_DELAY = 0.2 class MCPToolClient: @@ -34,37 +38,38 @@ def __init__( *, command: Sequence[str] | None = None, http_url: str | None = None, + http_port: int | None = None, server_id: str | None = None, cwd: Path | None = None, env: dict[str, str] | None = None, ): - launch_methods = [ - server_module is not None, - command is not None, - http_url is not None, - ] - if sum(launch_methods) != 1: # pragma: no cover - defensive - raise ValueError( - "Provide exactly one of 'server_module', 'command', or 'http_url'" - ) + if http_url is not None and http_port is not None: # pragma: no cover - defensive + raise ValueError("Provide only one of 'http_url' or 'http_port'") launch_command: list[str] | None = None - launch_module: str | None = None - if http_url is not None: - self._http_url = http_url - elif command is not None: + if command is not None: if not command: raise ValueError("Command must contain at least one argument") launch_command = list(command) - self._http_url = None - else: - launch_module = server_module - self._http_url = None - self._server_module = launch_module + if server_module is not None and launch_command is not None: # pragma: no cover + raise ValueError("Provide only one of 'server_module' or 'command'") + + resolved_http_url = http_url + if resolved_http_url is None and http_port is not None: + resolved_http_url = f"http://127.0.0.1:{http_port}/mcp" + + if resolved_http_url is None: + raise ValueError( + "HTTP transport is required; provide 'http_url' or 'http_port'" + ) + + self._http_url = resolved_http_url + self._http_port = http_port + self._server_module = server_module self._launch_command = launch_command self._server_id = server_id or ( - launch_module + server_module or (launch_command[0] if launch_command else self._http_url) or "mcp-server" ) @@ -72,6 +77,7 @@ def __init__( self._env = env self._exit_stack: AsyncExitStack | None = None self._session: ClientSession | None = None + self._process: asyncio.subprocess.Process | None = None self._tools: list[Tool] = [] self._lock = asyncio.Lock() self._reconnect_attempts = 0 @@ -79,6 +85,9 @@ def __init__( self._lifecycle_task: asyncio.Task | None = None self._close_event: asyncio.Event | None = None self._ready_event: asyncio.Event | None = None + self._stdout_task: asyncio.Task | None = None + self._stderr_task: asyncio.Task | None = None + self._process_log: deque[str] = deque(maxlen=PROCESS_LOG_MAX_LINES) @property def server_id(self) -> str: @@ -94,59 +103,198 @@ def http_url(self) -> str | None: """Return the HTTP URL if this is an HTTP server, None otherwise.""" return self._http_url + def _record_process_log(self, label: str, line: str) -> None: + entry = f"[{label}] {line}" + self._process_log.append(entry) + logger.info("MCP server '%s' %s: %s", self._server_id, label, line) + + @staticmethod + def _format_exception_details(exc: BaseException) -> str: + if isinstance(exc, BaseExceptionGroup): + lines = [ + f"({index}) {type(child).__name__}: {child}" + for index, child in enumerate(exc.exceptions, start=1) + ] + return "\n".join(lines) + return f"{type(exc).__name__}: {exc}" + + def _format_process_log(self, max_lines: int = 80) -> str: + if not self._process_log: + return "" + return "\n".join(list(self._process_log)[-max_lines:]) + + def _log_startup_output(self) -> None: + output = self._format_process_log() + if output: + logger.error( + "MCP server '%s' startup output:\n%s", + self._server_id, + output, + ) + + async def _wait_for_port(self, host: str, port: int) -> None: + """Wait for a local TCP port to accept connections.""" + loop = asyncio.get_running_loop() + deadline = loop.time() + HTTP_CONNECTION_TIMEOUT + while True: + if self._process is not None and self._process.returncode is not None: + output = self._format_process_log() + message = ( + f"MCP server process exited with code {self._process.returncode}." + ) + if output: + message += f" Recent output:\n{output}" + raise RuntimeError(message) + + try: + reader, writer = await asyncio.open_connection(host, port) + writer.close() + with suppress(Exception): + await writer.wait_closed() + return + except OSError as exc: + if loop.time() >= deadline: + error_msg = ( + f"Timed out waiting for MCP server port {host}:{port} " + f"after {HTTP_CONNECTION_TIMEOUT}s" + ) + raise TimeoutError(error_msg) from exc + await asyncio.sleep(PORT_READY_POLL_DELAY) + async def _run_lifecycle(self) -> None: """Own the MCP session lifetime in a single task to avoid cross-task closures.""" exit_stack = AsyncExitStack() try: - if self._http_url is not None: - from mcp.client.streamable_http import streamablehttp_client + if self._launch_command is not None or self._server_module is not None: + if self._server_module is not None: + if self._http_port is None: + raise RuntimeError( + "http_port must be set for module-launched MCP servers" + ) + argv = [ + sys.executable, + "-m", + self._server_module, + "--transport", + "streamable-http", + "--host", + "127.0.0.1", + "--port", + str(self._http_port), + ] + log_target = f"module '{self._server_module}'" + else: + argv = list(self._launch_command or []) + log_target = "command %s" % " ".join(argv) logger.info( - "Connecting to HTTP MCP server at %s (id=%s)", - self._http_url, + "Starting MCP HTTP server %s (id=%s)", + log_target, self._server_id, ) - async with asyncio.timeout(HTTP_CONNECTION_TIMEOUT): - http_manager = streamablehttp_client(self._http_url) - (read_stream, write_stream, _) = await exit_stack.enter_async_context( - http_manager - ) - elif self._launch_command is not None: - params = StdioServerParameters( - command=self._launch_command[0], - args=self._launch_command[1:], - cwd=str(self._cwd) if self._cwd is not None else None, - env=self._env, - ) - log_target = "command %s" % " ".join(self._launch_command) logger.info( - "Starting MCP server %s (id=%s)", log_target, self._server_id - ) - stdio_manager = cast(AsyncContextManager[Any], stdio_client(params)) - read_stream, write_stream = await exit_stack.enter_async_context( - stdio_manager + "Launching MCP server '%s' argv=%s cwd=%s", + self._server_id, + argv, + self._cwd or Path.cwd(), ) - else: - if self._server_module is None: # pragma: no cover - defensive - raise RuntimeError( - "Server module must be set when command is not provided" + pythonpath = (self._env or {}).get("PYTHONPATH") + if pythonpath: + logger.info( + "MCP server '%s' PYTHONPATH=%s", + self._server_id, + pythonpath, ) - params = StdioServerParameters( - command=sys.executable, - args=["-m", self._server_module], + env = dict(self._env or {}) + env.setdefault("PYTHONUNBUFFERED", "1") + env.setdefault("FASTMCP_SHOW_CLI_BANNER", "false") + process = await asyncio.create_subprocess_exec( + *argv, cwd=str(self._cwd) if self._cwd is not None else None, - env=self._env, + env=env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, ) - log_target = f"module '{self._server_module}'" + self._process = process logger.info( - "Starting MCP server %s (id=%s)", log_target, self._server_id - ) - stdio_manager = cast(AsyncContextManager[Any], stdio_client(params)) - read_stream, write_stream = await exit_stack.enter_async_context( - stdio_manager + "MCP server '%s' spawned with pid=%s", + self._server_id, + process.pid, ) + async def _drain_stream( + stream: asyncio.StreamReader, label: str + ) -> None: + while True: + line = await stream.readline() + if not line: + break + text = line.decode(errors="replace").rstrip() + if not text: + continue + self._record_process_log(label, text) + + stdout_task = None + stderr_task = None + if process.stdout is not None: + stdout_task = asyncio.create_task( + _drain_stream(process.stdout, "stdout") + ) + self._stdout_task = stdout_task + if process.stderr is not None: + stderr_task = asyncio.create_task( + _drain_stream(process.stderr, "stderr") + ) + self._stderr_task = stderr_task + + async def _shutdown_logs() -> None: + for task in (stdout_task, stderr_task): + if task is None: + continue + task.cancel() + try: + await task + except asyncio.CancelledError: + pass + except Exception as exc: # noqa: BLE001 + logger.debug( + "MCP log task error for server '%s': %s", + self._server_id, + exc, + ) + + exit_stack.push_async_callback(_shutdown_logs) + + async def _shutdown_process() -> None: + if process.returncode is None: + process.terminate() + try: + await asyncio.wait_for(process.wait(), timeout=3.0) + except asyncio.TimeoutError: + process.kill() + await process.wait() + + exit_stack.push_async_callback(_shutdown_process) + + from mcp.client.streamable_http import streamablehttp_client + + logger.info( + "Connecting to HTTP MCP server at %s (id=%s)", + self._http_url, + self._server_id, + ) + if self._process is not None and self._http_port is not None: + await self._wait_for_port("127.0.0.1", self._http_port) + + async with asyncio.timeout(HTTP_CONNECTION_TIMEOUT): + http_manager = streamablehttp_client(self._http_url) + ( + read_stream, + write_stream, + _, + ) = await exit_stack.enter_async_context(http_manager) + session = ClientSession(read_stream, write_stream) await exit_stack.enter_async_context(session) await session.initialize() @@ -173,6 +321,8 @@ async def _run_lifecycle(self) -> None: self._http_url, HTTP_CONNECTION_TIMEOUT, ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() except httpx.ConnectError as exc: @@ -202,6 +352,8 @@ async def _run_lifecycle(self) -> None: self._http_url, exc, ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() except httpx.NetworkError as exc: @@ -213,6 +365,8 @@ async def _run_lifecycle(self) -> None: self._http_url, exc, ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() except httpx.HTTPStatusError as exc: @@ -249,6 +403,8 @@ async def _run_lifecycle(self) -> None: status_code, exc.response.reason_phrase, ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() except ValueError as exc: @@ -260,6 +416,8 @@ async def _run_lifecycle(self) -> None: self._http_url, exc, ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() except Exception as exc: # noqa: BLE001 @@ -270,6 +428,13 @@ async def _run_lifecycle(self) -> None: self._http_url or self._server_id, exc, ) + logger.error( + "MCP server '%s' exception details:\n%s", + self._server_id, + self._format_exception_details(exc), + ) + if self._process is not None: + self._log_startup_output() if self._ready_event is not None and not self._ready_event.is_set(): self._ready_event.set() finally: @@ -288,13 +453,24 @@ async def _run_lifecycle(self) -> None: self._server_id, exc, ) + logger.warning( + "MCP server '%s' close exception details:\n%s", + self._server_id, + self._format_exception_details(exc), + ) + async with self._lock: + if self._last_connection_error is None: + self._last_connection_error = exc async with self._lock: self._exit_stack = None self._session = None self._tools = [] + self._process = None self._close_event = None self._ready_event = None self._lifecycle_task = None + self._stdout_task = None + self._stderr_task = None async def connect(self) -> None: """Spawn the MCP server and initialize the client session.""" @@ -396,6 +572,7 @@ async def close(self) -> None: self._exit_stack = None self._session = None self._tools = [] + self._process = None return logger.info("Closing MCP session for server '%s'", self._server_id) @@ -421,6 +598,7 @@ async def close(self) -> None: self._exit_stack = None self._session = None self._tools = [] + self._process = None self._close_event = None self._ready_event = None self._lifecycle_task = None diff --git a/src/backend/chat/mcp_registry.py b/src/backend/chat/mcp_registry.py index d9822ab8..30655d6a 100644 --- a/src/backend/chat/mcp_registry.py +++ b/src/backend/chat/mcp_registry.py @@ -204,25 +204,26 @@ def _normalize_tool_overrides(cls, value: Any) -> Any: @model_validator(mode="after") def _validate_launch_method(self) -> "MCPServerConfig": + if self.http_url and self.http_port is not None: + raise ValueError( + f"Define only one of 'http_url' or 'http_port' for MCP server '{self.id}'" + ) + + if self.http_url: + if self.module or self.command: + raise ValueError( + f"Do not combine 'http_url' with 'module' or 'command' for MCP server '{self.id}'" + ) + return self + if self.http_port is not None: - # If http_port is set, we treat it as an HTTP connection, ignoring module/command for client purposes. - # We don't enforce exclusivity here because 'module' might be present for the runner script. return self - methods_specified = sum( - [ - self.module is not None, - self.command is not None, - self.http_url is not None, - ] + message = ( + "Define 'http_url' or 'http_port' for MCP server '%s' " + "(HTTP transport is required)" ) - if methods_specified == 0: - message = "Define exactly one of 'module', 'command', 'http_url', or 'http_port' for MCP server '%s'" - raise ValueError(message % self.id) - if methods_specified > 1: - message = "Cannot specify more than one of 'module', 'command', or 'http_url' for MCP server '%s'" - raise ValueError(message % self.id) - return self + raise ValueError(message % self.id) def resolved_cwd(self, base: Path | None) -> Path | None: """Return an absolute working directory for the server.""" @@ -886,28 +887,16 @@ async def _launch_server(self, config: MCPServerConfig) -> None: cwd = config.resolved_cwd(self._default_cwd) try: - if config.http_port is not None: - # Construct local URL from port (defaulting to /mcp path) - config_url = f"http://127.0.0.1:{config.http_port}/mcp" - client = MCPToolClient( - http_url=config_url, - server_id=config.id, - ) - elif config.http_url is not None: + if config.http_url is not None: client = MCPToolClient( http_url=config.http_url, server_id=config.id, ) - elif config.command is not None: - client = MCPToolClient( - command=config.command, - server_id=config.id, - cwd=cwd, - env=env, - ) else: client = MCPToolClient( server_module=config.module, + command=config.command, + http_port=config.http_port, server_id=config.id, cwd=cwd, env=env, diff --git a/src/backend/mcp_servers/__init__.py b/src/backend/mcp_servers/__init__.py index 5856bba0..36e0d6e5 100644 --- a/src/backend/mcp_servers/__init__.py +++ b/src/backend/mcp_servers/__init__.py @@ -22,7 +22,7 @@ from importlib import import_module from types import ModuleType -from typing import Final +from typing import Any, Final __all__ = [ "calculator_server", @@ -38,20 +38,49 @@ ] # Canonical list of bundled MCP servers used to seed configuration defaults. -BUILTIN_MCP_SERVER_DEFINITIONS: Final[tuple[dict[str, str], ...]] = ( +BUILTIN_MCP_SERVER_DEFINITIONS: Final[tuple[dict[str, Any], ...]] = ( { "id": "local-calculator", "module": "backend.mcp_servers.calculator_server", + "http_port": 9003, + }, + { + "id": "housekeeping", + "module": "backend.mcp_servers.housekeeping_server", + "http_port": 9002, + }, + { + "id": "custom-calendar", + "module": "backend.mcp_servers.calendar_server", + "http_port": 9004, + }, + { + "id": "custom-gmail", + "module": "backend.mcp_servers.gmail_server", + "http_port": 9005, + }, + { + "id": "custom-gdrive", + "module": "backend.mcp_servers.gdrive_server", + "http_port": 9006, + }, + {"id": "custom-pdf", "module": "backend.mcp_servers.pdf_server", "http_port": 9007}, + { + "id": "monarch-money", + "module": "backend.mcp_servers.monarch_server", + "http_port": 9008, + }, + {"id": "notes", "module": "backend.mcp_servers.notes_server", "http_port": 9009}, + { + "id": "shell-control", + "module": "backend.mcp_servers.shell_control_server", + "http_port": 9001, + }, + { + "id": "spotify", + "module": "backend.mcp_servers.spotify_server", + "http_port": 9010, }, - {"id": "housekeeping", "module": "backend.mcp_servers.housekeeping_server"}, - {"id": "custom-calendar", "module": "backend.mcp_servers.calendar_server"}, - {"id": "custom-gmail", "module": "backend.mcp_servers.gmail_server"}, - {"id": "custom-gdrive", "module": "backend.mcp_servers.gdrive_server"}, - {"id": "custom-pdf", "module": "backend.mcp_servers.pdf_server"}, - {"id": "monarch-money", "module": "backend.mcp_servers.monarch_server"}, - {"id": "notes", "module": "backend.mcp_servers.notes_server"}, - {"id": "shell-control", "module": "backend.mcp_servers.shell_control_server"}, - {"id": "spotify", "module": "backend.mcp_servers.spotify_server"}, ) _SUBMODULES: dict[str, str] = {name: f"{__name__}.{name}" for name in __all__} diff --git a/src/backend/mcp_servers/calculator_server.py b/src/backend/mcp_servers/calculator_server.py index 045626c1..0b8895c9 100644 --- a/src/backend/mcp_servers/calculator_server.py +++ b/src/backend/mcp_servers/calculator_server.py @@ -5,13 +5,12 @@ import argparse from typing import Literal -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP # Default port for HTTP transport DEFAULT_HTTP_PORT = 9003 -# Create FastMCP instance with stateless HTTP support -mcp = FastMCP("local-calculator", stateless_http=True, json_response=True) +mcp = FastMCP("local-calculator") @mcp.tool("calculator_evaluate") @@ -45,11 +44,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/calendar_server.py b/src/backend/mcp_servers/calendar_server.py index 940c31d0..3c276b57 100644 --- a/src/backend/mcp_servers/calendar_server.py +++ b/src/backend/mcp_servers/calendar_server.py @@ -13,7 +13,7 @@ from typing import Any, List, Optional, TypedDict # Third party imports -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP # Local imports from backend.services.google_auth.auth import ( @@ -40,8 +40,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9004 -# Create MCP server instance with stateless HTTP support -mcp: FastMCP = FastMCP("custom-calendar", stateless_http=True, json_response=True) +mcp: FastMCP = FastMCP("custom-calendar") def get_tasks_service(user_email: str): @@ -1537,11 +1536,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/gdrive_server.py b/src/backend/mcp_servers/gdrive_server.py index 8a613be7..f6ce03a1 100644 --- a/src/backend/mcp_servers/gdrive_server.py +++ b/src/backend/mcp_servers/gdrive_server.py @@ -10,7 +10,7 @@ import httpx from googleapiclient.http import MediaIoBaseDownload, MediaIoBaseUpload -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from backend.mcp_servers.pdf_server import extract_bytes as kb_extract_bytes from backend.services.attachments import AttachmentService @@ -22,7 +22,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9006 -mcp = FastMCP("custom-gdrive", stateless_http=True, json_response=True) +mcp = FastMCP("custom-gdrive") DRIVE_FIELDS_MINIMAL = ( "files(id, name, mimeType, size, modifiedTime, webViewLink, iconLink)" ) @@ -1430,11 +1430,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/gmail_server.py b/src/backend/mcp_servers/gmail_server.py index 385e17bc..9d6ff2e6 100644 --- a/src/backend/mcp_servers/gmail_server.py +++ b/src/backend/mcp_servers/gmail_server.py @@ -14,7 +14,7 @@ except Exception: # pragma: no cover - graceful degradation if not installed kreuzberg_server = None # type: ignore -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from backend.config import get_settings from backend.repository import ChatRepository @@ -36,7 +36,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9005 -mcp = FastMCP("custom-gmail", stateless_http=True, json_response=True) +mcp = FastMCP("custom-gmail") GMAIL_BATCH_SIZE = 25 HTML_BODY_TRUNCATE_LIMIT = 20000 @@ -1400,11 +1400,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/housekeeping_server.py b/src/backend/mcp_servers/housekeeping_server.py index 28ba975f..3c9ede92 100644 --- a/src/backend/mcp_servers/housekeeping_server.py +++ b/src/backend/mcp_servers/housekeeping_server.py @@ -9,7 +9,7 @@ from pathlib import Path from typing import Any, Literal -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from backend.config import get_settings from backend.repository import ChatRepository @@ -25,7 +25,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9002 -mcp = FastMCP("housekeeping", stateless_http=True, json_response=True) +mcp = FastMCP("housekeeping") _MESSAGE_PREVIEW_LIMIT = 2000 _MAX_HISTORY_LIMIT = 100 @@ -259,11 +259,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/monarch_server.py b/src/backend/mcp_servers/monarch_server.py index e6e80888..042b9784 100644 --- a/src/backend/mcp_servers/monarch_server.py +++ b/src/backend/mcp_servers/monarch_server.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import Any, Optional -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from monarchmoney import MonarchMoney, RequireMFAException from backend.config import get_settings @@ -30,7 +30,7 @@ class MonarchAPIError(Exception): # Default port for HTTP transport DEFAULT_HTTP_PORT = 9008 -mcp = FastMCP("monarch", stateless_http=True, json_response=True) +mcp = FastMCP("monarch") def _project_root() -> Path: @@ -1859,11 +1859,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/notes_server.py b/src/backend/mcp_servers/notes_server.py index 127900f4..1c029cc2 100644 --- a/src/backend/mcp_servers/notes_server.py +++ b/src/backend/mcp_servers/notes_server.py @@ -13,7 +13,7 @@ from typing import Any, Dict, List, Literal, Optional, Tuple from googleapiclient.http import MediaIoBaseDownload, MediaIoBaseUpload -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from backend.services.google_auth.auth import ( DEFAULT_USER_EMAIL, @@ -23,7 +23,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9009 -mcp = FastMCP("notes", stateless_http=True, json_response=True) +mcp = FastMCP("notes") # Default vault folder name in Google Drive DEFAULT_VAULT_FOLDER_NAME = "NOTES" @@ -1486,11 +1486,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/mcp_servers/pdf_server.py b/src/backend/mcp_servers/pdf_server.py index 27c2ceea..bc1f5372 100644 --- a/src/backend/mcp_servers/pdf_server.py +++ b/src/backend/mcp_servers/pdf_server.py @@ -17,6 +17,7 @@ from pathlib import Path from typing import Any, Optional +from fastmcp import FastMCP import httpx import kreuzberg from kreuzberg import ExtractionConfig @@ -36,13 +37,34 @@ from backend.config import get_settings from backend.repository import ChatRepository -mcp = kreuzberg_server.mcp - - -def run() -> None: # pragma: no cover - integration entrypoint - """Execute the Kreuzberg MCP server when launched as a script.""" - - kreuzberg_server.main() +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9007 + +mcp = FastMCP.as_proxy( + backend=kreuzberg_server.mcp, + name="custom-pdf", + on_duplicate_tools="replace", +) + + +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + + if transport == "streamable-http": + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) + else: + mcp.run(transport="stdio") # Re-export the highest-level helpers for direct imports. @@ -1071,6 +1093,31 @@ def _build_extraction_config( return config +if __name__ == "__main__": # pragma: no cover - CLI helper + import argparse + + parser = argparse.ArgumentParser(description="PDF MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) + + __all__ = [ "mcp", "run", diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index da6987f9..7d7502f3 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -18,12 +18,12 @@ if TYPE_CHECKING: from asyncio.subprocess import Process -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP # Default port for HTTP transport DEFAULT_HTTP_PORT = 9001 -mcp: FastMCP = FastMCP("shell-control", stateless_http=True, json_response=True) # type: ignore +mcp: FastMCP = FastMCP("shell-control") # type: ignore OUTPUT_TAIL_BYTES = 4 * 1024 # For success: last 4KB is usually enough @@ -1945,11 +1945,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper @@ -1990,4 +1995,3 @@ def run( "system_backup", "run", ] - diff --git a/src/backend/mcp_servers/spotify_server.py b/src/backend/mcp_servers/spotify_server.py index 3548d929..9c0d596d 100644 --- a/src/backend/mcp_servers/spotify_server.py +++ b/src/backend/mcp_servers/spotify_server.py @@ -3,7 +3,7 @@ import asyncio from typing import Any, Optional -from mcp.server.fastmcp import FastMCP +from fastmcp import FastMCP from backend.services.spotify_auth.auth import ( DEFAULT_USER_EMAIL, @@ -19,7 +19,7 @@ # Default port for HTTP transport DEFAULT_HTTP_PORT = 9010 -mcp = FastMCP("spotify", stateless_http=True, json_response=True) +mcp = FastMCP("spotify") def _format_track_info(track: dict[str, Any]) -> str: @@ -1282,11 +1282,16 @@ def run( ) -> None: # pragma: no cover - integration entrypoint """Run the Spotify MCP server with the specified transport.""" if transport == "streamable-http": - import uvicorn - app = mcp.streamable_http_app() - uvicorn.run(app, host=host, port=port) + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) else: - mcp.run() + mcp.run(transport="stdio") if __name__ == "__main__": # pragma: no cover - CLI helper diff --git a/src/backend/routers/mcp_servers.py b/src/backend/routers/mcp_servers.py index dfd008d5..92ca1c64 100644 --- a/src/backend/routers/mcp_servers.py +++ b/src/backend/routers/mcp_servers.py @@ -56,6 +56,8 @@ async def _build_status_response( connected=bool(runtime_entry.get("connected", False)), module=config.module, command=config.command, + http_url=config.http_url, + http_port=config.http_port, cwd=config.cwd, env=config.env, tool_prefix=config.tool_prefix, diff --git a/src/backend/schemas/mcp_servers.py b/src/backend/schemas/mcp_servers.py index 10f950d6..31541538 100644 --- a/src/backend/schemas/mcp_servers.py +++ b/src/backend/schemas/mcp_servers.py @@ -25,6 +25,8 @@ class MCPServerDefinition(BaseModel): enabled: bool = Field(default=True) module: str | None = None command: list[str] | None = None + http_url: str | None = None + http_port: int | None = None cwd: Path | None = None env: dict[str, str] = Field(default_factory=dict) tool_prefix: str | None = None @@ -51,6 +53,8 @@ class MCPServerUpdatePayload(BaseModel): disabled_tools: list[str] | None = None module: str | None = None command: list[str] | None = None + http_url: str | None = None + http_port: int | None = None cwd: Path | None = None env: dict[str, str] | None = None tool_prefix: str | None = None @@ -73,6 +77,8 @@ class MCPServerStatus(BaseModel): connected: bool module: str | None = None command: list[str] | None = None + http_url: str | None = None + http_port: int | None = None cwd: Path | None = None env: dict[str, str] = Field(default_factory=dict) tool_prefix: str | None = None diff --git a/start.sh b/start.sh index 3b20859e..89f5c5c5 100755 --- a/start.sh +++ b/start.sh @@ -29,6 +29,26 @@ BOLD='\033[1m' # Pids to track declare -a PIDS=() +# Wait for backend health endpoint to be available before launching frontends +wait_for_backend() { + local health_url="http://127.0.0.1:8000/health" + + if ! command -v curl >/dev/null 2>&1; then + echo -e "${YELLOW}curl not found; skipping backend readiness check.${NC}" + return + fi + + echo -e "${BLUE}Waiting for backend readiness...${NC}" + for _ in {1..60}; do + if curl -fsS "$health_url" >/dev/null 2>&1; then + echo -e "${GREEN}Backend is ready.${NC}" + return + fi + sleep 0.5 + done + echo -e "${YELLOW}Backend readiness check timed out; continuing anyway.${NC}" +} + # Function to cleanup background processes on exit cleanup() { echo "" @@ -53,11 +73,10 @@ else echo -e "${BOLD}║ Backend_FastAPI Component Launcher ║${NC}" echo -e "${BOLD}╚════════════════════════════════════════════╝${NC}" echo "" - echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000)" + echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000; MCP servers managed inside backend)" echo -e " ${CYAN}2${NC} - Frontend (Svelte chat UI on :5173)" echo -e " ${CYAN}3${NC} - Frontend-Kiosk (Kiosk UI on :5174)" echo -e " ${CYAN}4${NC} - Frontend-CLI (Terminal chat client)" - echo -e " ${CYAN}5${NC} - MCP HTTP (MCP servers on :9001-9010)" echo "" echo -e " ${CYAN}all${NC} - Start 1, 2, and 3 (web stack)" echo "" @@ -67,7 +86,7 @@ fi # Handle 'all' shortcut if [[ "$selection" == "all" ]]; then - selection="1235" + selection="123" fi # Validate input @@ -76,8 +95,8 @@ if [[ -z "$selection" ]]; then exit 1 fi -if [[ ! "$selection" =~ ^[1-5]+$ ]]; then - echo -e "${RED}Invalid selection. Use only numbers 1-5 or 'all'.${NC}" +if [[ ! "$selection" =~ ^[1-4]+$ ]]; then + echo -e "${RED}Invalid selection. Use only numbers 1-4 or 'all'.${NC}" exit 1 fi @@ -88,27 +107,20 @@ START_BACKEND=false START_FRONTEND=false START_KIOSK=false START_CLI=false -START_MCP_HTTP=false # Parse selection [[ "$selection" == *"1"* ]] && START_BACKEND=true [[ "$selection" == *"2"* ]] && START_FRONTEND=true [[ "$selection" == *"3"* ]] && START_KIOSK=true [[ "$selection" == *"4"* ]] && START_CLI=true -[[ "$selection" == *"5"* ]] && START_MCP_HTTP=true - -# Start MCP HTTP servers (before backend if both selected) -if $START_MCP_HTTP; then - echo -e "${GREEN}[0/5] Starting MCP HTTP Servers...${NC}" - uv run python -m backend.run_mcp_servers & - PIDS+=($!) - sleep 3 # Give MCP servers time to start -fi # Start Backend if $START_BACKEND; then - echo -e "${GREEN}[1/5] Starting Backend...${NC}" + echo -e "${GREEN}[1/4] Starting Backend (includes MCP servers)...${NC}" uv run python scripts/kill_port.py 8000 + for port in {9001..9010}; do + uv run python scripts/kill_port.py "$port" + done uv run uvicorn backend.app:create_app \ --factory \ --host 0.0.0.0 \ @@ -117,9 +129,14 @@ if $START_BACKEND; then sleep 2 # Give backend time to start fi +# Avoid frontend proxy errors by waiting for backend to accept requests. +if $START_BACKEND && ($START_FRONTEND || $START_KIOSK); then + wait_for_backend +fi + # Start Svelte Frontend if $START_FRONTEND; then - echo -e "${GREEN}[2/5] Starting Frontend (Svelte)...${NC}" + echo -e "${GREEN}[2/4] Starting Frontend (Svelte)...${NC}" uv run python scripts/kill_port.py 5173 (cd "$SCRIPT_DIR/frontend" && npm run dev) & PIDS+=($!) @@ -127,7 +144,7 @@ fi # Start Kiosk Frontend if $START_KIOSK; then - echo -e "${GREEN}[3/5] Starting Frontend-Kiosk...${NC}" + echo -e "${GREEN}[3/4] Starting Frontend-Kiosk...${NC}" uv run python scripts/kill_port.py 5174 (cd "$SCRIPT_DIR/frontend-kiosk" && npm run dev) & PIDS+=($!) @@ -136,9 +153,9 @@ fi # Handle CLI if $START_CLI; then # Check if other services are running - if $START_BACKEND || $START_FRONTEND || $START_KIOSK || $START_MCP_HTTP; then + if $START_BACKEND || $START_FRONTEND || $START_KIOSK; then # Other services are running in background, wait a moment then start CLI in foreground - echo -e "${GREEN}[4/5] Starting Frontend-CLI...${NC}" + echo -e "${GREEN}[4/4] Starting Frontend-CLI...${NC}" echo "" sleep 1 source .venv/bin/activate && shell-chat diff --git a/tests/test_mcp_client.py b/tests/test_mcp_client.py index 23671aae..3468e006 100644 --- a/tests/test_mcp_client.py +++ b/tests/test_mcp_client.py @@ -11,7 +11,6 @@ from mcp.types import CallToolResult, TextContent, Tool from backend.chat.mcp_client import ( - HTTP_CONNECTION_TIMEOUT, HTTP_MAX_RECONNECT_ATTEMPTS, HTTP_RECONNECT_DELAY, MCPToolClient, @@ -63,39 +62,42 @@ async def test_http_server_detection(self) -> None: assert http_client.http_url == "http://example.com/mcp" module_client = MCPToolClient( - server_module="backend.mcp_servers.test_server", server_id="module-server" + server_module="backend.mcp_servers.test_server", + http_port=9000, + server_id="module-server", ) - assert module_client.is_http_server is False - assert module_client.http_url is None + assert module_client.is_http_server is True + assert module_client.http_url == "http://127.0.0.1:9000/mcp" command_client = MCPToolClient( - command=["python", "-m", "some.module"], server_id="command-server" + command=["python", "-m", "some.module"], + http_port=9001, + server_id="command-server", ) - assert command_client.is_http_server is False - assert command_client.http_url is None + assert command_client.is_http_server is True + assert command_client.http_url == "http://127.0.0.1:9001/mcp" async def test_http_connection_with_timeout(self, mock_session: MagicMock) -> None: - """Test that HTTP connections apply timeout correctly.""" + """Test that HTTP connections establish a session.""" client = MCPToolClient( http_url="http://example.com/mcp", server_id="test-server" ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch( + "mcp.client.streamable_http.streamablehttp_client" + ) as mock_http_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), ): - mock_streams = (MagicMock(), MagicMock()) + mock_streams = (MagicMock(), MagicMock(), MagicMock()) mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(return_value=mock_streams) mock_context.__aexit__ = AsyncMock() - mock_sse_client.return_value = mock_context + mock_http_client.return_value = mock_context await client.connect() - # Verify sse_client was called with timeout - mock_sse_client.assert_called_once_with( - "http://example.com/mcp", timeout=HTTP_CONNECTION_TIMEOUT - ) + mock_http_client.assert_called_once_with("http://example.com/mcp") await client.close() @@ -109,18 +111,19 @@ async def test_connection_timeout(self) -> None: http_url="http://example.com/mcp", server_id="test-server" ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch( + "mcp.client.streamable_http.streamablehttp_client" + ) as mock_http_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock( side_effect=asyncio.TimeoutError("Connection timed out") ) - mock_sse_client.return_value = mock_context + mock_http_client.return_value = mock_context with pytest.raises(ConnectionError) as exc_info: await client.connect() assert "timed out" in str(exc_info.value).lower() - assert str(HTTP_CONNECTION_TIMEOUT) in str(exc_info.value) async def test_dns_resolution_failure(self) -> None: """Test handling of DNS resolution failures.""" @@ -130,7 +133,7 @@ async def test_dns_resolution_failure(self) -> None: dns_error = httpx.ConnectError("Name or service not known", request=MagicMock()) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=dns_error) mock_sse_client.return_value = mock_context @@ -152,7 +155,7 @@ async def test_connection_refused(self) -> None: "[Errno 111] Connection refused", request=MagicMock() ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=refused_error) mock_sse_client.return_value = mock_context @@ -172,7 +175,7 @@ async def test_network_error(self) -> None: network_error = httpx.NetworkError("Network unreachable", request=MagicMock()) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=network_error) mock_sse_client.return_value = mock_context @@ -195,7 +198,7 @@ async def test_http_401_authentication_required(self) -> None: "Unauthorized", request=MagicMock(), response=mock_response ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=auth_error) mock_sse_client.return_value = mock_context @@ -219,7 +222,7 @@ async def test_http_403_forbidden(self) -> None: "Forbidden", request=MagicMock(), response=mock_response ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=forbidden_error) mock_sse_client.return_value = mock_context @@ -243,7 +246,7 @@ async def test_http_404_not_found(self) -> None: "Not Found", request=MagicMock(), response=mock_response ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=not_found_error) mock_sse_client.return_value = mock_context @@ -267,7 +270,7 @@ async def test_http_500_server_error(self) -> None: "Internal Server Error", request=MagicMock(), response=mock_response ) - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=server_error) mock_sse_client.return_value = mock_context @@ -286,7 +289,7 @@ async def test_invalid_sse_stream_format(self) -> None: value_error = ValueError("Invalid SSE stream format: missing event type") - with patch("mcp.client.sse.sse_client") as mock_sse_client: + with patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client: mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(side_effect=value_error) mock_sse_client.return_value = mock_context @@ -308,11 +311,11 @@ async def test_reconnect_succeeds(self, mock_session: MagicMock) -> None: ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), patch("asyncio.sleep", new_callable=AsyncMock) as mock_sleep, ): - mock_streams = (MagicMock(), MagicMock()) + mock_streams = (MagicMock(), MagicMock(), MagicMock()) mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(return_value=mock_streams) mock_context.__aexit__ = AsyncMock() @@ -352,7 +355,7 @@ async def test_reconnect_fails_connection_error( ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("asyncio.sleep", new_callable=AsyncMock), ): mock_context = AsyncMock() @@ -367,17 +370,6 @@ async def test_reconnect_fails_connection_error( assert success is False assert client._reconnect_attempts == initial_attempts + 1 - async def test_reconnect_not_http_server(self) -> None: - """Test that reconnect is ignored for non-HTTP servers.""" - client = MCPToolClient( - server_module="backend.mcp_servers.test_server", server_id="module-server" - ) - - success = await client.reconnect() - - assert success is False - assert client._reconnect_attempts == 0 - async def test_reconnect_resets_counter_on_success( self, mock_session: MagicMock ) -> None: @@ -387,11 +379,11 @@ async def test_reconnect_resets_counter_on_success( ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), patch("asyncio.sleep", new_callable=AsyncMock), ): - mock_streams = (MagicMock(), MagicMock()) + mock_streams = (MagicMock(), MagicMock(), MagicMock()) mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(return_value=mock_streams) mock_context.__aexit__ = AsyncMock() @@ -426,10 +418,10 @@ def mock_connect_side_effect(*args: Any, **kwargs: Any) -> Any: attempt_count += 1 if attempt_count < 3: raise httpx.ConnectError("Connection failed", request=MagicMock()) - return (MagicMock(), MagicMock()) + return (MagicMock(), MagicMock(), MagicMock()) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), patch("asyncio.sleep", new_callable=AsyncMock), ): @@ -465,10 +457,10 @@ async def test_call_tool_over_http(self, mock_session: MagicMock) -> None: ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), ): - mock_streams = (MagicMock(), MagicMock()) + mock_streams = (MagicMock(), MagicMock(), MagicMock()) mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(return_value=mock_streams) mock_context.__aexit__ = AsyncMock() @@ -492,10 +484,10 @@ async def test_get_openai_tools_over_http(self, mock_session: MagicMock) -> None ) with ( - patch("mcp.client.sse.sse_client") as mock_sse_client, + patch("mcp.client.streamable_http.streamablehttp_client") as mock_sse_client, patch("backend.chat.mcp_client.ClientSession", return_value=mock_session), ): - mock_streams = (MagicMock(), MagicMock()) + mock_streams = (MagicMock(), MagicMock(), MagicMock()) mock_context = AsyncMock() mock_context.__aenter__ = AsyncMock(return_value=mock_streams) mock_context.__aexit__ = AsyncMock() diff --git a/tests/test_mcp_registry.py b/tests/test_mcp_registry.py index a8c9052a..ef55fe64 100644 --- a/tests/test_mcp_registry.py +++ b/tests/test_mcp_registry.py @@ -43,6 +43,15 @@ def build_tool_definition(name: str, description: str) -> tuple[Tool, dict[str, return tool, spec +DEFAULT_TEST_HTTP_PORT = 9100 + + +def make_config(**kwargs: Any) -> MCPServerConfig: + if "http_url" not in kwargs and "http_port" not in kwargs: + kwargs["http_port"] = DEFAULT_TEST_HTTP_PORT + return MCPServerConfig(**kwargs) + + def make_fake_client_factory( tool_map: dict[str, list[tuple[Tool, dict[str, Any]]]], created: dict[str, Any], @@ -54,6 +63,7 @@ def __init__( *, command: list[str] | None = None, http_url: str | None = None, + http_port: int | None = None, server_id: str | None = None, cwd: Path | None = None, env: dict[str, str] | None = None, @@ -120,6 +130,7 @@ def build_export(**overrides: Any) -> dict[str, Any]: "run", "backend.mcp_servers.gmail_server", ], + "http_port": DEFAULT_TEST_HTTP_PORT, "env": {"EXPORTED_TOKEN": "${EXPORTED_TOKEN}"}, "tool_prefix": "external-server", "enabled": True, @@ -130,7 +141,13 @@ def build_export(**overrides: Any) -> dict[str, Any]: def test_load_server_configs_uses_fallback(tmp_path: Path) -> None: path = tmp_path / "servers.json" - fallback = [{"id": "local", "module": "backend.mcp_servers.calculator_server"}] + fallback = [ + { + "id": "local", + "module": "backend.mcp_servers.calculator_server", + "http_port": DEFAULT_TEST_HTTP_PORT, + } + ] configs = load_server_configs(path, fallback=fallback) @@ -148,6 +165,7 @@ def test_load_server_configs_overrides_fallback(tmp_path: Path) -> None: { "id": "local", "module": "custom.server", + "http_port": DEFAULT_TEST_HTTP_PORT, "enabled": False, } ] @@ -156,7 +174,13 @@ def test_load_server_configs_overrides_fallback(tmp_path: Path) -> None: encoding="utf-8", ) - fallback = [{"id": "local", "module": "backend.mcp_servers.calculator_server"}] + fallback = [ + { + "id": "local", + "module": "backend.mcp_servers.calculator_server", + "http_port": DEFAULT_TEST_HTTP_PORT, + } + ] configs = load_server_configs(path, fallback=fallback) assert len(configs) == 1 @@ -172,6 +196,7 @@ def test_load_server_configs_prefers_export(tmp_path: Path) -> None: { "id": "external-server", "module": "backend.mcp_servers.gmail_server", + "http_port": DEFAULT_TEST_HTTP_PORT, } ] @@ -202,8 +227,8 @@ async def test_aggregator_preserves_unique_names( monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig(id="server_a", module="pkg.alpha"), - MCPServerConfig(id="server_b", module="pkg.beta"), + make_config(id="server_a", module="pkg.alpha"), + make_config(id="server_b", module="pkg.beta"), ] aggregator = MCPToolAggregator(configs) @@ -234,8 +259,8 @@ async def test_aggregator_prefixes_duplicate_tool_names( monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig(id="server_a", module="pkg.alpha"), - MCPServerConfig(id="server_b", module="pkg.beta"), + make_config(id="server_a", module="pkg.alpha"), + make_config(id="server_b", module="pkg.beta"), ] aggregator = MCPToolAggregator(configs) @@ -268,8 +293,8 @@ async def test_aggregator_filters_tools_by_contexts( monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig(id="server_a", module="pkg.alpha", contexts=["calendar"]), - MCPServerConfig( + make_config(id="server_a", module="pkg.alpha", contexts=["calendar"]), + make_config( id="server_b", module="pkg.beta", contexts=["tasks"], @@ -323,7 +348,7 @@ async def test_aggregator_returns_tools_by_name( monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig(id="server_a", module="pkg.alpha", contexts=["calendar"]), + make_config(id="server_a", module="pkg.alpha", contexts=["calendar"]), ] aggregator = MCPToolAggregator(configs) @@ -377,7 +402,7 @@ async def test_builtin_housekeeping_server_runs_via_aggregator(tmp_path: Path) - ) await repository.close() - config = MCPServerConfig( + config = make_config( id="housekeeping", module="backend.mcp_servers.housekeeping_server", env={ @@ -460,6 +485,7 @@ async def test_exported_manifest_tools_are_prefixed( { "id": "external-server", "module": "backend.mcp_servers.gmail_server", + "http_port": DEFAULT_TEST_HTTP_PORT, } ] @@ -509,7 +535,7 @@ async def test_http_server_configuration(monkeypatch: pytest.MonkeyPatch) -> Non monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig( + make_config( id="http-server", http_url="http://localhost:8080/mcp", enabled=True, @@ -550,7 +576,7 @@ async def test_http_server_with_tool_prefix(monkeypatch: pytest.MonkeyPatch) -> monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig( + make_config( id="http-api", http_url="http://api.example.com/mcp", tool_prefix="api", @@ -589,12 +615,12 @@ async def test_mixed_http_and_module_servers(monkeypatch: pytest.MonkeyPatch) -> monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig( + make_config( id="http-remote", http_url="http://remote.example.com/mcp", enabled=True, ), - MCPServerConfig( + make_config( id="local-module", module="backend.mcp_servers.local_server", enabled=True, @@ -632,7 +658,7 @@ async def test_http_server_disabled(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig( + make_config( id="disabled-http", http_url="http://disabled.example.com/mcp", enabled=False, @@ -675,7 +701,7 @@ def get_openai_tools(self) -> list[dict[str, Any]]: monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", FailingFakeClient) configs = [ - MCPServerConfig( + make_config( id="failing-http", http_url="http://unreachable.example.com/mcp", enabled=True, @@ -707,7 +733,7 @@ async def test_http_server_with_contexts(monkeypatch: pytest.MonkeyPatch) -> Non monkeypatch.setattr("backend.chat.mcp_registry.MCPToolClient", fake_client_cls) configs = [ - MCPServerConfig( + make_config( id="http-contextual", http_url="http://api.example.com/mcp", contexts=["email"], diff --git a/tests/test_mcp_server_settings.py b/tests/test_mcp_server_settings.py index 50a48868..4854f169 100644 --- a/tests/test_mcp_server_settings.py +++ b/tests/test_mcp_server_settings.py @@ -22,6 +22,8 @@ pytestmark = pytest.mark.anyio +DEFAULT_TEST_HTTP_PORT = 9101 + @pytest.fixture def anyio_backend() -> str: @@ -124,6 +126,7 @@ async def test_service_loads_fallback_and_persist(tmp_path: Path) -> None: { "id": "alpha", "module": "pkg.alpha", + "http_port": DEFAULT_TEST_HTTP_PORT, "contexts": ["calendar"], "tool_overrides": {"alpha_tool": {"contexts": ["calendar"]}}, } @@ -140,6 +143,7 @@ async def test_service_loads_fallback_and_persist(tmp_path: Path) -> None: new_config = MCPServerConfig( id="beta", module="pkg.beta", + http_port=DEFAULT_TEST_HTTP_PORT, enabled=False, contexts=["tasks"], tool_overrides={"beta_tool": MCPServerToolConfig(contexts=["tasks"])}, @@ -169,11 +173,16 @@ async def test_router_combines_status() -> None: MCPServerConfig( id="alpha", module="pkg.alpha", + http_port=DEFAULT_TEST_HTTP_PORT, contexts=["calendar"], tool_overrides={"ping": MCPServerToolConfig(contexts=["calendar"])}, ), MCPServerConfig( - id="beta", module="pkg.beta", enabled=False, contexts=["tasks"] + id="beta", + module="pkg.beta", + http_port=DEFAULT_TEST_HTTP_PORT, + enabled=False, + contexts=["tasks"], ), ] ) @@ -204,7 +213,9 @@ async def test_router_combines_status() -> None: async def test_router_patch_updates_service_and_runtime() -> None: service = StubMCPServerSettingsService( [ - MCPServerConfig(id="alpha", module="pkg.alpha"), + MCPServerConfig( + id="alpha", module="pkg.alpha", http_port=DEFAULT_TEST_HTTP_PORT + ), ] ) orchestrator = StubChatOrchestrator() @@ -240,7 +251,7 @@ async def test_router_patch_updates_service_and_runtime() -> None: async def test_router_refresh_calls_orchestrator() -> None: service = StubMCPServerSettingsService( - [MCPServerConfig(id="alpha", module="pkg.alpha")] + [MCPServerConfig(id="alpha", module="pkg.alpha", http_port=DEFAULT_TEST_HTTP_PORT)] ) orchestrator = StubChatOrchestrator() await orchestrator.apply_mcp_configs(await service.get_configs()) diff --git a/uv.lock b/uv.lock index bf96d586..edc3dcf4 100644 --- a/uv.lock +++ b/uv.lock @@ -139,6 +139,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, ] +[[package]] +name = "authlib" +version = "1.6.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/9b/b1661026ff24bc641b76b78c5222d614776b0c085bcfdac9bd15a1cb4b35/authlib-1.6.6.tar.gz", hash = "sha256:45770e8e056d0f283451d9996fbb59b70d45722b45d854d58f32878d0a40c38e", size = 164894, upload-time = "2025-12-12T08:01:41.464Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/51/321e821856452f7386c4e9df866f196720b1ad0c5ea1623ea7399969ae3b/authlib-1.6.6-py2.py3-none-any.whl", hash = "sha256:7d9e9bc535c13974313a87f53e8430eb6ea3d1cf6ae4f6efcd793f2e949143fd", size = 244005, upload-time = "2025-12-12T08:01:40.209Z" }, +] + [[package]] name = "autocommand" version = "2.2.2" @@ -156,6 +168,7 @@ dependencies = [ { name = "aiosqlite" }, { name = "deepgram-sdk" }, { name = "fastapi", extra = ["standard"] }, + { name = "fastmcp" }, { name = "google-api-python-client" }, { name = "google-auth" }, { name = "google-auth-httplib2" }, @@ -186,6 +199,7 @@ requires-dist = [ { name = "aiosqlite", specifier = ">=0.20.0" }, { name = "deepgram-sdk", specifier = ">=5.3.0" }, { name = "fastapi", extras = ["standard"], specifier = ">=0.115.0" }, + { name = "fastmcp", specifier = ">=2.14.1" }, { name = "google-api-python-client", specifier = ">=2.0.0" }, { name = "google-auth", specifier = ">=2.0.0" }, { name = "google-auth-httplib2", specifier = ">=0.1.0" }, @@ -220,6 +234,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, ] +[[package]] +name = "beartype" +version = "0.22.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload-time = "2025-12-13T06:50:30.72Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload-time = "2025-12-13T06:50:28.266Z" }, +] + [[package]] name = "blis" version = "1.3.3" @@ -401,6 +424,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ae/8a/c4bb04426d608be4a3171efa2e233d2c59a5c8937850c10d098e126df18e/cloudpathlib-0.23.0-py3-none-any.whl", hash = "sha256:8520b3b01468fee77de37ab5d50b1b524ea6b4a8731c35d1b7407ac0cd716002", size = 62755, upload-time = "2025-10-07T22:47:54.905Z" }, ] +[[package]] +name = "cloudpickle" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, +] + [[package]] name = "colorama" version = "0.4.6" @@ -555,6 +587,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] +[[package]] +name = "cyclopts" +version = "4.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser" }, + { name = "rich" }, + { name = "rich-rst" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/99/e1b75193ee23bd10a05a3b90c065d419b1c8c18f61cae6b8218c7158f792/cyclopts-4.4.1.tar.gz", hash = "sha256:368a404926b46a49dc328a33ccd7e55ba879296a28e64a42afe2f6667704cecf", size = 159245, upload-time = "2025-12-21T13:59:02.266Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/05/8efadba80e1296526e69c1dceba8b0f0bc3756e8d69f6ed9b0e647cf3169/cyclopts-4.4.1-py3-none-any.whl", hash = "sha256:67500e9fde90f335fddbf9c452d2e7c4f58209dffe52e7abb1e272796a963bde", size = 196726, upload-time = "2025-12-21T13:59:03.127Z" }, +] + [[package]] name = "cymem" version = "2.0.13" @@ -611,6 +658,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/58/e2/cda09edad156199cc9e330533f6b72cb5276c0d476cab7f1744be7ffa16e/deepgram_sdk-5.3.0-py3-none-any.whl", hash = "sha256:431418fdffbd93cdf6a78a168984e3df3cb696818ced1cfc52ce336e0bc6a7fe", size = 390669, upload-time = "2025-11-03T15:24:01.078Z" }, ] +[[package]] +name = "diskcache" +version = "5.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, +] + [[package]] name = "distro" version = "1.9.0" @@ -629,6 +685,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, ] +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "docutils" +version = "0.22.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750, upload-time = "2025-12-18T19:00:26.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, +] + [[package]] name = "easyocr" version = "1.7.2" @@ -664,6 +738,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, ] +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "fakeredis" +version = "2.33.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "redis" }, + { name = "sortedcontainers" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/f9/57464119936414d60697fcbd32f38909bb5688b616ae13de6e98384433e0/fakeredis-2.33.0.tar.gz", hash = "sha256:d7bc9a69d21df108a6451bbffee23b3eba432c21a654afc7ff2d295428ec5770", size = 175187, upload-time = "2025-12-16T19:45:52.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/78/a850fed8aeef96d4a99043c90b818b2ed5419cd5b24a4049fd7cfb9f1471/fakeredis-2.33.0-py3-none-any.whl", hash = "sha256:de535f3f9ccde1c56672ab2fdd6a8efbc4f2619fc2f1acc87b8737177d71c965", size = 119605, upload-time = "2025-12-16T19:45:51.08Z" }, +] + +[package.optional-dependencies] +lua = [ + { name = "lupa" }, +] + [[package]] name = "fast-langdetect" version = "1.0.0" @@ -740,6 +841,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e5/a6/5aa862489a2918a096166fd98d9fe86b7fd53c607678b3fa9d8c432d88d5/fastapi_cloud_cli-0.1.5-py3-none-any.whl", hash = "sha256:d80525fb9c0e8af122370891f9fa83cf5d496e4ad47a8dd26c0496a6c85a012a", size = 18992, upload-time = "2025-07-28T13:30:47.427Z" }, ] +[[package]] +name = "fastmcp" +version = "2.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "authlib" }, + { name = "cyclopts" }, + { name = "exceptiongroup" }, + { name = "httpx" }, + { name = "jsonschema-path" }, + { name = "mcp" }, + { name = "openapi-pydantic" }, + { name = "platformdirs" }, + { name = "py-key-value-aio", extra = ["disk", "keyring", "memory"] }, + { name = "pydantic", extra = ["email"] }, + { name = "pydocket" }, + { name = "pyperclip" }, + { name = "python-dotenv" }, + { name = "rich" }, + { name = "uvicorn" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/50/d38e4371bdc34e709f4731b1e882cb7bc50e51c1a224859d4cd381b3a79b/fastmcp-2.14.1.tar.gz", hash = "sha256:132725cbf77b68fa3c3d165eff0cfa47e40c1479457419e6a2cfda65bd84c8d6", size = 8263331, upload-time = "2025-12-15T02:26:27.102Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/82/72401d09dc27c27fdf72ad6c2fe331e553e3c3646e01b5ff16473191033d/fastmcp-2.14.1-py3-none-any.whl", hash = "sha256:fb3e365cc1d52573ab89caeba9944dd4b056149097be169bce428e011f0a57e5", size = 412176, upload-time = "2025-12-15T02:26:25.356Z" }, +] + [[package]] name = "fasttext-predict" version = "0.9.2.4" @@ -1255,6 +1383,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fb/fe/301e0936b79bcab4cacc7548bf2853fc28dced0a578bab1f7ef53c9aa75b/imageio-2.37.2-py3-none-any.whl", hash = "sha256:ad9adfb20335d718c03de457358ed69f141021a333c40a53e57273d8a5bd0b9b", size = 317646, upload-time = "2025-11-04T14:29:37.948Z" }, ] +[[package]] +name = "importlib-metadata" +version = "8.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, +] + [[package]] name = "iniconfig" version = "2.1.0" @@ -1264,6 +1404,48 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" }, ] +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload-time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload-time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/27/056e0638a86749374d6f57d0b0db39f29509cce9313cf91bdc0ac4d91084/jaraco_functools-4.4.0.tar.gz", hash = "sha256:da21933b0417b89515562656547a77b4931f98176eb173644c0d35032a33d6bb", size = 19943, upload-time = "2025-12-21T09:29:43.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/c4/813bb09f0985cb21e959f21f2464169eca882656849adf727ac7bb7e1767/jaraco_functools-4.4.0-py3-none-any.whl", hash = "sha256:9eec1e36f45c818d9bf307c8948eb03b2b56cd44087b3cdc989abca1f20b9176", size = 10481, upload-time = "2025-12-21T09:29:42.27Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, +] + [[package]] name = "jinja2" version = "3.1.6" @@ -1351,6 +1533,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, ] +[[package]] +name = "jsonschema-path" +version = "0.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/45/41ebc679c2a4fced6a722f624c18d658dee42612b83ea24c1caf7c0eb3a8/jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001", size = 11159, upload-time = "2025-01-24T14:33:16.547Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/58/3485da8cb93d2f393bce453adeef16896751f14ba3e2024bc21dc9597646/jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8", size = 14810, upload-time = "2025-01-24T14:33:14.652Z" }, +] + [[package]] name = "jsonschema-specifications" version = "2025.9.1" @@ -1378,6 +1575,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/82/07/e2f42a8ec3ff1935debbf2a5255570d22033fca3fe3180d5af99a6c9ee8c/keybert-0.9.0-py3-none-any.whl", hash = "sha256:afa2f300a72f69d279e4482bc85d8b34493b119876dc0818cb4f260466285b36", size = 41364, upload-time = "2025-02-07T08:45:08.093Z" }, ] +[[package]] +name = "keyring" +version = "25.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" }, +] + [[package]] name = "kiwisolver" version = "1.4.9" @@ -1517,6 +1731,47 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc", size = 12097, upload-time = "2024-04-05T13:03:10.514Z" }, ] +[[package]] +name = "lupa" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b8/1c/191c3e6ec6502e3dbe25a53e27f69a5daeac3e56de1f73c0138224171ead/lupa-2.6.tar.gz", hash = "sha256:9a770a6e89576be3447668d7ced312cd6fd41d3c13c2462c9dc2c2ab570e45d9", size = 7240282, upload-time = "2025-10-24T07:20:29.738Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/1d/21176b682ca5469001199d8b95fa1737e29957a3d185186e7a8b55345f2e/lupa-2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:663a6e58a0f60e7d212017d6678639ac8df0119bc13c2145029dcba084391310", size = 947232, upload-time = "2025-10-24T07:18:27.878Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4c/d327befb684660ca13cf79cd1f1d604331808f9f1b6fb6bf57832f8edf80/lupa-2.6-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:d1f5afda5c20b1f3217a80e9bc1b77037f8a6eb11612fd3ada19065303c8f380", size = 1908625, upload-time = "2025-10-24T07:18:29.944Z" }, + { url = "https://files.pythonhosted.org/packages/66/8e/ad22b0a19454dfd08662237a84c792d6d420d36b061f239e084f29d1a4f3/lupa-2.6-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:26f2b3c085fe76e9119e48c1013c1cccdc1f51585d456858290475aa38e7089e", size = 981057, upload-time = "2025-10-24T07:18:31.553Z" }, + { url = "https://files.pythonhosted.org/packages/5c/48/74859073ab276bd0566c719f9ca0108b0cfc1956ca0d68678d117d47d155/lupa-2.6-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:60d2f902c7b96fb8ab98493dcff315e7bb4d0b44dc9dd76eb37de575025d5685", size = 1156227, upload-time = "2025-10-24T07:18:33.981Z" }, + { url = "https://files.pythonhosted.org/packages/09/6c/0e9ded061916877253c2266074060eb71ed99fb21d73c8c114a76725bce2/lupa-2.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a02d25dee3a3250967c36590128d9220ae02f2eda166a24279da0b481519cbff", size = 1035752, upload-time = "2025-10-24T07:18:36.32Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ef/f8c32e454ef9f3fe909f6c7d57a39f950996c37a3deb7b391fec7903dab7/lupa-2.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6eae1ee16b886b8914ff292dbefbf2f48abfbdee94b33a88d1d5475e02423203", size = 2069009, upload-time = "2025-10-24T07:18:38.072Z" }, + { url = "https://files.pythonhosted.org/packages/53/dc/15b80c226a5225815a890ee1c11f07968e0aba7a852df41e8ae6fe285063/lupa-2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0edd5073a4ee74ab36f74fe61450148e6044f3952b8d21248581f3c5d1a58be", size = 1056301, upload-time = "2025-10-24T07:18:40.165Z" }, + { url = "https://files.pythonhosted.org/packages/31/14/2086c1425c985acfb30997a67e90c39457122df41324d3c179d6ee2292c6/lupa-2.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c53ee9f22a8a17e7d4266ad48e86f43771951797042dd51d1494aaa4f5f3f0a", size = 1170673, upload-time = "2025-10-24T07:18:42.426Z" }, + { url = "https://files.pythonhosted.org/packages/10/e5/b216c054cf86576c0191bf9a9f05de6f7e8e07164897d95eea0078dca9b2/lupa-2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:de7c0f157a9064a400d828789191a96da7f4ce889969a588b87ec80de9b14772", size = 2162227, upload-time = "2025-10-24T07:18:46.112Z" }, + { url = "https://files.pythonhosted.org/packages/59/2f/33ecb5bedf4f3bc297ceacb7f016ff951331d352f58e7e791589609ea306/lupa-2.6-cp313-cp313-win32.whl", hash = "sha256:ee9523941ae0a87b5b703417720c5d78f72d2f5bc23883a2ea80a949a3ed9e75", size = 1419558, upload-time = "2025-10-24T07:18:48.371Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b4/55e885834c847ea610e111d87b9ed4768f0afdaeebc00cd46810f25029f6/lupa-2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b1335a5835b0a25ebdbc75cf0bda195e54d133e4d994877ef025e218c2e59db9", size = 1683424, upload-time = "2025-10-24T07:18:50.976Z" }, + { url = "https://files.pythonhosted.org/packages/66/9d/d9427394e54d22a35d1139ef12e845fd700d4872a67a34db32516170b746/lupa-2.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcb6d0a3264873e1653bc188499f48c1fb4b41a779e315eba45256cfe7bc33c1", size = 953818, upload-time = "2025-10-24T07:18:53.378Z" }, + { url = "https://files.pythonhosted.org/packages/10/41/27bbe81953fb2f9ecfced5d9c99f85b37964cfaf6aa8453bb11283983721/lupa-2.6-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a37e01f2128f8c36106726cb9d360bac087d58c54b4522b033cc5691c584db18", size = 1915850, upload-time = "2025-10-24T07:18:55.259Z" }, + { url = "https://files.pythonhosted.org/packages/a3/98/f9ff60db84a75ba8725506bbf448fb085bc77868a021998ed2a66d920568/lupa-2.6-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:458bd7e9ff3c150b245b0fcfbb9bd2593d1152ea7f0a7b91c1d185846da033fe", size = 982344, upload-time = "2025-10-24T07:18:57.05Z" }, + { url = "https://files.pythonhosted.org/packages/41/f7/f39e0f1c055c3b887d86b404aaf0ca197b5edfd235a8b81b45b25bac7fc3/lupa-2.6-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:052ee82cac5206a02df77119c325339acbc09f5ce66967f66a2e12a0f3211cad", size = 1156543, upload-time = "2025-10-24T07:18:59.251Z" }, + { url = "https://files.pythonhosted.org/packages/9e/9c/59e6cffa0d672d662ae17bd7ac8ecd2c89c9449dee499e3eb13ca9cd10d9/lupa-2.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96594eca3c87dd07938009e95e591e43d554c1dbd0385be03c100367141db5a8", size = 1047974, upload-time = "2025-10-24T07:19:01.449Z" }, + { url = "https://files.pythonhosted.org/packages/23/c6/a04e9cef7c052717fcb28fb63b3824802488f688391895b618e39be0f684/lupa-2.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8faddd9d198688c8884091173a088a8e920ecc96cda2ffed576a23574c4b3f6", size = 2073458, upload-time = "2025-10-24T07:19:03.369Z" }, + { url = "https://files.pythonhosted.org/packages/e6/10/824173d10f38b51fc77785228f01411b6ca28826ce27404c7c912e0e442c/lupa-2.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:daebb3a6b58095c917e76ba727ab37b27477fb926957c825205fbda431552134", size = 1067683, upload-time = "2025-10-24T07:19:06.2Z" }, + { url = "https://files.pythonhosted.org/packages/b6/dc/9692fbcf3c924d9c4ece2d8d2f724451ac2e09af0bd2a782db1cef34e799/lupa-2.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f3154e68972befe0f81564e37d8142b5d5d79931a18309226a04ec92487d4ea3", size = 1171892, upload-time = "2025-10-24T07:19:08.544Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/e318b628d4643c278c96ab3ddea07fc36b075a57383c837f5b11e537ba9d/lupa-2.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e4dadf77b9fedc0bfa53417cc28dc2278a26d4cbd95c29f8927ad4d8fe0a7ef9", size = 2166641, upload-time = "2025-10-24T07:19:10.485Z" }, + { url = "https://files.pythonhosted.org/packages/12/f7/a6f9ec2806cf2d50826980cdb4b3cffc7691dc6f95e13cc728846d5cb793/lupa-2.6-cp314-cp314-win32.whl", hash = "sha256:cb34169c6fa3bab3e8ac58ca21b8a7102f6a94b6a5d08d3636312f3f02fafd8f", size = 1456857, upload-time = "2025-10-24T07:19:37.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/de/df71896f25bdc18360fdfa3b802cd7d57d7fede41a0e9724a4625b412c85/lupa-2.6-cp314-cp314-win_amd64.whl", hash = "sha256:b74f944fe46c421e25d0f8692aef1e842192f6f7f68034201382ac440ef9ea67", size = 1731191, upload-time = "2025-10-24T07:19:40.281Z" }, + { url = "https://files.pythonhosted.org/packages/47/3c/a1f23b01c54669465f5f4c4083107d496fbe6fb45998771420e9aadcf145/lupa-2.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0e21b716408a21ab65723f8841cf7f2f37a844b7a965eeabb785e27fca4099cf", size = 999343, upload-time = "2025-10-24T07:19:12.519Z" }, + { url = "https://files.pythonhosted.org/packages/c5/6d/501994291cb640bfa2ccf7f554be4e6914afa21c4026bd01bff9ca8aac57/lupa-2.6-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:589db872a141bfff828340079bbdf3e9a31f2689f4ca0d88f97d9e8c2eae6142", size = 2000730, upload-time = "2025-10-24T07:19:14.869Z" }, + { url = "https://files.pythonhosted.org/packages/53/a5/457ffb4f3f20469956c2d4c4842a7675e884efc895b2f23d126d23e126cc/lupa-2.6-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:cd852a91a4a9d4dcbb9a58100f820a75a425703ec3e3f049055f60b8533b7953", size = 1021553, upload-time = "2025-10-24T07:19:17.123Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/36bb5a5d0960f2a5c7c700e0819abb76fd9bf9c1d8a66e5106416d6e9b14/lupa-2.6-cp314-cp314t-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:0334753be028358922415ca97a64a3048e4ed155413fc4eaf87dd0a7e2752983", size = 1133275, upload-time = "2025-10-24T07:19:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/19/86/202ff4429f663013f37d2229f6176ca9f83678a50257d70f61a0a97281bf/lupa-2.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:661d895cd38c87658a34780fac54a690ec036ead743e41b74c3fb81a9e65a6aa", size = 1038441, upload-time = "2025-10-24T07:19:22.509Z" }, + { url = "https://files.pythonhosted.org/packages/a7/42/d8125f8e420714e5b52e9c08d88b5329dfb02dcca731b4f21faaee6cc5b5/lupa-2.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aa58454ccc13878cc177c62529a2056be734da16369e451987ff92784994ca7", size = 2058324, upload-time = "2025-10-24T07:19:24.979Z" }, + { url = "https://files.pythonhosted.org/packages/2b/2c/47bf8b84059876e877a339717ddb595a4a7b0e8740bacae78ba527562e1c/lupa-2.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1425017264e470c98022bba8cff5bd46d054a827f5df6b80274f9cc71dafd24f", size = 1060250, upload-time = "2025-10-24T07:19:27.262Z" }, + { url = "https://files.pythonhosted.org/packages/c2/06/d88add2b6406ca1bdec99d11a429222837ca6d03bea42ca75afa169a78cb/lupa-2.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:224af0532d216e3105f0a127410f12320f7c5f1aa0300bdf9646b8d9afb0048c", size = 1151126, upload-time = "2025-10-24T07:19:29.522Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/89e6a024c3b4485b89ef86881c9d55e097e7cb0bdb74efb746f2fa6a9a76/lupa-2.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9abb98d5a8fd27c8285302e82199f0e56e463066f88f619d6594a450bf269d80", size = 2153693, upload-time = "2025-10-24T07:19:31.379Z" }, + { url = "https://files.pythonhosted.org/packages/b6/36/a0f007dc58fc1bbf51fb85dcc82fcb1f21b8c4261361de7dab0e3d8521ef/lupa-2.6-cp314-cp314t-win32.whl", hash = "sha256:1849efeba7a8f6fb8aa2c13790bee988fd242ae404bd459509640eeea3d1e291", size = 1590104, upload-time = "2025-10-24T07:19:33.514Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5e/db903ce9cf82c48d6b91bf6d63ae4c8d0d17958939a4e04ba6b9f38b8643/lupa-2.6-cp314-cp314t-win_amd64.whl", hash = "sha256:fc1498d1a4fc028bc521c26d0fad4ca00ed63b952e32fb95949bda76a04bad52", size = 1913818, upload-time = "2025-10-24T07:19:36.039Z" }, +] + [[package]] name = "lxml" version = "6.0.2" @@ -1754,6 +2009,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/47/28/e8fbd8ccd705c4d33423696af90bf6e6256d4669d9a4c89a06aec4cce2f8/monarchmoney-0.1.15-py2.py3-none-any.whl", hash = "sha256:fab999b88d465f7f14cdc132d1dc3b7f7e2427ef738b9f4da5d5d4fc16effa5f", size = 19974, upload-time = "2025-01-29T17:10:09.922Z" }, ] +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, +] + [[package]] name = "mpmath" version = "1.3.0" @@ -2161,6 +2425,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/4b/7c1a00c2c3fbd004253937f7520f692a9650767aa73894d7a34f0d65d3f4/openai-2.14.0-py3-none-any.whl", hash = "sha256:7ea40aca4ffc4c4a776e77679021b47eec1160e341f42ae086ba949c9dcc9183", size = 1067558, upload-time = "2025-12-19T03:28:43.727Z" }, ] +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload-time = "2025-01-08T19:29:27.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" }, +] + [[package]] name = "opencv-python-headless" version = "4.11.0.86" @@ -2178,6 +2454,75 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/8a/69176a64335aed183529207ba8bc3d329c2999d852b4f3818027203f50e6/opencv_python_headless-4.11.0.86-cp37-abi3-win_amd64.whl", hash = "sha256:6c304df9caa7a6a5710b91709dd4786bf20a74d57672b3c31f7033cc638174ca", size = 39402386, upload-time = "2025-01-16T13:52:56.418Z" }, ] +[[package]] +name = "opentelemetry-api" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, +] + +[[package]] +name = "opentelemetry-exporter-prometheus" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "prometheus-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/14/39/7dafa6fff210737267bed35a8855b6ac7399b9e582b8cf1f25f842517012/opentelemetry_exporter_prometheus-0.60b1.tar.gz", hash = "sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b", size = 14976, upload-time = "2025-12-11T13:32:42.944Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/0d/4be6bf5477a3eb3d917d2f17d3c0b6720cd6cb97898444a61d43cc983f5c/opentelemetry_exporter_prometheus-0.60b1-py3-none-any.whl", hash = "sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd", size = 13019, upload-time = "2025-12-11T13:32:23.974Z" }, +] + +[[package]] +name = "opentelemetry-instrumentation" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "packaging" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706, upload-time = "2025-12-11T13:36:42.515Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096, upload-time = "2025-12-11T13:35:33.067Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, +] + [[package]] name = "packaging" version = "25.0" @@ -2236,6 +2581,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7c/50/11c9ee1ede64b45d687fd36eb8768dafc57afc78b4d83396920cfd69ed30/path-17.1.1-py3-none-any.whl", hash = "sha256:ec7e136df29172e5030dd07e037d55f676bdb29d15bfa09b80da29d07d3b9303", size = 23936, upload-time = "2025-07-27T20:40:22.453Z" }, ] +[[package]] +name = "pathable" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/93/8f2c2075b180c12c1e9f6a09d1a985bc2036906b13dff1d8917e395f2048/pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2", size = 8124, upload-time = "2025-01-10T18:43:13.247Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/eb/b6260b31b1a96386c0a880edebe26f89669098acea8e0318bff6adb378fd/pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2", size = 9592, upload-time = "2025-01-10T18:43:11.88Z" }, +] + +[[package]] +name = "pathvalidate" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262, upload-time = "2025-06-15T09:07:20.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" }, +] + [[package]] name = "pillow" version = "11.3.0" @@ -2291,6 +2654,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835, upload-time = "2025-07-01T09:15:50.399Z" }, ] +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + [[package]] name = "playa-pdf" version = "0.7.1" @@ -2371,6 +2743,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9d/0d/431bb85252119f5d2260417fa7d164619b31eed8f1725b364dc0ade43a8e/preshed-3.0.12-cp314-cp314t-win_arm64.whl", hash = "sha256:c0c0d3b66b4c1e40aa6042721492f7b07fc9679ab6c361bc121aa54a1c3ef63f", size = 114839, upload-time = "2025-11-17T13:00:19.513Z" }, ] +[[package]] +name = "prometheus-client" +version = "0.23.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" }, +] + [[package]] name = "propcache" version = "0.4.1" @@ -2482,6 +2863,47 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/26/65/1070a6e3c036f39142c2820c4b52e9243246fcfc3f96239ac84472ba361e/psutil-7.1.0-cp37-abi3-win_arm64.whl", hash = "sha256:6937cb68133e7c97b6cc9649a570c9a18ba0efebed46d8c5dae4c07fa1b67a07", size = 244971, upload-time = "2025-09-17T20:15:12.262Z" }, ] +[[package]] +name = "py-key-value-aio" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "py-key-value-shared" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/ce/3136b771dddf5ac905cc193b461eb67967cf3979688c6696e1f2cdcde7ea/py_key_value_aio-0.3.0.tar.gz", hash = "sha256:858e852fcf6d696d231266da66042d3355a7f9871650415feef9fca7a6cd4155", size = 50801, upload-time = "2025-11-17T16:50:04.711Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/10/72f6f213b8f0bce36eff21fda0a13271834e9eeff7f9609b01afdc253c79/py_key_value_aio-0.3.0-py3-none-any.whl", hash = "sha256:1c781915766078bfd608daa769fefb97e65d1d73746a3dfb640460e322071b64", size = 96342, upload-time = "2025-11-17T16:50:03.801Z" }, +] + +[package.optional-dependencies] +disk = [ + { name = "diskcache" }, + { name = "pathvalidate" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] +redis = [ + { name = "redis" }, +] + +[[package]] +name = "py-key-value-shared" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7b/e4/1971dfc4620a3a15b4579fe99e024f5edd6e0967a71154771a059daff4db/py_key_value_shared-0.3.0.tar.gz", hash = "sha256:8fdd786cf96c3e900102945f92aa1473138ebe960ef49da1c833790160c28a4b", size = 11666, upload-time = "2025-11-17T16:50:06.849Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/e4/b8b0a03ece72f47dce2307d36e1c34725b7223d209fc679315ffe6a4e2c3/py_key_value_shared-0.3.0-py3-none-any.whl", hash = "sha256:5b0efba7ebca08bb158b1e93afc2f07d30b8f40c2fc12ce24a4c0d84f42f9298", size = 19560, upload-time = "2025-11-17T16:50:05.954Z" }, +] + [[package]] name = "pyasn1" version = "0.6.1" @@ -2588,6 +3010,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235, upload-time = "2025-06-24T13:26:45.485Z" }, ] +[[package]] +name = "pydocket" +version = "0.16.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpickle" }, + { name = "fakeredis", extra = ["lua"] }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-prometheus" }, + { name = "opentelemetry-instrumentation" }, + { name = "prometheus-client" }, + { name = "py-key-value-aio", extra = ["memory", "redis"] }, + { name = "python-json-logger" }, + { name = "redis" }, + { name = "rich" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/ff/87e931e4abc7efb1e8c16adaa55327452931e8c5f460f2ba089447673226/pydocket-0.16.1.tar.gz", hash = "sha256:8663cb6dc801d8b8d703541fb665f4099c84f4d10d8f3fd441e208b080aa4826", size = 289028, upload-time = "2025-12-19T19:43:48.773Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/ab/0da7d0397112546309709f464bdf65de4e1697e3caba07556751fc4d8bcd/pydocket-0.16.1-py3-none-any.whl", hash = "sha256:bc6ccf7e91164761def854b4014101abf23c3cc2fb7d0fa2c4e07ea3bf6a1826", size = 63208, upload-time = "2025-12-19T19:43:47.309Z" }, +] + [[package]] name = "pygments" version = "2.19.2" @@ -2640,6 +3085,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/7a/097801205b991bc3115e8af1edb850d30aeaf0118520b016354cf5ccd3f6/pypdfium2-4.30.0-py3-none-win_arm64.whl", hash = "sha256:119b2969a6d6b1e8d55e99caaf05290294f2d0fe49c12a3f17102d01c441bd29", size = 2752118, upload-time = "2024-05-09T18:33:15.489Z" }, ] +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload-time = "2025-09-26T14:40:37.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload-time = "2025-09-26T14:40:36.069Z" }, +] + [[package]] name = "pytest" version = "8.4.2" @@ -2773,6 +3227,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" }, ] +[[package]] +name = "python-json-logger" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, +] + [[package]] name = "python-multipart" version = "0.0.20" @@ -2828,6 +3291,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, ] +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, +] + [[package]] name = "pyyaml" version = "6.0.2" @@ -2972,6 +3444,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, ] +[[package]] +name = "rich-rst" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/6d/a506aaa4a9eaa945ed8ab2b7347859f53593864289853c5d6d62b77246e0/rich_rst-1.3.2.tar.gz", hash = "sha256:a1196fdddf1e364b02ec68a05e8ff8f6914fee10fbca2e6b6735f166bb0da8d4", size = 14936, upload-time = "2025-10-14T16:49:45.332Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/2f/b4530fbf948867702d0a3f27de4a6aab1d156f406d72852ab902c4d04de9/rich_rst-1.3.2-py3-none-any.whl", hash = "sha256:a99b4907cbe118cf9d18b0b44de272efa61f15117c61e39ebdc431baf5df722a", size = 12567, upload-time = "2025-10-14T16:49:42.953Z" }, +] + [[package]] name = "rich-toolkit" version = "0.15.1" @@ -3236,6 +3721,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/64/47/a494741db7280eae6dc033510c319e34d42dd41b7ac0c7ead39354d1a2b5/scipy-1.16.3-cp314-cp314t-win_arm64.whl", hash = "sha256:21d9d6b197227a12dcbf9633320a4e34c6b0e51c57268df255a0942983bac562", size = 26464127, upload-time = "2025-10-28T17:38:11.34Z" }, ] +[[package]] +name = "secretstorage" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography", marker = "sys_platform != 'darwin'" }, + { name = "jeepney", marker = "sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload-time = "2025-11-23T19:02:51.545Z" }, +] + [[package]] name = "semantic-text-splitter" version = "0.28.0" @@ -3376,6 +3874,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, +] + [[package]] name = "spacy" version = "3.8.11" @@ -4078,3 +4585,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/48/b7/503c98092fb3b344a179579f55814b613c1fbb1c23b3ec14a7b008a66a6e/yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1", size = 85171, upload-time = "2025-10-06T14:12:16.935Z" }, { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, ] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +] From 3e768f1ed4ad587811dbdfbb4e2ee8a1507ff408 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 22 Dec 2025 02:11:42 -0500 Subject: [PATCH 52/78] feat: enable kiosk mode for multiple MCP servers, update host profile paths, and add a new 'all' preset. --- data/mcp_servers.json | 30 +++++++++---------- .../components/chat/McpServersModal.svelte | 7 +---- src/backend/data/clients/svelte/presets.json | 16 ++++++++++ 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/data/mcp_servers.json b/data/mcp_servers.json index fd3e3b1f..1c005b2d 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -3,7 +3,7 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], @@ -17,11 +17,11 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9002, "id": "housekeeping", @@ -31,7 +31,7 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], @@ -45,11 +45,11 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9005, "id": "custom-gmail", @@ -59,11 +59,11 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9006, "id": "custom-gdrive", @@ -73,11 +73,11 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9007, "id": "custom-pdf", @@ -87,11 +87,11 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9008, "id": "monarch-money", @@ -101,7 +101,7 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], @@ -122,7 +122,7 @@ "enabled": true, "env": { "HOST_PROFILE_ID": "xps13", - "HOST_ROOT_PATH": "/home/jack/gdrive/host_profiles" + "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" }, "http_port": 9001, "id": "shell-control", @@ -132,7 +132,7 @@ { "client_enabled": { "cli": true, - "kiosk": false, + "kiosk": true, "svelte": true }, "contexts": [], diff --git a/frontend/src/lib/components/chat/McpServersModal.svelte b/frontend/src/lib/components/chat/McpServersModal.svelte index 347c6185..91299bfb 100644 --- a/frontend/src/lib/components/chat/McpServersModal.svelte +++ b/frontend/src/lib/components/chat/McpServersModal.svelte @@ -29,12 +29,7 @@ { id: "xps13", label: "Dell XPS 13", - path: "/home/jack/gdrive/host_profiles", - }, - { - id: "ryzen-desktop", - label: "Ryzen Desktop", - path: "/home/human/gdrive/host_profiles", + path: "/home/human/GoogleDrive/host_profiles", }, ] as const; diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 2546a97b..5bfa81d9 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -47,6 +47,22 @@ "tts": null, "created_at": "2025-12-19T11:20:27.054736+00:00", "updated_at": "2025-12-19T11:20:27.054736+00:00" + }, + { + "name": "all", + "llm": { + "model": "openai/gpt-5.2", + "system_prompt": "You are a helpful assistant. yea", + "temperature": 0.7, + "max_tokens": 4096, + "supports_tools": true, + "conversation_mode": false, + "conversation_timeout_seconds": 10.0 + }, + "stt": null, + "tts": null, + "created_at": "2025-12-22T07:07:25.314294+00:00", + "updated_at": "2025-12-22T07:07:25.314294+00:00" } ], "active_index": 1 From bce97bd15fb62e0204ef1608804ddf1d878b1b24 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 22 Dec 2025 05:56:58 -0500 Subject: [PATCH 53/78] feat: Implement client profiles for dynamic MCP server selection and add CLI management --- data/client_profiles/cli-default.json | 16 + data/client_profiles/cli-minimal.json | 7 + data/client_profiles/kiosk.json | 11 + data/client_profiles/svelte.json | 16 + data/mcp_servers.json | 20 +- frontend-cli/shell_chat.py | 15 +- pyproject.toml | 4 +- scripts/__init__.py | 1 + scripts/mcp_profile.py | 278 +++++++++ scripts/start_mcp_servers.py | 268 +++++++++ src/backend/app.py | 8 + src/backend/chat/mcp_client.py | 48 +- src/backend/chat/mcp_registry.py | 54 +- src/backend/chat/orchestrator.py | 44 +- src/backend/data/clients/cli/presets.json | 4 +- src/backend/data/clients/kiosk/llm.json | 10 +- src/backend/routers/profiles.py | 132 +++++ src/backend/schemas/client_profiles.py | 98 ++++ src/backend/services/client_profiles.py | 178 ++++++ ...er-JKtmtRjt.js => ModelPicker-BltK9Rg4.js} | 2 +- ...-BL7jSOF3.js => WebSearchMenu-llg5iChw.js} | 2 +- src/backend/static/assets/index-7vMglLHL.css | 1 - src/backend/static/assets/index-Bervw8qS.js | 48 -- src/backend/static/assets/index-BibWzNNR.js | 509 ----------------- src/backend/static/assets/index-Bu0PDUl3.js | 528 ++++++++++++++++++ src/backend/static/assets/index-TxloFkvi.css | 1 - src/backend/static/assets/index-aV7IF0Eb.css | 1 + src/backend/static/index.html | 4 +- start.sh | 172 +++--- 29 files changed, 1801 insertions(+), 679 deletions(-) create mode 100644 data/client_profiles/cli-default.json create mode 100644 data/client_profiles/cli-minimal.json create mode 100644 data/client_profiles/kiosk.json create mode 100644 data/client_profiles/svelte.json create mode 100644 scripts/__init__.py create mode 100644 scripts/mcp_profile.py create mode 100644 scripts/start_mcp_servers.py create mode 100644 src/backend/routers/profiles.py create mode 100644 src/backend/schemas/client_profiles.py create mode 100644 src/backend/services/client_profiles.py rename src/backend/static/assets/{ModelPicker-JKtmtRjt.js => ModelPicker-BltK9Rg4.js} (95%) rename src/backend/static/assets/{WebSearchMenu-BL7jSOF3.js => WebSearchMenu-llg5iChw.js} (98%) delete mode 100644 src/backend/static/assets/index-7vMglLHL.css delete mode 100644 src/backend/static/assets/index-Bervw8qS.js delete mode 100644 src/backend/static/assets/index-BibWzNNR.js create mode 100644 src/backend/static/assets/index-Bu0PDUl3.js delete mode 100644 src/backend/static/assets/index-TxloFkvi.css create mode 100644 src/backend/static/assets/index-aV7IF0Eb.css diff --git a/data/client_profiles/cli-default.json b/data/client_profiles/cli-default.json new file mode 100644 index 00000000..ffb0c724 --- /dev/null +++ b/data/client_profiles/cli-default.json @@ -0,0 +1,16 @@ +{ + "description": "Default CLI profile with all servers enabled", + "enabled_servers": [ + "custom-calendar", + "custom-gdrive", + "custom-gmail", + "custom-pdf", + "housekeeping", + "local-calculator", + "monarch-money", + "notes", + "shell-control", + "spotify" + ], + "profile_id": "cli-default" +} diff --git a/data/client_profiles/cli-minimal.json b/data/client_profiles/cli-minimal.json new file mode 100644 index 00000000..863a2961 --- /dev/null +++ b/data/client_profiles/cli-minimal.json @@ -0,0 +1,7 @@ +{ + "description": "Minimal CLI profile with only shell control", + "enabled_servers": [ + "shell-control" + ], + "profile_id": "cli-minimal" +} diff --git a/data/client_profiles/kiosk.json b/data/client_profiles/kiosk.json new file mode 100644 index 00000000..ebec3db5 --- /dev/null +++ b/data/client_profiles/kiosk.json @@ -0,0 +1,11 @@ +{ + "description": "Kiosk profile for voice assistant", + "enabled_servers": [ + "custom-calendar", + "custom-gmail", + "housekeeping", + "notes", + "spotify" + ], + "profile_id": "kiosk" +} diff --git a/data/client_profiles/svelte.json b/data/client_profiles/svelte.json new file mode 100644 index 00000000..3653d3ec --- /dev/null +++ b/data/client_profiles/svelte.json @@ -0,0 +1,16 @@ +{ + "description": "Default Svelte frontend profile with all servers enabled", + "enabled_servers": [ + "custom-calendar", + "custom-gdrive", + "custom-gmail", + "custom-pdf", + "housekeeping", + "local-calculator", + "monarch-money", + "notes", + "shell-control", + "spotify" + ], + "profile_id": "svelte" +} diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 1c005b2d..62a7f593 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -7,7 +7,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9003, "id": "local-calculator", @@ -21,7 +21,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9002, "id": "housekeeping", @@ -35,7 +35,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9004, "id": "custom-calendar", @@ -49,7 +49,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9005, "id": "custom-gmail", @@ -63,7 +63,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9006, "id": "custom-gdrive", @@ -77,7 +77,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9007, "id": "custom-pdf", @@ -91,7 +91,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9008, "id": "monarch-money", @@ -105,7 +105,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9009, "id": "notes", @@ -119,7 +119,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": { "HOST_PROFILE_ID": "xps13", "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" @@ -136,7 +136,7 @@ "svelte": true }, "contexts": [], - "enabled": true, + "enabled": false, "env": {}, "http_port": 9010, "id": "spotify", diff --git a/frontend-cli/shell_chat.py b/frontend-cli/shell_chat.py index ed01fb32..cdcc7eb1 100644 --- a/frontend-cli/shell_chat.py +++ b/frontend-cli/shell_chat.py @@ -40,10 +40,11 @@ class ShellChat: CLIENT_ID = "cli" # Client identifier for settings isolation - def __init__(self, server_url: str, preset: Optional[str] = None): + def __init__(self, server_url: str, preset: Optional[str] = None, profile: Optional[str] = None): self.server_url = server_url.rstrip("/") self.client_api = f"{self.server_url}/api/clients/{self.CLIENT_ID}" self.preset = preset + self.profile = profile or os.environ.get("SHELL_CHAT_PROFILE", "cli-default") self.session_id: Optional[str] = None self.console = Console() self.running = True @@ -377,7 +378,10 @@ async def _stream_chat(self, message: str) -> None: """Send message and stream response via SSE.""" payload: dict[str, Any] = { "messages": [{"role": "user", "content": message}], - "metadata": {"client_id": self.CLIENT_ID}, + "metadata": { + "client_id": self.CLIENT_ID, + "profile_id": self.profile, + }, } if self.session_id: payload["session_id"] = self.session_id @@ -553,6 +557,11 @@ def main() -> None: default=None, help="Apply a preset on startup", ) + parser.add_argument( + "--profile", + default=os.environ.get("SHELL_CHAT_PROFILE"), + help="Client profile for MCP server filtering (default: cli-default or $SHELL_CHAT_PROFILE)", + ) args = parser.parse_args() @@ -565,7 +574,7 @@ def signal_handler(sig, frame): signal.signal(signal.SIGTERM, signal_handler) # Run the chat - chat = ShellChat(server_url=args.server, preset=args.preset) + chat = ShellChat(server_url=args.server, preset=args.preset, profile=args.profile) try: asyncio.run(chat.run()) except KeyboardInterrupt: diff --git a/pyproject.toml b/pyproject.toml index f2d58202..44f01a27 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,10 +41,12 @@ dependencies = [ [project.scripts] backend = "backend.main:main" shell-chat = "frontend_cli.shell_chat:main" +mcp-profile = "scripts.mcp_profile:main" [tool.setuptools] -packages = ["backend", "frontend_cli"] +packages = ["backend", "frontend_cli", "scripts"] [tool.setuptools.package-dir] "" = "src" frontend_cli = "frontend-cli" +scripts = "scripts" diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 00000000..c2f8452f --- /dev/null +++ b/scripts/__init__.py @@ -0,0 +1 @@ +"""Scripts package for CLI tools.""" diff --git a/scripts/mcp_profile.py b/scripts/mcp_profile.py new file mode 100644 index 00000000..6f97e147 --- /dev/null +++ b/scripts/mcp_profile.py @@ -0,0 +1,278 @@ +#!/usr/bin/env python3 +"""CLI tool for managing MCP client profiles. + +Usage: + mcp-profile list # List all profiles + mcp-profile show # Show profile details + mcp-profile create [--servers ...] # Create new profile + mcp-profile enable # Enable a server + mcp-profile disable # Disable a server + mcp-profile delete # Delete a profile + mcp-profile servers # List available MCP servers +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import sys +from pathlib import Path + +# Add src to path for imports +SCRIPT_DIR = Path(__file__).resolve().parent +PROJECT_ROOT = SCRIPT_DIR.parent +SRC_DIR = PROJECT_ROOT / "src" +sys.path.insert(0, str(SRC_DIR)) + +from backend.schemas.client_profiles import ClientProfile +from backend.services.client_profiles import ClientProfileService + +# Colors for terminal output +GREEN = "\033[0;32m" +RED = "\033[0;31m" +CYAN = "\033[0;36m" +YELLOW = "\033[1;33m" +BOLD = "\033[1m" +NC = "\033[0m" # No Color + + +def get_profiles_dir() -> Path: + """Return the client profiles directory.""" + return PROJECT_ROOT / "data" / "client_profiles" + + +def get_mcp_servers_path() -> Path: + """Return the MCP servers config path.""" + return PROJECT_ROOT / "data" / "mcp_servers.json" + + +def load_available_servers() -> list[str]: + """Load available MCP server IDs from config.""" + path = get_mcp_servers_path() + if not path.exists(): + return [] + + with open(path) as f: + data = json.load(f) + + servers = data.get("servers", data) if isinstance(data, dict) else data + return [s.get("id") for s in servers if s.get("id")] + + +async def cmd_list(args: argparse.Namespace) -> int: + """List all profiles.""" + service = ClientProfileService(get_profiles_dir()) + profiles = await service.list_profiles() + + if not profiles: + print(f"{YELLOW}No profiles found.{NC}") + print(f"Create one with: {CYAN}mcp-profile create {NC}") + return 0 + + print(f"\n{BOLD}Client Profiles{NC}\n") + for profile in profiles: + server_count = len(profile.enabled_servers) + print(f" {GREEN}●{NC} {BOLD}{profile.profile_id}{NC}") + if profile.description: + print(f" {profile.description}") + print(f" {CYAN}{server_count}{NC} server(s) enabled") + print() + + return 0 + + +async def cmd_show(args: argparse.Namespace) -> int: + """Show profile details.""" + service = ClientProfileService(get_profiles_dir()) + profile = await service.get_profile(args.profile_id) + + if profile is None: + print(f"{RED}Profile not found: {args.profile_id}{NC}") + return 1 + + print(f"\n{BOLD}Profile: {profile.profile_id}{NC}\n") + if profile.description: + print(f" Description: {profile.description}") + print(f"\n {BOLD}Enabled Servers:{NC}") + + if profile.enabled_servers: + for server in sorted(profile.enabled_servers): + print(f" {GREEN}✓{NC} {server}") + else: + print(f" {YELLOW}(none){NC}") + + # Show disabled servers for context + available = set(load_available_servers()) + disabled = available - set(profile.enabled_servers) + if disabled: + print(f"\n {BOLD}Disabled Servers:{NC}") + for server in sorted(disabled): + print(f" {RED}✗{NC} {server}") + + print() + return 0 + + +async def cmd_create(args: argparse.Namespace) -> int: + """Create a new profile.""" + service = ClientProfileService(get_profiles_dir()) + + # Check if already exists + existing = await service.get_profile(args.profile_id) + if existing is not None: + print(f"{RED}Profile already exists: {args.profile_id}{NC}") + return 1 + + servers = [] + if args.servers: + servers = [s.strip() for s in args.servers.split(",") if s.strip()] + + profile = ClientProfile( + profile_id=args.profile_id, + enabled_servers=servers, + description=args.description or "", + ) + + await service.create_profile(profile) + print(f"{GREEN}Created profile: {args.profile_id}{NC}") + + if servers: + print(f" Enabled servers: {', '.join(servers)}") + else: + print(f" {YELLOW}No servers enabled. Use 'mcp-profile enable' to add servers.{NC}") + + return 0 + + +async def cmd_enable(args: argparse.Namespace) -> int: + """Enable a server in a profile.""" + service = ClientProfileService(get_profiles_dir()) + + try: + profile = await service.add_server(args.profile_id, args.server_id) + print(f"{GREEN}Enabled {args.server_id} in profile {args.profile_id}{NC}") + print(f" Now enabled: {', '.join(sorted(profile.enabled_servers))}") + return 0 + except KeyError as e: + print(f"{RED}{e}{NC}") + return 1 + + +async def cmd_disable(args: argparse.Namespace) -> int: + """Disable a server in a profile.""" + service = ClientProfileService(get_profiles_dir()) + + try: + profile = await service.remove_server(args.profile_id, args.server_id) + print(f"{RED}Disabled {args.server_id} in profile {args.profile_id}{NC}") + if profile.enabled_servers: + print(f" Still enabled: {', '.join(sorted(profile.enabled_servers))}") + else: + print(f" {YELLOW}No servers enabled.{NC}") + return 0 + except KeyError as e: + print(f"{RED}{e}{NC}") + return 1 + + +async def cmd_delete(args: argparse.Namespace) -> int: + """Delete a profile.""" + service = ClientProfileService(get_profiles_dir()) + + deleted = await service.delete_profile(args.profile_id) + if deleted: + print(f"{GREEN}Deleted profile: {args.profile_id}{NC}") + return 0 + else: + print(f"{RED}Profile not found: {args.profile_id}{NC}") + return 1 + + +async def cmd_servers(args: argparse.Namespace) -> int: + """List available MCP servers.""" + servers = load_available_servers() + + if not servers: + print(f"{YELLOW}No MCP servers configured.{NC}") + return 0 + + print(f"\n{BOLD}Available MCP Servers{NC}\n") + for server in sorted(servers): + print(f" • {server}") + print() + + return 0 + + +def main() -> int: + parser = argparse.ArgumentParser( + description="Manage MCP client profiles", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +Examples: + %(prog)s list + %(prog)s show cli-default + %(prog)s create my-profile --servers shell-control,notes + %(prog)s enable my-profile spotify + %(prog)s disable my-profile gmail + %(prog)s delete my-profile + %(prog)s servers +""", + ) + + subparsers = parser.add_subparsers(dest="command", required=True) + + # list + subparsers.add_parser("list", help="List all profiles") + + # show + show_parser = subparsers.add_parser("show", help="Show profile details") + show_parser.add_argument("profile_id", help="Profile ID to show") + + # create + create_parser = subparsers.add_parser("create", help="Create a new profile") + create_parser.add_argument("profile_id", help="Profile ID to create") + create_parser.add_argument( + "--servers", "-s", + help="Comma-separated list of server IDs to enable", + ) + create_parser.add_argument( + "--description", "-d", + help="Profile description", + ) + + # enable + enable_parser = subparsers.add_parser("enable", help="Enable a server in a profile") + enable_parser.add_argument("profile_id", help="Profile ID") + enable_parser.add_argument("server_id", help="Server ID to enable") + + # disable + disable_parser = subparsers.add_parser("disable", help="Disable a server in a profile") + disable_parser.add_argument("profile_id", help="Profile ID") + disable_parser.add_argument("server_id", help="Server ID to disable") + + # delete + delete_parser = subparsers.add_parser("delete", help="Delete a profile") + delete_parser.add_argument("profile_id", help="Profile ID to delete") + + # servers + subparsers.add_parser("servers", help="List available MCP servers") + + args = parser.parse_args() + + commands = { + "list": cmd_list, + "show": cmd_show, + "create": cmd_create, + "enable": cmd_enable, + "disable": cmd_disable, + "delete": cmd_delete, + "servers": cmd_servers, + } + + return asyncio.run(commands[args.command](args)) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/start_mcp_servers.py b/scripts/start_mcp_servers.py new file mode 100644 index 00000000..17c90f92 --- /dev/null +++ b/scripts/start_mcp_servers.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python3 +"""Standalone MCP server launcher. + +Starts all enabled MCP servers from mcp_servers.json as independent HTTP services. +These servers can then be connected to by the backend or other clients. + +Usage: + python scripts/start_mcp_servers.py + python scripts/start_mcp_servers.py --servers shell-control,notes + python scripts/start_mcp_servers.py --config data/mcp_servers.json +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import os +import signal +import sys +from pathlib import Path +from typing import Any + +# Add src to path for imports +SCRIPT_DIR = Path(__file__).resolve().parent +PROJECT_ROOT = SCRIPT_DIR.parent +SRC_DIR = PROJECT_ROOT / "src" +sys.path.insert(0, str(SRC_DIR)) + +from dotenv import dotenv_values + + +def load_server_configs(config_path: Path) -> list[dict[str, Any]]: + """Load MCP server configurations from JSON file.""" + if not config_path.exists(): + print(f"Config file not found: {config_path}") + sys.exit(1) + + with open(config_path) as f: + data = json.load(f) + + if isinstance(data, dict): + return data.get("servers", []) + return data + + +def build_env() -> dict[str, str]: + """Build environment variables for MCP servers.""" + env = os.environ.copy() + dotenv_path = PROJECT_ROOT / ".env" + if dotenv_path.exists(): + for key, value in dotenv_values(dotenv_path).items(): + if key and value is not None: + env.setdefault(key, value) + + # Ensure PYTHONPATH includes src + pythonpath = env.get("PYTHONPATH", "") + src_str = str(SRC_DIR) + if src_str not in pythonpath.split(os.pathsep): + env["PYTHONPATH"] = os.pathsep.join(filter(None, [pythonpath, src_str])) + + # Disable FastMCP banner for cleaner output + env["FASTMCP_SHOW_CLI_BANNER"] = "false" + env["PYTHONUNBUFFERED"] = "1" + + return env + + +async def start_server( + server_id: str, + module: str, + port: int, + env: dict[str, str], + server_env: dict[str, str], +) -> asyncio.subprocess.Process | None: + """Start a single MCP server.""" + merged_env = {**env, **server_env} + + argv = [ + sys.executable, + "-m", + module, + "--transport", + "streamable-http", + "--host", + "127.0.0.1", + "--port", + str(port), + ] + + print(f" Starting {server_id} on :{port}...") + + try: + process = await asyncio.create_subprocess_exec( + *argv, + cwd=str(PROJECT_ROOT), + env=merged_env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + return process + except Exception as e: + print(f" ✗ Failed to start {server_id}: {e}") + return None + + +async def drain_output( + process: asyncio.subprocess.Process, + server_id: str, + verbose: bool = False, +) -> None: + """Drain stdout/stderr from a process.""" + async def drain_stream(stream: asyncio.StreamReader, label: str) -> None: + while True: + line = await stream.readline() + if not line: + break + text = line.decode(errors="replace").rstrip() + if verbose and text: + print(f"[{server_id}] {text}") + + tasks = [] + if process.stdout: + tasks.append(asyncio.create_task(drain_stream(process.stdout, "stdout"))) + if process.stderr: + tasks.append(asyncio.create_task(drain_stream(process.stderr, "stderr"))) + + if tasks: + await asyncio.gather(*tasks, return_exceptions=True) + + +async def wait_for_server(host: str, port: int, timeout: float = 10.0) -> bool: + """Wait for a server to accept connections.""" + deadline = asyncio.get_event_loop().time() + timeout + while asyncio.get_event_loop().time() < deadline: + try: + reader, writer = await asyncio.open_connection(host, port) + writer.close() + await writer.wait_closed() + return True + except OSError: + await asyncio.sleep(0.2) + return False + + +async def main() -> None: + parser = argparse.ArgumentParser( + description="Start MCP servers as independent HTTP services" + ) + parser.add_argument( + "--config", + type=Path, + default=PROJECT_ROOT / "data" / "mcp_servers.json", + help="Path to mcp_servers.json", + ) + parser.add_argument( + "--servers", + type=str, + default=None, + help="Comma-separated list of server IDs to start (default: all enabled)", + ) + parser.add_argument( + "--verbose", + action="store_true", + help="Show server output", + ) + args = parser.parse_args() + + configs = load_server_configs(args.config) + base_env = build_env() + + # Filter to requested servers + requested = None + if args.servers: + requested = set(s.strip() for s in args.servers.split(",")) + + servers_to_start = [] + for cfg in configs: + server_id = cfg.get("id") + if not server_id: + continue + if not cfg.get("enabled", True): + continue + if requested and server_id not in requested: + continue + if not cfg.get("module"): + continue # Skip non-module servers (remote URLs) + + servers_to_start.append(cfg) + + if not servers_to_start: + print("No servers to start.") + return + + print(f"\n{'='*50}") + print("MCP Server Pool") + print(f"{'='*50}\n") + print(f"Starting {len(servers_to_start)} MCP server(s)...\n") + + processes: dict[str, asyncio.subprocess.Process] = {} + drain_tasks: list[asyncio.Task] = [] + + for cfg in servers_to_start: + server_id = cfg["id"] + module = cfg["module"] + port = cfg.get("http_port", 9000) + server_env = cfg.get("env", {}) + + process = await start_server(server_id, module, port, base_env, server_env) + if process: + processes[server_id] = process + if args.verbose: + task = asyncio.create_task(drain_output(process, server_id, verbose=True)) + drain_tasks.append(task) + + # Wait for servers to be ready + print("\nWaiting for servers to be ready...") + for cfg in servers_to_start: + server_id = cfg["id"] + port = cfg.get("http_port", 9000) + if server_id in processes: + ready = await wait_for_server("127.0.0.1", port, timeout=15.0) + if ready: + print(f" ✓ {server_id} ready on http://127.0.0.1:{port}/mcp") + else: + print(f" ✗ {server_id} failed to start") + + print(f"\n{'='*50}") + print("All servers running. Press Ctrl+C to stop.") + print(f"{'='*50}\n") + + # Setup signal handlers + stop_event = asyncio.Event() + + def signal_handler() -> None: + print("\nShutting down servers...") + stop_event.set() + + loop = asyncio.get_running_loop() + for sig in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(sig, signal_handler) + + # Wait for shutdown signal + await stop_event.wait() + + # Terminate all processes + for server_id, proc in processes.items(): + if proc.returncode is None: + print(f" Stopping {server_id}...") + proc.terminate() + + # Wait for termination with timeout + for server_id, proc in processes.items(): + try: + await asyncio.wait_for(proc.wait(), timeout=3.0) + except asyncio.TimeoutError: + proc.kill() + await proc.wait() + + # Cancel drain tasks + for task in drain_tasks: + task.cancel() + + print("All servers stopped.") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/src/backend/app.py b/src/backend/app.py index 8522cb5f..11dcee17 100644 --- a/src/backend/app.py +++ b/src/backend/app.py @@ -27,9 +27,11 @@ from .services.attachments import AttachmentService from .services.attachments_cleanup import cleanup_expired_attachments from .mcp_servers import BUILTIN_MCP_SERVER_DEFINITIONS +from .services.client_profiles import ClientProfileService from .services.mcp_server_settings import MCPServerSettingsService from .services.model_settings import ModelSettingsService from .services.suggestions import SuggestionsService +from .routers.profiles import router as profiles_router @@ -138,6 +140,9 @@ def _resolve_under(base: Path, p: Path) -> Path: suggestions_service = SuggestionsService(suggestions_path) + profiles_path = _resolve_under(project_root, Path("data/client_profiles")) + client_profile_service = ClientProfileService(profiles_path) + orchestrator = ChatOrchestrator( settings, @@ -151,6 +156,7 @@ def _resolve_under(base: Path, p: Path) -> Path: retention_days=settings.attachments_retention_days, ) orchestrator.set_attachment_service(attachment_service) + orchestrator.set_profile_service(client_profile_service) cleanup_interval_hours = max(1, min(24, settings.attachments_retention_days or 1)) cleanup_interval_seconds = cleanup_interval_hours * 3600 @@ -226,6 +232,7 @@ async def lifespan(app: FastAPI): app.state.mcp_server_settings_service = mcp_settings_service app.state.attachment_service = attachment_service app.state.suggestions_service = suggestions_service + app.state.client_profile_service = client_profile_service app.add_middleware( CORSMiddleware, @@ -239,6 +246,7 @@ async def lifespan(app: FastAPI): app.include_router(mcp_router) app.include_router(stt_router) app.include_router(clients_router) + app.include_router(profiles_router) # helper for voice assistant imports to avoid circular deps if any, # though here it should be fine. diff --git a/src/backend/chat/mcp_client.py b/src/backend/chat/mcp_client.py index 3482a2b9..dd300d2d 100644 --- a/src/backend/chat/mcp_client.py +++ b/src/backend/chat/mcp_client.py @@ -42,7 +42,21 @@ def __init__( server_id: str | None = None, cwd: Path | None = None, env: dict[str, str] | None = None, + connect_only: bool = False, ): + """Initialize an MCP tool client. + + Args: + server_module: Python module to launch via `python -m`. + command: Explicit command to execute for the server. + http_url: Full HTTP URL for remote/already-running MCP server. + http_port: Local port (implies http://127.0.0.1:{port}/mcp). + server_id: Identifier for this server. + cwd: Working directory for launched process. + env: Environment variables for launched process. + connect_only: If True, don't launch a process - just connect to + an already-running server at http_url or http_port. + """ if http_url is not None and http_port is not None: # pragma: no cover - defensive raise ValueError("Provide only one of 'http_url' or 'http_port'") @@ -66,8 +80,16 @@ def __init__( self._http_url = resolved_http_url self._http_port = http_port - self._server_module = server_module - self._launch_command = launch_command + self._connect_only = connect_only + + # When connect_only, we don't need module/command - just the URL + if connect_only: + self._server_module = None + self._launch_command = None + else: + self._server_module = server_module + self._launch_command = launch_command + self._server_id = server_id or ( server_module or (launch_command[0] if launch_command else self._http_url) @@ -103,6 +125,11 @@ def http_url(self) -> str | None: """Return the HTTP URL if this is an HTTP server, None otherwise.""" return self._http_url + @property + def connect_only(self) -> bool: + """Return True if this client connects to an already-running server.""" + return self._connect_only + def _record_process_log(self, label: str, line: str) -> None: entry = f"[{label}] {line}" self._process_log.append(entry) @@ -279,11 +306,18 @@ async def _shutdown_process() -> None: from mcp.client.streamable_http import streamablehttp_client - logger.info( - "Connecting to HTTP MCP server at %s (id=%s)", - self._http_url, - self._server_id, - ) + if self._connect_only: + logger.info( + "Connecting to already-running MCP server at %s (id=%s, connect_only=True)", + self._http_url, + self._server_id, + ) + else: + logger.info( + "Connecting to HTTP MCP server at %s (id=%s)", + self._http_url, + self._server_id, + ) if self._process is not None and self._http_port is not None: await self._wait_for_port("127.0.0.1", self._http_port) diff --git a/src/backend/chat/mcp_registry.py b/src/backend/chat/mcp_registry.py index 30655d6a..39e76d5e 100644 --- a/src/backend/chat/mcp_registry.py +++ b/src/backend/chat/mcp_registry.py @@ -881,6 +881,19 @@ def describe_servers(self) -> list[dict[str, Any]]: ) return details + async def _is_server_running(self, host: str, port: int) -> bool: + """Check if a server is already accepting connections on the given port.""" + try: + reader, writer = await asyncio.wait_for( + asyncio.open_connection(host, port), + timeout=0.5, + ) + writer.close() + await writer.wait_closed() + return True + except (OSError, asyncio.TimeoutError): + return False + async def _launch_server(self, config: MCPServerConfig) -> None: env = self._base_env.copy() env.update(config.env) @@ -888,19 +901,46 @@ async def _launch_server(self, config: MCPServerConfig) -> None: try: if config.http_url is not None: + # Remote server - always connect_only client = MCPToolClient( http_url=config.http_url, server_id=config.id, + connect_only=True, ) + elif config.http_port is not None: + # Check if server is already running on this port + already_running = await self._is_server_running( + "127.0.0.1", config.http_port + ) + + if already_running: + logger.info( + "MCP server '%s' already running on port %d, connecting...", + config.id, + config.http_port, + ) + client = MCPToolClient( + http_port=config.http_port, + server_id=config.id, + connect_only=True, + ) + else: + # Launch the server ourselves + client = MCPToolClient( + server_module=config.module, + command=config.command, + http_port=config.http_port, + server_id=config.id, + cwd=cwd, + env=env, + ) else: - client = MCPToolClient( - server_module=config.module, - command=config.command, - http_port=config.http_port, - server_id=config.id, - cwd=cwd, - env=env, + logger.warning( + "MCP server '%s' has no http_url or http_port configured", + config.id, ) + return + await client.connect() except Exception: logger.exception("Failed to start MCP server '%s'", config.id) diff --git a/src/backend/chat/orchestrator.py b/src/backend/chat/orchestrator.py index 0b23cde4..50cfa803 100644 --- a/src/backend/chat/orchestrator.py +++ b/src/backend/chat/orchestrator.py @@ -33,6 +33,7 @@ if TYPE_CHECKING: from ..config import Settings from ..services.attachments import AttachmentService + from ..services.client_profiles import ClientProfileService logger = logging.getLogger(__name__) @@ -131,6 +132,11 @@ def __init__( self._settings = settings self._init_lock = asyncio.Lock() self._ready = asyncio.Event() + self._profile_service: ClientProfileService | None = None + + def set_profile_service(self, service: "ClientProfileService | None") -> None: + """Inject the profile service after application startup wiring.""" + self._profile_service = service async def initialize(self) -> None: """Initialize database and MCP client once.""" @@ -315,11 +321,35 @@ async def process_stream( ) tools_payload = self._mcp_client.get_openai_tools() - # Filter tools based on session type and server config - configs = await self._mcp_settings.get_configs() + # Determine allowed servers based on profile or client_enabled + profile_id: str | None = None + if request_metadata: + profile_candidate = request_metadata.get("profile_id") + if isinstance(profile_candidate, str) and profile_candidate.strip(): + profile_id = profile_candidate.strip() + + allowed_servers: set[str] = set() + + if profile_id and self._profile_service: + # Use profile-based filtering + profile = await self._profile_service.get_profile(profile_id) + if profile is not None: + allowed_servers = set(profile.enabled_servers) + logger.info( + "Using profile '%s' with %d enabled servers", + profile_id, + len(allowed_servers), + ) + else: + logger.warning( + "Profile '%s' not found, falling back to client_enabled", + profile_id, + ) - # Filter by client-specific enabled state - allowed_servers = {cfg.id for cfg in configs if cfg.is_enabled_for_client(client_id)} + if not allowed_servers: + # Fallback to legacy client_enabled filtering + configs = await self._mcp_settings.get_configs() + allowed_servers = {cfg.id for cfg in configs if cfg.is_enabled_for_client(client_id)} filtered_tools = [] for tool in tools_payload: @@ -330,9 +360,11 @@ async def process_stream( if server_match: filtered_tools.append(tool) + filter_source = f"profile:{profile_id}" if profile_id else f"client:{client_id}" logger.info( - "%s session %s: filtered tools from %d to %d (allowed servers: %s)", - client_id, session_id, len(tools_payload), len(filtered_tools), list(allowed_servers) + "%s session %s: filtered tools from %d to %d (source=%s, servers=%s)", + client_id, session_id, len(tools_payload), len(filtered_tools), + filter_source, list(allowed_servers) ) tools_payload = filtered_tools diff --git a/src/backend/data/clients/cli/presets.json b/src/backend/data/clients/cli/presets.json index bdeff206..9ddd7c28 100644 --- a/src/backend/data/clients/cli/presets.json +++ b/src/backend/data/clients/cli/presets.json @@ -13,8 +13,8 @@ }, "stt": null, "tts": null, - "created_at": "2025-12-20T05:37:23.178482+00:00", - "updated_at": "2025-12-20T05:37:23.178482+00:00" + "created_at": "2025-12-22T10:50:42.292468+00:00", + "updated_at": "2025-12-22T10:50:42.292468+00:00" } ], "active_index": 0 diff --git a/src/backend/data/clients/kiosk/llm.json b/src/backend/data/clients/kiosk/llm.json index e2001d05..e247e966 100644 --- a/src/backend/data/clients/kiosk/llm.json +++ b/src/backend/data/clients/kiosk/llm.json @@ -1,9 +1,9 @@ { - "model": "openai/gpt-5.2", - "system_prompt": "You are a helpful voice assistant. Provide thorough, comprehensive answers.", - "temperature": 0.7, - "max_tokens": 800, + "model": "openai/gpt-4o-mini", + "system_prompt": null, + "temperature": 1.3, + "max_tokens": 500, "supports_tools": null, - "conversation_mode": true, + "conversation_mode": false, "conversation_timeout_seconds": 10.0 } \ No newline at end of file diff --git a/src/backend/routers/profiles.py b/src/backend/routers/profiles.py new file mode 100644 index 00000000..ea905bdc --- /dev/null +++ b/src/backend/routers/profiles.py @@ -0,0 +1,132 @@ +"""API router for client profile management.""" + +from __future__ import annotations + +from typing import Annotated + +from fastapi import APIRouter, Depends, HTTPException, Request, status + +from ..schemas.client_profiles import ( + ClientProfile, + ClientProfileCreate, + ClientProfileList, + ClientProfileUpdate, +) +from ..services.client_profiles import ClientProfileService + +router = APIRouter(prefix="/api/profiles", tags=["profiles"]) + + +def get_profile_service(request: Request) -> ClientProfileService: + """Dependency to get the profile service from app state.""" + service = getattr(request.app.state, "client_profile_service", None) + if service is None: + raise HTTPException( + status_code=status.HTTP_503_SERVICE_UNAVAILABLE, + detail="Profile service not initialized", + ) + return service + + +ProfileServiceDep = Annotated[ClientProfileService, Depends(get_profile_service)] + + +@router.get("/", response_model=ClientProfileList) +async def list_profiles(service: ProfileServiceDep) -> ClientProfileList: + """List all client profiles.""" + profiles = await service.list_profiles() + return ClientProfileList(profiles=profiles) + + +@router.get("/{profile_id}", response_model=ClientProfile) +async def get_profile(profile_id: str, service: ProfileServiceDep) -> ClientProfile: + """Get a specific profile by ID.""" + profile = await service.get_profile(profile_id) + if profile is None: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=f"Profile not found: {profile_id}", + ) + return profile + + +@router.post("/", response_model=ClientProfile, status_code=status.HTTP_201_CREATED) +async def create_profile( + body: ClientProfileCreate, + service: ProfileServiceDep, +) -> ClientProfile: + """Create a new client profile.""" + profile = ClientProfile( + profile_id=body.profile_id, + enabled_servers=body.enabled_servers, + description=body.description, + ) + try: + return await service.create_profile(profile) + except KeyError as exc: + raise HTTPException( + status_code=status.HTTP_409_CONFLICT, + detail=str(exc), + ) from exc + + +@router.patch("/{profile_id}", response_model=ClientProfile) +async def update_profile( + profile_id: str, + body: ClientProfileUpdate, + service: ProfileServiceDep, +) -> ClientProfile: + """Update an existing profile.""" + try: + return await service.update_profile(profile_id, body) + except KeyError as exc: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=str(exc), + ) from exc + + +@router.delete("/{profile_id}", status_code=status.HTTP_204_NO_CONTENT) +async def delete_profile(profile_id: str, service: ProfileServiceDep): + """Delete a profile.""" + deleted = await service.delete_profile(profile_id) + if not deleted: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=f"Profile not found: {profile_id}", + ) + + +@router.post("/{profile_id}/servers/{server_id}", response_model=ClientProfile) +async def add_server_to_profile( + profile_id: str, + server_id: str, + service: ProfileServiceDep, +) -> ClientProfile: + """Add a server to a profile's enabled list.""" + try: + return await service.add_server(profile_id, server_id) + except KeyError as exc: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=str(exc), + ) from exc + + +@router.delete("/{profile_id}/servers/{server_id}", response_model=ClientProfile) +async def remove_server_from_profile( + profile_id: str, + server_id: str, + service: ProfileServiceDep, +) -> ClientProfile: + """Remove a server from a profile's enabled list.""" + try: + return await service.remove_server(profile_id, server_id) + except KeyError as exc: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail=str(exc), + ) from exc + + +__all__ = ["router"] diff --git a/src/backend/schemas/client_profiles.py b/src/backend/schemas/client_profiles.py new file mode 100644 index 00000000..3906bb29 --- /dev/null +++ b/src/backend/schemas/client_profiles.py @@ -0,0 +1,98 @@ +"""Schemas for client profiles defining which MCP servers to use.""" + +from __future__ import annotations + +from typing import Annotated + +from pydantic import BaseModel, ConfigDict, Field, field_validator + + +class ClientProfile(BaseModel): + """A client profile defining which MCP servers to use.""" + + model_config = ConfigDict(extra="forbid") + + profile_id: Annotated[ + str, + Field( + ..., + min_length=1, + pattern=r"^[a-z0-9_-]+$", + description="Unique identifier for the profile (lowercase, alphanumeric, -, _)", + ), + ] + enabled_servers: list[str] = Field( + default_factory=list, + description="List of MCP server IDs that are enabled for this profile", + ) + description: str = Field( + default="", + description="Human-readable description of the profile's purpose", + ) + + @field_validator("enabled_servers", mode="before") + @classmethod + def _normalize_enabled_servers(cls, value: list[str] | None) -> list[str]: + if value is None: + return [] + # Deduplicate while preserving order + seen: set[str] = set() + unique: list[str] = [] + for item in value: + if isinstance(item, str) and item not in seen: + seen.add(item) + unique.append(item) + return unique + + +class ClientProfileList(BaseModel): + """Response model for listing all profiles.""" + + profiles: list[ClientProfile] = Field(default_factory=list) + + +class ClientProfileUpdate(BaseModel): + """Request model for updating a profile.""" + + model_config = ConfigDict(extra="forbid") + + enabled_servers: list[str] | None = Field( + default=None, + description="New list of enabled server IDs (replaces existing)", + ) + description: str | None = Field( + default=None, + description="New description", + ) + + +class ClientProfileCreate(BaseModel): + """Request model for creating a new profile.""" + + model_config = ConfigDict(extra="forbid") + + profile_id: Annotated[ + str, + Field( + ..., + min_length=1, + pattern=r"^[a-z0-9_-]+$", + description="Unique identifier for the profile", + ), + ] + enabled_servers: list[str] = Field( + default_factory=list, + description="List of MCP server IDs to enable", + ) + description: str = Field( + default="", + description="Human-readable description", + ) + + +__all__ = [ + "ClientProfile", + "ClientProfileList", + "ClientProfileUpdate", + "ClientProfileCreate", +] diff --git a/src/backend/services/client_profiles.py b/src/backend/services/client_profiles.py new file mode 100644 index 00000000..89c6a730 --- /dev/null +++ b/src/backend/services/client_profiles.py @@ -0,0 +1,178 @@ +"""Service for managing client profiles for MCP server filtering.""" + +from __future__ import annotations + +import asyncio +import json +import logging +from pathlib import Path +from typing import Sequence + +from ..schemas.client_profiles import ClientProfile, ClientProfileUpdate + +logger = logging.getLogger(__name__) + + +class ClientProfileService: + """Manage client profiles for MCP server filtering. + + Profiles are stored as individual JSON files in a directory, + one file per profile (e.g., `cli-default.json`). + """ + + def __init__(self, profiles_dir: Path) -> None: + self._dir = profiles_dir + self._dir.mkdir(parents=True, exist_ok=True) + self._lock = asyncio.Lock() + self._cache: dict[str, ClientProfile] = {} + self._load_all() + + def _profile_path(self, profile_id: str) -> Path: + """Return the file path for a profile.""" + return self._dir / f"{profile_id}.json" + + def _load_all(self) -> None: + """Load all profiles from disk into cache.""" + self._cache.clear() + for path in self._dir.glob("*.json"): + try: + data = json.loads(path.read_text(encoding="utf-8")) + profile = ClientProfile.model_validate(data) + self._cache[profile.profile_id] = profile + except Exception as exc: + logger.warning("Failed to load profile from %s: %s", path, exc) + + def _save_profile(self, profile: ClientProfile) -> None: + """Save a profile to disk.""" + path = self._profile_path(profile.profile_id) + data = profile.model_dump(mode="json") + path.write_text( + json.dumps(data, indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + + async def list_profiles(self) -> list[ClientProfile]: + """Return all profiles sorted by ID.""" + async with self._lock: + return sorted(self._cache.values(), key=lambda p: p.profile_id) + + async def get_profile(self, profile_id: str) -> ClientProfile | None: + """Get a profile by ID, or None if not found.""" + async with self._lock: + return self._cache.get(profile_id) + + async def get_profile_or_default( + self, + profile_id: str, + default_servers: Sequence[str] | None = None, + ) -> ClientProfile: + """Get a profile by ID, creating a default if not found.""" + async with self._lock: + profile = self._cache.get(profile_id) + if profile is not None: + return profile + + # Create a default profile + profile = ClientProfile( + profile_id=profile_id, + enabled_servers=list(default_servers or []), + description=f"Auto-created profile for {profile_id}", + ) + self._cache[profile_id] = profile + self._save_profile(profile) + logger.info("Created default profile '%s'", profile_id) + return profile + + async def create_profile(self, profile: ClientProfile) -> ClientProfile: + """Create a new profile. Raises KeyError if already exists.""" + async with self._lock: + if profile.profile_id in self._cache: + raise KeyError(f"Profile already exists: {profile.profile_id}") + + self._cache[profile.profile_id] = profile + self._save_profile(profile) + logger.info("Created profile '%s'", profile.profile_id) + return profile + + async def update_profile( + self, + profile_id: str, + updates: ClientProfileUpdate, + ) -> ClientProfile: + """Update an existing profile. Raises KeyError if not found.""" + async with self._lock: + existing = self._cache.get(profile_id) + if existing is None: + raise KeyError(f"Profile not found: {profile_id}") + + data = existing.model_dump() + update_data = updates.model_dump(exclude_none=True) + data.update(update_data) + + updated = ClientProfile.model_validate(data) + self._cache[profile_id] = updated + self._save_profile(updated) + logger.info("Updated profile '%s'", profile_id) + return updated + + async def delete_profile(self, profile_id: str) -> bool: + """Delete a profile. Returns True if deleted, False if not found.""" + async with self._lock: + if profile_id not in self._cache: + return False + + del self._cache[profile_id] + path = self._profile_path(profile_id) + if path.exists(): + path.unlink() + logger.info("Deleted profile '%s'", profile_id) + return True + + async def add_server(self, profile_id: str, server_id: str) -> ClientProfile: + """Add a server to a profile's enabled list.""" + async with self._lock: + existing = self._cache.get(profile_id) + if existing is None: + raise KeyError(f"Profile not found: {profile_id}") + + if server_id in existing.enabled_servers: + return existing # Already enabled + + updated = ClientProfile( + profile_id=profile_id, + enabled_servers=[*existing.enabled_servers, server_id], + description=existing.description, + ) + self._cache[profile_id] = updated + self._save_profile(updated) + logger.info("Added server '%s' to profile '%s'", server_id, profile_id) + return updated + + async def remove_server(self, profile_id: str, server_id: str) -> ClientProfile: + """Remove a server from a profile's enabled list.""" + async with self._lock: + existing = self._cache.get(profile_id) + if existing is None: + raise KeyError(f"Profile not found: {profile_id}") + + if server_id not in existing.enabled_servers: + return existing # Not in list + + updated = ClientProfile( + profile_id=profile_id, + enabled_servers=[s for s in existing.enabled_servers if s != server_id], + description=existing.description, + ) + self._cache[profile_id] = updated + self._save_profile(updated) + logger.info("Removed server '%s' from profile '%s'", server_id, profile_id) + return updated + + async def reload(self) -> None: + """Reload all profiles from disk.""" + async with self._lock: + self._load_all() + logger.info("Reloaded %d profile(s)", len(self._cache)) + + +__all__ = ["ClientProfileService"] diff --git a/src/backend/static/assets/ModelPicker-JKtmtRjt.js b/src/backend/static/assets/ModelPicker-BltK9Rg4.js similarity index 95% rename from src/backend/static/assets/ModelPicker-JKtmtRjt.js rename to src/backend/static/assets/ModelPicker-BltK9Rg4.js index d6ba09ca..6843b134 100644 --- a/src/backend/static/assets/ModelPicker-JKtmtRjt.js +++ b/src/backend/static/assets/ModelPicker-BltK9Rg4.js @@ -1 +1 @@ -import{p as O,c as Q,a as u,i as R,f as v,t as g,b as E,e as S,d as T,g as a,h as U,j as h,k as V,l as F,m as L,s as D,n as W,u as b,o as X,q as l}from"./index-BibWzNNR.js";var Y=v(""),Z=v(""),$=v(""),ee=v(""),ae=v('
                  ');function oe(N,n){O(n,!1);const P=Q();let _=u(n,"selectableModels",24,()=>[]),C=u(n,"selectedModel",12,""),M=u(n,"modelsLoading",8,!1),d=u(n,"modelsError",8,null);function w(e){const t=e.target;t&&P("modelChange",{id:t.value})}R();var j=ae(),c=h(j);g(()=>{C(),V(()=>{M(),d(),_()})});var y=h(c);{var z=e=>{var t=Y();a(e,t)},A=e=>{var t=F(),B=L(t);{var G=s=>{var i=Z(),k=h(i),f={};g(()=>{D(k,`Failed to load models — ${d()}`),f!==(f=`Failed to load models — ${d()}`)&&(i.__value=`Failed to load models — ${d()}`)}),a(s,i)},H=s=>{var i=F(),k=L(i);{var f=r=>{var p=$();a(r,p)},I=r=>{var p=F(),J=L(p);X(J,1,_,x=>x.id,(x,o)=>{var m=ee(),K=h(m),q={};g(()=>{D(K,(l(o),b(()=>l(o).name??l(o).id))),q!==(q=(l(o),b(()=>l(o).id)))&&(m.value=(m.__value=(l(o),b(()=>l(o).id)))??"")}),a(x,m)}),a(r,p)};E(k,r=>{W(_()),b(()=>!_().length)?r(f):r(I,!1)},!0)}a(s,i)};E(B,s=>{d()?s(G):s(H,!1)},!0)}a(e,t)};E(y,e=>{M()?e(z):e(A,!1)})}g(()=>c.disabled=M()),S("change",c,w),T(c,C),a(N,j),U()}export{oe as default}; +import{p as O,c as Q,a as u,i as R,f as v,t as g,b as E,e as S,d as T,g as a,h as U,j as h,k as V,l as F,m as L,s as D,n as W,u as b,o as X,q as l}from"./index-Bu0PDUl3.js";var Y=v(""),Z=v(""),$=v(""),ee=v(""),ae=v('
                  ');function oe(N,n){O(n,!1);const P=Q();let _=u(n,"selectableModels",24,()=>[]),C=u(n,"selectedModel",12,""),M=u(n,"modelsLoading",8,!1),d=u(n,"modelsError",8,null);function w(e){const t=e.target;t&&P("modelChange",{id:t.value})}R();var j=ae(),c=h(j);g(()=>{C(),V(()=>{M(),d(),_()})});var y=h(c);{var z=e=>{var t=Y();a(e,t)},A=e=>{var t=F(),B=L(t);{var G=s=>{var i=Z(),k=h(i),f={};g(()=>{D(k,`Failed to load models — ${d()}`),f!==(f=`Failed to load models — ${d()}`)&&(i.__value=`Failed to load models — ${d()}`)}),a(s,i)},H=s=>{var i=F(),k=L(i);{var f=r=>{var p=$();a(r,p)},I=r=>{var p=F(),J=L(p);X(J,1,_,x=>x.id,(x,o)=>{var m=ee(),K=h(m),q={};g(()=>{D(K,(l(o),b(()=>l(o).name??l(o).id))),q!==(q=(l(o),b(()=>l(o).id)))&&(m.value=(m.__value=(l(o),b(()=>l(o).id)))??"")}),a(x,m)}),a(r,p)};E(k,r=>{W(_()),b(()=>!_().length)?r(f):r(I,!1)},!0)}a(s,i)};E(B,s=>{d()?s(G):s(H,!1)},!0)}a(e,t)};E(y,e=>{M()?e(z):e(A,!1)})}g(()=>c.disabled=M()),S("change",c,w),T(c,C),a(N,j),U()}export{oe as default}; diff --git a/src/backend/static/assets/WebSearchMenu-BL7jSOF3.js b/src/backend/static/assets/WebSearchMenu-llg5iChw.js similarity index 98% rename from src/backend/static/assets/WebSearchMenu-BL7jSOF3.js rename to src/backend/static/assets/WebSearchMenu-llg5iChw.js index 6cb9ba1d..beaf1e5c 100644 --- a/src/backend/static/assets/WebSearchMenu-BL7jSOF3.js +++ b/src/backend/static/assets/WebSearchMenu-llg5iChw.js @@ -1 +1 @@ -import{p as be,r as fe,v as ke,w as J,x as me,q as n,y as _e,i as he,f as Z,z as P,j as c,b as ge,t as Q,e as l,g as U,h as xe,A as we,B as ye,C as w,D as b,E as o,u as s,F as y,s as Ee,G as V,H as X,I as Y}from"./index-BibWzNNR.js";var Se=Z(``),Me=Z('');function De(ee,te){be(te,!1);const e=()=>me(u,"$webSearch",ae),[ae,ne]=we(),u=ye;let r=w(!1),k=null,T=w(!1),m=w(null),E=w(null),S=w(null);function f(){k&&(clearTimeout(k),k=null)}function R(a=!1){f(),!(!a&&!u.current.enabled)&&(b(r,!0),queueMicrotask(()=>{n(m)?.querySelector('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')?.focus()}))}function W(){f(),k=setTimeout(()=>{n(r)&&(b(r,!1),k=null)},250)}function _(){f(),n(r)&&(b(r,!1),n(E)?.focus())}function q(){u.current.enabled&&R()}function se(){u.current.enabled?(u.setEnabled(!1),_()):(u.setEnabled(!0),R(!0))}function le(a){const t=a.currentTarget.value;u.update({engine:t==="native"||t==="exa"?t:null})}function oe(a){const t=a.currentTarget.value;u.update({contextSize:t==="low"||t==="medium"||t==="high"?t:null})}function I(a){const t=a.currentTarget;if(t.value===""){u.update({maxResults:null});return}let i=Math.trunc(Number(t.value));Number.isFinite(i)&&(i<1&&(i=1),i>25&&(i=25),u.update({maxResults:i}))}function re(a){const t=a.currentTarget.value;u.update({searchPrompt:t})}function ue(a){const t=a.relatedTarget;n(S)&&t&&n(S).contains(t)||_()}function N(a){if(a.key==="Escape"){a.preventDefault(),_();return}if(a.key==="Tab"&&n(r)){const t=Array.from(n(m)?.querySelectorAll('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')??[]).filter(x=>!x.hasAttribute("disabled"));if(t.length===0)return;const i=t[0],g=t[t.length-1],v=document.activeElement;a.shiftKey&&v===i?(a.preventDefault(),g.focus()):!a.shiftKey&&v===g&&(a.preventDefault(),i.focus())}}function F(a){if(!n(r))return;const t=a.target;n(m)?.contains(t)||n(E)?.contains(t)||_()}fe(()=>{document.addEventListener("pointerdown",F)}),ke(()=>{f(),document.removeEventListener("pointerdown",F)}),J(()=>e(),()=>{b(T,e().enabled)}),J(()=>(e(),n(T)),()=>{!e().enabled&&n(T)&&_()}),_e(),he();var h=Me(),d=c(h),D=o(c(d),2),ie=c(D);P(d,a=>b(E,a),()=>n(E));var ce=o(d,2);{var ve=a=>{var t=Se(),i=c(t),g=c(i),v=o(c(g),2),x=c(v);x.value=x.__value="";var A=o(x);A.value=A.__value="native";var K=o(A);K.value=K.__value="exa";var L;V(v);var B=o(g,2),p=o(c(B),2),C=c(p);C.value=C.__value="";var $=o(C);$.value=$.__value="low";var z=o($);z.value=z.__value="medium";var H=o(z);H.value=H.__value="high";var j;V(p);var G=o(B,2),M=o(c(G),2),de=o(G,2),O=o(c(de),2);P(t,pe=>b(m,pe),()=>n(m)),Q(()=>{v.disabled=(e(),s(()=>!e().enabled)),L!==(L=(e(),s(()=>e().engine??"")))&&(v.value=(v.__value=(e(),s(()=>e().engine??"")))??"",X(v,(e(),s(()=>e().engine??"")))),p.disabled=(e(),s(()=>!e().enabled)),j!==(j=(e(),s(()=>e().contextSize??"")))&&(p.value=(p.__value=(e(),s(()=>e().contextSize??"")))??"",X(p,(e(),s(()=>e().contextSize??"")))),Y(M,(e(),s(()=>e().maxResults??""))),M.disabled=(e(),s(()=>!e().enabled)),Y(O,(e(),s(()=>e().searchPrompt??""))),O.disabled=(e(),s(()=>!e().enabled))}),l("change",v,le),l("change",p,oe),l("change",M,I),l("blur",M,I),l("input",O,re),l("mouseenter",t,f),l("mouseleave",t,W),l("focusin",t,f),l("focusout",t,ue),l("keydown",t,N),U(a,t)};ge(ce,a=>{n(r),e(),s(()=>n(r)&&e().enabled)&&a(ve)})}P(h,a=>b(S,a),()=>n(S)),Q(()=>{y(h,"data-enabled",(e(),s(()=>e().enabled))),y(h,"data-open",n(r)),y(d,"aria-expanded",(e(),n(r),s(()=>e().enabled&&n(r)))),y(D,"data-enabled",(e(),s(()=>e().enabled))),y(D,"aria-label",(e(),s(()=>e().enabled?"Web search on":"Web search off"))),Ee(ie,(e(),s(()=>e().enabled?"On":"Off")))}),l("click",d,se),l("mouseenter",d,q),l("focus",d,q),l("mouseleave",d,W),l("keydown",d,N),U(ee,h),xe(),ne()}export{De as default}; +import{p as be,r as fe,v as ke,w as J,x as me,q as n,y as _e,i as he,f as Z,z as P,j as c,b as ge,t as Q,e as l,g as U,h as xe,A as we,B as ye,C as w,D as b,E as o,u as s,F as y,s as Ee,G as V,H as X,I as Y}from"./index-Bu0PDUl3.js";var Se=Z(``),Me=Z('');function De(ee,te){be(te,!1);const e=()=>me(u,"$webSearch",ae),[ae,ne]=we(),u=ye;let r=w(!1),k=null,T=w(!1),m=w(null),E=w(null),S=w(null);function f(){k&&(clearTimeout(k),k=null)}function R(a=!1){f(),!(!a&&!u.current.enabled)&&(b(r,!0),queueMicrotask(()=>{n(m)?.querySelector('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')?.focus()}))}function W(){f(),k=setTimeout(()=>{n(r)&&(b(r,!1),k=null)},250)}function _(){f(),n(r)&&(b(r,!1),n(E)?.focus())}function q(){u.current.enabled&&R()}function se(){u.current.enabled?(u.setEnabled(!1),_()):(u.setEnabled(!0),R(!0))}function le(a){const t=a.currentTarget.value;u.update({engine:t==="native"||t==="exa"?t:null})}function oe(a){const t=a.currentTarget.value;u.update({contextSize:t==="low"||t==="medium"||t==="high"?t:null})}function I(a){const t=a.currentTarget;if(t.value===""){u.update({maxResults:null});return}let i=Math.trunc(Number(t.value));Number.isFinite(i)&&(i<1&&(i=1),i>25&&(i=25),u.update({maxResults:i}))}function re(a){const t=a.currentTarget.value;u.update({searchPrompt:t})}function ue(a){const t=a.relatedTarget;n(S)&&t&&n(S).contains(t)||_()}function N(a){if(a.key==="Escape"){a.preventDefault(),_();return}if(a.key==="Tab"&&n(r)){const t=Array.from(n(m)?.querySelectorAll('select, input, textarea, button, [href], [tabindex]:not([tabindex="-1"])')??[]).filter(x=>!x.hasAttribute("disabled"));if(t.length===0)return;const i=t[0],g=t[t.length-1],v=document.activeElement;a.shiftKey&&v===i?(a.preventDefault(),g.focus()):!a.shiftKey&&v===g&&(a.preventDefault(),i.focus())}}function F(a){if(!n(r))return;const t=a.target;n(m)?.contains(t)||n(E)?.contains(t)||_()}fe(()=>{document.addEventListener("pointerdown",F)}),ke(()=>{f(),document.removeEventListener("pointerdown",F)}),J(()=>e(),()=>{b(T,e().enabled)}),J(()=>(e(),n(T)),()=>{!e().enabled&&n(T)&&_()}),_e(),he();var h=Me(),d=c(h),D=o(c(d),2),ie=c(D);P(d,a=>b(E,a),()=>n(E));var ce=o(d,2);{var ve=a=>{var t=Se(),i=c(t),g=c(i),v=o(c(g),2),x=c(v);x.value=x.__value="";var A=o(x);A.value=A.__value="native";var K=o(A);K.value=K.__value="exa";var L;V(v);var B=o(g,2),p=o(c(B),2),C=c(p);C.value=C.__value="";var $=o(C);$.value=$.__value="low";var z=o($);z.value=z.__value="medium";var H=o(z);H.value=H.__value="high";var j;V(p);var G=o(B,2),M=o(c(G),2),de=o(G,2),O=o(c(de),2);P(t,pe=>b(m,pe),()=>n(m)),Q(()=>{v.disabled=(e(),s(()=>!e().enabled)),L!==(L=(e(),s(()=>e().engine??"")))&&(v.value=(v.__value=(e(),s(()=>e().engine??"")))??"",X(v,(e(),s(()=>e().engine??"")))),p.disabled=(e(),s(()=>!e().enabled)),j!==(j=(e(),s(()=>e().contextSize??"")))&&(p.value=(p.__value=(e(),s(()=>e().contextSize??"")))??"",X(p,(e(),s(()=>e().contextSize??"")))),Y(M,(e(),s(()=>e().maxResults??""))),M.disabled=(e(),s(()=>!e().enabled)),Y(O,(e(),s(()=>e().searchPrompt??""))),O.disabled=(e(),s(()=>!e().enabled))}),l("change",v,le),l("change",p,oe),l("change",M,I),l("blur",M,I),l("input",O,re),l("mouseenter",t,f),l("mouseleave",t,W),l("focusin",t,f),l("focusout",t,ue),l("keydown",t,N),U(a,t)};ge(ce,a=>{n(r),e(),s(()=>n(r)&&e().enabled)&&a(ve)})}P(h,a=>b(S,a),()=>n(S)),Q(()=>{y(h,"data-enabled",(e(),s(()=>e().enabled))),y(h,"data-open",n(r)),y(d,"aria-expanded",(e(),n(r),s(()=>e().enabled&&n(r)))),y(D,"data-enabled",(e(),s(()=>e().enabled))),y(D,"aria-label",(e(),s(()=>e().enabled?"Web search on":"Web search off"))),Ee(ie,(e(),s(()=>e().enabled?"On":"Off")))}),l("click",d,se),l("mouseenter",d,q),l("focus",d,q),l("mouseleave",d,W),l("keydown",d,N),U(ee,h),xe(),ne()}export{De as default}; diff --git a/src/backend/static/assets/index-7vMglLHL.css b/src/backend/static/assets/index-7vMglLHL.css deleted file mode 100644 index d6998a36..00000000 --- a/src/backend/static/assets/index-7vMglLHL.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-12{bottom:3rem}.bottom-6{bottom:1.5rem}.left-1\/2{left:50%}.left-6{left:1.5rem}.right-2{right:.5rem}.right-6{right:1.5rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-6{top:1.5rem}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-12{margin-top:3rem;margin-bottom:3rem}.mb-4{margin-bottom:1rem}.flex{display:flex}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-8{height:2rem}.h-\[600px\]{height:600px}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:0px}.w-1\.5{width:.375rem}.w-2{width:.5rem}.w-8{width:2rem}.w-\[600px\]{width:600px}.w-full{width:100%}.w-screen{width:100vw}.max-w-5xl{max-width:64rem}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-amber-500\/30{border-color:#f59e0b4d}.border-green-500\/30{border-color:#22c55e4d}.border-red-500\/30{border-color:#ef44444d}.border-white\/10{border-color:#ffffff1a}.border-white\/5{border-color:#ffffff0d}.bg-amber-500\/20{background-color:#f59e0b33}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-current{background-color:currentColor}.bg-cyan-500\/5{background-color:#06b6d40d}.bg-green-500\/20{background-color:#22c55e33}.bg-red-500\/20{background-color:#ef444433}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/40{background-color:#fff6}.bg-white\/5{background-color:#ffffff0d}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/30{--tw-gradient-from: rgb(0 0 0 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-black{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #000 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-black\/20{--tw-gradient-to: rgb(0 0 0 / .2) var(--tw-gradient-to-position)}.to-gray-900{--tw-gradient-to: #111827 var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-12{padding:3rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/50{color:#ffffff80}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.opacity-40{opacity:.4}.opacity-80{opacity:.8}.blur-3xl{--tw-blur: blur(64px);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-blur-md{--tw-backdrop-blur: blur(12px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;background:#000}@media(min-width:768px){.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-9xl{font-size:8rem;line-height:1}} diff --git a/src/backend/static/assets/index-Bervw8qS.js b/src/backend/static/assets/index-Bervw8qS.js deleted file mode 100644 index 6b4bc0b7..00000000 --- a/src/backend/static/assets/index-Bervw8qS.js +++ /dev/null @@ -1,48 +0,0 @@ -(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))a(u);new MutationObserver(u=>{for(const d of u)if(d.type==="childList")for(const f of d.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&a(f)}).observe(document,{childList:!0,subtree:!0});function o(u){const d={};return u.integrity&&(d.integrity=u.integrity),u.referrerPolicy&&(d.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?d.credentials="include":u.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function a(u){if(u.ep)return;u.ep=!0;const d=o(u);fetch(u.href,d)}})();function Hl(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var rl={exports:{}},fi={},il={exports:{}},ae={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var kd;function Ug(){if(kd)return ae;kd=1;var n=Symbol.for("react.element"),i=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),f=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),y=Symbol.iterator;function S(_){return _===null||typeof _!="object"?null:(_=y&&_[y]||_["@@iterator"],typeof _=="function"?_:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,k={};function A(_,V,ie){this.props=_,this.context=V,this.refs=k,this.updater=ie||w}A.prototype.isReactComponent={},A.prototype.setState=function(_,V){if(typeof _!="object"&&typeof _!="function"&&_!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,_,V,"setState")},A.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function C(){}C.prototype=A.prototype;function L(_,V,ie){this.props=_,this.context=V,this.refs=k,this.updater=ie||w}var U=L.prototype=new C;U.constructor=L,E(U,A.prototype),U.isPureReactComponent=!0;var K=Array.isArray,N=Object.prototype.hasOwnProperty,O={current:null},Q={key:!0,ref:!0,__self:!0,__source:!0};function q(_,V,ie){var oe,ue={},ce=null,he=null;if(V!=null)for(oe in V.ref!==void 0&&(he=V.ref),V.key!==void 0&&(ce=""+V.key),V)N.call(V,oe)&&!Q.hasOwnProperty(oe)&&(ue[oe]=V[oe]);var me=arguments.length-2;if(me===1)ue.children=ie;else if(1>>1,V=W[_];if(0>>1;_u(ue,z))ceu(he,ue)?(W[_]=he,W[ce]=z,_=ce):(W[_]=ue,W[oe]=z,_=oe);else if(ceu(he,z))W[_]=he,W[ce]=z,_=ce;else break e}}return G}function u(W,G){var z=W.sortIndex-G.sortIndex;return z!==0?z:W.id-G.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;n.unstable_now=function(){return d.now()}}else{var f=Date,p=f.now();n.unstable_now=function(){return f.now()-p}}var h=[],v=[],g=1,y=null,S=3,w=!1,E=!1,k=!1,A=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,L=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function U(W){for(var G=o(v);G!==null;){if(G.callback===null)a(v);else if(G.startTime<=W)a(v),G.sortIndex=G.expirationTime,i(h,G);else break;G=o(v)}}function K(W){if(k=!1,U(W),!E)if(o(h)!==null)E=!0,le(N);else{var G=o(v);G!==null&&se(K,G.startTime-W)}}function N(W,G){E=!1,k&&(k=!1,C(q),q=-1),w=!0;var z=S;try{for(U(G),y=o(h);y!==null&&(!(y.expirationTime>G)||W&&!Ie());){var _=y.callback;if(typeof _=="function"){y.callback=null,S=y.priorityLevel;var V=_(y.expirationTime<=G);G=n.unstable_now(),typeof V=="function"?y.callback=V:y===o(h)&&a(h),U(G)}else a(h);y=o(h)}if(y!==null)var ie=!0;else{var oe=o(v);oe!==null&&se(K,oe.startTime-G),ie=!1}return ie}finally{y=null,S=z,w=!1}}var O=!1,Q=null,q=-1,de=5,ge=-1;function Ie(){return!(n.unstable_now()-geW||125_?(W.sortIndex=z,i(v,W),o(h)===null&&W===o(v)&&(k?(C(q),q=-1):k=!0,se(K,z-_))):(W.sortIndex=V,i(h,W),E||w||(E=!0,le(N))),W},n.unstable_shouldYield=Ie,n.unstable_wrapCallback=function(W){var G=S;return function(){var z=S;S=G;try{return W.apply(this,arguments)}finally{S=z}}}})(al)),al}var Md;function Kg(){return Md||(Md=1,sl.exports=Hg()),sl.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Dd;function Gg(){if(Dd)return ot;Dd=1;var n=Tr(),i=Kg();function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,v=/^[: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]*$/,g={},y={};function S(e){return h.call(y,e)?!0:h.call(g,e)?!1:v.test(e)?y[e]=!0:(g[e]=!0,!1)}function w(e,t,r,s){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function E(e,t,r,s){if(t===null||typeof t>"u"||w(e,t,r,s))return!0;if(s)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function k(e,t,r,s,l,c,m){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=l,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=c,this.removeEmptyString=m}var A={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){A[e]=new k(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];A[t]=new k(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){A[e]=new k(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){A[e]=new k(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){A[e]=new k(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){A[e]=new k(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){A[e]=new k(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){A[e]=new k(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){A[e]=new k(e,5,!1,e.toLowerCase(),null,!1,!1)});var C=/[\-:]([a-z])/g;function L(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(C,L);A[t]=new k(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(C,L);A[t]=new k(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(C,L);A[t]=new k(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){A[e]=new k(e,1,!1,e.toLowerCase(),null,!1,!1)}),A.xlinkHref=new k("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){A[e]=new k(e,1,!1,e.toLowerCase(),null,!0,!0)});function U(e,t,r,s){var l=A.hasOwnProperty(t)?A[t]:null;(l!==null?l.type!==0:s||!(2x||l[m]!==c[x]){var T=` -`+l[m].replace(" at new "," at ");return e.displayName&&T.includes("")&&(T=T.replace("",e.displayName)),T}while(1<=m&&0<=x);break}}}finally{ie=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?V(e):""}function ue(e){switch(e.tag){case 5:return V(e.type);case 16:return V("Lazy");case 13:return V("Suspense");case 19:return V("SuspenseList");case 0:case 2:case 15:return e=oe(e.type,!1),e;case 11:return e=oe(e.type.render,!1),e;case 1:return e=oe(e.type,!0),e;default:return""}}function ce(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Q:return"Fragment";case O:return"Portal";case de:return"Profiler";case q:return"StrictMode";case we:return"Suspense";case De:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ie:return(e.displayName||"Context")+".Consumer";case ge:return(e._context.displayName||"Context")+".Provider";case ke:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ge:return t=e.displayName||null,t!==null?t:ce(e.type)||"Memo";case le:t=e._payload,e=e._init;try{return ce(e(t))}catch{}}return null}function he(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ce(t);case 8:return t===q?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function me(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ye(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function st(e){var t=ye(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var l=r.get,c=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(m){s=""+m,c.call(this,m)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return s},setValue:function(m){s=""+m},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Di(e){e._valueTracker||(e._valueTracker=st(e))}function Mu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),s="";return e&&(s=ye(e)?e.checked?"true":"false":e.value),e=s,e!==r?(t.setValue(e),!0):!1}function Ni(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function cs(e,t){var r=t.checked;return z({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Du(e,t){var r=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;r=me(t.value!=null?t.value:r),e._wrapperState={initialChecked:s,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Nu(e,t){t=t.checked,t!=null&&U(e,"checked",t,!1)}function fs(e,t){Nu(e,t);var r=me(t.value),s=t.type;if(r!=null)s==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ds(e,t.type,r):t.hasOwnProperty("defaultValue")&&ds(e,t.type,me(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Lu(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function ds(e,t,r){(t!=="number"||Ni(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Cr=Array.isArray;function Kn(e,t,r,s){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Li.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function _r(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Ar={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Hm=["Webkit","ms","Moz","O"];Object.keys(Ar).forEach(function(e){Hm.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ar[t]=Ar[e]})});function Uu(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Ar.hasOwnProperty(e)&&Ar[e]?(""+t).trim():t+"px"}function zu(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var s=r.indexOf("--")===0,l=Uu(r,t[r],s);r==="float"&&(r="cssFloat"),s?e.setProperty(r,l):e[r]=l}}var Km=z({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ms(e,t){if(t){if(Km[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(o(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(t.style!=null&&typeof t.style!="object")throw Error(o(62))}}function vs(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var gs=null;function ys(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ss=null,Gn=null,bn=null;function Bu(e){if(e=Xr(e)){if(typeof Ss!="function")throw Error(o(280));var t=e.stateNode;t&&(t=no(t),Ss(e.stateNode,e.type,t))}}function Wu(e){Gn?bn?bn.push(e):bn=[e]:Gn=e}function Hu(){if(Gn){var e=Gn,t=bn;if(bn=Gn=null,Bu(e),t)for(e=0;e>>=0,e===0?32:31-(tv(e)/nv|0)|0}var Fi=64,Ui=4194304;function Nr(e){switch(e&-e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function zi(e,t){var r=e.pendingLanes;if(r===0)return 0;var s=0,l=e.suspendedLanes,c=e.pingedLanes,m=r&268435455;if(m!==0){var x=m&~l;x!==0?s=Nr(x):(c&=m,c!==0&&(s=Nr(c)))}else m=r&~l,m!==0?s=Nr(m):c!==0&&(s=Nr(c));if(s===0)return 0;if(t!==0&&t!==s&&(t&l)===0&&(l=s&-s,c=t&-t,l>=c||l===16&&(c&4194240)!==0))return t;if((s&4)!==0&&(s|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0r;r++)t.push(e);return t}function Lr(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Et(t),e[t]=r}function sv(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0=Br),gc=" ",yc=!1;function Sc(e,t){switch(e){case"keyup":return Ov.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function wc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $n=!1;function Iv(e,t){switch(e){case"compositionend":return wc(t);case"keypress":return t.which!==32?null:(yc=!0,gc);case"textInput":return e=t.data,e===gc&&yc?null:e;default:return null}}function jv(e,t){if($n)return e==="compositionend"||!js&&Sc(e,t)?(e=fc(),Gi=Ds=nn=null,$n=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=s}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=_c(r)}}function Rc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Rc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Mc(){for(var e=window,t=Ni();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Ni(e.document)}return t}function zs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function bv(e){var t=Mc(),r=e.focusedElem,s=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Rc(r.ownerDocument.documentElement,r)){if(s!==null&&zs(r)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=r.textContent.length,c=Math.min(s.start,l);s=s.end===void 0?c:Math.min(s.end,l),!e.extend&&c>s&&(l=s,s=c,c=l),l=Ac(r,c);var m=Ac(r,s);l&&m&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==m.node||e.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),c>s?(e.addRange(t),e.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Xn=null,Bs=null,Gr=null,Ws=!1;function Dc(e,t,r){var s=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Ws||Xn==null||Xn!==Ni(s)||(s=Xn,"selectionStart"in s&&zs(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Gr&&Kr(Gr,s)||(Gr=s,s=Zi(Bs,"onSelect"),0tr||(e.current=ea[tr],ea[tr]=null,tr--)}function Se(e,t){tr++,ea[tr]=e.current,e.current=t}var an={},be=sn(an),et=sn(!1),Pn=an;function nr(e,t){var r=e.type.contextTypes;if(!r)return an;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var l={},c;for(c in r)l[c]=t[c];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function tt(e){return e=e.childContextTypes,e!=null}function ro(){Ee(et),Ee(be)}function bc(e,t,r){if(be.current!==an)throw Error(o(168));Se(be,t),Se(et,r)}function Qc(e,t,r){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return r;s=s.getChildContext();for(var l in s)if(!(l in t))throw Error(o(108,he(e)||"Unknown",l));return z({},r,s)}function io(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||an,Pn=be.current,Se(be,e),Se(et,et.current),!0}function Yc(e,t,r){var s=e.stateNode;if(!s)throw Error(o(169));r?(e=Qc(e,t,Pn),s.__reactInternalMemoizedMergedChildContext=e,Ee(et),Ee(be),Se(be,e)):Ee(et),Se(et,r)}var Ut=null,oo=!1,ta=!1;function $c(e){Ut===null?Ut=[e]:Ut.push(e)}function ig(e){oo=!0,$c(e)}function ln(){if(!ta&&Ut!==null){ta=!0;var e=0,t=ve;try{var r=Ut;for(ve=1;e>=m,l-=m,zt=1<<32-Et(t)+l|r<re?(Be=te,te=null):Be=te.sibling;var pe=I(R,te,M[re],B);if(pe===null){te===null&&(te=Be);break}e&&te&&pe.alternate===null&&t(R,te),P=c(pe,P,re),ee===null?J=pe:ee.sibling=pe,ee=pe,te=Be}if(re===M.length)return r(R,te),Pe&&Cn(R,re),J;if(te===null){for(;rere?(Be=te,te=null):Be=te.sibling;var gn=I(R,te,pe.value,B);if(gn===null){te===null&&(te=Be);break}e&&te&&gn.alternate===null&&t(R,te),P=c(gn,P,re),ee===null?J=gn:ee.sibling=gn,ee=gn,te=Be}if(pe.done)return r(R,te),Pe&&Cn(R,re),J;if(te===null){for(;!pe.done;re++,pe=M.next())pe=F(R,pe.value,B),pe!==null&&(P=c(pe,P,re),ee===null?J=pe:ee.sibling=pe,ee=pe);return Pe&&Cn(R,re),J}for(te=s(R,te);!pe.done;re++,pe=M.next())pe=b(te,R,re,pe.value,B),pe!==null&&(e&&pe.alternate!==null&&te.delete(pe.key===null?re:pe.key),P=c(pe,P,re),ee===null?J=pe:ee.sibling=pe,ee=pe);return e&&te.forEach(function(Fg){return t(R,Fg)}),Pe&&Cn(R,re),J}function Le(R,P,M,B){if(typeof M=="object"&&M!==null&&M.type===Q&&M.key===null&&(M=M.props.children),typeof M=="object"&&M!==null){switch(M.$$typeof){case N:e:{for(var J=M.key,ee=P;ee!==null;){if(ee.key===J){if(J=M.type,J===Q){if(ee.tag===7){r(R,ee.sibling),P=l(ee,M.props.children),P.return=R,R=P;break e}}else if(ee.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===le&&tf(J)===ee.type){r(R,ee.sibling),P=l(ee,M.props),P.ref=qr(R,ee,M),P.return=R,R=P;break e}r(R,ee);break}else t(R,ee);ee=ee.sibling}M.type===Q?(P=On(M.props.children,R.mode,B,M.key),P.return=R,R=P):(B=Oo(M.type,M.key,M.props,null,R.mode,B),B.ref=qr(R,P,M),B.return=R,R=B)}return m(R);case O:e:{for(ee=M.key;P!==null;){if(P.key===ee)if(P.tag===4&&P.stateNode.containerInfo===M.containerInfo&&P.stateNode.implementation===M.implementation){r(R,P.sibling),P=l(P,M.children||[]),P.return=R,R=P;break e}else{r(R,P);break}else t(R,P);P=P.sibling}P=Ja(M,R.mode,B),P.return=R,R=P}return m(R);case le:return ee=M._init,Le(R,P,ee(M._payload),B)}if(Cr(M))return $(R,P,M,B);if(G(M))return X(R,P,M,B);uo(R,M)}return typeof M=="string"&&M!==""||typeof M=="number"?(M=""+M,P!==null&&P.tag===6?(r(R,P.sibling),P=l(P,M),P.return=R,R=P):(r(R,P),P=qa(M,R.mode,B),P.return=R,R=P),m(R)):r(R,P)}return Le}var sr=nf(!0),rf=nf(!1),co=sn(null),fo=null,ar=null,aa=null;function la(){aa=ar=fo=null}function ua(e){var t=co.current;Ee(co),e._currentValue=t}function ca(e,t,r){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===r)break;e=e.return}}function lr(e,t){fo=e,aa=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(nt=!0),e.firstContext=null)}function vt(e){var t=e._currentValue;if(aa!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(fo===null)throw Error(o(308));ar=e,fo.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var _n=null;function fa(e){_n===null?_n=[e]:_n.push(e)}function of(e,t,r,s){var l=t.interleaved;return l===null?(r.next=r,fa(t)):(r.next=l.next,l.next=r),t.interleaved=r,Wt(e,s)}function Wt(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var un=!1;function da(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sf(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ht(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function cn(e,t,r){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(fe&2)!==0){var l=s.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),s.pending=t,Wt(e,r)}return l=s.interleaved,l===null?(t.next=t,fa(s)):(t.next=l.next,l.next=t),s.interleaved=t,Wt(e,r)}function ho(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,r|=s,t.lanes=r,Cs(e,r)}}function af(e,t){var r=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,r===s)){var l=null,c=null;if(r=r.firstBaseUpdate,r!==null){do{var m={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};c===null?l=c=m:c=c.next=m,r=r.next}while(r!==null);c===null?l=c=t:c=c.next=t}else l=c=t;r={baseState:s.baseState,firstBaseUpdate:l,lastBaseUpdate:c,shared:s.shared,effects:s.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function po(e,t,r,s){var l=e.updateQueue;un=!1;var c=l.firstBaseUpdate,m=l.lastBaseUpdate,x=l.shared.pending;if(x!==null){l.shared.pending=null;var T=x,D=T.next;T.next=null,m===null?c=D:m.next=D,m=T;var j=e.alternate;j!==null&&(j=j.updateQueue,x=j.lastBaseUpdate,x!==m&&(x===null?j.firstBaseUpdate=D:x.next=D,j.lastBaseUpdate=T))}if(c!==null){var F=l.baseState;m=0,j=D=T=null,x=c;do{var I=x.lane,b=x.eventTime;if((s&I)===I){j!==null&&(j=j.next={eventTime:b,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var $=e,X=x;switch(I=t,b=r,X.tag){case 1:if($=X.payload,typeof $=="function"){F=$.call(b,F,I);break e}F=$;break e;case 3:$.flags=$.flags&-65537|128;case 0:if($=X.payload,I=typeof $=="function"?$.call(b,F,I):$,I==null)break e;F=z({},F,I);break e;case 2:un=!0}}x.callback!==null&&x.lane!==0&&(e.flags|=64,I=l.effects,I===null?l.effects=[x]:I.push(x))}else b={eventTime:b,lane:I,tag:x.tag,payload:x.payload,callback:x.callback,next:null},j===null?(D=j=b,T=F):j=j.next=b,m|=I;if(x=x.next,x===null){if(x=l.shared.pending,x===null)break;I=x,x=I.next,I.next=null,l.lastBaseUpdate=I,l.shared.pending=null}}while(!0);if(j===null&&(T=F),l.baseState=T,l.firstBaseUpdate=D,l.lastBaseUpdate=j,t=l.shared.interleaved,t!==null){l=t;do m|=l.lane,l=l.next;while(l!==t)}else c===null&&(l.shared.lanes=0);Mn|=m,e.lanes=m,e.memoizedState=F}}function lf(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var s=ga.transition;ga.transition={};try{e(!1),t()}finally{ve=r,ga.transition=s}}function _f(){return gt().memoizedState}function lg(e,t,r){var s=pn(e);if(r={lane:s,action:r,hasEagerState:!1,eagerState:null,next:null},Af(e))Rf(t,r);else if(r=of(e,t,r,s),r!==null){var l=Ze();At(r,e,s,l),Mf(r,t,s)}}function ug(e,t,r){var s=pn(e),l={lane:s,action:r,hasEagerState:!1,eagerState:null,next:null};if(Af(e))Rf(t,l);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var m=t.lastRenderedState,x=c(m,r);if(l.hasEagerState=!0,l.eagerState=x,Tt(x,m)){var T=t.interleaved;T===null?(l.next=l,fa(t)):(l.next=T.next,T.next=l),t.interleaved=l;return}}catch{}finally{}r=of(e,t,l,s),r!==null&&(l=Ze(),At(r,e,s,l),Mf(r,t,s))}}function Af(e){var t=e.alternate;return e===_e||t!==null&&t===_e}function Rf(e,t){ti=go=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function Mf(e,t,r){if((r&4194240)!==0){var s=t.lanes;s&=e.pendingLanes,r|=s,t.lanes=r,Cs(e,r)}}var wo={readContext:vt,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useInsertionEffect:Qe,useLayoutEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useMutableSource:Qe,useSyncExternalStore:Qe,useId:Qe,unstable_isNewReconciler:!1},cg={readContext:vt,useCallback:function(e,t){return Lt().memoizedState=[e,t===void 0?null:t],e},useContext:vt,useEffect:Sf,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,yo(4194308,4,Ef.bind(null,t,e),r)},useLayoutEffect:function(e,t){return yo(4194308,4,e,t)},useInsertionEffect:function(e,t){return yo(4,2,e,t)},useMemo:function(e,t){var r=Lt();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var s=Lt();return t=r!==void 0?r(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=lg.bind(null,_e,e),[s.memoizedState,e]},useRef:function(e){var t=Lt();return e={current:e},t.memoizedState=e},useState:gf,useDebugValue:Pa,useDeferredValue:function(e){return Lt().memoizedState=e},useTransition:function(){var e=gf(!1),t=e[0];return e=ag.bind(null,e[1]),Lt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var s=_e,l=Lt();if(Pe){if(r===void 0)throw Error(o(407));r=r()}else{if(r=t(),ze===null)throw Error(o(349));(Rn&30)!==0||df(s,t,r)}l.memoizedState=r;var c={value:r,getSnapshot:t};return l.queue=c,Sf(pf.bind(null,s,c,e),[e]),s.flags|=2048,ii(9,hf.bind(null,s,c,r,t),void 0,null),r},useId:function(){var e=Lt(),t=ze.identifierPrefix;if(Pe){var r=Bt,s=zt;r=(s&~(1<<32-Et(s)-1)).toString(32)+r,t=":"+t+"R"+r,r=ni++,0<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=m.createElement(r,{is:s.is}):(e=m.createElement(r),r==="select"&&(m=e,s.multiple?m.multiple=!0:s.size&&(m.size=s.size))):e=m.createElementNS(e,r),e[Dt]=t,e[$r]=s,Xf(e,t,!1,!1),t.stateNode=e;e:{switch(m=vs(r,s),r){case"dialog":xe("cancel",e),xe("close",e),l=s;break;case"iframe":case"object":case"embed":xe("load",e),l=s;break;case"video":case"audio":for(l=0;lhr&&(t.flags|=128,s=!0,oi(c,!1),t.lanes=4194304)}else{if(!s)if(e=mo(m),e!==null){if(t.flags|=128,s=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),oi(c,!0),c.tail===null&&c.tailMode==="hidden"&&!m.alternate&&!Pe)return Ye(t),null}else 2*Ne()-c.renderingStartTime>hr&&r!==1073741824&&(t.flags|=128,s=!0,oi(c,!1),t.lanes=4194304);c.isBackwards?(m.sibling=t.child,t.child=m):(r=c.last,r!==null?r.sibling=m:t.child=m,c.last=m)}return c.tail!==null?(t=c.tail,c.rendering=t,c.tail=t.sibling,c.renderingStartTime=Ne(),t.sibling=null,r=Ce.current,Se(Ce,s?r&1|2:r&1),t):(Ye(t),null);case 22:case 23:return Ya(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&(t.mode&1)!==0?(ct&1073741824)!==0&&(Ye(t),t.subtreeFlags&6&&(t.flags|=8192)):Ye(t),null;case 24:return null;case 25:return null}throw Error(o(156,t.tag))}function yg(e,t){switch(ra(t),t.tag){case 1:return tt(t.type)&&ro(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ur(),Ee(et),Ee(be),va(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return pa(t),null;case 13:if(Ee(Ce),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));or()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ee(Ce),null;case 4:return ur(),null;case 10:return ua(t.type._context),null;case 22:case 23:return Ya(),null;case 24:return null;default:return null}}var Po=!1,$e=!1,Sg=typeof WeakSet=="function"?WeakSet:Set,Y=null;function fr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(s){Re(e,t,s)}else r.current=null}function Ia(e,t,r){try{r()}catch(s){Re(e,t,s)}}var Zf=!1;function wg(e,t){if(Ys=Hi,e=Mc(),zs(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var s=r.getSelection&&r.getSelection();if(s&&s.rangeCount!==0){r=s.anchorNode;var l=s.anchorOffset,c=s.focusNode;s=s.focusOffset;try{r.nodeType,c.nodeType}catch{r=null;break e}var m=0,x=-1,T=-1,D=0,j=0,F=e,I=null;t:for(;;){for(var b;F!==r||l!==0&&F.nodeType!==3||(x=m+l),F!==c||s!==0&&F.nodeType!==3||(T=m+s),F.nodeType===3&&(m+=F.nodeValue.length),(b=F.firstChild)!==null;)I=F,F=b;for(;;){if(F===e)break t;if(I===r&&++D===l&&(x=m),I===c&&++j===s&&(T=m),(b=F.nextSibling)!==null)break;F=I,I=F.parentNode}F=b}r=x===-1||T===-1?null:{start:x,end:T}}else r=null}r=r||{start:0,end:0}}else r=null;for($s={focusedElem:e,selectionRange:r},Hi=!1,Y=t;Y!==null;)if(t=Y,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Y=e;else for(;Y!==null;){t=Y;try{var $=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if($!==null){var X=$.memoizedProps,Le=$.memoizedState,R=t.stateNode,P=R.getSnapshotBeforeUpdate(t.elementType===t.type?X:kt(t.type,X),Le);R.__reactInternalSnapshotBeforeUpdate=P}break;case 3:var M=t.stateNode.containerInfo;M.nodeType===1?M.textContent="":M.nodeType===9&&M.documentElement&&M.removeChild(M.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(B){Re(t,t.return,B)}if(e=t.sibling,e!==null){e.return=t.return,Y=e;break}Y=t.return}return $=Zf,Zf=!1,$}function si(e,t,r){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var l=s=s.next;do{if((l.tag&e)===e){var c=l.destroy;l.destroy=void 0,c!==void 0&&Ia(t,r,c)}l=l.next}while(l!==s)}}function ko(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var s=r.create;r.destroy=s()}r=r.next}while(r!==t)}}function ja(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function ed(e){var t=e.alternate;t!==null&&(e.alternate=null,ed(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Dt],delete t[$r],delete t[Zs],delete t[ng],delete t[rg])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function td(e){return e.tag===5||e.tag===3||e.tag===4}function nd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||td(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Fa(e,t,r){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=to));else if(s!==4&&(e=e.child,e!==null))for(Fa(e,t,r),e=e.sibling;e!==null;)Fa(e,t,r),e=e.sibling}function Ua(e,t,r){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Ua(e,t,r),e=e.sibling;e!==null;)Ua(e,t,r),e=e.sibling}var We=null,Ct=!1;function fn(e,t,r){for(r=r.child;r!==null;)rd(e,t,r),r=r.sibling}function rd(e,t,r){if(Mt&&typeof Mt.onCommitFiberUnmount=="function")try{Mt.onCommitFiberUnmount(ji,r)}catch{}switch(r.tag){case 5:$e||fr(r,t);case 6:var s=We,l=Ct;We=null,fn(e,t,r),We=s,Ct=l,We!==null&&(Ct?(e=We,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):We.removeChild(r.stateNode));break;case 18:We!==null&&(Ct?(e=We,r=r.stateNode,e.nodeType===8?Js(e.parentNode,r):e.nodeType===1&&Js(e,r),Fr(e)):Js(We,r.stateNode));break;case 4:s=We,l=Ct,We=r.stateNode.containerInfo,Ct=!0,fn(e,t,r),We=s,Ct=l;break;case 0:case 11:case 14:case 15:if(!$e&&(s=r.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){l=s=s.next;do{var c=l,m=c.destroy;c=c.tag,m!==void 0&&((c&2)!==0||(c&4)!==0)&&Ia(r,t,m),l=l.next}while(l!==s)}fn(e,t,r);break;case 1:if(!$e&&(fr(r,t),s=r.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=r.memoizedProps,s.state=r.memoizedState,s.componentWillUnmount()}catch(x){Re(r,t,x)}fn(e,t,r);break;case 21:fn(e,t,r);break;case 22:r.mode&1?($e=(s=$e)||r.memoizedState!==null,fn(e,t,r),$e=s):fn(e,t,r);break;default:fn(e,t,r)}}function id(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Sg),t.forEach(function(s){var l=Rg.bind(null,e,s);r.has(s)||(r.add(s),s.then(l,l))})}}function _t(e,t){var r=t.deletions;if(r!==null)for(var s=0;sl&&(l=m),s&=~c}if(s=l,s=Ne()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Eg(s/1960))-s,10e?16:e,hn===null)var s=!1;else{if(e=hn,hn=null,Mo=0,(fe&6)!==0)throw Error(o(331));var l=fe;for(fe|=4,Y=e.current;Y!==null;){var c=Y,m=c.child;if((Y.flags&16)!==0){var x=c.deletions;if(x!==null){for(var T=0;TNe()-Wa?Nn(e,0):Ba|=r),it(e,t)}function gd(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ui,Ui<<=1,(Ui&130023424)===0&&(Ui=4194304)));var r=Ze();e=Wt(e,t),e!==null&&(Lr(e,t,r),it(e,r))}function Ag(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),gd(e,r)}function Rg(e,t){var r=0;switch(e.tag){case 13:var s=e.stateNode,l=e.memoizedState;l!==null&&(r=l.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(o(314))}s!==null&&s.delete(t),gd(e,r)}var yd;yd=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||et.current)nt=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return nt=!1,vg(e,t,r);nt=(e.flags&131072)!==0}else nt=!1,Pe&&(t.flags&1048576)!==0&&Xc(t,ao,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;To(e,t),e=t.pendingProps;var l=nr(t,be.current);lr(t,r),l=Sa(null,t,s,e,l,r);var c=wa();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,tt(s)?(c=!0,io(t)):c=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,da(t),l.updater=xo,t.stateNode=l,l._reactInternals=t,Ca(t,s,e,r),t=Ma(null,t,s,!0,c,r)):(t.tag=0,Pe&&c&&na(t),Je(null,t,l,r),t=t.child),t;case 16:s=t.elementType;e:{switch(To(e,t),e=t.pendingProps,l=s._init,s=l(s._payload),t.type=s,l=t.tag=Dg(s),e=kt(s,e),l){case 0:t=Ra(null,t,s,e,r);break e;case 1:t=Kf(null,t,s,e,r);break e;case 11:t=Uf(null,t,s,e,r);break e;case 14:t=zf(null,t,s,kt(s.type,e),r);break e}throw Error(o(306,s,""))}return t;case 0:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:kt(s,l),Ra(e,t,s,l,r);case 1:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:kt(s,l),Kf(e,t,s,l,r);case 3:e:{if(Gf(t),e===null)throw Error(o(387));s=t.pendingProps,c=t.memoizedState,l=c.element,sf(e,t),po(t,s,null,r);var m=t.memoizedState;if(s=m.element,c.isDehydrated)if(c={element:s,isDehydrated:!1,cache:m.cache,pendingSuspenseBoundaries:m.pendingSuspenseBoundaries,transitions:m.transitions},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){l=cr(Error(o(423)),t),t=bf(e,t,s,r,l);break e}else if(s!==l){l=cr(Error(o(424)),t),t=bf(e,t,s,r,l);break e}else for(ut=on(t.stateNode.containerInfo.firstChild),lt=t,Pe=!0,Pt=null,r=rf(t,null,s,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(or(),s===l){t=Kt(e,t,r);break e}Je(e,t,s,r)}t=t.child}return t;case 5:return uf(t),e===null&&oa(t),s=t.type,l=t.pendingProps,c=e!==null?e.memoizedProps:null,m=l.children,Xs(s,l)?m=null:c!==null&&Xs(s,c)&&(t.flags|=32),Hf(e,t),Je(e,t,m,r),t.child;case 6:return e===null&&oa(t),null;case 13:return Qf(e,t,r);case 4:return ha(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=sr(t,null,s,r):Je(e,t,s,r),t.child;case 11:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:kt(s,l),Uf(e,t,s,l,r);case 7:return Je(e,t,t.pendingProps,r),t.child;case 8:return Je(e,t,t.pendingProps.children,r),t.child;case 12:return Je(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(s=t.type._context,l=t.pendingProps,c=t.memoizedProps,m=l.value,Se(co,s._currentValue),s._currentValue=m,c!==null)if(Tt(c.value,m)){if(c.children===l.children&&!et.current){t=Kt(e,t,r);break e}}else for(c=t.child,c!==null&&(c.return=t);c!==null;){var x=c.dependencies;if(x!==null){m=c.child;for(var T=x.firstContext;T!==null;){if(T.context===s){if(c.tag===1){T=Ht(-1,r&-r),T.tag=2;var D=c.updateQueue;if(D!==null){D=D.shared;var j=D.pending;j===null?T.next=T:(T.next=j.next,j.next=T),D.pending=T}}c.lanes|=r,T=c.alternate,T!==null&&(T.lanes|=r),ca(c.return,r,t),x.lanes|=r;break}T=T.next}}else if(c.tag===10)m=c.type===t.type?null:c.child;else if(c.tag===18){if(m=c.return,m===null)throw Error(o(341));m.lanes|=r,x=m.alternate,x!==null&&(x.lanes|=r),ca(m,r,t),m=c.sibling}else m=c.child;if(m!==null)m.return=c;else for(m=c;m!==null;){if(m===t){m=null;break}if(c=m.sibling,c!==null){c.return=m.return,m=c;break}m=m.return}c=m}Je(e,t,l.children,r),t=t.child}return t;case 9:return l=t.type,s=t.pendingProps.children,lr(t,r),l=vt(l),s=s(l),t.flags|=1,Je(e,t,s,r),t.child;case 14:return s=t.type,l=kt(s,t.pendingProps),l=kt(s.type,l),zf(e,t,s,l,r);case 15:return Bf(e,t,t.type,t.pendingProps,r);case 17:return s=t.type,l=t.pendingProps,l=t.elementType===s?l:kt(s,l),To(e,t),t.tag=1,tt(s)?(e=!0,io(t)):e=!1,lr(t,r),Nf(t,s,l),Ca(t,s,l,r),Ma(null,t,s,!0,e,r);case 19:return $f(e,t,r);case 22:return Wf(e,t,r)}throw Error(o(156,t.tag))};function Sd(e,t){return qu(e,t)}function Mg(e,t,r,s){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function St(e,t,r,s){return new Mg(e,t,r,s)}function Xa(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Dg(e){if(typeof e=="function")return Xa(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ke)return 11;if(e===Ge)return 14}return 2}function vn(e,t){var r=e.alternate;return r===null?(r=St(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Oo(e,t,r,s,l,c){var m=2;if(s=e,typeof e=="function")Xa(e)&&(m=1);else if(typeof e=="string")m=5;else e:switch(e){case Q:return On(r.children,l,c,t);case q:m=8,l|=8;break;case de:return e=St(12,r,t,l|2),e.elementType=de,e.lanes=c,e;case we:return e=St(13,r,t,l),e.elementType=we,e.lanes=c,e;case De:return e=St(19,r,t,l),e.elementType=De,e.lanes=c,e;case se:return Vo(r,l,c,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ge:m=10;break e;case Ie:m=9;break e;case ke:m=11;break e;case Ge:m=14;break e;case le:m=16,s=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return t=St(m,r,t,l),t.elementType=e,t.type=s,t.lanes=c,t}function On(e,t,r,s){return e=St(7,e,s,t),e.lanes=r,e}function Vo(e,t,r,s){return e=St(22,e,s,t),e.elementType=se,e.lanes=r,e.stateNode={isHidden:!1},e}function qa(e,t,r){return e=St(6,e,null,t),e.lanes=r,e}function Ja(e,t,r){return t=St(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ng(e,t,r,s,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ks(0),this.expirationTimes=ks(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ks(0),this.identifierPrefix=s,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Za(e,t,r,s,l,c,m,x,T){return e=new Ng(e,t,r,x,T),t===1?(t=1,c===!0&&(t|=8)):t=0,c=St(3,null,null,t),e.current=c,c.stateNode=e,c.memoizedState={element:s,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},da(c),e}function Lg(e,t,r){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(i){console.error(i)}}return n(),ol.exports=Gg(),ol.exports}var Ld;function bg(){if(Ld)return Wo;Ld=1;var n=cp();return Wo.createRoot=n.createRoot,Wo.hydrateRoot=n.hydrateRoot,Wo}var Qg=bg();const Yg=Hl(Qg),Kl=H.createContext({});function Gl(n){const i=H.useRef(null);return i.current===null&&(i.current=n()),i.current}const is=H.createContext(null),bl=H.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});class $g extends H.Component{getSnapshotBeforeUpdate(i){const o=this.props.childRef.current;if(o&&i.isPresent&&!this.props.isPresent){const a=this.props.sizeRef.current;a.height=o.offsetHeight||0,a.width=o.offsetWidth||0,a.top=o.offsetTop,a.left=o.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function Xg({children:n,isPresent:i}){const o=H.useId(),a=H.useRef(null),u=H.useRef({width:0,height:0,top:0,left:0}),{nonce:d}=H.useContext(bl);return H.useInsertionEffect(()=>{const{width:f,height:p,top:h,left:v}=u.current;if(i||!a.current||!f||!p)return;a.current.dataset.motionPopId=o;const g=document.createElement("style");return d&&(g.nonce=d),document.head.appendChild(g),g.sheet&&g.sheet.insertRule(` - [data-motion-pop-id="${o}"] { - position: absolute !important; - width: ${f}px !important; - height: ${p}px !important; - top: ${h}px !important; - left: ${v}px !important; - } - `),()=>{document.head.removeChild(g)}},[i]),Z.jsx($g,{isPresent:i,childRef:a,sizeRef:u,children:H.cloneElement(n,{ref:a})})}const qg=({children:n,initial:i,isPresent:o,onExitComplete:a,custom:u,presenceAffectsLayout:d,mode:f})=>{const p=Gl(Jg),h=H.useId(),v=H.useCallback(y=>{p.set(y,!0);for(const S of p.values())if(!S)return;a&&a()},[p,a]),g=H.useMemo(()=>({id:h,initial:i,isPresent:o,custom:u,onExitComplete:v,register:y=>(p.set(y,!1),()=>p.delete(y))}),d?[Math.random(),v]:[o,v]);return H.useMemo(()=>{p.forEach((y,S)=>p.set(S,!1))},[o]),H.useEffect(()=>{!o&&!p.size&&a&&a()},[o]),f==="popLayout"&&(n=Z.jsx(Xg,{isPresent:o,children:n})),Z.jsx(is.Provider,{value:g,children:n})};function Jg(){return new Map}function fp(n=!0){const i=H.useContext(is);if(i===null)return[!0,null];const{isPresent:o,onExitComplete:a,register:u}=i,d=H.useId();H.useEffect(()=>{n&&u(d)},[n]);const f=H.useCallback(()=>n&&a&&a(d),[d,a,n]);return!o&&a?[!1,f]:[!0]}const Ho=n=>n.key||"";function Od(n){const i=[];return H.Children.forEach(n,o=>{H.isValidElement(o)&&i.push(o)}),i}const Ql=typeof window<"u",dp=Ql?H.useLayoutEffect:H.useEffect,Yl=({children:n,custom:i,initial:o=!0,onExitComplete:a,presenceAffectsLayout:u=!0,mode:d="sync",propagate:f=!1})=>{const[p,h]=fp(f),v=H.useMemo(()=>Od(n),[n]),g=f&&!p?[]:v.map(Ho),y=H.useRef(!0),S=H.useRef(v),w=Gl(()=>new Map),[E,k]=H.useState(v),[A,C]=H.useState(v);dp(()=>{y.current=!1,S.current=v;for(let K=0;K{const N=Ho(K),O=f&&!p?!1:v===A||g.includes(N),Q=()=>{if(w.has(N))w.set(N,!0);else return;let q=!0;w.forEach(de=>{de||(q=!1)}),q&&(U==null||U(),C(S.current),f&&(h==null||h()),a&&a())};return Z.jsx(qg,{isPresent:O,initial:!y.current||o?void 0:!1,custom:O?void 0:i,presenceAffectsLayout:u,mode:d,onExitComplete:O?void 0:Q,children:K},N)})})},dt=n=>n;let hp=dt;function $l(n){let i;return()=>(i===void 0&&(i=n()),i)}const wr=(n,i,o)=>{const a=i-n;return a===0?1:(o-n)/a},$t=n=>n*1e3,Xt=n=>n/1e3,Zg={useManualTiming:!1};function ey(n){let i=new Set,o=new Set,a=!1,u=!1;const d=new WeakSet;let f={delta:0,timestamp:0,isProcessing:!1};function p(v){d.has(v)&&(h.schedule(v),n()),v(f)}const h={schedule:(v,g=!1,y=!1)=>{const w=y&&a?i:o;return g&&d.add(v),w.has(v)||w.add(v),v},cancel:v=>{o.delete(v),d.delete(v)},process:v=>{if(f=v,a){u=!0;return}a=!0,[i,o]=[o,i],i.forEach(p),i.clear(),a=!1,u&&(u=!1,h.process(v))}};return h}const Ko=["read","resolveKeyframes","update","preRender","render","postRender"],ty=40;function pp(n,i){let o=!1,a=!0;const u={delta:0,timestamp:0,isProcessing:!1},d=()=>o=!0,f=Ko.reduce((C,L)=>(C[L]=ey(d),C),{}),{read:p,resolveKeyframes:h,update:v,preRender:g,render:y,postRender:S}=f,w=()=>{const C=performance.now();o=!1,u.delta=a?1e3/60:Math.max(Math.min(C-u.timestamp,ty),1),u.timestamp=C,u.isProcessing=!0,p.process(u),h.process(u),v.process(u),g.process(u),y.process(u),S.process(u),u.isProcessing=!1,o&&i&&(a=!1,n(w))},E=()=>{o=!0,a=!0,u.isProcessing||n(w)};return{schedule:Ko.reduce((C,L)=>{const U=f[L];return C[L]=(K,N=!1,O=!1)=>(o||E(),U.schedule(K,N,O)),C},{}),cancel:C=>{for(let L=0;LVd[n].some(o=>!!i[o])};function ny(n){for(const i in n)xr[i]={...xr[i],...n[i]}}const ry=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function qo(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||ry.has(n)}let vp=n=>!qo(n);function iy(n){n&&(vp=i=>i.startsWith("on")?!qo(i):n(i))}try{iy(require("@emotion/is-prop-valid").default)}catch{}function oy(n,i,o){const a={};for(const u in n)u==="values"&&typeof n.values=="object"||(vp(u)||o===!0&&qo(u)||!i&&!qo(u)||n.draggable&&u.startsWith("onDrag"))&&(a[u]=n[u]);return a}function sy(n){if(typeof Proxy>"u")return n;const i=new Map,o=(...a)=>n(...a);return new Proxy(o,{get:(a,u)=>u==="create"?n:(i.has(u)||i.set(u,n(u)),i.get(u))})}const os=H.createContext({});function Ei(n){return typeof n=="string"||Array.isArray(n)}function ss(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}const Xl=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],ql=["initial",...Xl];function as(n){return ss(n.animate)||ql.some(i=>Ei(n[i]))}function gp(n){return!!(as(n)||n.variants)}function ay(n,i){if(as(n)){const{initial:o,animate:a}=n;return{initial:o===!1||Ei(o)?o:void 0,animate:Ei(a)?a:void 0}}return n.inherit!==!1?i:{}}function ly(n){const{initial:i,animate:o}=ay(n,H.useContext(os));return H.useMemo(()=>({initial:i,animate:o}),[Id(i),Id(o)])}function Id(n){return Array.isArray(n)?n.join(" "):n}const uy=Symbol.for("motionComponentSymbol");function mr(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function cy(n,i,o){return H.useCallback(a=>{a&&n.onMount&&n.onMount(a),i&&(a?i.mount(a):i.unmount()),o&&(typeof o=="function"?o(a):mr(o)&&(o.current=a))},[i])}const Jl=n=>n.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),fy="framerAppearId",yp="data-"+Jl(fy),{schedule:Zl}=pp(queueMicrotask,!1),Sp=H.createContext({});function dy(n,i,o,a,u){var d,f;const{visualElement:p}=H.useContext(os),h=H.useContext(mp),v=H.useContext(is),g=H.useContext(bl).reducedMotion,y=H.useRef(null);a=a||h.renderer,!y.current&&a&&(y.current=a(n,{visualState:i,parent:p,props:o,presenceContext:v,blockInitialAnimation:v?v.initial===!1:!1,reducedMotionConfig:g}));const S=y.current,w=H.useContext(Sp);S&&!S.projection&&u&&(S.type==="html"||S.type==="svg")&&hy(y.current,o,u,w);const E=H.useRef(!1);H.useInsertionEffect(()=>{S&&E.current&&S.update(o,v)});const k=o[yp],A=H.useRef(!!k&&!(!((d=window.MotionHandoffIsComplete)===null||d===void 0)&&d.call(window,k))&&((f=window.MotionHasOptimisedAnimation)===null||f===void 0?void 0:f.call(window,k)));return dp(()=>{S&&(E.current=!0,window.MotionIsMounted=!0,S.updateFeatures(),Zl.render(S.render),A.current&&S.animationState&&S.animationState.animateChanges())}),H.useEffect(()=>{S&&(!A.current&&S.animationState&&S.animationState.animateChanges(),A.current&&(queueMicrotask(()=>{var C;(C=window.MotionHandoffMarkAsComplete)===null||C===void 0||C.call(window,k)}),A.current=!1))}),S}function hy(n,i,o,a){const{layoutId:u,layout:d,drag:f,dragConstraints:p,layoutScroll:h,layoutRoot:v}=i;n.projection=new o(n.latestValues,i["data-framer-portal-id"]?void 0:wp(n.parent)),n.projection.setOptions({layoutId:u,layout:d,alwaysMeasureLayout:!!f||p&&mr(p),visualElement:n,animationType:typeof d=="string"?d:"both",initialPromotionConfig:a,layoutScroll:h,layoutRoot:v})}function wp(n){if(n)return n.options.allowProjection!==!1?n.projection:wp(n.parent)}function py({preloadedFeatures:n,createVisualElement:i,useRender:o,useVisualState:a,Component:u}){var d,f;n&&ny(n);function p(v,g){let y;const S={...H.useContext(bl),...v,layoutId:my(v)},{isStatic:w}=S,E=ly(v),k=a(v,w);if(!w&&Ql){vy();const A=gy(S);y=A.MeasureLayout,E.visualElement=dy(u,k,S,i,A.ProjectionNode)}return Z.jsxs(os.Provider,{value:E,children:[y&&E.visualElement?Z.jsx(y,{visualElement:E.visualElement,...S}):null,o(u,v,cy(k,E.visualElement,g),k,w,E.visualElement)]})}p.displayName=`motion.${typeof u=="string"?u:`create(${(f=(d=u.displayName)!==null&&d!==void 0?d:u.name)!==null&&f!==void 0?f:""})`}`;const h=H.forwardRef(p);return h[uy]=u,h}function my({layoutId:n}){const i=H.useContext(Kl).id;return i&&n!==void 0?i+"-"+n:n}function vy(n,i){H.useContext(mp).strict}function gy(n){const{drag:i,layout:o}=xr;if(!i&&!o)return{};const a={...i,...o};return{MeasureLayout:i!=null&&i.isEnabled(n)||o!=null&&o.isEnabled(n)?a.MeasureLayout:void 0,ProjectionNode:a.ProjectionNode}}const yy=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function eu(n){return typeof n!="string"||n.includes("-")?!1:!!(yy.indexOf(n)>-1||/[A-Z]/u.test(n))}function jd(n){const i=[{},{}];return n==null||n.values.forEach((o,a)=>{i[0][a]=o.get(),i[1][a]=o.getVelocity()}),i}function tu(n,i,o,a){if(typeof i=="function"){const[u,d]=jd(a);i=i(o!==void 0?o:n.custom,u,d)}if(typeof i=="string"&&(i=n.variants&&n.variants[i]),typeof i=="function"){const[u,d]=jd(a);i=i(o!==void 0?o:n.custom,u,d)}return i}const _l=n=>Array.isArray(n),Sy=n=>!!(n&&typeof n=="object"&&n.mix&&n.toValue),wy=n=>_l(n)?n[n.length-1]||0:n,qe=n=>!!(n&&n.getVelocity);function Yo(n){const i=qe(n)?n.get():n;return Sy(i)?i.toValue():i}function xy({scrapeMotionValuesFromProps:n,createRenderState:i,onUpdate:o},a,u,d){const f={latestValues:Ey(a,u,d,n),renderState:i()};return o&&(f.onMount=p=>o({props:a,current:p,...f}),f.onUpdate=p=>o(p)),f}const xp=n=>(i,o)=>{const a=H.useContext(os),u=H.useContext(is),d=()=>xy(n,i,a,u);return o?d():Gl(d)};function Ey(n,i,o,a){const u={},d=a(n,{});for(const S in d)u[S]=Yo(d[S]);let{initial:f,animate:p}=n;const h=as(n),v=gp(n);i&&v&&!h&&n.inherit!==!1&&(f===void 0&&(f=i.initial),p===void 0&&(p=i.animate));let g=o?o.initial===!1:!1;g=g||f===!1;const y=g?p:f;if(y&&typeof y!="boolean"&&!ss(y)){const S=Array.isArray(y)?y:[y];for(let w=0;wi=>typeof i=="string"&&i.startsWith(n),Tp=Ep("--"),Ty=Ep("var(--"),nu=n=>Ty(n)?Py.test(n.split("/*")[0].trim()):!1,Py=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Pp=(n,i)=>i&&typeof n=="number"?i.transform(n):n,qt=(n,i,o)=>o>i?i:otypeof n=="number",parse:parseFloat,transform:n=>n},Ti={...kr,transform:n=>qt(0,1,n)},Go={...kr,default:1},_i=n=>({test:i=>typeof i=="string"&&i.endsWith(n)&&i.split(" ").length===1,parse:parseFloat,transform:i=>`${i}${n}`}),yn=_i("deg"),Vt=_i("%"),ne=_i("px"),ky=_i("vh"),Cy=_i("vw"),Fd={...Vt,parse:n=>Vt.parse(n)/100,transform:n=>Vt.transform(n*100)},_y={borderWidth:ne,borderTopWidth:ne,borderRightWidth:ne,borderBottomWidth:ne,borderLeftWidth:ne,borderRadius:ne,radius:ne,borderTopLeftRadius:ne,borderTopRightRadius:ne,borderBottomRightRadius:ne,borderBottomLeftRadius:ne,width:ne,maxWidth:ne,height:ne,maxHeight:ne,top:ne,right:ne,bottom:ne,left:ne,padding:ne,paddingTop:ne,paddingRight:ne,paddingBottom:ne,paddingLeft:ne,margin:ne,marginTop:ne,marginRight:ne,marginBottom:ne,marginLeft:ne,backgroundPositionX:ne,backgroundPositionY:ne},Ay={rotate:yn,rotateX:yn,rotateY:yn,rotateZ:yn,scale:Go,scaleX:Go,scaleY:Go,scaleZ:Go,skew:yn,skewX:yn,skewY:yn,distance:ne,translateX:ne,translateY:ne,translateZ:ne,x:ne,y:ne,z:ne,perspective:ne,transformPerspective:ne,opacity:Ti,originX:Fd,originY:Fd,originZ:ne},Ud={...kr,transform:Math.round},ru={..._y,...Ay,zIndex:Ud,size:ne,fillOpacity:Ti,strokeOpacity:Ti,numOctaves:Ud},Ry={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},My=Pr.length;function Dy(n,i,o){let a="",u=!0;for(let d=0;d({style:{},transform:{},transformOrigin:{},vars:{}}),kp=()=>({...su(),attrs:{}}),au=n=>typeof n=="string"&&n.toLowerCase()==="svg";function Cp(n,{style:i,vars:o},a,u){Object.assign(n.style,i,u&&u.getProjectionStyles(a));for(const d in o)n.style.setProperty(d,o[d])}const _p=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Ap(n,i,o,a){Cp(n,i,void 0,a);for(const u in i.attrs)n.setAttribute(_p.has(u)?u:Jl(u),i.attrs[u])}const Jo={};function Iy(n){Object.assign(Jo,n)}function Rp(n,{layout:i,layoutId:o}){return Hn.has(n)||n.startsWith("origin")||(i||o!==void 0)&&(!!Jo[n]||n==="opacity")}function lu(n,i,o){var a;const{style:u}=n,d={};for(const f in u)(qe(u[f])||i.style&&qe(i.style[f])||Rp(f,n)||((a=o==null?void 0:o.getValue(f))===null||a===void 0?void 0:a.liveStyle)!==void 0)&&(d[f]=u[f]);return d}function Mp(n,i,o){const a=lu(n,i,o);for(const u in n)if(qe(n[u])||qe(i[u])){const d=Pr.indexOf(u)!==-1?"attr"+u.charAt(0).toUpperCase()+u.substring(1):u;a[d]=n[u]}return a}function jy(n,i){try{i.dimensions=typeof n.getBBox=="function"?n.getBBox():n.getBoundingClientRect()}catch{i.dimensions={x:0,y:0,width:0,height:0}}}const Bd=["x","y","width","height","cx","cy","r"],Fy={useVisualState:xp({scrapeMotionValuesFromProps:Mp,createRenderState:kp,onUpdate:({props:n,prevProps:i,current:o,renderState:a,latestValues:u})=>{if(!o)return;let d=!!n.drag;if(!d){for(const p in u)if(Hn.has(p)){d=!0;break}}if(!d)return;let f=!i;if(i)for(let p=0;p{jy(o,a),Te.render(()=>{ou(a,u,au(o.tagName),n.transformTemplate),Ap(o,a)})})}})},Uy={useVisualState:xp({scrapeMotionValuesFromProps:lu,createRenderState:su})};function Dp(n,i,o){for(const a in i)!qe(i[a])&&!Rp(a,o)&&(n[a]=i[a])}function zy({transformTemplate:n},i){return H.useMemo(()=>{const o=su();return iu(o,i,n),Object.assign({},o.vars,o.style)},[i])}function By(n,i){const o=n.style||{},a={};return Dp(a,o,n),Object.assign(a,zy(n,i)),a}function Wy(n,i){const o={},a=By(n,i);return n.drag&&n.dragListener!==!1&&(o.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(o.tabIndex=0),o.style=a,o}function Hy(n,i,o,a){const u=H.useMemo(()=>{const d=kp();return ou(d,i,au(a),n.transformTemplate),{...d.attrs,style:{...d.style}}},[i]);if(n.style){const d={};Dp(d,n.style,n),u.style={...d,...u.style}}return u}function Ky(n=!1){return(o,a,u,{latestValues:d},f)=>{const h=(eu(o)?Hy:Wy)(a,d,f,o),v=oy(a,typeof o=="string",n),g=o!==H.Fragment?{...v,...h,ref:u}:{},{children:y}=a,S=H.useMemo(()=>qe(y)?y.get():y,[y]);return H.createElement(o,{...g,children:S})}}function Gy(n,i){return function(a,{forwardMotionProps:u}={forwardMotionProps:!1}){const f={...eu(a)?Fy:Uy,preloadedFeatures:n,useRender:Ky(u),createVisualElement:i,Component:a};return py(f)}}function Np(n,i){if(!Array.isArray(i))return!1;const o=i.length;if(o!==n.length)return!1;for(let a=0;awindow.ScrollTimeline!==void 0);class Qy{constructor(i){this.stop=()=>this.runAll("stop"),this.animations=i.filter(Boolean)}get finished(){return Promise.all(this.animations.map(i=>"finished"in i?i.finished:i))}getAll(i){return this.animations[0][i]}setAll(i,o){for(let a=0;a{if(by()&&u.attachTimeline)return u.attachTimeline(i);if(typeof o=="function")return o(u)});return()=>{a.forEach((u,d)=>{u&&u(),this.animations[d].stop()})}}get time(){return this.getAll("time")}set time(i){this.setAll("time",i)}get speed(){return this.getAll("speed")}set speed(i){this.setAll("speed",i)}get startTime(){return this.getAll("startTime")}get duration(){let i=0;for(let o=0;oo[i]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class Yy extends Qy{then(i,o){return Promise.all(this.animations).then(i).catch(o)}}function uu(n,i){return n?n[i]||n.default||n:void 0}const Al=2e4;function Lp(n){let i=0;const o=50;let a=n.next(i);for(;!a.done&&i=Al?1/0:i}function cu(n){return typeof n=="function"}function Wd(n,i){n.timeline=i,n.onfinish=null}const fu=n=>Array.isArray(n)&&typeof n[0]=="number",$y={linearEasing:void 0};function Xy(n,i){const o=$l(n);return()=>{var a;return(a=$y[i])!==null&&a!==void 0?a:o()}}const Zo=Xy(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Op=(n,i,o=10)=>{let a="";const u=Math.max(Math.round(i/o),2);for(let d=0;d`cubic-bezier(${n}, ${i}, ${o}, ${a})`,Rl={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:mi([0,.65,.55,1]),circOut:mi([.55,0,1,.45]),backIn:mi([.31,.01,.66,-.59]),backOut:mi([.33,1.53,.69,.99])};function Ip(n,i){if(n)return typeof n=="function"&&Zo()?Op(n,i):fu(n)?mi(n):Array.isArray(n)?n.map(o=>Ip(o,i)||Rl.easeOut):Rl[n]}const Rt={x:!1,y:!1};function jp(){return Rt.x||Rt.y}function qy(n,i,o){var a;if(n instanceof Element)return[n];if(typeof n=="string"){let u=document;const d=(a=void 0)!==null&&a!==void 0?a:u.querySelectorAll(n);return d?Array.from(d):[]}return Array.from(n)}function Fp(n,i){const o=qy(n),a=new AbortController,u={passive:!0,...i,signal:a.signal};return[o,u,()=>a.abort()]}function Hd(n){return i=>{i.pointerType==="touch"||jp()||n(i)}}function Jy(n,i,o={}){const[a,u,d]=Fp(n,o),f=Hd(p=>{const{target:h}=p,v=i(p);if(typeof v!="function"||!h)return;const g=Hd(y=>{v(y),h.removeEventListener("pointerleave",g)});h.addEventListener("pointerleave",g,u)});return a.forEach(p=>{p.addEventListener("pointerenter",f,u)}),d}const Up=(n,i)=>i?n===i?!0:Up(n,i.parentElement):!1,du=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1,Zy=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function e0(n){return Zy.has(n.tagName)||n.tabIndex!==-1}const vi=new WeakSet;function Kd(n){return i=>{i.key==="Enter"&&n(i)}}function ul(n,i){n.dispatchEvent(new PointerEvent("pointer"+i,{isPrimary:!0,bubbles:!0}))}const t0=(n,i)=>{const o=n.currentTarget;if(!o)return;const a=Kd(()=>{if(vi.has(o))return;ul(o,"down");const u=Kd(()=>{ul(o,"up")}),d=()=>ul(o,"cancel");o.addEventListener("keyup",u,i),o.addEventListener("blur",d,i)});o.addEventListener("keydown",a,i),o.addEventListener("blur",()=>o.removeEventListener("keydown",a),i)};function Gd(n){return du(n)&&!jp()}function n0(n,i,o={}){const[a,u,d]=Fp(n,o),f=p=>{const h=p.currentTarget;if(!Gd(p)||vi.has(h))return;vi.add(h);const v=i(p),g=(w,E)=>{window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",S),!(!Gd(w)||!vi.has(h))&&(vi.delete(h),typeof v=="function"&&v(w,{success:E}))},y=w=>{g(w,o.useGlobalTarget||Up(h,w.target))},S=w=>{g(w,!1)};window.addEventListener("pointerup",y,u),window.addEventListener("pointercancel",S,u)};return a.forEach(p=>{!e0(p)&&p.getAttribute("tabindex")===null&&(p.tabIndex=0),(o.useGlobalTarget?window:p).addEventListener("pointerdown",f,u),p.addEventListener("focus",v=>t0(v,u),u)}),d}function r0(n){return n==="x"||n==="y"?Rt[n]?null:(Rt[n]=!0,()=>{Rt[n]=!1}):Rt.x||Rt.y?null:(Rt.x=Rt.y=!0,()=>{Rt.x=Rt.y=!1})}const zp=new Set(["width","height","top","left","right","bottom",...Pr]);let $o;function i0(){$o=void 0}const It={now:()=>($o===void 0&&It.set(Ke.isProcessing||Zg.useManualTiming?Ke.timestamp:performance.now()),$o),set:n=>{$o=n,queueMicrotask(i0)}};function hu(n,i){n.indexOf(i)===-1&&n.push(i)}function pu(n,i){const o=n.indexOf(i);o>-1&&n.splice(o,1)}class mu{constructor(){this.subscriptions=[]}add(i){return hu(this.subscriptions,i),()=>pu(this.subscriptions,i)}notify(i,o,a){const u=this.subscriptions.length;if(u)if(u===1)this.subscriptions[0](i,o,a);else for(let d=0;d!isNaN(parseFloat(n));class s0{constructor(i,o={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(a,u=!0)=>{const d=It.now();this.updatedAt!==d&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),u&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(i),this.owner=o.owner}setCurrent(i){this.current=i,this.updatedAt=It.now(),this.canTrackVelocity===null&&i!==void 0&&(this.canTrackVelocity=o0(this.current))}setPrevFrameValue(i=this.current){this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt}onChange(i){return this.on("change",i)}on(i,o){this.events[i]||(this.events[i]=new mu);const a=this.events[i].add(o);return i==="change"?()=>{a(),Te.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const i in this.events)this.events[i].clear()}attach(i,o){this.passiveEffect=i,this.stopPassiveEffect=o}set(i,o=!0){!o||!this.passiveEffect?this.updateAndNotify(i,o):this.passiveEffect(i,this.updateAndNotify)}setWithVelocity(i,o,a){this.set(o),this.prev=void 0,this.prevFrameValue=i,this.prevUpdatedAt=this.updatedAt-a}jump(i,o=!0){this.updateAndNotify(i),this.prev=i,this.prevUpdatedAt=this.prevFrameValue=void 0,o&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const i=It.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||i-this.updatedAt>bd)return 0;const o=Math.min(this.updatedAt-this.prevUpdatedAt,bd);return Bp(parseFloat(this.current)-parseFloat(this.prevFrameValue),o)}start(i){return this.stop(),new Promise(o=>{this.hasAnimated=!0,this.animation=i(o),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Pi(n,i){return new s0(n,i)}function a0(n,i,o){n.hasValue(i)?n.getValue(i).set(o):n.addValue(i,Pi(o))}function l0(n,i){const o=ls(n,i);let{transitionEnd:a={},transition:u={},...d}=o||{};d={...d,...a};for(const f in d){const p=wy(d[f]);a0(n,f,p)}}function u0(n){return!!(qe(n)&&n.add)}function Ml(n,i){const o=n.getValue("willChange");if(u0(o))return o.add(i)}function Wp(n){return n.props[yp]}const Hp=(n,i,o)=>(((1-3*o+3*i)*n+(3*o-6*i))*n+3*i)*n,c0=1e-7,f0=12;function d0(n,i,o,a,u){let d,f,p=0;do f=i+(o-i)/2,d=Hp(f,a,u)-n,d>0?o=f:i=f;while(Math.abs(d)>c0&&++pd0(d,0,1,n,o);return d=>d===0||d===1?d:Hp(u(d),i,a)}const Kp=n=>i=>i<=.5?n(2*i)/2:(2-n(2*(1-i)))/2,Gp=n=>i=>1-n(1-i),bp=Ai(.33,1.53,.69,.99),vu=Gp(bp),Qp=Kp(vu),Yp=n=>(n*=2)<1?.5*vu(n):.5*(2-Math.pow(2,-10*(n-1))),gu=n=>1-Math.sin(Math.acos(n)),$p=Gp(gu),Xp=Kp(gu),qp=n=>/^0[^.\s]+$/u.test(n);function h0(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||qp(n):!0}const yi=n=>Math.round(n*1e5)/1e5,yu=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function p0(n){return n==null}const m0=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Su=(n,i)=>o=>!!(typeof o=="string"&&m0.test(o)&&o.startsWith(n)||i&&!p0(o)&&Object.prototype.hasOwnProperty.call(o,i)),Jp=(n,i,o)=>a=>{if(typeof a!="string")return a;const[u,d,f,p]=a.match(yu);return{[n]:parseFloat(u),[i]:parseFloat(d),[o]:parseFloat(f),alpha:p!==void 0?parseFloat(p):1}},v0=n=>qt(0,255,n),cl={...kr,transform:n=>Math.round(v0(n))},Bn={test:Su("rgb","red"),parse:Jp("red","green","blue"),transform:({red:n,green:i,blue:o,alpha:a=1})=>"rgba("+cl.transform(n)+", "+cl.transform(i)+", "+cl.transform(o)+", "+yi(Ti.transform(a))+")"};function g0(n){let i="",o="",a="",u="";return n.length>5?(i=n.substring(1,3),o=n.substring(3,5),a=n.substring(5,7),u=n.substring(7,9)):(i=n.substring(1,2),o=n.substring(2,3),a=n.substring(3,4),u=n.substring(4,5),i+=i,o+=o,a+=a,u+=u),{red:parseInt(i,16),green:parseInt(o,16),blue:parseInt(a,16),alpha:u?parseInt(u,16)/255:1}}const Dl={test:Su("#"),parse:g0,transform:Bn.transform},vr={test:Su("hsl","hue"),parse:Jp("hue","saturation","lightness"),transform:({hue:n,saturation:i,lightness:o,alpha:a=1})=>"hsla("+Math.round(n)+", "+Vt.transform(yi(i))+", "+Vt.transform(yi(o))+", "+yi(Ti.transform(a))+")"},Xe={test:n=>Bn.test(n)||Dl.test(n)||vr.test(n),parse:n=>Bn.test(n)?Bn.parse(n):vr.test(n)?vr.parse(n):Dl.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Bn.transform(n):vr.transform(n)},y0=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function S0(n){var i,o;return isNaN(n)&&typeof n=="string"&&(((i=n.match(yu))===null||i===void 0?void 0:i.length)||0)+(((o=n.match(y0))===null||o===void 0?void 0:o.length)||0)>0}const Zp="number",em="color",w0="var",x0="var(",Qd="${}",E0=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ki(n){const i=n.toString(),o=[],a={color:[],number:[],var:[]},u=[];let d=0;const p=i.replace(E0,h=>(Xe.test(h)?(a.color.push(d),u.push(em),o.push(Xe.parse(h))):h.startsWith(x0)?(a.var.push(d),u.push(w0),o.push(h)):(a.number.push(d),u.push(Zp),o.push(parseFloat(h))),++d,Qd)).split(Qd);return{values:o,split:p,indexes:a,types:u}}function tm(n){return ki(n).values}function nm(n){const{split:i,types:o}=ki(n),a=i.length;return u=>{let d="";for(let f=0;ftypeof n=="number"?0:n;function P0(n){const i=tm(n);return nm(n)(i.map(T0))}const wn={test:S0,parse:tm,createTransformer:nm,getAnimatableNone:P0},k0=new Set(["brightness","contrast","saturate","opacity"]);function C0(n){const[i,o]=n.slice(0,-1).split("(");if(i==="drop-shadow")return n;const[a]=o.match(yu)||[];if(!a)return n;const u=o.replace(a,"");let d=k0.has(i)?1:0;return a!==o&&(d*=100),i+"("+d+u+")"}const _0=/\b([a-z-]*)\(.*?\)/gu,Nl={...wn,getAnimatableNone:n=>{const i=n.match(_0);return i?i.map(C0).join(" "):n}},A0={...ru,color:Xe,backgroundColor:Xe,outlineColor:Xe,fill:Xe,stroke:Xe,borderColor:Xe,borderTopColor:Xe,borderRightColor:Xe,borderBottomColor:Xe,borderLeftColor:Xe,filter:Nl,WebkitFilter:Nl},wu=n=>A0[n];function rm(n,i){let o=wu(n);return o!==Nl&&(o=wn),o.getAnimatableNone?o.getAnimatableNone(i):void 0}const R0=new Set(["auto","none","0"]);function M0(n,i,o){let a=0,u;for(;an===kr||n===ne,$d=(n,i)=>parseFloat(n.split(", ")[i]),Xd=(n,i)=>(o,{transform:a})=>{if(a==="none"||!a)return 0;const u=a.match(/^matrix3d\((.+)\)$/u);if(u)return $d(u[1],i);{const d=a.match(/^matrix\((.+)\)$/u);return d?$d(d[1],n):0}},D0=new Set(["x","y","z"]),N0=Pr.filter(n=>!D0.has(n));function L0(n){const i=[];return N0.forEach(o=>{const a=n.getValue(o);a!==void 0&&(i.push([o,a.get()]),a.set(o.startsWith("scale")?1:0))}),i}const Er={width:({x:n},{paddingLeft:i="0",paddingRight:o="0"})=>n.max-n.min-parseFloat(i)-parseFloat(o),height:({y:n},{paddingTop:i="0",paddingBottom:o="0"})=>n.max-n.min-parseFloat(i)-parseFloat(o),top:(n,{top:i})=>parseFloat(i),left:(n,{left:i})=>parseFloat(i),bottom:({y:n},{top:i})=>parseFloat(i)+(n.max-n.min),right:({x:n},{left:i})=>parseFloat(i)+(n.max-n.min),x:Xd(4,13),y:Xd(5,14)};Er.translateX=Er.x;Er.translateY=Er.y;const Wn=new Set;let Ll=!1,Ol=!1;function im(){if(Ol){const n=Array.from(Wn).filter(a=>a.needsMeasurement),i=new Set(n.map(a=>a.element)),o=new Map;i.forEach(a=>{const u=L0(a);u.length&&(o.set(a,u),a.render())}),n.forEach(a=>a.measureInitialState()),i.forEach(a=>{a.render();const u=o.get(a);u&&u.forEach(([d,f])=>{var p;(p=a.getValue(d))===null||p===void 0||p.set(f)})}),n.forEach(a=>a.measureEndState()),n.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}Ol=!1,Ll=!1,Wn.forEach(n=>n.complete()),Wn.clear()}function om(){Wn.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Ol=!0)})}function O0(){om(),im()}class xu{constructor(i,o,a,u,d,f=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...i],this.onComplete=o,this.name=a,this.motionValue=u,this.element=d,this.isAsync=f}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Wn.add(this),Ll||(Ll=!0,Te.read(om),Te.resolveKeyframes(im))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:i,name:o,element:a,motionValue:u}=this;for(let d=0;d/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n),V0=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function I0(n){const i=V0.exec(n);if(!i)return[,];const[,o,a,u]=i;return[`--${o??a}`,u]}function am(n,i,o=1){const[a,u]=I0(n);if(!a)return;const d=window.getComputedStyle(i).getPropertyValue(a);if(d){const f=d.trim();return sm(f)?parseFloat(f):f}return nu(u)?am(u,i,o+1):u}const lm=n=>i=>i.test(n),j0={test:n=>n==="auto",parse:n=>n},um=[kr,ne,Vt,yn,Cy,ky,j0],qd=n=>um.find(lm(n));class cm extends xu{constructor(i,o,a,u,d){super(i,o,a,u,d,!0)}readKeyframes(){const{unresolvedKeyframes:i,element:o,name:a}=this;if(!o||!o.current)return;super.readKeyframes();for(let h=0;h{o.getValue(h).set(v)}),this.resolveNoneKeyframes()}}const Jd=(n,i)=>i==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(wn.test(n)||n==="0")&&!n.startsWith("url("));function F0(n){const i=n[0];if(n.length===1)return!0;for(let o=0;on!==null;function us(n,{repeat:i,repeatType:o="loop"},a){const u=n.filter(z0),d=i&&o!=="loop"&&i%2===1?0:u.length-1;return!d||a===void 0?u[d]:a}const B0=40;class fm{constructor({autoplay:i=!0,delay:o=0,type:a="keyframes",repeat:u=0,repeatDelay:d=0,repeatType:f="loop",...p}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=It.now(),this.options={autoplay:i,delay:o,type:a,repeat:u,repeatDelay:d,repeatType:f,...p},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>B0?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&O0(),this._resolved}onKeyframesResolved(i,o){this.resolvedAt=It.now(),this.hasAttemptedResolve=!0;const{name:a,type:u,velocity:d,delay:f,onComplete:p,onUpdate:h,isGenerator:v}=this.options;if(!v&&!U0(i,a,u,d))if(f)this.options.duration=0;else{h&&h(us(i,this.options,o)),p&&p(),this.resolveFinishedPromise();return}const g=this.initPlayback(i,o);g!==!1&&(this._resolved={keyframes:i,finalKeyframe:o,...g},this.onPostResolved())}onPostResolved(){}then(i,o){return this.currentFinishedPromise.then(i,o)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(i=>{this.resolveFinishedPromise=i})}}const Ae=(n,i,o)=>n+(i-n)*o;function fl(n,i,o){return o<0&&(o+=1),o>1&&(o-=1),o<1/6?n+(i-n)*6*o:o<1/2?i:o<2/3?n+(i-n)*(2/3-o)*6:n}function W0({hue:n,saturation:i,lightness:o,alpha:a}){n/=360,i/=100,o/=100;let u=0,d=0,f=0;if(!i)u=d=f=o;else{const p=o<.5?o*(1+i):o+i-o*i,h=2*o-p;u=fl(h,p,n+1/3),d=fl(h,p,n),f=fl(h,p,n-1/3)}return{red:Math.round(u*255),green:Math.round(d*255),blue:Math.round(f*255),alpha:a}}function es(n,i){return o=>o>0?i:n}const dl=(n,i,o)=>{const a=n*n,u=o*(i*i-a)+a;return u<0?0:Math.sqrt(u)},H0=[Dl,Bn,vr],K0=n=>H0.find(i=>i.test(n));function Zd(n){const i=K0(n);if(!i)return!1;let o=i.parse(n);return i===vr&&(o=W0(o)),o}const eh=(n,i)=>{const o=Zd(n),a=Zd(i);if(!o||!a)return es(n,i);const u={...o};return d=>(u.red=dl(o.red,a.red,d),u.green=dl(o.green,a.green,d),u.blue=dl(o.blue,a.blue,d),u.alpha=Ae(o.alpha,a.alpha,d),Bn.transform(u))},G0=(n,i)=>o=>i(n(o)),Ri=(...n)=>n.reduce(G0),Vl=new Set(["none","hidden"]);function b0(n,i){return Vl.has(n)?o=>o<=0?n:i:o=>o>=1?i:n}function Q0(n,i){return o=>Ae(n,i,o)}function Eu(n){return typeof n=="number"?Q0:typeof n=="string"?nu(n)?es:Xe.test(n)?eh:X0:Array.isArray(n)?dm:typeof n=="object"?Xe.test(n)?eh:Y0:es}function dm(n,i){const o=[...n],a=o.length,u=n.map((d,f)=>Eu(d)(d,i[f]));return d=>{for(let f=0;f{for(const d in a)o[d]=a[d](u);return o}}function $0(n,i){var o;const a=[],u={color:0,var:0,number:0};for(let d=0;d{const o=wn.createTransformer(i),a=ki(n),u=ki(i);return a.indexes.var.length===u.indexes.var.length&&a.indexes.color.length===u.indexes.color.length&&a.indexes.number.length>=u.indexes.number.length?Vl.has(n)&&!u.values.length||Vl.has(i)&&!a.values.length?b0(n,i):Ri(dm($0(a,u),u.values),o):es(n,i)};function hm(n,i,o){return typeof n=="number"&&typeof i=="number"&&typeof o=="number"?Ae(n,i,o):Eu(n)(n,i)}const q0=5;function pm(n,i,o){const a=Math.max(i-q0,0);return Bp(o-n(a),i-a)}const Me={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},hl=.001;function J0({duration:n=Me.duration,bounce:i=Me.bounce,velocity:o=Me.velocity,mass:a=Me.mass}){let u,d,f=1-i;f=qt(Me.minDamping,Me.maxDamping,f),n=qt(Me.minDuration,Me.maxDuration,Xt(n)),f<1?(u=v=>{const g=v*f,y=g*n,S=g-o,w=Il(v,f),E=Math.exp(-y);return hl-S/w*E},d=v=>{const y=v*f*n,S=y*o+o,w=Math.pow(f,2)*Math.pow(v,2)*n,E=Math.exp(-y),k=Il(Math.pow(v,2),f);return(-u(v)+hl>0?-1:1)*((S-w)*E)/k}):(u=v=>{const g=Math.exp(-v*n),y=(v-o)*n+1;return-hl+g*y},d=v=>{const g=Math.exp(-v*n),y=(o-v)*(n*n);return g*y});const p=5/n,h=eS(u,d,p);if(n=$t(n),isNaN(h))return{stiffness:Me.stiffness,damping:Me.damping,duration:n};{const v=Math.pow(h,2)*a;return{stiffness:v,damping:f*2*Math.sqrt(a*v),duration:n}}}const Z0=12;function eS(n,i,o){let a=o;for(let u=1;un[o]!==void 0)}function rS(n){let i={velocity:Me.velocity,stiffness:Me.stiffness,damping:Me.damping,mass:Me.mass,isResolvedFromDuration:!1,...n};if(!th(n,nS)&&th(n,tS))if(n.visualDuration){const o=n.visualDuration,a=2*Math.PI/(o*1.2),u=a*a,d=2*qt(.05,1,1-(n.bounce||0))*Math.sqrt(u);i={...i,mass:Me.mass,stiffness:u,damping:d}}else{const o=J0(n);i={...i,...o,mass:Me.mass},i.isResolvedFromDuration=!0}return i}function mm(n=Me.visualDuration,i=Me.bounce){const o=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:i}:n;let{restSpeed:a,restDelta:u}=o;const d=o.keyframes[0],f=o.keyframes[o.keyframes.length-1],p={done:!1,value:d},{stiffness:h,damping:v,mass:g,duration:y,velocity:S,isResolvedFromDuration:w}=rS({...o,velocity:-Xt(o.velocity||0)}),E=S||0,k=v/(2*Math.sqrt(h*g)),A=f-d,C=Xt(Math.sqrt(h/g)),L=Math.abs(A)<5;a||(a=L?Me.restSpeed.granular:Me.restSpeed.default),u||(u=L?Me.restDelta.granular:Me.restDelta.default);let U;if(k<1){const N=Il(C,k);U=O=>{const Q=Math.exp(-k*C*O);return f-Q*((E+k*C*A)/N*Math.sin(N*O)+A*Math.cos(N*O))}}else if(k===1)U=N=>f-Math.exp(-C*N)*(A+(E+C*A)*N);else{const N=C*Math.sqrt(k*k-1);U=O=>{const Q=Math.exp(-k*C*O),q=Math.min(N*O,300);return f-Q*((E+k*C*A)*Math.sinh(q)+N*A*Math.cosh(q))/N}}const K={calculatedDuration:w&&y||null,next:N=>{const O=U(N);if(w)p.done=N>=y;else{let Q=0;k<1&&(Q=N===0?$t(E):pm(U,N,O));const q=Math.abs(Q)<=a,de=Math.abs(f-O)<=u;p.done=q&&de}return p.value=p.done?f:O,p},toString:()=>{const N=Math.min(Lp(K),Al),O=Op(Q=>K.next(N*Q).value,N,30);return N+"ms "+O}};return K}function nh({keyframes:n,velocity:i=0,power:o=.8,timeConstant:a=325,bounceDamping:u=10,bounceStiffness:d=500,modifyTarget:f,min:p,max:h,restDelta:v=.5,restSpeed:g}){const y=n[0],S={done:!1,value:y},w=q=>p!==void 0&&qh,E=q=>p===void 0?h:h===void 0||Math.abs(p-q)-k*Math.exp(-q/a),U=q=>C+L(q),K=q=>{const de=L(q),ge=U(q);S.done=Math.abs(de)<=v,S.value=S.done?C:ge};let N,O;const Q=q=>{w(S.value)&&(N=q,O=mm({keyframes:[S.value,E(S.value)],velocity:pm(U,q,S.value),damping:u,stiffness:d,restDelta:v,restSpeed:g}))};return Q(0),{calculatedDuration:null,next:q=>{let de=!1;return!O&&N===void 0&&(de=!0,K(q),Q(q)),N!==void 0&&q>=N?O.next(q-N):(!de&&K(q),S)}}}const iS=Ai(.42,0,1,1),oS=Ai(0,0,.58,1),vm=Ai(.42,0,.58,1),sS=n=>Array.isArray(n)&&typeof n[0]!="number",aS={linear:dt,easeIn:iS,easeInOut:vm,easeOut:oS,circIn:gu,circInOut:Xp,circOut:$p,backIn:vu,backInOut:Qp,backOut:bp,anticipate:Yp},rh=n=>{if(fu(n)){hp(n.length===4);const[i,o,a,u]=n;return Ai(i,o,a,u)}else if(typeof n=="string")return aS[n];return n};function lS(n,i,o){const a=[],u=o||hm,d=n.length-1;for(let f=0;fi[0];if(d===2&&i[0]===i[1])return()=>i[1];const f=n[0]===n[1];n[0]>n[d-1]&&(n=[...n].reverse(),i=[...i].reverse());const p=lS(i,a,u),h=p.length,v=g=>{if(f&&g1)for(;yv(qt(n[0],n[d-1],g)):v}function cS(n,i){const o=n[n.length-1];for(let a=1;a<=i;a++){const u=wr(0,i,a);n.push(Ae(o,1,u))}}function fS(n){const i=[0];return cS(i,n.length-1),i}function dS(n,i){return n.map(o=>o*i)}function hS(n,i){return n.map(()=>i||vm).splice(0,n.length-1)}function ts({duration:n=300,keyframes:i,times:o,ease:a="easeInOut"}){const u=sS(a)?a.map(rh):rh(a),d={done:!1,value:i[0]},f=dS(o&&o.length===i.length?o:fS(i),n),p=uS(f,i,{ease:Array.isArray(u)?u:hS(i,u)});return{calculatedDuration:n,next:h=>(d.value=p(h),d.done=h>=n,d)}}const pS=n=>{const i=({timestamp:o})=>n(o);return{start:()=>Te.update(i,!0),stop:()=>Sn(i),now:()=>Ke.isProcessing?Ke.timestamp:It.now()}},mS={decay:nh,inertia:nh,tween:ts,keyframes:ts,spring:mm},vS=n=>n/100;class Tu extends fm{constructor(i){super(i),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:h}=this.options;h&&h()};const{name:o,motionValue:a,element:u,keyframes:d}=this.options,f=(u==null?void 0:u.KeyframeResolver)||xu,p=(h,v)=>this.onKeyframesResolved(h,v);this.resolver=new f(d,p,o,a,u),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(i){const{type:o="keyframes",repeat:a=0,repeatDelay:u=0,repeatType:d,velocity:f=0}=this.options,p=cu(o)?o:mS[o]||ts;let h,v;p!==ts&&typeof i[0]!="number"&&(h=Ri(vS,hm(i[0],i[1])),i=[0,100]);const g=p({...this.options,keyframes:i});d==="mirror"&&(v=p({...this.options,keyframes:[...i].reverse(),velocity:-f})),g.calculatedDuration===null&&(g.calculatedDuration=Lp(g));const{calculatedDuration:y}=g,S=y+u,w=S*(a+1)-u;return{generator:g,mirroredGenerator:v,mapPercentToKeyframes:h,calculatedDuration:y,resolvedDuration:S,totalDuration:w}}onPostResolved(){const{autoplay:i=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!i?this.pause():this.state=this.pendingPlayState}tick(i,o=!1){const{resolved:a}=this;if(!a){const{keyframes:q}=this.options;return{done:!0,value:q[q.length-1]}}const{finalKeyframe:u,generator:d,mirroredGenerator:f,mapPercentToKeyframes:p,keyframes:h,calculatedDuration:v,totalDuration:g,resolvedDuration:y}=a;if(this.startTime===null)return d.next(0);const{delay:S,repeat:w,repeatType:E,repeatDelay:k,onUpdate:A}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,i):this.speed<0&&(this.startTime=Math.min(i-g/this.speed,this.startTime)),o?this.currentTime=i:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(i-this.startTime)*this.speed;const C=this.currentTime-S*(this.speed>=0?1:-1),L=this.speed>=0?C<0:C>g;this.currentTime=Math.max(C,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=g);let U=this.currentTime,K=d;if(w){const q=Math.min(this.currentTime,g)/y;let de=Math.floor(q),ge=q%1;!ge&&q>=1&&(ge=1),ge===1&&de--,de=Math.min(de,w+1),!!(de%2)&&(E==="reverse"?(ge=1-ge,k&&(ge-=k/y)):E==="mirror"&&(K=f)),U=qt(0,1,ge)*y}const N=L?{done:!1,value:h[0]}:K.next(U);p&&(N.value=p(N.value));let{done:O}=N;!L&&v!==null&&(O=this.speed>=0?this.currentTime>=g:this.currentTime<=0);const Q=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&O);return Q&&u!==void 0&&(N.value=us(h,this.options,u)),A&&A(N.value),Q&&this.finish(),N}get duration(){const{resolved:i}=this;return i?Xt(i.calculatedDuration):0}get time(){return Xt(this.currentTime)}set time(i){i=$t(i),this.currentTime=i,this.holdTime!==null||this.speed===0?this.holdTime=i:this.driver&&(this.startTime=this.driver.now()-i/this.speed)}get speed(){return this.playbackSpeed}set speed(i){const o=this.playbackSpeed!==i;this.playbackSpeed=i,o&&(this.time=Xt(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:i=pS,onPlay:o,startTime:a}=this.options;this.driver||(this.driver=i(d=>this.tick(d))),o&&o();const u=this.driver.now();this.holdTime!==null?this.startTime=u-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=u):this.startTime=a??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var i;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(i=this.currentTime)!==null&&i!==void 0?i:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:i}=this.options;i&&i()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(i){return this.startTime=0,this.tick(i,!0)}}const gS=new Set(["opacity","clipPath","filter","transform"]);function yS(n,i,o,{delay:a=0,duration:u=300,repeat:d=0,repeatType:f="loop",ease:p="easeInOut",times:h}={}){const v={[i]:o};h&&(v.offset=h);const g=Ip(p,u);return Array.isArray(g)&&(v.easing=g),n.animate(v,{delay:a,duration:u,easing:Array.isArray(g)?"linear":g,fill:"both",iterations:d+1,direction:f==="reverse"?"alternate":"normal"})}const SS=$l(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),ns=10,wS=2e4;function xS(n){return cu(n.type)||n.type==="spring"||!Vp(n.ease)}function ES(n,i){const o=new Tu({...i,keyframes:n,repeat:0,delay:0,isGenerator:!0});let a={done:!1,value:n[0]};const u=[];let d=0;for(;!a.done&&dthis.onKeyframesResolved(f,p),o,a,u),this.resolver.scheduleResolve()}initPlayback(i,o){let{duration:a=300,times:u,ease:d,type:f,motionValue:p,name:h,startTime:v}=this.options;if(!p.owner||!p.owner.current)return!1;if(typeof d=="string"&&Zo()&&TS(d)&&(d=gm[d]),xS(this.options)){const{onComplete:y,onUpdate:S,motionValue:w,element:E,...k}=this.options,A=ES(i,k);i=A.keyframes,i.length===1&&(i[1]=i[0]),a=A.duration,u=A.times,d=A.ease,f="keyframes"}const g=yS(p.owner.current,h,i,{...this.options,duration:a,times:u,ease:d});return g.startTime=v??this.calcStartTime(),this.pendingTimeline?(Wd(g,this.pendingTimeline),this.pendingTimeline=void 0):g.onfinish=()=>{const{onComplete:y}=this.options;p.set(us(i,this.options,o)),y&&y(),this.cancel(),this.resolveFinishedPromise()},{animation:g,duration:a,times:u,type:f,ease:d,keyframes:i}}get duration(){const{resolved:i}=this;if(!i)return 0;const{duration:o}=i;return Xt(o)}get time(){const{resolved:i}=this;if(!i)return 0;const{animation:o}=i;return Xt(o.currentTime||0)}set time(i){const{resolved:o}=this;if(!o)return;const{animation:a}=o;a.currentTime=$t(i)}get speed(){const{resolved:i}=this;if(!i)return 1;const{animation:o}=i;return o.playbackRate}set speed(i){const{resolved:o}=this;if(!o)return;const{animation:a}=o;a.playbackRate=i}get state(){const{resolved:i}=this;if(!i)return"idle";const{animation:o}=i;return o.playState}get startTime(){const{resolved:i}=this;if(!i)return null;const{animation:o}=i;return o.startTime}attachTimeline(i){if(!this._resolved)this.pendingTimeline=i;else{const{resolved:o}=this;if(!o)return dt;const{animation:a}=o;Wd(a,i)}return dt}play(){if(this.isStopped)return;const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.playState==="finished"&&this.updateFinishedPromise(),o.play()}pause(){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:i}=this;if(!i)return;const{animation:o,keyframes:a,duration:u,type:d,ease:f,times:p}=i;if(o.playState==="idle"||o.playState==="finished")return;if(this.time){const{motionValue:v,onUpdate:g,onComplete:y,element:S,...w}=this.options,E=new Tu({...w,keyframes:a,duration:u,type:d,ease:f,times:p,isGenerator:!0}),k=$t(this.time);v.setWithVelocity(E.sample(k-ns).value,E.sample(k).value,ns)}const{onStop:h}=this.options;h&&h(),this.cancel()}complete(){const{resolved:i}=this;i&&i.animation.finish()}cancel(){const{resolved:i}=this;i&&i.animation.cancel()}static supports(i){const{motionValue:o,name:a,repeatDelay:u,repeatType:d,damping:f,type:p}=i;if(!o||!o.owner||!(o.owner.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:v}=o.owner.getProps();return SS()&&a&&gS.has(a)&&!h&&!v&&!u&&d!=="mirror"&&f!==0&&p!=="inertia"}}const PS={type:"spring",stiffness:500,damping:25,restSpeed:10},kS=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),CS={type:"keyframes",duration:.8},_S={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},AS=(n,{keyframes:i})=>i.length>2?CS:Hn.has(n)?n.startsWith("scale")?kS(i[1]):PS:_S;function RS({when:n,delay:i,delayChildren:o,staggerChildren:a,staggerDirection:u,repeat:d,repeatType:f,repeatDelay:p,from:h,elapsed:v,...g}){return!!Object.keys(g).length}const Pu=(n,i,o,a={},u,d)=>f=>{const p=uu(a,n)||{},h=p.delay||a.delay||0;let{elapsed:v=0}=a;v=v-$t(h);let g={keyframes:Array.isArray(o)?o:[null,o],ease:"easeOut",velocity:i.getVelocity(),...p,delay:-v,onUpdate:S=>{i.set(S),p.onUpdate&&p.onUpdate(S)},onComplete:()=>{f(),p.onComplete&&p.onComplete()},name:n,motionValue:i,element:d?void 0:u};RS(p)||(g={...g,...AS(n,g)}),g.duration&&(g.duration=$t(g.duration)),g.repeatDelay&&(g.repeatDelay=$t(g.repeatDelay)),g.from!==void 0&&(g.keyframes[0]=g.from);let y=!1;if((g.type===!1||g.duration===0&&!g.repeatDelay)&&(g.duration=0,g.delay===0&&(y=!0)),y&&!d&&i.get()!==void 0){const S=us(g.keyframes,p);if(S!==void 0)return Te.update(()=>{g.onUpdate(S),g.onComplete()}),new Yy([])}return!d&&ih.supports(g)?new ih(g):new Tu(g)};function MS({protectedKeys:n,needsAnimating:i},o){const a=n.hasOwnProperty(o)&&i[o]!==!0;return i[o]=!1,a}function ym(n,i,{delay:o=0,transitionOverride:a,type:u}={}){var d;let{transition:f=n.getDefaultTransition(),transitionEnd:p,...h}=i;a&&(f=a);const v=[],g=u&&n.animationState&&n.animationState.getState()[u];for(const y in h){const S=n.getValue(y,(d=n.latestValues[y])!==null&&d!==void 0?d:null),w=h[y];if(w===void 0||g&&MS(g,y))continue;const E={delay:o,...uu(f||{},y)};let k=!1;if(window.MotionHandoffAnimation){const C=Wp(n);if(C){const L=window.MotionHandoffAnimation(C,y,Te);L!==null&&(E.startTime=L,k=!0)}}Ml(n,y),S.start(Pu(y,S,w,n.shouldReduceMotion&&zp.has(y)?{type:!1}:E,n,k));const A=S.animation;A&&v.push(A)}return p&&Promise.all(v).then(()=>{Te.update(()=>{p&&l0(n,p)})}),v}function jl(n,i,o={}){var a;const u=ls(n,i,o.type==="exit"?(a=n.presenceContext)===null||a===void 0?void 0:a.custom:void 0);let{transition:d=n.getDefaultTransition()||{}}=u||{};o.transitionOverride&&(d=o.transitionOverride);const f=u?()=>Promise.all(ym(n,u,o)):()=>Promise.resolve(),p=n.variantChildren&&n.variantChildren.size?(v=0)=>{const{delayChildren:g=0,staggerChildren:y,staggerDirection:S}=d;return DS(n,i,g+v,y,S,o)}:()=>Promise.resolve(),{when:h}=d;if(h){const[v,g]=h==="beforeChildren"?[f,p]:[p,f];return v().then(()=>g())}else return Promise.all([f(),p(o.delay)])}function DS(n,i,o=0,a=0,u=1,d){const f=[],p=(n.variantChildren.size-1)*a,h=u===1?(v=0)=>v*a:(v=0)=>p-v*a;return Array.from(n.variantChildren).sort(NS).forEach((v,g)=>{v.notify("AnimationStart",i),f.push(jl(v,i,{...d,delay:o+h(g)}).then(()=>v.notify("AnimationComplete",i)))}),Promise.all(f)}function NS(n,i){return n.sortNodePosition(i)}function LS(n,i,o={}){n.notify("AnimationStart",i);let a;if(Array.isArray(i)){const u=i.map(d=>jl(n,d,o));a=Promise.all(u)}else if(typeof i=="string")a=jl(n,i,o);else{const u=typeof i=="function"?ls(n,i,o.custom):i;a=Promise.all(ym(n,u,o))}return a.then(()=>{n.notify("AnimationComplete",i)})}const OS=ql.length;function Sm(n){if(!n)return;if(!n.isControllingVariants){const o=n.parent?Sm(n.parent)||{}:{};return n.props.initial!==void 0&&(o.initial=n.props.initial),o}const i={};for(let o=0;oPromise.all(i.map(({animation:o,options:a})=>LS(n,o,a)))}function FS(n){let i=jS(n),o=oh(),a=!0;const u=h=>(v,g)=>{var y;const S=ls(n,g,h==="exit"?(y=n.presenceContext)===null||y===void 0?void 0:y.custom:void 0);if(S){const{transition:w,transitionEnd:E,...k}=S;v={...v,...k,...E}}return v};function d(h){i=h(n)}function f(h){const{props:v}=n,g=Sm(n.parent)||{},y=[],S=new Set;let w={},E=1/0;for(let A=0;AE&&K,de=!1;const ge=Array.isArray(U)?U:[U];let Ie=ge.reduce(u(C),{});N===!1&&(Ie={});const{prevResolvedValues:ke={}}=L,we={...ke,...Ie},De=se=>{q=!0,S.has(se)&&(de=!0,S.delete(se)),L.needsAnimating[se]=!0;const W=n.getValue(se);W&&(W.liveStyle=!1)};for(const se in we){const W=Ie[se],G=ke[se];if(w.hasOwnProperty(se))continue;let z=!1;_l(W)&&_l(G)?z=!Np(W,G):z=W!==G,z?W!=null?De(se):S.add(se):W!==void 0&&S.has(se)?De(se):L.protectedKeys[se]=!0}L.prevProp=U,L.prevResolvedValues=Ie,L.isActive&&(w={...w,...Ie}),a&&n.blockInitialAnimation&&(q=!1),q&&(!(O&&Q)||de)&&y.push(...ge.map(se=>({animation:se,options:{type:C}})))}if(S.size){const A={};S.forEach(C=>{const L=n.getBaseTarget(C),U=n.getValue(C);U&&(U.liveStyle=!0),A[C]=L??null}),y.push({animation:A})}let k=!!y.length;return a&&(v.initial===!1||v.initial===v.animate)&&!n.manuallyAnimateOnMount&&(k=!1),a=!1,k?i(y):Promise.resolve()}function p(h,v){var g;if(o[h].isActive===v)return Promise.resolve();(g=n.variantChildren)===null||g===void 0||g.forEach(S=>{var w;return(w=S.animationState)===null||w===void 0?void 0:w.setActive(h,v)}),o[h].isActive=v;const y=f(h);for(const S in o)o[S].protectedKeys={};return y}return{animateChanges:f,setActive:p,setAnimateFunction:d,getState:()=>o,reset:()=>{o=oh(),a=!0}}}function US(n,i){return typeof i=="string"?i!==n:Array.isArray(i)?!Np(i,n):!1}function Vn(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function oh(){return{animate:Vn(!0),whileInView:Vn(),whileHover:Vn(),whileTap:Vn(),whileDrag:Vn(),whileFocus:Vn(),exit:Vn()}}class xn{constructor(i){this.isMounted=!1,this.node=i}update(){}}class zS extends xn{constructor(i){super(i),i.animationState||(i.animationState=FS(i))}updateAnimationControlsSubscription(){const{animate:i}=this.node.getProps();ss(i)&&(this.unmountControls=i.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:i}=this.node.getProps(),{animate:o}=this.node.prevProps||{};i!==o&&this.updateAnimationControlsSubscription()}unmount(){var i;this.node.animationState.reset(),(i=this.unmountControls)===null||i===void 0||i.call(this)}}let BS=0;class WS extends xn{constructor(){super(...arguments),this.id=BS++}update(){if(!this.node.presenceContext)return;const{isPresent:i,onExitComplete:o}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||i===a)return;const u=this.node.animationState.setActive("exit",!i);o&&!i&&u.then(()=>o(this.id))}mount(){const{register:i}=this.node.presenceContext||{};i&&(this.unmount=i(this.id))}unmount(){}}const HS={animation:{Feature:zS},exit:{Feature:WS}};function Ci(n,i,o,a={passive:!0}){return n.addEventListener(i,o,a),()=>n.removeEventListener(i,o)}function Mi(n){return{point:{x:n.pageX,y:n.pageY}}}const KS=n=>i=>du(i)&&n(i,Mi(i));function Si(n,i,o,a){return Ci(n,i,KS(o),a)}const sh=(n,i)=>Math.abs(n-i);function GS(n,i){const o=sh(n.x,i.x),a=sh(n.y,i.y);return Math.sqrt(o**2+a**2)}class wm{constructor(i,o,{transformPagePoint:a,contextWindow:u,dragSnapToOrigin:d=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const y=ml(this.lastMoveEventInfo,this.history),S=this.startEvent!==null,w=GS(y.offset,{x:0,y:0})>=3;if(!S&&!w)return;const{point:E}=y,{timestamp:k}=Ke;this.history.push({...E,timestamp:k});const{onStart:A,onMove:C}=this.handlers;S||(A&&A(this.lastMoveEvent,y),this.startEvent=this.lastMoveEvent),C&&C(this.lastMoveEvent,y)},this.handlePointerMove=(y,S)=>{this.lastMoveEvent=y,this.lastMoveEventInfo=pl(S,this.transformPagePoint),Te.update(this.updatePoint,!0)},this.handlePointerUp=(y,S)=>{this.end();const{onEnd:w,onSessionEnd:E,resumeAnimation:k}=this.handlers;if(this.dragSnapToOrigin&&k&&k(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const A=ml(y.type==="pointercancel"?this.lastMoveEventInfo:pl(S,this.transformPagePoint),this.history);this.startEvent&&w&&w(y,A),E&&E(y,A)},!du(i))return;this.dragSnapToOrigin=d,this.handlers=o,this.transformPagePoint=a,this.contextWindow=u||window;const f=Mi(i),p=pl(f,this.transformPagePoint),{point:h}=p,{timestamp:v}=Ke;this.history=[{...h,timestamp:v}];const{onSessionStart:g}=o;g&&g(i,ml(p,this.history)),this.removeListeners=Ri(Si(this.contextWindow,"pointermove",this.handlePointerMove),Si(this.contextWindow,"pointerup",this.handlePointerUp),Si(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(i){this.handlers=i}end(){this.removeListeners&&this.removeListeners(),Sn(this.updatePoint)}}function pl(n,i){return i?{point:i(n.point)}:n}function ah(n,i){return{x:n.x-i.x,y:n.y-i.y}}function ml({point:n},i){return{point:n,delta:ah(n,xm(i)),offset:ah(n,bS(i)),velocity:QS(i,.1)}}function bS(n){return n[0]}function xm(n){return n[n.length-1]}function QS(n,i){if(n.length<2)return{x:0,y:0};let o=n.length-1,a=null;const u=xm(n);for(;o>=0&&(a=n[o],!(u.timestamp-a.timestamp>$t(i)));)o--;if(!a)return{x:0,y:0};const d=Xt(u.timestamp-a.timestamp);if(d===0)return{x:0,y:0};const f={x:(u.x-a.x)/d,y:(u.y-a.y)/d};return f.x===1/0&&(f.x=0),f.y===1/0&&(f.y=0),f}const Em=1e-4,YS=1-Em,$S=1+Em,Tm=.01,XS=0-Tm,qS=0+Tm;function ht(n){return n.max-n.min}function JS(n,i,o){return Math.abs(n-i)<=o}function lh(n,i,o,a=.5){n.origin=a,n.originPoint=Ae(i.min,i.max,n.origin),n.scale=ht(o)/ht(i),n.translate=Ae(o.min,o.max,n.origin)-n.originPoint,(n.scale>=YS&&n.scale<=$S||isNaN(n.scale))&&(n.scale=1),(n.translate>=XS&&n.translate<=qS||isNaN(n.translate))&&(n.translate=0)}function wi(n,i,o,a){lh(n.x,i.x,o.x,a?a.originX:void 0),lh(n.y,i.y,o.y,a?a.originY:void 0)}function uh(n,i,o){n.min=o.min+i.min,n.max=n.min+ht(i)}function ZS(n,i,o){uh(n.x,i.x,o.x),uh(n.y,i.y,o.y)}function ch(n,i,o){n.min=i.min-o.min,n.max=n.min+ht(i)}function xi(n,i,o){ch(n.x,i.x,o.x),ch(n.y,i.y,o.y)}function e1(n,{min:i,max:o},a){return i!==void 0&&no&&(n=a?Ae(o,n,a.max):Math.min(n,o)),n}function fh(n,i,o){return{min:i!==void 0?n.min+i:void 0,max:o!==void 0?n.max+o-(n.max-n.min):void 0}}function t1(n,{top:i,left:o,bottom:a,right:u}){return{x:fh(n.x,o,u),y:fh(n.y,i,a)}}function dh(n,i){let o=i.min-n.min,a=i.max-n.max;return i.max-i.mina?o=wr(i.min,i.max-a,n.min):a>u&&(o=wr(n.min,n.max-u,i.min)),qt(0,1,o)}function i1(n,i){const o={};return i.min!==void 0&&(o.min=i.min-n.min),i.max!==void 0&&(o.max=i.max-n.min),o}const Fl=.35;function o1(n=Fl){return n===!1?n=0:n===!0&&(n=Fl),{x:hh(n,"left","right"),y:hh(n,"top","bottom")}}function hh(n,i,o){return{min:ph(n,i),max:ph(n,o)}}function ph(n,i){return typeof n=="number"?n:n[i]||0}const mh=()=>({translate:0,scale:1,origin:0,originPoint:0}),gr=()=>({x:mh(),y:mh()}),vh=()=>({min:0,max:0}),Oe=()=>({x:vh(),y:vh()});function xt(n){return[n("x"),n("y")]}function Pm({top:n,left:i,right:o,bottom:a}){return{x:{min:i,max:o},y:{min:n,max:a}}}function s1({x:n,y:i}){return{top:i.min,right:n.max,bottom:i.max,left:n.min}}function a1(n,i){if(!i)return n;const o=i({x:n.left,y:n.top}),a=i({x:n.right,y:n.bottom});return{top:o.y,left:o.x,bottom:a.y,right:a.x}}function vl(n){return n===void 0||n===1}function Ul({scale:n,scaleX:i,scaleY:o}){return!vl(n)||!vl(i)||!vl(o)}function Un(n){return Ul(n)||km(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function km(n){return gh(n.x)||gh(n.y)}function gh(n){return n&&n!=="0%"}function rs(n,i,o){const a=n-o,u=i*a;return o+u}function yh(n,i,o,a,u){return u!==void 0&&(n=rs(n,u,a)),rs(n,o,a)+i}function zl(n,i=0,o=1,a,u){n.min=yh(n.min,i,o,a,u),n.max=yh(n.max,i,o,a,u)}function Cm(n,{x:i,y:o}){zl(n.x,i.translate,i.scale,i.originPoint),zl(n.y,o.translate,o.scale,o.originPoint)}const Sh=.999999999999,wh=1.0000000000001;function l1(n,i,o,a=!1){const u=o.length;if(!u)return;i.x=i.y=1;let d,f;for(let p=0;pSh&&(i.x=1),i.ySh&&(i.y=1)}function yr(n,i){n.min=n.min+i,n.max=n.max+i}function xh(n,i,o,a,u=.5){const d=Ae(n.min,n.max,u);zl(n,i,o,d,a)}function Sr(n,i){xh(n.x,i.x,i.scaleX,i.scale,i.originX),xh(n.y,i.y,i.scaleY,i.scale,i.originY)}function _m(n,i){return Pm(a1(n.getBoundingClientRect(),i))}function u1(n,i,o){const a=_m(n,o),{scroll:u}=i;return u&&(yr(a.x,u.offset.x),yr(a.y,u.offset.y)),a}const Am=({current:n})=>n?n.ownerDocument.defaultView:null,c1=new WeakMap;class f1{constructor(i){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Oe(),this.visualElement=i}start(i,{snapToCursor:o=!1}={}){const{presenceContext:a}=this.visualElement;if(a&&a.isPresent===!1)return;const u=g=>{const{dragSnapToOrigin:y}=this.getProps();y?this.pauseAnimation():this.stopAnimation(),o&&this.snapToCursor(Mi(g).point)},d=(g,y)=>{const{drag:S,dragPropagation:w,onDragStart:E}=this.getProps();if(S&&!w&&(this.openDragLock&&this.openDragLock(),this.openDragLock=r0(S),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xt(A=>{let C=this.getAxisMotionValue(A).get()||0;if(Vt.test(C)){const{projection:L}=this.visualElement;if(L&&L.layout){const U=L.layout.layoutBox[A];U&&(C=ht(U)*(parseFloat(C)/100))}}this.originPoint[A]=C}),E&&Te.postRender(()=>E(g,y)),Ml(this.visualElement,"transform");const{animationState:k}=this.visualElement;k&&k.setActive("whileDrag",!0)},f=(g,y)=>{const{dragPropagation:S,dragDirectionLock:w,onDirectionLock:E,onDrag:k}=this.getProps();if(!S&&!this.openDragLock)return;const{offset:A}=y;if(w&&this.currentDirection===null){this.currentDirection=d1(A),this.currentDirection!==null&&E&&E(this.currentDirection);return}this.updateAxis("x",y.point,A),this.updateAxis("y",y.point,A),this.visualElement.render(),k&&k(g,y)},p=(g,y)=>this.stop(g,y),h=()=>xt(g=>{var y;return this.getAnimationState(g)==="paused"&&((y=this.getAxisMotionValue(g).animation)===null||y===void 0?void 0:y.play())}),{dragSnapToOrigin:v}=this.getProps();this.panSession=new wm(i,{onSessionStart:u,onStart:d,onMove:f,onSessionEnd:p,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:v,contextWindow:Am(this.visualElement)})}stop(i,o){const a=this.isDragging;if(this.cancel(),!a)return;const{velocity:u}=o;this.startAnimation(u);const{onDragEnd:d}=this.getProps();d&&Te.postRender(()=>d(i,o))}cancel(){this.isDragging=!1;const{projection:i,animationState:o}=this.visualElement;i&&(i.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),o&&o.setActive("whileDrag",!1)}updateAxis(i,o,a){const{drag:u}=this.getProps();if(!a||!bo(i,u,this.currentDirection))return;const d=this.getAxisMotionValue(i);let f=this.originPoint[i]+a[i];this.constraints&&this.constraints[i]&&(f=e1(f,this.constraints[i],this.elastic[i])),d.set(f)}resolveConstraints(){var i;const{dragConstraints:o,dragElastic:a}=this.getProps(),u=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(i=this.visualElement.projection)===null||i===void 0?void 0:i.layout,d=this.constraints;o&&mr(o)?this.constraints||(this.constraints=this.resolveRefConstraints()):o&&u?this.constraints=t1(u.layoutBox,o):this.constraints=!1,this.elastic=o1(a),d!==this.constraints&&u&&this.constraints&&!this.hasMutatedConstraints&&xt(f=>{this.constraints!==!1&&this.getAxisMotionValue(f)&&(this.constraints[f]=i1(u.layoutBox[f],this.constraints[f]))})}resolveRefConstraints(){const{dragConstraints:i,onMeasureDragConstraints:o}=this.getProps();if(!i||!mr(i))return!1;const a=i.current,{projection:u}=this.visualElement;if(!u||!u.layout)return!1;const d=u1(a,u.root,this.visualElement.getTransformPagePoint());let f=n1(u.layout.layoutBox,d);if(o){const p=o(s1(f));this.hasMutatedConstraints=!!p,p&&(f=Pm(p))}return f}startAnimation(i){const{drag:o,dragMomentum:a,dragElastic:u,dragTransition:d,dragSnapToOrigin:f,onDragTransitionEnd:p}=this.getProps(),h=this.constraints||{},v=xt(g=>{if(!bo(g,o,this.currentDirection))return;let y=h&&h[g]||{};f&&(y={min:0,max:0});const S=u?200:1e6,w=u?40:1e7,E={type:"inertia",velocity:a?i[g]:0,bounceStiffness:S,bounceDamping:w,timeConstant:750,restDelta:1,restSpeed:10,...d,...y};return this.startAxisValueAnimation(g,E)});return Promise.all(v).then(p)}startAxisValueAnimation(i,o){const a=this.getAxisMotionValue(i);return Ml(this.visualElement,i),a.start(Pu(i,a,0,o,this.visualElement,!1))}stopAnimation(){xt(i=>this.getAxisMotionValue(i).stop())}pauseAnimation(){xt(i=>{var o;return(o=this.getAxisMotionValue(i).animation)===null||o===void 0?void 0:o.pause()})}getAnimationState(i){var o;return(o=this.getAxisMotionValue(i).animation)===null||o===void 0?void 0:o.state}getAxisMotionValue(i){const o=`_drag${i.toUpperCase()}`,a=this.visualElement.getProps(),u=a[o];return u||this.visualElement.getValue(i,(a.initial?a.initial[i]:void 0)||0)}snapToCursor(i){xt(o=>{const{drag:a}=this.getProps();if(!bo(o,a,this.currentDirection))return;const{projection:u}=this.visualElement,d=this.getAxisMotionValue(o);if(u&&u.layout){const{min:f,max:p}=u.layout.layoutBox[o];d.set(i[o]-Ae(f,p,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:i,dragConstraints:o}=this.getProps(),{projection:a}=this.visualElement;if(!mr(o)||!a||!this.constraints)return;this.stopAnimation();const u={x:0,y:0};xt(f=>{const p=this.getAxisMotionValue(f);if(p&&this.constraints!==!1){const h=p.get();u[f]=r1({min:h,max:h},this.constraints[f])}});const{transformTemplate:d}=this.visualElement.getProps();this.visualElement.current.style.transform=d?d({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.resolveConstraints(),xt(f=>{if(!bo(f,i,null))return;const p=this.getAxisMotionValue(f),{min:h,max:v}=this.constraints[f];p.set(Ae(h,v,u[f]))})}addListeners(){if(!this.visualElement.current)return;c1.set(this.visualElement,this);const i=this.visualElement.current,o=Si(i,"pointerdown",h=>{const{drag:v,dragListener:g=!0}=this.getProps();v&&g&&this.start(h)}),a=()=>{const{dragConstraints:h}=this.getProps();mr(h)&&h.current&&(this.constraints=this.resolveRefConstraints())},{projection:u}=this.visualElement,d=u.addEventListener("measure",a);u&&!u.layout&&(u.root&&u.root.updateScroll(),u.updateLayout()),Te.read(a);const f=Ci(window,"resize",()=>this.scalePositionWithinConstraints()),p=u.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:v})=>{this.isDragging&&v&&(xt(g=>{const y=this.getAxisMotionValue(g);y&&(this.originPoint[g]+=h[g].translate,y.set(y.get()+h[g].translate))}),this.visualElement.render())}));return()=>{f(),o(),d(),p&&p()}}getProps(){const i=this.visualElement.getProps(),{drag:o=!1,dragDirectionLock:a=!1,dragPropagation:u=!1,dragConstraints:d=!1,dragElastic:f=Fl,dragMomentum:p=!0}=i;return{...i,drag:o,dragDirectionLock:a,dragPropagation:u,dragConstraints:d,dragElastic:f,dragMomentum:p}}}function bo(n,i,o){return(i===!0||i===n)&&(o===null||o===n)}function d1(n,i=10){let o=null;return Math.abs(n.y)>i?o="y":Math.abs(n.x)>i&&(o="x"),o}class h1 extends xn{constructor(i){super(i),this.removeGroupControls=dt,this.removeListeners=dt,this.controls=new f1(i)}mount(){const{dragControls:i}=this.node.getProps();i&&(this.removeGroupControls=i.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||dt}unmount(){this.removeGroupControls(),this.removeListeners()}}const Eh=n=>(i,o)=>{n&&Te.postRender(()=>n(i,o))};class p1 extends xn{constructor(){super(...arguments),this.removePointerDownListener=dt}onPointerDown(i){this.session=new wm(i,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Am(this.node)})}createPanHandlers(){const{onPanSessionStart:i,onPanStart:o,onPan:a,onPanEnd:u}=this.node.getProps();return{onSessionStart:Eh(i),onStart:Eh(o),onMove:a,onEnd:(d,f)=>{delete this.session,u&&Te.postRender(()=>u(d,f))}}}mount(){this.removePointerDownListener=Si(this.node.current,"pointerdown",i=>this.onPointerDown(i))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Xo={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Th(n,i){return i.max===i.min?0:n/(i.max-i.min)*100}const di={correct:(n,i)=>{if(!i.target)return n;if(typeof n=="string")if(ne.test(n))n=parseFloat(n);else return n;const o=Th(n,i.target.x),a=Th(n,i.target.y);return`${o}% ${a}%`}},m1={correct:(n,{treeScale:i,projectionDelta:o})=>{const a=n,u=wn.parse(n);if(u.length>5)return a;const d=wn.createTransformer(n),f=typeof u[0]!="number"?1:0,p=o.x.scale*i.x,h=o.y.scale*i.y;u[0+f]/=p,u[1+f]/=h;const v=Ae(p,h,.5);return typeof u[2+f]=="number"&&(u[2+f]/=v),typeof u[3+f]=="number"&&(u[3+f]/=v),d(u)}};class v1 extends H.Component{componentDidMount(){const{visualElement:i,layoutGroup:o,switchLayoutGroup:a,layoutId:u}=this.props,{projection:d}=i;Iy(g1),d&&(o.group&&o.group.add(d),a&&a.register&&u&&a.register(d),d.root.didUpdate(),d.addEventListener("animationComplete",()=>{this.safeToRemove()}),d.setOptions({...d.options,onExitComplete:()=>this.safeToRemove()})),Xo.hasEverUpdated=!0}getSnapshotBeforeUpdate(i){const{layoutDependency:o,visualElement:a,drag:u,isPresent:d}=this.props,f=a.projection;return f&&(f.isPresent=d,u||i.layoutDependency!==o||o===void 0?f.willUpdate():this.safeToRemove(),i.isPresent!==d&&(d?f.promote():f.relegate()||Te.postRender(()=>{const p=f.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:i}=this.props.visualElement;i&&(i.root.didUpdate(),Zl.postRender(()=>{!i.currentAnimation&&i.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:i,layoutGroup:o,switchLayoutGroup:a}=this.props,{projection:u}=i;u&&(u.scheduleCheckAfterUnmount(),o&&o.group&&o.group.remove(u),a&&a.deregister&&a.deregister(u))}safeToRemove(){const{safeToRemove:i}=this.props;i&&i()}render(){return null}}function Rm(n){const[i,o]=fp(),a=H.useContext(Kl);return Z.jsx(v1,{...n,layoutGroup:a,switchLayoutGroup:H.useContext(Sp),isPresent:i,safeToRemove:o})}const g1={borderRadius:{...di,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:di,borderTopRightRadius:di,borderBottomLeftRadius:di,borderBottomRightRadius:di,boxShadow:m1};function y1(n,i,o){const a=qe(n)?n:Pi(n);return a.start(Pu("",a,i,o)),a.animation}function S1(n){return n instanceof SVGElement&&n.tagName!=="svg"}const w1=(n,i)=>n.depth-i.depth;class x1{constructor(){this.children=[],this.isDirty=!1}add(i){hu(this.children,i),this.isDirty=!0}remove(i){pu(this.children,i),this.isDirty=!0}forEach(i){this.isDirty&&this.children.sort(w1),this.isDirty=!1,this.children.forEach(i)}}function E1(n,i){const o=It.now(),a=({timestamp:u})=>{const d=u-o;d>=i&&(Sn(a),n(d-i))};return Te.read(a,!0),()=>Sn(a)}const Mm=["TopLeft","TopRight","BottomLeft","BottomRight"],T1=Mm.length,Ph=n=>typeof n=="string"?parseFloat(n):n,kh=n=>typeof n=="number"||ne.test(n);function P1(n,i,o,a,u,d){u?(n.opacity=Ae(0,o.opacity!==void 0?o.opacity:1,k1(a)),n.opacityExit=Ae(i.opacity!==void 0?i.opacity:1,0,C1(a))):d&&(n.opacity=Ae(i.opacity!==void 0?i.opacity:1,o.opacity!==void 0?o.opacity:1,a));for(let f=0;fai?1:o(wr(n,i,a))}function _h(n,i){n.min=i.min,n.max=i.max}function wt(n,i){_h(n.x,i.x),_h(n.y,i.y)}function Ah(n,i){n.translate=i.translate,n.scale=i.scale,n.originPoint=i.originPoint,n.origin=i.origin}function Rh(n,i,o,a,u){return n-=i,n=rs(n,1/o,a),u!==void 0&&(n=rs(n,1/u,a)),n}function _1(n,i=0,o=1,a=.5,u,d=n,f=n){if(Vt.test(i)&&(i=parseFloat(i),i=Ae(f.min,f.max,i/100)-f.min),typeof i!="number")return;let p=Ae(d.min,d.max,a);n===d&&(p-=i),n.min=Rh(n.min,i,o,p,u),n.max=Rh(n.max,i,o,p,u)}function Mh(n,i,[o,a,u],d,f){_1(n,i[o],i[a],i[u],i.scale,d,f)}const A1=["x","scaleX","originX"],R1=["y","scaleY","originY"];function Dh(n,i,o,a){Mh(n.x,i,A1,o?o.x:void 0,a?a.x:void 0),Mh(n.y,i,R1,o?o.y:void 0,a?a.y:void 0)}function Nh(n){return n.translate===0&&n.scale===1}function Nm(n){return Nh(n.x)&&Nh(n.y)}function Lh(n,i){return n.min===i.min&&n.max===i.max}function M1(n,i){return Lh(n.x,i.x)&&Lh(n.y,i.y)}function Oh(n,i){return Math.round(n.min)===Math.round(i.min)&&Math.round(n.max)===Math.round(i.max)}function Lm(n,i){return Oh(n.x,i.x)&&Oh(n.y,i.y)}function Vh(n){return ht(n.x)/ht(n.y)}function Ih(n,i){return n.translate===i.translate&&n.scale===i.scale&&n.originPoint===i.originPoint}class D1{constructor(){this.members=[]}add(i){hu(this.members,i),i.scheduleRender()}remove(i){if(pu(this.members,i),i===this.prevLead&&(this.prevLead=void 0),i===this.lead){const o=this.members[this.members.length-1];o&&this.promote(o)}}relegate(i){const o=this.members.findIndex(u=>i===u);if(o===0)return!1;let a;for(let u=o;u>=0;u--){const d=this.members[u];if(d.isPresent!==!1){a=d;break}}return a?(this.promote(a),!0):!1}promote(i,o){const a=this.lead;if(i!==a&&(this.prevLead=a,this.lead=i,i.show(),a)){a.instance&&a.scheduleRender(),i.scheduleRender(),i.resumeFrom=a,o&&(i.resumeFrom.preserveOpacity=!0),a.snapshot&&(i.snapshot=a.snapshot,i.snapshot.latestValues=a.animationValues||a.latestValues),i.root&&i.root.isUpdating&&(i.isLayoutDirty=!0);const{crossfade:u}=i.options;u===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(i=>{const{options:o,resumingFrom:a}=i;o.onExitComplete&&o.onExitComplete(),a&&a.options.onExitComplete&&a.options.onExitComplete()})}scheduleRender(){this.members.forEach(i=>{i.instance&&i.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function N1(n,i,o){let a="";const u=n.x.translate/i.x,d=n.y.translate/i.y,f=(o==null?void 0:o.z)||0;if((u||d||f)&&(a=`translate3d(${u}px, ${d}px, ${f}px) `),(i.x!==1||i.y!==1)&&(a+=`scale(${1/i.x}, ${1/i.y}) `),o){const{transformPerspective:v,rotate:g,rotateX:y,rotateY:S,skewX:w,skewY:E}=o;v&&(a=`perspective(${v}px) ${a}`),g&&(a+=`rotate(${g}deg) `),y&&(a+=`rotateX(${y}deg) `),S&&(a+=`rotateY(${S}deg) `),w&&(a+=`skewX(${w}deg) `),E&&(a+=`skewY(${E}deg) `)}const p=n.x.scale*i.x,h=n.y.scale*i.y;return(p!==1||h!==1)&&(a+=`scale(${p}, ${h})`),a||"none"}const zn={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},gi=typeof window<"u"&&window.MotionDebug!==void 0,gl=["","X","Y","Z"],L1={visibility:"hidden"},jh=1e3;let O1=0;function yl(n,i,o,a){const{latestValues:u}=i;u[n]&&(o[n]=u[n],i.setStaticValue(n,0),a&&(a[n]=0))}function Om(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:i}=n.options;if(!i)return;const o=Wp(i);if(window.MotionHasOptimisedAnimation(o,"transform")){const{layout:u,layoutId:d}=n.options;window.MotionCancelOptimisedAnimation(o,"transform",Te,!(u||d))}const{parent:a}=n;a&&!a.hasCheckedOptimisedAppear&&Om(a)}function Vm({attachResizeListener:n,defaultParent:i,measureScroll:o,checkIsScrollRoot:a,resetTransform:u}){return class{constructor(f={},p=i==null?void 0:i()){this.id=O1++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,gi&&(zn.totalNodes=zn.resolvedTargetDeltas=zn.recalculatedProjection=0),this.nodes.forEach(j1),this.nodes.forEach(W1),this.nodes.forEach(H1),this.nodes.forEach(F1),gi&&window.MotionDebug.record(zn)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=f,this.root=p?p.root||p:this,this.path=p?[...p.path,p]:[],this.parent=p,this.depth=p?p.depth+1:0;for(let h=0;hthis.root.updateBlockedByResize=!1;n(f,()=>{this.root.updateBlockedByResize=!0,y&&y(),y=E1(S,250),Xo.hasAnimatedSinceResize&&(Xo.hasAnimatedSinceResize=!1,this.nodes.forEach(Uh))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&g&&(h||v)&&this.addEventListener("didUpdate",({delta:y,hasLayoutChanged:S,hasRelativeTargetChanged:w,layout:E})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const k=this.options.transition||g.getDefaultTransition()||Y1,{onLayoutAnimationStart:A,onLayoutAnimationComplete:C}=g.getProps(),L=!this.targetLayout||!Lm(this.targetLayout,E)||w,U=!S&&w;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||U||S&&(L||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(y,U);const K={...uu(k,"layout"),onPlay:A,onComplete:C};(g.shouldReduceMotion||this.options.layoutRoot)&&(K.delay=0,K.type=!1),this.startAnimation(K)}else S||Uh(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=E})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const f=this.getStack();f&&f.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Sn(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(K1),this.animationId++)}getTransformTemplate(){const{visualElement:f}=this.options;return f&&f.getProps().transformTemplate}willUpdate(f=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Om(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let g=0;g{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h{const N=K/1e3;zh(y.x,f.x,N),zh(y.y,f.y,N),this.setTargetDelta(y),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(xi(S,this.layout.layoutBox,this.relativeParent.layout.layoutBox),b1(this.relativeTarget,this.relativeTargetOrigin,S,N),U&&M1(this.relativeTarget,U)&&(this.isProjectionDirty=!1),U||(U=Oe()),wt(U,this.relativeTarget)),k&&(this.animationValues=g,P1(g,v,this.latestValues,N,L,C)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=N},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(f){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(Sn(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Te.update(()=>{Xo.hasAnimatedSinceResize=!0,this.currentAnimation=y1(0,jh,{...f,onUpdate:p=>{this.mixTargetDelta(p),f.onUpdate&&f.onUpdate(p)},onComplete:()=>{f.onComplete&&f.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const f=this.getStack();f&&f.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(jh),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const f=this.getLead();let{targetWithTransforms:p,target:h,layout:v,latestValues:g}=f;if(!(!p||!h||!v)){if(this!==f&&this.layout&&v&&Im(this.options.animationType,this.layout.layoutBox,v.layoutBox)){h=this.target||Oe();const y=ht(this.layout.layoutBox.x);h.x.min=f.target.x.min,h.x.max=h.x.min+y;const S=ht(this.layout.layoutBox.y);h.y.min=f.target.y.min,h.y.max=h.y.min+S}wt(p,h),Sr(p,g),wi(this.projectionDeltaWithTransform,this.layoutCorrected,p,g)}}registerSharedNode(f,p){this.sharedNodes.has(f)||this.sharedNodes.set(f,new D1),this.sharedNodes.get(f).add(p);const v=p.options.initialPromotionConfig;p.promote({transition:v?v.transition:void 0,preserveFollowOpacity:v&&v.shouldPreserveFollowOpacity?v.shouldPreserveFollowOpacity(p):void 0})}isLead(){const f=this.getStack();return f?f.lead===this:!0}getLead(){var f;const{layoutId:p}=this.options;return p?((f=this.getStack())===null||f===void 0?void 0:f.lead)||this:this}getPrevLead(){var f;const{layoutId:p}=this.options;return p?(f=this.getStack())===null||f===void 0?void 0:f.prevLead:void 0}getStack(){const{layoutId:f}=this.options;if(f)return this.root.sharedNodes.get(f)}promote({needsReset:f,transition:p,preserveFollowOpacity:h}={}){const v=this.getStack();v&&v.promote(this,h),f&&(this.projectionDelta=void 0,this.needsReset=!0),p&&this.setOptions({transition:p})}relegate(){const f=this.getStack();return f?f.relegate(this):!1}resetSkewAndRotation(){const{visualElement:f}=this.options;if(!f)return;let p=!1;const{latestValues:h}=f;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(p=!0),!p)return;const v={};h.z&&yl("z",f,v,this.animationValues);for(let g=0;g{var p;return(p=f.currentAnimation)===null||p===void 0?void 0:p.stop()}),this.root.nodes.forEach(Fh),this.root.sharedNodes.clear()}}}function V1(n){n.updateLayout()}function I1(n){var i;const o=((i=n.resumeFrom)===null||i===void 0?void 0:i.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&o&&n.hasListeners("didUpdate")){const{layoutBox:a,measuredBox:u}=n.layout,{animationType:d}=n.options,f=o.source!==n.layout.source;d==="size"?xt(y=>{const S=f?o.measuredBox[y]:o.layoutBox[y],w=ht(S);S.min=a[y].min,S.max=S.min+w}):Im(d,o.layoutBox,a)&&xt(y=>{const S=f?o.measuredBox[y]:o.layoutBox[y],w=ht(a[y]);S.max=S.min+w,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[y].max=n.relativeTarget[y].min+w)});const p=gr();wi(p,a,o.layoutBox);const h=gr();f?wi(h,n.applyTransform(u,!0),o.measuredBox):wi(h,a,o.layoutBox);const v=!Nm(p);let g=!1;if(!n.resumeFrom){const y=n.getClosestProjectingParent();if(y&&!y.resumeFrom){const{snapshot:S,layout:w}=y;if(S&&w){const E=Oe();xi(E,o.layoutBox,S.layoutBox);const k=Oe();xi(k,a,w.layoutBox),Lm(E,k)||(g=!0),y.options.layoutRoot&&(n.relativeTarget=k,n.relativeTargetOrigin=E,n.relativeParent=y)}}}n.notifyListeners("didUpdate",{layout:a,snapshot:o,delta:h,layoutDelta:p,hasLayoutChanged:v,hasRelativeTargetChanged:g})}else if(n.isLead()){const{onExitComplete:a}=n.options;a&&a()}n.options.transition=void 0}function j1(n){gi&&zn.totalNodes++,n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function F1(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function U1(n){n.clearSnapshot()}function Fh(n){n.clearMeasurements()}function z1(n){n.isLayoutDirty=!1}function B1(n){const{visualElement:i}=n.options;i&&i.getProps().onBeforeLayoutMeasure&&i.notify("BeforeLayoutMeasure"),n.resetTransform()}function Uh(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function W1(n){n.resolveTargetDelta()}function H1(n){n.calcProjection()}function K1(n){n.resetSkewAndRotation()}function G1(n){n.removeLeadSnapshot()}function zh(n,i,o){n.translate=Ae(i.translate,0,o),n.scale=Ae(i.scale,1,o),n.origin=i.origin,n.originPoint=i.originPoint}function Bh(n,i,o,a){n.min=Ae(i.min,o.min,a),n.max=Ae(i.max,o.max,a)}function b1(n,i,o,a){Bh(n.x,i.x,o.x,a),Bh(n.y,i.y,o.y,a)}function Q1(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const Y1={duration:.45,ease:[.4,0,.1,1]},Wh=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Hh=Wh("applewebkit/")&&!Wh("chrome/")?Math.round:dt;function Kh(n){n.min=Hh(n.min),n.max=Hh(n.max)}function $1(n){Kh(n.x),Kh(n.y)}function Im(n,i,o){return n==="position"||n==="preserve-aspect"&&!JS(Vh(i),Vh(o),.2)}function X1(n){var i;return n!==n.root&&((i=n.scroll)===null||i===void 0?void 0:i.wasRoot)}const q1=Vm({attachResizeListener:(n,i)=>Ci(n,"resize",i),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Sl={current:void 0},jm=Vm({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!Sl.current){const n=new q1({});n.mount(window),n.setOptions({layoutScroll:!0}),Sl.current=n}return Sl.current},resetTransform:(n,i)=>{n.style.transform=i!==void 0?i:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),J1={pan:{Feature:p1},drag:{Feature:h1,ProjectionNode:jm,MeasureLayout:Rm}};function Gh(n,i,o){const{props:a}=n;n.animationState&&a.whileHover&&n.animationState.setActive("whileHover",o==="Start");const u="onHover"+o,d=a[u];d&&Te.postRender(()=>d(i,Mi(i)))}class Z1 extends xn{mount(){const{current:i}=this.node;i&&(this.unmount=Jy(i,o=>(Gh(this.node,o,"Start"),a=>Gh(this.node,a,"End"))))}unmount(){}}class ew extends xn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let i=!1;try{i=this.node.current.matches(":focus-visible")}catch{i=!0}!i||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Ri(Ci(this.node.current,"focus",()=>this.onFocus()),Ci(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function bh(n,i,o){const{props:a}=n;n.animationState&&a.whileTap&&n.animationState.setActive("whileTap",o==="Start");const u="onTap"+(o==="End"?"":o),d=a[u];d&&Te.postRender(()=>d(i,Mi(i)))}class tw extends xn{mount(){const{current:i}=this.node;i&&(this.unmount=n0(i,o=>(bh(this.node,o,"Start"),(a,{success:u})=>bh(this.node,a,u?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Bl=new WeakMap,wl=new WeakMap,nw=n=>{const i=Bl.get(n.target);i&&i(n)},rw=n=>{n.forEach(nw)};function iw({root:n,...i}){const o=n||document;wl.has(o)||wl.set(o,{});const a=wl.get(o),u=JSON.stringify(i);return a[u]||(a[u]=new IntersectionObserver(rw,{root:n,...i})),a[u]}function ow(n,i,o){const a=iw(i);return Bl.set(n,o),a.observe(n),()=>{Bl.delete(n),a.unobserve(n)}}const sw={some:0,all:1};class aw extends xn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:i={}}=this.node.getProps(),{root:o,margin:a,amount:u="some",once:d}=i,f={root:o?o.current:void 0,rootMargin:a,threshold:typeof u=="number"?u:sw[u]},p=h=>{const{isIntersecting:v}=h;if(this.isInView===v||(this.isInView=v,d&&!v&&this.hasEnteredView))return;v&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",v);const{onViewportEnter:g,onViewportLeave:y}=this.node.getProps(),S=v?g:y;S&&S(h)};return ow(this.node.current,f,p)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:i,prevProps:o}=this.node;["amount","margin","root"].some(lw(i,o))&&this.startObserver()}unmount(){}}function lw({viewport:n={}},{viewport:i={}}={}){return o=>n[o]!==i[o]}const uw={inView:{Feature:aw},tap:{Feature:tw},focus:{Feature:ew},hover:{Feature:Z1}},cw={layout:{ProjectionNode:jm,MeasureLayout:Rm}},Wl={current:null},Fm={current:!1};function fw(){if(Fm.current=!0,!!Ql)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),i=()=>Wl.current=n.matches;n.addListener(i),i()}else Wl.current=!1}const dw=[...um,Xe,wn],hw=n=>dw.find(lm(n)),Qh=new WeakMap;function pw(n,i,o){for(const a in i){const u=i[a],d=o[a];if(qe(u))n.addValue(a,u);else if(qe(d))n.addValue(a,Pi(u,{owner:n}));else if(d!==u)if(n.hasValue(a)){const f=n.getValue(a);f.liveStyle===!0?f.jump(u):f.hasAnimated||f.set(u)}else{const f=n.getStaticValue(a);n.addValue(a,Pi(f!==void 0?f:u,{owner:n}))}}for(const a in o)i[a]===void 0&&n.removeValue(a);return i}const Yh=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class mw{scrapeMotionValuesFromProps(i,o,a){return{}}constructor({parent:i,props:o,presenceContext:a,reducedMotionConfig:u,blockInitialAnimation:d,visualState:f},p={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=xu,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const w=It.now();this.renderScheduledAtthis.bindToMotionValue(a,o)),Fm.current||fw(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Wl.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Qh.delete(this.current),this.projection&&this.projection.unmount(),Sn(this.notifyUpdate),Sn(this.render),this.valueSubscriptions.forEach(i=>i()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const i in this.events)this.events[i].clear();for(const i in this.features){const o=this.features[i];o&&(o.unmount(),o.isMounted=!1)}this.current=null}bindToMotionValue(i,o){this.valueSubscriptions.has(i)&&this.valueSubscriptions.get(i)();const a=Hn.has(i),u=o.on("change",p=>{this.latestValues[i]=p,this.props.onUpdate&&Te.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0)}),d=o.on("renderRequest",this.scheduleRender);let f;window.MotionCheckAppearSync&&(f=window.MotionCheckAppearSync(this,i,o)),this.valueSubscriptions.set(i,()=>{u(),d(),f&&f(),o.owner&&o.stop()})}sortNodePosition(i){return!this.current||!this.sortInstanceNodePosition||this.type!==i.type?0:this.sortInstanceNodePosition(this.current,i.current)}updateFeatures(){let i="animation";for(i in xr){const o=xr[i];if(!o)continue;const{isEnabled:a,Feature:u}=o;if(!this.features[i]&&u&&a(this.props)&&(this.features[i]=new u(this)),this.features[i]){const d=this.features[i];d.isMounted?d.update():(d.mount(),d.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Oe()}getStaticValue(i){return this.latestValues[i]}setStaticValue(i,o){this.latestValues[i]=o}update(i,o){(i.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=i,this.prevPresenceContext=this.presenceContext,this.presenceContext=o;for(let a=0;ao.variantChildren.delete(i)}addValue(i,o){const a=this.values.get(i);o!==a&&(a&&this.removeValue(i),this.bindToMotionValue(i,o),this.values.set(i,o),this.latestValues[i]=o.get())}removeValue(i){this.values.delete(i);const o=this.valueSubscriptions.get(i);o&&(o(),this.valueSubscriptions.delete(i)),delete this.latestValues[i],this.removeValueFromRenderState(i,this.renderState)}hasValue(i){return this.values.has(i)}getValue(i,o){if(this.props.values&&this.props.values[i])return this.props.values[i];let a=this.values.get(i);return a===void 0&&o!==void 0&&(a=Pi(o===null?void 0:o,{owner:this}),this.addValue(i,a)),a}readValue(i,o){var a;let u=this.latestValues[i]!==void 0||!this.current?this.latestValues[i]:(a=this.getBaseTargetFromProps(this.props,i))!==null&&a!==void 0?a:this.readValueFromInstance(this.current,i,this.options);return u!=null&&(typeof u=="string"&&(sm(u)||qp(u))?u=parseFloat(u):!hw(u)&&wn.test(o)&&(u=rm(i,o)),this.setBaseTarget(i,qe(u)?u.get():u)),qe(u)?u.get():u}setBaseTarget(i,o){this.baseTarget[i]=o}getBaseTarget(i){var o;const{initial:a}=this.props;let u;if(typeof a=="string"||typeof a=="object"){const f=tu(this.props,a,(o=this.presenceContext)===null||o===void 0?void 0:o.custom);f&&(u=f[i])}if(a&&u!==void 0)return u;const d=this.getBaseTargetFromProps(this.props,i);return d!==void 0&&!qe(d)?d:this.initialValues[i]!==void 0&&u===void 0?void 0:this.baseTarget[i]}on(i,o){return this.events[i]||(this.events[i]=new mu),this.events[i].add(o)}notify(i,...o){this.events[i]&&this.events[i].notify(...o)}}class Um extends mw{constructor(){super(...arguments),this.KeyframeResolver=cm}sortInstanceNodePosition(i,o){return i.compareDocumentPosition(o)&2?1:-1}getBaseTargetFromProps(i,o){return i.style?i.style[o]:void 0}removeValueFromRenderState(i,{vars:o,style:a}){delete o[i],delete a[i]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:i}=this.props;qe(i)&&(this.childSubscription=i.on("change",o=>{this.current&&(this.current.textContent=`${o}`)}))}}function vw(n){return window.getComputedStyle(n)}class gw extends Um{constructor(){super(...arguments),this.type="html",this.renderInstance=Cp}readValueFromInstance(i,o){if(Hn.has(o)){const a=wu(o);return a&&a.default||0}else{const a=vw(i),u=(Tp(o)?a.getPropertyValue(o):a[o])||0;return typeof u=="string"?u.trim():u}}measureInstanceViewportBox(i,{transformPagePoint:o}){return _m(i,o)}build(i,o,a){iu(i,o,a.transformTemplate)}scrapeMotionValuesFromProps(i,o,a){return lu(i,o,a)}}class yw extends Um{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Oe}getBaseTargetFromProps(i,o){return i[o]}readValueFromInstance(i,o){if(Hn.has(o)){const a=wu(o);return a&&a.default||0}return o=_p.has(o)?o:Jl(o),i.getAttribute(o)}scrapeMotionValuesFromProps(i,o,a){return Mp(i,o,a)}build(i,o,a){ou(i,o,this.isSVGTag,a.transformTemplate)}renderInstance(i,o,a,u){Ap(i,o,a,u)}mount(i){this.isSVGTag=au(i.tagName),super.mount(i)}}const Sw=(n,i)=>eu(n)?new yw(i):new gw(i,{allowProjection:n!==H.Fragment}),ww=Gy({...HS,...uw,...J1,...cw},Sw),zm=sy(ww);var xl={},ft={},El={},$h;function jt(){return $h||($h=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.isEventSourceSupported=n.isReactNative=n.ReadyState=n.DEFAULT_HEARTBEAT=n.UNPARSABLE_JSON_OBJECT=n.DEFAULT_RECONNECT_INTERVAL_MS=n.DEFAULT_RECONNECT_LIMIT=n.SOCKET_IO_PING_CODE=n.SOCKET_IO_PATH=n.SOCKET_IO_PING_INTERVAL=n.DEFAULT_EVENT_SOURCE_OPTIONS=n.EMPTY_EVENT_HANDLERS=n.DEFAULT_OPTIONS=void 0;var i=1,o=1e3*i;n.DEFAULT_OPTIONS={},n.EMPTY_EVENT_HANDLERS={},n.DEFAULT_EVENT_SOURCE_OPTIONS={withCredentials:!1,events:n.EMPTY_EVENT_HANDLERS},n.SOCKET_IO_PING_INTERVAL=25*o,n.SOCKET_IO_PATH="/socket.io/?EIO=3&transport=websocket",n.SOCKET_IO_PING_CODE="2",n.DEFAULT_RECONNECT_LIMIT=20,n.DEFAULT_RECONNECT_INTERVAL_MS=5e3,n.UNPARSABLE_JSON_OBJECT={},n.DEFAULT_HEARTBEAT={message:"ping",timeout:6e4,interval:25e3};var a;(function(d){d[d.UNINSTANTIATED=-1]="UNINSTANTIATED",d[d.CONNECTING=0]="CONNECTING",d[d.OPEN=1]="OPEN",d[d.CLOSING=2]="CLOSING",d[d.CLOSED=3]="CLOSED"})(a||(n.ReadyState=a={}));var u=function(){try{return"EventSource"in globalThis}catch{return!1}};n.isReactNative=typeof navigator<"u"&&navigator.product==="ReactNative",n.isEventSourceSupported=!n.isReactNative&&u()})(El)),El}var hi={},Tl={},Xh;function ku(){return Xh||(Xh=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.resetWebSockets=n.sharedWebSockets=void 0,n.sharedWebSockets={};var i=function(o){if(o&&n.sharedWebSockets.hasOwnProperty(o))delete n.sharedWebSockets[o];else for(var a in n.sharedWebSockets)n.sharedWebSockets.hasOwnProperty(a)&&delete n.sharedWebSockets[a]};n.resetWebSockets=i})(Tl)),Tl}var In={},bt={},qh;function Cu(){if(qh)return bt;qh=1,Object.defineProperty(bt,"__esModule",{value:!0}),bt.setUpSocketIOPing=bt.appendQueryParams=bt.parseSocketIOUrl=void 0;var n=jt(),i=function(u){if(u){var d=/^https|wss/.test(u),f=u.replace(/^(https?|wss?)(:\/\/)?/,""),p=f.replace(/\/$/,""),h=d?"wss":"ws";return"".concat(h,"://").concat(p).concat(n.SOCKET_IO_PATH)}else if(u===""){var d=/^https/.test(window.location.protocol),h=d?"wss":"ws",v=window.location.port?":".concat(window.location.port):"";return"".concat(h,"://").concat(window.location.hostname).concat(v).concat(n.SOCKET_IO_PATH)}return u};bt.parseSocketIOUrl=i;var o=function(u,d){d===void 0&&(d={});var f=/\?([\w]+=[\w]+)/,p=f.test(u),h="".concat(Object.entries(d).reduce(function(v,g){var y=g[0],S=g[1];return v+"".concat(y,"=").concat(S,"&")},"").slice(0,-1));return"".concat(u).concat(p?"&":"?").concat(h)};bt.appendQueryParams=o;var a=function(u,d){d===void 0&&(d=n.SOCKET_IO_PING_INTERVAL);var f=function(){return u(n.SOCKET_IO_PING_CODE)};return window.setInterval(f,d)};return bt.setUpSocketIOPing=a,bt}var Qo={},Jh;function Bm(){if(Jh)return Qo;Jh=1,Object.defineProperty(Qo,"__esModule",{value:!0}),Qo.heartbeat=o;var n=jt();function i(a){return Array.isArray(a)?a.reduce(function(u,d){return u.current>d.current?u:d}).current:a.current}function o(a,u,d){var f=d||{},p=f.interval,h=p===void 0?n.DEFAULT_HEARTBEAT.interval:p,v=f.timeout,g=v===void 0?n.DEFAULT_HEARTBEAT.timeout:v,y=f.message,S=y===void 0?n.DEFAULT_HEARTBEAT.message:y,w=Math.max(100,h/10),E=Date.now(),k=setInterval(function(){var A=Date.now(),C=i(u);if(C+g<=A)console.warn("Heartbeat timed out, closing connection, last message received ".concat(A-C,"ms ago, last ping sent ").concat(A-E,"ms ago")),a.close();else if(C+h<=A&&E+h<=A)try{typeof S=="function"?a.send(S()):a.send(S),E=A}catch(L){console.error("Heartbeat failed, closing connection",L instanceof Error?L.message:L),a.close()}},w);return a.addEventListener("close",function(){clearInterval(k)}),function(){}}return Qo}var pi={},Pl={},Zh;function _u(){return Zh||(Zh=1,(function(n){Object.defineProperty(n,"__esModule",{value:!0}),n.resetSubscribers=n.removeSubscriber=n.addSubscriber=n.hasSubscribers=n.getSubscribers=void 0;var i={},o=[],a=function(h){return(0,n.hasSubscribers)(h)?Array.from(i[h]):o};n.getSubscribers=a;var u=function(h){var v;return((v=i[h])===null||v===void 0?void 0:v.size)>0};n.hasSubscribers=u;var d=function(h,v){i[h]=i[h]||new Set,i[h].add(v)};n.addSubscriber=d;var f=function(h,v){i[h].delete(v)};n.removeSubscriber=f;var p=function(h){if(h&&i.hasOwnProperty(h))delete i[h];else for(var v in i)i.hasOwnProperty(v)&&delete i[v]};n.resetSubscribers=p})(Pl)),Pl}var ep;function Au(){if(ep)return pi;ep=1,Object.defineProperty(pi,"__esModule",{value:!0}),pi.assertIsWebSocket=o,pi.resetGlobalState=a;var n=ku(),i=_u();function o(u,d){if(!d&&!(u instanceof WebSocket))throw new Error("")}function a(u){(0,i.resetSubscribers)(u),(0,n.resetWebSockets)(u)}return pi}var tp;function xw(){if(tp)return In;tp=1;var n=In&&In.__assign||function(){return n=Object.assign||function(g){for(var y,S=1,w=arguments.length;S0&&w[w.length-1])&&(C[0]===6||C[0]===2)){g=0;continue}if(C[0]===3&&(!w||C[1]>w[0]&&C[1]0&&C[C.length-1])&&(N[0]===6||N[0]===2)){E=0;continue}if(N[0]===3&&(!C||N[1]>C[0]&&N[1]{const u=setInterval(()=>i(new Date),1e3);return()=>clearInterval(u)},[]);const o=u=>u.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0}),a=u=>u.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric"});return Z.jsxs("div",{className:"h-full w-full flex flex-col items-center justify-center bg-gradient-to-br from-gray-900 via-black to-gray-900",children:[Z.jsx("div",{className:"text-8xl md:text-9xl font-extralight tracking-tight text-white mb-4",children:o(n)}),Z.jsx("div",{className:"text-2xl md:text-3xl font-light text-white/60 tracking-wide",children:a(n)}),Z.jsx("div",{className:"absolute inset-0 pointer-events-none",children:Z.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-cyan-500/5 rounded-full blur-3xl"})})]})}const Cl=["https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1200","https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=1200","https://images.unsplash.com/photo-1426604966848-d7adac402bff?w=1200","https://images.unsplash.com/photo-1433086966358-54859d0ed716?w=1200"];function Dw(){const[n,i]=H.useState(0);return H.useEffect(()=>{const o=setInterval(()=>{i(a=>(a+1)%Cl.length)},8e3);return()=>clearInterval(o)},[]),Z.jsxs("div",{className:"h-full w-full bg-black relative overflow-hidden",children:[Z.jsx(Yl,{mode:"wait",children:Z.jsx(zm.img,{src:Cl[n],alt:"Photo",className:"absolute inset-0 w-full h-full object-cover",initial:{opacity:0,scale:1.1},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:1.5}},n)}),Z.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/30 via-transparent to-black/20 pointer-events-none"}),Z.jsxs("div",{className:"absolute bottom-12 right-6 text-white/50 text-sm font-light",children:[n+1," / ",Cl.length]})]})}function Nw({messages:n,liveTranscript:i,isListening:o,agentState:a,toolStatus:u,messagesEndRef:d}){return H.useEffect(()=>{d.current&&d.current.scrollIntoView({behavior:"smooth"})},[n,i]),Z.jsxs("div",{className:"h-full w-full flex flex-col bg-black relative overflow-hidden font-sans",children:[u&&Z.jsx("div",{className:"absolute top-6 left-6 z-50",children:Z.jsxs("div",{className:`flex items-center space-x-2 backdrop-blur-md px-4 py-2 rounded-full border ${u.status==="started"?"bg-amber-500/20 border-amber-500/30 text-amber-400":u.status==="finished"?"bg-green-500/20 border-green-500/30 text-green-400":"bg-red-500/20 border-red-500/30 text-red-400"}`,children:[Z.jsx("span",{className:"text-lg",children:"🔧"}),Z.jsxs("span",{className:"text-sm font-medium",children:[u.status==="started"?"Running":u.status==="finished"?"Done":"Error",": ",u.name]}),u.status==="started"&&Z.jsx("div",{className:"w-2 h-2 bg-current rounded-full animate-pulse"})]})}),Z.jsx("div",{className:"absolute top-6 right-6 z-50",children:Z.jsx(Yl,{mode:"wait",children:o?Z.jsxs("div",{className:"flex items-center space-x-3 bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/10 text-red-400",children:[Z.jsx("div",{className:"w-2 h-2 bg-current rounded-full animate-pulse"}),Z.jsx("span",{className:"text-sm font-bold tracking-wide",children:"LISTENING"})]}):a!=="IDLE"?Z.jsxs("div",{className:"flex items-center space-x-3 bg-white/5 backdrop-blur-md px-4 py-2 rounded-full border border-white/5 text-cyan-400",children:[Z.jsx("div",{className:"w-2 h-2 bg-current rounded-full animate-pulse"}),Z.jsx("span",{className:"text-sm font-bold tracking-wide uppercase",children:a})]}):null})}),Z.jsxs("div",{className:"flex-1 w-full max-w-5xl mx-auto flex flex-col justify-end my-12 px-8 z-10 overflow-y-auto no-scrollbar",style:{maskImage:"linear-gradient(to bottom, transparent, black 15%, black 100%)",WebkitMaskImage:"linear-gradient(to bottom, transparent, black 15%, black 100%)"},children:[Z.jsx("div",{className:"flex-1"})," ",Z.jsxs("div",{className:"space-y-6 flex flex-col min-h-0",children:[n.map((f,p)=>Z.jsx("div",{className:`flex flex-col ${f.role==="user"?"items-end":"items-start"} w-full`,children:Z.jsx("div",{className:`max-w-[85%] ${f.role==="user"?"text-right":"text-left"}`,children:Z.jsx("p",{className:`${f.role==="user"?"text-xl text-white/70":"text-3xl font-medium text-white leading-snug"} break-words whitespace-pre-wrap`,children:f.text})})},p)),i&&Z.jsx("div",{className:"flex flex-col items-end w-full",children:Z.jsx("div",{className:"max-w-[90%] text-right",children:Z.jsx("p",{className:"text-2xl text-white italic opacity-80 break-words",children:i})})}),Z.jsx("div",{ref:d,className:"h-8 w-full"})]})]}),n.length===0&&!i&&Z.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center z-0 pointer-events-none p-12 text-center opacity-40",children:[Z.jsx("h1",{className:"text-6xl font-bold text-white mb-4",children:"Hi there."}),Z.jsx("p",{className:"text-2xl text-white font-light",children:'Say "Hey Jarvis"'})]})]})}function Lw(){const[n,i]=H.useState(0),o=`ws://${window.location.hostname}:8000/api/voice/connect?client_id=frontend_gui`,[a,u]=H.useState([]),[d,f]=H.useState(""),[p,h]=H.useState("IDLE"),[v,g]=H.useState(null),[y,S]=H.useState(1e4),w=H.useRef(null),E=H.useRef(null);H.useEffect(()=>{(async()=>{try{const O=await fetch(`http://${window.location.hostname}:8000/api/kiosk/ui/settings`);if(O.ok){const Q=await O.json();S(Q.idle_return_delay_ms)}}catch(O){console.error("Failed to fetch UI settings",O)}})()},[]);const{sendMessage:k,lastMessage:A,readyState:C}=Rw(o,{onOpen:()=>console.log("WebSocket Connected"),shouldReconnect:()=>!0,reconnectAttempts:10,reconnectInterval:3e3}),L=N=>{try{const O=atob(N),Q=new Uint8Array(O.length);for(let z=0;z{console.log("Audio started playing"),k(JSON.stringify({type:"tts_playback_start"}))},w.current.onended=()=>{console.log("Audio finished playing"),k(JSON.stringify({type:"tts_playback_end"}))},w.current.play().catch(z=>console.error("Audio play failed:",z)))}catch(O){console.error("Failed to play audio:",O)}},U=()=>{var N;(N=E.current)==null||N.scrollIntoView({behavior:"smooth"})};H.useEffect(()=>{U()},[a,d]),H.useEffect(()=>{var N;if(A!==null)try{const O=JSON.parse(A.data);O.type==="transcript"?O.is_final?(u(Q=>[...Q,{role:"user",text:O.text}]),f("")):f(O.text):O.type==="assistant_response"?(console.log("Received assistant_response:",O.text),u(Q=>[...Q,{role:"assistant",text:O.text}])):O.type==="tts_audio"?(console.log("Received TTS audio, length:",(N=O.data)==null?void 0:N.length),L(O.data)):O.type==="state"?(h(O.state),(O.state==="LISTENING"||O.state==="THINKING"||O.state==="SPEAKING")&&i(2),O.state==="IDLE"&&g(null)):O.type==="tool_status"&&(console.log("Tool status:",O.status,O.name),g({name:O.name,status:O.status}),(O.status==="finished"||O.status==="error")&&setTimeout(()=>g(null),2e3))}catch(O){console.error("Failed to parse WS message",O)}},[A]),H.useEffect(()=>{p==="IDLE"&&(i(0),u([]))},[p]);const K=[Z.jsx(Mw,{},"clock"),Z.jsx(Dw,{},"photos"),Z.jsx(Nw,{messages:a,liveTranscript:d,isListening:p==="LISTENING",agentState:p,toolStatus:v,messagesEndRef:E},"transcription")];return Z.jsxs("div",{className:"w-screen h-screen bg-black overflow-hidden relative font-sans text-white select-none",children:[Z.jsx("audio",{ref:w}),Z.jsx(Yl,{mode:"popLayout",initial:!1,children:Z.jsx(zm.div,{className:"absolute inset-0 w-full h-full",initial:{x:300,opacity:0},animate:{x:0,opacity:1},exit:{x:-300,opacity:0},transition:{type:"spring",stiffness:300,damping:30},children:K[n]},n)}),Z.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 flex space-x-3 z-50",children:[0,1,2].map(N=>Z.jsx("div",{className:`h-1.5 rounded-full transition-all duration-300 ${N===n?"bg-white w-8":"bg-white/40 w-1.5"}`},N))}),Z.jsx("div",{className:"fixed top-2 right-2 w-2 h-2 rounded-full z-50 transition-colors",style:{backgroundColor:C===Wm.ReadyState.OPEN?"#00ADB5":"#FF4136"}})]})}Yg.createRoot(document.getElementById("root")).render(Z.jsx(Wg.StrictMode,{children:Z.jsx(Lw,{})})); diff --git a/src/backend/static/assets/index-BibWzNNR.js b/src/backend/static/assets/index-BibWzNNR.js deleted file mode 100644 index ecf9f247..00000000 --- a/src/backend/static/assets/index-BibWzNNR.js +++ /dev/null @@ -1,509 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPicker-JKtmtRjt.js","assets/ModelPicker-Cn_xB6on.css","assets/WebSearchMenu-BL7jSOF3.js","assets/WebSearchMenu-CawX--ca.css"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))r(u);new MutationObserver(u=>{for(const a of u)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(u){const a={};return u.integrity&&(a.integrity=u.integrity),u.referrerPolicy&&(a.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?a.credentials="include":u.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(u){if(u.ep)return;u.ep=!0;const a=n(u);fetch(u.href,a)}})();const Sl=!1;var sa=Array.isArray,Ud=Array.prototype.indexOf,ko=Array.from,Ua=Object.defineProperty,ur=Object.getOwnPropertyDescriptor,Al=Object.getOwnPropertyDescriptors,Bd=Object.prototype,jd=Array.prototype,Eo=Object.getPrototypeOf,si=Object.isExtensible;function Fu(e){return typeof e=="function"}const xr=()=>{};function qd(e){return e()}function Xu(e){for(var t=0;t{e=r,t=u});return{promise:n,resolve:e,reject:t}}function Wd(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const bn=2,wo=4,ts=8,wu=16,ir=32,Hr=64,So=128,kn=256,Ba=512,Bt=1024,En=2048,lr=4096,On=8192,Wr=16384,Ao=32768,Su=65536,oi=1<<17,Vd=1<<18,Au=1<<19,Cl=1<<20,to=1<<21,Co=1<<22,Or=1<<23,Wn=Symbol("$state"),Dl=Symbol("legacy props"),Gd=Symbol(""),Do=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function ns(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Kd(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Zd(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Yd(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Jd(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Xd(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Qd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function ef(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function tf(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function nf(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function rf(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function uf(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const rs=1,us=2,Tl=4,af=8,sf=16,of=1,lf=2,Fl=4,cf=8,df=16,ff=1,pf=2,Nt=Symbol(),hf="http://www.w3.org/1999/xhtml",mf="http://www.w3.org/2000/svg",vf="@attach";function gf(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function bf(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let _f=!1;function Ml(e){return e===this.v}function To(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Pl(e){return!To(e,this.v)}let Cu=!1,yf=!1;function xf(){Cu=!0}let lt=null;function bu(e){lt=e}function Qe(e,t=!1,n){lt={p:lt,c:null,e:null,s:e,x:null,l:Cu&&!t?{s:null,u:null,$:[]}:null}}function et(e){var t=lt,n=t.e;if(n!==null){t.e=null;for(var r of n)Kl(r)}return e!==void 0&&(t.x=e),lt=t.p,e??{}}function oa(){return!Cu||lt!==null&<.l===null}let br=[],ja=[];function Il(){var e=br;br=[],Xu(e)}function kf(){var e=ja;ja=[],Xu(e)}function Ef(){return br.length>0||ja.length>0}function Vr(e){if(br.length===0&&!Vu){var t=br;queueMicrotask(()=>{t===br&&Il()})}br.push(e)}function wf(){br.length>0&&Il(),ja.length>0&&kf()}const Sf=new WeakMap;function Nl(e){var t=He;if(t===null)return Ze.f|=Or,e;if((t.f&Ao)===0){if((t.f&So)===0)throw!t.parent&&e instanceof Error&&Ol(e),e;t.b.error(e)}else _u(e,t)}function _u(e,t){for(;t!==null;){if((t.f&So)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e instanceof Error&&Ol(e),e}function Ol(e){const t=Sf.get(e);t&&(Ua(e,"message",{value:t.message}),Ua(e,"stack",{value:t.stack}))}const ys=new Set;let ft=null,Fa=null,no=new Set,Ur=[],as=null,ro=!1,Vu=!1;class ar{current=new Map;#a=new Map;#t=new Set;#f=0;#s=null;#c=!1;#u=[];#n=[];#e=[];#r=[];#o=[];#d=[];#l=[];skipped_effects=new Set;process(t){Ur=[],Fa=null;for(const u of t)this.#p(u);if(this.#u.length===0&&this.#f===0){this.#h();var n=this.#e,r=this.#r;this.#e=[],this.#r=[],this.#o=[],Fa=ft,ft=null,ii(n),ii(r),ft===null?ft=this:ys.delete(this),this.#s?.resolve()}else this.#i(this.#e),this.#i(this.#r),this.#i(this.#o);for(const u of this.#u)Rr(u);for(const u of this.#n)Rr(u);this.#u=[],this.#n=[]}#p(t){t.f^=Bt;for(var n=t.first;n!==null;){var r=n.f,u=(r&(ir|Hr))!==0,a=u&&(r&Bt)!==0,s=a||(r&On)!==0||this.skipped_effects.has(n);if(!s&&n.fn!==null){if(u)n.f^=Bt;else if((r&wo)!==0)this.#r.push(n);else if((r&Bt)===0)if((r&Co)!==0){var i=n.b?.is_pending()?this.#n:this.#u;i.push(n)}else ca(n)&&((n.f&wu)!==0&&this.#o.push(n),Rr(n));var l=n.first;if(l!==null){n=l;continue}}var c=n.parent;for(n=n.next;n===null&&c!==null;)n=c.next,c=c.parent}}#i(t){for(const n of t)((n.f&En)!==0?this.#d:this.#l).push(n),on(n,Bt);t.length=0}capture(t,n){this.#a.has(t)||this.#a.set(t,n),this.current.set(t,t.v)}activate(){ft=this}deactivate(){ft=null,Fa=null;for(const t of no)if(no.delete(t),t(),ft!==null)break}neuter(){this.#c=!0}flush(){Ur.length>0?Ll():this.#h(),ft===this&&(this.#f===0&&ys.delete(this),this.deactivate())}#h(){if(!this.#c)for(const t of this.#t)t();this.#t.clear()}increment(){this.#f+=1}decrement(){if(this.#f-=1,this.#f===0){for(const t of this.#d)on(t,En),yu(t);for(const t of this.#l)on(t,lr),yu(t);this.#e=[],this.#r=[],this.flush()}else this.deactivate()}add_callback(t){this.#t.add(t)}settled(){return(this.#s??=Hd()).promise}static ensure(){if(ft===null){const t=ft=new ar;ys.add(ft),Vu||ar.enqueue(()=>{ft===t&&t.flush()})}return ft}static enqueue(t){Vr(t)}}function Af(e){var t=Vu;Vu=!0;try{for(var n;;){if(wf(),Ur.length===0&&!Ef()&&(ft?.flush(),Ur.length===0))return as=null,n;Ll()}}finally{Vu=t}}function Ll(){var e=vu;ro=!0;try{var t=0;for(fi(!0);Ur.length>0;){var n=ar.ensure();if(t++>1e3){var r,u;Cf()}n.process(Ur),kr.clear()}}finally{ro=!1,fi(e),as=null}}function Cf(){try{Xd()}catch(e){_u(e,as)}}let Pr=null;function ii(e){var t=e.length;if(t!==0){for(var n=0;n0)){kr.clear();for(const u of Pr)Rr(u);Pr=[]}}Pr=null}}function yu(e){for(var t=as=e;t.parent!==null;){t=t.parent;var n=t.f;if(ro&&t===He&&(n&wu)!==0)return;if((n&(Hr|ir))!==0){if((n&Bt)===0)return;t.f^=Bt}}Ur.push(t)}function Df(e){let t=0,n=Sr(0),r;return()=>{qf()&&(o(n),Du(()=>(t===0&&(r=m(()=>e(()=>Gu(n)))),t+=1,()=>{Vr(()=>{t-=1,t===0&&(r?.(),r=void 0,Gu(n))})})))}}var Tf=Su|Au|So;function Ff(e,t,n){new Mf(e,t,n)}class Mf{parent;#a=!1;#t;#f=null;#s;#c;#u;#n=null;#e=null;#r=null;#o=null;#d=0;#l=0;#p=!1;#i=null;#h=()=>{this.#i&&Br(this.#i,this.#d)};#b=Df(()=>(this.#i=Sr(this.#d),()=>{this.#i=null}));constructor(t,n,r){this.#t=t,this.#s=n,this.#c=r,this.parent=He.b,this.#a=!!this.#s.pending,this.#u=Gr(()=>{He.b=this;{try{this.#n=an(()=>r(this.#t))}catch(u){this.error(u)}this.#l>0?this.#v():this.#a=!1}},Tf)}#_(){try{this.#n=an(()=>this.#c(this.#t))}catch(t){this.error(t)}this.#a=!1}#y(){const t=this.#s.pending;t&&(this.#e=an(()=>t(this.#t)),ar.enqueue(()=>{this.#n=this.#m(()=>(ar.ensure(),an(()=>this.#c(this.#t)))),this.#l>0?this.#v():(Er(this.#e,()=>{this.#e=null}),this.#a=!1)}))}is_pending(){return this.#a||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!this.#s.pending}#m(t){var n=He,r=Ze,u=lt;wn(this.#u),hn(this.#u),bu(this.#u.ctx);try{return t()}catch(a){return Nl(a),null}finally{wn(n),hn(r),bu(u)}}#v(){const t=this.#s.pending;this.#n!==null&&(this.#o=document.createDocumentFragment(),Pf(this.#n,this.#o)),this.#e===null&&(this.#e=an(()=>t(this.#t)))}#g(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#g(t);return}this.#l+=t,this.#l===0&&(this.#a=!1,this.#e&&Er(this.#e,()=>{this.#e=null}),this.#o&&(this.#t.before(this.#o),this.#o=null))}update_pending_count(t){this.#g(t),this.#d+=t,no.add(this.#h)}get_effect_pending(){return this.#b(),o(this.#i)}error(t){var n=this.#s.onerror;let r=this.#s.failed;if(this.#p||!n&&!r)throw t;this.#n&&(Kt(this.#n),this.#n=null),this.#e&&(Kt(this.#e),this.#e=null),this.#r&&(Kt(this.#r),this.#r=null);var u=!1,a=!1;const s=()=>{if(u){bf();return}u=!0,a&&uf(),ar.ensure(),this.#d=0,this.#r!==null&&Er(this.#r,()=>{this.#r=null}),this.#a=this.has_pending_snippet(),this.#n=this.#m(()=>(this.#p=!1,an(()=>this.#c(this.#t)))),this.#l>0?this.#v():this.#a=!1};var i=Ze;try{hn(null),a=!0,n?.(t,s),a=!1}catch(l){_u(l,this.#u&&this.#u.parent)}finally{hn(i)}r&&Vr(()=>{this.#r=this.#m(()=>{this.#p=!0;try{return an(()=>{r(this.#t,()=>t,()=>s)})}catch(l){return _u(l,this.#u.parent),null}finally{this.#p=!1}})})}}function Pf(e,t){for(var n=e.nodes_start,r=e.nodes_end;n!==null;){var u=n===r?null:la(n);t.append(n),n=u}}function Rl(e,t,n){const r=oa()?ia:ct;if(t.length===0){n(e.map(r));return}var u=ft,a=He,s=If();Promise.all(t.map(i=>Nf(i))).then(i=>{u?.activate(),s();try{n([...e.map(r),...i])}catch(l){(a.f&Wr)===0&&_u(l,a)}u?.deactivate(),$l()}).catch(i=>{_u(i,a)})}function If(){var e=He,t=Ze,n=lt,r=ft;return function(){wn(e),hn(t),bu(n),r?.activate()}}function $l(){wn(null),hn(null),bu(null)}function ia(e){var t=bn|En,n=Ze!==null&&(Ze.f&bn)!==0?Ze:null;return He===null||n!==null&&(n.f&kn)!==0?t|=kn:He.f|=Au,{ctx:lt,deps:null,effects:null,equals:Ml,f:t,fn:e,reactions:null,rv:0,v:Nt,wv:0,parent:n??He,ac:null}}function Nf(e,t){let n=He;n===null&&Kd();var r=n.b,u=void 0,a=Sr(Nt),s=null,i=!Ze;return Vf(()=>{try{var l=e();s&&Promise.resolve(l).catch(()=>{})}catch(v){l=Promise.reject(v)}var c=()=>l;u=s?.then(c,c)??Promise.resolve(l),s=u;var d=ft,f=r.is_pending();i&&(r.update_pending_count(1),f||d.increment());const h=(v,p=void 0)=>{s=null,f||d.activate(),p?p!==Do&&(a.f|=Or,Br(a,p)):((a.f&Or)!==0&&(a.f^=Or),Br(a,v)),i&&(r.update_pending_count(-1),f||d.decrement()),$l()};if(u.then(h,v=>h(null,v||"unknown")),d)return()=>{queueMicrotask(()=>d.neuter())}}),new Promise(l=>{function c(d){function f(){d===u?l(a):c(u)}d.then(f,f)}c(u)})}function Of(e){const t=ia(e);return tc(t),t}function ct(e){const t=ia(e);return t.equals=Pl,t}function zl(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;no(e))),t}function D(e,t,n=!1){Ze!==null&&(!In||(Ze.f&oi)!==0)&&oa()&&(Ze.f&(bn|wu|Co|oi))!==0&&!sr?.includes(e)&&rf();let r=n?fu(t):t;return Br(e,r)}function Br(e,t){if(!e.equals(t)){var n=e.v;Kr?kr.set(e,t):kr.set(e,n),e.v=t;var r=ar.ensure();r.capture(e,n),(e.f&bn)!==0&&((e.f&En)!==0&&Fo(e),on(e,(e.f&kn)===0?Bt:lr)),e.wv=rc(),jl(e,En),oa()&&He!==null&&(He.f&Bt)!==0&&(He.f&(ir|Hr))===0&&(yn===null?Zf([e]):yn.push(e))}return t}function li(e,t=1){var n=o(e),r=t===1?n++:n--;return D(e,n),r}function Gu(e){D(e,e.v+1)}function jl(e,t){var n=e.reactions;if(n!==null)for(var r=oa(),u=n.length,a=0;a{if(Lr===a)return i();var l=Ze,c=Lr;hn(null),hi(a);var d=i();return hn(l),hi(c),d};return r&&n.set("length",pr(e.length)),new Proxy(e,{defineProperty(i,l,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&tf();var d=n.get(l);return d===void 0?d=s(()=>{var f=pr(c.value);return n.set(l,f),f}):D(d,c.value,!0),!0},deleteProperty(i,l){var c=n.get(l);if(c===void 0){if(l in i){const d=s(()=>pr(Nt));n.set(l,d),Gu(u)}}else D(c,Nt),Gu(u);return!0},get(i,l,c){if(l===Wn)return e;var d=n.get(l),f=l in i;if(d===void 0&&(!f||ur(i,l)?.writable)&&(d=s(()=>{var v=fu(f?i[l]:Nt),p=pr(v);return p}),n.set(l,d)),d!==void 0){var h=o(d);return h===Nt?void 0:h}return Reflect.get(i,l,c)},getOwnPropertyDescriptor(i,l){var c=Reflect.getOwnPropertyDescriptor(i,l);if(c&&"value"in c){var d=n.get(l);d&&(c.value=o(d))}else if(c===void 0){var f=n.get(l),h=f?.v;if(f!==void 0&&h!==Nt)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return c},has(i,l){if(l===Wn)return!0;var c=n.get(l),d=c!==void 0&&c.v!==Nt||Reflect.has(i,l);if(c!==void 0||He!==null&&(!d||ur(i,l)?.writable)){c===void 0&&(c=s(()=>{var h=d?fu(i[l]):Nt,v=pr(h);return v}),n.set(l,c));var f=o(c);if(f===Nt)return!1}return d},set(i,l,c,d){var f=n.get(l),h=l in i;if(r&&l==="length")for(var v=c;vpr(Nt)),n.set(v+"",p))}if(f===void 0)(!h||ur(i,l)?.writable)&&(f=s(()=>pr(void 0)),D(f,fu(c)),n.set(l,f));else{h=f.v!==Nt;var w=s(()=>fu(c));D(f,w)}var y=Reflect.getOwnPropertyDescriptor(i,l);if(y?.set&&y.set.call(d,c),!h){if(r&&typeof l=="string"){var _=n.get("length"),A=Number(l);Number.isInteger(A)&&A>=_.v&&D(_,A+1)}Gu(u)}return!0},ownKeys(i){o(u);var l=Reflect.ownKeys(i).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Nt});for(var[c,d]of n)d.v!==Nt&&!(c in i)&&l.push(c);return l},setPrototypeOf(){nf()}})}function ci(e){try{if(e!==null&&typeof e=="object"&&Wn in e)return e[Wn]}catch{}return e}function Rf(e,t){return Object.is(ci(e),ci(t))}var qa,ql,Hl,Wl;function $f(){if(qa===void 0){qa=window,ql=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Hl=ur(t,"firstChild").get,Wl=ur(t,"nextSibling").get,si(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),si(n)&&(n.__t=void 0)}}function Dr(e=""){return document.createTextNode(e)}function Bn(e){return Hl.call(e)}function la(e){return Wl.call(e)}function b(e,t){return Bn(e)}function me(e,t=!1){{var n=Bn(e);return n instanceof Comment&&n.data===""?la(n):n}}function C(e,t=1,n=!1){let r=e;for(;t--;)r=la(r);return r}function zf(e){e.textContent=""}function Mo(){return!1}function Uf(e,t){if(t){const n=document.body;e.autofocus=!0,Vr(()=>{document.activeElement===n&&e.focus()})}}let di=!1;function Bf(){di||(di=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function ss(e){var t=Ze,n=He;hn(null),wn(null);try{return e()}finally{hn(t),wn(n)}}function Vl(e,t,n,r=n){e.addEventListener(t,()=>ss(n));const u=e.__on_r;u?e.__on_r=()=>{u(),r(!0)}:e.__on_r=()=>r(!0),Bf()}function Gl(e){He===null&&Ze===null&&Jd(),Ze!==null&&(Ze.f&kn)!==0&&He===null&&Yd(),Kr&&Zd()}function jf(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Vn(e,t,n,r=!0){var u=He;u!==null&&(u.f&On)!==0&&(e|=On);var a={ctx:lt,deps:null,nodes_start:null,nodes_end:null,f:e|En,first:null,fn:t,last:null,next:null,parent:u,b:u&&u.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{Rr(a),a.f|=Ao}catch(l){throw Kt(a),l}else t!==null&&yu(a);if(r){var s=a;if(n&&s.deps===null&&s.teardown===null&&s.nodes_start===null&&s.first===s.last&&(s.f&Au)===0&&(s=s.first),s!==null&&(s.parent=u,u!==null&&jf(s,u),Ze!==null&&(Ze.f&bn)!==0&&(e&Hr)===0)){var i=Ze;(i.effects??=[]).push(s)}}return a}function qf(){return Ze!==null&&!In}function os(e){const t=Vn(ts,null,!1);return on(t,Bt),t.teardown=e,t}function uo(e){Gl();var t=He.f,n=!Ze&&(t&ir)!==0&&(t&Ao)===0;if(n){var r=lt;(r.e??=[]).push(e)}else return Kl(e)}function Kl(e){return Vn(wo|Cl,e,!1)}function Hf(e){return Gl(),Vn(ts|Cl,e,!0)}function Wf(e){ar.ensure();const t=Vn(Hr|Au,e,!0);return(n={})=>new Promise(r=>{n.outro?Er(t,()=>{Kt(t),r(void 0)}):(Kt(t),r(void 0))})}function jr(e){return Vn(wo,e,!1)}function fe(e,t){var n=lt,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Du(()=>{e(),!r.ran&&(r.ran=!0,m(t))})}function At(){var e=lt;Du(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&Bt)!==0&&on(n,lr),ca(n)&&Rr(n),t.ran=!1}})}function Vf(e){return Vn(Co|Au,e,!0)}function Du(e,t=0){return Vn(ts|t,e,!0)}function G(e,t=[],n=[]){Rl(t,n,r=>{Vn(ts,()=>e(...r.map(o)),!0)})}function Gr(e,t=0){var n=Vn(wu|t,e,!0);return n}function an(e,t=!0){return Vn(ir|Au,e,!0,t)}function Zl(e){var t=e.teardown;if(t!==null){const n=Kr,r=Ze;pi(!0),hn(null);try{t.call(null)}finally{pi(n),hn(r)}}}function Yl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const u=n.ac;u!==null&&ss(()=>{u.abort(Do)});var r=n.next;(n.f&Hr)!==0?n.parent=null:Kt(n,t),n=r}}function Gf(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&ir)===0&&Kt(t),t=n}}function Kt(e,t=!0){var n=!1;(t||(e.f&Vd)!==0)&&e.nodes_start!==null&&e.nodes_end!==null&&(Jl(e.nodes_start,e.nodes_end),n=!0),Yl(e,t&&!n),Ha(e,0),on(e,Wr);var r=e.transitions;if(r!==null)for(const a of r)a.stop();Zl(e);var u=e.parent;u!==null&&u.first!==null&&Xl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function Jl(e,t){for(;e!==null;){var n=e===t?null:la(e);e.remove(),e=n}}function Xl(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Er(e,t){var n=[];Po(e,n,!0),Ql(n,()=>{Kt(e),t&&t()})}function Ql(e,t){var n=e.length;if(n>0){var r=()=>--n||t();for(var u of e)u.out(r)}else t()}function Po(e,t,n){if((e.f&On)===0){if(e.f^=On,e.transitions!==null)for(const s of e.transitions)(s.is_global||n)&&t.push(s);for(var r=e.first;r!==null;){var u=r.next,a=(r.f&Su)!==0||(r.f&ir)!==0;Po(r,t,a?n:!1),r=u}}}function is(e){ec(e,!0)}function ec(e,t){if((e.f&On)!==0){e.f^=On,(e.f&Bt)===0&&(on(e,En),yu(e));for(var n=e.first;n!==null;){var r=n.next,u=(n.f&Su)!==0||(n.f&ir)!==0;ec(n,u?t:!1),n=r}if(e.transitions!==null)for(const a of e.transitions)(a.is_global||t)&&a.in()}}let cu=null;function Kf(e){var t=cu;try{if(cu=new Set,m(e),t!==null)for(var n of cu)t.add(n);return cu}finally{cu=t}}function ly(e){for(var t of Kf(e))Br(t,t.v)}let vu=!1;function fi(e){vu=e}let Kr=!1;function pi(e){Kr=e}let Ze=null,In=!1;function hn(e){Ze=e}let He=null;function wn(e){He=e}let sr=null;function tc(e){Ze!==null&&(sr===null?sr=[e]:sr.push(e))}let un=null,gn=0,yn=null;function Zf(e){yn=e}let nc=1,Qu=0,Lr=Qu;function hi(e){Lr=e}let _r=!1;function rc(){return++nc}function ca(e){var t=e.f;if((t&En)!==0)return!0;if((t&lr)!==0){var n=e.deps,r=(t&kn)!==0;if(n!==null){var u,a,s=(t&Ba)!==0,i=r&&He!==null&&!_r,l=n.length;if((s||i)&&(He===null||(He.f&Wr)===0)){var c=e,d=c.parent;for(u=0;ue.wv)return!0}(!r||He!==null&&!_r)&&on(e,Bt)}return!1}function uc(e,t,n=!0){var r=e.reactions;if(r!==null&&!sr?.includes(e))for(var u=0;u{e.ac.abort(Do)}),e.ac=null);try{e.f|=to;var f=e.fn,h=f(),v=e.deps;if(un!==null){var p;if(Ha(e,gn),v!==null&&gn>0)for(v.length=gn+un.length,p=0;pn?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Vr(()=>{t.addEventListener(e,u,r)}):t.addEventListener(e,u,r),u}function J(e,t,n,r,u){var a={capture:r,passive:u},s=ic(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&os(()=>{t.removeEventListener(e,s,a)})}function s0(e){for(var t=0;t{throw A});throw h}}finally{e.__root=t,delete e.currentTarget,hn(d),wn(f)}}}function Io(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("",""),t.content}function qr(e,t){var n=He;n.nodes_start===null&&(n.nodes_start=e,n.nodes_end=t)}function M(e,t){var n=(t&ff)!==0,r=(t&pf)!==0,u,a=!e.startsWith("");return()=>{u===void 0&&(u=Io(a?e:""+e),n||(u=Bn(u)));var s=r||ql?document.importNode(u,!0):u.cloneNode(!0);if(n){var i=Bn(s),l=s.lastChild;qr(i,l)}else qr(s,s);return s}}function o0(e,t,n="svg"){var r=!e.startsWith(""),u=`<${n}>${r?e:""+e}`,a;return()=>{if(!a){var s=Io(u),i=Bn(s);a=Bn(i)}var l=a.cloneNode(!0);return qr(l,l),l}}function No(e,t){return o0(e,t,"svg")}function Ln(e=""){{var t=Dr(e+"");return qr(t,t),t}}function Se(){var e=document.createDocumentFragment(),t=document.createComment(""),n=Dr();return e.append(t,n),qr(t,n),e}function k(e,t){e!==null&&e.before(t)}function X(e,t){var n=t==null?"":typeof t=="object"?t+"":t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=n+"")}function i0(e,t){return l0(e,t)}const tu=new Map;function l0(e,{target:t,anchor:n,props:r={},events:u,context:a,intro:s=!0}){$f();var i=new Set,l=f=>{for(var h=0;h{var f=n??t.appendChild(Dr());return Ff(f,{pending:()=>{}},h=>{if(a){Qe({});var v=lt;v.c=a}u&&(r.$$events=u),c=e(h,r)||{},a&&et()}),()=>{for(var h of i){t.removeEventListener(h,qu);var v=tu.get(h);--v===0?(document.removeEventListener(h,qu),tu.delete(h)):tu.set(h,v)}so.delete(l),f!==n&&f.parentNode?.removeChild(f)}});return c0.set(c,d),c}let c0=new WeakMap;function $(e,t,n=!1){var r=e,u=null,a=null,s=Nt,i=n?Su:0,l=!1;const c=(v,p=!0)=>{l=!0,h(p,v)};var d=null;function f(){d!==null&&(d.lastChild.remove(),r.before(d),d=null);var v=s?u:a,p=s?a:u;v&&is(v),p&&Er(p,()=>{s?a=null:u=null})}const h=(v,p)=>{if(s!==(s=v)){var w=Mo(),y=r;if(w&&(d=document.createDocumentFragment(),d.append(y=Dr())),s?u??=p&&an(()=>p(y)):a??=p&&an(()=>p(y)),w){var _=ft,A=s?u:a,E=s?a:u;A&&_.skipped_effects.delete(A),E&&_.skipped_effects.add(E),_.add_callback(f)}else f()}};Gr(()=>{l=!1,t(c),l||h(null,null)},i)}function jn(e,t){return t}function d0(e,t,n){for(var r=e.items,u=[],a=t.length,s=0;s0&&u.length===0&&n!==null;if(i){var l=n.parentNode;zf(l),l.append(n),r.clear(),Un(e,t[0].prev,t[a-1].next)}Ql(u,()=>{for(var c=0;c{var _=n();return sa(_)?_:_==null?[]:ko(_)}),p,w;function y(){f0(w,p,i,h,s,u,t,r,n),a!==null&&(p.length===0?d?is(d):d=an(()=>a(s)):d!==null&&Er(d,()=>{d=null}))}Gr(()=>{w??=He,p=o(v);var _=p.length;if(!(f&&_===0)){f=_===0;var A,E,g,S;if(Mo()){var x=new Set,T=ft;for(E=0;E<_;E+=1){g=p[E],S=r(g,E);var R=i.items.get(S)??h.get(S);R?(t&(rs|us))!==0&&lc(R,g,E,t):(A=cc(null,i,null,null,g,S,E,u,t,n,!0),h.set(S,A)),x.add(S)}for(const[z,F]of i.items)x.has(z)||T.skipped_effects.add(F.e);T.add_callback(y)}else y();o(v)}})}function f0(e,t,n,r,u,a,s,i,l){var c=(s&af)!==0,d=(s&(rs|us))!==0,f=t.length,h=n.items,v=n.first,p=v,w,y=null,_,A=[],E=[],g,S,x,T;if(c)for(T=0;T0){var ie=(s&Tl)!==0&&f===0?u:null;if(c){for(T=0;T{if(_!==void 0)for(x of _)x.a?.apply()}),e.first=n.first&&n.first.e,e.last=y&&y.e;for(var Y of r.values())Kt(Y.e);r.clear()}function lc(e,t,n,r){(r&rs)!==0&&Br(e.v,t),(r&us)!==0?Br(e.i,n):e.i=n}function cc(e,t,n,r,u,a,s,i,l,c,d){var f=(l&rs)!==0,h=(l&sf)===0,v=f?h?U(u,!1,!1):Sr(u):u,p=(l&us)===0?s:Sr(s),w={i:p,v,k:a,a:null,e:null,prev:n,next:r};try{if(e===null){var y=document.createDocumentFragment();y.append(e=Dr())}return w.e=an(()=>i(e,v,p,c),_f),w.e.prev=n&&n.e,w.e.next=r&&r.e,n===null?d||(t.first=w):(n.next=w,n.e.next=w.e),r!==null&&(r.prev=w,r.e.prev=w.e),w}finally{}}function xs(e,t,n){for(var r=e.next?e.next.e.nodes_start:n,u=t?t.e.nodes_start:n,a=e.e.nodes_start;a!==null&&a!==r;){var s=la(a);u.before(a),a=s}}function Un(e,t,n){t===null?e.first=n:(t.next=n,t.e.next=n&&n.e),n!==null&&(n.prev=t,n.e.prev=t&&t.e)}function oo(e,t,n=!1,r=!1,u=!1){var a=e,s="";G(()=>{var i=He;if(s!==(s=t()??"")&&(i.nodes_start!==null&&(Jl(i.nodes_start,i.nodes_end),i.nodes_start=i.nodes_end=null),s!=="")){var l=s+"";n?l=`${l}`:r&&(l=`${l}`);var c=Io(l);if((n||r)&&(c=Bn(c)),qr(Bn(c),c.lastChild),n||r)for(;Bn(c);)a.before(Bn(c));else a.before(c)}})}function Gt(e,t,n,r,u){var a=t.$$slots?.[n],s=!1;a===!0&&(a=t[n==="default"?"children":n],s=!0),a===void 0||a(e,s?()=>r:r)}function vi(e,t,n){var r=e,u,a,s=null,i=null;function l(){a&&(Er(a),a=null),s&&(s.lastChild.remove(),r.before(s),s=null),a=i,i=null}Gr(()=>{if(u!==(u=t())){var c=Mo();if(u){var d=r;c&&(s=document.createDocumentFragment(),s.append(d=Dr()),a&&ft.skipped_effects.add(a)),i=an(()=>n(d,u))}c?ft.add_callback(l):l()}},Su)}function p0(e,t,n,r,u,a){var s,i,l=null,c=e,d;Gr(()=>{const f=t()||null;var h=mf;f!==s&&(d&&(f===null?Er(d,()=>{d=null,i=null}):f===i?is(d):Kt(d)),f&&f!==i&&(d=an(()=>{if(l=document.createElementNS(h,f),qr(l,l),r){var v=l.appendChild(Dr());r(l,v)}He.nodes_end=l,c.before(l)})),s=f,s&&(i=s))},Su)}function Wa(e,t,n){jr(()=>{var r=m(()=>t(e,n?.())||{});if(n&&r?.update){var u=!1,a={};Du(()=>{var s=n();L(s),u&&To(a,s)&&(a=s,r.update(s))}),u=!0}if(r?.destroy)return()=>r.destroy()})}function h0(e,t){var n=void 0,r;Gr(()=>{n!==(n=t())&&(r&&(Kt(r),r=null),n&&(r=an(()=>{jr(()=>n(e))})))})}function dc(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var u=e.length;for(t=0;t=0;){var i=s+a;(s===0||gi.includes(r[s-1]))&&(i===r.length||gi.includes(r[i]))?r=(s===0?"":r.substring(0,s))+r.substring(i+1):s=i}}return r===""?null:r}function bi(e,t=!1){var n=t?" !important;":";",r="";for(var u in e){var a=e[u];a!=null&&a!==""&&(r+=" "+u+": "+a+n)}return r}function ks(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function g0(e,t){if(t){var n="",r,u;if(Array.isArray(t)?(r=t[0],u=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,s=0,i=!1,l=[];r&&l.push(...Object.keys(r).map(ks)),u&&l.push(...Object.keys(u).map(ks));var c=0,d=-1;const w=e.length;for(var f=0;f{Rn(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),os(()=>{t.disconnect()})}function cy(e,t,n=t){var r=!0;Vl(e,"change",u=>{var a=u?"[selected]":":checked",s;if(e.multiple)s=[].map.call(e.querySelectorAll(a),Ku);else{var i=e.querySelector(a)??e.querySelector("option:not([disabled])");s=i&&Ku(i)}n(s)}),jr(()=>{var u=t();if(Rn(e,u,r),r&&u===void 0){var a=e.querySelector(":checked");a!==null&&(u=Ku(a),n(u))}e.__value=u,r=!1}),or(e)}function Ku(e){return"__value"in e?e.__value:e.value}const Mu=Symbol("class"),Pu=Symbol("style"),fc=Symbol("is custom element"),pc=Symbol("is html");function Ot(e,t){var n=ls(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!=="PROGRESS")||(e.value=t??"")}function Vt(e,t){var n=ls(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function b0(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function oe(e,t,n,r){var u=ls(e);u[t]!==(u[t]=n)&&(t==="loading"&&(e[Gd]=n),n==null?e.removeAttribute(t):typeof n!="string"&&hc(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function _0(e,t,n,r,u=!1,a=!1){var s=ls(e),i=s[fc],l=!s[pc],c=t||{},d=e.tagName==="OPTION";for(var f in t)f in n||(n[f]=null);n.class?n.class=Ma(n.class):n[Mu]&&(n.class=null),n[Pu]&&(n.style??=null);var h=hc(e);for(const E in n){let g=n[E];if(d&&E==="value"&&g==null){e.value=e.__value="",c[E]=g;continue}if(E==="class"){var v=e.namespaceURI==="http://www.w3.org/1999/xhtml";St(e,v,g,r,t?.[Mu],n[Mu]),c[E]=g,c[Mu]=n[Mu];continue}if(E==="style"){nr(e,g,t?.[Pu],n[Pu]),c[E]=g,c[Pu]=n[Pu];continue}var p=c[E];if(!(g===p&&!(g===void 0&&e.hasAttribute(E)))){c[E]=g;var w=E[0]+E[1];if(w!=="$$")if(w==="on"){const S={},x="$$"+E;let T=E.slice(2);var y=t0(T);if(Qf(T)&&(T=T.slice(0,-7),S.capture=!0),!y&&p){if(g!=null)continue;e.removeEventListener(T,c[x],S),c[x]=null}if(g!=null)if(y)e[`__${T}`]=g,s0([T]);else{let R=function(z){c[E].call(this,z)};c[x]=ic(T,e,R,S)}else y&&(e[`__${T}`]=void 0)}else if(E==="style")oe(e,E,g);else if(E==="autofocus")Uf(e,!!g);else if(!i&&(E==="__value"||E==="value"&&g!=null))e.value=e.__value=g;else if(E==="selected"&&d)b0(e,g);else{var _=E;l||(_=r0(_));var A=_==="defaultValue"||_==="defaultChecked";if(g==null&&!i&&!A)if(s[E]=null,_==="value"||_==="checked"){let S=e;const x=t===void 0;if(_==="value"){let T=S.defaultValue;S.removeAttribute(_),S.defaultValue=T,S.value=S.__value=x?T:null}else{let T=S.defaultChecked;S.removeAttribute(_),S.defaultChecked=T,S.checked=x?T:!1}}else e.removeAttribute(E);else A||h.includes(_)&&(i||typeof g!="string")?(e[_]=g,_ in s&&(s[_]=Nt)):typeof g!="function"&&oe(e,_,g)}}}return c}function _i(e,t,n=[],r=[],u,a=!1,s=!1){Rl(n,r,i=>{var l=void 0,c={},d=e.nodeName==="SELECT",f=!1;if(Gr(()=>{var v=t(...i.map(o)),p=_0(e,l,v,u,a,s);f&&d&&"value"in v&&Rn(e,v.value);for(let y of Object.getOwnPropertySymbols(c))v[y]||Kt(c[y]);for(let y of Object.getOwnPropertySymbols(v)){var w=v[y];y.description===vf&&(!l||w!==l[y])&&(c[y]&&Kt(c[y]),c[y]=an(()=>h0(e,()=>w))),p[y]=w}l=p}),d){var h=e;jr(()=>{Rn(h,l.value,!0),or(h)})}f=!0})}function ls(e){return e.__attributes??={[fc]:e.nodeName.includes("-"),[pc]:e.namespaceURI===hf}}var yi=new Map;function hc(e){var t=e.getAttribute("is")||e.nodeName,n=yi.get(t);if(n)return n;yi.set(t,n=[]);for(var r,u=e,a=Element.prototype;a!==u;){r=Al(u);for(var s in r)r[s].set&&n.push(s);u=Eo(u)}return n}function rr(e,t,n=t){var r=new WeakSet;Vl(e,"input",async u=>{var a=u?e.defaultValue:e.value;if(a=ws(e)?Ss(a):a,n(a),ft!==null&&r.add(ft),await Jf(),a!==(a=t())){var s=e.selectionStart,i=e.selectionEnd;e.value=a??"",i!==null&&(e.selectionStart=s,e.selectionEnd=Math.min(i,e.value.length))}}),m(t)==null&&e.value&&(n(ws(e)?Ss(e.value):e.value),ft!==null&&r.add(ft)),Du(()=>{var u=t();if(e===document.activeElement){var a=Fa??ft;if(r.has(a))return}ws(e)&&u===Ss(e.value)||e.type==="date"&&!u&&!e.value||u!==e.value&&(e.value=u??"")})}function ws(e){var t=e.type;return t==="number"||t==="range"}function Ss(e){return e===""?null:+e}function y0(e,t,n){var r=ur(e,t);r&&r.set&&(e[t]=n,os(()=>{e[t]=null}))}function xi(e,t){return e===t||e?.[Wn]===t}function Ar(e={},t,n,r){return jr(()=>{var u,a;return Du(()=>{u=a,a=[],m(()=>{e!==n(...a)&&(t(e,...a),u&&xi(n(...u),e)&&t(null,...u))})}),()=>{Vr(()=>{a&&xi(n(...a),e)&&t(null,...a)})}}),e}function Oo(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function rt(e=!1){const t=lt,n=t.l.u;if(!n)return;let r=()=>L(t.s);if(e){let u=0,a={};const s=ia(()=>{let i=!1;const l=t.s;for(const c in l)l[c]!==a[c]&&(a[c]=l[c],i=!0);return i&&u++,u});r=()=>o(s)}n.b.length&&Hf(()=>{ki(t,r),Xu(n.b)}),uo(()=>{const u=m(()=>n.m.map(qd));return()=>{for(const a of u)typeof a=="function"&&a()}}),n.a.length&&uo(()=>{ki(t,r),Xu(n.a)})}function ki(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function Lo(e,t,n){if(e==null)return t(void 0),n&&n(void 0),xr;const r=m(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const nu=[];function x0(e,t){return{subscribe:kt(e,t).subscribe}}function kt(e,t=xr){let n=null;const r=new Set;function u(i){if(To(e,i)&&(e=i,n)){const l=!nu.length;for(const c of r)c[1](),nu.push(c,e);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:u,update:a,subscribe:s}}function Ft(e,t,n){const r=!Array.isArray(e),u=r?[e]:e;if(!u.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const a=t.length<2;return x0(n,(s,i)=>{let l=!1;const c=[];let d=0,f=xr;const h=()=>{if(d)return;f();const p=t(r?c[0]:c,s,i);a?s(p):f=typeof p=="function"?p:xr},v=u.map((p,w)=>Lo(p,y=>{c[w]=y,d&=~(1<{d|=1<t=n)(),t}let ya=!1,io=Symbol();function Xe(e,t,n){const r=n[t]??={store:null,source:U(void 0),unsubscribe:xr};if(r.store!==e&&!(io in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=xr;else{var u=!0;r.unsubscribe=Lo(e,a=>{u?r.source.v=a:D(r.source,a)}),u=!1}return e&&io in n?at(e):o(r.source)}function Gn(){const e={};function t(){os(()=>{for(var n in e)e[n].unsubscribe();Ua(e,io,{enumerable:!1,value:!0})})}return[e,t]}function k0(e,t,n){return e.set(n),t}function E0(e){var t=ya;try{return ya=!1,[e(),ya]}finally{ya=t}}const w0={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=He;try{wn(e.parent_effect),e.special[t]=ne({get[t](){return e.props[t]}},t,Fl)}finally{wn(r)}}return e.special[t](n),li(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),li(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Sn(e,t){return new Proxy({props:e,exclude:t,special:{},version:Sr(0),parent_effect:He},w0)}const S0={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Fu(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let u=e.props[r];Fu(u)&&(u=u());const a=ur(u,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Fu(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const u=ur(r,t);return u&&!u.configurable&&(u.configurable=!0),u}}},has(e,t){if(t===Wn||t===Dl)return!1;for(let n of e.props)if(Fu(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Fu(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Kn(...e){return new Proxy({props:e},S0)}function ne(e,t,n,r){var u=!Cu||(n&lf)!==0,a=(n&cf)!==0,s=(n&df)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=s?m(r):r),i),d;if(a){var f=Wn in e||Dl in e;d=ur(e,t)?.set??(f&&t in e?E=>e[t]=E:void 0)}var h,v=!1;a?[h,v]=E0(()=>e[t]):h=e[t],h===void 0&&r!==void 0&&(h=c(),d&&(u&&ef(),d(h)));var p;if(u?p=()=>{var E=e[t];return E===void 0?c():(l=!0,E)}:p=()=>{var E=e[t];return E!==void 0&&(i=void 0),E===void 0?i:E},u&&(n&Fl)===0)return p;if(d){var w=e.$$legacy;return(function(E,g){return arguments.length>0?((!u||!g||w||v)&&d(g?p():E),E):p()})}var y=!1,_=((n&of)!==0?ia:ct)(()=>(y=!1,p()));a&&o(_);var A=He;return(function(E,g){if(arguments.length>0){const S=g?o(_):u&&a?fu(E):E;return D(_,S),y=!0,i!==void 0&&(i=S),E}return Kr&&y||(A.f&Wr)!==0?_.v:o(_)})}function da(e){lt===null&&ns(),Cu&<.l!==null?vc(lt).m.push(e):uo(()=>{const t=m(e);if(typeof t=="function")return t})}function fa(e){lt===null&&ns(),da(()=>()=>m(e))}function A0(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Et(){const e=lt;return e===null&&ns(),(t,n,r)=>{const u=e.s.$$events?.[t];if(u){const a=sa(u)?u.slice():[u],s=A0(t,n,r);for(const i of a)i.call(e.x,s);return!s.defaultPrevented}return!0}}function mc(e){lt===null&&ns(),lt.l===null&&Qd(),vc(lt).a.push(e)}function vc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const C0="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(C0);xf();const jt="";function dt(e){return e.startsWith("/")?`${jt}${e}`:`${jt}/${e}`}const D0=/\r?\n/;function Ei(e){const t=[],n=e.split(/\n\n|\r\r|\r\n\r\n/);for(const r of n){const u=r.trim();if(!u)continue;const a=u.split(D0);let s="message",i=[],l;for(const c of a)if(c&&!c.startsWith(":")){if(c.startsWith("event:")){s=c.slice(6).trim()||"message";continue}if(c.startsWith("data:")){i.push(c.slice(5).trimStart());continue}if(c.startsWith("id:")){l=c.slice(3).trim();continue}}t.push({event:s,data:i.length?i.join(` -`):void 0,id:l})}return t}class xu extends Error{status;constructor(t,n){super(n),this.status=t}}async function bt(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const u=await n.json();r=u.detail||u.message||JSON.stringify(u)}catch{}throw new xu(n.status,r)}return await n.json()}async function T0(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const u=await n.json();r=u.detail||u.message||JSON.stringify(u)}catch{}throw new xu(n.status,r)}}async function F0(){return bt(dt("/api/models"))}async function M0(){return bt(dt("/api/stt/deepgram/token"),{method:"POST",body:JSON.stringify({})})}async function P0(e){const t=`/api/chat/generation/${encodeURIComponent(e)}`;return bt(dt(t))}async function wi(e,t){const n=`/api/chat/session/${encodeURIComponent(e)}/messages/${encodeURIComponent(t)}`;await T0(dt(n),{method:"DELETE"})}async function I0(){return bt(dt("/api/settings/model"))}async function Si(e){return bt(dt("/api/settings/model"),{method:"PUT",body:JSON.stringify(e)})}async function N0(){return bt(dt("/api/settings/system-prompt"))}async function O0(e){return bt(dt("/api/settings/system-prompt"),{method:"PUT",body:JSON.stringify(e)})}async function L0(){return bt(dt("/api/mcp/servers/"))}async function R0(e,t){const n=`/api/mcp/servers/${encodeURIComponent(e)}`;return bt(dt(n),{method:"PATCH",body:JSON.stringify(t)})}async function $0(){return bt(dt("/api/mcp/servers/refresh"),{method:"POST",body:JSON.stringify({})})}async function z0(){return bt(dt("/api/google-auth/status"))}async function U0(e){return bt(dt("/api/google-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function B0(){return bt(dt("/api/monarch-auth/status"))}async function j0(e){return bt(dt("/api/monarch-auth/credentials"),{method:"POST",body:JSON.stringify(e)})}async function q0(){return bt(dt("/api/monarch-auth/credentials"),{method:"DELETE"})}async function H0(){return bt(dt("/api/spotify-auth/status"))}async function W0(e){return bt(dt("/api/spotify-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function V0(e,t){const n=new FormData;n.append("file",e),n.append("session_id",t);const r=await fetch(dt("/api/uploads"),{method:"POST",body:n});if(!r.ok){let u=r.statusText||"Upload failed";try{u=(await r.json())?.detail??u}catch{}throw new xu(r.status||0,u)}return await r.json()}const G0=/\n\n|\r\r|\r\n\r\n/;async function K0(e,{onChunk:t,onDone:n,onError:r,onSession:u,onNotice:a,signal:s}={}){const i=await fetch(dt("/api/chat/stream"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e),signal:s});if(!i.ok||!i.body){const f=i.statusText||"Failed to connect to chat stream",h=new xu(i.status||0,f);throw r?.(h),h}const l=i.body.getReader(),c=new TextDecoder;let d="";try{for(;;){const{value:f,done:h}=await l.read();if(h)break;d+=c.decode(f,{stream:!0});const v=d.split(G0);d=v.pop()??"";for(const p of v){const w=Ei(p);for(const y of w){if(y.event==="session"&&y.data){try{const _=JSON.parse(y.data);_.session_id&&u?.(_.session_id)}catch(_){console.warn("Failed to parse session payload",_)}continue}if(y.event==="notice"){if(y.data)try{const _=JSON.parse(y.data);a?.(_)}catch(_){console.warn("Failed to parse notice payload",_,y.data)}continue}if(y.event!=="message"){t?.({choices:[],object:"event",meta:{event:y.event,data:y.data}},y);continue}if(y.data==="[DONE]"){n?.();return}if(y.data)try{const _=JSON.parse(y.data);t?.(_,y)}catch(_){console.warn("Failed to parse SSE chunk",_,y.data)}}}}if(d.trim()){const f=Ei(d);for(const h of f)if(h.event==="session"&&h.data)try{const v=JSON.parse(h.data);v.session_id&&u?.(v.session_id)}catch(v){console.warn("Failed to parse session payload",v)}else if(h.event==="notice"){if(h.data)try{const v=JSON.parse(h.data);a?.(v)}catch(v){console.warn("Failed to parse notice payload",v,h.data)}}else if(h.event==="message"){if(h.data==="[DONE]")n?.();else if(h.data)try{const v=JSON.parse(h.data);t?.(v,h)}catch(v){console.warn("Failed to parse SSE chunk",v,h.data)}}}n?.()}catch(f){if(f instanceof DOMException&&f.name==="AbortError")return;const h=f instanceof Error?f:new Error(String(f));throw r?.(h),h}finally{l.releaseLock()}}async function Iu(){return bt(dt("/api/presets/"))}async function Z0(e){return bt(dt("/api/presets/"),{method:"POST",body:JSON.stringify(e)})}async function Y0(e,t){const n=`/api/presets/${encodeURIComponent(e)}`;return bt(dt(n),{method:"PUT",body:JSON.stringify(t??{})})}async function J0(e){const t=`/api/presets/${encodeURIComponent(e)}`;return bt(dt(t),{method:"DELETE"})}async function X0(e){const t=`/api/presets/${encodeURIComponent(e)}/apply`;return bt(dt(t),{method:"POST",body:JSON.stringify({})})}async function Q0(e){const t=`/api/presets/${encodeURIComponent(e)}/set-default`;return bt(dt(t),{method:"POST",body:JSON.stringify({})})}async function ep(){return bt(dt("/api/presets/default"))}const gc=[{key:"total_cost",label:"Total cost"},{key:"created_at",label:"Created"},{key:"model",label:"Model"},{key:"origin",label:"Origin"},{key:"usage",label:"Usage"},{key:"is_byok",label:"Self-hosted"},{key:"cache_discount",label:"Cache discount"},{key:"upstream_inference_cost",label:"Upstream inference cost"},{key:"cancelled",label:"Cancelled"},{key:"provider_name",label:"Provider"},{key:"latency",label:"Latency (ms)"},{key:"moderation_latency",label:"Moderation latency (ms)"},{key:"generation_time",label:"Generation time (ms)"},{key:"finish_reason",label:"Finish reason"},{key:"native_finish_reason",label:"Native finish reason"},{key:"tokens_prompt",label:"Prompt tokens"},{key:"tokens_completion",label:"Completion tokens"},{key:"native_tokens_prompt",label:"Native prompt tokens"},{key:"native_tokens_completion",label:"Native completion tokens"},{key:"native_tokens_reasoning",label:"Native reasoning tokens"},{key:"num_media_prompt",label:"Prompt media"},{key:"num_media_completion",label:"Completion media"},{key:"num_search_results",label:"Search results"}];function Ai(e){if(e==null||e==="")return{text:"—",isMultiline:!1};if(typeof e=="boolean")return{text:e?"Yes":"No",isMultiline:!1};if(typeof e=="number")return{text:Number.isFinite(e)?e.toString():String(e),isMultiline:!1};if(typeof e=="object")try{const n=JSON.stringify(e,null,2);return{text:n,isMultiline:n.includes(` -`)}}catch(n){console.warn("Failed to stringify generation detail value",n,e);const r=String(e);return{text:r,isMultiline:r.includes(` -`)}}const t=String(e);return{text:t,isMultiline:t.includes(` -`)}}const tp="modulepreload",np=function(e){return"/"+e},Ci={},Di=function(t,n,r){let u=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=s?.nonce||s?.getAttribute("nonce");u=l(n.map(c=>{if(c=np(c),c in Ci)return;Ci[c]=!0;const d=c.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const h=document.createElement("link");if(h.rel=d?"stylesheet":tp,d||(h.as="script"),h.crossOrigin="",h.href=c,i&&h.setAttribute("nonce",i),document.head.appendChild(h),d)return new Promise((v,p)=>{h.addEventListener("load",v),h.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return u.then(s=>{for(const i of s||[])i.status==="rejected"&&a(i.reason);return t().catch(a)})},Ti={enabled:!1,engine:null,maxResults:5,searchPrompt:"",contextSize:null};function Fi(e,t){const n={...t};if(Object.prototype.hasOwnProperty.call(e,"enabled")&&(n.enabled=!!e.enabled),Object.prototype.hasOwnProperty.call(e,"engine")){const r=e.engine;n.engine=r==="native"||r==="exa"?r:null}if(Object.prototype.hasOwnProperty.call(e,"maxResults")){const r=e.maxResults;if(r==null)n.maxResults=null;else{const u=Number(r);Number.isFinite(u)&&u>0?n.maxResults=Math.min(Math.round(u),25):n.maxResults=t.maxResults}}if(Object.prototype.hasOwnProperty.call(e,"searchPrompt")){const r=e.searchPrompt;n.searchPrompt=typeof r=="string"?r:t.searchPrompt}if(Object.prototype.hasOwnProperty.call(e,"contextSize")){const r=e.contextSize;n.contextSize=r==="low"||r==="medium"||r==="high"?r:null}return n}function rp(e=Ti){const t=kt({...e});function n(s){t.update(i=>Fi(s,i))}function r(s){t.update(i=>Fi({enabled:s},i))}function u(){t.set({...Ti})}const a=Ft(t,s=>s.enabled);return{subscribe:t.subscribe,get current(){return at(t)},update:n,setEnabled:r,reset:u,isEnabled:a}}const bc=rp(),up=[{label:"GPT",keywords:["gpt","openai","o1","o3"]},{label:"Claude",keywords:["claude"]},{label:"Gemini",keywords:["gemini","palm-2","palm2"]},{label:"Grok",keywords:["grok"]},{label:"Cohere",keywords:["cohere","command"]},{label:"Nova",keywords:["nova"]},{label:"Qwen",keywords:["qwen"]},{label:"Yi",keywords:["yi"]},{label:"DeepSeek",keywords:["deepseek"]},{label:"Mistral",keywords:["mistral","mixtral"]},{label:"Llama4",keywords:["llama-4"]},{label:"Llama3",keywords:["llama-3"]},{label:"Llama2",keywords:["llama-2"]},{label:"RWKV",keywords:["rwkv"]},{label:"Router",keywords:["router"]},{label:"Media",keywords:["media"]},{label:"Other",keywords:[]}];function _c(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function Ro(e){const t=[];if(Array.isArray(e)){for(const n of e)typeof n=="string"&&n.trim()&&t.push(n.trim().toLowerCase());return t}if(typeof e=="string"&&e.trim())return e.split(/[,/]/).map(n=>n.trim().toLowerCase()).filter(Boolean);if(e&&typeof e=="object"){const n=Object.values(e);for(const r of n)t.push(...Ro(r))}return t}function $o(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const s of["input_modalities","input","modalities","inputs"])u(a[s])}return u(e.input_modalities),u(r),Array.from(t);function u(a){for(const s of Ro(a))t.add(s)}}function zo(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const i of["output_modalities","output","outputs"])u(a[i]);const s=a.modalities;s&&(u(s.output),u(s.outputs))}return u(e.output_modalities),u(r),Array.from(t);function u(a){for(const s of Ro(a))t.add(s)}}const yc=1e6,xc=6,ap=["prompt_price_per_million","input_price_per_million","input_token_price_per_million"],sp=["prompt_price","input_price","input_token_price"],op=["prompt","input","input_tokens","prompt_tokens"],ip=["completion_price_per_million","output_price_per_million","output_token_price_per_million"],lp=["completion_price","output_price","output_token_price"],cp=["completion","output","output_tokens","completion_tokens"];function kc(e,t){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number(e.toFixed(t))}function Ec(e,t,n){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number((e*t).toFixed(n))}function Va(e,t){for(const n of t){if(!(n in e))continue;const r=_c(e[n]);if(r!==null)return r}return null}function dp(e){const t=[],n=u=>{u&&typeof u=="object"&&t.push(u)};n(e.pricing),e.provider&&typeof e.provider=="object"&&n(e.provider.pricing);const r=e.top_provider;return r&&typeof r=="object"&&n(r.pricing),t}function fp(e,t,n,r,u){const a=Va(e,t),s=kc(a,u);if(s!==null)return s;const i=Va(e,n),l=Ec(i,r,u);return l!==null?l:null}function pp(e,t,n,r,u){if(!e)return null;const a=e,s=Va(a,t),i=kc(s,u);if(i!==null)return i;const l=Va(a,n),c=Ec(l,r,u);return c!==null?c:null}function wc(e,t,n,r,u,a){const i=fp(e,t,n,u,a);if(i!==null)return i;const l=[...r,...n];for(const c of dp(e)){const d=pp(c,t,l,u,a);if(d!==null)return d}return null}function Sc(e){return wc(e,ap,sp,op,yc,xc)}function hp(e){return wc(e,ip,lp,cp,yc,xc)}function Pa(e){return Sc(e)}function Zu(e){const t=[e.max_context,e.context_length,e.context_window,e.context_tokens,e.stats?.context_length];for(const n of t){const r=_c(n);if(r!==null)return r}return null}function mp(e){return e===null?"—":e===0?"FREE":e>=100?`$${e.toFixed(0)}`:e>=10?`$${e.toFixed(1)}`:e>=1?`$${e.toFixed(2)}`:e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(3)}`}function xa(e){return e===null?"Unknown":e>=1e3?`${(e/1e3).toFixed(1)}k tokens`:`${e} tokens`}function Ac(e){const t=e.provider;if(t&&typeof t=="object"){const r=t,u=r.display_name;if(typeof u=="string"&&u.trim())return u.trim();const a=r.name??r.id??r.slug;if(typeof a=="string"&&a.trim())return a.trim()}if(typeof e.provider=="string")return e.provider.trim()||null;const n=e.id?.split("/")??[];return n.length>=2?n[n.length-2]??null:null}function Cc(e){const t=new Set,n=[];typeof e.id=="string"&&n.push(e.id.toLowerCase()),typeof e.name=="string"&&n.push(e.name.toLowerCase()),Array.isArray(e.tags)&&n.push(...e.tags.map(u=>String(u).toLowerCase()));const r=n.join(" ");for(const u of up)u.label!=="Other"&&u.keywords.some(a=>r.includes(a))&&t.add(u.label);return t.size===0&&t.add("Other"),Array.from(t)}function Uo(e){const t=new Set,n=[],r=e;if(n.push(r.parameters,r.supported_parameters),e.capabilities&&typeof e.capabilities=="object"){const u=e.capabilities;n.push(u.parameters,u.supports_parameters)}for(const u of n)if(u){if(Array.isArray(u)){for(const a of u){const s=As(a);s&&t.add(s)}continue}if(typeof u=="object")for(const a of Object.keys(u)){const s=As(a);s&&t.add(s)}if(typeof u=="string"){const a=As(u);a&&t.add(a)}}return Array.from(t)}function Dc(e){const t=e,n=[t.is_moderated,t.moderation,t.requires_moderation],r=e.capabilities;r&&typeof r=="object"&&(n.push(r.is_moderated),n.push(r.requires_moderation));const u=e.provider;u&&typeof u=="object"&&n.push(u.is_moderated);const a=t.top_provider;a&&typeof a=="object"&&n.push(a.is_moderated);const s=t.metadata;s&&typeof s=="object"&&n.push(s.is_moderated);for(const i of n)if(typeof i=="boolean")return i?"moderated":"unmoderated";return null}function As(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function ru(){return{include:[],exclude:[]}}function lo(){return{search:"",inputModalities:ru(),outputModalities:ru(),minContext:null,minPromptPrice:null,maxPromptPrice:null,sort:"newness",series:ru(),providers:ru(),supportedParameters:ru(),moderation:ru()}}const vp={inputModalities:[],outputModalities:[],minContext:null,maxContext:null,minPromptPrice:null,maxPromptPrice:null,series:[],providers:[],supportedParameters:[],moderation:[]},gp={models:[],loading:!1,error:null,filters:lo(),facets:{...vp}};function bp(e){const t=new Set,n=new Set;let r=null,u=null,a=null,s=null;const i=new Set,l=new Set,c=new Set,d=new Set;for(const f of e){for(const y of $o(f))t.add(y);for(const y of zo(f))n.add(y);const h=Zu(f);h!==null&&(r=r===null?h:Math.min(r,h),u=u===null?h:Math.max(u,h));const v=Pa(f);v!==null&&(a=a===null?v:Math.min(a,v),s=s===null?v:Math.max(s,v));for(const y of Cc(f))i.add(y);const p=Ac(f);p&&l.add(p);for(const y of Uo(f))c.add(y);const w=Dc(f);w&&d.add(w)}return{inputModalities:Array.from(t).sort(),outputModalities:Array.from(n).sort(),minContext:r,maxContext:u,minPromptPrice:a,maxPromptPrice:s,series:Array.from(i).sort(),providers:Array.from(l).sort(),supportedParameters:Array.from(c).sort(),moderation:Array.from(d).sort()}}function Bo(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t||null}function Cs(e){const t=[];for(const n of e){const r=Bo(n);r&&t.push(r)}return t}function _p(e,t){return e.include.includes(t)?"include":e.exclude.includes(t)?"exclude":"neutral"}function Tc(e,t,n){const r=e.include.filter(a=>a!==t),u=e.exclude.filter(a=>a!==t);return n==="include"?{include:[...r,t],exclude:u}:n==="exclude"?{include:r,exclude:[...u,t]}:{include:r,exclude:u}}function yp(e,t,n){const r=Bo(t);return r?Tc(e,r,n):e}function uu(e,t){const n=Cs(e.include),r=Cs(e.exclude);if(n.length===0&&r.length===0)return!0;const u=new Set(Cs(t));if(n.length>0){for(const a of n)if(!u.has(a))return!1}if(r.length>0){for(const a of r)if(u.has(a))return!1}return!0}function xp(e){const{models:t,filters:n}=e;if(!Array.isArray(t)||t.length===0)return[];const r=n.search.toLowerCase().split(/\s+/).filter(Boolean),u=t.filter(i=>{if(r.length>0){const h=[i.id,i.name,i.description,(i.tags??[]).join(" ")].join(" ").toLowerCase();if(!r.every(p=>h.includes(p)))return!1}if(!uu(n.inputModalities,$o(i))||!uu(n.outputModalities,zo(i)))return!1;const l=Zu(i);if(n.minContext!==null&&(l===null||ln.maxPromptPrice)||!uu(n.series,Cc(i)))return!1;const d=Ac(i);if(!uu(n.providers,d?[d]:[])||!uu(n.supportedParameters,Uo(i)))return!1;const f=Dc(i);return!!uu(n.moderation,f?[f]:[])}),a={newness:(i,l)=>{const c=Date.parse(i.created_at??"")||0;return(Date.parse(l.created_at??"")||0)-c},price:(i,l)=>{const c=Pa(i),d=Pa(l),f=c??Number.POSITIVE_INFINITY,h=d??Number.POSITIVE_INFINITY;return f===h?0:f{const c=Zu(i),d=Zu(l),f=c??-1/0,h=d??-1/0;return f===h?0:h-f}},s=a[n.sort]??a.newness;return u.slice().sort(s)}function au(e,t){const n=Bo(t);if(!n)return e;const r=_p(e,n);return Tc(e,n,r==="include"?"exclude":r==="exclude"?"neutral":"include")}function kp(e,t,n,r){const u={...e};return u[t]=yp(e[t],n,r),u}function su(e){return e===null||Number.isNaN(e)||!Number.isFinite(e)||e<0?null:e}function xn(e){return e.include.length>0||e.exclude.length>0}function Ep(e){return!!(e.search.trim()||xn(e.inputModalities)||xn(e.outputModalities)||xn(e.series)||xn(e.providers)||xn(e.supportedParameters)||xn(e.moderation)||e.minContext!==null||e.minPromptPrice!==null||e.maxPromptPrice!==null)}function wp(e,t,n){if(!Array.isArray(e)||e.length===0)return[];if(!n||e.some(u=>u.id===n))return e;const r=t.find(u=>u.id===n);return r?[r,...e]:e}function Sp(e,t){return!Array.isArray(e)||e.length===0||!t?null:e.find(r=>r.id===t)??null}function Ap(){const e=kt({...gp});async function t(){e.update(F=>({...F,loading:!0,error:null}));try{const F=await F0(),I=Array.isArray(F.data)?F.data:[],K=bp(I);return e.update(N=>({...N,models:I,facets:K,loading:!1,error:null})),F}catch(F){const I=F instanceof Error?F.message:String(F);e.update(K=>({...K,loading:!1,error:I}))}}function n(F){e.update(I=>({...I,filters:{...I.filters,search:F}}))}function r(F){e.update(I=>({...I,filters:{...I.filters,inputModalities:au(I.filters.inputModalities,F)}}))}function u(F){e.update(I=>({...I,filters:{...I.filters,outputModalities:au(I.filters.outputModalities,F)}}))}function a(F){e.update(I=>({...I,filters:{...I.filters,series:au(I.filters.series,F)}}))}function s(F){e.update(I=>({...I,filters:{...I.filters,providers:au(I.filters.providers,F)}}))}function i(F){e.update(I=>({...I,filters:{...I.filters,supportedParameters:au(I.filters.supportedParameters,F)}}))}function l(F){e.update(I=>({...I,filters:{...I.filters,moderation:au(I.filters.moderation,F)}}))}function c(F,I,K){e.update(N=>({...N,filters:kp(N.filters,F,I,K)}))}function d(F){e.update(I=>({...I,filters:{...I.filters,minContext:su(F)}}))}function f(F){e.update(I=>({...I,filters:{...I.filters,minPromptPrice:su(F)}}))}function h(F){e.update(I=>({...I,filters:{...I.filters,maxPromptPrice:su(F)}}))}function v(F){e.update(I=>({...I,filters:{...I.filters,sort:F}}))}function p(){e.update(F=>{const I=lo();return I.sort=F.filters.sort,{...F,filters:I}})}function w(){const F=at(e).filters,I={};return xn(F.inputModalities)&&(I.inputModalities=F.inputModalities),xn(F.outputModalities)&&(I.outputModalities=F.outputModalities),F.minContext!==null&&(I.minContext=F.minContext),F.minPromptPrice!==null&&(I.minPromptPrice=F.minPromptPrice),F.maxPromptPrice!==null&&(I.maxPromptPrice=F.maxPromptPrice),xn(F.series)&&(I.series=F.series),xn(F.providers)&&(I.providers=F.providers),xn(F.supportedParameters)&&(I.supportedParameters=F.supportedParameters),xn(F.moderation)&&(I.moderation=F.moderation),I.sort=F.sort,I}function y(F){e.update(I=>{const K=lo();return K.search=I.filters.search,F.inputModalities&&(K.inputModalities=F.inputModalities),F.outputModalities&&(K.outputModalities=F.outputModalities),F.minContext!==void 0&&(K.minContext=su(F.minContext)),F.minPromptPrice!==void 0&&(K.minPromptPrice=su(F.minPromptPrice)),F.maxPromptPrice!==void 0&&(K.maxPromptPrice=su(F.maxPromptPrice)),F.series&&(K.series=F.series),F.providers&&(K.providers=F.providers),F.supportedParameters&&(K.supportedParameters=F.supportedParameters),F.moderation&&(K.moderation=F.moderation),F.sort&&(K.sort=F.sort),{...I,filters:K}})}const _=Ft(e,F=>F.models),A=Ft(e,F=>F.loading),E=Ft(e,F=>F.error),g=Ft(e,F=>F.filters),S=Ft(e,F=>F.facets),x=Ft(e,F=>xp(F)),T=Ft(e,F=>Ep(F.filters)),R=Ft([x,_,T],([F,I,K])=>{const N=K?F:I;return Q=>wp(N,I,Q)}),z=Ft(_,F=>I=>Sp(F,I));return{subscribe:e.subscribe,loadModels:t,setSearch:n,toggleInputModality:r,toggleOutputModality:u,toggleSeries:a,toggleProvider:s,toggleSupportedParameter:i,toggleModeration:l,setSelectionState:c,setMinContext:d,setMinPromptPrice:f,setMaxPromptPrice:h,setSort:v,resetFilters:p,getFilters:w,setFilters:y,models:_,loading:A,error:E,filters:g,facets:S,filtered:x,activeFilters:T,selectable:R,activeFor:z}}const wr=Ap(),ka={loading:!1,saving:!1,applying:null,deleting:null,creating:!1,settingDefault:null,error:null,items:[],lastApplied:null,lastResult:null};function Cp(){const e=kt({...ka});async function t(){e.set({...ka,loading:!0});try{const c=await Iu();e.set({...ka,loading:!1,items:c})}catch(c){const d=c instanceof Error?c.message:"Failed to load presets.";e.set({...ka,loading:!1,error:d})}}async function n(c){const d={name:c.trim(),model_filters:wr.getFilters()};if(!d.name)return e.update(f=>({...f,error:"Preset name is required."})),null;e.update(f=>({...f,creating:!0,error:null,lastResult:null}));try{const f=await Z0(d),h=await Iu();return e.update(v=>({...v,creating:!1,error:null,items:h,lastResult:f})),f}catch(f){const h=f instanceof Error?f.message:"Failed to create preset.";return e.update(v=>({...v,creating:!1,error:h})),null}}async function r(c,d){e.update(f=>({...f,saving:!0,error:null,lastResult:null}));try{const f={...d,model_filters:wr.getFilters()},h=await Y0(c,f),v=await Iu();return e.update(p=>({...p,saving:!1,error:null,items:v,lastResult:h})),h}catch(f){const h=f instanceof Error?f.message:"Failed to save snapshot.";return e.update(v=>({...v,saving:!1,error:h})),null}}async function u(c){e.update(d=>({...d,deleting:c,error:null}));try{const d=await J0(c),f=await Iu();return e.update(h=>({...h,deleting:null,items:f})),!!d?.deleted}catch(d){const f=d instanceof Error?d.message:"Failed to delete preset.";return e.update(h=>({...h,deleting:null,error:f})),!1}}async function a(c){e.update(d=>({...d,applying:c,error:null,lastApplied:null,lastResult:null}));try{const d=await X0(c);return d?.model_filters&&wr.setFilters(d.model_filters),e.update(f=>({...f,applying:null,lastApplied:c,lastResult:d})),d}catch(d){const f=d instanceof Error?d.message:"Failed to apply preset.";return e.update(h=>({...h,applying:null,error:f})),null}}async function s(c){e.update(d=>({...d,settingDefault:c,error:null}));try{const d=await Q0(c),f=await Iu();return e.update(h=>({...h,settingDefault:null,items:f,lastResult:d})),d}catch(d){const f=d instanceof Error?d.message:"Failed to set default preset.";return e.update(h=>({...h,settingDefault:null,error:f})),null}}async function i(){try{return await ep()}catch(c){return console.error("Failed to load default preset:",c),null}}function l(){e.update(c=>({...c,error:null}))}return{subscribe:e.subscribe,load:t,create:n,saveSnapshot:r,remove:u,apply:a,setDefault:s,loadDefault:i,clearError:l}}const Pn=Cp();var Dp=M(''),Tp=M(''),Fp=M(''),Mp=M(''),Pp=M('
                  ');function Ip(e,t){Qe(t,!1);const n=()=>Xe(bc,"$webSearchStore",u),r=()=>Xe(Pn,"$presetsStore",u),[u,a]=Gn(),s=Et();let i=ne(t,"selectableModels",24,()=>[]),l=ne(t,"selectedModel",8,""),c=ne(t,"modelsLoading",8,!1),d=ne(t,"modelsError",8,null),f=ne(t,"hasMessages",8,!1),h=U(null),v=U(null),p=U(!1),w=U(!1);async function y(){if(!o(h)){D(p,!0);try{const Z=await Di(()=>import("./ModelPicker-JKtmtRjt.js"),__vite__mapDeps([0,1]));D(h,Z.default)}catch(Z){console.error("Failed to load ModelPicker",Z)}finally{D(p,!1)}}}async function _(){if(!o(v)){D(w,!0);try{const Z=await Di(()=>import("./WebSearchMenu-BL7jSOF3.js"),__vite__mapDeps([2,3]));D(v,Z.default)}catch(Z){console.error("Failed to load WebSearchMenu",Z)}finally{D(w,!1)}}}da(()=>{y(),_()});function A(){s("openExplorer")}function E(){s("clear")}function g(Z){s("modelChange",Z.detail)}function S(){s("openModelSettings")}function x(){s("openSystemSettings")}function T(){s("openSpeechSettings")}function R(){s("openKioskSettings")}function z(){s("openPresets")}rt();var F=Pp(),I=b(F),K=b(I),N=b(K),Q=C(N,2);{var q=Z=>{var B=Se(),ye=me(B);vi(ye,()=>o(h),(Me,Re)=>{Re(Me,{get selectableModels(){return i()},get selectedModel(){return l()},get modelsLoading(){return c()},get modelsError(){return d()},$$events:{modelChange:g}})}),k(Z,B)},ae=Z=>{var B=Dp();G(()=>oe(B,"data-loading",o(p))),k(Z,B)};$(Q,Z=>{o(h)?Z(q):Z(ae,!1)})}var ie=C(Q,2);{var Y=Z=>{var B=Se(),ye=me(B);vi(ye,()=>o(v),(Me,Re)=>{Re(Me,{})}),k(Z,B)},W=Z=>{var B=Tp(),ye=b(B),Me=C(b(ye),2),Re=b(Me);G(()=>{oe(B,"data-loading",o(w)),oe(Me,"data-enabled",(n(),m(()=>n().enabled))),X(Re,(n(),m(()=>n().enabled?"On":"Off")))}),k(Z,B)};$(ie,Z=>{o(v)?Z(Y):Z(W,!1)})}var O=C(ie,2),V=C(O,2),he=C(V,2);{var pe=Z=>{var B=Fp(),ye=C(b(B),4),Me=b(ye);G(()=>{oe(B,"title",(r(),m(()=>`Applying ${r().applying}… (click to manage presets)`))),oe(ye,"title",(r(),m(()=>r().applying))),X(Me,(r(),m(()=>r().applying)))}),J("click",B,z),k(Z,B)},H=Z=>{var B=Se(),ye=me(B);{var Me=Re=>{var We=Mp(),Ae=C(b(We),4),tt=b(Ae);G(()=>{oe(We,"title",(r(),m(()=>`Active preset: ${r().lastApplied} (click to manage)`))),oe(Ae,"title",(r(),m(()=>r().lastApplied))),X(tt,(r(),m(()=>r().lastApplied)))}),J("click",We,z),k(Re,We)};$(ye,Re=>{r(),m(()=>r().lastApplied)&&Re(Me)},!0)}k(Z,B)};$(he,Z=>{r(),m(()=>r().applying)?Z(pe):Z(H,!1)})}var j=C(he,2),ce=C(j,2),ee=C(ce,2),De=C(ee,2);G(()=>{O.disabled=c()||!l(),De.disabled=!f()}),J("click",N,A),J("click",O,S),J("click",V,z),J("click",j,x),J("click",ce,T),J("click",ee,R),J("click",De,E),k(e,F),et(),a()}/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const Np={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};var Op=No("");function Zn(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]),r=Sn(n,["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"]);Qe(t,!1);let u=ne(t,"name",8,void 0),a=ne(t,"color",8,"currentColor"),s=ne(t,"size",8,24),i=ne(t,"strokeWidth",8,2),l=ne(t,"absoluteStrokeWidth",8,!1),c=ne(t,"iconNode",24,()=>[]);const d=(...p)=>p.filter((w,y,_)=>!!w&&_.indexOf(w)===y).join(" ");rt();var f=Op();_i(f,(p,w)=>({...Np,...r,width:s(),height:s(),stroke:a(),"stroke-width":p,class:w}),[()=>(L(l()),L(i()),L(s()),m(()=>l()?Number(i())*24/Number(s()):i())),()=>(L(u()),L(n),m(()=>d("lucide-icon","lucide",u()?`lucide-${u()}`:"",n.class)))]);var h=b(f);mt(h,1,c,jn,(p,w)=>{var y=Of(()=>Wd(o(w),2));let _=()=>o(y)[0],A=()=>o(y)[1];var E=Se(),g=me(E);p0(g,_,!0,(S,x)=>{_i(S,()=>({...A()}))}),k(p,E)});var v=C(h);Gt(v,t,"default",{}),k(e,f),et()}function Lp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M12 18V5"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77"}]];Zn(e,Kn({name:"brain"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Rp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M5 21v-6"}],["path",{d:"M12 21V9"}],["path",{d:"M19 21V3"}]];Zn(e,Kn({name:"chart-no-axes-column-increasing"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function $p(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M20 6 9 17l-5-5"}]];Zn(e,Kn({name:"check"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function zp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];Zn(e,Kn({name:"clipboard-copy"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Up(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}],["path",{d:"M2 12h20"}]];Zn(e,Kn({name:"globe"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Mi(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];Zn(e,Kn({name:"pencil"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Bp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}],["path",{d:"M16 16h5v5"}]];Zn(e,Kn({name:"refresh-ccw"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function jp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"}],["path",{d:"m21.854 2.147-10.94 10.939"}]];Zn(e,Kn({name:"send"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function qp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];Zn(e,Kn({name:"trash-2"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Hp(e,t){const n=Sn(t,["children","$$slots","$$events","$$legacy"]);/** - * @license lucide-svelte v0.544.0 - ISC - * - * ISC License - * - * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - * --- - * - * The MIT License (MIT) (for portions derived from Feather) - * - * Copyright (c) 2013-2023 Cole Bemis - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - */const r=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"}]];Zn(e,Kn({name:"wrench"},()=>n,{get iconNode(){return r},children:(u,a)=>{var s=Se(),i=me(s);Gt(i,t,"default",{}),k(u,s)},$$slots:{default:!0}}))}function Wp(e,t=null){let n=0,r=2;function u(c){if(typeof c=="number")r=Number.isFinite(c)&&c>0?c:2;else if(c&&typeof c=="object"&&"maxMultiplier"in c){const d=c.maxMultiplier;typeof d=="number"&&Number.isFinite(d)&&d>0&&(r=d)}}u(t);function a(){const c=e.style.height;if(e.style.height="auto",n=e.clientHeight||e.scrollHeight||0,e.style.height=c,!n){const d=getComputedStyle(e);n=parseFloat(d.lineHeight||"0")||24}}function s(){const c=Math.max(1,Math.round(n*r));e.style.height="auto";const d=e.scrollHeight,f=Math.min(d,c);e.style.height=`${f}px`,e.style.overflowY=d>c?"auto":"hidden",e.style.maxHeight=`${c}px`}function i(){s()}const l=requestAnimationFrame(()=>{a(),s()});return e.addEventListener("input",i),{update(c){u(c),a(),s()},destroy(){cancelAnimationFrame(l),e.removeEventListener("input",i),e.style.overflowY="",e.style.maxHeight=""}}}const jo="speech.settings.v1",Vp={fast:{label:"Fast speech",stt:{utteranceEndMs:1e3,endpointing:800,autoSubmitDelayMs:100}},normal:{label:"Normal speech",stt:{utteranceEndMs:1500,endpointing:1200,autoSubmitDelayMs:400}},slow:{label:"Slow speech",stt:{utteranceEndMs:2500,endpointing:2e3,autoSubmitDelayMs:800}}},Gp=[{value:"nova-3-general",label:"Nova-3 General"},{value:"nova-3-medical",label:"Nova-3 Medical"},{value:"nova-2-finance",label:"Nova-2 Finance"},{value:"nova-2-conversationalai",label:"Nova-2 Conversational AI"}],Kp={stt:{provider:"deepgram",model:"nova-3",interimResults:!0,vadEvents:!0,utteranceEndMs:1500,endpointing:1200,autoSubmit:!0,autoSubmitDelayMs:0,smartFormat:!0,punctuate:!0,numerals:!0,fillerWords:!1,profanityFilter:!1},updatedAt:null};function Zp(e){return JSON.parse(JSON.stringify(e))}function $r(){return Zp(Kp)}function Ds(e,t,n){return Math.min(Math.max(Math.round(e),t),n)}function hr(e,t){return typeof e=="boolean"?e:t}function Ts(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number(e);if(Number.isFinite(t))return t}return null}function co(e){const t=$r(),n={stt:{...t.stt},updatedAt:t.updatedAt};if(!e||typeof e!="object")return n;const r=e,u=r.stt??r.stt;if(u&&typeof u=="object"){const s=u,i=typeof s.model=="string"||typeof s.model=="string"?s.model:null,l=i?i.trim():"";n.stt.provider="deepgram",n.stt.model=l||t.stt.model,n.stt.interimResults=hr(s.interimResults??s.interim_results,t.stt.interimResults),n.stt.vadEvents=hr(s.vadEvents??s.vad_events,t.stt.vadEvents);const c=Ts(s.utteranceEndMs??s.utterance_end_ms);c!==null&&(n.stt.utteranceEndMs=Ds(c,500,5e3));const d=Ts(s.endpointing);d!==null&&(n.stt.endpointing=Ds(d,300,5e3)),n.stt.autoSubmit=hr(s.autoSubmit??s.auto_submit,t.stt.autoSubmit);const f=Ts(s.autoSubmitDelayMs??s.auto_submit_delay_ms);f!==null&&(n.stt.autoSubmitDelayMs=Ds(f,0,2e4)),n.stt.smartFormat=hr(s.smartFormat??s.smart_format,t.stt.smartFormat),n.stt.punctuate=hr(s.punctuate,t.stt.punctuate),n.stt.numerals=hr(s.numerals,t.stt.numerals),n.stt.fillerWords=hr(s.fillerWords??s.filler_words,t.stt.fillerWords),n.stt.profanityFilter=hr(s.profanityFilter??s.profanity_filter,t.stt.profanityFilter)}const a=r.updatedAt??r.updated_at;return n.updatedAt=typeof a=="string"&&a?a:null,n}function Pi(){if(typeof window>"u"||!window.localStorage)return $r();try{const e=window.localStorage.getItem(jo);if(!e)return $r();const t=JSON.parse(e);return co(t)}catch(e){return console.warn("Failed to read speech settings from storage",e),$r()}}function Yp(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(jo,JSON.stringify(e))}catch(t){console.warn("Failed to persist speech settings",t)}}function Jp(){const e=Pi(),t=kt(e);function n(s){const i=co(s),l={...i,stt:{...i.stt},updatedAt:new Date().toISOString()};return t.set(l),Yp(l),l}function r(s){const i=at(t),l={...i,stt:{...i.stt},updatedAt:i.updatedAt};return s.stt&&(l.stt={...l.stt,...s.stt}),s.updatedAt!==void 0&&(l.updatedAt=s.updatedAt),n(l)}function u(){return n($r())}function a(){const s=Pi();t.set(s)}return typeof window<"u"&&window.addEventListener("storage",s=>{if(s.key===jo)try{const i=s.newValue?JSON.parse(s.newValue):null,l=co(i);t.set(l)}catch(i){console.warn("Failed to synchronize speech settings from storage",i)}}),{subscribe:t.subscribe,save:n,update:r,reset:u,refresh:a,get current(){return at(t)}}}const Ga=Jp(),Xp={mode:"idle",recording:!1,connecting:!1,error:null,promptText:"",promptVersion:0,keepPromptSynced:!1,pendingSubmit:null},sn=kt({...Xp});let Ia=null,Ir=null,vr=null,Mr=0,Qn="",Na="",Oa=!1,La=null,Ra=null,fo=0;function cs(){Ra&&(clearTimeout(Ra),Ra=null),fo++}function Ka(e,t){sn.update(n=>({...n,promptText:e,promptVersion:n.promptVersion+1,keepPromptSynced:t?!0:n.keepPromptSynced}))}function Qp(){Qn="",Na="",Oa=!1}function po(){La&&(clearTimeout(La),La=null)}function e1(){if(vr)try{vr.close()}catch(e){console.warn("Failed to close Deepgram socket",e)}vr=null}function Fc(){if(Ir)try{Ir.stop()}catch{}if(Ir=null,Ia)try{Ia.getTracks().forEach(e=>e.stop())}catch{}Ia=null}function Nn(e={}){Fc(),e1(),po(),sn.update(t=>({...t,recording:!1,connecting:!1,keepPromptSynced:!1,pendingSubmit:e.submitText?{text:e.submitText}:null,mode:"idle"}))}function Nu(e){sn.update(t=>({...t,error:e,recording:!1,connecting:!1,keepPromptSynced:!1,mode:"idle"}))}function Ii(e){const t=e.trim(),n=Ga.current,r=n?.stt.autoSubmit??!0,u=Math.max(n?.stt.autoSubmitDelayMs??0,0);if(cs(),!t){Nn({submitText:null});return}if(r){if(u<=0){Nn({submitText:t});return}Nn(),Ka(t,!1);const a=++fo;Ra=setTimeout(()=>{a===fo&&sn.update(s=>({...s,pendingSubmit:{text:t}}))},u)}else Nn(),Ka(t,!1)}async function t1(e){const t=at(sn);(t.connecting||t.recording)&&Nn(),cs();const n=Ga.current;if(!n){Nu("Speech settings unavailable");return}const r=++Mr;Qp(),sn.set({...t,mode:e,connecting:!0,recording:!1,error:null,keepPromptSynced:!0,pendingSubmit:null});let u;try{if(u=(await M0()).access_token,!u)throw new Error("Missing Deepgram token")}catch(_){if(r!==Mr)return;Nn();const A=_ instanceof Error?_.message:"Failed to get Deepgram token";Nu(A);return}let a;try{a=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}catch(_){if(r!==Mr)return;Nn();const A=_ instanceof Error?_.message:"Microphone access denied";Nu(A);return}const i=["audio/ogg;codecs=opus","audio/webm;codecs=opus","audio/webm"].find(_=>{try{return MediaRecorder.isTypeSupported(_)}catch{return!1}}),l="opus",c=n.stt,d=Math.max(c.utteranceEndMs,500),f=Math.max(c.endpointing,300),v=`wss://api.deepgram.com/v1/listen?${new URLSearchParams({model:c.model,interim_results:String(c.interimResults!==!1),vad_events:String(c.vadEvents!==!1),smart_format:String(c.smartFormat!==!1),punctuate:String(c.punctuate!==!1),numerals:String(c.numerals!==!1),filler_words:String(c.fillerWords===!0),profanity_filter:String(c.profanityFilter===!0),utterance_end_ms:String(d),endpointing:String(f),encoding:l,no_delay:"false",multichannel:"false",alternatives:"1"}).toString()}`,w=u.includes(".")&&u.split(".").length>=3?["Bearer",u]:["token",u],y=new WebSocket(v,w);vr=y,Ia=a,y.addEventListener("open",()=>{if(r===Mr){sn.update(_=>({..._,connecting:!1,recording:!0,error:null,keepPromptSynced:!0}));try{Ir=new MediaRecorder(a,i?{mimeType:i}:void 0)}catch{Nu("MediaRecorder not supported"),Nn();return}Ir.addEventListener("dataavailable",async _=>{if(!(!_.data||_.data.size===0))try{const A=await _.data.arrayBuffer();vr&&vr.readyState===WebSocket.OPEN&&vr.send(A)}catch(A){console.warn("Failed to send audio chunk",A)}}),Ir.addEventListener("stop",()=>{try{vr?.send(new Uint8Array)}catch{}}),Ir.start(250)}}),y.addEventListener("message",_=>{if(r!==Mr||typeof _.data!="string")return;let A;try{A=JSON.parse(_.data)}catch{return}n1(A)}),y.addEventListener("error",_=>{console.warn("Deepgram socket error",_),r===Mr&&(Nu("Deepgram connection error"),Nn())}),y.addEventListener("close",()=>{r===Mr&&(Fc(),sn.update(_=>({..._,recording:!1,connecting:!1,keepPromptSynced:!1})))})}function n1(e,t,n){const r=e;if(r.type==="UtteranceEnd"){Oa||Ii(Qn||Na),po(),La=setTimeout(()=>{Oa=!1},1e3);return}if(r.type!=="Results")return;const s=(r.channel?.alternatives?.[0]?.transcript??"").trim();if(s){const c=Qn?`${Qn} ${s}`.trim():s;Na=c,Ka(c,!0)}r.is_final===!0&&s&&(Qn=Qn?`${Qn} ${s}`.trim():s,Ka(Qn,!0)),r.speech_final===!0&&(Oa=!0,po(),Ii(Qn||Na||s))}async function r1(){cs();const e=at(sn);if(e.mode==="dictation"&&(e.recording||e.connecting)){Nn(),sn.update(n=>({...n,mode:"idle",keepPromptSynced:!1}));return}sn.update(n=>({...n,mode:"dictation"})),await t1("dictation")}function Ni(){cs(),Nn(),sn.update(e=>({...e,mode:"idle"}))}function Oi(){const e=at(sn);if(!e.pendingSubmit)return null;const t=e.pendingSubmit;return sn.update(n=>({...n,pendingSubmit:null})),t}const Mc={subscribe:sn.subscribe};function Hu(e){return typeof e=="object"&&e!==null}function er(e){if(typeof e!="string")return;const t=e.trim();return t||void 0}function Li(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=e.trim();if(!t)return;const n=Number.parseInt(t,10);if(Number.isFinite(n))return n}}function pu(e){if(!Hu(e))return null;const t=er(e.url);if(!t)return null;const n={url:t},r=er(e.title)??er(e.name)??er(e.label);r&&(n.title=r);const u=er(e.content)??er(e.snippet)??er(e.text)??er(e.description);u&&(n.content=u);const a=Li(e.startIndex??e.start_index);a!==void 0&&(n.startIndex=a);const s=Li(e.endIndex??e.end_index);return s!==void 0&&(n.endIndex=s),n}function u1(e){const t=er(e.type),n=t?t.toLowerCase():null,r=[];"url_citation"in e&&r.push(e.url_citation),"urlCitation"in e&&r.push(e.urlCitation),"citation"in e&&r.push(e.citation),"payload"in e&&r.push(e.payload),"data"in e&&r.push(e.data);for(const u of r){const a=pu(u);if(a)return a}return n==="url_citation"||n==="url-citation"?pu(e):null}function ou(e,t,n){const r=`${n.url}|${n.startIndex??""}|${n.endIndex??""}`;t.has(r)||(t.add(r),e.push(n))}function a1(e){const t=[],n=new Set,r=/\[([^\]]+)\]\(([^)]+)\)/g;let u;for(;(u=r.exec(e))!==null;){const a=u[1].trim(),s=u[2].trim();s&&!n.has(s)&&(n.add(s),t.push({url:s,title:a||void 0,startIndex:u.index,endIndex:u.index+u[0].length}))}return t}function Nr(...e){const t=[],n=new Set,r=new WeakSet,u=[];function a(s){if(s!=null){if(Array.isArray(s)||Hu(s)){const i=s;if(r.has(i))return;r.add(i)}u.push(s)}}for(e.forEach(a);u.length>0;){const s=u.shift();if(s==null)continue;if(Array.isArray(s)){for(const c of s){if(c==null)continue;if(Array.isArray(c)||Hu(c)){a(c);continue}const d=pu(c);d&&ou(t,n,d)}continue}if(!Hu(s)){const c=pu(s);c&&ou(t,n,c);continue}const i=u1(s);if(i)ou(t,n,i);else{const c=pu(s);c&&ou(t,n,c)}a(s.meta),a(s.metadata),a(s.annotations),a(s.citations),a(s.url_citation),a(s.urlCitation),a(s.payload),a(s.data),a(s.message);const l=s.content??s.text;if(typeof l=="string"&&l.length>0){const c=a1(l);for(const d of c)ou(t,n,d)}for(const c of Object.values(s))if(c!=null)if(Array.isArray(c)||Hu(c))a(c);else{const d=pu(c);d&&ou(t,n,d)}}return t}function s1(e,t){const n=e.trim(),r=[];n&&r.push({type:"text",text:n});for(const u of t)r.push({type:"image_url",image_url:{url:u.deliveryUrl},metadata:{attachment_id:u.id,display_url:u.displayUrl,mime_type:u.mimeType,size_bytes:u.sizeBytes,filename:u.metadata?.filename,session_id:u.sessionId,uploaded_at:u.uploadedAt,expires_at:u.expiresAt}});return r.length===1&&r[0].type==="text"?r[0].text:r.length>0?r:""}function ho(e){if(typeof e=="string"){const u=e;return{parts:u?[{type:"text",text:u}]:[],text:u}}const t=[],n=[];for(const u of e){if(u?.type==="text"&&typeof u.text=="string"){const a=u.text;t.push({type:"text",text:a}),n.push(a);continue}if(u?.type==="image_url"&&"image_url"in u){const a=u.image_url;if(!a||typeof a.url!="string")continue;const s=u.metadata??{},i=typeof s.display_url=="string"&&s.display_url?s.display_url:a.url,l=typeof s.attachment_id=="string"&&s.attachment_id?s.attachment_id:void 0,c=typeof s.mime_type=="string"&&s.mime_type?s.mime_type:void 0,d=typeof s.size_bytes=="number"&&Number.isFinite(s.size_bytes)?Number(s.size_bytes):void 0,f=typeof s.filename=="string"&&s.filename?s.filename:void 0,h=typeof s.session_id=="string"&&s.session_id?s.session_id:void 0,v=typeof s.uploaded_at=="string"&&s.uploaded_at?s.uploaded_at:void 0,p=typeof s.expires_at=="string"&&s.expires_at?s.expires_at:null;t.push({type:"image",url:a.url,displayUrl:i,attachmentId:l,mimeType:c,sizeBytes:d,fileName:f,sessionId:h,uploadedAt:v,expiresAt:p,metadata:u.metadata??null})}}const r=n.join(` -`).trim();return{parts:t,text:r}}function Za(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(t=>Za(t));if(typeof e=="string")return e.length>0?[{text:e}]:[];if(typeof e=="object"){const t=e,n=t.text,r=t.type,u=[];if(typeof n=="string"&&n.length>0){const s={text:n};typeof r=="string"&&r.length>0&&(s.type=r),u.push(s)}const a=["segments","segment","messages","message","content","contents","parts","steps","items"];for(const s of a){const i=t[s];i!==void 0&&u.push(...Za(i))}return u}return[]}function o1(e){if(!e||typeof e!="object")return{segments:[],hasPayload:!1};const t=e.choices;if(!Array.isArray(t))return{segments:[],hasPayload:!1};const n=[];let r=!1;for(const u of t){if(!u||typeof u!="object")continue;const a=u.delta;if(!(!a||typeof a!="object")&&"reasoning"in a){r=!0;const s=a.reasoning;n.push(...Za(s))}}return{segments:n,hasPayload:r}}function i1(e,t){const n=t.filter(s=>s.text.length>0);if(n.length===0)return e??[];if(!e||e.length===0)return n;const r=e.map(s=>s.text).join(""),u=n.map(s=>s.text).join("");if(u.startsWith(r)){const s=u.slice(r.length);if(s.length===0)return e;const i=[...e],l=i.length-1,c=n[n.length-1];return i[l]={text:`${i[l].text}${s}`,type:c.type??i[l].type},i}const a=[...e];for(const s of n)a.some(l=>l.text===s.text&&l.type===s.type)||a.push(s);return a}function Ri(e){return e?.reduce((t,n)=>t+n.text.length,0)??0}async function l1(e,t={}){const{signal:n,onSession:r,onMessageDelta:u,onMetadata:a,onToolEvent:s,onDone:i,onError:l}=t,{onNotice:c}=t;await K0(e,{signal:n,onSession:r,onDone:i,onError:l,onNotice:c,onChunk(d,f){const h=f?.event??"message";if(h==="message"){const{text:v,fragments:p}=c1(d),{segments:w,hasPayload:y}=o1(d);if(!v&&p.length===0&&w.length===0&&!y)return;u?.({text:v,fragments:p,reasoningSegments:w,hasReasoningPayload:y,chunk:d});return}if(h==="metadata"&&f?.data){try{const v=JSON.parse(f.data);a?.(v)}catch(v){console.warn("Failed to parse metadata payload",v,f.data)}return}if(h==="tool"&&f?.data)try{const v=JSON.parse(f.data);s?.(v)}catch(v){console.warn("Failed to parse tool payload",v,f.data)}}})}function c1(e){const t=[],n=[],r=e.choices??[];for(const u of r){const a=u.delta??{},s=a.content;if(typeof s=="string")s&&t.push(s);else if(Array.isArray(s))for(const l of s)l&&typeof l=="object"&&n.push(l);const i=a.images;if(Array.isArray(i))for(const l of i)l&&typeof l=="object"&&n.push(l)}return{text:t.join(""),fragments:n}}const Fs={loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:null,lastSyncedModel:null,lastSavedAt:null,version:0};function d1(e){if(!e)return;const t={};for(const[n,r]of Object.entries(e))if(r!=null&&!(typeof r=="string"&&r.trim()==="")){if(Array.isArray(r)){if(r.length===0)continue;t[n]=r;continue}if(typeof r=="object"){if(Object.entries(r).length===0)continue;t[n]=r;continue}t[n]=r}return Object.keys(t).length>0?t:void 0}function f1(){const e=kt({...Fs});let t=0;async function n(){const l=at(e);if(!l.dirty||!l.data)return l.dirty&&e.update(h=>({...h,dirty:!1})),!0;const c=l.version,d={model:l.data.model,provider:l.data.provider??null};"supports_tools"in l.data&&(d.supports_tools=l.data.supports_tools===void 0?null:l.data.supports_tools);const f=d1(l.data.parameters);f?d.parameters=f:d.parameters=null,e.update(h=>({...h,saving:!0,saveError:null}));try{const h=await Si(d);return e.update(v=>{const p=Date.now();return v.version!==c?{...v,saving:!1,saveError:null,lastSavedAt:p,lastSyncedModel:h.model}:{...v,saving:!1,saveError:null,dirty:!1,data:h,lastSyncedModel:h.model,lastSavedAt:p}}),!0}catch(h){const v=h instanceof Error?h.message:"Failed to save model settings.";return e.update(p=>({...p,saving:!1,saveError:v})),!1}}async function r(l){const c=++t;e.set({...Fs,loading:!0});try{const d=await I0();let f=d;if(l&&d.model!==l&&(f=await Si({model:l,parameters:null,provider:null})),c!==t)return;e.set({loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:f,lastSyncedModel:f.model,lastSavedAt:Date.now(),version:0})}catch(d){if(c!==t)return;const f=d instanceof Error?d.message:"Failed to load model settings.";e.set({...Fs,error:f})}}function u(l,c){e.update(d=>{if(!d.data)return d;const f={...d.data.parameters??{}};c==null?delete f[l]:f[l]=c;const h={...d.data,parameters:Object.keys(f).length>0?f:null};return{...d,data:h,dirty:!0,saveError:null,version:d.version+1}})}function a(l){e.update(c=>{if(!c.data||c.data.model===l)return c;const d={...c.data,model:l};return{...c,data:d,dirty:!0,saveError:null,version:c.version+1}})}function s(){e.update(l=>{if(!l.data)return l;const c={...l.data,parameters:null};return{...l,data:c,dirty:!0,saveError:null,version:l.version+1}})}function i(){e.update(l=>({...l,error:null,saveError:null}))}return{subscribe:e.subscribe,load:r,updateParameter:u,setModel:a,resetToDefaults:s,clearErrors:i,flushSave:n}}const Dt=f1();function p1(e){return typeof e=="object"&&e!==null}const $i={messages:[],sessionId:null,isStreaming:!1,error:null,selectedModel:"openrouter/auto"};function Ou(e){let t=null;const n=typeof globalThis<"u"?globalThis.crypto:void 0;if(n?.randomUUID)try{t=n.randomUUID()}catch(r){console.warn("Failed to generate UUID via crypto.randomUUID",r)}if(!t&&n?.getRandomValues){const r=new Uint32Array(4);n.getRandomValues(r),t=Array.from(r,u=>u.toString(16).padStart(8,"0")).join("")}return t||(t=`${Date.now().toString(36)}${Math.random().toString(36).slice(2,12)}`),`${e}_${t.replace(/-/g,"")}`}function Pc(e,t){const n=[],r=new Set;for(const u of e){if(u.type!=="image")continue;const a=u.attachmentId??u.displayUrl??u.url;!a||r.has(a)||(r.add(a),n.push({id:u.attachmentId??a,sessionId:u.sessionId??t??"",mimeType:u.mimeType??"image/png",sizeBytes:u.sizeBytes??0,displayUrl:u.displayUrl||u.url,deliveryUrl:u.displayUrl||u.url,uploadedAt:u.uploadedAt??new Date().toISOString(),expiresAt:u.expiresAt??null,metadata:u.metadata??null}))}return n}function h1(e,t,n,r,u){if(!(Array.isArray(e)||r.length>0)){const d=`${(typeof e=="string"?e:t)??""}${n}`;return{content:d,text:d,attachments:[]}}const s=Array.isArray(e)?[...e]:[];if(!Array.isArray(e)){const c=typeof e=="string"?e:t;c&&s.push({type:"text",text:c})}if(r.length>0)s.push(...r);else if(n){const c=s[s.length-1];c&&c.type==="text"&&typeof c.text=="string"?c.text+=n:s.push({type:"text",text:n})}if(s.length===0){const d=`${(typeof e=="string"?e:t)??""}${n}`;return{content:d,text:d,attachments:[]}}const i=ho(s),l=Pc(i.parts,u);return{content:s,text:i.text,attachments:l}}function zi(e){const t=[],n=new Set,r=e.details?.serverMessageId;if(typeof r=="number"){const u=String(r);t.push(u),n.add(u)}return e.id&&!n.has(e.id)&&t.push(e.id),t}function m1(e,t,n,r,u){const a={model:e.selectedModel,session_id:e.sessionId??void 0,messages:[{role:"user",content:t,client_message_id:r}],metadata:{client_assistant_message_id:u,client_parent_message_id:r}};if(n.enabled){const s={id:"web"};n.engine&&(s.engine=n.engine),n.maxResults!==null&&n.maxResults!==void 0&&(s.max_results=n.maxResults);const i=n.searchPrompt.trim();i&&(s.search_prompt=i),a.plugins=[s],n.contextSize&&(a.web_search_options={search_context_size:n.contextSize})}return a}function v1(){const e=kt({...$i});let t=null;function n(...p){for(const w of p)if(typeof w=="string"&&w)return w;return null}async function r(p){const w=p.text??"",y=(p.attachments??[]).map(N=>({...N})),_=w.trim(),A=at(e);if(A.isStreaming&&t?.abort(),!_&&y.length===0)return;const E=Ou("user"),g=Ou("assistant"),S=s1(_,y),x=ho(S),T=y,R=bc.current,z=m1(A,S,R,E,g),F=new Date().toISOString();e.update(N=>({...N,messages:[...N.messages,{id:E,role:"user",content:S,text:x.text,attachments:T,createdAt:F,createdAtUtc:F},{id:g,role:"assistant",content:"",text:"",attachments:[],pending:!0,createdAt:null,createdAtUtc:null,details:R.enabled?{webSearchConfig:{engine:R.engine,maxResults:R.maxResults,contextSize:R.contextSize,searchPrompt:R.searchPrompt}}:void 0}],isStreaming:!0,error:null}));const I=new AbortController;t=I;const K=new Map;try{await l1(z,{signal:I.signal,onSession(N){e.update(Q=>({...Q,sessionId:N}))},onNotice(N){if(console.log("[NOTICE] Received notice:",N),!N||typeof N!="object"){console.warn("[NOTICE] Invalid payload:",N);return}const Q=N.type;console.log("[NOTICE] Notice type:",Q),console.log("[NOTICE] No handler for notice type:",Q)},onMessageDelta({text:N,fragments:Q,reasoningSegments:q,hasReasoningPayload:ae,chunk:ie}){e.update(Y=>{const W=Y.messages.map(O=>{if(O.id!==g)return O;const V=h1(O.content,O.text,N,Q,Y.sessionId),he=V.attachments.length>0?V.attachments:O.attachments,pe={...O,content:V.content,text:V.text,attachments:he??[]};if(q.length>0||ae){const j=O.details??{},ce={...j,reasoningStatus:"streaming"};q.length>0&&(ce.reasoning=i1(j.reasoning,q)),pe.details=ce}const H=ie?Nr(ie):[];if(H.length>0){let j=pe.details;j||(j=O.details?{...O.details}:{});const ce=Nr(j?.citations??null,H);ce.length>0&&(j.citations=ce,pe.details=j)}return pe});return{...Y,messages:W}})},onMetadata(N){e.update(Q=>{const q=Q.messages.map(ae=>{if(ae.id!==g)return ae;const ie=ae.details??{},Y=Za(N.reasoning),W=Y.length>0;let O=ie.reasoning;W&&(O=Ri(Y)>=Ri(ie.reasoning)?Y:ie.reasoning??Y);const V=W?ae.pending?"streaming":"complete":ie.reasoningStatus??null,he=typeof N.message_id=="number"?N.message_id:ie.serverMessageId??null;let pe=ie.meta??null,H=ie.citations??null;if(N.meta===null)pe=null,H=null;else if(p1(N.meta)){pe=N.meta;const ee=Nr(N.meta,N);ee.length>0&&(H=ee)}else{const ee=Nr(N);ee.length>0&&(H=ee)}const j=n(N.created_at,N.created_at_utc,ae.createdAt??null),ce=n(N.created_at_utc,ae.createdAtUtc??null);return{...ae,details:{...ie,model:typeof N.model=="string"?N.model:ie.model??null,finishReason:typeof N.finish_reason=="string"?N.finish_reason:ie.finishReason??null,reasoning:O,reasoningStatus:V,usage:N.usage&&typeof N.usage=="object"?N.usage:ie.usage??null,routing:N.routing&&typeof N.routing=="object"?N.routing:ie.routing??null,toolCalls:Array.isArray(N.tool_calls)?N.tool_calls:ie.toolCalls??null,generationId:typeof N.generation_id=="string"?N.generation_id:ie.generationId??null,serverMessageId:he,meta:pe,citations:H},createdAt:j,createdAtUtc:ce}});return{...Q,messages:q}})},onToolEvent(N){const Q=typeof N.call_id=="string"?N.call_id:Ou("tool"),q=typeof N.status=="string"?N.status:"started",ae=typeof N.name=="string"?N.name:"tool",ie=N.result,Y=typeof ie=="string"?ie:ie&&typeof ie=="object"?JSON.stringify(ie):null,W=typeof N.message_id=="number"?N.message_id:null,O=N.content,V=at(e);let he,pe,H=[];if(Array.isArray(O)){const ce=ho(O);H=Pc(ce.parts,V.sessionId),he=O,pe=ce.text}else q==="started"?(he=`Running ${ae}…`,pe=`Running ${ae}…`):(he=Y??`Tool ${ae} responded.`,pe=Y??`Tool ${ae} responded.`);let j=K.get(Q);if(j)e.update(ce=>{const ee=ce.messages.map(De=>{if(De.id!==j)return De;const Z={...De.details??{},toolName:ae,toolStatus:q,toolResult:Y??De.details?.toolResult??null,serverMessageId:W??De.details?.serverMessageId??null},B=n(N.created_at,N.created_at_utc,De.createdAt??null),ye=n(N.created_at_utc,De.createdAtUtc??null);return{...De,content:he,text:pe,attachments:H.length>0?H:De.attachments??[],pending:q==="started",details:Z,createdAt:B,createdAtUtc:ye??B??De.createdAtUtc??null}});return{...ce,messages:ee}});else{j=Ou("tool"),K.set(Q,j);const ce=new Date().toISOString(),ee=n(N.created_at,N.created_at_utc,ce),De=n(N.created_at_utc,ee??ce);e.update(Z=>({...Z,messages:[...Z.messages,{id:j,role:"tool",content:he,text:pe,attachments:H,pending:q==="started",details:{toolName:ae,toolStatus:q,toolResult:Y??null,serverMessageId:W},createdAt:ee,createdAtUtc:De}]}))}},onDone(){e.update(N=>{const Q=N.messages.map(q=>{if(q.id!==g)return q;const ae=q.details?{...q.details,reasoningStatus:q.details.reasoning?"complete":q.details.reasoningStatus??null}:void 0,ie=new Date().toISOString(),Y=q.createdAt??ie;return{...q,pending:!1,details:ae,createdAt:Y,createdAtUtc:q.createdAtUtc??Y}});return{...N,isStreaming:!1,messages:Q}})},onError(N){console.error("Chat stream error",N),e.update(Q=>({...Q,isStreaming:!1,error:N.message??"Unknown error",messages:Q.messages.filter(q=>q.id!==g&&!(q.role==="tool"&&q.pending))}))}})}catch(N){if(N instanceof DOMException&&N.name==="AbortError")return;const Q=N instanceof Error?N.message:String(N);e.update(q=>({...q,isStreaming:!1,error:Q,messages:q.messages.filter(ae=>ae.id!==g&&!(ae.role==="tool"&&ae.pending))}))}finally{t=null}}function u(){t&&(t.abort(),t=null,e.update(p=>{const w=p.messages.filter(y=>!(y.role==="assistant"&&y.pending&&!y.text||y.role==="tool"&&y.pending));return{...p,isStreaming:!1,messages:w}}))}function a(){t?.abort(),t=null,e.update(p=>({...$i,selectedModel:p.selectedModel}))}function s(p,w){const y=p.messages.findIndex(g=>g.id===w);if(y===-1)return p;const _=p.messages.slice(),A=[],[E]=_.splice(y,1);if(!E)return p;if(E.role==="assistant")for(A.push(E.id);y<_.length&&_[y].role==="tool";)_.splice(y,1);else if(E.role==="user")for(;y<_.length&&_[y].role!=="user"&&_[y].role!=="system";){const[g]=_.splice(y,1);g?.role==="assistant"&&g.id&&A.push(g.id)}return{...p,messages:_}}async function i(p,w){let y=null;const _=new Set;for(const A of w){if(A.role==="assistant"||A.role==="tool")continue;const E=zi(A);let g=!1;for(const S of E)if(!(!S||_.has(S))){_.add(S);try{await wi(p,S),g=!0;break}catch(x){if(x instanceof xu&&x.status===404)continue;y||(y=x instanceof Error?x.message:"Failed to delete previous message.");break}}}return y}async function l(p){const w=at(e);if(w.isStreaming)return;const y=w.messages.find(_=>_.id===p);if(y){if(w.sessionId){const _=zi(y);let A=null;for(const E of _)try{await wi(w.sessionId,E),A=null;break}catch(g){if(g instanceof xu&&g.status===404)continue;A=g instanceof Error?g.message:"Failed to delete message.";break}A&&e.update(E=>({...E,error:A}))}e.update(_=>s(_,p))}}async function c(p){const w=at(e),y=w.messages.findIndex(g=>g.id===p);if(y===-1)return;const _=w.messages[y];if(_.role!=="user")return;w.isStreaming&&(t?.abort(),t=null);const A=w.messages.slice(y),E=w.messages.slice(0,y);if(e.update(g=>({...g,messages:E,isStreaming:!1,error:null})),w.sessionId){const g=await i(w.sessionId,A);g&&e.update(S=>({...S,error:g}))}await r({text:_.text,attachments:(_.attachments??[]).map(g=>({...g}))})}async function d(p,w){const y=w.trim();if(!y)return;const _=at(e),A=_.messages.findIndex(x=>x.id===p);if(A===-1)return;const E=_.messages[A];if(E.role!=="user")return;_.isStreaming&&(t?.abort(),t=null);const g=_.messages.slice(A),S=_.messages.slice(0,A);if(e.update(x=>({...x,messages:S,isStreaming:!1,error:null})),_.sessionId){const x=await i(_.sessionId,g);x&&e.update(T=>({...T,error:x}))}await r({text:y,attachments:(E.attachments??[]).map(x=>({...x}))})}function f(){e.update(p=>({...p,error:null}))}function h(p){e.update(w=>({...w,selectedModel:p}));try{Dt.clearErrors(),Dt.load(p)}catch{}}function v(){const p=at(e);if(p.sessionId)return p.sessionId;const w=Ou("session");return e.update(y=>({...y,sessionId:w})),w}return{subscribe:e.subscribe,sendMessage:r,cancelStream:u,clearConversation:a,deleteMessage:l,retryMessage:c,editMessage:d,clearError:f,setModel:h,ensureSessionId:v}}const ea=v1();var g1=M('Uploading…'),b1=M(' '),_1=M('
                  Attachment preview
                  '),y1=M('
                  '),x1=M(''),k1=M(''),E1=M(''),w1=M('
                  ');function S1(e,t){Qe(t,!1);const n=()=>Xe(Mc,"$speechState",r),[r,u]=Gn(),a=U(),s=U(),i=U(),l=U(),c=U(),d=U(),f=U(),h=U();let v=ne(t,"prompt",12,""),p=ne(t,"isStreaming",8,!1),w=ne(t,"presetAttachments",24,()=>[]);const y=Et(),_=new Set(["image/png","image/jpeg","image/webp","image/gif"]),A=10*1024*1024,E=4;let g=U([]),S=U(null),x=U(null),T=U(null);function R(){return globalThis.crypto?.randomUUID?`attachment_${globalThis.crypto.randomUUID().replace(/-/g,"")}`:`attachment_${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function z(te){if(!(!te||typeof te!="string")&&te.startsWith("blob:"))try{URL.revokeObjectURL(te)}catch{}}function F(te){if(W(),!te||te.length===0){D(S,null);return}const Ee=[];for(const ge of te){if(!ge)continue;const Te=ge.displayUrl??ge.deliveryUrl??null;Te&&Ee.push({id:ge.id??R(),file:null,previewUrl:Te,status:"ready",resource:{...ge,metadata:ge.metadata?{...ge.metadata}:null}})}D(g,Ee),D(S,null)}function I(){if(p())return;const te=v().trim();if(o(g).some($e=>$e.status==="uploading")){D(S,"Please wait for uploads to finish.");return}if(o(g).some($e=>$e.status==="error")){D(S,"Remove failed uploads before sending.");return}const Te=o(g).filter($e=>$e.status==="ready"&&$e.resource).map($e=>$e.resource);!te&&Te.length===0||(y("submit",{text:te,attachments:Te}),v(""),D(S,null),W())}function K(te){te.key==="Enter"&&!te.shiftKey&&(te.preventDefault(),I())}function N(){y("cancel")}function Q(){p()&&n().mode!=="dictation"||n().connecting&&!n().recording&&n().mode!=="dictation"||y("startDictation")}function q(){p()||(D(S,null),o(x)?.click())}function ae(te){const Ee=te.target,ge=Ee.files?Array.from(Ee.files):[];if(Ee.value="",!ge.length)return;const Te=E-o(g).length;if(Te<=0){D(S,`You can attach up to ${E} images.`);return}const $e=ea.ensureSessionId(),ue=ge.slice(0,Te);ge.length>Te&&D(S,`Only ${E} images allowed per message.`);for(const ve of ue){if(!_.has(ve.type)){D(S,"Unsupported image format.");continue}if(ve.size>A){D(S,"Images must be 10 MB or less.");continue}const xe=URL.createObjectURL(ve),we={id:R(),file:ve,previewUrl:xe,status:"uploading"};D(g,[...o(g),we]),ie(we,$e)}}async function ie(te,Ee){if(te.file)try{const{attachment:ge}=await V0(te.file,Ee);D(g,o(g).map(Te=>Te.id===te.id?{...Te,status:"ready",resource:ge}:Te))}catch(ge){const Te=ge instanceof Error?ge.message:"Failed to upload image.";D(g,o(g).map($e=>$e.id===te.id?{...$e,status:"error",error:Te}:$e))}}function Y(te){D(g,o(g).filter(Ee=>Ee.id===te?(z(Ee.previewUrl),!1):!0)),o(g).length||D(S,null)}function W(){o(g).forEach(te=>{z(te.previewUrl)}),D(g,[])}fa(()=>{W()}),fe(()=>L(v()),()=>{D(a,v().trim())}),fe(()=>o(g),()=>{D(s,o(g).some(te=>te.status==="uploading"))}),fe(()=>o(g),()=>{D(i,o(g).some(te=>te.status==="error"))}),fe(()=>o(g),()=>{D(l,o(g).some(te=>te.status==="ready"))}),fe(()=>(L(p()),o(s),o(i),o(a),o(l)),()=>{D(c,p()||o(s)||o(i)||!o(a)&&!o(l))}),fe(()=>(L(w()),o(T)),()=>{w()!==o(T)&&(F(w()),D(T,w()))}),fe(()=>n(),()=>{D(d,n().mode==="dictation"&&(n().recording||n().connecting))}),fe(()=>n(),()=>{D(f,n().connecting&&!n().recording)}),fe(()=>n(),()=>{D(h,n().error)}),At(),rt();var O=w1(),V=b(O),he=b(V);{var pe=te=>{var Ee=y1();mt(Ee,5,()=>o(g),ge=>ge.id,(ge,Te)=>{var $e=_1();let ue;var ve=b($e),xe=C(ve,2);{var we=Le=>{var Be=g1();k(Le,Be)};$(xe,Le=>{o(Te),m(()=>o(Te).status==="uploading")&&Le(we)})}var be=C(xe,2);{var Oe=Le=>{var Be=b1(),Ve=b(Be);G(()=>X(Ve,(o(Te),m(()=>o(Te).error??"Upload failed.")))),k(Le,Be)};$(be,Le=>{o(Te),m(()=>o(Te).status==="error")&&Le(Oe)})}var Ce=C(be,2);G(Le=>{ue=St($e,1,"attachment-chip svelte-1ct3ltt",null,ue,Le),oe(ve,"src",(o(Te),m(()=>o(Te).previewUrl??o(Te).resource?.displayUrl??o(Te).resource?.deliveryUrl??"")))},[()=>({uploading:o(Te).status==="uploading",error:o(Te).status==="error"})]),J("click",Ce,()=>Y(o(Te).id)),k(ge,$e)}),k(te,Ee)};$(he,te=>{o(g),m(()=>o(g).length)&&te(pe)})}var H=C(he,2);{var j=te=>{var Ee=x1(),ge=b(Ee);G(()=>X(ge,o(S))),k(te,Ee)};$(H,te=>{o(S)&&te(j)})}var ce=C(H,2);{var ee=te=>{var Ee=k1(),ge=b(Ee);G(()=>X(ge,o(h))),k(te,Ee)};$(ce,te=>{o(h)&&te(ee)})}var De=C(ce,2),Z=b(De),B=C(Z,2);Ar(B,te=>D(x,te),()=>o(x));var ye=C(B,2);jr(()=>rr(ye,v)),jr(()=>J("keydown",ye,K)),Wa(ye,(te,Ee)=>Wp?.(te,Ee),v);var Me=C(ye,2),Re=b(Me);{var We=te=>{var Ee=E1();J("click",Ee,N),k(te,Ee)};$(Re,te=>{p()&&te(We)})}var Ae=C(Re,2),tt=C(Ae,2),_e=C(b(tt),2);jp(_e,{size:16,"aria-hidden":"true","stroke-width":2}),G(()=>{Z.disabled=(L(p()),o(g),m(()=>p()||o(g).length>=E)),oe(ye,"placeholder",p()?"Waiting for response…":"Type here…"),oe(ye,"aria-disabled",p()),Ae.disabled=p()&&!o(d)||o(f)&&!o(d),oe(Ae,"aria-pressed",o(d)?"true":"false"),oe(Ae,"data-active",o(d)?"true":"false"),tt.disabled=o(c)}),J("click",Z,q),J("change",B,ae),J("click",Ae,Q),J("submit",O,Oo(I)),k(e,O),et(),u()}var A1=M('
                  ');function cr(e,t){Qe(t,!1);let n=ne(t,"open",8,!1),r=ne(t,"labelledBy",8,null),u=ne(t,"modalClass",8,""),a=ne(t,"bodyClass",8,""),s=ne(t,"layerClass",8,""),i=ne(t,"closeLabel",8,"Close modal"),l=ne(t,"closeOnBackdrop",8,!0),c=ne(t,"focusOnOpen",8,!0),d=ne(t,"closeDisabled",8,!1);const f=Et();let h=U(null),v=U(!1);function p(g){!l()||d()||g.target===g.currentTarget&&f("close")}function w(){d()||f("close")}function y(g){!n()||d()||g.key==="Escape"&&(g.preventDefault(),f("close"))}fe(()=>(L(n()),o(v),L(c()),o(h)),()=>{n()&&!o(v)?(D(v,!0),c()&&o(h)&&o(h).focus()):!n()&&o(v)&&D(v,!1)}),At(),rt();var _=Se();J("keydown",qa,y);var A=me(_);{var E=g=>{var S=A1(),x=b(S),T=C(x,2),R=b(T),z=b(R),F=b(z);Gt(F,t,"heading",{});var I=C(z,2),K=b(I);Gt(K,t,"actions",{});var N=C(K,2),Q=C(R,2),q=b(Q);Gt(q,t,"default",{});var ae=C(Q,2);Gt(ae,t,"footer",{}),Ar(T,ie=>D(h,ie),()=>o(h)),G((ie,Y,W)=>{St(S,1,ie),oe(x,"aria-label",i()),St(T,1,Y),oe(T,"aria-labelledby",r()||void 0),oe(N,"aria-label",i()),N.disabled=d(),St(Q,1,W)},[()=>Ma((L(s()),m(()=>`model-settings-layer ${s()}`.trim()))),()=>Ma((L(u()),m(()=>`model-settings-modal ${u()}`.trim()))),()=>Ma((L(a()),m(()=>`model-settings-body ${a()}`.trim())))]),J("click",x,p),J("click",N,w),k(g,S)};$(A,g=>{n()&&g(E)})}k(e,_),et()}var C1=M('

                  Loading…

                  '),D1=M('

                  '),T1=M('
                   
                  '),F1=M('
                  '),M1=M('
                  '),P1=M('

                  No details available.

                  '),I1=M('

                  '),N1=M('

                  Generation details

                  ',1);function O1(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"generationId",8,null),a=ne(t,"loading",8,!1),s=ne(t,"error",8,null),i=ne(t,"data",8,null),l=ne(t,"fields",8,gc),c=U([]);function d(){n("close")}fe(()=>(L(i()),L(l()),Ai),()=>{D(c,i()?l().map(p=>({field:p,display:Ai(i()?.[p.key])})):[])}),At(),rt();var f=Se(),h=me(f);{var v=p=>{cr(p,{get open(){return r()},labelledBy:"generation-modal-title",modalClass:"generation-modal",closeLabel:"Close generation details",$$events:{close:d},children:(w,y)=>{var _=Se(),A=me(_);{var E=S=>{var x=C1();k(S,x)},g=S=>{var x=Se(),T=me(x);{var R=F=>{var I=D1(),K=b(I);G(()=>X(K,s())),k(F,I)},z=F=>{var I=Se(),K=me(I);{var N=q=>{var ae=M1();mt(ae,5,()=>o(c),ie=>ie.field.key,(ie,Y)=>{var W=F1(),O=b(W),V=b(O),he=C(O,2),pe=b(he);{var H=ce=>{var ee=T1(),De=b(ee);G(()=>X(De,(o(Y),m(()=>o(Y).display.text)))),k(ce,ee)},j=ce=>{var ee=Ln();G(()=>X(ee,(o(Y),m(()=>o(Y).display.text)))),k(ce,ee)};$(pe,ce=>{o(Y),m(()=>o(Y).display.isMultiline)?ce(H):ce(j,!1)})}G(()=>X(V,(o(Y),m(()=>o(Y).field.label)))),k(ie,W)}),k(q,ae)},Q=q=>{var ae=P1();k(q,ae)};$(K,q=>{i()?q(N):q(Q,!1)},!0)}k(F,I)};$(T,F=>{s()?F(R):F(z,!1)},!0)}k(S,x)};$(A,S=>{a()?S(E):S(g,!1)})}k(w,_)},$$slots:{default:!0,heading:(w,y)=>{var _=N1(),A=C(me(_),2);{var E=g=>{var S=I1(),x=b(S);G(()=>X(x,`ID: ${u()??""}`)),k(g,S)};$(A,g=>{u()&&g(E)})}k(w,_)}}})};$(h,p=>{r()&&p(v)})}k(e,f),et()}var L1=M('Updated'),R1=M('
                  Edit message
                  ');function $1(e,t){Qe(t,!1);const n=U(),r=U(),u=U();let a=ne(t,"value",12,""),s=ne(t,"originalValue",8,""),i=ne(t,"saving",8,!1),l=ne(t,"disabled",8,!1);const c=Et();let d=U(null);da(()=>{o(d)&&(o(d).focus(),o(d).setSelectionRange(0,o(d).value.length))});function f(){o(r)&&c("submit",{text:o(n)})}function h(){i()||c("cancel")}function v(F){F.key==="Enter"&&!F.shiftKey&&(F.preventDefault(),f())}fe(()=>L(a()),()=>{D(n,a().trim())}),fe(()=>(o(n),L(i()),L(l())),()=>{D(r,!!o(n)&&!i()&&!l())}),fe(()=>(o(n),L(s())),()=>{D(u,o(n)!==s().trim())}),At(),rt();var p=R1(),w=b(p),y=b(w),_=C(b(y),2);{var A=F=>{var I=L1();k(F,I)};$(_,F=>{o(u)&&F(A)})}var E=C(y,2);Ar(E,F=>D(d,F),()=>o(d));var g=C(E,2),S=b(g),x=C(S,2),T=b(x);{var R=F=>{var I=Ln("Sending…");k(F,I)},z=F=>{var I=Ln("Save & Send");k(F,I)};$(T,F=>{i()?F(R):F(z,!1)})}G(()=>{E.disabled=i()||l(),S.disabled=i(),x.disabled=!o(r)}),rr(E,a),J("keydown",E,v),J("click",S,h),J("submit",p,Oo(f)),k(e,p),et()}const Ui={open:!1,messageId:null,citations:[]};function Ic(){const{subscribe:e,set:t,update:n}=kt(Ui);function r(a,s){t({open:!0,messageId:a,citations:s})}function u(){t(Ui)}return{subscribe:e,openWithCitations:r,close:u}}Ic();const Ms={open:!1,messageId:null,segments:[],status:null};function z1(e,t){if(e.length!==t.length)return!1;for(let n=0;n{if(!l.open||!l.messageId)return l;const c=i.find(h=>h.id===l.messageId);if(!c)return Ms;const d=c.details?.reasoning??[],f=c.details?.reasoningStatus??null;return z1(d,l.segments)&&f===l.status?l:{...l,segments:d,status:f}})}return{subscribe:e,openWithDetails:r,openForMessage:u,close:a,syncFromMessages:s}}const Nc="tool",B1=["prompt_tokens","input_tokens","prompt","input","promptTokens","inputTokens"],j1=["completion_tokens","output_tokens","completion","output","completionTokens","outputTokens"],q1=["total_tokens","total","totalTokens"];function H1(e,t=Nc){const n=[],r={},u={};for(let a=0;a0;let c=0,d=a+1;for(;Oc(e[d],t);)c+=1,d+=1;const f=l?i.length:0,h=Math.max(f,c),v=h>0,p=W1(s.details?.usage);r[s.id]={used:v,count:h,tokens:p}}s.role!==t&&n.push(s)}return{visibleMessages:n,assistantToolUsage:r,messageIndexMap:u}}function Bi(e,t,n,r=Nc){const u=t[n];if(typeof u!="number")return[];const a=e[u];if(!a||a.role!=="assistant")return[];const s=[],i=Array.isArray(a.details?.toolCalls)?a.details?.toolCalls:[];let l=u+1;for(;Oc(e[l],r);){const c=e[l],d=c.details??{},f=i[s.length],v=(typeof d?.toolName=="string"?d.toolName:null)??Ps(f)??"Tool",p=typeof d?.toolStatus=="string"?d.toolStatus:null,w=typeof d?.toolResult=="string"?d.toolResult:null,y=typeof c.content=="string"?c.content:null,_=w??y??Is(f),A=Ns(f);s.push({id:c.id,name:v,status:p,input:A,result:_}),l+=1}return s.length===0&&i.length>0?i.forEach((c,d)=>{s.push({id:`${a.id}-metadata-${d}`,name:Ps(c)??`Tool ${d+1}`,status:null,input:Ns(c),result:Is(c)})}):s.length>0&&i.length>0&&s.forEach((c,d)=>{const f=i[d];f&&((!c.name||c.name==="Tool")&&(c.name=Ps(f)??c.name),c.input||(c.input=Ns(f)),c.result||(c.result=Is(f)))}),s}function Oc(e,t){return e?.role===t}function Ps(e){if(!e)return null;const t=e.name;if(typeof t=="string"&&t.trim().length>0)return t;const n=e.function;if(n&&typeof n=="object"){const r=n.name;if(typeof r=="string"&&r.trim().length>0)return r}return null}function Is(e){if(!e)return null;const t=e.result;if(typeof t=="string")return t;if(t&&typeof t=="object")try{return JSON.stringify(t,null,2)}catch(r){console.warn("Failed to stringify tool result",r)}const n=e.function;if(n&&typeof n=="object"){const r=n.arguments;if(typeof r=="string")return r;if(r&&typeof r=="object")try{return JSON.stringify(r,null,2)}catch(u){console.warn("Failed to stringify tool arguments",u)}}return null}function Ns(e){if(!e)return null;const t=e.arguments,n=ji(t);if(n)return n;const r=e.function;if(r&&typeof r=="object"){const u=ji(r.arguments);if(u)return u}return null}function W1(e){if(!e||typeof e!="object")return null;const t=e,n=Os(t,B1),r=Os(t,j1);let u=Os(t,q1);return u==null&&(n!=null||r!=null)&&(u=(n??0)+(r??0)),n==null&&r==null&&u==null?null:{inputTokens:n,outputTokens:r,totalTokens:u}}function Os(e,t){for(const n of t){if(!(n in e))continue;const r=V1(e[n]);if(r!=null)return r}return null}function V1(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function ji(e){if(typeof e=="string"){const t=e.trim();if(!t)return null;try{const n=JSON.parse(t);return typeof n=="string"?n:JSON.stringify(n,null,2)}catch{return t}}if(e&&typeof e=="object")try{return JSON.stringify(e,null,2)}catch(t){console.warn("Failed to stringify tool arguments",t,e)}return null}const qi={open:!1,messageId:null,tools:[]};function G1(){const{subscribe:e,set:t,update:n}=kt(qi);function r(i,l){t({open:!0,messageId:i,tools:l})}function u(i,l,c,d){const f=Bi(i,l,c,d);r(c,f)}function a(){t(qi)}function s(i,l,c){n(d=>{if(!d.open||!d.messageId)return d;const f=Bi(i,l,d.messageId,c);return f.length===d.tools.length&&f.every((v,p)=>{const w=d.tools[p];return w?.id===v.id&&w?.name===v.name&&w?.status===v.status&&w?.input===v.input&&w?.result===v.result})?d:{...d,tools:f}})}return{subscribe:e,openWithEntries:r,openForMessage:u,close:a,syncEntries:s}}const Hi={open:!1,messageId:null,details:null};function K1(){const{subscribe:e,set:t,update:n}=kt(Hi);function r(s,i){t({open:!0,messageId:s,details:i??{engine:null,maxResults:null,contextSize:null,searchPrompt:null}})}function u(s){const i=s.details?.webSearchConfig;if(i&&typeof i=="object"){const l={engine:i.engine??null,maxResults:i.maxResults??null,contextSize:i.contextSize??null,searchPrompt:i.searchPrompt??null};r(s.id,l)}else r(s.id,null)}function a(){t(Hi)}return{subscribe:e,openWithDetails:r,openForMessage:u,close:a}}var Z1=M('

                  No web citations found.

                  '),Y1=M('

                  '),J1=M('

                  '),X1=M(" "),Q1=M(" "),eh=M('
                  '),th=M('
                • '),nh=M('
                    '),rh=M('

                    '),uh=M('

                    Web Citations

                    ',1);function ah(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"citations",24,()=>[]);function s(){n("close")}rt();var i=Se(),l=me(i);{var c=d=>{cr(d,{get open(){return r()},labelledBy:"citations-modal-title",modalClass:"citations-modal",bodyClass:"citations-modal-body",closeLabel:"Close web citations",$$events:{close:s},children:(f,h)=>{var v=Se(),p=me(v);{var w=_=>{var A=Z1();k(_,A)},y=_=>{var A=nh();mt(A,5,a,jn,(E,g,S)=>{var x=th(),T=b(x),R=b(T);R.textContent=`Citation ${S+1}`;var z=C(R,2),F=C(T,2);{var I=Y=>{var W=Y1(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).title)))),k(Y,W)};$(F,Y=>{o(g),m(()=>o(g).title)&&Y(I)})}var K=C(F,2),N=b(K),Q=C(K,2);{var q=Y=>{var W=J1(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).content)))),k(Y,W)};$(Q,Y=>{o(g),m(()=>o(g).content)&&Y(q)})}var ae=C(Q,2);{var ie=Y=>{var W=eh(),O=b(W);{var V=H=>{var j=X1(),ce=b(j);G(()=>X(ce,`Start: ${o(g),m(()=>o(g).startIndex)??""}`)),k(H,j)};$(O,H=>{o(g),m(()=>o(g).startIndex!==void 0)&&H(V)})}var he=C(O,2);{var pe=H=>{var j=Q1(),ce=b(j);G(()=>X(ce,`End: ${o(g),m(()=>o(g).endIndex)??""}`)),k(H,j)};$(he,H=>{o(g),m(()=>o(g).endIndex!==void 0)&&H(pe)})}k(Y,W)};$(ae,Y=>{o(g),m(()=>o(g).startIndex!==void 0||o(g).endIndex!==void 0)&&Y(ie)})}G(()=>{oe(z,"href",(o(g),m(()=>o(g).url))),X(N,(o(g),m(()=>o(g).url)))}),k(E,x)}),k(_,A)};$(p,_=>{L(a()),m(()=>a().length===0)?_(w):_(y,!1)})}k(f,v)},$$slots:{default:!0,heading:(f,h)=>{var v=uh(),p=C(me(v),2);{var w=y=>{var _=rh(),A=b(_);G(()=>X(A,`Message ID: ${u()??""}`)),k(y,_)};$(p,y=>{u()&&y(w)})}k(f,v)}}})};$(l,d=>{r()&&d(c)})}k(e,i),et()}const Wi='',sh='',oh=2e3,ih="copy-code-button",Vi="copy-code-block";function lh(e){e.classList.add(Vi);const t=document.createElement("button");t.type="button",t.className=ih,t.setAttribute("aria-label","Copy code"),t.setAttribute("title","Copy code"),t.innerHTML=Wi;let n=null;const r=async()=>{const a=e.querySelector("code")?.textContent??e.textContent??"";if(a){if(!navigator?.clipboard?.writeText){console.warn("Clipboard API unavailable; cannot copy code block");return}try{await navigator.clipboard.writeText(a)}catch(s){console.error("Failed to copy code block",s);return}n!==null&&window.clearTimeout(n),t.classList.add("copied"),t.setAttribute("aria-label","Code copied"),t.innerHTML=sh,n=window.setTimeout(()=>{e.isConnected&&(t.classList.remove("copied"),t.setAttribute("aria-label","Copy code"),t.innerHTML=Wi,n=null)},oh)}};return t.addEventListener("click",r),e.appendChild(t),{cleanup:()=>{t.removeEventListener("click",r),n!==null&&window.clearTimeout(n),t.remove(),e.classList.remove(Vi)}}}function Gi(e,t){e.querySelectorAll("pre").forEach(r=>{t.has(r)||t.set(r,lh(r))}),Array.from(t.keys()).forEach(r=>{if(!e.contains(r)){const u=t.get(r);u&&(u.cleanup(),t.delete(r))}})}function mo(e){const t=new Map,n=new MutationObserver(()=>{Gi(e,t)});return n.observe(e,{childList:!0,subtree:!0}),Gi(e,t),{destroy:()=>{n.disconnect(),Array.from(t.values()).forEach(r=>r.cleanup()),t.clear()}}}const Ki={};function ch(e){let t=Ki[e];if(t)return t;t=Ki[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&d<=57343?u+="���":u+=String.fromCharCode(d),a+=6;continue}}if((i&248)===240&&a+91114111?u+="����":(f-=65536,u+=String.fromCharCode(55296+(f>>10),56320+(f&1023))),a+=9;continue}}u+="�"}return u})}ku.defaultChars=";/?:@&=+$,#";ku.componentChars="";const Zi={};function dh(e){let t=Zi[e];if(t)return t;t=Zi[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=dh(t);let u="";for(let a=0,s=e.length;a=55296&&i<=57343){if(i>=55296&&i<=56319&&a+1=56320&&l<=57343){u+=encodeURIComponent(e[a]+e[a+1]),a++;continue}}u+="%EF%BF%BD";continue}u+=encodeURIComponent(e[a])}return u}pa.defaultChars=";/?:@&=+$,-_.!~*'()#";pa.componentChars="-_.!~*'()";function qo(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Ya(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const fh=/^([a-z0-9.+-]+:)/i,ph=/:[0-9]*$/,hh=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,mh=["<",">",'"',"`"," ","\r",` -`," "],vh=["{","}","|","\\","^","`"].concat(mh),gh=["'"].concat(vh),Yi=["%","/","?",";","#"].concat(gh),Ji=["/","?","#"],bh=255,Xi=/^[+a-z0-9A-Z_-]{0,63}$/,_h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Qi={javascript:!0,"javascript:":!0},el={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Ho(e,t){if(e&&e instanceof Ya)return e;const n=new Ya;return n.parse(e,t),n}Ya.prototype.parse=function(e,t){let n,r,u,a=e;if(a=a.trim(),!t&&e.split("#").length===1){const c=hh.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let s=fh.exec(a);if(s&&(s=s[0],n=s.toLowerCase(),this.protocol=s,a=a.substr(s.length)),(t||s||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(u=a.substr(0,2)==="//",u&&!(s&&Qi[s])&&(a=a.substr(2),this.slashes=!0)),!Qi[s]&&(u||s&&!el[s])){let c=-1;for(let p=0;p127?A+="x":A+=_[E];if(!A.match(Xi)){const E=p.slice(0,w),g=p.slice(w+1),S=_.match(_h);S&&(E.push(S[1]),g.unshift(S[2])),g.length&&(a=g.join(".")+a),this.hostname=E.join(".");break}}}}this.hostname.length>bh&&(this.hostname=""),v&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const i=a.indexOf("#");i!==-1&&(this.hash=a.substr(i),a=a.slice(0,i));const l=a.indexOf("?");return l!==-1&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),el[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Ya.prototype.parseHost=function(e){let t=ph.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const yh=Object.freeze(Object.defineProperty({__proto__:null,decode:ku,encode:pa,format:qo,parse:Ho},Symbol.toStringTag,{value:"Module"})),Lc=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Rc=/[\0-\x1F\x7F-\x9F]/,xh=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,Wo=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,$c=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,zc=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,kh=Object.freeze(Object.defineProperty({__proto__:null,Any:Lc,Cc:Rc,Cf:xh,P:Wo,S:$c,Z:zc},Symbol.toStringTag,{value:"Module"})),Eh=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),wh=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var Ls;const Sh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ah=(Ls=String.fromCodePoint)!==null&&Ls!==void 0?Ls:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function Ch(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=Sh.get(e))!==null&&t!==void 0?t:e}var Lt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Lt||(Lt={}));const Dh=32;var yr;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(yr||(yr={}));function vo(e){return e>=Lt.ZERO&&e<=Lt.NINE}function Th(e){return e>=Lt.UPPER_A&&e<=Lt.UPPER_F||e>=Lt.LOWER_A&&e<=Lt.LOWER_F}function Fh(e){return e>=Lt.UPPER_A&&e<=Lt.UPPER_Z||e>=Lt.LOWER_A&&e<=Lt.LOWER_Z||vo(e)}function Mh(e){return e===Lt.EQUALS||Fh(e)}var It;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(It||(It={}));var gr;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(gr||(gr={}));class Ph{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=It.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=gr.Strict}startEntity(t){this.decodeMode=t,this.state=It.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case It.EntityStart:return t.charCodeAt(n)===Lt.NUM?(this.state=It.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=It.NamedEntity,this.stateNamedEntity(t,n));case It.NumericStart:return this.stateNumericStart(t,n);case It.NumericDecimal:return this.stateNumericDecimal(t,n);case It.NumericHex:return this.stateNumericHex(t,n);case It.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|Dh)===Lt.LOWER_X?(this.state=It.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=It.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,u){if(n!==r){const a=r-n;this.result=this.result*Math.pow(u,a)+parseInt(t.substr(n,a),u),this.consumed+=a}}stateNumericHex(t,n){const r=n;for(;n>14;for(;n>14,a!==0){if(s===Lt.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==gr.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,u=(r[n]&yr.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,u,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:u}=this;return this.emitCodePoint(n===1?u[t]&~yr.VALUE_LENGTH:u[t+1],r),n===3&&this.emitCodePoint(u[t+2],r),r}end(){var t;switch(this.state){case It.NamedEntity:return this.result!==0&&(this.decodeMode!==gr.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case It.NumericDecimal:return this.emitNumericEntity(0,2);case It.NumericHex:return this.emitNumericEntity(0,3);case It.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case It.EntityStart:return 0}}}function Uc(e){let t="";const n=new Ph(e,r=>t+=Ah(r));return function(u,a){let s=0,i=0;for(;(i=u.indexOf("&",i))>=0;){t+=u.slice(s,i),n.startEntity(a);const c=n.write(u,i+1);if(c<0){s=i+n.end();break}s=i+c,i=c===0?s+1:s}const l=t+u.slice(s);return t="",l}}function Ih(e,t,n,r){const u=(t&yr.BRANCH_LENGTH)>>7,a=t&yr.JUMP_TABLE;if(u===0)return a!==0&&r===a?n:-1;if(a){const l=r-a;return l<0||l>=u?-1:e[n+l]-1}let s=n,i=s+u-1;for(;s<=i;){const l=s+i>>>1,c=e[l];if(cr)i=l-1;else return e[l+u]}return-1}const Nh=Uc(Eh);Uc(wh);function Bc(e,t=gr.Legacy){return Nh(e,t)}function Oh(e){return Object.prototype.toString.call(e)}function Vo(e){return Oh(e)==="[object String]"}const Lh=Object.prototype.hasOwnProperty;function Rh(e,t){return Lh.call(e,t)}function ds(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){if(n){if(typeof n!="object")throw new TypeError(n+"must be object");Object.keys(n).forEach(function(r){e[r]=n[r]})}}),e}function jc(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function Go(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function Ja(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const qc=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,$h=/&([a-z#][a-z0-9]{1,31});/gi,zh=new RegExp(qc.source+"|"+$h.source,"gi"),Uh=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Bh(e,t){if(t.charCodeAt(0)===35&&Uh.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return Go(r)?Ja(r):e}const n=Bc(e);return n!==e?n:e}function jh(e){return e.indexOf("\\")<0?e:e.replace(qc,"$1")}function Eu(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(zh,function(t,n,r){return n||Bh(t,r)})}const qh=/[&<>"]/,Hh=/[&<>"]/g,Wh={"&":"&","<":"<",">":">",'"':"""};function Vh(e){return Wh[e]}function Cr(e){return qh.test(e)?e.replace(Hh,Vh):e}const Gh=/[.?*+^$[\]\\(){}|-]/g;function Kh(e){return e.replace(Gh,"\\$&")}function pt(e){switch(e){case 9:case 32:return!0}return!1}function ta(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function na(e){return Wo.test(e)||$c.test(e)}function ra(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function fs(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Zh={mdurl:yh,ucmicro:kh},Yh=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:jc,assign:ds,escapeHtml:Cr,escapeRE:Kh,fromCodePoint:Ja,has:Rh,isMdAsciiPunct:ra,isPunctChar:na,isSpace:pt,isString:Vo,isValidEntityCode:Go,isWhiteSpace:ta,lib:Zh,normalizeReference:fs,unescapeAll:Eu,unescapeMd:jh},Symbol.toStringTag,{value:"Module"}));function Jh(e,t,n){let r,u,a,s;const i=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos32))return a;if(r===41){if(s===0)break;s--}u++}return t===u||s!==0||(a.str=Eu(e.slice(t,u)),a.pos=u,a.ok=!0),a}function Qh(e,t,n,r){let u,a=t;const s={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)s.str=r.str,s.marker=r.marker;else{if(a>=n)return s;let i=e.charCodeAt(a);if(i!==34&&i!==39&&i!==40)return s;t++,a++,i===40&&(i=41),s.marker=i}for(;a"+Cr(a.content)+""};Yn.code_block=function(e,t,n,r,u){const a=e[t];return""+Cr(e[t].content)+` -`};Yn.fence=function(e,t,n,r,u){const a=e[t],s=a.info?Eu(a.info).trim():"";let i="",l="";if(s){const d=s.split(/(\s+)/g);i=d[0],l=d.slice(2).join("")}let c;if(n.highlight?c=n.highlight(a.content,i,l)||Cr(a.content):c=Cr(a.content),c.indexOf("${c} -`}return`
                    ${c}
                    -`};Yn.image=function(e,t,n,r,u){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=u.renderInlineAsText(a.children,n,r),u.renderToken(e,t,n)};Yn.hardbreak=function(e,t,n){return n.xhtmlOut?`
                    -`:`
                    -`};Yn.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?`
                    -`:`
                    -`:` -`};Yn.text=function(e,t){return Cr(e[t].content)};Yn.html_block=function(e,t){return e[t].content};Yn.html_inline=function(e,t){return e[t].content};function Tu(){this.rules=ds({},Yn)}Tu.prototype.renderAttrs=function(t){let n,r,u;if(!t.attrs)return"";for(u="",n=0,r=t.attrs.length;n -`:">",a};Tu.prototype.renderInline=function(e,t,n){let r="";const u=this.rules;for(let a=0,s=e.length;a=0&&(r=this.attrs[n][1]),r};$n.prototype.attrJoin=function(t,n){const r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};function Hc(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}Hc.prototype.Token=$n;const tm=/\r\n?|\n/g,nm=/\0/g;function rm(e){let t;t=e.src.replace(tm,` -`),t=t.replace(nm,"�"),e.src=t}function um(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function am(e){const t=e.tokens;for(let n=0,r=t.length;n\s]/i.test(e)}function om(e){return/^<\/a\s*>/i.test(e)}function im(e){const t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n=0;s--){const i=u[s];if(i.type==="link_close"){for(s--;u[s].level!==i.level&&u[s].type!=="link_open";)s--;continue}if(i.type==="html_inline"&&(sm(i.content)&&a>0&&a--,om(i.content)&&a++),!(a>0)&&i.type==="text"&&e.md.linkify.test(i.content)){const l=i.content;let c=e.md.linkify.match(l);const d=[];let f=i.level,h=0;c.length>0&&c[0].index===0&&s>0&&u[s-1].type==="text_special"&&(c=c.slice(1));for(let v=0;vh){const S=new e.Token("text","",0);S.content=l.slice(h,_),S.level=f,d.push(S)}const A=new e.Token("link_open","a",1);A.attrs=[["href",w]],A.level=f++,A.markup="linkify",A.info="auto",d.push(A);const E=new e.Token("text","",0);E.content=y,E.level=f,d.push(E);const g=new e.Token("link_close","a",-1);g.level=--f,g.markup="linkify",g.info="auto",d.push(g),h=c[v].lastIndex}if(h=0;n--){const r=e[n];r.type==="text"&&!t&&(r.content=r.content.replace(cm,fm)),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function hm(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];r.type==="text"&&!t&&Wc.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function mm(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type==="inline"&&(lm.test(e.tokens[t].content)&&pm(e.tokens[t].children),Wc.test(e.tokens[t].content)&&hm(e.tokens[t].children))}const vm=/['"]/,tl=/['"]/g,nl="’";function Ea(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function gm(e,t){let n;const r=[];for(let u=0;u=0&&!(r[n].level<=s);n--);if(r.length=n+1,a.type!=="text")continue;let i=a.content,l=0,c=i.length;e:for(;l=0)p=i.charCodeAt(d.index-1);else for(n=u-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){p=e[n].content.charCodeAt(e[n].content.length-1);break}let w=32;if(l=48&&p<=57&&(h=f=!1),f&&h&&(f=y,h=_),!f&&!h){v&&(a.content=Ea(a.content,d.index,nl));continue}if(h)for(n=r.length-1;n>=0;n--){let g=r[n];if(r[n].level=0;t--)e.tokens[t].type!=="inline"||!vm.test(e.tokens[t].content)||gm(e.tokens[t].children,e)}function _m(e){let t,n;const r=e.tokens,u=r.length;for(let a=0;a0&&this.level++,this.tokens.push(r),r};Jn.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};Jn.prototype.skipEmptyLines=function(t){for(let n=this.lineMax;tn;)if(!pt(this.src.charCodeAt(--t)))return t+1;return t};Jn.prototype.skipChars=function(t,n){for(let r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t};Jn.prototype.getLines=function(t,n,r,u){if(t>=n)return"";const a=new Array(n-t);for(let s=0,i=t;ir?a[s]=new Array(l-r+1).join(" ")+this.src.slice(d,f):a[s]=this.src.slice(d,f)}return a.join("")};Jn.prototype.Token=$n;const ym=65536;function $s(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function rl(e){const t=[],n=e.length;let r=0,u=e.charCodeAt(r),a=!1,s=0,i="";for(;rn)return!1;let u=t+1;if(e.sCount[u]=4)return!1;let a=e.bMarks[u]+e.tShift[u];if(a>=e.eMarks[u])return!1;const s=e.src.charCodeAt(a++);if(s!==124&&s!==45&&s!==58||a>=e.eMarks[u])return!1;const i=e.src.charCodeAt(a++);if(i!==124&&i!==45&&i!==58&&!pt(i)||s===45&&pt(i))return!1;for(;a=4)return!1;c=rl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop();const f=c.length;if(f===0||f!==d.length)return!1;if(r)return!0;const h=e.parentType;e.parentType="table";const v=e.md.block.ruler.getRules("blockquote"),p=e.push("table_open","table",1),w=[t,0];p.map=w;const y=e.push("thead_open","thead",1);y.map=[t,t+1];const _=e.push("tr_open","tr",1);_.map=[t,t+1];for(let g=0;g=4||(c=rl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop(),E+=f-c.length,E>ym))break;if(u===t+2){const x=e.push("tbody_open","tbody",1);x.map=A=[t+2,0]}const S=e.push("tr_open","tr",1);S.map=[u,u+1];for(let x=0;x=4){r++,u=r;continue}break}e.line=u;const a=e.push("code_block","code",0);return a.content=e.getLines(t,u,4+e.blkIndent,!1)+` -`,a.map=[t,e.line],!0}function Em(e,t,n,r){let u=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||u+3>a)return!1;const s=e.src.charCodeAt(u);if(s!==126&&s!==96)return!1;let i=u;u=e.skipChars(u,s);let l=u-i;if(l<3)return!1;const c=e.src.slice(i,u),d=e.src.slice(u,a);if(s===96&&d.indexOf(String.fromCharCode(s))>=0)return!1;if(r)return!0;let f=t,h=!1;for(;f++,!(f>=n||(u=i=e.bMarks[f]+e.tShift[f],a=e.eMarks[f],u=4)&&(u=e.skipChars(u,s),!(u-i=4||e.src.charCodeAt(u)!==62)return!1;if(r)return!0;const i=[],l=[],c=[],d=[],f=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let v=!1,p;for(p=t;p=a)break;if(e.src.charCodeAt(u++)===62&&!E){let S=e.sCount[p]+1,x,T;e.src.charCodeAt(u)===32?(u++,S++,T=!1,x=!0):e.src.charCodeAt(u)===9?(x=!0,(e.bsCount[p]+S)%4===3?(u++,S++,T=!1):T=!0):x=!1;let R=S;for(i.push(e.bMarks[p]),e.bMarks[p]=u;u=a,l.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(x?1:0),c.push(e.sCount[p]),e.sCount[p]=R-S,d.push(e.tShift[p]),e.tShift[p]=u-e.bMarks[p];continue}if(v)break;let g=!1;for(let S=0,x=f.length;S";const _=[t,0];y.map=_,e.md.block.tokenize(e,t,p);const A=e.push("blockquote_close","blockquote",-1);A.markup=">",e.lineMax=s,e.parentType=h,_[1]=e.line;for(let E=0;E=4)return!1;let a=e.bMarks[t]+e.tShift[t];const s=e.src.charCodeAt(a++);if(s!==42&&s!==45&&s!==95)return!1;let i=1;for(;a=r)return-1;let a=e.src.charCodeAt(u++);if(a<48||a>57)return-1;for(;;){if(u>=r)return-1;if(a=e.src.charCodeAt(u++),a>=48&&a<=57){if(u-n>=10)return-1;continue}if(a===41||a===46)break;return-1}return u=4||e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(d=!0);let f,h,v;if((v=al(e,l))>=0){if(f=!0,s=e.bMarks[l]+e.tShift[l],h=Number(e.src.slice(s,v-1)),d&&h!==1)return!1}else if((v=ul(e,l))>=0)f=!1;else return!1;if(d&&e.skipSpaces(v)>=e.eMarks[l])return!1;if(r)return!0;const p=e.src.charCodeAt(v-1),w=e.tokens.length;f?(i=e.push("ordered_list_open","ol",1),h!==1&&(i.attrs=[["start",h]])):i=e.push("bullet_list_open","ul",1);const y=[l,0];i.map=y,i.markup=String.fromCharCode(p);let _=!1;const A=e.md.block.ruler.getRules("list"),E=e.parentType;for(e.parentType="list";l=u?T=1:T=S-g,T>4&&(T=1);const R=g+T;i=e.push("list_item_open","li",1),i.markup=String.fromCharCode(p);const z=[l,0];i.map=z,f&&(i.info=e.src.slice(s,v-1));const F=e.tight,I=e.tShift[l],K=e.sCount[l],N=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=R,e.tight=!0,e.tShift[l]=x-e.bMarks[l],e.sCount[l]=S,x>=u&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,!0),(!e.tight||_)&&(c=!1),_=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=N,e.tShift[l]=I,e.sCount[l]=K,e.tight=F,i=e.push("list_item_close","li",-1),i.markup=String.fromCharCode(p),l=e.line,z[1]=l,l>=n||e.sCount[l]=4)break;let Q=!1;for(let q=0,ae=A.length;q=4||e.src.charCodeAt(u)!==91)return!1;function i(A){const E=e.lineMax;if(A>=E||e.isEmpty(A))return null;let g=!1;if(e.sCount[A]-e.blkIndent>3&&(g=!0),e.sCount[A]<0&&(g=!0),!g){const T=e.md.block.ruler.getRules("reference"),R=e.parentType;e.parentType="reference";let z=!1;for(let F=0,I=T.length;F"u"&&(e.env.references={}),typeof e.env.references[_]>"u"&&(e.env.references[_]={title:y,href:f}),e.line=s),!0):!1}const Tm=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Fm="[a-zA-Z_:][a-zA-Z0-9:._-]*",Mm="[^\"'=<>`\\x00-\\x20]+",Pm="'[^']*'",Im='"[^"]*"',Nm="(?:"+Mm+"|"+Pm+"|"+Im+")",Om="(?:\\s+"+Fm+"(?:\\s*=\\s*"+Nm+")?)",Vc="<[A-Za-z][A-Za-z0-9\\-]*"+Om+"*\\s*\\/?>",Gc="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Lm="",Rm="<[?][\\s\\S]*?[?]>",$m="]*>",zm="",Um=new RegExp("^(?:"+Vc+"|"+Gc+"|"+Lm+"|"+Rm+"|"+$m+"|"+zm+")"),Bm=new RegExp("^(?:"+Vc+"|"+Gc+")"),iu=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Bm.source+"\\s*$"),/^$/,!1]];function jm(e,t,n,r){let u=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(u)!==60)return!1;let s=e.src.slice(u,a),i=0;for(;i=4)return!1;let s=e.src.charCodeAt(u);if(s!==35||u>=a)return!1;let i=1;for(s=e.src.charCodeAt(++u);s===35&&u6||uu&&pt(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(i),1);c.markup="########".slice(0,i),c.map=[t,e.line];const d=e.push("inline","",0);d.content=e.src.slice(u,a).trim(),d.map=[t,e.line],d.children=[];const f=e.push("heading_close","h"+String(i),-1);return f.markup="########".slice(0,i),!0}function Hm(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const u=e.parentType;e.parentType="paragraph";let a=0,s,i=t+1;for(;i3)continue;if(e.sCount[i]>=e.blkIndent){let v=e.bMarks[i]+e.tShift[i];const p=e.eMarks[i];if(v=p))){a=s===61?1:2;break}}if(e.sCount[i]<0)continue;let h=!1;for(let v=0,p=r.length;v3||e.sCount[a]<0)continue;let c=!1;for(let d=0,f=r.length;d=n||e.sCount[s]=a){e.line=n;break}const l=e.line;let c=!1;for(let d=0;d=e.line)throw new Error("block rule didn't increment state.line");break}if(!c)throw new Error("none of the block rules matched");e.tight=!i,e.isEmpty(e.line-1)&&(i=!0),s=e.line,s0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],u={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(u),r};ha.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),u=e>0?this.src.charCodeAt(e-1):32;let a=e;for(;a0)return!1;const n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const u=e.pending.match(Km);if(!u)return!1;const a=u[1],s=e.md.linkify.matchAtStart(e.src.slice(n-a.length));if(!s)return!1;let i=s.url;if(i.length<=a.length)return!1;i=i.replace(/\*+$/,"");const l=e.md.normalizeLink(i);if(!e.md.validateLink(l))return!1;if(!t){e.pending=e.pending.slice(0,-a.length);const c=e.push("link_open","a",1);c.attrs=[["href",l]],c.markup="linkify",c.info="auto";const d=e.push("text","",0);d.content=e.md.normalizeLinkText(i);const f=e.push("link_close","a",-1);f.markup="linkify",f.info="auto"}return e.pos+=i.length-a.length,!0}function Ym(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const r=e.pending.length-1,u=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let a=r-1;for(;a>=1&&e.pending.charCodeAt(a-1)===32;)a--;e.pending=e.pending.slice(0,a),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n?@[]^_`{|}~-".split("").forEach(function(e){Zo[e.charCodeAt(0)]=1});function Jm(e,t){let n=e.pos;const r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let u=e.src.charCodeAt(n);if(u===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&u<=56319&&n+1=56320&&i<=57343&&(a+=e.src[n+1],n++)}const s="\\"+a;if(!t){const i=e.push("text_special","",0);u<256&&Zo[u]!==0?i.content=a:i.content=s,i.markup=s,i.info="escape"}return e.pos=n+1,!0}function Xm(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;const u=n;n++;const a=e.posMax;for(;n=0;r--){const u=t[r];if(u.marker!==95&&u.marker!==42||u.end===-1)continue;const a=t[u.end],s=r>0&&t[r-1].end===u.end+1&&t[r-1].marker===u.marker&&t[r-1].token===u.token-1&&t[u.end+1].token===a.token+1,i=String.fromCharCode(u.marker),l=e.tokens[u.token];l.type=s?"strong_open":"em_open",l.tag=s?"strong":"em",l.nesting=1,l.markup=s?i+i:i,l.content="";const c=e.tokens[a.token];c.type=s?"strong_close":"em_close",c.tag=s?"strong":"em",c.nesting=-1,c.markup=s?i+i:i,c.content="",s&&(e.tokens[t[r-1].token].content="",e.tokens[t[u.end+1].token].content="",r--)}}function nv(e){const t=e.tokens_meta,n=e.tokens_meta.length;ol(e,e.delimiters);for(let r=0;r=f)return!1;if(l=p,u=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),u.ok){for(s=e.md.normalizeLink(u.str),e.md.validateLink(s)?p=u.pos:s="",l=p;p=f||e.src.charCodeAt(p)!==41)&&(c=!0),p++}if(c){if(typeof e.env.references>"u")return!1;if(p=0?r=e.src.slice(l,p++):p=v+1):p=v+1,r||(r=e.src.slice(h,v)),a=e.env.references[fs(r)],!a)return e.pos=d,!1;s=a.href,i=a.title}if(!t){e.pos=h,e.posMax=v;const w=e.push("link_open","a",1),y=[["href",s]];w.attrs=y,i&&y.push(["title",i]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=p,e.posMax=f,!0}function uv(e,t){let n,r,u,a,s,i,l,c,d="";const f=e.pos,h=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const v=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(p<0)return!1;if(a=p+1,a=h)return!1;for(c=a,i=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),i.ok&&(d=e.md.normalizeLink(i.str),e.md.validateLink(d)?a=i.pos:d=""),c=a;a=h||e.src.charCodeAt(a)!==41)return e.pos=f,!1;a++}else{if(typeof e.env.references>"u")return!1;if(a=0?u=e.src.slice(c,a++):a=p+1):a=p+1,u||(u=e.src.slice(v,p)),s=e.env.references[fs(u)],!s)return e.pos=f,!1;d=s.href,l=s.title}if(!t){r=e.src.slice(v,p);const w=[];e.md.inline.parse(r,e.md,e.env,w);const y=e.push("image","img",0),_=[["src",d],["alt",""]];y.attrs=_,y.children=w,y.content=r,l&&_.push(["title",l])}return e.pos=a,e.posMax=h,!0}const av=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,sv=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function ov(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;const r=e.pos,u=e.posMax;for(;;){if(++n>=u)return!1;const s=e.src.charCodeAt(n);if(s===60)return!1;if(s===62)break}const a=e.src.slice(r+1,n);if(sv.test(a)){const s=e.md.normalizeLink(a);if(!e.md.validateLink(s))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",s]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}if(av.test(a)){const s=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(s))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",s]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}return!1}function iv(e){return/^\s]/i.test(e)}function lv(e){return/^<\/a\s*>/i.test(e)}function cv(e){const t=e|32;return t>=97&&t<=122}function dv(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;const u=e.src.charCodeAt(r+1);if(u!==33&&u!==63&&u!==47&&!cv(u))return!1;const a=e.src.slice(r).match(Um);if(!a)return!1;if(!t){const s=e.push("html_inline","",0);s.content=a[0],iv(s.content)&&e.linkLevel++,lv(s.content)&&e.linkLevel--}return e.pos+=a[0].length,!0}const fv=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,pv=/^&([a-z][a-z0-9]{1,31});/i;function hv(e,t){const n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){const a=e.src.slice(n).match(fv);if(a){if(!t){const s=a[1][0].toLowerCase()==="x"?parseInt(a[1].slice(1),16):parseInt(a[1],10),i=e.push("text_special","",0);i.content=Go(s)?Ja(s):Ja(65533),i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}else{const a=e.src.slice(n).match(pv);if(a){const s=Bc(a[0]);if(s!==a[0]){if(!t){const i=e.push("text_special","",0);i.content=s,i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}}return!1}function il(e){const t={},n=e.length;if(!n)return;let r=0,u=-2;const a=[];for(let s=0;sl;c-=a[c]+1){const f=e[c];if(f.marker===i.marker&&f.open&&f.end<0){let h=!1;if((f.close||i.open)&&(f.length+i.length)%3===0&&(f.length%3!==0||i.length%3!==0)&&(h=!0),!h){const v=c>0&&!e[c-1].open?a[c-1]+1:0;a[s]=s-c+v,a[c]=v,i.open=!1,f.end=s,f.close=!1,d=-1,u=-2;break}}}d!==-1&&(t[i.marker][(i.open?3:0)+(i.length||0)%3]=d)}}function mv(e){const t=e.tokens_meta,n=e.tokens_meta.length;il(e.delimiters);for(let r=0;r0&&r++,u[t].type==="text"&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;s||e.pos++,a[t]=e.pos};ma.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,u=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(s){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};ma.prototype.parse=function(e,t,n,r){const u=new this.State(e,t,n,r);this.tokenize(u);const a=this.ruler2.getRules(""),s=a.length;for(let i=0;i|$))",t.tpl_email_fuzzy="(^|"+n+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}function go(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){n&&Object.keys(n).forEach(function(r){e[r]=n[r]})}),e}function hs(e){return Object.prototype.toString.call(e)}function bv(e){return hs(e)==="[object String]"}function _v(e){return hs(e)==="[object Object]"}function yv(e){return hs(e)==="[object RegExp]"}function ll(e){return hs(e)==="[object Function]"}function xv(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const Yc={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function kv(e){return Object.keys(e||{}).reduce(function(t,n){return t||Yc.hasOwnProperty(n)},!1)}const Ev={"http:":{validate:function(e,t,n){const r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){const r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},wv="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",Sv="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function Av(e){e.__index__=-1,e.__text_cache__=""}function Cv(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function cl(){return function(e,t){t.normalize(e)}}function Xa(e){const t=e.re=gv(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(wv),n.push(t.src_xn),t.src_tlds=n.join("|");function r(i){return i.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const u=[];e.__compiled__={};function a(i,l){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+l)}Object.keys(e.__schemas__).forEach(function(i){const l=e.__schemas__[i];if(l===null)return;const c={validate:null,link:null};if(e.__compiled__[i]=c,_v(l)){yv(l.validate)?c.validate=Cv(l.validate):ll(l.validate)?c.validate=l.validate:a(i,l),ll(l.normalize)?c.normalize=l.normalize:l.normalize?a(i,l):c.normalize=cl();return}if(bv(l)){u.push(i);return}a(i,l)}),u.forEach(function(i){e.__compiled__[e.__schemas__[i]]&&(e.__compiled__[i].validate=e.__compiled__[e.__schemas__[i]].validate,e.__compiled__[i].normalize=e.__compiled__[e.__schemas__[i]].normalize)}),e.__compiled__[""]={validate:null,normalize:cl()};const s=Object.keys(e.__compiled__).filter(function(i){return i.length>0&&e.__compiled__[i]}).map(xv).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+s+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),Av(e)}function Dv(e,t){const n=e.__index__,r=e.__last_index__,u=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=u,this.text=u,this.url=u}function bo(e,t){const n=new Dv(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function _n(e,t){if(!(this instanceof _n))return new _n(e,t);t||kv(e)&&(t=e,e={}),this.__opts__=go({},Yc,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=go({},Ev,e),this.__compiled__={},this.__tlds__=Sv,this.__tlds_replaced__=!1,this.re={},Xa(this)}_n.prototype.add=function(t,n){return this.__schemas__[t]=n,Xa(this),this};_n.prototype.set=function(t){return this.__opts__=go(this.__opts__,t),this};_n.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let n,r,u,a,s,i,l,c,d;if(this.re.schema_test.test(t)){for(l=this.re.schema_search,l.lastIndex=0;(n=l.exec(t))!==null;)if(a=this.testSchemaAt(t,n[2],l.lastIndex),a){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+a;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=t.search(this.re.host_fuzzy_test),c>=0&&(this.__index__<0||c=0&&(u=t.match(this.re.email_fuzzy))!==null&&(s=u.index+u[1].length,i=u.index+u[0].length,(this.__index__<0||sthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=s,this.__last_index__=i))),this.__index__>=0};_n.prototype.pretest=function(t){return this.re.pretest.test(t)};_n.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0};_n.prototype.match=function(t){const n=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(n.push(bo(this,r)),r=this.__last_index__);let u=r?t.slice(r):t;for(;this.test(u);)n.push(bo(this,r)),u=u.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};_n.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const n=this.re.schema_at_start.exec(t);if(!n)return null;const r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,bo(this,0)):null};_n.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,u,a){return r!==a[u-1]}).reverse(),Xa(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,Xa(this),this)};_n.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};_n.prototype.onCompile=function(){};const gu=2147483647,qn=36,Yo=1,ua=26,Tv=38,Fv=700,Jc=72,Xc=128,Qc="-",Mv=/^xn--/,Pv=/[^\0-\x7F]/,Iv=/[\x2E\u3002\uFF0E\uFF61]/g,Nv={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Bs=qn-Yo,Hn=Math.floor,js=String.fromCharCode;function mr(e){throw new RangeError(Nv[e])}function Ov(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}function ed(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(Iv,".");const u=e.split("."),a=Ov(u,t).join(".");return r+a}function td(e){const t=[];let n=0;const r=e.length;for(;n=55296&&u<=56319&&nString.fromCodePoint(...e),Rv=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:qn},dl=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},nd=function(e,t,n){let r=0;for(e=n?Hn(e/Fv):e>>1,e+=Hn(e/t);e>Bs*ua>>1;r+=qn)e=Hn(e/Bs);return Hn(r+(Bs+1)*e/(e+Tv))},rd=function(e){const t=[],n=e.length;let r=0,u=Xc,a=Jc,s=e.lastIndexOf(Qc);s<0&&(s=0);for(let i=0;i=128&&mr("not-basic"),t.push(e.charCodeAt(i));for(let i=s>0?s+1:0;i=n&&mr("invalid-input");const h=Rv(e.charCodeAt(i++));h>=qn&&mr("invalid-input"),h>Hn((gu-r)/d)&&mr("overflow"),r+=h*d;const v=f<=a?Yo:f>=a+ua?ua:f-a;if(hHn(gu/p)&&mr("overflow"),d*=p}const c=t.length+1;a=nd(r-l,c,l==0),Hn(r/c)>gu-u&&mr("overflow"),u+=Hn(r/c),r%=c,t.splice(r++,0,u)}return String.fromCodePoint(...t)},ud=function(e){const t=[];e=td(e);const n=e.length;let r=Xc,u=0,a=Jc;for(const l of e)l<128&&t.push(js(l));const s=t.length;let i=s;for(s&&t.push(Qc);i=r&&dHn((gu-u)/c)&&mr("overflow"),u+=(l-r)*c,r=l;for(const d of e)if(dgu&&mr("overflow"),d===r){let f=u;for(let h=qn;;h+=qn){const v=h<=a?Yo:h>=a+ua?ua:h-a;if(f=0))try{t.hostname=ad.toASCII(t.hostname)}catch{}return pa(qo(t))}function Kv(e){const t=Ho(e,!0);if(t.hostname&&(!t.protocol||sd.indexOf(t.protocol)>=0))try{t.hostname=ad.toUnicode(t.hostname)}catch{}return ku(qo(t),ku.defaultChars+"%")}function An(e,t){if(!(this instanceof An))return new An(e,t);t||Vo(e)||(t=e||{},e="default"),this.inline=new ma,this.block=new ps,this.core=new Ko,this.renderer=new Tu,this.linkify=new _n,this.validateLink=Vv,this.normalizeLink=Gv,this.normalizeLinkText=Kv,this.utils=Yh,this.helpers=ds({},em),this.options={},this.configure(e),t&&this.set(t)}An.prototype.set=function(e){return ds(this.options,e),this};An.prototype.configure=function(e){const t=this;if(Vo(e)){const n=e;if(e=qv[n],!e)throw new Error('Wrong `markdown-it` preset "'+n+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};An.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(u){n=n.concat(this[u].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(u){return n.indexOf(u)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};An.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(u){n=n.concat(this[u].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(u){return n.indexOf(u)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};An.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};An.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens};An.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};An.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens};An.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */const{entries:od,setPrototypeOf:fl,isFrozen:Zv,getPrototypeOf:Yv,getOwnPropertyDescriptor:Jv}=Object;let{freeze:ln,seal:Cn,create:id}=Object,{apply:_o,construct:yo}=typeof Reflect<"u"&&Reflect;ln||(ln=function(t){return t});Cn||(Cn=function(t){return t});_o||(_o=function(t,n){for(var r=arguments.length,u=new Array(r>2?r-2:0),a=2;a1?n-1:0),u=1;u1?n-1:0),u=1;u2&&arguments[2]!==void 0?arguments[2]:$a;fl&&fl(e,null);let r=t.length;for(;r--;){let u=t[r];if(typeof u=="string"){const a=n(u);a!==u&&(Zv(t)||(t[r]=a),u=a)}e[u]=!0}return e}function r2(e){for(let t=0;t/gm),i2=Cn(/\$\{[\w\W]*/gm),l2=Cn(/^data-[\-\w.\u00B7-\uFFFF]+$/),c2=Cn(/^aria-[\-\w]+$/),ld=Cn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),d2=Cn(/^(?:\w+script|data):/i),f2=Cn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),cd=Cn(/^html$/i),p2=Cn(/^[a-z][.\w]*(-[.\w]+)+$/i);var bl=Object.freeze({__proto__:null,ARIA_ATTR:c2,ATTR_WHITESPACE:f2,CUSTOM_ELEMENT:p2,DATA_ATTR:l2,DOCTYPE_NAME:cd,ERB_EXPR:o2,IS_ALLOWED_URI:ld,IS_SCRIPT_OR_DATA:d2,MUSTACHE_EXPR:s2,TMPLIT_EXPR:i2});const Uu={element:1,text:3,progressingInstruction:7,comment:8,document:9},h2=function(){return typeof window>"u"?null:window},m2=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const u="data-tt-policy-suffix";n&&n.hasAttribute(u)&&(r=n.getAttribute(u));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},_l=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function dd(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h2();const t=se=>dd(se);if(t.version="3.2.7",t.removed=[],!e||!e.document||e.document.nodeType!==Uu.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const r=n,u=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:i,Element:l,NodeFilter:c,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:f,DOMParser:h,trustedTypes:v}=e,p=l.prototype,w=zu(p,"cloneNode"),y=zu(p,"remove"),_=zu(p,"nextSibling"),A=zu(p,"childNodes"),E=zu(p,"parentNode");if(typeof s=="function"){const se=n.createElement("template");se.content&&se.content.ownerDocument&&(n=se.content.ownerDocument)}let g,S="";const{implementation:x,createNodeIterator:T,createDocumentFragment:R,getElementsByTagName:z}=n,{importNode:F}=r;let I=_l();t.isSupported=typeof od=="function"&&typeof E=="function"&&x&&x.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:K,ERB_EXPR:N,TMPLIT_EXPR:Q,DATA_ATTR:q,ARIA_ATTR:ae,IS_SCRIPT_OR_DATA:ie,ATTR_WHITESPACE:Y,CUSTOM_ELEMENT:W}=bl;let{IS_ALLOWED_URI:O}=bl,V=null;const he=Ke({},[...hl,...Ws,...Vs,...Gs,...ml]);let pe=null;const H=Ke({},[...vl,...Ks,...gl,...Aa]);let j=Object.seal(id(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ce=null,ee=null,De=!0,Z=!0,B=!1,ye=!0,Me=!1,Re=!0,We=!1,Ae=!1,tt=!1,_e=!1,te=!1,Ee=!1,ge=!0,Te=!1;const $e="user-content-";let ue=!0,ve=!1,xe={},we=null;const be=Ke({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Oe=null;const Ce=Ke({},["audio","video","img","source","image","track"]);let Le=null;const Be=Ke({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",je="http://www.w3.org/2000/svg",Pe="http://www.w3.org/1999/xhtml";let ut=Pe,Rt=!1,qt=null;const Zt=Ke({},[Ve,je,Pe],qs);let $t=Ke({},["mi","mo","mn","ms","mtext"]),Yt=Ke({},["annotation-xml"]);const nt=Ke({},["title","style","font","a","script"]);let Ge=null;const Ct=["application/xhtml+xml","text/html"],Jt="text/html";let de=null,Ie=null;const vt=n.createElement("form"),Mt=function(P){return P instanceof RegExp||P instanceof Function},Tt=function(){let P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ie&&Ie===P)){if((!P||typeof P!="object")&&(P={}),P=tr(P),Ge=Ct.indexOf(P.PARSER_MEDIA_TYPE)===-1?Jt:P.PARSER_MEDIA_TYPE,de=Ge==="application/xhtml+xml"?qs:$a,V=Mn(P,"ALLOWED_TAGS")?Ke({},P.ALLOWED_TAGS,de):he,pe=Mn(P,"ALLOWED_ATTR")?Ke({},P.ALLOWED_ATTR,de):H,qt=Mn(P,"ALLOWED_NAMESPACES")?Ke({},P.ALLOWED_NAMESPACES,qs):Zt,Le=Mn(P,"ADD_URI_SAFE_ATTR")?Ke(tr(Be),P.ADD_URI_SAFE_ATTR,de):Be,Oe=Mn(P,"ADD_DATA_URI_TAGS")?Ke(tr(Ce),P.ADD_DATA_URI_TAGS,de):Ce,we=Mn(P,"FORBID_CONTENTS")?Ke({},P.FORBID_CONTENTS,de):be,ce=Mn(P,"FORBID_TAGS")?Ke({},P.FORBID_TAGS,de):tr({}),ee=Mn(P,"FORBID_ATTR")?Ke({},P.FORBID_ATTR,de):tr({}),xe=Mn(P,"USE_PROFILES")?P.USE_PROFILES:!1,De=P.ALLOW_ARIA_ATTR!==!1,Z=P.ALLOW_DATA_ATTR!==!1,B=P.ALLOW_UNKNOWN_PROTOCOLS||!1,ye=P.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=P.SAFE_FOR_TEMPLATES||!1,Re=P.SAFE_FOR_XML!==!1,We=P.WHOLE_DOCUMENT||!1,_e=P.RETURN_DOM||!1,te=P.RETURN_DOM_FRAGMENT||!1,Ee=P.RETURN_TRUSTED_TYPE||!1,tt=P.FORCE_BODY||!1,ge=P.SANITIZE_DOM!==!1,Te=P.SANITIZE_NAMED_PROPS||!1,ue=P.KEEP_CONTENT!==!1,ve=P.IN_PLACE||!1,O=P.ALLOWED_URI_REGEXP||ld,ut=P.NAMESPACE||Pe,$t=P.MATHML_TEXT_INTEGRATION_POINTS||$t,Yt=P.HTML_INTEGRATION_POINTS||Yt,j=P.CUSTOM_ELEMENT_HANDLING||{},P.CUSTOM_ELEMENT_HANDLING&&Mt(P.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(j.tagNameCheck=P.CUSTOM_ELEMENT_HANDLING.tagNameCheck),P.CUSTOM_ELEMENT_HANDLING&&Mt(P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(j.attributeNameCheck=P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),P.CUSTOM_ELEMENT_HANDLING&&typeof P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(j.allowCustomizedBuiltInElements=P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(Z=!1),te&&(_e=!0),xe&&(V=Ke({},ml),pe=[],xe.html===!0&&(Ke(V,hl),Ke(pe,vl)),xe.svg===!0&&(Ke(V,Ws),Ke(pe,Ks),Ke(pe,Aa)),xe.svgFilters===!0&&(Ke(V,Vs),Ke(pe,Ks),Ke(pe,Aa)),xe.mathMl===!0&&(Ke(V,Gs),Ke(pe,gl),Ke(pe,Aa))),P.ADD_TAGS&&(V===he&&(V=tr(V)),Ke(V,P.ADD_TAGS,de)),P.ADD_ATTR&&(pe===H&&(pe=tr(pe)),Ke(pe,P.ADD_ATTR,de)),P.ADD_URI_SAFE_ATTR&&Ke(Le,P.ADD_URI_SAFE_ATTR,de),P.FORBID_CONTENTS&&(we===be&&(we=tr(we)),Ke(we,P.FORBID_CONTENTS,de)),ue&&(V["#text"]=!0),We&&Ke(V,["html","head","body"]),V.table&&(Ke(V,["tbody"]),delete ce.tbody),P.TRUSTED_TYPES_POLICY){if(typeof P.TRUSTED_TYPES_POLICY.createHTML!="function")throw $u('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof P.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw $u('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');g=P.TRUSTED_TYPES_POLICY,S=g.createHTML("")}else g===void 0&&(g=m2(v,u)),g!==null&&typeof S=="string"&&(S=g.createHTML(""));ln&&ln(P),Ie=P}},zt=Ke({},[...Ws,...Vs,...u2]),Yr=Ke({},[...Gs,...a2]),dr=function(P){let re=E(P);(!re||!re.tagName)&&(re={namespaceURI:ut,tagName:"template"});const ke=$a(P.tagName),Fe=$a(re.tagName);return qt[P.namespaceURI]?P.namespaceURI===je?re.namespaceURI===Pe?ke==="svg":re.namespaceURI===Ve?ke==="svg"&&(Fe==="annotation-xml"||$t[Fe]):!!zt[ke]:P.namespaceURI===Ve?re.namespaceURI===Pe?ke==="math":re.namespaceURI===je?ke==="math"&&Yt[Fe]:!!Yr[ke]:P.namespaceURI===Pe?re.namespaceURI===je&&!Yt[Fe]||re.namespaceURI===Ve&&!$t[Fe]?!1:!Yr[ke]&&(nt[ke]||!zt[ke]):!!(Ge==="application/xhtml+xml"&&qt[P.namespaceURI]):!1},ze=function(P){Lu(t.removed,{element:P});try{E(P).removeChild(P)}catch{y(P)}},ot=function(P,re){try{Lu(t.removed,{attribute:re.getAttributeNode(P),from:re})}catch{Lu(t.removed,{attribute:null,from:re})}if(re.removeAttribute(P),P==="is")if(_e||te)try{ze(re)}catch{}else try{re.setAttribute(P,"")}catch{}},Pt=function(P){let re=null,ke=null;if(tt)P=""+P;else{const Ue=Hs(P,/^[\r\n\t ]+/);ke=Ue&&Ue[0]}Ge==="application/xhtml+xml"&&ut===Pe&&(P=''+P+"");const Fe=g?g.createHTML(P):P;if(ut===Pe)try{re=new h().parseFromString(Fe,Ge)}catch{}if(!re||!re.documentElement){re=x.createDocument(ut,"template",null);try{re.documentElement.innerHTML=Rt?S:Fe}catch{}}const qe=re.body||re.documentElement;return P&&ke&&qe.insertBefore(n.createTextNode(ke),qe.childNodes[0]||null),ut===Pe?z.call(re,We?"html":"body")[0]:We?re.documentElement:qe},_t=function(P){return T.call(P.ownerDocument||P,P,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Xt=function(P){return P instanceof f&&(typeof P.nodeName!="string"||typeof P.textContent!="string"||typeof P.removeChild!="function"||!(P.attributes instanceof d)||typeof P.removeAttribute!="function"||typeof P.setAttribute!="function"||typeof P.namespaceURI!="string"||typeof P.insertBefore!="function"||typeof P.hasChildNodes!="function")},Ut=function(P){return typeof i=="function"&&P instanceof i};function yt(se,P,re){Sa(se,ke=>{ke.call(t,P,re,Ie)})}const vn=function(P){let re=null;if(yt(I.beforeSanitizeElements,P,null),Xt(P))return ze(P),!0;const ke=de(P.nodeName);if(yt(I.uponSanitizeElement,P,{tagName:ke,allowedTags:V}),Re&&P.hasChildNodes()&&!Ut(P.firstElementChild)&&rn(/<[/\w!]/g,P.innerHTML)&&rn(/<[/\w!]/g,P.textContent)||P.nodeType===Uu.progressingInstruction||Re&&P.nodeType===Uu.comment&&rn(/<[/\w]/g,P.data))return ze(P),!0;if(!V[ke]||ce[ke]){if(!ce[ke]&&Tr(ke)&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,ke)||j.tagNameCheck instanceof Function&&j.tagNameCheck(ke)))return!1;if(ue&&!we[ke]){const Fe=E(P)||P.parentNode,qe=A(P)||P.childNodes;if(qe&&Fe){const Ue=qe.length;for(let st=Ue-1;st>=0;--st){const gt=w(qe[st],!0);gt.__removalCount=(P.__removalCount||0)+1,Fe.insertBefore(gt,_(P))}}}return ze(P),!0}return P instanceof l&&!dr(P)||(ke==="noscript"||ke==="noembed"||ke==="noframes")&&rn(/<\/no(script|embed|frames)/i,P.innerHTML)?(ze(P),!0):(Me&&P.nodeType===Uu.text&&(re=P.textContent,Sa([K,N,Q],Fe=>{re=Ru(re,Fe," ")}),P.textContent!==re&&(Lu(t.removed,{element:P.cloneNode()}),P.textContent=re)),yt(I.afterSanitizeElements,P,null),!1)},fr=function(P,re,ke){if(ge&&(re==="id"||re==="name")&&(ke in n||ke in vt))return!1;if(!(Z&&!ee[re]&&rn(q,re))){if(!(De&&rn(ae,re))){if(!pe[re]||ee[re]){if(!(Tr(P)&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,P)||j.tagNameCheck instanceof Function&&j.tagNameCheck(P))&&(j.attributeNameCheck instanceof RegExp&&rn(j.attributeNameCheck,re)||j.attributeNameCheck instanceof Function&&j.attributeNameCheck(re,P))||re==="is"&&j.allowCustomizedBuiltInElements&&(j.tagNameCheck instanceof RegExp&&rn(j.tagNameCheck,ke)||j.tagNameCheck instanceof Function&&j.tagNameCheck(ke))))return!1}else if(!Le[re]){if(!rn(O,Ru(ke,Y,""))){if(!((re==="src"||re==="xlink:href"||re==="href")&&P!=="script"&&e2(ke,"data:")===0&&Oe[P])){if(!(B&&!rn(ie,Ru(ke,Y,"")))){if(ke)return!1}}}}}}return!0},Tr=function(P){return P!=="annotation-xml"&&Hs(P,W)},Jr=function(P){yt(I.beforeSanitizeAttributes,P,null);const{attributes:re}=P;if(!re||Xt(P))return;const ke={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:pe,forceKeepAttr:void 0};let Fe=re.length;for(;Fe--;){const qe=re[Fe],{name:Ue,namespaceURI:st,value:gt}=qe,Je=de(Ue),it=gt;let Ye=Ue==="value"?it:t2(it);if(ke.attrName=Je,ke.attrValue=Ye,ke.keepAttr=!0,ke.forceKeepAttr=void 0,yt(I.uponSanitizeAttribute,P,ke),Ye=ke.attrValue,Te&&(Je==="id"||Je==="name")&&(ot(Ue,P),Ye=$e+Ye),Re&&rn(/((--!?|])>)|<\/(style|title|textarea)/i,Ye)){ot(Ue,P);continue}if(Je==="attributename"&&Hs(Ye,"href")){ot(Ue,P);continue}if(ke.forceKeepAttr)continue;if(!ke.keepAttr){ot(Ue,P);continue}if(!ye&&rn(/\/>/i,Ye)){ot(Ue,P);continue}Me&&Sa([K,N,Q],ht=>{Ye=Ru(Ye,ht," ")});const dn=de(P.nodeName);if(!fr(dn,Je,Ye)){ot(Ue,P);continue}if(g&&typeof v=="object"&&typeof v.getAttributeType=="function"&&!st)switch(v.getAttributeType(dn,Je)){case"TrustedHTML":{Ye=g.createHTML(Ye);break}case"TrustedScriptURL":{Ye=g.createScriptURL(Ye);break}}if(Ye!==it)try{st?P.setAttributeNS(st,Ue,Ye):P.setAttribute(Ue,Ye),Xt(P)?ze(P):pl(t.removed)}catch{ot(Ue,P)}}yt(I.afterSanitizeAttributes,P,null)},Ne=function se(P){let re=null;const ke=_t(P);for(yt(I.beforeSanitizeShadowDOM,P,null);re=ke.nextNode();)yt(I.uponSanitizeShadowNode,re,null),vn(re),Jr(re),re.content instanceof a&&se(re.content);yt(I.afterSanitizeShadowDOM,P,null)};return t.sanitize=function(se){let P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},re=null,ke=null,Fe=null,qe=null;if(Rt=!se,Rt&&(se=""),typeof se!="string"&&!Ut(se))if(typeof se.toString=="function"){if(se=se.toString(),typeof se!="string")throw $u("dirty is not a string, aborting")}else throw $u("toString is not a function");if(!t.isSupported)return se;if(Ae||Tt(P),t.removed=[],typeof se=="string"&&(ve=!1),ve){if(se.nodeName){const gt=de(se.nodeName);if(!V[gt]||ce[gt])throw $u("root node is forbidden and cannot be sanitized in-place")}}else if(se instanceof i)re=Pt(""),ke=re.ownerDocument.importNode(se,!0),ke.nodeType===Uu.element&&ke.nodeName==="BODY"||ke.nodeName==="HTML"?re=ke:re.appendChild(ke);else{if(!_e&&!Me&&!We&&se.indexOf("<")===-1)return g&&Ee?g.createHTML(se):se;if(re=Pt(se),!re)return _e?null:Ee?S:""}re&&tt&&ze(re.firstChild);const Ue=_t(ve?se:re);for(;Fe=Ue.nextNode();)vn(Fe),Jr(Fe),Fe.content instanceof a&&Ne(Fe.content);if(ve)return se;if(_e){if(te)for(qe=R.call(re.ownerDocument);re.firstChild;)qe.appendChild(re.firstChild);else qe=re;return(pe.shadowroot||pe.shadowrootmode)&&(qe=F.call(r,qe,!0)),qe}let st=We?re.outerHTML:re.innerHTML;return We&&V["!doctype"]&&re.ownerDocument&&re.ownerDocument.doctype&&re.ownerDocument.doctype.name&&rn(cd,re.ownerDocument.doctype.name)&&(st=" -`+st),Me&&Sa([K,N,Q],gt=>{st=Ru(st,gt," ")}),g&&Ee?g.createHTML(st):st},t.setConfig=function(){let se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Tt(se),Ae=!0},t.clearConfig=function(){Ie=null,Ae=!1},t.isValidAttribute=function(se,P,re){Ie||Tt({});const ke=de(se),Fe=de(P);return fr(ke,Fe,re)},t.addHook=function(se,P){typeof P=="function"&&Lu(I[se],P)},t.removeHook=function(se,P){if(P!==void 0){const re=Xv(I[se],P);return re===-1?void 0:Qv(I[se],re,1)[0]}return pl(I[se])},t.removeHooks=function(se){I[se]=[]},t.removeAllHooks=function(){I=_l()},t}var fd=dd();const v2=new An({html:!1,linkify:!0,typographer:!0,breaks:!0}),g2={USE_PROFILES:{html:!0},ADD_ATTR:["target","rel","class","colspan","rowspan","scope"],ADD_TAGS:["table","thead","tbody","tfoot","tr","th","td"]};fd.addHook("afterSanitizeAttributes",e=>{const t=e;if(!t||typeof t.tagName!="string"||t.tagName.toUpperCase()!=="A")return;t.setAttribute("target","_blank");const n=(t.getAttribute("rel")||"").split(/\s+/).filter(Boolean),r=["noopener","noreferrer","nofollow","ugc"],u=Array.from(new Set([...n,...r]));t.setAttribute("rel",u.join(" "))});function hu(e){if(!e)return"";const t=v2.render(e);return fd.sanitize(t,g2)}var b2=M(' '),_2=M(' '),y2=M(''),x2=M(''),k2=M(' '),E2=M(' '),w2=M(''),S2=M(' '),A2=M(' '),C2=M(''),D2=M('
                    '),T2=M('
                    '),F2=M('
                    '),M2=M(' ',1),P2=M(''),I2=M('
                    ');function N2(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U();let s=ne(t,"message",8),i=ne(t,"toolSummary",8),l=ne(t,"copied",8,!1),c=ne(t,"disableDelete",8,!1);const d=Et();let f=U(!1),h=U([]),v=U(!1),p=U(!1),w=U("View tool usage"),y=U(null),_=U(null),A=U(null);const E=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function g(){d("copy",{message:s()})}function S(){d("openReasoning",{message:s()})}function x(){d("openTool",{message:s()})}function T(){d("openWebSearchDetails",{message:s()})}function R(){const ue=s().details?.generationId;ue&&d("openUsage",{id:ue})}function z(){d("edit",{message:s()})}function F(){d("retry",{message:s()})}function I(){c()||d("delete",{message:s()})}function K(ue){d("editAttachment",{message:s(),attachment:ue})}function N(ue){const ve=ue.metadata?.filename;return typeof ve=="string"&&ve.trim()?ve:null}function Q(ue){const ve=N(ue);return ve?`Open attachment ${ve}`:"Open attachment"}function q(ue){return N(ue)??"Attachment preview"}const ae="America/New_York";function ie(ue){if(!ue)return null;const ve=new Date(ue);if(Number.isNaN(ve.getTime()))return null;const xe=new Intl.DateTimeFormat("en-US",{timeZone:"UTC",weekday:"short",month:"short",day:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(ve),we=Pe=>xe.find(ut=>ut.type===Pe)?.value??"",be=we("weekday"),Oe=we("month"),Ce=we("day"),Le=we("year"),Be=we("hour"),Ve=we("minute"),je=we("second");return`${be} ${Oe} ${Ce} ${Le} ${Be}:${Ve}:${je} UTC`.replace(/\s+/g," ")}function Y(ue,ve){if(!ue)return null;const xe=typeof ue=="string"&&ue?ue:String(ue),we=new Date(xe);if(Number.isNaN(we.getTime()))return{iso:xe,display:xe,tooltip:xe};try{const Oe=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:ae,timeZoneName:"short"}).formatToParts(we),Ce=nt=>Oe.find(Ge=>Ge.type===nt)?.value??"",Le=Ce("hour"),Be=Ce("minute"),Ve=Ce("second"),je=Ce("dayPeriod"),Pe=Ce("timeZoneName"),ut=`${Le}:${Be} ${je}${Pe?` ${Pe}`:""}`.trim(),Rt=`${Le}:${Be}:${Ve} ${je}${Pe?` ${Pe}`:""}`.trim(),qt=new Intl.DateTimeFormat(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:ae,timeZoneName:"short"}),Zt=ie(ve??ue),$t=`${qt.format(we)} (${Rt})`,Yt=Zt?`${$t} -${Zt}`:$t;return{iso:xe,display:ut,tooltip:Yt}}catch(be){console.warn("Failed to format timestamp",be);const Oe=ie(ve??ue);return{iso:xe,display:we.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),tooltip:Oe??xe}}}fe(()=>L(i()),()=>{D(n,i()?.tokens?.totalTokens??null)}),fe(()=>o(n),()=>{D(A,o(n)!=null?`${E.format(o(n))} tokens`:null)}),fe(()=>L(i()),()=>{D(y,i()?.count&&i().count>0?`×${i().count}`:null)}),fe(()=>L(i()),()=>{D(p,!!i()?.used)}),fe(()=>{},()=>{D(_,null)}),fe(()=>(L(i()),o(A)),()=>{D(w,(()=>{const ue=[];return i()?.count&&i().count>0&&ue.push(`${i().count} ${i().count===1?"hop":"hops"}`),o(A)&&ue.push(`${o(A)}`),ue.length===0?"View tool usage":`View tool usage — ${ue.join(", ")}`})())}),fe(()=>L(s()),()=>{D(f,(s().details?.reasoning?.length??0)>0||!!s().details?.reasoningStatus)}),fe(()=>(L(s()),o(h),Nr),()=>{const ue=s().details?.meta?.web_search_results;s().role==="assistant"&&(console.log("=== FULL MESSAGE DEBUG ==="),console.log("Message ID:",s().id),console.log("Message role:",s().role),console.log("Message.details:",JSON.stringify(s().details,null,2)),console.log("webSearchResults:",ue),console.log("Is Array?",Array.isArray(ue)),console.log("Length:",Array.isArray(ue)?ue.length:0),console.log("========================")),Array.isArray(ue)&&ue.length>0?(D(h,ue.map(ve=>({url:ve.url||"",title:ve.title||ve.name||"",content:ve.snippet||ve.content||ve.description||""})).filter(ve=>ve.url)),console.log("Citations extracted:",o(h))):(D(h,Nr(s().details?.citations??null,s().details?.meta??null,s().details??null,s().content??null,{content:typeof s().content=="string"?s().content:null})),console.log("Citations from collectCitations:",o(h)))}),fe(()=>o(h),()=>{D(r,o(h).length>0)}),fe(()=>L(s()),()=>{D(v,!!s().details?.webSearchConfig)}),fe(()=>L(s()),()=>{D(u,(s().attachments?.length??0)>0)}),fe(()=>L(s()),()=>{D(a,Y(s().createdAt,s().createdAtUtc))}),At(),rt();var W=I2(),O=b(W);let V;var he=b(O);{var pe=ue=>{var ve=A2(),xe=b(ve),we=b(xe),be=C(we);{var Oe=Ce=>{var Le=S2(),Be=b(Le);{var Ve=nt=>{var Ge=b2(),Ct=b(Ge);G(()=>X(Ct,`— ${L(s()),m(()=>s().details.model)??""}`)),k(nt,Ge)};$(Be,nt=>{L(s()),m(()=>s().details?.model)&&nt(Ve)})}var je=C(Be,2);{var Pe=nt=>{var Ge=_2(),Ct=b(Ge);G(()=>X(Ct,o(A))),k(nt,Ge)};$(je,nt=>{o(A)&&nt(Pe)})}var ut=C(je,2);{var Rt=nt=>{var Ge=y2();let Ct;var Jt=b(Ge);Lp(Jt,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),G(de=>{Ct=St(Ge,1,"sender-reasoning-indicator svelte-1cnmaqf",null,Ct,de),oe(Ge,"title",(L(s()),m(()=>s().details?.reasoningStatus==="streaming"?"Reasoning stream in progress":"View reasoning trace")))},[()=>({streaming:s().details?.reasoningStatus==="streaming"})]),J("click",Ge,S),k(nt,Ge)};$(ut,nt=>{o(f)&&nt(Rt)})}var qt=C(ut,2);{var Zt=nt=>{var Ge=x2(),Ct=b(Ge);Up(Ct,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),J("click",Ge,T),k(nt,Ge)};$(qt,nt=>{o(v)&&nt(Zt)})}var $t=C(qt,2);{var Yt=nt=>{var Ge=w2(),Ct=b(Ge);Hp(Ct,{size:14,strokeWidth:1.8,"aria-hidden":"true"});var Jt=C(Ct,2);{var de=Mt=>{var Tt=k2(),zt=b(Tt);G(()=>X(zt,o(y))),k(Mt,Tt)};$(Jt,Mt=>{o(y)&&Mt(de)})}var Ie=C(Jt,2);{var vt=Mt=>{var Tt=E2(),zt=b(Tt);G(()=>X(zt,o(_))),k(Mt,Tt)};$(Ie,Mt=>{o(_)&&Mt(vt)})}G(()=>{oe(Ge,"aria-label",o(w)),oe(Ge,"title",o(w))}),J("click",Ge,x),k(nt,Ge)};$($t,nt=>{o(p)&&nt(Yt)})}k(Ce,Le)};$(be,Ce=>{L(s()),m(()=>s().role==="assistant")&&Ce(Oe)})}G(()=>X(we,`${L(s()),m(()=>s().role)??""} `)),k(ue,ve)};$(he,ue=>{L(s()),m(()=>s().role!=="user")&&ue(pe)})}var H=C(he,2),j=b(H);{var ce=ue=>{var ve=Se(),xe=me(ve);oo(xe,()=>(L(hu),L(s()),m(()=>hu(s().text)))),k(ue,ve)};$(j,ue=>{L(s()),m(()=>s().text)&&ue(ce)})}var ee=C(j,2);{var De=ue=>{var ve=T2();mt(ve,5,()=>(L(s()),m(()=>s().attachments)),xe=>xe.id??xe.displayUrl??xe.deliveryUrl,(xe,we)=>{var be=D2(),Oe=b(be),Ce=b(Oe),Le=b(Ce),Be=C(Ce,2);{var Ve=je=>{var Pe=C2(),ut=b(Pe);Mi(ut,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),J("click",Pe,()=>K(o(we))),k(je,Pe)};$(Be,je=>{L(s()),m(()=>s().role==="assistant")&&je(Ve)})}G((je,Pe)=>{oe(Ce,"href",(o(we),m(()=>o(we).displayUrl||o(we).deliveryUrl))),oe(Ce,"aria-label",je),oe(Le,"src",(o(we),m(()=>o(we).displayUrl||o(we).deliveryUrl))),oe(Le,"alt",Pe)},[()=>(o(we),m(()=>Q(o(we)))),()=>(o(we),m(()=>q(o(we))))]),k(xe,be)}),k(ue,ve)};$(ee,ue=>{L(s()),m(()=>s().attachments?.length)&&ue(De)})}Wa(H,ue=>mo?.(ue));var Z=C(H,2);{var B=ue=>{var ve=F2(),xe=b(ve),we=b(xe);G(()=>{oe(xe,"datetime",(o(a),m(()=>o(a).iso))),oe(xe,"title",(o(a),m(()=>o(a).tooltip))),X(we,(o(a),m(()=>o(a).display)))}),k(ue,ve)};$(Z,ue=>{o(a)&&ue(B)})}var ye=C(Z,2),Me=b(ye);let Re;var We=b(Me);{var Ae=ue=>{$p(ue,{size:16,strokeWidth:1.6,"aria-hidden":"true"})},tt=ue=>{zp(ue,{size:16,strokeWidth:1.6,"aria-hidden":"true"})};$(We,ue=>{l()?ue(Ae):ue(tt,!1)})}var _e=C(Me,2);{var te=ue=>{var ve=M2(),xe=me(ve),we=b(xe);Mi(we,{size:16,strokeWidth:1.6,"aria-hidden":"true"});var be=C(xe,2),Oe=b(be);Bp(Oe,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),J("click",xe,z),J("click",be,F),k(ue,ve)};$(_e,ue=>{L(s()),m(()=>s().role==="user")&&ue(te)})}var Ee=C(_e,2);{var ge=ue=>{var ve=P2(),xe=b(ve);Rp(xe,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),J("click",ve,R),k(ue,ve)};$(Ee,ue=>{L(s()),m(()=>s().role==="assistant"&&s().details?.generationId)&&ue(ge)})}var Te=C(Ee,2),$e=b(Te);qp($e,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),G((ue,ve)=>{St(W,1,(L(s()),m(()=>`message ${s().role}`)),"svelte-1cnmaqf"),V=St(O,1,"bubble svelte-1cnmaqf",null,V,ue),Re=St(Me,1,"message-action svelte-1cnmaqf",null,Re,ve),oe(Me,"aria-label",l()?"Message copied":"Copy message"),Te.disabled=c()},[()=>({"has-attachments":o(u)}),()=>({copied:l()})]),J("click",Me,g),J("click",Te,I),k(e,W),et()}var O2=M('

                    '),L2=M(' '),R2=M('

                    No reasoning data received yet.

                    '),$2=M('
                     
                    '),z2=M('
                    ');function U2(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"segments",24,()=>[]),s=ne(t,"status",8,null),i=U(null),l=U(null),c=U("");const d=12;let f=!0,h=!1;function v(g){if(!g||g.length===0)return"";let S="",x;for(const T of g){if(!T||typeof T.text!="string"||T.text.length===0)continue;const R=T.text;x&&T.type&&x!==T.type&&(S.endsWith(` -`)||(S+=` -`),S+=` -`),S.length>0&&!S.endsWith(" ")&&!S.endsWith(` -`)&&!S.endsWith(" ")&&!S.endsWith("(")&&!S.endsWith("[")&&!S.endsWith("{")&&!S.endsWith("/")&&!S.endsWith("'")&&!S.endsWith("’")&&!/^[\s,.!?;:)/\]\}'"›»]/u.test(R)&&R[0]!=="'"&&R[0]!=="’"&&(S+=" "),S+=R,x=T.type??x}return S}mc(()=>{r()&&!h&&(f=!0),h=r(),r()&&o(i)&&o(i).focus(),r()&&o(l)&&s()==="streaming"&&f&&Bl(l,o(l).scrollTop=o(l).scrollHeight)});function p(){if(!o(l))return;const{scrollTop:g,scrollHeight:S,clientHeight:x}=o(l);f=S-(g+x)<=d}function w(){n("close")}function y(g){r()&&g.key==="Escape"&&(g.preventDefault(),w())}fe(()=>L(a()),()=>{D(c,v(a()))}),At(),rt();var _=Se();J("keydown",qa,y);var A=me(_);{var E=g=>{var S=z2(),x=b(S),T=C(x,2),R=b(T),z=b(R),F=C(b(z),2);{var I=O=>{var V=O2(),he=b(V);G(()=>X(he,`Message ID: ${u()??""}`)),k(O,V)};$(F,O=>{u()&&O(I)})}var K=C(z,2),N=b(K);{var Q=O=>{var V=L2(),he=C(b(V));G(()=>{St(V,1,`reasoning-status ${s()}`,"svelte-2cxve6"),X(he,` ${s()==="streaming"?"Streaming":"Complete"}`)}),k(O,V)};$(N,O=>{s()&&O(Q)})}var q=C(N,2),ae=C(R,2),ie=b(ae);{var Y=O=>{var V=R2();k(O,V)},W=O=>{var V=$2(),he=b(V);G(()=>X(he,o(c))),k(O,V)};$(ie,O=>{o(c),m(()=>o(c).length===0)?O(Y):O(W,!1)})}Ar(ae,O=>D(l,O),()=>o(l)),Ar(T,O=>D(i,O),()=>o(i)),J("click",x,w),J("click",q,w),J("scroll",ae,p),k(g,S)};$(A,g=>{r()&&g(E)})}k(e,_),et()}var B2=M('

                    No tool activity recorded.

                    '),j2=M(' '),q2=M('
                    '),H2=M('
                    '),W2=M('

                    No details provided.

                    '),V2=M('
                  • Show input & output
                  • '),G2=M('
                      '),K2=M('

                      '),Z2=M('

                      Tools used

                      ',1);function Y2(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"tools",24,()=>[]);function s(){n("close")}rt();var i=Se(),l=me(i);{var c=d=>{cr(d,{get open(){return r()},labelledBy:"tool-usage-modal-title",modalClass:"tool-usage-modal",bodyClass:"tool-usage-body",closeLabel:"Close tool usage details",$$events:{close:s},children:(f,h)=>{var v=Se(),p=me(v);{var w=_=>{var A=B2();k(_,A)},y=_=>{var A=G2();mt(A,5,a,E=>E.id,(E,g)=>{var S=V2(),x=b(S),T=b(x),R=b(T),z=C(T,2);{var F=Y=>{var W=j2(),O=b(W);G(()=>X(O,(o(g),m(()=>o(g).status)))),k(Y,W)};$(z,Y=>{o(g),m(()=>o(g).status)&&Y(F)})}var I=C(x,2),K=C(b(I),2);{var N=Y=>{var W=q2(),O=C(b(W),2),V=b(O);oo(V,()=>(L(hu),o(g),m(()=>hu(o(g).input)))),Wa(O,he=>mo?.(he)),k(Y,W)};$(K,Y=>{o(g),m(()=>o(g).input)&&Y(N)})}var Q=C(K,2);{var q=Y=>{var W=H2(),O=C(b(W),2),V=b(O);oo(V,()=>(L(hu),o(g),m(()=>hu(o(g).result)))),Wa(O,he=>mo?.(he)),k(Y,W)};$(Q,Y=>{o(g),m(()=>o(g).result)&&Y(q)})}var ae=C(Q,2);{var ie=Y=>{var W=W2();k(Y,W)};$(ae,Y=>{o(g),m(()=>!o(g).input&&!o(g).result)&&Y(ie)})}G(()=>X(R,(o(g),m(()=>o(g).name)))),k(E,S)}),k(_,A)};$(p,_=>{L(a()),m(()=>a().length===0)?_(w):_(y,!1)})}k(f,v)},$$slots:{default:!0,heading:(f,h)=>{var v=Z2(),p=C(me(v),2);{var w=y=>{var _=K2(),A=b(_);G(()=>X(A,`Message ID: ${u()??""}`)),k(y,_)};$(p,y=>{u()&&y(w)})}k(f,v)}}})};$(l,d=>{r()&&d(c)})}k(e,i),et()}var J2=M('

                      No web search details available.

                      '),X2=M('
                      Context Size
                      Amount of search context provided to the model
                      '),Q2=M('
                      Custom Search Prompt
                      Instructions for how to incorporate search results
                      '),eg=M('
                      Search Engine
                      Max Results
                      Number of search results retrieved
                      '),tg=M('

                      '),ng=M('

                      Web Search Details

                      ',1);function rg(e,t){Qe(t,!1);const n=Et();let r=ne(t,"open",8,!1),u=ne(t,"messageId",8,null),a=ne(t,"details",8,null);function s(){n("close")}function i(h){return h?h==="native"?"Native (OpenAI/Anthropic)":h==="exa"?"Exa":h:"Auto"}function l(h){return h?h.charAt(0).toUpperCase()+h.slice(1):"Default"}rt();var c=Se(),d=me(c);{var f=h=>{cr(h,{get open(){return r()},labelledBy:"web-search-details-modal-title",modalClass:"web-search-details-modal",bodyClass:"web-search-details-modal-body",closeLabel:"Close web search details",$$events:{close:s},children:(v,p)=>{var w=Se(),y=me(w);{var _=E=>{var g=J2();k(E,g)},A=E=>{var g=eg(),S=b(g),x=C(b(S),2),T=b(x),R=C(x,2),z=b(R);{var F=W=>{var O=Ln("Automatic selection based on model provider");k(W,O)},I=W=>{var O=Se(),V=me(O);{var he=H=>{var j=Ln("Using provider's built-in web search");k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=De=>{var Z=Ln("Using Exa's AI-powered search API");k(De,Z)};$(ce,De=>{L(a()),m(()=>a().engine==="exa")&&De(ee)},!0)}k(H,j)};$(V,H=>{L(a()),m(()=>a().engine==="native")?H(he):H(pe,!1)},!0)}k(W,O)};$(z,W=>{L(a()),m(()=>!a().engine||a().engine===null)?W(F):W(I,!1)})}var K=C(S,2),N=C(b(K),2),Q=b(N),q=C(K,2);{var ae=W=>{var O=X2(),V=C(b(O),2),he=b(V);G(pe=>X(he,pe),[()=>(L(a()),m(()=>l(a().contextSize)))]),k(W,O)};$(q,W=>{L(a()),m(()=>a().contextSize)&&W(ae)})}var ie=C(q,2);{var Y=W=>{var O=Q2(),V=C(b(O),2),he=b(V);G(()=>X(he,(L(a()),m(()=>a().searchPrompt)))),k(W,O)};$(ie,W=>{L(a()),m(()=>a().searchPrompt&&a().searchPrompt.trim())&&W(Y)})}G(W=>{X(T,W),X(Q,(L(a()),m(()=>a().maxResults??5)))},[()=>(L(a()),m(()=>i(a().engine)))]),k(E,g)};$(y,E=>{a()?E(A,!1):E(_)})}k(v,w)},$$slots:{default:!0,heading:(v,p)=>{var w=ng(),y=C(me(w),2);{var _=A=>{var E=tg(),g=b(E);G(()=>X(g,`Message ID: ${u()??""}`)),k(A,E)};$(y,A=>{u()&&A(_)})}k(v,w)}}})};$(d,h=>{r()&&h(f)})}k(e,c),et()}var ug=M('
                      '),ag=M('
                      ',1);function sg(e,t){Qe(t,!1);const n=()=>Xe(g,"$toolUsageModal",s),r=()=>Xe(S,"$reasoningModal",s),u=()=>Xe(x,"$citationsModal",s),a=()=>Xe(T,"$webSearchDetailsModal",s),[s,i]=Gn();let l=ne(t,"messages",24,()=>[]),c=ne(t,"disableDelete",8,!1),d=U(null),f=U(null),h=null,v=U([]),p=U({}),w=U({});const y="tool";let _=!1;const A=12;let E=!0;const g=G1(),S=U1(),x=Ic(),T=K1(),R=Et();mc(()=>{if(o(d)){if(_){_=!1;return}E&&Bl(d,o(d).scrollTop=o(d).scrollHeight)}});function z(){if(!o(d))return;const{scrollTop:B,scrollHeight:ye,clientHeight:Me}=o(d);E=ye-(B+Me)<=A}function F(B){B&&R("openGenerationDetails",{id:B})}async function I(B){try{await navigator.clipboard.writeText(B.text??"")}catch(ye){console.error("Failed to copy message",ye);return}D(f,B.id),_=!0,h&&clearTimeout(h),h=setTimeout(()=>{_=!0,D(f,null),h=null},2e3)}fa(()=>{h&&clearTimeout(h)});function K(B){g.openForMessage(l(),o(w),B.id,y)}function N(){g.close()}function Q(B){S.openForMessage(B)}function q(){S.close()}function ae(B){const ye=Nr(B.details?.citations??null,B.details?.meta??null,B.details??null);x.openWithCitations(B.id,ye)}function ie(){x.close()}function Y(B){T.openForMessage(B)}function W(){T.close()}function O(B){B&&R("deleteMessage",{id:B.id})}function V(B){B&&R("retryMessage",{id:B.id})}function he(B){B&&R("editMessage",{id:B.id})}function pe(B){!B?.message||!B?.attachment||R("editAssistantAttachment",B)}fe(()=>L(l()),()=>{const B=H1(l(),y);D(v,B.visibleMessages),D(p,B.assistantToolUsage),D(w,B.messageIndexMap)}),fe(()=>(L(l()),o(w)),()=>{g.syncEntries(l(),o(w),y)}),fe(()=>L(l()),()=>{S.syncFromMessages(l())}),At(),rt();var H=ag(),j=me(H);mt(j,5,()=>o(v),B=>B.id,(B,ye)=>{var Me=ug(),Re=b(Me);{let We=ct(()=>(o(f),o(ye),m(()=>o(f)===o(ye).id)));N2(Re,{get message(){return o(ye)},get toolSummary(){return o(p),o(ye),m(()=>o(p)[o(ye).id])},get copied(){return o(We)},get disableDelete(){return c()},$$events:{copy:Ae=>I(Ae.detail.message),openTool:Ae=>K(Ae.detail.message),openReasoning:Ae=>Q(Ae.detail.message),openCitations:Ae=>ae(Ae.detail.message),openWebSearchDetails:Ae=>Y(Ae.detail.message),openUsage:Ae=>F(Ae.detail.id),delete:Ae=>O(Ae.detail.message),retry:Ae=>V(Ae.detail.message),edit:Ae=>he(Ae.detail.message),editAttachment:Ae=>pe(Ae.detail)}})}k(B,Me)}),Ar(j,B=>D(d,B),()=>o(d));var ce=C(j,2);Y2(ce,{get open(){return n(),m(()=>n().open)},get messageId(){return n(),m(()=>n().messageId)},get tools(){return n(),m(()=>n().tools)},$$events:{close:N}});var ee=C(ce,2);U2(ee,{get open(){return r(),m(()=>r().open)},get messageId(){return r(),m(()=>r().messageId)},get segments(){return r(),m(()=>r().segments)},get status(){return r(),m(()=>r().status)},$$events:{close:q}});var De=C(ee,2);ah(De,{get open(){return u(),m(()=>u().open)},get messageId(){return u(),m(()=>u().messageId)},get citations(){return u(),m(()=>u().citations)},$$events:{close:ie}});var Z=C(De,2);rg(Z,{get open(){return a(),m(()=>a().open)},get messageId(){return a(),m(()=>a().messageId)},get details(){return a(),m(()=>a().details)},$$events:{close:W}}),J("scroll",j,z),k(e,H),et(),i()}const og=[{key:"temperature",aliases:["temperature"],label:"Temperature",description:"Higher values increase randomness.",fallback:{type:"number",min:0,max:2,step:.1}},{key:"top_p",aliases:["top_p"],label:"Top P",description:"Limits sampling to a cumulative probability mass.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_k",aliases:["top_k"],label:"Top K",description:"Restrict sampling to the top K tokens.",fallback:{type:"integer",min:1,max:400,step:1}},{key:"min_p",aliases:["min_p"],label:"Min P",description:"Nucleus sampling floor; smaller values widen sampling.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_a",aliases:["top_a"],label:"Top A",description:"Alternative nucleus control for certain models.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"max_tokens",aliases:["max_tokens","max_output_tokens"],label:"Max completion tokens",description:"Upper bound on tokens generated in the response.",fallback:{type:"integer",min:1,max:32768,step:1}},{key:"frequency_penalty",aliases:["frequency_penalty"],label:"Frequency penalty",description:"Penalize frequent tokens; useful to reduce repetition.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"presence_penalty",aliases:["presence_penalty"],label:"Presence penalty",description:"Encourage introducing new topics by penalizing seen tokens.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"repetition_penalty",aliases:["repetition_penalty"],label:"Repetition penalty",description:"Higher values push the model away from repeating itself.",fallback:{type:"number",min:0,max:2,step:.05}},{key:"top_logprobs",aliases:["top_logprobs"],label:"Top logprobs",description:"Return log probabilities for the top N tokens per step.",fallback:{type:"integer",min:0,max:20,step:1}},{key:"seed",aliases:["seed"],label:"Seed",description:"Deterministic seed (when supported).",fallback:{type:"integer",min:0,step:1}},{key:"parallel_tool_calls",aliases:["parallel_tool_calls"],label:"Parallel tool calls",description:"Allow the model to invoke multiple tools simultaneously.",fallback:{type:"boolean"}},{key:"structured_outputs",aliases:["structured_outputs","json_schema","response_format"],label:"Structured outputs",description:"Favor structured responses when supported by the provider.",fallback:{type:"boolean"}},{key:"safe_prompt",aliases:["safe_prompt"],label:"Safe prompt",description:"Ask the provider to apply additional safety prompting.",fallback:{type:"boolean"}},{key:"raw_mode",aliases:["raw_mode"],label:"Raw mode",description:"Bypass guardrails when the provider allows it.",fallback:{type:"boolean"}}];function Yu(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function Zs(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);if(Number.isFinite(t))return t}}function pd(e){const t={};if(!e||!e.capabilities)return t;const r=e.capabilities.parameters;if(!r||typeof r!="object")return t;function u(a,s){const i=Yu(a);if(!i||!s||typeof s!="object")return;const l=s,c={},d=l.type??l.datatype??l.kind;typeof d=="string"&&(c.type=d.toLowerCase());const f=l.min??l.minimum??l.lower_bound??l.minimum_value,h=l.max??l.maximum??l.upper_bound??l.maximum_value,v=l.step??l.increment??l.resolution,p=Zs(f),w=Zs(h),y=Zs(v);p!==void 0&&(c.min=p),w!==void 0&&(c.max=w),y!==void 0&&(c.step=y),t[i]=c;const _=l.properties;if(_&&typeof _=="object")for(const[A,E]of Object.entries(_))u(`${a}.${A}`,E)}for(const[a,s]of Object.entries(r))u(a,s);return t}function hd(e){const t=new Set;if(!e)return t;const n=e.supported_parameters_normalized;if(Array.isArray(n))for(const u of n){const a=Yu(u);a&&t.add(a)}const r=e.supported_parameters;if(Array.isArray(r))for(const u of r){const a=Yu(u);a&&t.add(a)}if(t.size===0)for(const u of Uo(e)){const a=Yu(u);a&&t.add(a)}return t}function ig(e,t){const n=e.fallback;if(n.type==="boolean")return{key:e.key,label:e.label,description:e.description,type:"boolean"};const r={key:e.key,label:e.label,description:e.description,type:n.type,min:n.min,max:n.max,step:n.step};if(!t)return r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r;const u=t.type?.toLowerCase();return u==="boolean"?{key:e.key,label:e.label,description:e.description,type:"boolean"}:(u==="integer"||u==="int"?r.type="integer":(u==="number"||u==="float"||u==="double")&&(r.type="number"),t.min!==void 0&&(r.min=t.min),t.max!==void 0&&(r.max=t.max),t.step!==void 0&&(r.step=t.step),r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r)}function lg(e,t){const n=hd(e),r=new Set(t?Object.keys(t):[]),u=pd(e),a=[],s=new Set;for(const i of og){if(!i.aliases.some(f=>n.has(f))&&!r.has(i.key)||s.has(i.key))continue;const c=i.aliases.map(f=>u[f]).find(f=>f!==void 0),d=ig(i,c);"min"in d&&"max"in d&&d.min!==void 0&&d.max!==void 0&&d.min>=d.max&&(d.min=void 0,d.max=void 0),a.push(d),s.add(i.key)}return a}function md(e,t){const n=e?.[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Qa(e,t){let n=e;return t.min!==void 0&&(n=Math.max(n,t.min)),t.max!==void 0&&(n=Math.min(n,t.max)),n}function vd(e){const t=e.min??0,n=e.max??t;if(t<=0&&n>=0)return Qa(0,e);const r=t+(n-t)/2;return Qa(r,e)}function cg(e,t){const n=md(t,e.key);return n!==void 0?Qa(n,e):vd(e)}function yl(e){if(e.step&&e.step>0)return e.step;if(e.type==="integer")return 1;const t=e.min??0,r=(e.max??t+1)-t;if(!Number.isFinite(r)||r<=0)return .01;const u=r/100;return u>0?u:.01}function dg(e,t){const n=e.min??0,u=(e.max??n)-n;if(!Number.isFinite(u)||u===0)return"0%";const s=(Qa(t??vd(e),e)-n)/u*100;return`${Math.min(100,Math.max(0,s))}%`}const fg=new Intl.NumberFormat(void 0,{maximumFractionDigits:4});function es(e){return typeof e=="number"&&Number.isFinite(e)?String(e):""}function Bu(e,t){return t.type==="integer"?String(Math.round(e)):fg.format(e)}var pg=M('
                      ');function hg(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U();let i=ne(t,"field",8),l=ne(t,"parameters",8),c=ne(t,"numericValue",8),d=ne(t,"hasCustom",8,!1),f=ne(t,"handlers",8);fe(()=>(L(i()),L(l())),()=>{D(n,cg(i(),l()))}),fe(()=>(L(i()),L(c())),()=>{D(r,dg(i(),c()))}),fe(()=>(L(c()),L(i())),()=>{D(u,c()!==void 0?Bu(c(),i()):"Provider default")}),fe(()=>(L(i()),o(n)),()=>{D(a,i().min??o(n))}),fe(()=>(L(i()),o(n)),()=>{D(s,i().max??o(n))}),At(),rt();var h=pg(),v=b(h),p=b(v);let w;var y=b(p),_=C(p,2),A=C(v,2),E=C(A,2),g=b(E),S=b(g),x=C(g,2),T=b(x);G((R,z,F,I)=>{w=St(p,1,"range-value",null,w,R),X(y,o(u)),_.disabled=!d(),oe(A,"min",(L(i()),m(()=>i().min))),oe(A,"max",(L(i()),m(()=>i().max))),oe(A,"step",z),Ot(A,o(n)),nr(A,`--slider-fill:${o(r)};`),oe(A,"aria-valuemin",(L(i()),m(()=>i().min))),oe(A,"aria-valuemax",(L(i()),m(()=>i().max))),oe(A,"aria-valuenow",c()??void 0),oe(A,"aria-valuetext",o(u)),X(S,F),X(T,I)},[()=>({default:!d()}),()=>(L(yl),L(i()),m(()=>yl(i()))),()=>(L(Bu),o(a),L(i()),m(()=>Bu(o(a),i()))),()=>(L(Bu),o(s),L(i()),m(()=>Bu(o(s),i())))]),J("click",_,()=>f().onRangeReset(i().key)),J("input",A,R=>f().onSliderInput(i().key,R)),k(e,h),et()}var mg=M(' '),vg=M(''),gg=M('
                      Enabled
                      '),bg=M('');function _g(e,t){Qe(t,!1);let n=ne(t,"field",8),r=ne(t,"parameters",8),u=ne(t,"handlers",8);const a=_=>_.type==="number"||_.type==="integer";let s=U(),i=U(!1);fe(()=>(L(n()),L(r())),()=>{a(n())?D(s,md(r(),n().key)):D(s,void 0)}),fe(()=>(L(r()),L(n())),()=>{D(i,r()?.[n().key]!=null)}),At(),rt();var l=bg(),c=b(l),d=b(c),f=b(d),h=C(d,2);{var v=_=>{var A=mg(),E=b(A);G(()=>X(E,(L(n()),m(()=>n().description)))),k(_,A)};$(h,_=>{L(n()),m(()=>n().description)&&_(v)})}var p=C(c,2);{var w=_=>{var A=Se(),E=me(A);{var g=x=>{hg(x,{get field(){return n()},get parameters(){return r()},get numericValue(){return o(s)},get hasCustom(){return o(i)},get handlers(){return u()}})},S=x=>{var T=vg();G(R=>{oe(T,"inputmode",(L(n()),m(()=>n().type==="integer"?"numeric":"decimal"))),oe(T,"step",(L(n()),m(()=>n().step??(n().type==="integer"?1:"any")))),oe(T,"min",(L(n()),m(()=>n().min??void 0))),oe(T,"max",(L(n()),m(()=>n().max??void 0))),Ot(T,R)},[()=>(L(es),L(r()),L(n()),m(()=>es(r()?.[n().key])))]),J("change",T,R=>u().onNumberChange(n().key,R)),k(x,T)};$(E,x=>{L(n()),m(()=>n().min!==void 0&&n().max!==void 0)?x(g):x(S,!1)})}k(_,A)},y=_=>{var A=Se(),E=me(A);{var g=S=>{var x=gg(),T=b(x);G(()=>{oe(T,"id",(L(n()),m(()=>`field-${n().key}`))),Vt(T,(L(r()),L(n()),m(()=>r()?.[n().key]===!0)))}),J("change",T,R=>u().onBooleanChange(n().key,R)),k(S,x)};$(E,S=>{L(n()),m(()=>n().type==="boolean")&&S(g)},!0)}k(_,A)};$(p,_=>{L(n()),m(()=>a(n()))?_(w):_(y,!1)})}G(()=>X(f,(L(n()),m(()=>n().label)))),k(e,l),et()}var yg=M(""),xg=M(''),kg=M(''),Eg=M('
                      Reasoning tokens Adjust effort, budget, or output visibility when the provider supports reasoning traces.
                      ');function wg(e,t){Qe(t,!1);let n=ne(t,"reasoning",8),r=ne(t,"handlers",8);rt();var u=Eg(),a=C(b(u),2),s=b(a),i=C(b(s),2),l=b(i);l.value=l.__value="default";var c=C(l);c.value=c.__value="on";var d=C(c);d.value=d.__value="off";var f;or(i);var h=C(s,2);{var v=A=>{var E=xg(),g=C(b(E),2),S=b(g);S.value=S.__value="";var x=C(S);mt(x,1,()=>(L(n()),m(()=>n().options)),jn,(R,z)=>{var F=yg(),I=b(F),K={};G(N=>{X(I,N),K!==(K=o(z))&&(F.value=(F.__value=o(z))??"")},[()=>(o(z),m(()=>o(z).charAt(0).toUpperCase()+o(z).slice(1)))]),k(R,F)});var T;or(g),G(()=>{oe(E,"aria-disabled",(L(n()),m(()=>!n().effort.supported))),g.disabled=(L(n()),m(()=>!n().effort.supported)),T!==(T=(L(n()),m(()=>n().effort.supported?n().effort.value??"":"")))&&(g.value=(g.__value=(L(n()),m(()=>n().effort.supported?n().effort.value??"":"")))??"",Rn(g,(L(n()),m(()=>n().effort.supported?n().effort.value??"":""))))}),J("change",g,function(...R){r().onEffortChange?.apply(this,R)}),k(A,E)};$(h,A=>{L(n()),m(()=>n().effort.showField)&&A(v)})}var p=C(h,2);{var w=A=>{var E=kg(),g=C(b(E),2);G(S=>{oe(E,"aria-disabled",(L(n()),m(()=>!n().maxTokens.supported))),oe(g,"min",(L(n()),m(()=>n().schemas.maxTokens?.min??void 0))),oe(g,"max",(L(n()),m(()=>n().schemas.maxTokens?.max??void 0))),oe(g,"step",(L(n()),m(()=>n().schemas.maxTokens?.step??1))),g.disabled=(L(n()),m(()=>!n().maxTokens.supported)),Ot(g,S)},[()=>(L(es),L(n()),m(()=>es(n().maxTokens.value)))]),J("change",g,function(...S){r().onMaxTokensChange?.apply(this,S)}),k(A,E)};$(p,A=>{L(n()),m(()=>n().maxTokens.showField)&&A(w)})}var y=C(p,2),_=b(y);G(()=>{f!==(f=(L(n()),m(()=>n().enabledSelection)))&&(i.value=(i.__value=(L(n()),m(()=>n().enabledSelection)))??"",Rn(i,(L(n()),m(()=>n().enabledSelection)))),Vt(_,(L(n()),m(()=>n().exclude)))}),J("change",i,function(...A){r().onEnabledChange?.apply(this,A)}),J("change",_,function(...A){r().onExcludeChange?.apply(this,A)}),k(e,u),et()}const Sg=["reasoning","reasoning_effort","reasoning_max_tokens","reasoning_exclude","reasoning_enabled","include_reasoning"],Ca={effort:["reasoning.effort","reasoning_effort"],maxTokens:["reasoning.max_tokens","reasoning_max_tokens","thinking_budget"],exclude:["reasoning.exclude","reasoning_exclude","include_reasoning"],enabled:["reasoning.enabled","reasoning_enabled"]};function Ag(e){if(!e)return!1;const t=["openai/o1","openai/o3","openai/gpt-5","gpt-5","/grok","grok-"],n=[],r=a=>{if(typeof a!="string")return;const s=a.trim().toLowerCase();s&&n.push(s)};if(r(e.id),r(e.name),Array.isArray(e.tags))for(const a of e.tags)r(a);const u=e;return r(u.series),r(u.family),n.some(a=>t.some(s=>a.includes(s)))}function Cg(e){const t=[];for(const n of e){const r=Yu(n);r&&t.push(r)}return t}function Dg(){return Ft(Dt,e=>e.data?.parameters??null)}function Tg(e,t){return Ft([e,t],([n,r])=>lg(n,r))}function Fg(e){return Ft(e,t=>!!(t&&Object.keys(t).length>0))}function Mg(e){return Ft(e,t=>pd(t))}function Pg(e){return Ft(e,t=>hd(t))}function Ig(e){return Ft(e,t=>{const n=r=>{for(const u of Cg(r)){const a=t[u];if(a)return a}};return{effort:n(Ca.effort),maxTokens:n(Ca.maxTokens),exclude:n(Ca.exclude),enabled:n(Ca.enabled)}})}function Ng(e){return Ft(e,t=>t?.reasoning??null)}function Og(e,t,n,r,u){const a=["low","medium","high"];return Ft([e,t,n,r,u],([s,i,l,c,d])=>{const f=i?.effort??null,h=i?.max_tokens??null,v=i?.exclude===!0,p=i?i.enabled===!0?"on":i.enabled===!1?"off":"default":"default",w=(()=>{if(s?.reasoning&&Object.keys(s.reasoning).length>0)return!0;for(const R of Sg)if(l.has(R))return!0;for(const R of Object.values(c))if(R)return!0;return!1})(),y=!!(c.effort||l.has("reasoning_effort")||Ag(d)),_=!!(c.maxTokens||l.has("reasoning_max_tokens")),A=f!==null,E=h!==null;return{supported:w,schemas:c,enabledSelection:p,options:a,effort:{value:f,supported:w&&(y||A),showField:y||A},maxTokens:{value:h,supported:w&&(_||E),showField:_||E},exclude:v}})}function Lg(){return kt(null)}function Rg(){const e=kt(!1),t=kt(""),n=Lg(),r=Dg(),u=Tg(n,r),a=Fg(r),s=Mg(n),i=Pg(n),l=Ig(s),c=Ng(r),d=Og(r,c,i,l,n);let f=null;const v=Ft([e,t,Dt],([E,g,S])=>({open:E,selectedModel:g,settingsState:S})).subscribe(({open:E,selectedModel:g,settingsState:S})=>{!E||!g||(S.data&&S.data.model!==g&&Dt.setModel(g),f!==g&&(f=g,Dt.clearErrors(),Dt.load(g)))});fa(()=>{v()});const p={onSliderInput:(E,g)=>{const S=g.currentTarget;if(!S)return;const x=Number(S.value);Number.isFinite(x)&&Dt.updateParameter(E,x)},onRangeReset:E=>{Dt.updateParameter(E,null)},onNumberChange:(E,g)=>{const S=g.currentTarget;if(!S)return;const x=S.value.trim();if(!x){Dt.updateParameter(E,null);return}const T=Number(x);if(!Number.isFinite(T)){Dt.updateParameter(E,null);return}Dt.updateParameter(E,T)},onBooleanChange:(E,g)=>{const S=g.currentTarget;S&&Dt.updateParameter(E,S.checked)}};function w(E){const g=at(c)?{...at(c)}:{};E(g);for(const S of Object.keys(g)){const x=g[S];(x==null||typeof x=="string"&&x.trim()==="")&&delete g[S]}Object.keys(g).length===0?Dt.updateParameter("reasoning",null):Dt.updateParameter("reasoning",g)}const y={onEnabledChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value;w(x=>{S==="on"?x.enabled=!0:S==="off"?x.enabled=!1:delete x.enabled})},onEffortChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value;w(x=>{S?x.effort=S:delete x.effort})},onMaxTokensChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.value.trim();if(!S){w(T=>{delete T.max_tokens});return}const x=Number(S);if(!Number.isFinite(x)||x<=0){w(T=>{delete T.max_tokens});return}w(T=>{T.max_tokens=x})},onExcludeChange:E=>{const g=E.currentTarget;if(!g)return;const S=g.checked;w(x=>{S?x.exclude=!0:delete x.exclude})}};let _={open:!1,selectedModel:"",model:null};function A(E){E.open!==_.open&&(e.set(E.open),_.open=E.open),E.selectedModel!==_.selectedModel&&(t.set(E.selectedModel),_.selectedModel=E.selectedModel),E.model!==_.model&&(n.set(E.model),_.model=E.model)}return{settingsState:Dt,parameters:r,fields:u,hasCustomParameters:a,reasoning:d,parameterHandlers:p,reasoningHandlers:y,resetToDefaults:()=>Dt.resetToDefaults(),flushSave:()=>Dt.flushSave(),sync:A}}var $g=M('

                      Loading settings…

                      '),zg=M('

                      '),Ug=M('

                      This model does not expose configurable parameters.

                      '),Bg=M('
                      '),jg=M('
                      '),qg=M('

                      Model settings

                      ',1),Hg=M(''),Wg=M(' '),Vg=M('Saving changes…'),Gg=M('Pending changes; closing this modal will save.'),Kg=M('Changes save when you close this modal.'),Zg=M('
                      ');function Yg(e,t){Qe(t,!1);const n=()=>Xe(v,"$settingsState",i),r=()=>Xe(y,"$hasCustomParameters",i),u=()=>Xe(_,"$reasoning",i),a=()=>Xe(w,"$fields",i),s=()=>Xe(p,"$parameters",i),[i,l]=Gn();let c=ne(t,"open",8,!1),d=ne(t,"selectedModel",8,""),f=ne(t,"model",8,null);const h=Et(),{settingsState:v,parameters:p,fields:w,hasCustomParameters:y,reasoning:_,parameterHandlers:A,reasoningHandlers:E,resetToDefaults:g,flushSave:S,sync:x}=Rg();let T=!1;async function R(){if(T||n().saving)return;T=!0,await S()&&h("close"),T=!1}fe(()=>(L(c()),L(d()),L(f())),()=>{x({open:c(),selectedModel:d(),model:f()})}),At(),rt();var z=Se(),F=me(z);{var I=K=>{cr(K,{get open(){return c()},labelledBy:"model-settings-title",closeLabel:"Close model settings",$$events:{close:()=>void R()},children:(N,Q)=>{var q=Se(),ae=me(q);{var ie=W=>{var O=$g();k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=zg(),ce=b(j);G(()=>X(ce,(n(),m(()=>n().error)))),k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=Z=>{var B=Ug();k(Z,B)},De=Z=>{var B=jg(),ye=b(B);{var Me=Ae=>{wg(Ae,{get reasoning(){return u()},get handlers(){return E}})};$(ye,Ae=>{u(),m(()=>u().supported)&&Ae(Me)})}var Re=C(ye,2);{var We=Ae=>{var tt=Bg();mt(tt,5,a,_e=>_e.key,(_e,te)=>{_g(_e,{get field(){return o(te)},get parameters(){return s()},get handlers(){return A}})}),k(Ae,tt)};$(Re,Ae=>{a(),m(()=>a().length)&&Ae(We)})}k(Z,B)};$(ce,Z=>{u(),a(),m(()=>!u().supported&&!a().length)?Z(ee):Z(De,!1)})}k(H,j)};$(V,H=>{n(),m(()=>n().error)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{n(),m(()=>n().loading)?W(ie):W(Y,!1)})}k(N,q)},$$slots:{default:!0,heading:(N,Q)=>{var q=qg(),ae=C(me(q),2),ie=b(ae);{var Y=O=>{var V=Ln();G(()=>X(V,(L(f()),m(()=>f().name)))),k(O,V)},W=O=>{var V=Se(),he=me(V);{var pe=j=>{var ce=Ln();G(()=>X(ce,(L(f()),m(()=>f().id)))),k(j,ce)},H=j=>{var ce=Ln();G(()=>X(ce,d())),k(j,ce)};$(he,j=>{L(f()),m(()=>f()?.id)?j(pe):j(H,!1)},!0)}k(O,V)};$(ie,O=>{L(f()),m(()=>f()?.name)?O(Y):O(W,!1)})}k(N,q)},actions:(N,Q)=>{var q=Hg();G(()=>q.disabled=(r(),n(),m(()=>!r()||n().saving))),J("click",q,g),k(N,q)},footer:(N,Q)=>{var q=Zg(),ae=b(q);{var ie=W=>{var O=Wg(),V=b(O);G(()=>X(V,(n(),m(()=>n().saveError)))),k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=Vg();k(H,j)},pe=H=>{var j=Se(),ce=me(j);{var ee=Z=>{var B=Gg();k(Z,B)},De=Z=>{var B=Kg();k(Z,B)};$(ce,Z=>{n(),m(()=>n().dirty)?Z(ee):Z(De,!1)},!0)}k(H,j)};$(V,H=>{n(),m(()=>n().saving)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{n(),m(()=>n().saveError)?W(ie):W(Y,!1)})}k(N,q)}}})};$(F,K=>{c()&&K(I)})}k(e,z),et(),l()}const Jg={loading:!1,adding:!1,deleting:null,error:null,items:[]};function Xg(){const e=kt({...Jg});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await fetch(`${jt}/api/suggestions`);if(!a.ok)throw new Error(`HTTP ${a.status}`);const s=await a.json();e.update(i=>({...i,loading:!1,items:s.suggestions}))}catch(a){const s=a instanceof Error?a.message:"Failed to load suggestions.";e.update(i=>({...i,loading:!1,error:s}))}}async function n(a,s){e.update(i=>({...i,adding:!0,error:null}));try{const i=await fetch(`${jt}/api/suggestions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a,text:s})});if(!i.ok)throw new Error(`HTTP ${i.status}`);const l=await i.json();return e.update(c=>({...c,adding:!1,items:l.suggestions})),l.suggestions}catch(i){const l=i instanceof Error?i.message:"Failed to add suggestion.";return e.update(c=>({...c,adding:!1,error:l})),null}}async function r(a){e.update(s=>({...s,deleting:a,error:null}));try{const s=await fetch(`${jt}/api/suggestions/${a}`,{method:"DELETE"});if(!s.ok)throw new Error(`HTTP ${s.status}`);const i=await s.json();return e.update(l=>({...l,deleting:null,items:i.suggestions})),i.suggestions}catch(s){const i=s instanceof Error?s.message:"Failed to delete suggestion.";return e.update(l=>({...l,deleting:null,error:i})),null}}function u(){e.update(a=>({...a,error:null}))}return{subscribe:e.subscribe,load:t,add:n,remove:r,clearError:u}}const du=Xg();var Qg=M('

                      '),eb=M('

                      Loading presets…

                      '),tb=M('

                      No presets saved yet.

                      '),nb=M('Default'),rb=M(' Filters'),ub=M(''),ab=M('
                    • '),sb=M('
                        '),ob=M('
                        ',1),ib=M('

                        Presets

                        Save and manage snapshots of the current configuration.

                        ',1),lb=M(' '),cb=M(' '),db=M('Create, update, or apply a preset.'),fb=M('
                        ');function pb(e,t){Qe(t,!1);const n=()=>Xe(ea,"$chatStore",u),r=()=>Xe(Pn,"$presetsStore",u),[u,a]=Gn();let s=ne(t,"open",8,!1);const i=Et();let l=U(""),c=U(null),d=U(null),f=U(!1),h=U(!1);function v(){i("close")}async function p(){const x=o(l).trim();if(!x)return;await Dt.load(n().selectedModel),await Pn.create(x)&&D(l,"")}async function w(x){const T=await Pn.apply(x.name);T?.model&&ea.setModel(T.model),await du.load()}async function y(x){await Dt.load(n().selectedModel),await Pn.saveSnapshot(x.name)}async function _(x){if(!x.is_default){if(o(c)===x.name){await Pn.remove(x.name),D(c,null);return}D(c,x.name),setTimeout(()=>{o(c)===x.name&&D(c,null)},3e3)}}async function A(x){await Pn.setDefault(x.name)}fe(()=>(L(s()),o(h),Pn),()=>{s()&&!o(h)&&(D(h,!0),Pn.load())}),fe(()=>(L(s()),o(h)),()=>{!s()&&o(h)&&D(h,!1)}),fe(()=>(L(s()),o(f),o(d)),()=>{s()&&!o(f)&&(D(f,!0),setTimeout(()=>{o(d)?.focus()},0))}),fe(()=>(L(s()),o(f)),()=>{!s()&&o(f)&&D(f,!1)}),At(),rt();var E=Se(),g=me(E);{var S=x=>{cr(x,{get open(){return s()},labelledBy:"presets-title",modalClass:"presets-modal",bodyClass:"presets-body",closeLabel:"Close presets",$$events:{close:v},children:(T,R)=>{var z=ob(),F=me(z),I=b(F);Ar(I,W=>D(d,W),()=>o(d));var K=C(I,2),N=b(K),Q=C(F,2);{var q=W=>{var O=Qg(),V=b(O);G(()=>X(V,(r(),m(()=>r().error)))),k(W,O)};$(Q,W=>{r(),m(()=>r().error)&&W(q)})}var ae=C(Q,2);{var ie=W=>{var O=eb();k(W,O)},Y=W=>{var O=Se(),V=me(O);{var he=H=>{var j=tb();k(H,j)},pe=H=>{var j=sb();mt(j,5,()=>(r(),m(()=>r().items)),ce=>ce.name,(ce,ee)=>{var De=ab(),Z=b(De),B=b(Z),ye=b(B),Me=C(ye);{var Re=je=>{var Pe=nb();k(je,Pe)};$(Me,je=>{o(ee),m(()=>o(ee).is_default)&&je(Re)})}var We=C(Me,2);{var Ae=je=>{var Pe=rb();k(je,Pe)};$(We,je=>{o(ee),m(()=>o(ee).has_filters)&&je(Ae)})}var tt=C(B,2),_e=b(tt),te=b(_e),Ee=C(_e,2),ge=b(Ee),Te=b(ge),$e=C(ge,4),ue=b($e),ve=C(Z,2),xe=b(ve),we=b(xe),be=C(xe,2),Oe=b(be),Ce=C(be,2);{var Le=je=>{var Pe=ub(),ut=b(Pe);G(()=>{Pe.disabled=(r(),o(ee),m(()=>r().settingDefault===o(ee).name)),oe(Pe,"aria-busy",(r(),o(ee),m(()=>r().settingDefault===o(ee).name))),X(ut,(r(),o(ee),m(()=>r().settingDefault===o(ee).name?"Setting…":"Set as default")))}),J("click",Pe,()=>A(o(ee))),k(je,Pe)};$(Ce,je=>{o(ee),m(()=>!o(ee).is_default)&&je(Le)})}var Be=C(Ce,2),Ve=b(Be);G((je,Pe)=>{X(ye,`${o(ee),m(()=>o(ee).name)??""} `),X(te,(o(ee),m(()=>o(ee).model))),X(Te,je),X(ue,Pe),xe.disabled=(r(),o(ee),m(()=>r().applying===o(ee).name)),oe(xe,"aria-busy",(r(),o(ee),m(()=>r().applying===o(ee).name))),X(we,(r(),o(ee),m(()=>r().applying===o(ee).name?"Applying…":"Apply"))),be.disabled=(r(),m(()=>r().saving)),oe(be,"aria-busy",(r(),m(()=>r().saving))),X(Oe,(r(),m(()=>r().saving?"Saving…":"Save snapshot"))),Be.disabled=(o(ee),r(),m(()=>o(ee).is_default||r().deleting===o(ee).name)),oe(Be,"aria-busy",(r(),o(ee),m(()=>r().deleting===o(ee).name))),oe(Be,"title",(o(ee),m(()=>o(ee).is_default?"Cannot delete default preset":"Delete preset"))),X(Ve,(o(c),o(ee),r(),m(()=>o(c)===o(ee).name?"Confirm delete":r().deleting===o(ee).name?"Deleting…":"Delete")))},[()=>(o(ee),m(()=>new Date(o(ee).created_at).toLocaleString())),()=>(o(ee),m(()=>new Date(o(ee).updated_at).toLocaleString()))]),J("click",xe,()=>w(o(ee))),J("click",be,()=>y(o(ee))),J("click",Be,()=>_(o(ee))),k(ce,De)}),k(H,j)};$(V,H=>{r(),m(()=>!r().items.length)?H(he):H(pe,!1)},!0)}k(W,O)};$(ae,W=>{r(),m(()=>r().loading)?W(ie):W(Y,!1)})}G(W=>{K.disabled=W,oe(K,"aria-busy",(r(),m(()=>r().creating))),X(N,(r(),m(()=>r().creating?"Creating…":"Create from current")))},[()=>(o(l),r(),m(()=>!o(l).trim()||r().creating))]),rr(I,()=>o(l),W=>D(l,W)),J("keydown",I,W=>W.key==="Enter"?p():null),J("click",K,p),k(T,z)},$$slots:{default:!0,heading:(T,R)=>{var z=ib();k(T,z)},footer:(T,R)=>{var z=fb(),F=b(z);{var I=N=>{var Q=lb(),q=b(Q);G(()=>X(q,`Applied preset: ${r(),m(()=>r().lastApplied)??""}`)),k(N,Q)},K=N=>{var Q=Se(),q=me(Q);{var ae=Y=>{var W=cb(),O=b(W);G(()=>X(O,`Saved: ${r(),m(()=>r().lastResult.name)??""}`)),k(Y,W)},ie=Y=>{var W=db();k(Y,W)};$(q,Y=>{r(),m(()=>r().lastResult)?Y(ae):Y(ie,!1)},!0)}k(N,Q)};$(F,N=>{r(),m(()=>r().lastApplied)?N(I):N(K,!1)})}k(T,z)}}})};$(g,x=>{s()&&x(S)})}k(e,E),et(),a()}var hb=M('
                        '),mb=M('
                        '),vb=M(''),gb=M('
                        ');function bb(e,t){Qe(t,!1);const n=Et();let r=ne(t,"suggestions",24,()=>[]),u=ne(t,"deleting",8,null),a=U(!1),s=U(""),i=U("");function l(g){n("select",{text:g})}function c(g,S){S.stopPropagation(),n("delete",{index:g})}function d(){D(a,!0)}function f(){o(s).trim()&&o(i).trim()&&(n("add"),D(s,""),D(i,""),D(a,!1))}function h(){D(s,""),D(i,""),D(a,!1)}function v(){const g=o(s).trim(),S=o(i).trim();return g&&S?{label:g,text:S}:null}var p={getNewSuggestion:v};rt();var w=gb(),y=b(w);mt(y,3,r,g=>g.text,(g,S,x)=>{var T=hb(),R=b(T),z=b(R),F=C(R,2);G(()=>{X(z,(o(S),m(()=>o(S).label))),F.disabled=u()===o(x)}),J("click",R,()=>l(o(S).text)),J("click",F,I=>c(o(x),I)),k(g,T)});var _=C(y,2);{var A=g=>{var S=mb(),x=b(S),T=C(x,2),R=C(T,2),z=C(R,2);rr(x,()=>o(s),F=>D(s,F)),J("keydown",x,F=>F.key==="Enter"&&f()),rr(T,()=>o(i),F=>D(i,F)),J("keydown",T,F=>F.key==="Enter"&&f()),J("click",R,f),J("click",z,h),k(g,S)},E=g=>{var S=vb();J("click",S,d),k(g,S)};$(_,g=>{o(a)?g(A):g(E,!1)})}return k(e,w),y0(t,"getNewSuggestion",v),et(p)}var _b=M(""),yb=M('

                        Deepgram model

                        Choose the speech-to-text engine and helper features.

                        Model
                        Speech timing presets

                        Timing & auto-submit

                        Tune silence detection and message submission.

                        Endpointing window (ms)

                        How long Deepgram waits after silence before finalizing the transcript.

                        Utterance gap (ms)

                        Silence between words before Deepgram starts a new interim segment.

                        Send automatically when speech ends. Delay waits after endpointing.

                        ',1),xb=M('

                        Speech settings

                        Configure Deepgram speech-to-text dictation settings.

                        ',1),kb=M(''),Eb=M('

                        '),wb=M('

                        Saving changes…

                        '),Sb=M('

                        '),Ab=M('

                        '),Cb=M('
                        ');function Db(e,t){Qe(t,!1);let n=ne(t,"open",8,!1);const r=Et();let u=U(f()),a=U(!1),s=U(!1),i=U(null),l=U(null),c=U(!1),d=!1;function f(){const x=Ga.current??$r();return{...x,stt:{...x.stt}}}function h(){d||o(s)||(d=!0,(async()=>(await _()&&r("close"),d=!1))())}function v(x=null,T="pending"){D(a,!0),D(i,x),D(l,T??"pending")}function p(x,T){D(u,{...o(u),stt:{...o(u).stt,[x]:T}}),v()}function w(x,T){const R=x.target;if(!R)return;const z=Number(R.value);Number.isFinite(z)&&T(z)}function y(x){const T=Vp[x];D(u,{...o(u),stt:{...o(u).stt,utteranceEndMs:T.stt.utteranceEndMs,endpointing:T.stt.endpointing,autoSubmitDelayMs:T.stt.autoSubmitDelayMs}}),v(`${T.label} preset applied; closing will save.`,"pending")}async function _(){if(!o(a))return!0;D(s,!0),D(i,"Saving changes…"),D(l,"pending");try{const x=Ga.save(o(u));return D(u,{...x,stt:{...x.stt}}),D(a,!1),D(i,"Saved"),D(l,"success"),!0}catch(x){const T=x instanceof Error?x.message:"Failed to save speech settings.";return D(i,T),D(l,"error"),!1}finally{D(s,!1)}}function A(){D(u,$r()),D(a,!0),D(i,"Defaults restored; closing will save."),D(l,"pending")}fe(()=>(L(n()),o(c),o(a),o(s)),()=>{n()&&!o(c)?(D(u,f()),D(a,!1),D(s,!1),D(i,"Changes save when you close this modal."),D(l,"info"),D(c,!0)):!n()&&o(c)&&(D(c,!1),o(a)&&!o(s)&&_())}),At(),rt();var E=Se(),g=me(E);{var S=x=>{cr(x,{get open(){return n()},labelledBy:"speech-settings-title",modalClass:"speech-settings-modal",bodyClass:"speech-settings-body",closeLabel:"Close speech settings",$$events:{close:()=>void h()},children:(T,R)=>{var z=yb(),F=me(z),I=C(b(F),2),K=b(I),N=C(b(K),2);mt(N,5,()=>Gp,jn,(be,Oe)=>{var Ce=_b(),Le=b(Ce),Be={};G(()=>{X(Le,(o(Oe),m(()=>o(Oe).label))),Be!==(Be=(o(Oe),m(()=>o(Oe).value)))&&(Ce.value=(Ce.__value=(o(Oe),m(()=>o(Oe).value)))??"")}),k(be,Ce)});var Q;or(N);var q=C(K,2),ae=C(b(q),2),ie=b(ae),Y=C(ie,2),W=C(Y,2),O=C(I,2),V=b(O),he=b(V),pe=C(V,2),H=b(pe),j=C(pe,2),ce=b(j),ee=C(j,2),De=b(ee),Z=C(ee,2),B=b(Z),ye=C(Z,2),Me=b(ye),Re=C(ye,2),We=b(Re),Ae=C(F,2),tt=C(b(Ae),2),_e=b(tt),te=C(b(_e),2),Ee=C(_e,2),ge=C(b(Ee),2),Te=C(tt,2),$e=b(Te),ue=b($e),ve=b(ue),xe=C($e,2),we=C(b(xe),2);G(()=>{Q!==(Q=(o(u),m(()=>o(u).stt.model)))&&(N.value=(N.__value=(o(u),m(()=>o(u).stt.model)))??"",Rn(N,(o(u),m(()=>o(u).stt.model)))),Vt(he,(o(u),m(()=>o(u).stt.interimResults))),Vt(H,(o(u),m(()=>o(u).stt.vadEvents))),Vt(ce,(o(u),m(()=>o(u).stt.smartFormat))),Vt(De,(o(u),m(()=>o(u).stt.punctuate))),Vt(B,(o(u),m(()=>o(u).stt.numerals))),Vt(Me,(o(u),m(()=>o(u).stt.fillerWords))),Vt(We,(o(u),m(()=>o(u).stt.profanityFilter))),Ot(te,(o(u),m(()=>o(u).stt.endpointing))),Ot(ge,(o(u),m(()=>o(u).stt.utteranceEndMs))),Vt(ve,(o(u),m(()=>o(u).stt.autoSubmit))),Ot(we,(o(u),m(()=>o(u).stt.autoSubmitDelayMs))),we.disabled=(o(u),m(()=>!o(u).stt.autoSubmit))}),J("change",N,be=>p("model",be.target.value)),J("click",ie,()=>y("fast")),J("click",Y,()=>y("normal")),J("click",W,()=>y("slow")),J("change",he,be=>p("interimResults",be.target.checked)),J("change",H,be=>p("vadEvents",be.target.checked)),J("change",ce,be=>p("smartFormat",be.target.checked)),J("change",De,be=>p("punctuate",be.target.checked)),J("change",B,be=>p("numerals",be.target.checked)),J("change",Me,be=>p("fillerWords",be.target.checked)),J("change",We,be=>p("profanityFilter",be.target.checked)),J("change",te,be=>w(be,Oe=>p("endpointing",Oe))),J("change",ge,be=>w(be,Oe=>p("utteranceEndMs",Oe))),J("change",ve,be=>p("autoSubmit",be.target.checked)),J("change",we,be=>w(be,Oe=>p("autoSubmitDelayMs",Oe))),k(T,z)},$$slots:{default:!0,heading:(T,R)=>{var z=xb();k(T,z)},actions:(T,R)=>{var z=kb();G(()=>z.disabled=o(s)),J("click",z,A),k(T,z)},footer:(T,R)=>{var z=Cb(),F=b(z);{var I=N=>{var Q=Eb(),q=b(Q);G(()=>X(q,o(i))),k(N,Q)},K=N=>{var Q=Se(),q=me(Q);{var ae=Y=>{var W=wb();k(Y,W)},ie=Y=>{var W=Se(),O=me(W);{var V=pe=>{var H=Sb(),j=b(H);G(()=>X(j,o(i)??"Pending changes; closing this modal will save.")),k(pe,H)},he=pe=>{var H=Ab(),j=b(H);G(()=>{oe(H,"data-variant",o(l)??"info"),X(j,o(i)??"Changes save when you close this modal.")}),k(pe,H)};$(O,pe=>{o(a)?pe(V):pe(he,!1)},!0)}k(Y,W)};$(q,Y=>{o(s)?Y(ae):Y(ie,!1)},!0)}k(N,Q)};$(F,N=>{o(l)==="error"?N(I):N(K,!1)})}k(T,z)}}})};$(g,x=>{n()&&x(S)})}k(e,E),et()}const za=["Google Calendar","Google Tasks","Gmail","Google Drive"],Ys={loading:!1,authorizing:!1,authorized:!1,userEmail:null,expiresAt:null,services:[...za],error:null};function Tb(e){return new Promise((t,n)=>{const r=s=>{const i=s.data;if(!i||typeof i!="object"||i.source!=="google-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const d=typeof c=="string"?c:"Authorization failed.";n(new Error(d))}},u=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(u)};window.addEventListener("message",r)})}function Fb(){const e=kt({...Ys});async function t(){e.update(u=>({...u,loading:!0,error:null}));try{const u=await z0();e.set({loading:!1,authorizing:!1,authorized:u.authorized,userEmail:u.user_email??null,expiresAt:u.expires_at??null,services:u.services&&u.services.length>0?u.services:[...za],error:null})}catch(u){const a=u instanceof Error?u.message:"Failed to check Google authorization status.";e.set({...Ys,services:[...za],loading:!1,error:a})}}function n(){e.set({...Ys,services:[...za]})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Google authorization is only available in a browser environment."})),!1;if(at(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await U0({}),s=window.open(a.auth_url,"google-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!s)throw new Error("Popup was blocked. Allow pop-ups and try again.");return s.focus(),await Tb(s),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const s=a instanceof Error?a.message:"Failed to start Google authorization.";return e.update(i=>({...i,authorizing:!1,error:s})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}const Da={loading:!1,refreshing:!1,saving:!1,dirty:!1,error:null,saveError:null,servers:[],updatedAt:null,pending:{},pendingChanges:{}};function xl(e,t){return{...e,servers:t.servers??[],updatedAt:t.updated_at??null,error:null,saveError:null}}function Mb(){const e=kt({...Da});async function t(){e.set({...Da,loading:!0});try{const f=await L0();e.set({...Da,servers:f.servers,updatedAt:f.updated_at??null,loading:!1})}catch(f){const h=f instanceof Error?f.message:"Failed to load MCP servers.";e.set({...Da,loading:!1,error:h})}}function n(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function r(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,kiosk_enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},kiosk_enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function u(f,h){e.update(v=>{const p=v.servers.map(y=>y.id===f?{...y,frontend_enabled:h}:y),w={...v.pendingChanges,[f]:{...v.pendingChanges[f]??{},frontend_enabled:h}};return{...v,servers:p,dirty:!0,saveError:null,pendingChanges:w}})}function a(f,h,v){e.update(p=>{const w=p.servers.find(g=>g.id===f);if(!w)return p;const y=new Set(w.disabled_tools??[]);v?y.delete(h):y.add(h);const _=Array.from(y).sort(),A=p.servers.map(g=>g.id!==f?g:{...g,disabled_tools:_,tools:g.tools.map(S=>S.name===h?{...S,enabled:v}:S)}),E={...p.pendingChanges,[f]:{...p.pendingChanges[f]??{},disabled_tools:_}};return{...p,servers:A,dirty:!0,saveError:null,pendingChanges:E}})}function s(f,h,v){e.update(p=>{const w=p.servers.find(E=>E.id===f);if(!w)return p;const y={...w.env??{},...p.pendingChanges[f]?.env??{}};y[h]=v;const _=p.servers.map(E=>E.id===f?{...E,env:y}:E),A={...p.pendingChanges,[f]:{...p.pendingChanges[f]??{},env:y}};return{...p,servers:_,dirty:!0,saveError:null,pendingChanges:A}})}async function i(){e.update(f=>({...f,refreshing:!0,error:null}));try{const f=await $0();e.update(h=>({...xl(h,f),refreshing:!1}))}catch(f){const h=f instanceof Error?f.message:"Failed to refresh MCP servers.";e.update(v=>({...v,refreshing:!1,saveError:h}))}}function l(f){return at(e).servers.find(v=>v.id===f)}function c(f){return!!at(e).pending[f]}async function d(){const f=at(e);if(!f.dirty)return!0;const h=Object.entries(f.pendingChanges);if(!h.length)return e.update(p=>({...p,dirty:!1})),!0;e.update(p=>({...p,saving:!0,saveError:null}));let v=!0;for(const[p,w]of h){e.update(y=>({...y,pending:{...y.pending,[p]:!0}}));try{const y=await R0(p,w);e.update(_=>{const A={..._.pending};delete A[p];const E={..._.pendingChanges};delete E[p];const g=xl(_,y),S=Object.keys(E).length>0;return{...g,pending:A,pendingChanges:E,dirty:S}})}catch(y){let _="Failed to update MCP server.";if(y instanceof Error)_=y.message;else if(typeof y=="object"&&y!==null){const A=y;_=String(A.detail||A.message||A.error||JSON.stringify(y))}else typeof y=="string"&&(_=y);_.includes("[object Object]")&&(_="Failed to save MCP server settings. Check server logs for details."),e.update(A=>{const E={...A.pending};return delete E[p],{...A,pending:E,saving:!1,saveError:_}}),v=!1;break}}return v?(e.update(p=>({...p,saving:!1,dirty:!1})),!0):(e.update(p=>({...p,saving:!1,dirty:!0})),!1)}return{subscribe:e.subscribe,load:t,refresh:i,setServerEnabled:n,setKioskEnabled:r,setFrontendEnabled:u,setToolEnabled:a,setServerEnv:s,getServer:l,isPending:c,flushPending:d}}const kl={loading:!1,saving:!1,refreshing:!1,configured:!1,email:null,error:null};function Pb(){const e=kt({...kl});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await B0();e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null})}catch(a){const s=a instanceof Error?a.message:"Failed to check Monarch status.";e.set({...kl,loading:!1,error:s})}}async function n(a){e.update(s=>({...s,saving:!0,error:null}));try{const s=await j0(a);return e.set({loading:!1,saving:!1,refreshing:!1,configured:s.configured,email:s.email,error:null}),!0}catch(s){const i=s instanceof Error?s.message:"Failed to save Monarch credentials.";return e.update(l=>({...l,saving:!1,error:i})),!1}}async function r(){e.update(a=>({...a,saving:!0,error:null}));try{const a=await q0();return e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null}),!0}catch(a){const s=a instanceof Error?a.message:"Failed to remove Monarch credentials.";return e.update(i=>({...i,saving:!1,error:s})),!1}}async function u(){e.update(a=>({...a,refreshing:!0,error:null}));try{return await new Promise(a=>setTimeout(a,2e3)),e.update(a=>({...a,refreshing:!1})),{success:!0,message:"Account data refreshed successfully"}}catch(a){const s=a instanceof Error?a.message:"Failed to refresh account data.";return e.update(i=>({...i,refreshing:!1,error:s})),{success:!1,message:s}}}return{subscribe:e.subscribe,load:t,save:n,remove:r,refresh:u}}const Js={loading:!1,authorizing:!1,authorized:!1,userEmail:null,error:null};function Ib(e){return new Promise((t,n)=>{const r=s=>{const i=s.data;if(!i||typeof i!="object"||i.source!=="spotify-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const d=typeof c=="string"?c:"Authorization failed.";n(new Error(d))}},u=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(u)};window.addEventListener("message",r)})}function Nb(){const e=kt({...Js});async function t(){e.update(u=>({...u,loading:!0,error:null}));try{const u=await H0();e.set({loading:!1,authorizing:!1,authorized:u.authorized,userEmail:u.user_email??null,error:null})}catch(u){const a=u instanceof Error?u.message:"Failed to check Spotify authorization status.";e.set({...Js,loading:!1,error:a})}}function n(){e.set({...Js})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Spotify authorization is only available in a browser environment."})),!1;if(at(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await W0({}),s=window.open(a.auth_url,"spotify-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!s)throw new Error("Popup was blocked. Allow pop-ups and try again.");return s.focus(),await Ib(s),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const s=a instanceof Error?a.message:"Failed to start Spotify authorization.";return e.update(i=>({...i,authorizing:!1,error:s})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}const Xs={loading:!1,saving:!1,error:null,saveError:null,value:"",initialValue:"",dirty:!1};function Ob(){const e=kt({...Xs});function t(i,l){return i.trim()!==l.trim()}function n(i){return i.system_prompt?.trim()??""}async function r(){e.set({...Xs,loading:!0});try{const i=await N0(),l=n(i);e.set({loading:!1,saving:!1,error:null,saveError:null,value:l,initialValue:l,dirty:!1})}catch(i){const l=i instanceof Error?i.message:"Failed to load system prompt.";e.set({...Xs,loading:!1,error:l})}}function u(i){e.update(l=>{const c=i;return{...l,value:c,dirty:t(c,l.initialValue),saveError:null}})}async function a(){let i="";e.update(c=>(i=c.value,{...c,saving:!0,saveError:null}));const l={system_prompt:i.trim()||null};try{const c=await O0(l),d=n(c);e.set({loading:!1,saving:!1,error:null,saveError:null,value:d,initialValue:d,dirty:!1})}catch(c){const d=c instanceof Error?c.message:"Failed to save system prompt.";e.update(f=>({...f,saving:!1,saveError:d}))}}function s(){e.update(i=>({...i,value:i.initialValue,dirty:!1,saveError:null}))}return{subscribe:e.subscribe,load:r,save:a,reset:s,updateValue:u}}var Lb=M('

                        Loading system prompt…

                        '),Rb=M('

                        '),$b=M('

                        '),zb=M('

                        Pending changes; closing this modal will save.

                        '),Ub=M('

                        Changes save when you close this modal.

                        '),Bb=M(' ',1),jb=M('

                        Checking Google authorization…

                        '),qb=M('

                        ',1),Hb=M('

                        '),Wb=M('

                        Access will refresh automatically.

                        '),Vb=M('

                        Connected as .

                        ',1),Gb=M('

                        Google services are not connected.

                        '),Kb=M("
                      • "),Zb=M('

                        Checking Spotify authorization…

                        '),Yb=M('

                        ',1),Jb=M('

                        Connected as .

                        Access will refresh automatically.

                        ',1),Xb=M('

                        Spotify is not connected.

                        '),Qb=M(''),e_=M(''),t_=M('

                        Checking Monarch status…

                        '),n_=M('

                        Connected as .

                        '),r_=No(''),u_=No(''),a_=M('

                        '),s_=M(`

                        If you already use an app, you must reset MFA in Monarch - Settings to see the secret key again. Enter the new key here AND in - your app.

                        `),o_=M('

                        '),i_=M('

                        Toggle integrations available to the assistant.

                        '),l_=M('

                        Loading MCP servers…

                        '),c_=M('

                        '),d_=M('

                        No MCP servers configured.

                        '),f_=M(' ',1),p_=M(' ',1),h_=M(""),m_=M(`
                        This machine Select which computer you're on. Sets host profile - and storage path.
                        `),v_=M('
                      • '),g_=M('
                          '),b_=M('

                          Tool list unavailable.

                          '),__=M('

                          '),y_=M('
                          '),x_=M('
                        • '),k_=M('
                            '),E_=M('

                            '),w_=M('

                            Pending changes save when you close this modal.

                            '),S_=M(" ",1),A_=M(`

                            System prompt

                            Applied to new chat sessions when no custom prompt is present.

                            Google services

                            Connect Calendar, Tasks, Gmail, and Drive with a single consent.

                              Click "Connect Google Services" to authorize these integrations for - the assistant.

                              Spotify

                              Connect Spotify for music control and playback.

                              Click "Connect Spotify" to authorize music control and playback - features.

                              Monarch Money

                              Connect your Monarch Money account.

                              MCP servers

                              `,1),C_=M('

                              System settings

                              Configure orchestration defaults and MCP servers.

                              ',1),D_=M('

                              Resolve the errors above before closing.

                              '),T_=M('

                              Saving changes…

                              '),F_=M('

                              Pending changes; closing this modal will save.

                              '),M_=M('

                              Changes save when you close this modal.

                              '),P_=M('
                              ');function I_(e,t){Qe(t,!1);const n=()=>Xe(f,"$systemPrompt",i),r=()=>Xe(h,"$mcpServers",i),u=()=>Xe(v,"$googleAuth",i),a=()=>Xe(w,"$spotifyAuth",i),s=()=>Xe(p,"$monarchAuth",i),[i,l]=Gn();let c=ne(t,"open",8,!1);const d=Et(),f=Ob(),h=Mb(),v=Fb(),p=Pb(),w=Nb();let y=U(!1),_=!1,A=U(new Set);const E=[{id:"xps13",label:"Dell XPS 13",path:"/home/jack/gdrive/host_profiles"},{id:"ryzen-desktop",label:"Ryzen Desktop",path:"/home/human/gdrive/host_profiles"}];async function g(){await Promise.all([f.load(),h.load(),v.load(),p.load(),w.load()])}async function S(){return at(f).dirty?(await f.save(),!at(f).saveError):!0}async function x(){if(_||n().saving||r().saving)return;_=!0;const Z=await S(),B=Z?await h.flushPending():!1,ye=at(f),Me=at(h);Z&&B&&!ye.saveError&&!Me.saveError&&d("close"),_=!1}let T=U(""),R=U(""),z=U(""),F=U(!1);function I(Z,B){const ye=E.find(Me=>Me.id===B);ye&&(Y(Z,"HOST_PROFILE_ID",ye.id),Y(Z,"HOST_ROOT_PATH",ye.path))}function K(){!o(T)||!o(R)||p.save({email:o(T),password:o(R),mfa_secret:o(z)||null})}function N(Z){const B=Z.target;f.updateValue(B?.value??"")}function Q(Z,B){r().saving||h.setServerEnabled(Z,B)}function q(Z,B){r().saving||h.setKioskEnabled(Z,B)}function ae(Z,B){r().saving||h.setFrontendEnabled(Z,B)}function ie(Z,B,ye){r().saving||h.setToolEnabled(Z,B,ye)}function Y(Z,B,ye){r().saving||h.setServerEnv(Z,B,ye)}function W(){const Z=at(h);Z.dirty||Z.saving||h.refresh()}function O(){u().loading||u().authorizing||v.load()}async function V(){u().authorizing||await v.authorize()}function he(){a().loading||a().authorizing||w.load()}async function pe(){a().authorizing||await w.authorize()}function H(Z){if(!Z)return null;try{const B=new Date(Z);return Number.isNaN(B.getTime())?Z:new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",year:"numeric",month:"short",day:"2-digit"}).format(B)}catch(B){return console.warn("Failed to format timestamp",B),Z}}function j(Z){const B=new Set(o(A));B.has(Z)?B.delete(Z):B.add(Z),D(A,B)}fe(()=>(L(c()),o(y)),()=>{c()&&!o(y)?(D(y,!0),g()):!c()&&o(y)&&(D(y,!1),f.reset(),v.reset(),w.reset())}),At(),rt();var ce=Se(),ee=me(ce);{var De=Z=>{{let B=ct(()=>(n(),r(),u(),m(()=>n().saving||r().saving||u().authorizing)));cr(Z,{get open(){return c()},labelledBy:"system-settings-title",modalClass:"system-settings-modal",bodyClass:"system-settings-body",layerClass:"system-settings-layer",closeLabel:"Close system settings",get closeDisabled(){return o(B)},$$events:{close:()=>void x()},children:(ye,Me)=>{var Re=A_(),We=me(Re),Ae=b(We),tt=C(b(Ae),2),_e=b(tt),te=C(Ae,2),Ee=b(te);{var ge=Ne=>{var se=Lb();k(Ne,se)},Te=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=Rb(),Ue=b(qe);G(()=>X(Ue,(n(),m(()=>n().error)))),k(Fe,qe)},ke=Fe=>{var qe=Bb(),Ue=me(qe),st=C(Ue,2);{var gt=it=>{var Ye=$b(),dn=b(Ye);G(()=>X(dn,(n(),m(()=>n().saveError)))),k(it,Ye)},Je=it=>{var Ye=Se(),dn=me(Ye);{var ht=en=>{var le=zb();k(en,le)},Qt=en=>{var le=Ub();k(en,le)};$(dn,en=>{n(),m(()=>n().dirty)?en(ht):en(Qt,!1)},!0)}k(it,Ye)};$(st,it=>{n(),m(()=>n().saveError)?it(gt):it(Je,!1)})}G(()=>Ue.disabled=(n(),m(()=>n().saving))),rr(Ue,()=>n().value,it=>k0(f,m(n).value=it,m(n))),J("input",Ue,N),k(Fe,qe)};$(P,Fe=>{n(),m(()=>n().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Ee,Ne=>{n(),m(()=>n().loading)?Ne(ge):Ne(Te,!1)})}var $e=C(We,2),ue=b($e),ve=C(b(ue),2),xe=b(ve),we=b(xe),be=C(ue,2),Oe=b(be);{var Ce=Ne=>{var se=jb();k(Ne,se)},Le=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=qb(),Ue=me(qe),st=b(Ue),gt=C(Ue,2),Je=b(gt);G(()=>{X(st,(u(),m(()=>u().error))),Je.disabled=(u(),m(()=>u().loading||u().authorizing))}),J("click",Je,O),k(Fe,qe)},ke=Fe=>{var qe=Se(),Ue=me(qe);{var st=Je=>{var it=Vb(),Ye=me(it),dn=C(b(Ye)),ht=b(dn),Qt=C(Ye,2);{var en=fn=>{var Xn=Hb(),wt=b(Xn);G(Dn=>X(wt,`Current token expires ${Dn??""}.`),[()=>(u(),m(()=>H(u().expiresAt)??"soon"))]),k(fn,Xn)},le=fn=>{var Xn=Wb();k(fn,Xn)};$(Qt,fn=>{u(),m(()=>u().expiresAt)?fn(en):fn(le,!1)})}G(()=>X(ht,(u(),m(()=>u().userEmail)))),k(Je,it)},gt=Je=>{var it=Gb();k(Je,it)};$(Ue,Je=>{u(),m(()=>u().authorized)?Je(st):Je(gt,!1)},!0)}k(Fe,qe)};$(P,Fe=>{u(),m(()=>u().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Oe,Ne=>{u(),m(()=>u().loading)?Ne(Ce):Ne(Le,!1)})}var Be=C(Oe,2);mt(Be,5,()=>(u(),m(()=>u().services)),jn,(Ne,se)=>{var P=Kb(),re=b(P);G(()=>X(re,o(se))),k(Ne,P)});var Ve=C($e,2),je=b(Ve),Pe=C(b(je),2),ut=b(Pe),Rt=b(ut),qt=C(je,2),Zt=b(qt);{var $t=Ne=>{var se=Zb();k(Ne,se)},Yt=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=Yb(),Ue=me(qe),st=b(Ue),gt=C(Ue,2),Je=b(gt);G(()=>{X(st,(a(),m(()=>a().error))),Je.disabled=(a(),m(()=>a().loading||a().authorizing))}),J("click",Je,he),k(Fe,qe)},ke=Fe=>{var qe=Se(),Ue=me(qe);{var st=Je=>{var it=Jb(),Ye=me(it),dn=C(b(Ye)),ht=b(dn);G(()=>X(ht,(a(),m(()=>a().userEmail)))),k(Je,it)},gt=Je=>{var it=Xb();k(Je,it)};$(Ue,Je=>{a(),m(()=>a().authorized)?Je(st):Je(gt,!1)},!0)}k(Fe,qe)};$(P,Fe=>{a(),m(()=>a().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Zt,Ne=>{a(),m(()=>a().loading)?Ne($t):Ne(Yt,!1)})}var nt=C(Ve,2),Ge=b(nt),Ct=C(b(Ge),2),Jt=b(Ct);{var de=Ne=>{var se=Qb();G(()=>se.disabled=(s(),m(()=>s().saving))),J("click",se,()=>p.remove()),k(Ne,se)},Ie=Ne=>{var se=e_(),P=b(se);G(()=>{se.disabled=(s(),o(T),o(R),m(()=>s().saving||!o(T)||!o(R))),X(P,(s(),m(()=>s().saving?"Saving...":"Connect")))}),J("click",se,K),k(Ne,se)};$(Jt,Ne=>{s(),m(()=>s().configured)?Ne(de):Ne(Ie,!1)})}var vt=C(Ge,2),Mt=b(vt);{var Tt=Ne=>{var se=t_();k(Ne,se)},zt=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=n_(),Ue=C(b(qe)),st=b(Ue);G(()=>X(st,(s(),m(()=>s().email)))),k(Fe,qe)},ke=Fe=>{var qe=s_(),Ue=b(qe),st=C(b(Ue)),gt=C(Ue,2),Je=C(b(gt)),it=b(Je),Ye=C(it,2),dn=b(Ye);{var ht=wt=>{var Dn=r_();k(wt,Dn)},Qt=wt=>{var Dn=u_();k(wt,Dn)};$(dn,wt=>{o(F)?wt(ht):wt(Qt,!1)})}var en=C(gt,2),le=C(b(en)),fn=C(en,4);{var Xn=wt=>{var Dn=a_(),ms=b(Dn);G(()=>X(ms,(s(),m(()=>s().error)))),k(wt,Dn)};$(fn,wt=>{s(),m(()=>s().error)&&wt(Xn)})}G(()=>{oe(it,"type",o(F)?"text":"password"),oe(Ye,"title",o(F)?"Hide password":"Show password")}),rr(st,()=>o(T),wt=>D(T,wt)),rr(it,()=>o(R),wt=>D(R,wt)),J("click",Ye,()=>D(F,!o(F))),rr(le,()=>o(z),wt=>D(z,wt)),k(Fe,qe)};$(P,Fe=>{s(),m(()=>s().configured)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(Mt,Ne=>{s(),m(()=>s().loading)?Ne(Tt):Ne(zt,!1)})}var Yr=C(nt,2),dr=b(Yr),ze=b(dr),ot=C(b(ze),2);{var Pt=Ne=>{var se=o_(),P=b(se);G(re=>X(P,`Last updated ${re??""}`),[()=>(r(),m(()=>H(r().updatedAt)??""))]),k(Ne,se)},_t=Ne=>{var se=i_();k(Ne,se)};$(ot,Ne=>{r(),m(()=>r().updatedAt)?Ne(Pt):Ne(_t,!1)})}var Xt=C(ze,2),Ut=b(Xt),yt=b(Ut),vn=C(dr,2),fr=b(vn);{var Tr=Ne=>{var se=l_();k(Ne,se)},Jr=Ne=>{var se=Se(),P=me(se);{var re=Fe=>{var qe=c_(),Ue=b(qe);G(()=>X(Ue,(r(),m(()=>r().error)))),k(Fe,qe)},ke=Fe=>{var qe=S_(),Ue=me(qe);{var st=ht=>{var Qt=d_();k(ht,Qt)},gt=ht=>{var Qt=k_();mt(Qt,5,()=>(r(),m(()=>r().servers)),jn,(en,le)=>{var fn=x_(),Xn=b(fn),wt=b(Xn),Dn=b(wt),ms=b(Dn),_d=C(Dn,2),vs=b(_d);let Xo;var yd=b(vs),xd=C(vs,2);{var kd=xt=>{var pn=f_(),Tn=C(me(pn),2),tn=b(Tn);G(()=>{oe(Tn,"title",(o(le),m(()=>o(le).module))),X(tn,`Module: ${o(le),m(()=>o(le).module)??""}`)}),k(xt,pn)},Ed=xt=>{var pn=Se(),Tn=me(pn);{var tn=Fn=>{var Qr=p_(),Fr=C(me(Qr),2),Ht=b(Fr);G((Wt,zn)=>{oe(Fr,"title",Wt),X(Ht,`Command: ${zn??""}`)},[()=>(o(le),m(()=>o(le).command.join(" "))),()=>(o(le),m(()=>o(le).command.join(" ")))]),k(Fn,Qr)};$(Tn,Fn=>{o(le),m(()=>o(le).command?.length)&&Fn(tn)},!0)}k(xt,pn)};$(xd,xt=>{o(le),m(()=>o(le).module)?xt(kd):xt(Ed,!1)})}var wd=C(wt,2),Qo=b(wd),ga=b(Qo),Sd=C(ga,2),Ad=b(Sd),ba=C(Qo,2);let ei;var gs=b(ba),bs=C(ba,2);let ti;var _s=b(bs),Cd=C(Xn,2),ni=b(Cd);{var Dd=xt=>{var pn=m_(),Tn=b(pn),tn=C(b(Tn),2),Fn=b(tn);Fn.value=Fn.__value="";var Qr=C(Fn);mt(Qr,1,()=>E,jn,(Ht,Wt)=>{var zn=h_(),nn=b(zn),eu={};G(()=>{X(nn,(o(Wt),m(()=>o(Wt).label))),eu!==(eu=(o(Wt),m(()=>o(Wt).id)))&&(zn.value=(zn.__value=(o(Wt),m(()=>o(Wt).id)))??"")}),k(Ht,zn)});var Fr;or(tn),G(()=>{tn.disabled=(r(),o(le),m(()=>r().pending[o(le).id]||r().saving)),Fr!==(Fr=(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??"")))&&(tn.value=(tn.__value=(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??"")))??"",Rn(tn,(o(le),m(()=>o(le).env?.HOST_PROFILE_ID??""))))}),J("change",tn,Ht=>I(o(le).id,Ht.target.value)),k(xt,pn)};$(ni,xt=>{o(le),m(()=>o(le).id==="shell-control")&&xt(Dd)})}var Xr=C(ni,2);let ri;var Td=b(Xr),Fd=b(Td),Md=C(Xr,2);{var Pd=xt=>{var pn=y_(),Tn=b(pn);{var tn=Ht=>{var Wt=g_();mt(Wt,5,()=>(o(le),m(()=>o(le).tools)),jn,(zn,nn)=>{var eu=v_(),ui=b(eu),ai=b(ui),Id=b(ai),Nd=C(ai,2),Od=b(Nd),Ld=C(ui,2),_a=b(Ld),Rd=C(_a,2),$d=b(Rd);G(()=>{oe(eu,"data-disabled",(o(nn),m(()=>!o(nn).enabled))),X(Id,(o(nn),m(()=>o(nn).name))),X(Od,(o(nn),m(()=>o(nn).qualified_name))),Vt(_a,(o(nn),m(()=>o(nn).enabled))),_a.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),X($d,(o(nn),m(()=>o(nn).enabled?"Enabled":"Disabled")))}),J("change",_a,zd=>ie(o(le).id,o(nn).name,zd.target.checked)),k(zn,eu)}),k(Ht,Wt)},Fn=Ht=>{var Wt=b_();k(Ht,Wt)};$(Tn,Ht=>{o(le),m(()=>o(le).tools.length)?Ht(tn):Ht(Fn,!1)})}var Qr=C(Tn,2);{var Fr=Ht=>{var Wt=__(),zn=b(Wt);G(nn=>X(zn,`Disabled tool ids: ${nn??""}`),[()=>(o(le),m(()=>o(le).disabled_tools.join(", ")))]),k(Ht,Wt)};$(Qr,Ht=>{o(le),m(()=>o(le).disabled_tools.length)&&Ht(Fr)})}G(()=>oe(pn,"id",`tools-${o(le),m(()=>o(le).id)??""}`)),k(xt,pn)};$(Md,xt=>{o(A),o(le),m(()=>o(A).has(o(le).id))&&xt(Pd)})}G((xt,pn,Tn,tn,Fn)=>{oe(fn,"data-connected",(o(le),m(()=>o(le).connected))),oe(fn,"data-pending",(r(),o(le),m(()=>r().pending[o(le).id]?"true":"false"))),oe(fn,"data-dirty",(r(),o(le),m(()=>r().pendingChanges[o(le).id]?"true":"false"))),X(ms,(o(le),m(()=>o(le).id))),Xo=St(vs,1,"",null,Xo,xt),X(yd,(o(le),m(()=>o(le).connected?"Connected":"Offline"))),Vt(ga,(o(le),m(()=>o(le).enabled))),ga.disabled=(r(),o(le),m(()=>r().pending[o(le).id]||r().saving)),X(Ad,(o(le),m(()=>o(le).enabled?"Running":"Stopped"))),ei=St(ba,1,"toggle frontend-toggle",null,ei,pn),oe(ba,"title",(o(le),m(()=>o(le).enabled?"Enable for main web frontend":"Server must be running"))),Vt(gs,(o(le),m(()=>o(le).frontend_enabled??!0))),gs.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),ti=St(bs,1,"toggle kiosk-toggle",null,ti,Tn),oe(bs,"title",(o(le),m(()=>o(le).enabled?"Enable for kiosk voice assistant":"Server must be running"))),Vt(_s,(o(le),m(()=>o(le).kiosk_enabled??!1))),_s.disabled=(o(le),r(),m(()=>!o(le).enabled||r().pending[o(le).id]||r().saving)),ri=St(Xr,1,"tools-toggle",null,ri,tn),oe(Xr,"aria-expanded",Fn),oe(Xr,"aria-controls",`tools-${o(le),m(()=>o(le).id)??""}`),X(Fd,`${o(le),m(()=>o(le).tool_count)??""} tool${o(le),m(()=>o(le).tool_count===1?"":"s")??""} available`)},[()=>({connected:o(le).connected,offline:!o(le).connected}),()=>({"toggle-disabled":!o(le).enabled}),()=>({"toggle-disabled":!o(le).enabled}),()=>({open:o(A).has(o(le).id)}),()=>(o(A),o(le),m(()=>o(A).has(o(le).id)))]),J("change",ga,xt=>Q(o(le).id,xt.target.checked)),J("change",gs,xt=>ae(o(le).id,xt.target.checked)),J("change",_s,xt=>q(o(le).id,xt.target.checked)),J("click",Xr,()=>j(o(le).id)),k(en,fn)}),k(ht,Qt)};$(Ue,ht=>{r(),m(()=>!r().servers.length)?ht(st):ht(gt,!1)})}var Je=C(Ue,2);{var it=ht=>{var Qt=E_(),en=b(Qt);G(()=>X(en,(r(),m(()=>r().saveError)))),k(ht,Qt)};$(Je,ht=>{r(),m(()=>r().saveError)&&ht(it)})}var Ye=C(Je,2);{var dn=ht=>{var Qt=w_();k(ht,Qt)};$(Ye,ht=>{r(),m(()=>r().dirty)&&ht(dn)})}k(Fe,qe)};$(P,Fe=>{r(),m(()=>r().error)?Fe(re):Fe(ke,!1)},!0)}k(Ne,se)};$(fr,Ne=>{r(),m(()=>r().loading)?Ne(Tr):Ne(Jr,!1)})}G(()=>{_e.disabled=(n(),r(),m(()=>!n().dirty||n().saving||r().saving)),xe.disabled=(u(),m(()=>u().loading||u().authorizing)),X(we,(u(),m(()=>u().authorizing?"Authorizing…":u().authorized?"Reconnect Google Services":"Connect Google Services"))),ut.disabled=(a(),m(()=>a().loading||a().authorizing)),X(Rt,(a(),m(()=>a().authorizing?"Authorizing…":a().authorized?"Reconnect Spotify":"Connect Spotify"))),Ut.disabled=(r(),m(()=>r().refreshing||r().saving||r().dirty)),X(yt,(r(),m(()=>r().refreshing?"Refreshing…":"Refresh")))}),J("click",_e,()=>f.reset()),J("click",xe,()=>void V()),J("click",ut,()=>void pe()),J("click",Ut,W),k(ye,Re)},$$slots:{default:!0,heading:(ye,Me)=>{var Re=C_();k(ye,Re)},footer:(ye,Me)=>{var Re=P_(),We=b(Re);{var Ae=_e=>{var te=D_();k(_e,te)},tt=_e=>{var te=Se(),Ee=me(te);{var ge=$e=>{var ue=T_();k($e,ue)},Te=$e=>{var ue=Se(),ve=me(ue);{var xe=be=>{var Oe=F_();k(be,Oe)},we=be=>{var Oe=M_();k(be,Oe)};$(ve,be=>{n(),r(),m(()=>n().dirty||r().dirty)?be(xe):be(we,!1)},!0)}k($e,ue)};$(Ee,$e=>{n(),r(),m(()=>n().saving||r().saving)?$e(ge):$e(Te,!1)},!0)}k(_e,te)};$(We,_e=>{r(),n(),m(()=>r().saveError||n().saveError)?_e(Ae):_e(tt,!1)})}k(ye,Re)}}})}};$(ee,Z=>{c()&&Z(De)})}k(e,ce),et(),l()}async function N_(){const e=await fetch(`${jt}/api/kiosk/stt-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk STT settings: ${e.statusText}`);return e.json()}async function O_(e){const t=await fetch(`${jt}/api/kiosk/stt-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk STT settings: ${t.statusText}`);return t.json()}async function L_(){const e=await fetch(`${jt}/api/kiosk/stt-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk STT settings: ${e.statusText}`);return e.json()}async function R_(){const e=await fetch(`${jt}/api/kiosk/tts-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk TTS settings: ${e.statusText}`);return e.json()}async function $_(e){const t=await fetch(`${jt}/api/kiosk/tts-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk TTS settings: ${t.statusText}`);return t.json()}async function z_(){const e=await fetch(`${jt}/api/kiosk/tts-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk TTS settings: ${e.statusText}`);return e.json()}async function U_(){const e=await fetch(`${jt}/api/kiosk/tts-voices`);if(!e.ok)throw new Error(`Failed to fetch TTS voices: ${e.statusText}`);return e.json()}async function B_(){const e=await fetch(`${jt}/api/kiosk/ui/settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk UI settings: ${e.statusText}`);return e.json()}async function j_(e){const t=await fetch(`${jt}/api/kiosk/ui/settings`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk UI settings: ${t.statusText}`);return t.json()}async function q_(){const e=await fetch(`${jt}/api/kiosk/llm-settings`);if(!e.ok)throw new Error(`Failed to fetch kiosk LLM settings: ${e.statusText}`);return e.json()}async function H_(e){const t=await fetch(`${jt}/api/kiosk/llm-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk LLM settings: ${t.statusText}`);return t.json()}async function W_(){const e=await fetch(`${jt}/api/kiosk/llm-settings/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk LLM settings: ${e.statusText}`);return e.json()}const V_={eot_threshold:.7,eot_timeout_ms:5e3,eager_eot_threshold:null,keyterms:[]},Ta={enabled:!0,provider:"deepgram",model:"aura-asteria-en",sample_rate:16e3},G_={idle_return_delay_ms:1e4},K_={llm_model:"openai/gpt-4o-mini",system_prompt:"You are a helpful voice assistant who replies succinctly.",temperature:.7,max_tokens:500,conversation_mode:!1,conversation_timeout_seconds:10},Z_={...V_,enabled:Ta.enabled,provider:Ta.provider,tts_model:Ta.model,sample_rate:Ta.sample_rate,...G_,...K_};function Y_(e){return JSON.parse(JSON.stringify(e))}function gd(){return Y_(Z_)}function J_(){const e=kt(gd());let t=!1,n=!1;async function r(){if(n)return at(e);n=!0;try{const[s,i,l,c]=await Promise.all([N_(),R_(),B_(),q_()]),d={...s,enabled:i.enabled,provider:i.provider,tts_model:i.model,sample_rate:i.sample_rate,...l,llm_model:c.model,system_prompt:c.system_prompt,temperature:c.temperature,max_tokens:c.max_tokens,conversation_mode:c.conversation_mode,conversation_timeout_seconds:c.conversation_timeout_seconds};return e.set(d),t=!0,d}catch(s){return console.error("Failed to load kiosk settings:",s),at(e)}finally{n=!1}}async function u(s){try{const i={},l={},c={};s.eot_threshold!==void 0&&(i.eot_threshold=s.eot_threshold),s.eot_timeout_ms!==void 0&&(i.eot_timeout_ms=s.eot_timeout_ms),s.eager_eot_threshold!==void 0&&(i.eager_eot_threshold=s.eager_eot_threshold),s.keyterms!==void 0&&(i.keyterms=s.keyterms),s.enabled!==void 0&&(l.enabled=s.enabled),s.provider!==void 0&&(l.provider=s.provider),s.tts_model!==void 0&&(l.model=s.tts_model),s.sample_rate!==void 0&&(l.sample_rate=s.sample_rate),s.idle_return_delay_ms!==void 0&&(c.idle_return_delay_ms=s.idle_return_delay_ms);const d={};s.llm_model!==void 0&&(d.model=s.llm_model),s.system_prompt!==void 0&&(d.system_prompt=s.system_prompt),s.temperature!==void 0&&(d.temperature=s.temperature),s.max_tokens!==void 0&&(d.max_tokens=s.max_tokens),s.conversation_mode!==void 0&&(d.conversation_mode=s.conversation_mode),s.conversation_timeout_seconds!==void 0&&(d.conversation_timeout_seconds=s.conversation_timeout_seconds);const f=[];return Object.keys(i).length>0&&f.push(O_(i)),Object.keys(l).length>0&&f.push($_(l)),Object.keys(c).length>0&&f.push(j_(c)),Object.keys(d).length>0&&f.push(H_(d)),await Promise.all(f),await r()}catch(i){throw console.error("Failed to save kiosk settings:",i),i}}async function a(){try{const[s,i,l]=await Promise.all([L_(),z_(),W_()]),c=at(e),d={...s,enabled:i.enabled,provider:i.provider,tts_model:i.model,sample_rate:i.sample_rate,idle_return_delay_ms:c.idle_return_delay_ms,llm_model:l.model,system_prompt:l.system_prompt,temperature:l.temperature,max_tokens:l.max_tokens,conversation_mode:l.conversation_mode,conversation_timeout_seconds:l.conversation_timeout_seconds};return e.set(d),d}catch(s){throw console.error("Failed to reset kiosk settings:",s),s}}return{subscribe:e.subscribe,load:r,save:u,reset:a,get isLoaded(){return t},get current(){return at(e)}}}const Qs=J_();var X_=M('

                              Loading settings…

                              '),Q_=M('
                              Eager EOT Threshold
                              0.3 (eager) 0.9 (conservative)
                              '),e3=M(""),t3=M('
                              '),n3=M(""),r3=M(`
                              Speech Recognition Deepgram Flux end-of-turn detection settings.
                              EOT Threshold
                              0.5 (fast) 0.9 (reliable)
                              EOT Timeout
                              500ms 10s
                              Advanced Optional fine-tuning options.
                              Display Kiosk screen behavior settings.
                              Return to Clock
                              1s 60s
                              Text-to-Speech Voice synthesis settings for assistant responses.
                              Language Model Configure the AI model and behavior.
                              Temperature
                              0 (focused) 2 (creative)
                              Max Tokens
                              50 (short) 2000 (long)
                              Keyterms Words to boost recognition (one per line, up to 100).
                              `),u3=M('

                              Kiosk settings

                              Configure the voice assistant kiosk.

                              ',1),a3=M(''),s3=M(' '),o3=M('Saving changes…'),i3=M('Pending changes; closing this modal will save.'),l3=M('Changes save when you close this modal.'),c3=M('
                              ');function d3(e,t){Qe(t,!1);const n=()=>Xe(wr,"$modelStore",r),[r,u]=Gn();let a=U([]),s=ne(t,"open",8,!1);const i=Et();let l=U(gd()),c=U(!1),d=U(!1),f=U(!0),h=U(null),v=U(!1),p=!1;async function w(){D(f,!0);try{const[R,z]=await Promise.all([Qs.load(),U_(),wr.loadModels()]);D(l,{...R}),D(a,z)}catch{D(h,"Failed to load settings")}finally{D(f,!1)}}function y(){p||o(d)||(p=!0,(async()=>(await A()&&i("close"),p=!1))())}function _(){D(c,!0),D(h,null)}async function A(){if(!o(c))return!0;D(d,!0),D(h,null);try{const R=await Qs.save(o(l));return D(l,{...R}),D(c,!1),!0}catch(R){const z=R instanceof Error?R.message:"Failed to save settings.";return D(h,z),!1}finally{D(d,!1)}}async function E(){D(d,!0);try{const R=await Qs.reset();D(l,{...R}),D(c,!1),D(h,null)}catch{D(h,"Failed to reset settings")}finally{D(d,!1)}}function g(R,z,F){return`${(R-z)/(F-z)*100}%`}fe(()=>(L(s()),o(v),o(c),o(d)),()=>{s()&&!o(v)?(D(v,!0),D(c,!1),D(d,!1),D(h,null),w()):!s()&&o(v)&&(D(v,!1),o(c)&&!o(d)&&A())}),At(),rt();var S=Se(),x=me(S);{var T=R=>{cr(R,{get open(){return s()},labelledBy:"kiosk-settings-title",closeLabel:"Close kiosk settings",$$events:{close:()=>void y()},children:(z,F)=>{var I=Se(),K=me(I);{var N=q=>{var ae=X_();k(q,ae)},Q=q=>{var ae=r3(),ie=b(ae),Y=C(b(ie),2),W=b(Y),O=b(W),V=b(O),he=C(b(V),2),pe=b(he),H=C(V,2),j=C(W,2),ce=b(j),ee=b(ce),De=C(b(ee),2),Z=b(De),B=C(ee,2),ye=C(ie,2),Me=C(b(ye),2),Re=b(Me),We=C(Me,2);{var Ae=ze=>{var ot=Q_(),Pt=b(ot),_t=C(b(Pt),2),Xt=b(_t),Ut=C(Pt,2);G((yt,vn)=>{X(Xt,yt),Ot(Ut,(o(l),m(()=>o(l).eager_eot_threshold??.5))),Ut.disabled=o(d),nr(Ut,`--slider-fill: ${vn??""}`)},[()=>(o(l),m(()=>o(l).eager_eot_threshold?.toFixed(2)??"—")),()=>(o(l),m(()=>g(o(l).eager_eot_threshold??.5,.3,.9)))]),J("input",Ut,yt=>{D(l,{...o(l),eager_eot_threshold:parseFloat(yt.target.value)}),_()}),k(ze,ot)};$(We,ze=>{o(l),m(()=>o(l).eager_eot_threshold!==null)&&ze(Ae)})}var tt=C(ye,2),_e=C(b(tt),2),te=b(_e),Ee=b(te),ge=b(Ee),Te=C(b(ge),2),$e=b(Te),ue=C(ge,2),ve=C(tt,2),xe=C(b(ve),2),we=b(xe),be=b(we),Oe=C(we,2);{var Ce=ze=>{var ot=t3(),Pt=b(ot),_t=C(b(Pt),2);mt(_t,5,()=>o(a),jn,(Ut,yt)=>{var vn=e3(),fr=b(vn),Tr={};G(Jr=>{X(fr,Jr),Tr!==(Tr=o(yt))&&(vn.value=(vn.__value=o(yt))??"")},[()=>(o(yt),m(()=>o(yt).replace("aura-","").replace("-en","")))]),k(Ut,vn)});var Xt;or(_t),G(()=>{_t.disabled=o(d),Xt!==(Xt=(o(l),m(()=>o(l).tts_model)))&&(_t.value=(_t.__value=(o(l),m(()=>o(l).tts_model)))??"",Rn(_t,(o(l),m(()=>o(l).tts_model))))}),J("change",_t,Ut=>{D(l,{...o(l),tts_model:Ut.target.value}),_()}),k(ze,ot)};$(Oe,ze=>{o(l),m(()=>o(l).enabled)&&ze(Ce)})}var Le=C(ve,2),Be=C(b(Le),2),Ve=b(Be),je=b(Ve),Pe=C(b(je),2);mt(Pe,5,()=>(n(),m(()=>n().models)),ze=>ze.id,(ze,ot)=>{var Pt=n3(),_t=b(Pt),Xt={};G(()=>{X(_t,(o(ot),m(()=>o(ot).name??o(ot).id))),Xt!==(Xt=(o(ot),m(()=>o(ot).id)))&&(Pt.value=(Pt.__value=(o(ot),m(()=>o(ot).id)))??"")}),k(ze,Pt)});var ut;or(Pe);var Rt=C(Ve,2),qt=b(Rt),Zt=C(b(qt),2),$t=C(Rt,2),Yt=b($t),nt=b(Yt),Ge=C(b(nt),2),Ct=b(Ge),Jt=C(nt,2),de=C($t,2),Ie=b(de),vt=b(Ie),Mt=C(b(vt),2),Tt=b(Mt),zt=C(vt,2),Yr=C(Le,2),dr=C(b(Yr),2);G((ze,ot,Pt,_t,Xt,Ut,yt,vn,fr)=>{X(pe,ze),Ot(H,(o(l),m(()=>o(l).eot_threshold))),H.disabled=o(d),nr(H,`--slider-fill: ${ot??""}`),X(Z,`${o(l),m(()=>o(l).eot_timeout_ms)??""}ms`),Ot(B,(o(l),m(()=>o(l).eot_timeout_ms))),B.disabled=o(d),nr(B,`--slider-fill: ${Pt??""}`),Vt(Re,(o(l),m(()=>o(l).eager_eot_threshold!==null))),Re.disabled=o(d),X($e,`${_t??""}s`),Ot(ue,(o(l),m(()=>o(l).idle_return_delay_ms))),ue.disabled=o(d),nr(ue,`--slider-fill: ${Xt??""}`),Vt(be,(o(l),m(()=>o(l).enabled))),be.disabled=o(d),Pe.disabled=o(d),ut!==(ut=(o(l),m(()=>o(l).llm_model)))&&(Pe.value=(Pe.__value=(o(l),m(()=>o(l).llm_model)))??"",Rn(Pe,(o(l),m(()=>o(l).llm_model)))),Zt.disabled=o(d),Ot(Zt,(o(l),m(()=>o(l).system_prompt??""))),X(Ct,Ut),Ot(Jt,(o(l),m(()=>o(l).temperature))),Jt.disabled=o(d),nr(Jt,`--slider-fill: ${yt??""}`),X(Tt,(o(l),m(()=>o(l).max_tokens))),Ot(zt,(o(l),m(()=>o(l).max_tokens))),zt.disabled=o(d),nr(zt,`--slider-fill: ${vn??""}`),dr.disabled=o(d),Ot(dr,fr)},[()=>(o(l),m(()=>o(l).eot_threshold.toFixed(2))),()=>(o(l),m(()=>g(o(l).eot_threshold,.5,.9))),()=>(o(l),m(()=>g(o(l).eot_timeout_ms,500,1e4))),()=>(o(l),m(()=>(o(l).idle_return_delay_ms/1e3).toFixed(0))),()=>(o(l),m(()=>g(o(l).idle_return_delay_ms,1e3,6e4))),()=>(o(l),m(()=>o(l).temperature.toFixed(1))),()=>(o(l),m(()=>g(o(l).temperature,0,2))),()=>(o(l),m(()=>g(o(l).max_tokens,50,2e3))),()=>(o(l),m(()=>o(l).keyterms.join(` -`)))]),J("input",H,ze=>{D(l,{...o(l),eot_threshold:parseFloat(ze.target.value)}),_()}),J("input",B,ze=>{D(l,{...o(l),eot_timeout_ms:parseInt(ze.target.value,10)}),_()}),J("change",Re,ze=>{const ot=ze.target.checked;D(l,{...o(l),eager_eot_threshold:ot?.5:null}),_()}),J("input",ue,ze=>{D(l,{...o(l),idle_return_delay_ms:parseInt(ze.target.value,10)}),_()}),J("change",be,ze=>{D(l,{...o(l),enabled:ze.target.checked}),_()}),J("change",Pe,ze=>{D(l,{...o(l),llm_model:ze.target.value}),_()}),J("input",Zt,ze=>{D(l,{...o(l),system_prompt:ze.target.value||null}),_()}),J("input",Jt,ze=>{D(l,{...o(l),temperature:parseFloat(ze.target.value)}),_()}),J("input",zt,ze=>{D(l,{...o(l),max_tokens:parseInt(ze.target.value,10)}),_()}),J("input",dr,ze=>{const Pt=ze.target.value.split(` -`).map(_t=>_t.trim()).filter(_t=>_t.length>0).slice(0,100);D(l,{...o(l),keyterms:Pt}),_()}),k(q,ae)};$(K,q=>{o(f)?q(N):q(Q,!1)})}k(z,I)},$$slots:{default:!0,heading:(z,F)=>{var I=u3();k(z,I)},actions:(z,F)=>{var I=a3();G(()=>I.disabled=o(d)||o(f)),J("click",I,E),k(z,I)},footer:(z,F)=>{var I=c3(),K=b(I);{var N=q=>{var ae=s3(),ie=b(ae);G(()=>X(ie,o(h))),k(q,ae)},Q=q=>{var ae=Se(),ie=me(ae);{var Y=O=>{var V=o3();k(O,V)},W=O=>{var V=Se(),he=me(V);{var pe=j=>{var ce=i3();k(j,ce)},H=j=>{var ce=l3();k(j,ce)};$(he,j=>{o(c)?j(pe):j(H,!1)},!0)}k(O,V)};$(ie,O=>{o(d)?O(Y):O(W,!1)},!0)}k(q,ae)};$(K,q=>{o(h)?q(N):q(Q,!1)})}k(z,I)}}})};$(x,R=>{s()&&R(T)})}k(e,S),et(),u()}var f3=M('
                              ');function xo(e,t){Qe(t,!1);let n=ne(t,"title",8),r=ne(t,"startOpen",8,!1),u=ne(t,"forceOpen",8,!1),a=U(r()),s=U(!1);const i=c(n());function l(){u()||D(a,!o(a))}function c(A){const E=A.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"section",g=Math.abs(Array.from(A).reduce((S,x)=>S*31+x.charCodeAt(0),7)).toString(36);return`filter-section-${E}-${g}`}fe(()=>(L(u()),o(a),o(s),L(r())),()=>{u()?(o(a)||D(a,!0),D(s,!0)):o(s)&&(D(a,r()),D(s,!1))}),At(),rt();var d=f3(),f=b(d),h=b(f);let v;var p=b(h),w=b(p),y=C(f,2),_=b(y);Gt(_,t,"default",{}),G(A=>{St(d,1,`filter-section ${o(a)?"expanded":"collapsed"}`,"svelte-10u46cr"),v=St(h,1,"toggle svelte-10u46cr",null,v,A),oe(h,"aria-expanded",o(a)),oe(h,"aria-controls",i),oe(h,"aria-disabled",u()),X(w,n()),oe(y,"id",i),oe(y,"hidden",!o(a))},[()=>({locked:u()})]),J("click",h,l),k(e,d),et()}var p3=M('
                              ');function h3(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U(),i=U(),l=Et();let c=ne(t,"id",8),d=ne(t,"min",8,0),f=ne(t,"max",8,100),h=ne(t,"step",8,1),v=ne(t,"value",24,()=>({min:d(),max:f()})),p=ne(t,"disabled",8,!1),w=ne(t,"ariaLabelMin",8,"Minimum value"),y=ne(t,"ariaLabelMax",8,"Maximum value");const _=6;function A(I,K,N){return!Number.isFinite(I)||IN?N:Number(I.toFixed(_))}function E(I,K,N){const Q=N-K;return!Number.isFinite(Q)||Q<=0?0:(I-K)/Q*100}function g(I,K){const N={min:I,max:K};l("input",N),l("change",N)}function S(I){const K=I.target,N=A(Number(K.value),o(n),o(a));if(N>o(a)){g(o(a),o(a));return}g(N,o(a))}function x(I){const K=I.target,N=A(Number(K.value),o(u),o(r));if(NL(d()),()=>{D(n,Number.isFinite(d())?d():0)}),fe(()=>(L(f()),o(n)),()=>{D(r,Number.isFinite(f())?f():o(n))}),fe(()=>(L(v()),o(n),o(r)),()=>{D(u,A(v()?.min??o(n),o(n),o(r)))}),fe(()=>(L(v()),o(r),o(n)),()=>{D(a,A(v()?.max??o(r),o(n),o(r)))}),fe(()=>(o(u),o(a)),()=>{o(u)>o(a)&&D(u,o(a))}),fe(()=>(o(u),o(n),o(r)),()=>{D(s,E(o(u),o(n),o(r)))}),fe(()=>(o(a),o(n),o(r)),()=>{D(i,E(o(a),o(n),o(r)))}),At(),rt();var T=p3(),R=C(b(T),2),z=C(R,2),F=C(z,2);G(()=>{oe(T,"data-disabled",p()),nr(R,`left: ${o(s)}%; right: ${100-o(i)}%;`),oe(z,"id",c()?`${c()}-min`:void 0),oe(z,"min",o(n)),oe(z,"max",o(a)),oe(z,"step",h()),Ot(z,o(u)),oe(z,"aria-label",w()),z.disabled=p(),oe(F,"id",c()?`${c()}-max`:void 0),oe(F,"min",o(u)),oe(F,"max",o(r)),oe(F,"step",h()),Ot(F,o(a)),oe(F,"aria-label",y()),F.disabled=p()}),J("input",z,S),J("input",F,x),k(e,T),et()}var m3=M('

                              '),v3=M(''),g3=M('
                              ');function lu(e,t){Qe(t,!1);let n=ne(t,"title",8),r=ne(t,"options",24,()=>[]),u=ne(t,"selected",24,()=>[]),a=ne(t,"excluded",24,()=>[]),s=ne(t,"emptyMessage",8,"No options available."),i=ne(t,"variant",8,"default");const l=Et();let c=U([]);function d(p){l("toggle",p)}function f(p){return p.trim().toLowerCase()}function h(p,w){if(p.length===0)return!1;const y=f(w);return y?p.some(_=>f(_)===y):!1}function v(p){return h(u(),p)?"include":h(a(),p)?"exclude":"neutral"}fe(()=>L(r()),()=>{D(c,r().map(p=>{const w=v(p);return{value:p,state:w,pressed:w==="include"?"true":w==="exclude"?"mixed":"false"}}))}),At(),rt();{let p=ct(()=>(L(u()),L(a()),m(()=>u().length+a().length>0)));xo(e,{get title(){return n()},get forceOpen(){return o(p)},children:(w,y)=>{var _=g3(),A=b(_);{var E=S=>{var x=m3(),T=b(x);G(()=>X(T,s())),k(S,x)},g=S=>{var x=Se(),T=me(x);mt(T,1,()=>o(c),({value:R,state:z,pressed:F})=>R,(R,z)=>{let F=()=>o(z).value,I=()=>o(z).state,K=()=>o(z).pressed;var N=v3();let Q;var q=b(N),ae=b(q);G(ie=>{Q=St(N,1,"pill svelte-2m3fny",null,Q,ie),oe(N,"aria-pressed",K()),oe(N,"data-state",I()),X(ae,F())},[()=>({active:I()==="include",exclude:I()==="exclude"})]),J("click",N,()=>d(F())),k(R,N)}),k(S,x)};$(A,S=>{L(r()),m(()=>r().length===0)?S(E):S(g,!1)})}G(()=>oe(_,"data-variant",i())),k(w,_)},$$slots:{default:!0}})}et()}const Jo=1e-9,va=[4e3,16e3,32e3,64e3,128e3,256e3,1e6],aa=va.length,Ju=0;function b3(e){return!Number.isFinite(e)||e<=0?"Any":e>=1e6?"1M":e>=1e3?`${Math.round(e/1e3)}K`:`${e}`}const El=["Any",...va.map(e=>b3(e))],Zr=[0,.1,.2,.5,1,5,10],zr=Zr.length,mu=zr,wl="$10+";function Wu(e){if(e<=0)return"FREE";const t=Math.abs(e),n=t>=10||t>=1?0:t>=.1?1:t>=.01?2:3;return`$${e.toFixed(n).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")}`}const eo=Zr.map(e=>Wu(e));function ju(e,t,n){return!Number.isFinite(e)||en?n:Math.round(e)}function bd(e){let t=0,n=Number.POSITIVE_INFINITY;for(let r=0;rMath.abs(n-e)<=Jo);return t>=0?t:bd(e)}function x3(e){if(e===null)return mu;const t=Zr.findIndex(n=>Math.abs(n-e)<=Jo);return t>=0?t:bd(e)}function k3(e){if(e===null||e<=0)return Ju;for(let t=0;t=mu)return null;const t=Math.min(Math.max(e,0),zr-1);return Zr[t]}function A3(e){if(!e)return 0;let t=0;e.search.trim()&&(t+=1);const n=r=>{t+=r.include.length+r.exclude.length};return n(e.inputModalities),n(e.outputModalities),n(e.series),n(e.providers),n(e.supportedParameters),n(e.moderation),e.minContext!==null&&(t+=1),e.minPromptPrice!==null&&(t+=1),e.maxPromptPrice!==null&&(t+=1),t}var C3=M('

                              No context metadata available.

                              '),D3=M('

                              '),T3=M(' '),F3=M('
                              Minimum tokens
                              '),M3=M('

                              No pricing metadata available.

                              '),P3=M('

                              '),I3=M(' '),N3=M('
                              '),O3=M('
                              Prompt price (per 1M tokens)
                              '),L3=M('');function R3(e,t){Qe(t,!1);const n=()=>Xe(i,"$facets",a),r=()=>Xe(l,"$filters",a),u=()=>Xe(E,"$activeFilters",a),[a,s]=Gn(),{facets:i,filters:l,toggleInputModality:c,toggleOutputModality:d,toggleSeries:f,toggleProvider:h,toggleSupportedParameter:v,toggleModeration:p,setMinContext:w,setMinPromptPrice:y,setMaxPromptPrice:_,resetFilters:A,activeFilters:E}=wr,g="context-length-slider",S="prompt-price-slider";let x=U(),T=U(null),R=U(),z=U(0),F=U(""),I=U(null),K=U(!1),N=U(0),Q=U([]),q=U(!1),ae=U({min:0,max:0}),ie=U(""),Y=U([]);function W(_e){if(o(K)){w(null);return}const te=ju(_e,Ju,aa);w(E3(te))}function O(_e){if(o(q)){y(null),_(null);return}const te=_e.detail,Ee=ju(te.min,0,zr-1),ge=ju(te.max,0,mu);y(w3(Ee)),_(S3(ge))}fe(()=>n(),()=>{D(T,n())}),fe(()=>r(),()=>{D(x,r())}),fe(()=>u(),()=>{D(R,u())}),fe(()=>o(x),()=>{D(z,A3(o(x)))}),fe(()=>o(z),()=>{D(F,o(z)>0?`${o(z)} active filter${o(z)===1?"":"s"}`:"All models shown.")}),fe(()=>(o(T),o(K),o(x),El),()=>{const _e=o(T)?.maxContext??null;D(I,_e),D(K,_e===null),D(N,o(K)?Ju:k3(o(x)?.minContext??null)),D(Q,o(K)?[]:El)}),fe(()=>o(T),()=>{const _e=o(T)?.maxPromptPrice??null;D(q,_e===null)}),fe(()=>(o(q),o(x),zr),()=>{D(ae,(()=>{if(o(q))return{min:0,max:mu};const _e=y3(o(x)?.minPromptPrice??null),te=x3(o(x)?.maxPromptPrice??null),Ee=ju(_e,0,zr-1),ge=ju(te,0,mu);return Ee>ge?{min:ge,max:ge}:{min:Ee,max:ge}})())}),fe(()=>(o(x),wl),()=>{D(ie,(()=>{const _e=o(x)?.minPromptPrice,te=o(x)?.maxPromptPrice,Ee=_e===null?eo[0]:Wu(_e),ge=te===null?wl:Wu(te);return`${Ee} – ${ge}`})())}),fe(()=>(o(q),eo),()=>{D(Y,o(q)?[]:eo)}),At(),rt();var V=L3(),he=b(V),pe=b(he),H=C(b(pe),2);let j;var ce=b(H),ee=C(pe,2),De=C(he,2),Z=b(De);{let _e=ct(()=>(o(T),m(()=>o(T)?.inputModalities??[]))),te=ct(()=>(o(x),m(()=>o(x)?.inputModalities?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.inputModalities?.exclude??[])));lu(Z,{title:"Input modalities",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No modality data available.",$$events:{toggle:ge=>c(ge.detail)}})}var B=C(Z,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.outputModalities??[]))),te=ct(()=>(o(x),m(()=>o(x)?.outputModalities?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.outputModalities?.exclude??[])));lu(B,{title:"Output modalities",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No modality data available.",$$events:{toggle:ge=>d(ge.detail)}})}var ye=C(B,2);{let _e=ct(()=>(o(x),m(()=>o(x)?.minContext!==null)));xo(ye,{title:"Context length",get forceOpen(){return o(_e)},children:(te,Ee)=>{var ge=Se(),Te=me(ge);{var $e=ve=>{var xe=Se(),we=me(xe);{var be=Ce=>{var Le=C3();k(Ce,Le)},Oe=Ce=>{var Le=D3(),Be=b(Le);G(Ve=>X(Be,`All models offer ${Ve??""} context.`),[()=>(L(xa),o(I),m(()=>xa(o(I))))]),k(Ce,Le)};$(we,Ce=>{o(T),m(()=>o(T)?.maxContext===null||o(T)?.maxContext===void 0)?Ce(be):Ce(Oe,!1)})}k(ve,xe)},ue=ve=>{var xe=F3(),we=b(xe),be=C(b(we),2),Oe=b(be),Ce=C(we,2);oe(Ce,"id",g),oe(Ce,"step",1);var Le=C(Ce,2);mt(Le,7,()=>o(Q),(Be,Ve)=>Be+Ve,(Be,Ve)=>{var je=T3(),Pe=b(je);G(()=>X(Pe,o(Ve))),k(Be,je)}),G(Be=>{X(Oe,Be),oe(Ce,"min",Ju),oe(Ce,"max",aa),Ot(Ce,o(N))},[()=>(o(x),L(xa),m(()=>o(x)?.minContext===null?"Any":xa(o(x)?.minContext??0)))]),J("input",Ce,Be=>W(Number(Be.target.value))),k(ve,xe)};$(Te,ve=>{o(K)?ve($e):ve(ue,!1)})}k(te,ge)},$$slots:{default:!0}})}var Me=C(ye,2);{let _e=ct(()=>(o(x),m(()=>o(x)?.minPromptPrice!==null||o(x)?.maxPromptPrice!==null)));xo(Me,{title:"Prompt pricing",get forceOpen(){return o(_e)},children:(te,Ee)=>{var ge=Se(),Te=me(ge);{var $e=ve=>{var xe=Se(),we=me(xe);{var be=Ce=>{var Le=M3();k(Ce,Le)},Oe=Ce=>{var Le=P3(),Be=b(Le);G(Ve=>X(Be,`All models share ${Ve??""} pricing.`),[()=>(L(Wu),o(T),m(()=>Wu(o(T)?.maxPromptPrice??0)))]),k(Ce,Le)};$(we,Ce=>{o(T),m(()=>o(T)?.maxPromptPrice===null||o(T)?.maxPromptPrice===void 0)?Ce(be):Ce(Oe,!1)})}k(ve,xe)},ue=ve=>{var xe=O3(),we=b(xe),be=C(b(we),2),Oe=b(be),Ce=C(we,2);h3(Ce,{id:S,min:0,get max(){return mu},step:1,get value(){return o(ae)},ariaLabelMin:"Minimum prompt price",ariaLabelMax:"Maximum prompt price",get disabled(){return o(q)},$$events:{input:O,change:O}});var Le=C(Ce,2);{var Be=Ve=>{var je=N3();mt(je,7,()=>o(Y),(Pe,ut)=>Pe+ut,(Pe,ut)=>{var Rt=I3(),qt=b(Rt);G(()=>X(qt,o(ut))),k(Pe,Rt)}),k(Ve,je)};$(Le,Ve=>{o(Y),m(()=>o(Y).length>0)&&Ve(Be)})}G(()=>X(Oe,o(ie))),k(ve,xe)};$(Te,ve=>{o(q)?ve($e):ve(ue,!1)})}k(te,ge)},$$slots:{default:!0}})}var Re=C(Me,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.series??[]))),te=ct(()=>(o(x),m(()=>o(x)?.series?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.series?.exclude??[])));lu(Re,{title:"Series",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"Series information unavailable.",$$events:{toggle:ge=>f(ge.detail)}})}var We=C(Re,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.supportedParameters??[]))),te=ct(()=>(o(x),m(()=>o(x)?.supportedParameters?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.supportedParameters?.exclude??[])));lu(We,{title:"Supported parameters",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},variant:"columns",emptyMessage:"No parameter metadata available.",$$events:{toggle:ge=>v(ge.detail)}})}var Ae=C(We,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.providers??[]))),te=ct(()=>(o(x),m(()=>o(x)?.providers?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.providers?.exclude??[])));lu(Ae,{title:"Providers",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},emptyMessage:"No provider data available.",$$events:{toggle:ge=>h(ge.detail)}})}var tt=C(Ae,2);{let _e=ct(()=>(o(T),m(()=>o(T)?.moderation??[]))),te=ct(()=>(o(x),m(()=>o(x)?.moderation?.include??[]))),Ee=ct(()=>(o(x),m(()=>o(x)?.moderation?.exclude??[])));lu(tt,{title:"Moderation",get options(){return o(_e)},get selected(){return o(te)},get excluded(){return o(Ee)},variant:"compact",emptyMessage:"No moderation metadata available.",$$events:{toggle:ge=>p(ge.detail)}})}G(_e=>{j=St(H,1,"filters-status svelte-1247vns",null,j,_e),X(ce,o(F)),ee.disabled=!o(R)},[()=>({muted:o(z)===0})]),J("click",ee,A),k(e,V),et(),s()}var $3=M(""),z3=M('
                              ');function U3(e,t){Qe(t,!1);let n=ne(t,"selected",8),r=ne(t,"onSelect",8);const u=[{label:"Newest",value:"newness"},{label:"Lowest price",value:"price"},{label:"Longest context",value:"context"}];function a(c){const d=c.target;r()(d.value)}rt();var s=z3(),i=C(b(s),2);mt(i,5,()=>u,jn,(c,d)=>{var f=$3(),h=b(f),v={};G(()=>{X(h,(o(d),m(()=>o(d).label))),v!==(v=(o(d),m(()=>o(d).value)))&&(f.value=(f.__value=(o(d),m(()=>o(d).value)))??"")}),k(c,f)});var l;or(i),G(()=>{l!==(l=n())&&(i.value=(i.__value=n())??"",Rn(i,n()))}),J("change",i,a),k(e,s),et()}const B3="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M400-240%20160-480l240-240%2056%2058-142%20142h486v80H314l142%20142-56%2058Z'/%3e%3c/svg%3e";var j3=M('
                              Chat

                              Model Explorer

                              ');function q3(e,t){Qe(t,!1);let n=ne(t,"resultCount",8,0),r=ne(t,"searchValue",8,""),u=ne(t,"onSearch",8),a=ne(t,"sort",8),s=ne(t,"onSort",8),i=ne(t,"onClose",8);function l(g){const S=g.target;S&&u()(S.value)}rt();var c=j3(),d=b(c),f=b(d),h=b(f),v=C(d,2),p=b(v),w=C(b(p),2),y=C(p,2),_=b(y),A=b(_),E=C(_,2);U3(E,{get selected(){return a()},get onSelect(){return s()}}),G(()=>{oe(h,"src",B3),Ot(w,r()),X(A,`${n()??""} result${n()===1?"":"s"}`)}),J("click",f,Oo(function(...g){i()?.apply(this,g)})),J("input",w,l),k(e,c),et()}var H3=M('
                              '),W3=M('

                              ');function V3(e,t){Qe(t,!1);const n=U(),r=U(),u=U(),a=U(),s=U(),i=U(),l=U(),c=U(),d=U(),f=U(),h=U(),v=U(),p=U(),w=U(),y=U();let _=ne(t,"model",8),A=ne(t,"onSelect",8);const E=1e6;function g(O){return O&&O.split(/[\s_/-]+/).filter(Boolean).map(V=>V.charAt(0).toUpperCase()+V.slice(1)).join(" ")}function S(O){const V=new Set,he=[];for(const pe of O){const H=g(pe.trim());if(!H)continue;const j=H.toLowerCase();V.has(j)||(V.add(j),he.push(H))}return he}function x(O){if(O===null)return"Unknown";const V=O/E,he=V>=10?0:1;return`${V.toFixed(he).replace(/\.0$/,"")}M tokens`}function T(O){return O.length?O.join(", "):null}function R(O,V){if(O===null)return null;const he=mp(O);return he==="FREE"?"FREE":`${he} ${V}`}const z="/ 1M tokens";function F(O,V,he,pe){const H=R(he,pe);return H?{key:O,label:V,value:H}:null}function I(O,V,he){return he?{key:O,label:V,value:he}:null}function K(){A()(_())}function N(O){(O.key==="Enter"||O.key===" ")&&(O.preventDefault(),A()(_()))}fe(()=>L(_()),()=>{D(n,_().name??_().id)}),fe(()=>L(_()),()=>{D(r,Sc(_()))}),fe(()=>L(_()),()=>{D(u,hp(_()))}),fe(()=>L(_()),()=>{D(a,Zu(_()))}),fe(()=>o(a),()=>{D(s,x(o(a)))}),fe(()=>L(_()),()=>{D(i,$o(_()).map(O=>O.toLowerCase()))}),fe(()=>L(_()),()=>{D(l,zo(_()).map(O=>O.toLowerCase()))}),fe(()=>o(r),()=>{D(c,o(r)!==null)}),fe(()=>o(u),()=>{D(d,o(u)!==null)}),fe(()=>o(i),()=>{D(f,S(o(i)))}),fe(()=>o(l),()=>{D(h,S(o(l)))}),fe(()=>L(_()),()=>{D(v,(()=>{const O=_().provider;if(O&&typeof O=="object"){if(O.display_name)return O.display_name;if(O.slug)return O.slug}const V=_().id?.split("/")??[];return V.length>1?V[V.length-2]:null})())}),fe(()=>(o(s),o(v),o(f),o(h)),()=>{D(p,[I("context","Context",o(s)),I("provider","Provider",o(v)),I("input-modalities","Input",T(o(f))),I("output-modalities","Output",T(o(h)))].filter(O=>!!O))}),fe(()=>(o(c),o(r),o(d),o(u)),()=>{D(w,[o(c)?F("input-price","Input price",o(r),z):null,o(d)?F("output-price","Output price",o(u),z):null].filter(O=>!!O))}),fe(()=>(o(p),o(w)),()=>{D(y,[...o(p),...o(w)])}),At(),rt();var Q=W3(),q=b(Q),ae=b(q),ie=b(ae),Y=C(q,2),W=b(Y);mt(W,5,()=>o(y),O=>O.key,(O,V)=>{var he=H3(),pe=b(he),H=b(pe),j=C(pe,2),ce=b(j);G(()=>{X(H,(o(V),m(()=>o(V).label))),X(ce,(o(V),m(()=>o(V).value)))}),k(O,he)}),G(()=>{oe(Q,"aria-label",`Use model ${o(n)}`),X(ie,o(n))}),J("click",Q,K),J("keydown",Q,N),k(e,Q),et()}var G3=M(''),K3=M('

                              Active filters

                              ');function Z3(e,t){Qe(t,!1);let n=ne(t,"chips",24,()=>[]);const r=Et();function u(l){r("clear",l)}rt();var a=Se(),s=me(a);{var i=l=>{var c=K3(),d=C(b(c),2);mt(d,5,n,f=>f.id,(f,h)=>{var v=G3();let p;var w=b(v),y=b(w),_=b(y),A=C(y,4),E=b(A);G(g=>{p=St(v,1,"chip svelte-v6y1b4",null,p,g),oe(v,"aria-label",(o(h),m(()=>`Remove ${o(h).state==="exclude"?"excluded":"included"} filter ${o(h).categoryLabel} ${o(h).valueLabel}`))),X(_,(o(h),m(()=>o(h).categoryLabel))),X(E,`${o(h),m(()=>o(h).state==="exclude"?"Not ":"")??""}${o(h),m(()=>o(h).valueLabel)??""}`)},[()=>({include:o(h).state==="include",exclude:o(h).state==="exclude"})]),J("click",v,()=>u(o(h))),k(f,v)}),k(l,c)};$(s,l=>{L(n()),m(()=>n().length>0)&&l(i)})}k(e,a),et()}var Y3=M('

                              '),J3=M("
                            • "),X3=M('
                                '),Q3=M('
                                ');function ey(e,t){Qe(t,!1);let n=ne(t,"models",24,()=>[]),r=ne(t,"filtersActive",8,!1),u=ne(t,"onSelect",8),a=ne(t,"filterChips",24,()=>[]);const s=Et();function i(v){s("clearFilter",v.detail)}rt();var l=Q3(),c=b(l);Z3(c,{get chips(){return a()},$$events:{clear:i}});var d=C(c,2);{var f=v=>{var p=Y3(),w=b(p);{var y=A=>{var E=Ln("No models match your current filters.");k(A,E)},_=A=>{var E=Ln("No models available.");k(A,E)};$(w,A=>{r()?A(y):A(_,!1)})}k(v,p)},h=v=>{var p=X3();mt(p,5,n,w=>w.id,(w,y)=>{var _=J3(),A=b(_);V3(A,{get model(){return o(y)},get onSelect(){return u()}}),k(w,_)}),k(v,p)};$(d,v=>{L(n()),m(()=>n().length===0)?v(f):v(h,!1)})}k(e,l),et()}var ty=M('Active'),ny=M('
                                '),ry=M(' ',1);function uy(e,t){Qe(t,!1);const n=()=>Xe(h,"$filtered",a),r=()=>Xe(y,"$activeFilters",a),u=()=>Xe(v,"$filters",a),[a,s]=Gn(),i=U(),l=U(),c=U();let d=ne(t,"open",12,!1);const f=Et(),{filtered:h,filters:v,setSearch:p,setSort:w,activeFilters:y,setSelectionState:_}=wr,A={inputModalities:{label:"Input"},outputModalities:{label:"Output"},series:{label:"Series"},providers:{label:"Provider"},supportedParameters:{label:"Parameter"},moderation:{label:"Moderation"}},E=["inputModalities","outputModalities","series","providers","supportedParameters","moderation"],g="(max-width: 1024px)";let S=U(!1),x=U(!0),T=!1,R=U([]);const z="modal-open";let F=()=>{typeof document<"u"&&document.body.classList.remove(z)};fa(()=>F());function I(){d(!1),f("close")}function K(H){f("select",{id:H.id}),I()}function N(H){w(H)}function Q(H){p(H)}function q(H){const j=[];for(const ce of E){const ee=H[ce];if(!ee)continue;const Z=A[ce]?.label??ce;for(const B of ee.include)j.push(ae(ce,Z,B,"include"));for(const B of ee.exclude)j.push(ae(ce,Z,B,"exclude"))}return j}function ae(H,j,ce,ee){const De=ce.trim();return{id:`${H}:${ee}:${De}`,category:H,categoryLabel:j,value:De,valueLabel:ie(De),state:ee}}function ie(H){return H.replace(/[_-]/g," ")||H}function Y(H){D(S,H),H?T||D(x,!1):(D(x,!0),T=!1)}function W(){D(x,!o(x)),T=!0}function O(H){const j=H.detail;_(j.category,j.value,"neutral")}da(()=>{if(typeof window>"u")return;const H=window.matchMedia(g);Y(H.matches);const j=ce=>{Y(ce.matches)};return typeof H.addEventListener=="function"?(H.addEventListener("change",j),()=>H.removeEventListener("change",j)):(H.addListener(j),()=>H.removeListener(j))}),fe(()=>L(d()),()=>{typeof document<"u"&&(d()?document.body.classList.add(z):document.body.classList.remove(z))}),fe(()=>n(),()=>{D(i,n())}),fe(()=>r(),()=>{D(l,r())}),fe(()=>u(),()=>{D(c,u())}),fe(()=>o(c),()=>{D(R,o(c)?q(o(c)):[])}),At(),rt();var V=Se(),he=me(V);{var pe=H=>{var j=ry(),ce=me(j),ee=C(ce,2),De=b(ee);q3(De,{get resultCount(){return o(i),m(()=>o(i).length)},get searchValue(){return u(),m(()=>u().search)},onSearch:Q,get sort(){return u(),m(()=>u().sort)},onSort:N,onClose:I});var Z=C(De,2),B=b(Z);{var ye=Ae=>{var tt=ny(),_e=b(tt);let te;var Ee=C(b(_e),2);{var ge=Te=>{var $e=ty();k(Te,$e)};$(Ee,Te=>{o(l)&&Te(ge)})}G(Te=>{te=St(_e,1,"filters-toggle svelte-drtqmy",null,te,Te),oe(_e,"aria-expanded",o(x))},[()=>({open:o(x)})]),J("click",_e,W),k(Ae,tt)};$(B,Ae=>{o(S)&&Ae(ye)})}var Me=C(B,2),Re=b(Me);R3(Re,{});var We=C(Me,2);ey(We,{get models(){return o(i)},get filtersActive(){return o(l)},get filterChips(){return o(R)},onSelect:K,$$events:{clearFilter:O}}),G(()=>{oe(ee,"data-compact",o(S)),oe(Z,"data-compact",o(S)),oe(Me,"data-compact",o(S)),oe(Me,"data-open",o(x))}),J("click",ce,I),k(H,j)};$(he,H=>{d()&&H(pe)})}k(e,V),et(),s()}var ay=M(''),sy=M('
                                ');function oy(e,t){Qe(t,!1);const n=()=>Xe(T,"$selectable",c),r=()=>Xe(ea,"$chatStore",c),u=()=>Xe(R,"$activeFor",c),a=()=>Xe(Mc,"$speechState",c),s=()=>Xe(S,"$modelsLoading",c),i=()=>Xe(x,"$modelsError",c),l=()=>Xe(du,"$suggestionsStore",c),[c,d]=Gn(),{sendMessage:f,cancelStream:h,clearConversation:v,deleteMessage:p,retryMessage:w,editMessage:y,clearError:_,setModel:A}=ea,{loadModels:E,models:g,loading:S,error:x,selectable:T,activeFor:R}=wr;let z=U(""),F=U([]),I=U(),K=U(!1),N=U(!1),Q=U(!1),q=U(!1),ae=U(!1),ie=U(!1),Y=U(!1),W=U(0),O=U(!1),V=U(null),he=U(null),pe=U(null),H=U([]),j=U(null);const ce=gc;let ee=U(null),De=U(""),Z=U(""),B=U(!1);da(async()=>{await E(),await du.load();const de=await Pn.loadDefault();if(de){const Ie=await Pn.apply(de.name);Ie?.model&&A(Ie.model),await du.load()}});async function ye(){if(!o(I))return;const de=o(I).getNewSuggestion();de&&await du.add(de.label,de.text)}async function Me(de){await du.remove(de.detail.index)}fa(()=>{typeof document<"u"&&document.body.classList.remove("modal-open")});function Re(de){A(de)}function We(){r1()}function Ae(de){A(de.detail.id)}function tt(de){D(z,de)}function _e(de){r().isStreaming||p(de.detail.id)}function te(de){w(de)}function Ee(de){if(!de?.attachment)return;$e();const Ie={...de.attachment,metadata:de.attachment.metadata?{...de.attachment.metadata}:null},vt=o(F)??[],Tt=vt.some(zt=>zt.id===Ie.id||zt.displayUrl===Ie.displayUrl||zt.deliveryUrl===Ie.deliveryUrl)?vt:[...vt,Ie];D(F,Tt)}function ge(de){const Ie=r().messages.find(vt=>vt.id===de&&vt.role==="user");Ie&&(D(B,!1),D(ee,de),D(De,Ie.text),D(Z,Ie.text))}function Te(){D(ee,null),D(De,""),D(Z,"")}function $e(){o(B)||Te()}function ue(){$e()}function ve(de){if(!o(ee))return;const Ie=de.trim();if(!Ie)return;const vt=o(ee);D(B,!0),Te(),y(vt,Ie).catch(Tt=>{console.error("Failed to apply message edit",Tt)}).finally(()=>{D(B,!1)})}async function xe(de){if(de){D(N,!0),D(O,!0),D(V,null),D(he,null),D(pe,de);try{const Ie=await P0(de);D(he,Ie?.data??null)}catch(Ie){const vt=Ie instanceof Error?Ie.message:"Failed to load details.";D(V,vt)}finally{D(O,!1)}}}function we(){D(N,!1),D(pe,null),D(he,null),D(V,null)}async function be(de){const Ie=de.trim();if(Ie){D(z,Ie);try{await f({text:Ie,attachments:[]}),D(z,"")}catch(vt){console.error("Failed to send speech transcription",vt)}}}fe(()=>(o(K),o(N),o(Q),o(q),o(ae),o(ie)),()=>{typeof document<"u"&&document.body.classList.toggle("modal-open",o(K)||o(N)||o(Q)||o(q)||o(ae)||o(ie))}),fe(()=>(n(),r()),()=>{D(H,n()(r().selectedModel))}),fe(()=>(u(),r()),()=>{D(j,u()(r().selectedModel))}),fe(()=>(a(),o(W)),()=>{a().promptVersion!==o(W)&&(D(W,a().promptVersion),D(z,a().promptText))}),fe(()=>(a(),r(),Oi),()=>{if(a().pendingSubmit&&!r().isStreaming){const de=Oi();de&&be(de.text)}}),fe(()=>(o(ee),Ni),()=>{o(ee)&&Ni()}),At(),rt();var Oe=sy(),Ce=b(Oe);{let de=ct(()=>(r(),m(()=>r().messages.length>0)));Ip(Ce,{get selectableModels(){return o(H)},get selectedModel(){return r(),m(()=>r().selectedModel)},get modelsLoading(){return s()},get modelsError(){return i()},get hasMessages(){return o(de)},$$events:{openExplorer:()=>D(K,!0),clear:()=>{D(F,[]),D(z,""),v()},modelChange:Ie=>Re(Ie.detail.id),openModelSettings:()=>D(Q,!0),openSystemSettings:()=>D(q,!0),openSpeechSettings:()=>D(ae,!0),openKioskSettings:()=>D(ie,!0),openPresets:()=>D(Y,!0)}})}var Le=C(Ce,2);{var Be=de=>{Ar(bb(de,{get suggestions(){return l(),m(()=>l().items)},get deleting(){return l(),m(()=>l().deleting)},$$events:{add:ye,delete:Me,select:Ie=>tt(Ie.detail.text)},$$legacy:!0}),Ie=>D(I,Ie),()=>o(I))};$(Le,de=>{r(),m(()=>!r().messages.length)&&de(Be)})}var Ve=C(Le,2);sg(Ve,{get messages(){return r(),m(()=>r().messages)},get disableDelete(){return r(),m(()=>r().isStreaming)},$$events:{openGenerationDetails:de=>xe(de.detail.id),deleteMessage:_e,retryMessage:de=>te(de.detail.id),editMessage:de=>ge(de.detail.id),editAssistantAttachment:de=>Ee(de.detail)}});var je=C(Ve,2);{var Pe=de=>{var Ie=ay(),vt=b(Ie),Mt=b(vt),Tt=C(vt,2);G(()=>X(Mt,(r(),m(()=>r().error)))),J("click",Tt,_),k(de,Ie)};$(je,de=>{r(),m(()=>r().error)&&de(Pe)})}var ut=C(je,2);{var Rt=de=>{$1(de,{get originalValue(){return o(Z)},get saving(){return o(B)},get disabled(){return o(B)},get value(){return o(De)},set value(Ie){D(De,Ie)},$$events:{cancel:ue,submit:Ie=>ve(Ie.detail.text)},$$legacy:!0})},qt=de=>{S1(de,{get presetAttachments(){return o(F)},get isStreaming(){return r(),m(()=>r().isStreaming)},get prompt(){return o(z)},set prompt(Ie){D(z,Ie)},$$events:{submit:Ie=>f(Ie.detail),cancel:h,startDictation:We},$$legacy:!0})};$(ut,de=>{o(ee)?de(Rt):de(qt,!1)})}var Zt=C(ut,2);O1(Zt,{get open(){return o(N)},get generationId(){return o(pe)},get loading(){return o(O)},get error(){return o(V)},get data(){return o(he)},get fields(){return ce},$$events:{close:we}});var $t=C(Zt,2);Yg($t,{get open(){return o(Q)},get selectedModel(){return r(),m(()=>r().selectedModel)},get model(){return o(j)},$$events:{close:()=>D(Q,!1)}});var Yt=C($t,2);I_(Yt,{get open(){return o(q)},$$events:{close:()=>D(q,!1)}});var nt=C(Yt,2);Db(nt,{get open(){return o(ae)},$$events:{close:()=>D(ae,!1)}});var Ge=C(nt,2);d3(Ge,{get open(){return o(ie)},$$events:{close:()=>D(ie,!1)}});var Ct=C(Ge,2);pb(Ct,{get open(){return o(Y)},$$events:{close:()=>D(Y,!1)}});var Jt=C(Ct,2);uy(Jt,{get open(){return o(K)},set open(de){D(K,de)},$$events:{select:Ae},$$legacy:!0}),k(e,Oe),et(),d()}i0(oy,{target:document.getElementById("app")});export{Gn as A,bc as B,U as C,D,C as E,oe as F,or as G,Rn as H,Ot as I,ne as a,$ as b,Et as c,cy as d,J as e,M as f,k as g,et as h,rt as i,b as j,ly as k,Se as l,me as m,L as n,mt as o,Qe as p,o as q,da as r,X as s,G as t,m as u,fa as v,fe as w,Xe as x,At as y,Ar as z}; diff --git a/src/backend/static/assets/index-Bu0PDUl3.js b/src/backend/static/assets/index-Bu0PDUl3.js new file mode 100644 index 00000000..e1dc2805 --- /dev/null +++ b/src/backend/static/assets/index-Bu0PDUl3.js @@ -0,0 +1,528 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPicker-BltK9Rg4.js","assets/ModelPicker-Cn_xB6on.css","assets/WebSearchMenu-llg5iChw.js","assets/WebSearchMenu-CawX--ca.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const u of a.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&r(u)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Il=!1;var ka=Array.isArray,Ld=Array.prototype.indexOf,Lo=Array.from,nu=Object.defineProperty,cr=Object.getOwnPropertyDescriptor,Nl=Object.getOwnPropertyDescriptors,Od=Object.prototype,$d=Array.prototype,Oo=Object.getPrototypeOf,hi=Object.isExtensible;function Hs(e){return typeof e=="function"}const Tr=()=>{};function Rd(e){return e()}function ha(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Ud(e,t){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}const wn=2,$o=4,mu=8,Ms=16,hr=32,Qr=64,Ro=128,An=256,ru=512,Jt=1024,Dn=2048,mr=4096,Un=8192,es=16384,zo=32768,Ps=65536,mi=1<<17,Bd=1<<18,Is=1<<19,Ll=1<<20,ho=1<<21,Uo=1<<22,qr=1<<23,Xn=Symbol("$state"),Ol=Symbol("legacy props"),jd=Symbol(""),Bo=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function vu(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function qd(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Hd(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Wd(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Vd(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Gd(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Kd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Zd(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Yd(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Jd(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Xd(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Qd(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const gu=1,bu=2,$l=4,ef=8,tf=16,nf=1,rf=2,Rl=4,sf=8,af=16,uf=1,of=2,Vt=Symbol(),lf="http://www.w3.org/1999/xhtml",cf="http://www.w3.org/2000/svg",df="@attach";function ff(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function pf(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let hf=!1;function zl(e){return e===this.v}function jo(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Ul(e){return!jo(e,this.v)}let Ns=!1,mf=!1;function vf(){Ns=!0}let gt=null;function Cs(e){gt=e}function it(e,t=!1,n){gt={p:gt,c:null,e:null,s:e,x:null,l:Ns&&!t?{s:null,u:null,$:[]}:null}}function lt(e){var t=gt,n=t.e;if(n!==null){t.e=null;for(var r of n)nc(r)}return e!==void 0&&(t.x=e),gt=t.p,e??{}}function wa(){return!Ns||gt!==null&>.l===null}let Cr=[],su=[];function Bl(){var e=Cr;Cr=[],ha(e)}function gf(){var e=su;su=[],ha(e)}function bf(){return Cr.length>0||su.length>0}function ts(e){if(Cr.length===0&&!oa){var t=Cr;queueMicrotask(()=>{t===Cr&&Bl()})}Cr.push(e)}function _f(){Cr.length>0&&Bl(),su.length>0&&gf()}const yf=new WeakMap;function jl(e){var t=Ke;if(t===null)return Qe.f|=qr,e;if((t.f&zo)===0){if((t.f&Ro)===0)throw!t.parent&&e instanceof Error&&ql(e),e;t.b.error(e)}else As(e,t)}function As(e,t){for(;t!==null;){if((t.f&Ro)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e instanceof Error&&ql(e),e}function ql(e){const t=yf.get(e);t&&(nu(e,"message",{value:t.message}),nu(e,"stack",{value:t.stack}))}const Iu=new Set;let kt=null,Va=null,mo=new Set,Kr=[],_u=null,vo=!1,oa=!1;class dr{current=new Map;#a=new Map;#t=new Set;#f=0;#u=null;#c=!1;#s=[];#n=[];#e=[];#r=[];#o=[];#d=[];#l=[];skipped_effects=new Set;process(t){Kr=[],Va=null;for(const s of t)this.#p(s);if(this.#s.length===0&&this.#f===0){this.#h();var n=this.#e,r=this.#r;this.#e=[],this.#r=[],this.#o=[],Va=kt,kt=null,vi(n),vi(r),kt===null?kt=this:Iu.delete(this),this.#u?.resolve()}else this.#i(this.#e),this.#i(this.#r),this.#i(this.#o);for(const s of this.#s)Wr(s);for(const s of this.#n)Wr(s);this.#s=[],this.#n=[]}#p(t){t.f^=Jt;for(var n=t.first;n!==null;){var r=n.f,s=(r&(hr|Qr))!==0,a=s&&(r&Jt)!==0,u=a||(r&Un)!==0||this.skipped_effects.has(n);if(!u&&n.fn!==null){if(s)n.f^=Jt;else if((r&$o)!==0)this.#r.push(n);else if((r&Jt)===0)if((r&Uo)!==0){var i=n.b?.is_pending()?this.#n:this.#s;i.push(n)}else Ca(n)&&((n.f&Ms)!==0&&this.#o.push(n),Wr(n));var l=n.first;if(l!==null){n=l;continue}}var c=n.parent;for(n=n.next;n===null&&c!==null;)n=c.next,c=c.parent}}#i(t){for(const n of t)((n.f&Dn)!==0?this.#d:this.#l).push(n),fn(n,Jt);t.length=0}capture(t,n){this.#a.has(t)||this.#a.set(t,n),this.current.set(t,t.v)}activate(){kt=this}deactivate(){kt=null,Va=null;for(const t of mo)if(mo.delete(t),t(),kt!==null)break}neuter(){this.#c=!0}flush(){Kr.length>0?Hl():this.#h(),kt===this&&(this.#f===0&&Iu.delete(this),this.deactivate())}#h(){if(!this.#c)for(const t of this.#t)t();this.#t.clear()}increment(){this.#f+=1}decrement(){if(this.#f-=1,this.#f===0){for(const t of this.#d)fn(t,Dn),Ds(t);for(const t of this.#l)fn(t,mr),Ds(t);this.#e=[],this.#r=[],this.flush()}else this.deactivate()}add_callback(t){this.#t.add(t)}settled(){return(this.#u??=zd()).promise}static ensure(){if(kt===null){const t=kt=new dr;Iu.add(kt),oa||dr.enqueue(()=>{kt===t&&t.flush()})}return kt}static enqueue(t){ts(t)}}function xf(e){var t=oa;oa=!0;try{for(var n;;){if(_f(),Kr.length===0&&!bf()&&(kt?.flush(),Kr.length===0))return _u=null,n;Hl()}}finally{oa=t}}function Hl(){var e=Es;vo=!0;try{var t=0;for(yi(!0);Kr.length>0;){var n=dr.ensure();if(t++>1e3){var r,s;kf()}n.process(Kr),Fr.clear()}}finally{vo=!1,yi(e),_u=null}}function kf(){try{Gd()}catch(e){As(e,_u)}}let Ur=null;function vi(e){var t=e.length;if(t!==0){for(var n=0;n0)){Fr.clear();for(const s of Ur)Wr(s);Ur=[]}}Ur=null}}function Ds(e){for(var t=_u=e;t.parent!==null;){t=t.parent;var n=t.f;if(vo&&t===Ke&&(n&Ms)!==0)return;if((n&(Qr|hr))!==0){if((n&Jt)===0)return;t.f^=Jt}}Kr.push(t)}function wf(e){let t=0,n=Pr(0),r;return()=>{Rf()&&(o(n),Ls(()=>(t===0&&(r=m(()=>e(()=>ia(n)))),t+=1,()=>{ts(()=>{t-=1,t===0&&(r?.(),r=void 0,ia(n))})})))}}var Ef=Ps|Is|Ro;function Sf(e,t,n){new Cf(e,t,n)}class Cf{parent;#a=!1;#t;#f=null;#u;#c;#s;#n=null;#e=null;#r=null;#o=null;#d=0;#l=0;#p=!1;#i=null;#h=()=>{this.#i&&Zr(this.#i,this.#d)};#b=wf(()=>(this.#i=Pr(this.#d),()=>{this.#i=null}));constructor(t,n,r){this.#t=t,this.#u=n,this.#c=r,this.parent=Ke.b,this.#a=!!this.#u.pending,this.#s=ns(()=>{Ke.b=this;{try{this.#n=cn(()=>r(this.#t))}catch(s){this.error(s)}this.#l>0?this.#v():this.#a=!1}},Ef)}#_(){try{this.#n=cn(()=>this.#c(this.#t))}catch(t){this.error(t)}this.#a=!1}#y(){const t=this.#u.pending;t&&(this.#e=cn(()=>t(this.#t)),dr.enqueue(()=>{this.#n=this.#m(()=>(dr.ensure(),cn(()=>this.#c(this.#t)))),this.#l>0?this.#v():(Mr(this.#e,()=>{this.#e=null}),this.#a=!1)}))}is_pending(){return this.#a||!!this.parent&&this.parent.is_pending()}has_pending_snippet(){return!!this.#u.pending}#m(t){var n=Ke,r=Qe,s=gt;Tn(this.#s),vn(this.#s),Cs(this.#s.ctx);try{return t()}catch(a){return jl(a),null}finally{Tn(n),vn(r),Cs(s)}}#v(){const t=this.#u.pending;this.#n!==null&&(this.#o=document.createDocumentFragment(),Af(this.#n,this.#o)),this.#e===null&&(this.#e=cn(()=>t(this.#t)))}#g(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#g(t);return}this.#l+=t,this.#l===0&&(this.#a=!1,this.#e&&Mr(this.#e,()=>{this.#e=null}),this.#o&&(this.#t.before(this.#o),this.#o=null))}update_pending_count(t){this.#g(t),this.#d+=t,mo.add(this.#h)}get_effect_pending(){return this.#b(),o(this.#i)}error(t){var n=this.#u.onerror;let r=this.#u.failed;if(this.#p||!n&&!r)throw t;this.#n&&(nn(this.#n),this.#n=null),this.#e&&(nn(this.#e),this.#e=null),this.#r&&(nn(this.#r),this.#r=null);var s=!1,a=!1;const u=()=>{if(s){pf();return}s=!0,a&&Qd(),dr.ensure(),this.#d=0,this.#r!==null&&Mr(this.#r,()=>{this.#r=null}),this.#a=this.has_pending_snippet(),this.#n=this.#m(()=>(this.#p=!1,cn(()=>this.#c(this.#t)))),this.#l>0?this.#v():this.#a=!1};var i=Qe;try{vn(null),a=!0,n?.(t,u),a=!1}catch(l){As(l,this.#s&&this.#s.parent)}finally{vn(i)}r&&ts(()=>{this.#r=this.#m(()=>{this.#p=!0;try{return cn(()=>{r(this.#t,()=>t,()=>u)})}catch(l){return As(l,this.#s.parent),null}finally{this.#p=!1}})})}}function Af(e,t){for(var n=e.nodes_start,r=e.nodes_end;n!==null;){var s=n===r?null:Sa(n);t.append(n),n=s}}function Wl(e,t,n){const r=wa()?Ea:vt;if(t.length===0){n(e.map(r));return}var s=kt,a=Ke,u=Df();Promise.all(t.map(i=>Tf(i))).then(i=>{s?.activate(),u();try{n([...e.map(r),...i])}catch(l){(a.f&es)===0&&As(l,a)}s?.deactivate(),Vl()}).catch(i=>{As(i,a)})}function Df(){var e=Ke,t=Qe,n=gt,r=kt;return function(){Tn(e),vn(t),Cs(n),r?.activate()}}function Vl(){Tn(null),vn(null),Cs(null)}function Ea(e){var t=wn|Dn,n=Qe!==null&&(Qe.f&wn)!==0?Qe:null;return Ke===null||n!==null&&(n.f&An)!==0?t|=An:Ke.f|=Is,{ctx:gt,deps:null,effects:null,equals:zl,f:t,fn:e,reactions:null,rv:0,v:Vt,wv:0,parent:n??Ke,ac:null}}function Tf(e,t){let n=Ke;n===null&&qd();var r=n.b,s=void 0,a=Pr(Vt),u=null,i=!Qe;return Bf(()=>{try{var l=e();u&&Promise.resolve(l).catch(()=>{})}catch(h){l=Promise.reject(h)}var c=()=>l;s=u?.then(c,c)??Promise.resolve(l),u=s;var f=kt,d=r.is_pending();i&&(r.update_pending_count(1),d||f.increment());const v=(h,p=void 0)=>{u=null,d||f.activate(),p?p!==Bo&&(a.f|=qr,Zr(a,p)):((a.f&qr)!==0&&(a.f^=qr),Zr(a,h)),i&&(r.update_pending_count(-1),d||f.decrement()),Vl()};if(s.then(v,h=>v(null,h||"unknown")),f)return()=>{queueMicrotask(()=>f.neuter())}}),new Promise(l=>{function c(f){function d(){f===s?l(a):c(s)}f.then(d,d)}c(s)})}function Ff(e){const t=Ea(e);return lc(t),t}function vt(e){const t=Ea(e);return t.equals=Ul,t}function Gl(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;no(e))),t}function w(e,t,n=!1){Qe!==null&&(!$n||(Qe.f&mi)!==0)&&wa()&&(Qe.f&(wn|Ms|Uo|mi))!==0&&!fr?.includes(e)&&Xd();let r=n?ys(t):t;return Zr(e,r)}function Zr(e,t){if(!e.equals(t)){var n=e.v;rs?Fr.set(e,t):Fr.set(e,n),e.v=t;var r=dr.ensure();r.capture(e,n),(e.f&wn)!==0&&((e.f&Dn)!==0&&qo(e),fn(e,(e.f&An)===0?Jt:mr)),e.wv=dc(),Yl(e,Dn),wa()&&Ke!==null&&(Ke.f&Jt)!==0&&(Ke.f&(hr|Qr))===0&&(Sn===null?Hf([e]):Sn.push(e))}return t}function gi(e,t=1){var n=o(e),r=t===1?n++:n--;return w(e,n),r}function ia(e){w(e,e.v+1)}function Yl(e,t){var n=e.reactions;if(n!==null)for(var r=wa(),s=n.length,a=0;a{if(Hr===a)return i();var l=Qe,c=Hr;vn(null),ki(a);var f=i();return vn(l),ki(c),f};return r&&n.set("length",xr(e.length)),new Proxy(e,{defineProperty(i,l,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&Yd();var f=n.get(l);return f===void 0?f=u(()=>{var d=xr(c.value);return n.set(l,d),d}):w(f,c.value,!0),!0},deleteProperty(i,l){var c=n.get(l);if(c===void 0){if(l in i){const f=u(()=>xr(Vt));n.set(l,f),ia(s)}}else w(c,Vt),ia(s);return!0},get(i,l,c){if(l===Xn)return e;var f=n.get(l),d=l in i;if(f===void 0&&(!d||cr(i,l)?.writable)&&(f=u(()=>{var h=ys(d?i[l]:Vt),p=xr(h);return p}),n.set(l,f)),f!==void 0){var v=o(f);return v===Vt?void 0:v}return Reflect.get(i,l,c)},getOwnPropertyDescriptor(i,l){var c=Reflect.getOwnPropertyDescriptor(i,l);if(c&&"value"in c){var f=n.get(l);f&&(c.value=o(f))}else if(c===void 0){var d=n.get(l),v=d?.v;if(d!==void 0&&v!==Vt)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return c},has(i,l){if(l===Xn)return!0;var c=n.get(l),f=c!==void 0&&c.v!==Vt||Reflect.has(i,l);if(c!==void 0||Ke!==null&&(!f||cr(i,l)?.writable)){c===void 0&&(c=u(()=>{var v=f?ys(i[l]):Vt,h=xr(v);return h}),n.set(l,c));var d=o(c);if(d===Vt)return!1}return f},set(i,l,c,f){var d=n.get(l),v=l in i;if(r&&l==="length")for(var h=c;hxr(Vt)),n.set(h+"",p))}if(d===void 0)(!v||cr(i,l)?.writable)&&(d=u(()=>xr(void 0)),w(d,ys(c)),n.set(l,d));else{v=d.v!==Vt;var x=u(()=>ys(c));w(d,x)}var y=Reflect.getOwnPropertyDescriptor(i,l);if(y?.set&&y.set.call(f,c),!v){if(r&&typeof l=="string"){var _=n.get("length"),E=Number(l);Number.isInteger(E)&&E>=_.v&&w(_,E+1)}ia(s)}return!0},ownKeys(i){o(s);var l=Reflect.ownKeys(i).filter(d=>{var v=n.get(d);return v===void 0||v.v!==Vt});for(var[c,f]of n)f.v!==Vt&&!(c in i)&&l.push(c);return l},setPrototypeOf(){Jd()}})}function bi(e){try{if(e!==null&&typeof e=="object"&&Xn in e)return e[Xn]}catch{}return e}function Pf(e,t){return Object.is(bi(e),bi(t))}var au,Jl,Xl,Ql;function If(){if(au===void 0){au=window,Jl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Xl=cr(t,"firstChild").get,Ql=cr(t,"nextSibling").get,hi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),hi(n)&&(n.__t=void 0)}}function Nr(e=""){return document.createTextNode(e)}function Zn(e){return Xl.call(e)}function Sa(e){return Ql.call(e)}function g(e,t){return Zn(e)}function me(e,t=!1){{var n=Zn(e);return n instanceof Comment&&n.data===""?Sa(n):n}}function C(e,t=1,n=!1){let r=e;for(;t--;)r=Sa(r);return r}function Nf(e){e.textContent=""}function Ho(){return!1}function Lf(e,t){if(t){const n=document.body;e.autofocus=!0,ts(()=>{document.activeElement===n&&e.focus()})}}let _i=!1;function Of(){_i||(_i=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function yu(e){var t=Qe,n=Ke;vn(null),Tn(null);try{return e()}finally{vn(t),Tn(n)}}function ec(e,t,n,r=n){e.addEventListener(t,()=>yu(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Of()}function tc(e){Ke===null&&Qe===null&&Vd(),Qe!==null&&(Qe.f&An)!==0&&Ke===null&&Wd(),rs&&Hd()}function $f(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function tr(e,t,n,r=!0){var s=Ke;s!==null&&(s.f&Un)!==0&&(e|=Un);var a={ctx:gt,deps:null,nodes_start:null,nodes_end:null,f:e|Dn,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(n)try{Wr(a),a.f|=zo}catch(l){throw nn(a),l}else t!==null&&Ds(a);if(r){var u=a;if(n&&u.deps===null&&u.teardown===null&&u.nodes_start===null&&u.first===u.last&&(u.f&Is)===0&&(u=u.first),u!==null&&(u.parent=s,s!==null&&$f(u,s),Qe!==null&&(Qe.f&wn)!==0&&(e&Qr)===0)){var i=Qe;(i.effects??=[]).push(u)}}return a}function Rf(){return Qe!==null&&!$n}function xu(e){const t=tr(mu,null,!1);return fn(t,Jt),t.teardown=e,t}function go(e){tc();var t=Ke.f,n=!Qe&&(t&hr)!==0&&(t&zo)===0;if(n){var r=gt;(r.e??=[]).push(e)}else return nc(e)}function nc(e){return tr($o|Ll,e,!1)}function zf(e){return tc(),tr(mu|Ll,e,!0)}function Uf(e){dr.ensure();const t=tr(Qr|Is,e,!0);return(n={})=>new Promise(r=>{n.outro?Mr(t,()=>{nn(t),r(void 0)}):(nn(t),r(void 0))})}function qn(e){return tr($o,e,!1)}function ve(e,t){var n=gt,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ls(()=>{e(),!r.ran&&(r.ran=!0,m(t))})}function Rt(){var e=gt;Ls(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&Jt)!==0&&fn(n,mr),Ca(n)&&Wr(n),t.ran=!1}})}function Bf(e){return tr(Uo|Is,e,!0)}function Ls(e,t=0){return tr(mu|t,e,!0)}function K(e,t=[],n=[]){Wl(t,n,r=>{tr(mu,()=>e(...r.map(o)),!0)})}function ns(e,t=0){var n=tr(Ms|t,e,!0);return n}function cn(e,t=!0){return tr(hr|Is,e,!0,t)}function rc(e){var t=e.teardown;if(t!==null){const n=rs,r=Qe;xi(!0),vn(null);try{t.call(null)}finally{xi(n),vn(r)}}}function sc(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&yu(()=>{s.abort(Bo)});var r=n.next;(n.f&Qr)!==0?n.parent=null:nn(n,t),n=r}}function jf(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&hr)===0&&nn(t),t=n}}function nn(e,t=!0){var n=!1;(t||(e.f&Bd)!==0)&&e.nodes_start!==null&&e.nodes_end!==null&&(ac(e.nodes_start,e.nodes_end),n=!0),sc(e,t&&!n),uu(e,0),fn(e,es);var r=e.transitions;if(r!==null)for(const a of r)a.stop();rc(e);var s=e.parent;s!==null&&s.first!==null&&uc(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function ac(e,t){for(;e!==null;){var n=e===t?null:Sa(e);e.remove(),e=n}}function uc(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Mr(e,t){var n=[];Wo(e,n,!0),oc(n,()=>{nn(e),t&&t()})}function oc(e,t){var n=e.length;if(n>0){var r=()=>--n||t();for(var s of e)s.out(r)}else t()}function Wo(e,t,n){if((e.f&Un)===0){if(e.f^=Un,e.transitions!==null)for(const u of e.transitions)(u.is_global||n)&&t.push(u);for(var r=e.first;r!==null;){var s=r.next,a=(r.f&Ps)!==0||(r.f&hr)!==0;Wo(r,t,a?n:!1),r=s}}}function ku(e){ic(e,!0)}function ic(e,t){if((e.f&Un)!==0){e.f^=Un,(e.f&Jt)===0&&(fn(e,Dn),Ds(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ps)!==0||(n.f&hr)!==0;ic(n,s?t:!1),n=r}if(e.transitions!==null)for(const a of e.transitions)(a.is_global||t)&&a.in()}}let bs=null;function qf(e){var t=bs;try{if(bs=new Set,m(e),t!==null)for(var n of bs)t.add(n);return bs}finally{bs=t}}function _y(e){for(var t of qf(e))Zr(t,t.v)}let Es=!1;function yi(e){Es=e}let rs=!1;function xi(e){rs=e}let Qe=null,$n=!1;function vn(e){Qe=e}let Ke=null;function Tn(e){Ke=e}let fr=null;function lc(e){Qe!==null&&(fr===null?fr=[e]:fr.push(e))}let ln=null,yn=0,Sn=null;function Hf(e){Sn=e}let cc=1,ma=0,Hr=ma;function ki(e){Hr=e}let Ar=!1;function dc(){return++cc}function Ca(e){var t=e.f;if((t&Dn)!==0)return!0;if((t&mr)!==0){var n=e.deps,r=(t&An)!==0;if(n!==null){var s,a,u=(t&ru)!==0,i=r&&Ke!==null&&!Ar,l=n.length;if((u||i)&&(Ke===null||(Ke.f&es)===0)){var c=e,f=c.parent;for(s=0;se.wv)return!0}(!r||Ke!==null&&!Ar)&&fn(e,Jt)}return!1}function fc(e,t,n=!0){var r=e.reactions;if(r!==null&&!fr?.includes(e))for(var s=0;s{e.ac.abort(Bo)}),e.ac=null);try{e.f|=ho;var d=e.fn,v=d(),h=e.deps;if(ln!==null){var p;if(uu(e,yn),h!==null&&yn>0)for(h.length=yn+ln.length,p=0;pn?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ts(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function W(e,t,n,r,s){var a={capture:r,passive:s},u=vc(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&xu(()=>{t.removeEventListener(e,u,a)})}function t0(e){for(var t=0;t{throw E});throw v}}finally{e.__root=t,delete e.currentTarget,vn(f),Tn(d)}}}function Vo(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("",""),t.content}function Yr(e,t){var n=Ke;n.nodes_start===null&&(n.nodes_start=e,n.nodes_end=t)}function F(e,t){var n=(t&uf)!==0,r=(t&of)!==0,s,a=!e.startsWith("");return()=>{s===void 0&&(s=Vo(a?e:""+e),n||(s=Zn(s)));var u=r||Jl?document.importNode(s,!0):s.cloneNode(!0);if(n){var i=Zn(u),l=u.lastChild;Yr(i,l)}else Yr(u,u);return u}}function n0(e,t,n="svg"){var r=!e.startsWith(""),s=`<${n}>${r?e:""+e}`,a;return()=>{if(!a){var u=Vo(s),i=Zn(u);a=Zn(i)}var l=a.cloneNode(!0);return Yr(l,l),l}}function Go(e,t){return n0(e,t,"svg")}function Bn(e=""){{var t=Nr(e+"");return Yr(t,t),t}}function Ae(){var e=document.createDocumentFragment(),t=document.createComment(""),n=Nr();return e.append(t,n),Yr(t,n),e}function k(e,t){e!==null&&e.before(t)}function X(e,t){var n=t==null?"":typeof t=="object"?t+"":t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=n+"")}function r0(e,t){return s0(e,t)}const ls=new Map;function s0(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:u=!0}){If();var i=new Set,l=d=>{for(var v=0;v{var d=n??t.appendChild(Nr());return Sf(d,{pending:()=>{}},v=>{if(a){it({});var h=gt;h.c=a}s&&(r.$$events=s),c=e(v,r)||{},a&<()}),()=>{for(var v of i){t.removeEventListener(v,sa);var h=ls.get(v);--h===0?(document.removeEventListener(v,sa),ls.delete(v)):ls.set(v,h)}_o.delete(l),d!==n&&d.parentNode?.removeChild(d)}});return a0.set(c,f),c}let a0=new WeakMap;function $(e,t,n=!1){var r=e,s=null,a=null,u=Vt,i=n?Ps:0,l=!1;const c=(h,p=!0)=>{l=!0,v(p,h)};var f=null;function d(){f!==null&&(f.lastChild.remove(),r.before(f),f=null);var h=u?s:a,p=u?a:s;h&&ku(h),p&&Mr(p,()=>{u?a=null:s=null})}const v=(h,p)=>{if(u!==(u=h)){var x=Ho(),y=r;if(x&&(f=document.createDocumentFragment(),f.append(y=Nr())),u?s??=p&&cn(()=>p(y)):a??=p&&cn(()=>p(y)),x){var _=kt,E=u?s:a,S=u?a:s;E&&_.skipped_effects.delete(E),S&&_.skipped_effects.add(S),_.add_callback(d)}else d()}};ns(()=>{l=!1,t(c),l||v(null,null)},i)}function zn(e,t){return t}function u0(e,t,n){for(var r=e.items,s=[],a=t.length,u=0;u0&&s.length===0&&n!==null;if(i){var l=n.parentNode;Nf(l),l.append(n),r.clear(),Gn(e,t[0].prev,t[a-1].next)}oc(s,()=>{for(var c=0;c{var _=n();return ka(_)?_:_==null?[]:Lo(_)}),p,x;function y(){o0(x,p,i,v,u,s,t,r,n),a!==null&&(p.length===0?f?ku(f):f=cn(()=>a(u)):f!==null&&Mr(f,()=>{f=null}))}ns(()=>{x??=Ke,p=o(h);var _=p.length;if(!(d&&_===0)){d=_===0;var E,S,b,D;if(Ho()){var A=new Set,P=kt;for(S=0;S<_;S+=1){b=p[S],D=r(b,S);var Z=i.items.get(D)??v.get(D);Z?(t&(gu|bu))!==0&&gc(Z,b,S,t):(E=bc(null,i,null,null,b,D,S,s,t,n,!0),v.set(D,E)),A.add(D)}for(const[Y,T]of i.items)A.has(Y)||P.skipped_effects.add(T.e);P.add_callback(y)}else y();o(h)}})}function o0(e,t,n,r,s,a,u,i,l){var c=(u&ef)!==0,f=(u&(gu|bu))!==0,d=t.length,v=n.items,h=n.first,p=h,x,y=null,_,E=[],S=[],b,D,A,P;if(c)for(P=0;P0){var de=(u&$l)!==0&&d===0?s:null;if(c){for(P=0;P{if(_!==void 0)for(A of _)A.a?.apply()}),e.first=n.first&&n.first.e,e.last=y&&y.e;for(var ae of r.values())nn(ae.e);r.clear()}function gc(e,t,n,r){(r&gu)!==0&&Zr(e.v,t),(r&bu)!==0?Zr(e.i,n):e.i=n}function bc(e,t,n,r,s,a,u,i,l,c,f){var d=(l&gu)!==0,v=(l&tf)===0,h=d?v?R(s,!1,!1):Pr(s):s,p=(l&bu)===0?u:Pr(u),x={i:p,v:h,k:a,a:null,e:null,prev:n,next:r};try{if(e===null){var y=document.createDocumentFragment();y.append(e=Nr())}return x.e=cn(()=>i(e,h,p,c),hf),x.e.prev=n&&n.e,x.e.next=r&&r.e,n===null?f||(t.first=x):(n.next=x,n.e.next=x.e),r!==null&&(r.prev=x,r.e.prev=x.e),x}finally{}}function Nu(e,t,n){for(var r=e.next?e.next.e.nodes_start:n,s=t?t.e.nodes_start:n,a=e.e.nodes_start;a!==null&&a!==r;){var u=Sa(a);s.before(a),a=u}}function Gn(e,t,n){t===null?e.first=n:(t.next=n,t.e.next=n&&n.e),n!==null&&(n.prev=t,n.e.prev=t&&t.e)}function yo(e,t,n=!1,r=!1,s=!1){var a=e,u="";K(()=>{var i=Ke;if(u!==(u=t()??"")&&(i.nodes_start!==null&&(ac(i.nodes_start,i.nodes_end),i.nodes_start=i.nodes_end=null),u!=="")){var l=u+"";n?l=`${l}`:r&&(l=`${l}`);var c=Vo(l);if((n||r)&&(c=Zn(c)),Yr(Zn(c),c.lastChild),n||r)for(;Zn(c);)a.before(Zn(c));else a.before(c)}})}function tn(e,t,n,r,s){var a=t.$$slots?.[n],u=!1;a===!0&&(a=t[n==="default"?"children":n],u=!0),a===void 0||a(e,u?()=>r:r)}function Ei(e,t,n){var r=e,s,a,u=null,i=null;function l(){a&&(Mr(a),a=null),u&&(u.lastChild.remove(),r.before(u),u=null),a=i,i=null}ns(()=>{if(s!==(s=t())){var c=Ho();if(s){var f=r;c&&(u=document.createDocumentFragment(),u.append(f=Nr()),a&&kt.skipped_effects.add(a)),i=cn(()=>n(f,s))}c?kt.add_callback(l):l()}},Ps)}function i0(e,t,n,r,s,a){var u,i,l=null,c=e,f;ns(()=>{const d=t()||null;var v=cf;d!==u&&(f&&(d===null?Mr(f,()=>{f=null,i=null}):d===i?ku(f):nn(f)),d&&d!==i&&(f=cn(()=>{if(l=document.createElementNS(v,d),Yr(l,l),r){var h=l.appendChild(Nr());r(l,h)}Ke.nodes_end=l,c.before(l)})),u=d,u&&(i=u))},Ps)}function Jr(e,t,n){qn(()=>{var r=m(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ls(()=>{var u=n();O(u),s&&jo(a,u)&&(a=u,r.update(u))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function l0(e,t){var n=void 0,r;ns(()=>{n!==(n=t())&&(r&&(nn(r),r=null),n&&(r=cn(()=>{qn(()=>n(e))})))})}function _c(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t=0;){var i=u+a;(u===0||Si.includes(r[u-1]))&&(i===r.length||Si.includes(r[i]))?r=(u===0?"":r.substring(0,u))+r.substring(i+1):u=i}}return r===""?null:r}function Ci(e,t=!1){var n=t?" !important;":";",r="";for(var s in e){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function Lu(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function f0(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,u=0,i=!1,l=[];r&&l.push(...Object.keys(r).map(Lu)),s&&l.push(...Object.keys(s).map(Lu));var c=0,f=-1;const x=e.length;for(var d=0;d{kn(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),xu(()=>{t.disconnect()})}function yy(e,t,n=t){var r=!0;ec(e,"change",s=>{var a=s?"[selected]":":checked",u;if(e.multiple)u=[].map.call(e.querySelectorAll(a),la);else{var i=e.querySelector(a)??e.querySelector("option:not([disabled])");u=i&&la(i)}n(u)}),qn(()=>{var s=t();if(kn(e,s,r),r&&s===void 0){var a=e.querySelector(":checked");a!==null&&(s=la(a),n(s))}e.__value=s,r=!1}),jn(e)}function la(e){return"__value"in e?e.__value:e.value}const Ws=Symbol("class"),Vs=Symbol("style"),yc=Symbol("is custom element"),xc=Symbol("is html");function Dt(e,t){var n=wu(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!=="PROGRESS")||(e.value=t??"")}function Gt(e,t){var n=wu(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function p0(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function fe(e,t,n,r){var s=wu(e);s[t]!==(s[t]=n)&&(t==="loading"&&(e[jd]=n),n==null?e.removeAttribute(t):typeof n!="string"&&kc(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function h0(e,t,n,r,s=!1,a=!1){var u=wu(e),i=u[yc],l=!u[xc],c=t||{},f=e.tagName==="OPTION";for(var d in t)d in n||(n[d]=null);n.class?n.class=Ga(n.class):n[Ws]&&(n.class=null),n[Vs]&&(n.style??=null);var v=kc(e);for(const S in n){let b=n[S];if(f&&S==="value"&&b==null){e.value=e.__value="",c[S]=b;continue}if(S==="class"){var h=e.namespaceURI==="http://www.w3.org/1999/xhtml";Ct(e,h,b,r,t?.[Ws],n[Ws]),c[S]=b,c[Ws]=n[Ws];continue}if(S==="style"){xn(e,b,t?.[Vs],n[Vs]),c[S]=b,c[Vs]=n[Vs];continue}var p=c[S];if(!(b===p&&!(b===void 0&&e.hasAttribute(S)))){c[S]=b;var x=S[0]+S[1];if(x!=="$$")if(x==="on"){const D={},A="$$"+S;let P=S.slice(2);var y=Yf(P);if(Kf(P)&&(P=P.slice(0,-7),D.capture=!0),!y&&p){if(b!=null)continue;e.removeEventListener(P,c[A],D),c[A]=null}if(b!=null)if(y)e[`__${P}`]=b,t0([P]);else{let Z=function(Y){c[S].call(this,Y)};c[A]=vc(P,e,Z,D)}else y&&(e[`__${P}`]=void 0)}else if(S==="style")fe(e,S,b);else if(S==="autofocus")Lf(e,!!b);else if(!i&&(S==="__value"||S==="value"&&b!=null))e.value=e.__value=b;else if(S==="selected"&&f)p0(e,b);else{var _=S;l||(_=Xf(_));var E=_==="defaultValue"||_==="defaultChecked";if(b==null&&!i&&!E)if(u[S]=null,_==="value"||_==="checked"){let D=e;const A=t===void 0;if(_==="value"){let P=D.defaultValue;D.removeAttribute(_),D.defaultValue=P,D.value=D.__value=A?P:null}else{let P=D.defaultChecked;D.removeAttribute(_),D.defaultChecked=P,D.checked=A?P:!1}}else e.removeAttribute(S);else E||v.includes(_)&&(i||typeof b!="string")?(e[_]=b,_ in u&&(u[_]=Vt)):typeof b!="function"&&fe(e,_,b)}}}return c}function Ai(e,t,n=[],r=[],s,a=!1,u=!1){Wl(n,r,i=>{var l=void 0,c={},f=e.nodeName==="SELECT",d=!1;if(ns(()=>{var h=t(...i.map(o)),p=h0(e,l,h,s,a,u);d&&f&&"value"in h&&kn(e,h.value);for(let y of Object.getOwnPropertySymbols(c))h[y]||nn(c[y]);for(let y of Object.getOwnPropertySymbols(h)){var x=h[y];y.description===df&&(!l||x!==l[y])&&(c[y]&&nn(c[y]),c[y]=cn(()=>l0(e,()=>x))),p[y]=x}l=p}),f){var v=e;qn(()=>{kn(v,l.value,!0),jn(v)})}d=!0})}function wu(e){return e.__attributes??={[yc]:e.nodeName.includes("-"),[xc]:e.namespaceURI===lf}}var Di=new Map;function kc(e){var t=e.getAttribute("is")||e.nodeName,n=Di.get(t);if(n)return n;Di.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Nl(s);for(var u in r)r[u].set&&n.push(u);s=Oo(s)}return n}function pr(e,t,n=t){var r=new WeakSet;ec(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=$u(e)?Ru(a):a,n(a),kt!==null&&r.add(kt),await Vf(),a!==(a=t())){var u=e.selectionStart,i=e.selectionEnd;e.value=a??"",i!==null&&(e.selectionStart=u,e.selectionEnd=Math.min(i,e.value.length))}}),m(t)==null&&e.value&&(n($u(e)?Ru(e.value):e.value),kt!==null&&r.add(kt)),Ls(()=>{var s=t();if(e===document.activeElement){var a=Va??kt;if(r.has(a))return}$u(e)&&s===Ru(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}function $u(e){var t=e.type;return t==="number"||t==="range"}function Ru(e){return e===""?null:+e}function m0(e,t,n){var r=cr(e,t);r&&r.set&&(e[t]=n,xu(()=>{e[t]=null}))}function Ti(e,t){return e===t||e?.[Xn]===t}function Xr(e={},t,n,r){return qn(()=>{var s,a;return Ls(()=>{s=a,a=[],m(()=>{e!==n(...a)&&(t(e,...a),s&&Ti(n(...s),e)&&t(null,...s))})}),()=>{ts(()=>{a&&Ti(n(...a),e)&&t(null,...a)})}}),e}function Ko(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function dt(e=!1){const t=gt,n=t.l.u;if(!n)return;let r=()=>O(t.s);if(e){let s=0,a={};const u=Ea(()=>{let i=!1;const l=t.s;for(const c in l)l[c]!==a[c]&&(a[c]=l[c],i=!0);return i&&s++,s});r=()=>o(u)}n.b.length&&zf(()=>{Fi(t,r),ha(n.b)}),go(()=>{const s=m(()=>n.m.map(Rd));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&go(()=>{Fi(t,r),ha(n.a)})}function Fi(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function Zo(e,t,n){if(e==null)return t(void 0),n&&n(void 0),Tr;const r=m(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}const cs=[];function v0(e,t){return{subscribe:Tt(e,t).subscribe}}function Tt(e,t=Tr){let n=null;const r=new Set;function s(i){if(jo(e,i)&&(e=i,n)){const l=!cs.length;for(const c of r)c[1](),cs.push(c,e);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:s,update:a,subscribe:u}}function Ht(e,t,n){const r=!Array.isArray(e),s=r?[e]:e;if(!s.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const a=t.length<2;return v0(n,(u,i)=>{let l=!1;const c=[];let f=0,d=Tr;const v=()=>{if(f)return;d();const p=t(r?c[0]:c,u,i);a?u(p):d=typeof p=="function"?p:Tr},h=s.map((p,x)=>Zo(p,y=>{c[x]=y,f&=~(1<{f|=1<t=n)(),t}let Oa=!1,xo=Symbol();function at(e,t,n){const r=n[t]??={store:null,source:R(void 0),unsubscribe:Tr};if(r.store!==e&&!(xo in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=Tr;else{var s=!0;r.unsubscribe=Zo(e,a=>{s?r.source.v=a:w(r.source,a)}),s=!1}return e&&xo in n?nt(e):o(r.source)}function Hn(){const e={};function t(){xu(()=>{for(var n in e)e[n].unsubscribe();nu(e,xo,{enumerable:!1,value:!0})})}return[e,t]}function g0(e,t,n){return e.set(n),t}function b0(e){var t=Oa;try{return Oa=!1,[e(),Oa]}finally{Oa=t}}const _0={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=Ke;try{Tn(e.parent_effect),e.special[t]=oe({get[t](){return e.props[t]}},t,Rl)}finally{Tn(r)}}return e.special[t](n),gi(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),gi(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Fn(e,t){return new Proxy({props:e,exclude:t,special:{},version:Pr(0),parent_effect:Ke},_0)}const y0={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Hs(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];Hs(s)&&(s=s());const a=cr(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Hs(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=cr(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Xn||t===Ol)return!1;for(let n of e.props)if(Hs(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Hs(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function nr(...e){return new Proxy({props:e},y0)}function oe(e,t,n,r){var s=!Ns||(n&rf)!==0,a=(n&sf)!==0,u=(n&af)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=u?m(r):r),i),f;if(a){var d=Xn in e||Ol in e;f=cr(e,t)?.set??(d&&t in e?S=>e[t]=S:void 0)}var v,h=!1;a?[v,h]=b0(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=c(),f&&(s&&Zd(),f(v)));var p;if(s?p=()=>{var S=e[t];return S===void 0?c():(l=!0,S)}:p=()=>{var S=e[t];return S!==void 0&&(i=void 0),S===void 0?i:S},s&&(n&Rl)===0)return p;if(f){var x=e.$$legacy;return(function(S,b){return arguments.length>0?((!s||!b||x||h)&&f(b?p():S),S):p()})}var y=!1,_=((n&nf)!==0?Ea:vt)(()=>(y=!1,p()));a&&o(_);var E=Ke;return(function(S,b){if(arguments.length>0){const D=b?o(_):s&&a?ys(S):S;return w(_,D),y=!0,i!==void 0&&(i=D),S}return rs&&y||(E.f&es)!==0?_.v:o(_)})}function Aa(e){gt===null&&vu(),Ns&>.l!==null?Ec(gt).m.push(e):go(()=>{const t=m(e);if(typeof t=="function")return t})}function Da(e){gt===null&&vu(),Aa(()=>()=>m(e))}function x0(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function It(){const e=gt;return e===null&&vu(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=ka(s)?s.slice():[s],u=x0(t,n,r);for(const i of a)i.call(e.x,u);return!u.defaultPrevented}return!0}}function wc(e){gt===null&&vu(),gt.l===null&&Kd(),Ec(gt).a.push(e)}function Ec(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const k0="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(k0);vf();const yt="";function pt(e){return e.startsWith("/")?`${yt}${e}`:`${yt}/${e}`}const w0=/\r?\n/;function Mi(e){const t=[],n=e.split(/\n\n|\r\r|\r\n\r\n/);for(const r of n){const s=r.trim();if(!s)continue;const a=s.split(w0);let u="message",i=[],l;for(const c of a)if(c&&!c.startsWith(":")){if(c.startsWith("event:")){u=c.slice(6).trim()||"message";continue}if(c.startsWith("data:")){i.push(c.slice(5).trimStart());continue}if(c.startsWith("id:")){l=c.slice(3).trim();continue}}t.push({event:u,data:i.length?i.join(` +`):void 0,id:l})}return t}class er extends Error{status;constructor(t,n){super(n),this.status=t}}async function xt(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const s=await n.json();r=s.detail||s.message||JSON.stringify(s)}catch{}throw new er(n.status,r)}return await n.json()}async function Sc(e,t){const n=await fetch(e,{headers:{"Content-Type":"application/json",Accept:"application/json",...t?.headers},...t});if(!n.ok){let r=n.statusText;try{const s=await n.json();r=s.detail||s.message||JSON.stringify(s)}catch{}throw new er(n.status,r)}}async function E0(){return xt(pt("/api/models"))}async function S0(){return xt(pt("/api/stt/deepgram/token"),{method:"POST",body:JSON.stringify({})})}async function C0(e){const t=`/api/chat/generation/${encodeURIComponent(e)}`;return xt(pt(t))}async function Pi(e,t){const n=`/api/chat/session/${encodeURIComponent(e)}/messages/${encodeURIComponent(t)}`;await Sc(pt(n),{method:"DELETE"})}async function A0(){return xt(pt("/api/clients/svelte/llm"))}async function Ii(e){return xt(pt("/api/clients/svelte/llm"),{method:"PUT",body:JSON.stringify(e)})}async function D0(){return{system_prompt:(await xt(pt("/api/clients/svelte/llm"))).system_prompt}}async function T0(e){return{system_prompt:(await xt(pt("/api/clients/svelte/llm"),{method:"PUT",body:JSON.stringify({system_prompt:e.system_prompt})})).system_prompt}}async function F0(){return xt(pt("/api/mcp/servers/"))}async function M0(e,t){const n=`/api/mcp/servers/${encodeURIComponent(e)}`;return xt(pt(n),{method:"PATCH",body:JSON.stringify(t)})}async function P0(){return xt(pt("/api/mcp/servers/refresh"),{method:"POST",body:JSON.stringify({})})}async function I0(e,t,n){const r=`/api/mcp/servers/${encodeURIComponent(e)}/clients/${encodeURIComponent(t)}?enabled=${n}`;return xt(pt(r),{method:"PATCH"})}async function N0(){return xt(pt("/api/google-auth/status"))}async function L0(e){return xt(pt("/api/google-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function O0(){return xt(pt("/api/monarch-auth/status"))}async function $0(e){return xt(pt("/api/monarch-auth/credentials"),{method:"POST",body:JSON.stringify(e)})}async function R0(){return xt(pt("/api/monarch-auth/credentials"),{method:"DELETE"})}async function z0(){return xt(pt("/api/spotify-auth/status"))}async function U0(e){return xt(pt("/api/spotify-auth/authorize"),{method:"POST",body:JSON.stringify(e)})}async function B0(e,t){const n=new FormData;n.append("file",e),n.append("session_id",t);const r=await fetch(pt("/api/uploads"),{method:"POST",body:n});if(!r.ok){let s=r.statusText||"Upload failed";try{s=(await r.json())?.detail??s}catch{}throw new er(r.status||0,s)}return await r.json()}const j0=/\n\n|\r\r|\r\n\r\n/;async function q0(e,{onChunk:t,onDone:n,onError:r,onSession:s,onNotice:a,signal:u}={}){const i=await fetch(pt("/api/chat/stream"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e),signal:u});if(!i.ok||!i.body){const d=i.statusText||"Failed to connect to chat stream",v=new er(i.status||0,d);throw r?.(v),v}const l=i.body.getReader(),c=new TextDecoder;let f="";try{for(;;){const{value:d,done:v}=await l.read();if(v)break;f+=c.decode(d,{stream:!0});const h=f.split(j0);f=h.pop()??"";for(const p of h){const x=Mi(p);for(const y of x){if(y.event==="session"&&y.data){try{const _=JSON.parse(y.data);_.session_id&&s?.(_.session_id)}catch(_){console.warn("Failed to parse session payload",_)}continue}if(y.event==="notice"){if(y.data)try{const _=JSON.parse(y.data);a?.(_)}catch(_){console.warn("Failed to parse notice payload",_,y.data)}continue}if(y.event!=="message"){t?.({choices:[],object:"event",meta:{event:y.event,data:y.data}},y);continue}if(y.data==="[DONE]"){n?.();return}if(y.data)try{const _=JSON.parse(y.data);t?.(_,y)}catch(_){console.warn("Failed to parse SSE chunk",_,y.data)}}}}if(f.trim()){const d=Mi(f);for(const v of d)if(v.event==="session"&&v.data)try{const h=JSON.parse(v.data);h.session_id&&s?.(h.session_id)}catch(h){console.warn("Failed to parse session payload",h)}else if(v.event==="notice"){if(v.data)try{const h=JSON.parse(v.data);a?.(h)}catch(h){console.warn("Failed to parse notice payload",h,v.data)}}else if(v.event==="message"){if(v.data==="[DONE]")n?.();else if(v.data)try{const h=JSON.parse(v.data);t?.(h,v)}catch(h){console.warn("Failed to parse SSE chunk",h,v.data)}}}n?.()}catch(d){if(d instanceof DOMException&&d.name==="AbortError")return;const v=d instanceof Error?d:new Error(String(d));throw r?.(v),v}finally{l.releaseLock()}}async function Gs(){const e=await xt(pt("/api/clients/svelte/presets"));return e.presets.map((t,n)=>({name:t.name,model:t.llm?.model??"unknown",is_default:n===e.active_index,has_filters:!1,created_at:t.created_at??new Date().toISOString(),updated_at:t.updated_at??new Date().toISOString()}))}async function H0(e){const t=await xt(pt("/api/clients/svelte/llm")),n={name:e.name,llm:t},s=(await xt(pt("/api/clients/svelte/presets"),{method:"POST",body:JSON.stringify(n)})).presets.find(a=>a.name===e.name);if(!s)throw new er(500,"Failed to create preset");return s}async function W0(e,t){const r=(await xt(pt("/api/clients/svelte/presets"))).presets.findIndex(i=>i.name===e);if(r===-1)throw new er(404,`Preset not found: ${e}`);const s=await xt(pt("/api/clients/svelte/llm")),u=(await xt(pt(`/api/clients/svelte/presets/${r}`),{method:"PUT",body:JSON.stringify({llm:s})})).presets[r];if(!u)throw new er(500,"Failed to save preset snapshot");return u}async function V0(e){return await Sc(pt(`/api/clients/svelte/presets/by-name/${encodeURIComponent(e)}`),{method:"DELETE"}),{deleted:!0}}async function G0(e){const t=`/api/clients/svelte/presets/by-name/${encodeURIComponent(e)}/apply`;return(await xt(pt(t),{method:"POST",body:JSON.stringify({})})).llm}async function K0(e){const t=`/api/clients/svelte/presets/by-name/${encodeURIComponent(e)}/set-active`,r=(await xt(pt(t),{method:"POST",body:JSON.stringify({})})).presets.find(s=>s.name===e);if(!r)throw new er(404,`Preset not found: ${e}`);return r}async function Z0(){const e=await xt(pt("/api/clients/svelte/presets"));return e.active_index!==null&&e.presets[e.active_index]?e.presets[e.active_index]:null}const Cc=[{key:"total_cost",label:"Total cost"},{key:"created_at",label:"Created"},{key:"model",label:"Model"},{key:"origin",label:"Origin"},{key:"usage",label:"Usage"},{key:"is_byok",label:"Self-hosted"},{key:"cache_discount",label:"Cache discount"},{key:"upstream_inference_cost",label:"Upstream inference cost"},{key:"cancelled",label:"Cancelled"},{key:"provider_name",label:"Provider"},{key:"latency",label:"Latency (ms)"},{key:"moderation_latency",label:"Moderation latency (ms)"},{key:"generation_time",label:"Generation time (ms)"},{key:"finish_reason",label:"Finish reason"},{key:"native_finish_reason",label:"Native finish reason"},{key:"tokens_prompt",label:"Prompt tokens"},{key:"tokens_completion",label:"Completion tokens"},{key:"native_tokens_prompt",label:"Native prompt tokens"},{key:"native_tokens_completion",label:"Native completion tokens"},{key:"native_tokens_reasoning",label:"Native reasoning tokens"},{key:"num_media_prompt",label:"Prompt media"},{key:"num_media_completion",label:"Completion media"},{key:"num_search_results",label:"Search results"}];function Ni(e){if(e==null||e==="")return{text:"—",isMultiline:!1};if(typeof e=="boolean")return{text:e?"Yes":"No",isMultiline:!1};if(typeof e=="number")return{text:Number.isFinite(e)?e.toString():String(e),isMultiline:!1};if(typeof e=="object")try{const n=JSON.stringify(e,null,2);return{text:n,isMultiline:n.includes(` +`)}}catch(n){console.warn("Failed to stringify generation detail value",n,e);const r=String(e);return{text:r,isMultiline:r.includes(` +`)}}const t=String(e);return{text:t,isMultiline:t.includes(` +`)}}const Y0="modulepreload",J0=function(e){return"/"+e},Li={},Oi=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const u=document.querySelector("meta[property=csp-nonce]"),i=u?.nonce||u?.getAttribute("nonce");s=l(n.map(c=>{if(c=J0(c),c in Li)return;Li[c]=!0;const f=c.endsWith(".css"),d=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const v=document.createElement("link");if(v.rel=f?"stylesheet":Y0,f||(v.as="script"),v.crossOrigin="",v.href=c,i&&v.setAttribute("nonce",i),document.head.appendChild(v),f)return new Promise((h,p)=>{v.addEventListener("load",h),v.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(u){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=u,window.dispatchEvent(i),!i.defaultPrevented)throw u}return s.then(u=>{for(const i of u||[])i.status==="rejected"&&a(i.reason);return t().catch(a)})},$i={enabled:!1,engine:null,maxResults:5,searchPrompt:"",contextSize:null};function Ri(e,t){const n={...t};if(Object.prototype.hasOwnProperty.call(e,"enabled")&&(n.enabled=!!e.enabled),Object.prototype.hasOwnProperty.call(e,"engine")){const r=e.engine;n.engine=r==="native"||r==="exa"?r:null}if(Object.prototype.hasOwnProperty.call(e,"maxResults")){const r=e.maxResults;if(r==null)n.maxResults=null;else{const s=Number(r);Number.isFinite(s)&&s>0?n.maxResults=Math.min(Math.round(s),25):n.maxResults=t.maxResults}}if(Object.prototype.hasOwnProperty.call(e,"searchPrompt")){const r=e.searchPrompt;n.searchPrompt=typeof r=="string"?r:t.searchPrompt}if(Object.prototype.hasOwnProperty.call(e,"contextSize")){const r=e.contextSize;n.contextSize=r==="low"||r==="medium"||r==="high"?r:null}return n}function X0(e=$i){const t=Tt({...e});function n(u){t.update(i=>Ri(u,i))}function r(u){t.update(i=>Ri({enabled:u},i))}function s(){t.set({...$i})}const a=Ht(t,u=>u.enabled);return{subscribe:t.subscribe,get current(){return nt(t)},update:n,setEnabled:r,reset:s,isEnabled:a}}const Ac=X0(),Q0=[{label:"GPT",keywords:["gpt","openai","o1","o3"]},{label:"Claude",keywords:["claude"]},{label:"Gemini",keywords:["gemini","palm-2","palm2"]},{label:"Grok",keywords:["grok"]},{label:"Cohere",keywords:["cohere","command"]},{label:"Nova",keywords:["nova"]},{label:"Qwen",keywords:["qwen"]},{label:"Yi",keywords:["yi"]},{label:"DeepSeek",keywords:["deepseek"]},{label:"Mistral",keywords:["mistral","mixtral"]},{label:"Llama4",keywords:["llama-4"]},{label:"Llama3",keywords:["llama-3"]},{label:"Llama2",keywords:["llama-2"]},{label:"RWKV",keywords:["rwkv"]},{label:"Router",keywords:["router"]},{label:"Media",keywords:["media"]},{label:"Other",keywords:[]}];function Dc(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function Yo(e){const t=[];if(Array.isArray(e)){for(const n of e)typeof n=="string"&&n.trim()&&t.push(n.trim().toLowerCase());return t}if(typeof e=="string"&&e.trim())return e.split(/[,/]/).map(n=>n.trim().toLowerCase()).filter(Boolean);if(e&&typeof e=="object"){const n=Object.values(e);for(const r of n)t.push(...Yo(r))}return t}function Jo(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const u of["input_modalities","input","modalities","inputs"])s(a[u])}return s(e.input_modalities),s(r),Array.from(t);function s(a){for(const u of Yo(a))t.add(u)}}function Xo(e){const t=new Set,{capabilities:n,tags:r}=e;if(n&&typeof n=="object"){const a=n;for(const i of["output_modalities","output","outputs"])s(a[i]);const u=a.modalities;u&&(s(u.output),s(u.outputs))}return s(e.output_modalities),s(r),Array.from(t);function s(a){for(const u of Yo(a))t.add(u)}}const Tc=1e6,Fc=6,ep=["prompt_price_per_million","input_price_per_million","input_token_price_per_million"],tp=["prompt_price","input_price","input_token_price"],np=["prompt","input","input_tokens","prompt_tokens"],rp=["completion_price_per_million","output_price_per_million","output_token_price_per_million"],sp=["completion_price","output_price","output_token_price"],ap=["completion","output","output_tokens","completion_tokens"];function Mc(e,t){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number(e.toFixed(t))}function Pc(e,t,n){return e===null||!Number.isFinite(e)||e<0?null:e===0?0:Number((e*t).toFixed(n))}function ou(e,t){for(const n of t){if(!(n in e))continue;const r=Dc(e[n]);if(r!==null)return r}return null}function up(e){const t=[],n=s=>{s&&typeof s=="object"&&t.push(s)};n(e.pricing),e.provider&&typeof e.provider=="object"&&n(e.provider.pricing);const r=e.top_provider;return r&&typeof r=="object"&&n(r.pricing),t}function op(e,t,n,r,s){const a=ou(e,t),u=Mc(a,s);if(u!==null)return u;const i=ou(e,n),l=Pc(i,r,s);return l!==null?l:null}function ip(e,t,n,r,s){if(!e)return null;const a=e,u=ou(a,t),i=Mc(u,s);if(i!==null)return i;const l=ou(a,n),c=Pc(l,r,s);return c!==null?c:null}function Ic(e,t,n,r,s,a){const i=op(e,t,n,s,a);if(i!==null)return i;const l=[...r,...n];for(const c of up(e)){const f=ip(c,t,l,s,a);if(f!==null)return f}return null}function Nc(e){return Ic(e,ep,tp,np,Tc,Fc)}function lp(e){return Ic(e,rp,sp,ap,Tc,Fc)}function Ka(e){return Nc(e)}function ca(e){const t=[e.max_context,e.context_length,e.context_window,e.context_tokens,e.stats?.context_length];for(const n of t){const r=Dc(n);if(r!==null)return r}return null}function cp(e){return e===null?"—":e===0?"FREE":e>=100?`$${e.toFixed(0)}`:e>=10?`$${e.toFixed(1)}`:e>=1?`$${e.toFixed(2)}`:e>=.1?`$${e.toFixed(2)}`:`$${e.toFixed(3)}`}function $a(e){return e===null?"Unknown":e>=1e3?`${(e/1e3).toFixed(1)}k tokens`:`${e} tokens`}function Lc(e){const t=e.provider;if(t&&typeof t=="object"){const r=t,s=r.display_name;if(typeof s=="string"&&s.trim())return s.trim();const a=r.name??r.id??r.slug;if(typeof a=="string"&&a.trim())return a.trim()}if(typeof e.provider=="string")return e.provider.trim()||null;const n=e.id?.split("/")??[];return n.length>=2?n[n.length-2]??null:null}function Oc(e){const t=new Set,n=[];typeof e.id=="string"&&n.push(e.id.toLowerCase()),typeof e.name=="string"&&n.push(e.name.toLowerCase()),Array.isArray(e.tags)&&n.push(...e.tags.map(s=>String(s).toLowerCase()));const r=n.join(" ");for(const s of Q0)s.label!=="Other"&&s.keywords.some(a=>r.includes(a))&&t.add(s.label);return t.size===0&&t.add("Other"),Array.from(t)}function Qo(e){const t=new Set,n=[],r=e;if(n.push(r.parameters,r.supported_parameters),e.capabilities&&typeof e.capabilities=="object"){const s=e.capabilities;n.push(s.parameters,s.supports_parameters)}for(const s of n)if(s){if(Array.isArray(s)){for(const a of s){const u=zu(a);u&&t.add(u)}continue}if(typeof s=="object")for(const a of Object.keys(s)){const u=zu(a);u&&t.add(u)}if(typeof s=="string"){const a=zu(s);a&&t.add(a)}}return Array.from(t)}function $c(e){const t=e,n=[t.is_moderated,t.moderation,t.requires_moderation],r=e.capabilities;r&&typeof r=="object"&&(n.push(r.is_moderated),n.push(r.requires_moderation));const s=e.provider;s&&typeof s=="object"&&n.push(s.is_moderated);const a=t.top_provider;a&&typeof a=="object"&&n.push(a.is_moderated);const u=t.metadata;u&&typeof u=="object"&&n.push(u.is_moderated);for(const i of n)if(typeof i=="boolean")return i?"moderated":"unmoderated";return null}function zu(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function ds(){return{include:[],exclude:[]}}function ko(){return{search:"",inputModalities:ds(),outputModalities:ds(),minContext:null,minPromptPrice:null,maxPromptPrice:null,sort:"newness",series:ds(),providers:ds(),supportedParameters:ds(),moderation:ds()}}const dp={inputModalities:[],outputModalities:[],minContext:null,maxContext:null,minPromptPrice:null,maxPromptPrice:null,series:[],providers:[],supportedParameters:[],moderation:[]},fp={models:[],loading:!1,error:null,filters:ko(),facets:{...dp}};function pp(e){const t=new Set,n=new Set;let r=null,s=null,a=null,u=null;const i=new Set,l=new Set,c=new Set,f=new Set;for(const d of e){for(const y of Jo(d))t.add(y);for(const y of Xo(d))n.add(y);const v=ca(d);v!==null&&(r=r===null?v:Math.min(r,v),s=s===null?v:Math.max(s,v));const h=Ka(d);h!==null&&(a=a===null?h:Math.min(a,h),u=u===null?h:Math.max(u,h));for(const y of Oc(d))i.add(y);const p=Lc(d);p&&l.add(p);for(const y of Qo(d))c.add(y);const x=$c(d);x&&f.add(x)}return{inputModalities:Array.from(t).sort(),outputModalities:Array.from(n).sort(),minContext:r,maxContext:s,minPromptPrice:a,maxPromptPrice:u,series:Array.from(i).sort(),providers:Array.from(l).sort(),supportedParameters:Array.from(c).sort(),moderation:Array.from(f).sort()}}function ei(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t||null}function Uu(e){const t=[];for(const n of e){const r=ei(n);r&&t.push(r)}return t}function hp(e,t){return e.include.includes(t)?"include":e.exclude.includes(t)?"exclude":"neutral"}function Rc(e,t,n){const r=e.include.filter(a=>a!==t),s=e.exclude.filter(a=>a!==t);return n==="include"?{include:[...r,t],exclude:s}:n==="exclude"?{include:r,exclude:[...s,t]}:{include:r,exclude:s}}function mp(e,t,n){const r=ei(t);return r?Rc(e,r,n):e}function fs(e,t){const n=Uu(e.include),r=Uu(e.exclude);if(n.length===0&&r.length===0)return!0;const s=new Set(Uu(t));if(n.length>0){for(const a of n)if(!s.has(a))return!1}if(r.length>0){for(const a of r)if(s.has(a))return!1}return!0}function vp(e){const{models:t,filters:n}=e;if(!Array.isArray(t)||t.length===0)return[];const r=n.search.toLowerCase().split(/\s+/).filter(Boolean),s=t.filter(i=>{if(r.length>0){const v=[i.id,i.name,i.description,(i.tags??[]).join(" ")].join(" ").toLowerCase();if(!r.every(p=>v.includes(p)))return!1}if(!fs(n.inputModalities,Jo(i))||!fs(n.outputModalities,Xo(i)))return!1;const l=ca(i);if(n.minContext!==null&&(l===null||ln.maxPromptPrice)||!fs(n.series,Oc(i)))return!1;const f=Lc(i);if(!fs(n.providers,f?[f]:[])||!fs(n.supportedParameters,Qo(i)))return!1;const d=$c(i);return!!fs(n.moderation,d?[d]:[])}),a={newness:(i,l)=>{const c=Date.parse(i.created_at??"")||0;return(Date.parse(l.created_at??"")||0)-c},price:(i,l)=>{const c=Ka(i),f=Ka(l),d=c??Number.POSITIVE_INFINITY,v=f??Number.POSITIVE_INFINITY;return d===v?0:d{const c=ca(i),f=ca(l),d=c??-1/0,v=f??-1/0;return d===v?0:v-d}},u=a[n.sort]??a.newness;return s.slice().sort(u)}function ps(e,t){const n=ei(t);if(!n)return e;const r=hp(e,n);return Rc(e,n,r==="include"?"exclude":r==="exclude"?"neutral":"include")}function gp(e,t,n,r){const s={...e};return s[t]=mp(e[t],n,r),s}function hs(e){return e===null||Number.isNaN(e)||!Number.isFinite(e)||e<0?null:e}function Cn(e){return e.include.length>0||e.exclude.length>0}function bp(e){return!!(e.search.trim()||Cn(e.inputModalities)||Cn(e.outputModalities)||Cn(e.series)||Cn(e.providers)||Cn(e.supportedParameters)||Cn(e.moderation)||e.minContext!==null||e.minPromptPrice!==null||e.maxPromptPrice!==null)}function _p(e,t,n){if(!Array.isArray(e)||e.length===0)return[];if(!n||e.some(s=>s.id===n))return e;const r=t.find(s=>s.id===n);return r?[r,...e]:e}function yp(e,t){return!Array.isArray(e)||e.length===0||!t?null:e.find(r=>r.id===t)??null}function xp(){const e=Tt({...fp});async function t(){e.update(T=>({...T,loading:!0,error:null}));try{const T=await E0(),N=Array.isArray(T.data)?T.data:[],Q=pp(N);return e.update(I=>({...I,models:N,facets:Q,loading:!1,error:null})),T}catch(T){const N=T instanceof Error?T.message:String(T);e.update(Q=>({...Q,loading:!1,error:N}))}}function n(T){e.update(N=>({...N,filters:{...N.filters,search:T}}))}function r(T){e.update(N=>({...N,filters:{...N.filters,inputModalities:ps(N.filters.inputModalities,T)}}))}function s(T){e.update(N=>({...N,filters:{...N.filters,outputModalities:ps(N.filters.outputModalities,T)}}))}function a(T){e.update(N=>({...N,filters:{...N.filters,series:ps(N.filters.series,T)}}))}function u(T){e.update(N=>({...N,filters:{...N.filters,providers:ps(N.filters.providers,T)}}))}function i(T){e.update(N=>({...N,filters:{...N.filters,supportedParameters:ps(N.filters.supportedParameters,T)}}))}function l(T){e.update(N=>({...N,filters:{...N.filters,moderation:ps(N.filters.moderation,T)}}))}function c(T,N,Q){e.update(I=>({...I,filters:gp(I.filters,T,N,Q)}))}function f(T){e.update(N=>({...N,filters:{...N.filters,minContext:hs(T)}}))}function d(T){e.update(N=>({...N,filters:{...N.filters,minPromptPrice:hs(T)}}))}function v(T){e.update(N=>({...N,filters:{...N.filters,maxPromptPrice:hs(T)}}))}function h(T){e.update(N=>({...N,filters:{...N.filters,sort:T}}))}function p(){e.update(T=>{const N=ko();return N.sort=T.filters.sort,{...T,filters:N}})}function x(){const T=nt(e).filters,N={};return Cn(T.inputModalities)&&(N.inputModalities=T.inputModalities),Cn(T.outputModalities)&&(N.outputModalities=T.outputModalities),T.minContext!==null&&(N.minContext=T.minContext),T.minPromptPrice!==null&&(N.minPromptPrice=T.minPromptPrice),T.maxPromptPrice!==null&&(N.maxPromptPrice=T.maxPromptPrice),Cn(T.series)&&(N.series=T.series),Cn(T.providers)&&(N.providers=T.providers),Cn(T.supportedParameters)&&(N.supportedParameters=T.supportedParameters),Cn(T.moderation)&&(N.moderation=T.moderation),N.sort=T.sort,N}function y(T){e.update(N=>{const Q=ko();return Q.search=N.filters.search,T.inputModalities&&(Q.inputModalities=T.inputModalities),T.outputModalities&&(Q.outputModalities=T.outputModalities),T.minContext!==void 0&&(Q.minContext=hs(T.minContext)),T.minPromptPrice!==void 0&&(Q.minPromptPrice=hs(T.minPromptPrice)),T.maxPromptPrice!==void 0&&(Q.maxPromptPrice=hs(T.maxPromptPrice)),T.series&&(Q.series=T.series),T.providers&&(Q.providers=T.providers),T.supportedParameters&&(Q.supportedParameters=T.supportedParameters),T.moderation&&(Q.moderation=T.moderation),T.sort&&(Q.sort=T.sort),{...N,filters:Q}})}const _=Ht(e,T=>T.models),E=Ht(e,T=>T.loading),S=Ht(e,T=>T.error),b=Ht(e,T=>T.filters),D=Ht(e,T=>T.facets),A=Ht(e,T=>vp(T)),P=Ht(e,T=>bp(T.filters)),Z=Ht([A,_,P],([T,N,Q])=>{const I=Q?T:N;return V=>_p(I,N,V)}),Y=Ht(_,T=>N=>yp(T,N));return{subscribe:e.subscribe,loadModels:t,setSearch:n,toggleInputModality:r,toggleOutputModality:s,toggleSeries:a,toggleProvider:u,toggleSupportedParameter:i,toggleModeration:l,setSelectionState:c,setMinContext:f,setMinPromptPrice:d,setMaxPromptPrice:v,setSort:h,resetFilters:p,getFilters:x,setFilters:y,models:_,loading:E,error:S,filters:b,facets:D,filtered:A,activeFilters:P,selectable:Z,activeFor:Y}}const Qn=xp(),Ra={loading:!1,saving:!1,applying:null,deleting:null,creating:!1,settingDefault:null,error:null,items:[],lastApplied:null,lastResult:null};function kp(){const e=Tt({...Ra});async function t(){e.set({...Ra,loading:!0});try{const c=await Gs();e.set({...Ra,loading:!1,items:c})}catch(c){const f=c instanceof Error?c.message:"Failed to load presets.";e.set({...Ra,loading:!1,error:f})}}async function n(c){const f={name:c.trim(),model_filters:Qn.getFilters()};if(!f.name)return e.update(d=>({...d,error:"Preset name is required."})),null;e.update(d=>({...d,creating:!0,error:null,lastResult:null}));try{const d=await H0(f),v=await Gs();return e.update(h=>({...h,creating:!1,error:null,items:v,lastResult:d})),d}catch(d){const v=d instanceof Error?d.message:"Failed to create preset.";return e.update(h=>({...h,creating:!1,error:v})),null}}async function r(c,f){e.update(d=>({...d,saving:!0,error:null,lastResult:null}));try{const d={...f,model_filters:Qn.getFilters()},v=await W0(c,d),h=await Gs();return e.update(p=>({...p,saving:!1,error:null,items:h,lastResult:v})),v}catch(d){const v=d instanceof Error?d.message:"Failed to save snapshot.";return e.update(h=>({...h,saving:!1,error:v})),null}}async function s(c){e.update(f=>({...f,deleting:c,error:null}));try{const f=await V0(c),d=await Gs();return e.update(v=>({...v,deleting:null,items:d})),!!f?.deleted}catch(f){const d=f instanceof Error?f.message:"Failed to delete preset.";return e.update(v=>({...v,deleting:null,error:d})),!1}}async function a(c){e.update(f=>({...f,applying:c,error:null,lastApplied:null,lastResult:null}));try{const f=await G0(c);return f?.model_filters&&Qn.setFilters(f.model_filters),e.update(d=>({...d,applying:null,lastApplied:c,lastResult:f})),f}catch(f){const d=f instanceof Error?f.message:"Failed to apply preset.";return e.update(v=>({...v,applying:null,error:d})),null}}async function u(c){e.update(f=>({...f,settingDefault:c,error:null}));try{const f=await K0(c),d=await Gs();return e.update(v=>({...v,settingDefault:null,items:d,lastResult:f})),f}catch(f){const d=f instanceof Error?f.message:"Failed to set default preset.";return e.update(v=>({...v,settingDefault:null,error:d})),null}}async function i(){try{return await Z0()}catch(c){return console.error("Failed to load default preset:",c),null}}function l(){e.update(c=>({...c,error:null}))}return{subscribe:e.subscribe,load:t,create:n,saveSnapshot:r,remove:s,apply:a,setDefault:u,loadDefault:i,clearError:l}}const Kn=kp();var wp=F(''),Ep=F(''),Sp=F(''),Cp=F(''),Ap=F('
                                ');function Dp(e,t){it(t,!1);const n=()=>at(Ac,"$webSearchStore",s),r=()=>at(Kn,"$presetsStore",s),[s,a]=Hn(),u=It();let i=oe(t,"selectableModels",24,()=>[]),l=oe(t,"selectedModel",8,""),c=oe(t,"modelsLoading",8,!1),f=oe(t,"modelsError",8,null),d=oe(t,"hasMessages",8,!1),v=R(null),h=R(null),p=R(!1),x=R(!1);async function y(){if(!o(v)){w(p,!0);try{const B=await Oi(()=>import("./ModelPicker-BltK9Rg4.js"),__vite__mapDeps([0,1]));w(v,B.default)}catch(B){console.error("Failed to load ModelPicker",B)}finally{w(p,!1)}}}async function _(){if(!o(h)){w(x,!0);try{const B=await Oi(()=>import("./WebSearchMenu-llg5iChw.js"),__vite__mapDeps([2,3]));w(h,B.default)}catch(B){console.error("Failed to load WebSearchMenu",B)}finally{w(x,!1)}}}Aa(()=>{y(),_()});function E(){u("openExplorer")}function S(){u("clear")}function b(B){u("modelChange",B.detail)}function D(){u("openModelSettings")}function A(){u("openSystemSettings")}function P(){u("openKioskSettings")}function Z(){u("openCliSettings")}function Y(){u("openMcpServers")}dt();var T=Ap(),N=g(T),Q=g(N),I=g(Q),V=C(I,2);{var J=B=>{var _e=Ae(),Ne=me(_e);Ei(Ne,()=>o(v),(Be,Oe)=>{Oe(Be,{get selectableModels(){return i()},get selectedModel(){return l()},get modelsLoading(){return c()},get modelsError(){return f()},$$events:{modelChange:b}})}),k(B,_e)},se=B=>{var _e=wp();K(()=>fe(_e,"data-loading",o(p))),k(B,_e)};$(V,B=>{o(v)?B(J):B(se,!1)})}var de=C(V,2);{var ae=B=>{var _e=Ae(),Ne=me(_e);Ei(Ne,()=>o(h),(Be,Oe)=>{Oe(Be,{})}),k(B,_e)},ue=B=>{var _e=Ep(),Ne=g(_e),Be=C(g(Ne),2),Oe=g(Be);K(()=>{fe(_e,"data-loading",o(x)),fe(Be,"data-enabled",(n(),m(()=>n().enabled))),X(Oe,(n(),m(()=>n().enabled?"On":"Off")))}),k(B,_e)};$(de,B=>{o(h)?B(ae):B(ue,!1)})}var L=C(de,2),U=C(L,2);{var G=B=>{var _e=Sp(),Ne=C(g(_e),4),Be=g(Ne);K(()=>{fe(_e,"title",(r(),m(()=>`Applying ${r().applying}… (open system settings to manage presets)`))),fe(Ne,"title",(r(),m(()=>r().applying))),X(Be,(r(),m(()=>r().applying)))}),W("click",_e,A),k(B,_e)},ie=B=>{var _e=Ae(),Ne=me(_e);{var Be=Oe=>{var ke=Cp(),We=C(g(ke),4),he=g(We);K(()=>{fe(ke,"title",(r(),m(()=>`Active preset: ${r().lastApplied} (open system settings to manage)`))),fe(We,"title",(r(),m(()=>r().lastApplied))),X(he,(r(),m(()=>r().lastApplied)))}),W("click",ke,A),k(Oe,ke)};$(Ne,Oe=>{r(),m(()=>r().lastApplied)&&Oe(Be)},!0)}k(B,_e)};$(U,B=>{r(),m(()=>r().applying)?B(G):B(ie,!1)})}var H=C(U,2),q=g(H),z=C(q,2),le=C(z,2),xe=C(le,2),De=C(xe,2);K(()=>{L.disabled=c()||!l(),De.disabled=!d()}),W("click",I,E),W("click",L,D),W("click",q,Y),W("click",z,A),W("click",le,P),W("click",xe,Z),W("click",De,S),k(e,T),lt(),a()}/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const Tp={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};var Fp=Go("");function rr(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]),r=Fn(n,["name","color","size","strokeWidth","absoluteStrokeWidth","iconNode"]);it(t,!1);let s=oe(t,"name",8,void 0),a=oe(t,"color",8,"currentColor"),u=oe(t,"size",8,24),i=oe(t,"strokeWidth",8,2),l=oe(t,"absoluteStrokeWidth",8,!1),c=oe(t,"iconNode",24,()=>[]);const f=(...p)=>p.filter((x,y,_)=>!!x&&_.indexOf(x)===y).join(" ");dt();var d=Fp();Ai(d,(p,x)=>({...Tp,...r,width:u(),height:u(),stroke:a(),"stroke-width":p,class:x}),[()=>(O(l()),O(i()),O(u()),m(()=>l()?Number(i())*24/Number(u()):i())),()=>(O(s()),O(n),m(()=>f("lucide-icon","lucide",s()?`lucide-${s()}`:"",n.class)))]);var v=g(d);_t(v,1,c,zn,(p,x)=>{var y=Ff(()=>Ud(o(x),2));let _=()=>o(y)[0],E=()=>o(y)[1];var S=Ae(),b=me(S);i0(b,_,!0,(D,A)=>{Ai(D,()=>({...E()}))}),k(p,S)});var h=C(v);tn(h,t,"default",{}),k(e,d),lt()}function Mp(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M12 18V5"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77"}]];rr(e,nr({name:"brain"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Pp(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M5 21v-6"}],["path",{d:"M12 21V9"}],["path",{d:"M19 21V3"}]];rr(e,nr({name:"chart-no-axes-column-increasing"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Ip(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M20 6 9 17l-5-5"}]];rr(e,nr({name:"check"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Np(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4"}],["path",{d:"M21 14H11"}],["path",{d:"m15 10-4 4 4 4"}]];rr(e,nr({name:"clipboard-copy"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Lp(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}],["path",{d:"M2 12h20"}]];rr(e,nr({name:"globe"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function zi(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];rr(e,nr({name:"pencil"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Op(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}],["path",{d:"M16 16h5v5"}]];rr(e,nr({name:"refresh-ccw"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function $p(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z"}],["path",{d:"m21.854 2.147-10.94 10.939"}]];rr(e,nr({name:"send"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Rp(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M10 11v6"}],["path",{d:"M14 11v6"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"}],["path",{d:"M3 6h18"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}]];rr(e,nr({name:"trash-2"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function zp(e,t){const n=Fn(t,["children","$$slots","$$events","$$legacy"]);/** + * @license lucide-svelte v0.544.0 - ISC + * + * ISC License + * + * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * --- + * + * The MIT License (MIT) (for portions derived from Feather) + * + * Copyright (c) 2013-2023 Cole Bemis + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */const r=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"}]];rr(e,nr({name:"wrench"},()=>n,{get iconNode(){return r},children:(s,a)=>{var u=Ae(),i=me(u);tn(i,t,"default",{}),k(s,u)},$$slots:{default:!0}}))}function Up(e,t=null){let n=0,r=2;function s(c){if(typeof c=="number")r=Number.isFinite(c)&&c>0?c:2;else if(c&&typeof c=="object"&&"maxMultiplier"in c){const f=c.maxMultiplier;typeof f=="number"&&Number.isFinite(f)&&f>0&&(r=f)}}s(t);function a(){const c=e.style.height;if(e.style.height="auto",n=e.clientHeight||e.scrollHeight||0,e.style.height=c,!n){const f=getComputedStyle(e);n=parseFloat(f.lineHeight||"0")||24}}function u(){const c=Math.max(1,Math.round(n*r));e.style.height="auto";const f=e.scrollHeight,d=Math.min(f,c);e.style.height=`${d}px`,e.style.overflowY=f>c?"auto":"hidden",e.style.maxHeight=`${c}px`}function i(){u()}const l=requestAnimationFrame(()=>{a(),u()});return e.addEventListener("input",i),{update(c){s(c),a(),u()},destroy(){cancelAnimationFrame(l),e.removeEventListener("input",i),e.style.overflowY="",e.style.maxHeight=""}}}const ti="speech.settings.v1",Bp={fast:{label:"Fast speech",stt:{utteranceEndMs:1e3,endpointing:800,autoSubmitDelayMs:100}},normal:{label:"Normal speech",stt:{utteranceEndMs:1500,endpointing:1200,autoSubmitDelayMs:400}},slow:{label:"Slow speech",stt:{utteranceEndMs:2500,endpointing:2e3,autoSubmitDelayMs:800}}},jp=[{value:"nova-3-general",label:"Nova-3 General"},{value:"nova-3-medical",label:"Nova-3 Medical"},{value:"nova-2-finance",label:"Nova-2 Finance"},{value:"nova-2-conversationalai",label:"Nova-2 Conversational AI"}],qp={stt:{provider:"deepgram",model:"nova-3",interimResults:!0,vadEvents:!0,utteranceEndMs:1500,endpointing:1200,autoSubmit:!0,autoSubmitDelayMs:0,smartFormat:!0,punctuate:!0,numerals:!0,fillerWords:!1,profanityFilter:!1},updatedAt:null};function Hp(e){return JSON.parse(JSON.stringify(e))}function Vr(){return Hp(qp)}function Bu(e,t,n){return Math.min(Math.max(Math.round(e),t),n)}function kr(e,t){return typeof e=="boolean"?e:t}function ju(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number(e);if(Number.isFinite(t))return t}return null}function wo(e){const t=Vr(),n={stt:{...t.stt},updatedAt:t.updatedAt};if(!e||typeof e!="object")return n;const r=e,s=r.stt??r.stt;if(s&&typeof s=="object"){const u=s,i=typeof u.model=="string"||typeof u.model=="string"?u.model:null,l=i?i.trim():"";n.stt.provider="deepgram",n.stt.model=l||t.stt.model,n.stt.interimResults=kr(u.interimResults??u.interim_results,t.stt.interimResults),n.stt.vadEvents=kr(u.vadEvents??u.vad_events,t.stt.vadEvents);const c=ju(u.utteranceEndMs??u.utterance_end_ms);c!==null&&(n.stt.utteranceEndMs=Bu(c,500,5e3));const f=ju(u.endpointing);f!==null&&(n.stt.endpointing=Bu(f,300,5e3)),n.stt.autoSubmit=kr(u.autoSubmit??u.auto_submit,t.stt.autoSubmit);const d=ju(u.autoSubmitDelayMs??u.auto_submit_delay_ms);d!==null&&(n.stt.autoSubmitDelayMs=Bu(d,0,2e4)),n.stt.smartFormat=kr(u.smartFormat??u.smart_format,t.stt.smartFormat),n.stt.punctuate=kr(u.punctuate,t.stt.punctuate),n.stt.numerals=kr(u.numerals,t.stt.numerals),n.stt.fillerWords=kr(u.fillerWords??u.filler_words,t.stt.fillerWords),n.stt.profanityFilter=kr(u.profanityFilter??u.profanity_filter,t.stt.profanityFilter)}const a=r.updatedAt??r.updated_at;return n.updatedAt=typeof a=="string"&&a?a:null,n}function Ui(){if(typeof window>"u"||!window.localStorage)return Vr();try{const e=window.localStorage.getItem(ti);if(!e)return Vr();const t=JSON.parse(e);return wo(t)}catch(e){return console.warn("Failed to read speech settings from storage",e),Vr()}}function Wp(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(ti,JSON.stringify(e))}catch(t){console.warn("Failed to persist speech settings",t)}}function Vp(){const e=Ui(),t=Tt(e);function n(u){const i=wo(u),l={...i,stt:{...i.stt},updatedAt:new Date().toISOString()};return t.set(l),Wp(l),l}function r(u){const i=nt(t),l={...i,stt:{...i.stt},updatedAt:i.updatedAt};return u.stt&&(l.stt={...l.stt,...u.stt}),u.updatedAt!==void 0&&(l.updatedAt=u.updatedAt),n(l)}function s(){return n(Vr())}function a(){const u=Ui();t.set(u)}return typeof window<"u"&&window.addEventListener("storage",u=>{if(u.key===ti)try{const i=u.newValue?JSON.parse(u.newValue):null,l=wo(i);t.set(l)}catch(i){console.warn("Failed to synchronize speech settings from storage",i)}}),{subscribe:t.subscribe,save:n,update:r,reset:s,refresh:a,get current(){return nt(t)}}}const da=Vp(),Gp={mode:"idle",recording:!1,connecting:!1,error:null,promptText:"",promptVersion:0,keepPromptSynced:!1,pendingSubmit:null},dn=Tt({...Gp});let Za=null,Br=null,Er=null,zr=0,or="",Ya="",Ja=!1,Xa=null,Qa=null,Eo=0;function Eu(){Qa&&(clearTimeout(Qa),Qa=null),Eo++}function iu(e,t){dn.update(n=>({...n,promptText:e,promptVersion:n.promptVersion+1,keepPromptSynced:t?!0:n.keepPromptSynced}))}function Kp(){or="",Ya="",Ja=!1}function So(){Xa&&(clearTimeout(Xa),Xa=null)}function Zp(){if(Er)try{Er.close()}catch(e){console.warn("Failed to close Deepgram socket",e)}Er=null}function zc(){if(Br)try{Br.stop()}catch{}if(Br=null,Za)try{Za.getTracks().forEach(e=>e.stop())}catch{}Za=null}function Rn(e={}){zc(),Zp(),So(),dn.update(t=>({...t,recording:!1,connecting:!1,keepPromptSynced:!1,pendingSubmit:e.submitText?{text:e.submitText}:null,mode:"idle"}))}function Ks(e){dn.update(t=>({...t,error:e,recording:!1,connecting:!1,keepPromptSynced:!1,mode:"idle"}))}function Bi(e){const t=e.trim(),n=da.current,r=n?.stt.autoSubmit??!0,s=Math.max(n?.stt.autoSubmitDelayMs??0,0);if(Eu(),!t){Rn({submitText:null});return}if(r){if(s<=0){Rn({submitText:t});return}Rn(),iu(t,!1);const a=++Eo;Qa=setTimeout(()=>{a===Eo&&dn.update(u=>({...u,pendingSubmit:{text:t}}))},s)}else Rn(),iu(t,!1)}async function Yp(e){const t=nt(dn);(t.connecting||t.recording)&&Rn(),Eu();const n=da.current;if(!n){Ks("Speech settings unavailable");return}const r=++zr;Kp(),dn.set({...t,mode:e,connecting:!0,recording:!1,error:null,keepPromptSynced:!0,pendingSubmit:null});let s;try{if(s=(await S0()).access_token,!s)throw new Error("Missing Deepgram token")}catch(_){if(r!==zr)return;Rn();const E=_ instanceof Error?_.message:"Failed to get Deepgram token";Ks(E);return}let a;try{a=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}catch(_){if(r!==zr)return;Rn();const E=_ instanceof Error?_.message:"Microphone access denied";Ks(E);return}const i=["audio/ogg;codecs=opus","audio/webm;codecs=opus","audio/webm"].find(_=>{try{return MediaRecorder.isTypeSupported(_)}catch{return!1}}),l="opus",c=n.stt,f=Math.max(c.utteranceEndMs,500),d=Math.max(c.endpointing,300),h=`wss://api.deepgram.com/v1/listen?${new URLSearchParams({model:c.model,interim_results:String(c.interimResults!==!1),vad_events:String(c.vadEvents!==!1),smart_format:String(c.smartFormat!==!1),punctuate:String(c.punctuate!==!1),numerals:String(c.numerals!==!1),filler_words:String(c.fillerWords===!0),profanity_filter:String(c.profanityFilter===!0),utterance_end_ms:String(f),endpointing:String(d),encoding:l,no_delay:"false",multichannel:"false",alternatives:"1"}).toString()}`,x=s.includes(".")&&s.split(".").length>=3?["Bearer",s]:["token",s],y=new WebSocket(h,x);Er=y,Za=a,y.addEventListener("open",()=>{if(r===zr){dn.update(_=>({..._,connecting:!1,recording:!0,error:null,keepPromptSynced:!0}));try{Br=new MediaRecorder(a,i?{mimeType:i}:void 0)}catch{Ks("MediaRecorder not supported"),Rn();return}Br.addEventListener("dataavailable",async _=>{if(!(!_.data||_.data.size===0))try{const E=await _.data.arrayBuffer();Er&&Er.readyState===WebSocket.OPEN&&Er.send(E)}catch(E){console.warn("Failed to send audio chunk",E)}}),Br.addEventListener("stop",()=>{try{Er?.send(new Uint8Array)}catch{}}),Br.start(250)}}),y.addEventListener("message",_=>{if(r!==zr||typeof _.data!="string")return;let E;try{E=JSON.parse(_.data)}catch{return}Jp(E)}),y.addEventListener("error",_=>{console.warn("Deepgram socket error",_),r===zr&&(Ks("Deepgram connection error"),Rn())}),y.addEventListener("close",()=>{r===zr&&(zc(),dn.update(_=>({..._,recording:!1,connecting:!1,keepPromptSynced:!1})))})}function Jp(e,t,n){const r=e;if(r.type==="UtteranceEnd"){Ja||Bi(or||Ya),So(),Xa=setTimeout(()=>{Ja=!1},1e3);return}if(r.type!=="Results")return;const u=(r.channel?.alternatives?.[0]?.transcript??"").trim();if(u){const c=or?`${or} ${u}`.trim():u;Ya=c,iu(c,!0)}r.is_final===!0&&u&&(or=or?`${or} ${u}`.trim():u,iu(or,!0)),r.speech_final===!0&&(Ja=!0,So(),Bi(or||Ya||u))}async function Xp(){Eu();const e=nt(dn);if(e.mode==="dictation"&&(e.recording||e.connecting)){Rn(),dn.update(n=>({...n,mode:"idle",keepPromptSynced:!1}));return}dn.update(n=>({...n,mode:"dictation"})),await Yp("dictation")}function ji(){Eu(),Rn(),dn.update(e=>({...e,mode:"idle"}))}function qi(){const e=nt(dn);if(!e.pendingSubmit)return null;const t=e.pendingSubmit;return dn.update(n=>({...n,pendingSubmit:null})),t}const Uc={subscribe:dn.subscribe};function aa(e){return typeof e=="object"&&e!==null}function ir(e){if(typeof e!="string")return;const t=e.trim();return t||void 0}function Hi(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=e.trim();if(!t)return;const n=Number.parseInt(t,10);if(Number.isFinite(n))return n}}function xs(e){if(!aa(e))return null;const t=ir(e.url);if(!t)return null;const n={url:t},r=ir(e.title)??ir(e.name)??ir(e.label);r&&(n.title=r);const s=ir(e.content)??ir(e.snippet)??ir(e.text)??ir(e.description);s&&(n.content=s);const a=Hi(e.startIndex??e.start_index);a!==void 0&&(n.startIndex=a);const u=Hi(e.endIndex??e.end_index);return u!==void 0&&(n.endIndex=u),n}function Qp(e){const t=ir(e.type),n=t?t.toLowerCase():null,r=[];"url_citation"in e&&r.push(e.url_citation),"urlCitation"in e&&r.push(e.urlCitation),"citation"in e&&r.push(e.citation),"payload"in e&&r.push(e.payload),"data"in e&&r.push(e.data);for(const s of r){const a=xs(s);if(a)return a}return n==="url_citation"||n==="url-citation"?xs(e):null}function ms(e,t,n){const r=`${n.url}|${n.startIndex??""}|${n.endIndex??""}`;t.has(r)||(t.add(r),e.push(n))}function e1(e){const t=[],n=new Set,r=/\[([^\]]+)\]\(([^)]+)\)/g;let s;for(;(s=r.exec(e))!==null;){const a=s[1].trim(),u=s[2].trim();u&&!n.has(u)&&(n.add(u),t.push({url:u,title:a||void 0,startIndex:s.index,endIndex:s.index+s[0].length}))}return t}function jr(...e){const t=[],n=new Set,r=new WeakSet,s=[];function a(u){if(u!=null){if(Array.isArray(u)||aa(u)){const i=u;if(r.has(i))return;r.add(i)}s.push(u)}}for(e.forEach(a);s.length>0;){const u=s.shift();if(u==null)continue;if(Array.isArray(u)){for(const c of u){if(c==null)continue;if(Array.isArray(c)||aa(c)){a(c);continue}const f=xs(c);f&&ms(t,n,f)}continue}if(!aa(u)){const c=xs(u);c&&ms(t,n,c);continue}const i=Qp(u);if(i)ms(t,n,i);else{const c=xs(u);c&&ms(t,n,c)}a(u.meta),a(u.metadata),a(u.annotations),a(u.citations),a(u.url_citation),a(u.urlCitation),a(u.payload),a(u.data),a(u.message);const l=u.content??u.text;if(typeof l=="string"&&l.length>0){const c=e1(l);for(const f of c)ms(t,n,f)}for(const c of Object.values(u))if(c!=null)if(Array.isArray(c)||aa(c))a(c);else{const f=xs(c);f&&ms(t,n,f)}}return t}function t1(e,t){const n=e.trim(),r=[];n&&r.push({type:"text",text:n});for(const s of t)r.push({type:"image_url",image_url:{url:s.deliveryUrl},metadata:{attachment_id:s.id,display_url:s.displayUrl,mime_type:s.mimeType,size_bytes:s.sizeBytes,filename:s.metadata?.filename,session_id:s.sessionId,uploaded_at:s.uploadedAt,expires_at:s.expiresAt}});return r.length===1&&r[0].type==="text"?r[0].text:r.length>0?r:""}function Co(e){if(typeof e=="string"){const s=e;return{parts:s?[{type:"text",text:s}]:[],text:s}}const t=[],n=[];for(const s of e){if(s?.type==="text"&&typeof s.text=="string"){const a=s.text;t.push({type:"text",text:a}),n.push(a);continue}if(s?.type==="image_url"&&"image_url"in s){const a=s.image_url;if(!a||typeof a.url!="string")continue;const u=s.metadata??{},i=typeof u.display_url=="string"&&u.display_url?u.display_url:a.url,l=typeof u.attachment_id=="string"&&u.attachment_id?u.attachment_id:void 0,c=typeof u.mime_type=="string"&&u.mime_type?u.mime_type:void 0,f=typeof u.size_bytes=="number"&&Number.isFinite(u.size_bytes)?Number(u.size_bytes):void 0,d=typeof u.filename=="string"&&u.filename?u.filename:void 0,v=typeof u.session_id=="string"&&u.session_id?u.session_id:void 0,h=typeof u.uploaded_at=="string"&&u.uploaded_at?u.uploaded_at:void 0,p=typeof u.expires_at=="string"&&u.expires_at?u.expires_at:null;t.push({type:"image",url:a.url,displayUrl:i,attachmentId:l,mimeType:c,sizeBytes:f,fileName:d,sessionId:v,uploadedAt:h,expiresAt:p,metadata:s.metadata??null})}}const r=n.join(` +`).trim();return{parts:t,text:r}}function lu(e){if(e==null)return[];if(Array.isArray(e))return e.flatMap(t=>lu(t));if(typeof e=="string")return e.length>0?[{text:e}]:[];if(typeof e=="object"){const t=e,n=t.text,r=t.type,s=[];if(typeof n=="string"&&n.length>0){const u={text:n};typeof r=="string"&&r.length>0&&(u.type=r),s.push(u)}const a=["segments","segment","messages","message","content","contents","parts","steps","items"];for(const u of a){const i=t[u];i!==void 0&&s.push(...lu(i))}return s}return[]}function n1(e){if(!e||typeof e!="object")return{segments:[],hasPayload:!1};const t=e.choices;if(!Array.isArray(t))return{segments:[],hasPayload:!1};const n=[];let r=!1;for(const s of t){if(!s||typeof s!="object")continue;const a=s.delta;if(!(!a||typeof a!="object")&&"reasoning"in a){r=!0;const u=a.reasoning;n.push(...lu(u))}}return{segments:n,hasPayload:r}}function r1(e,t){const n=t.filter(u=>u.text.length>0);if(n.length===0)return e??[];if(!e||e.length===0)return n;const r=e.map(u=>u.text).join(""),s=n.map(u=>u.text).join("");if(s.startsWith(r)){const u=s.slice(r.length);if(u.length===0)return e;const i=[...e],l=i.length-1,c=n[n.length-1];return i[l]={text:`${i[l].text}${u}`,type:c.type??i[l].type},i}const a=[...e];for(const u of n)a.some(l=>l.text===u.text&&l.type===u.type)||a.push(u);return a}function Wi(e){return e?.reduce((t,n)=>t+n.text.length,0)??0}async function s1(e,t={}){const{signal:n,onSession:r,onMessageDelta:s,onMetadata:a,onToolEvent:u,onDone:i,onError:l}=t,{onNotice:c}=t;await q0(e,{signal:n,onSession:r,onDone:i,onError:l,onNotice:c,onChunk(f,d){const v=d?.event??"message";if(v==="message"){const{text:h,fragments:p}=a1(f),{segments:x,hasPayload:y}=n1(f);if(!h&&p.length===0&&x.length===0&&!y)return;s?.({text:h,fragments:p,reasoningSegments:x,hasReasoningPayload:y,chunk:f});return}if(v==="metadata"&&d?.data){try{const h=JSON.parse(d.data);a?.(h)}catch(h){console.warn("Failed to parse metadata payload",h,d.data)}return}if(v==="tool"&&d?.data)try{const h=JSON.parse(d.data);u?.(h)}catch(h){console.warn("Failed to parse tool payload",h,d.data)}}})}function a1(e){const t=[],n=[],r=e.choices??[];for(const s of r){const a=s.delta??{},u=a.content;if(typeof u=="string")u&&t.push(u);else if(Array.isArray(u))for(const l of u)l&&typeof l=="object"&&n.push(l);const i=a.images;if(Array.isArray(i))for(const l of i)l&&typeof l=="object"&&n.push(l)}return{text:t.join(""),fragments:n}}const qu={loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:null,lastSyncedModel:null,lastSavedAt:null,version:0};function u1(e){if(!e)return;const t={};for(const[n,r]of Object.entries(e))if(r!=null&&!(typeof r=="string"&&r.trim()==="")){if(Array.isArray(r)){if(r.length===0)continue;t[n]=r;continue}if(typeof r=="object"){if(Object.entries(r).length===0)continue;t[n]=r;continue}t[n]=r}return Object.keys(t).length>0?t:void 0}function o1(){const e=Tt({...qu});let t=0;async function n(){const l=nt(e);if(!l.dirty||!l.data)return l.dirty&&e.update(v=>({...v,dirty:!1})),!0;const c=l.version,f={model:l.data.model,provider:l.data.provider??null};"supports_tools"in l.data&&(f.supports_tools=l.data.supports_tools===void 0?null:l.data.supports_tools);const d=u1(l.data.parameters);d?f.parameters=d:f.parameters=null,e.update(v=>({...v,saving:!0,saveError:null}));try{const v=await Ii(f);return e.update(h=>{const p=Date.now();return h.version!==c?{...h,saving:!1,saveError:null,lastSavedAt:p,lastSyncedModel:v.model}:{...h,saving:!1,saveError:null,dirty:!1,data:v,lastSyncedModel:v.model,lastSavedAt:p}}),!0}catch(v){const h=v instanceof Error?v.message:"Failed to save model settings.";return e.update(p=>({...p,saving:!1,saveError:h})),!1}}async function r(l){const c=++t;e.set({...qu,loading:!0});try{const f=await A0();let d=f;if(l&&f.model!==l&&(d=await Ii({model:l,parameters:null,provider:null})),c!==t)return;e.set({loading:!1,saving:!1,error:null,saveError:null,dirty:!1,data:d,lastSyncedModel:d.model,lastSavedAt:Date.now(),version:0})}catch(f){if(c!==t)return;const d=f instanceof Error?f.message:"Failed to load model settings.";e.set({...qu,error:d})}}function s(l,c){e.update(f=>{if(!f.data)return f;const d={...f.data.parameters??{}};c==null?delete d[l]:d[l]=c;const v={...f.data,parameters:Object.keys(d).length>0?d:null};return{...f,data:v,dirty:!0,saveError:null,version:f.version+1}})}function a(l){e.update(c=>{if(!c.data||c.data.model===l)return c;const f={...c.data,model:l};return{...c,data:f,dirty:!0,saveError:null,version:c.version+1}})}function u(){e.update(l=>{if(!l.data)return l;const c={...l.data,parameters:null};return{...l,data:c,dirty:!0,saveError:null,version:l.version+1}})}function i(){e.update(l=>({...l,error:null,saveError:null}))}return{subscribe:e.subscribe,load:r,updateParameter:s,setModel:a,resetToDefaults:u,clearErrors:i,flushSave:n}}const Ut=o1();function i1(e){return typeof e=="object"&&e!==null}const Vi={messages:[],sessionId:null,isStreaming:!1,error:null,selectedModel:"openrouter/auto"};function Zs(e){let t=null;const n=typeof globalThis<"u"?globalThis.crypto:void 0;if(n?.randomUUID)try{t=n.randomUUID()}catch(r){console.warn("Failed to generate UUID via crypto.randomUUID",r)}if(!t&&n?.getRandomValues){const r=new Uint32Array(4);n.getRandomValues(r),t=Array.from(r,s=>s.toString(16).padStart(8,"0")).join("")}return t||(t=`${Date.now().toString(36)}${Math.random().toString(36).slice(2,12)}`),`${e}_${t.replace(/-/g,"")}`}function Bc(e,t){const n=[],r=new Set;for(const s of e){if(s.type!=="image")continue;const a=s.attachmentId??s.displayUrl??s.url;!a||r.has(a)||(r.add(a),n.push({id:s.attachmentId??a,sessionId:s.sessionId??t??"",mimeType:s.mimeType??"image/png",sizeBytes:s.sizeBytes??0,displayUrl:s.displayUrl||s.url,deliveryUrl:s.displayUrl||s.url,uploadedAt:s.uploadedAt??new Date().toISOString(),expiresAt:s.expiresAt??null,metadata:s.metadata??null}))}return n}function l1(e,t,n,r,s){if(!(Array.isArray(e)||r.length>0)){const f=`${(typeof e=="string"?e:t)??""}${n}`;return{content:f,text:f,attachments:[]}}const u=Array.isArray(e)?[...e]:[];if(!Array.isArray(e)){const c=typeof e=="string"?e:t;c&&u.push({type:"text",text:c})}if(r.length>0)u.push(...r);else if(n){const c=u[u.length-1];c&&c.type==="text"&&typeof c.text=="string"?c.text+=n:u.push({type:"text",text:n})}if(u.length===0){const f=`${(typeof e=="string"?e:t)??""}${n}`;return{content:f,text:f,attachments:[]}}const i=Co(u),l=Bc(i.parts,s);return{content:u,text:i.text,attachments:l}}function Gi(e){const t=[],n=new Set,r=e.details?.serverMessageId;if(typeof r=="number"){const s=String(r);t.push(s),n.add(s)}return e.id&&!n.has(e.id)&&t.push(e.id),t}function c1(e,t,n,r,s){const a={model:e.selectedModel,session_id:e.sessionId??void 0,messages:[{role:"user",content:t,client_message_id:r}],metadata:{client_assistant_message_id:s,client_parent_message_id:r}};if(n.enabled){const u={id:"web"};n.engine&&(u.engine=n.engine),n.maxResults!==null&&n.maxResults!==void 0&&(u.max_results=n.maxResults);const i=n.searchPrompt.trim();i&&(u.search_prompt=i),a.plugins=[u],n.contextSize&&(a.web_search_options={search_context_size:n.contextSize})}return a}function d1(){const e=Tt({...Vi});let t=null;function n(...p){for(const x of p)if(typeof x=="string"&&x)return x;return null}async function r(p){const x=p.text??"",y=(p.attachments??[]).map(I=>({...I})),_=x.trim(),E=nt(e);if(E.isStreaming&&t?.abort(),!_&&y.length===0)return;const S=Zs("user"),b=Zs("assistant"),D=t1(_,y),A=Co(D),P=y,Z=Ac.current,Y=c1(E,D,Z,S,b),T=new Date().toISOString();e.update(I=>({...I,messages:[...I.messages,{id:S,role:"user",content:D,text:A.text,attachments:P,createdAt:T,createdAtUtc:T},{id:b,role:"assistant",content:"",text:"",attachments:[],pending:!0,createdAt:null,createdAtUtc:null,details:Z.enabled?{webSearchConfig:{engine:Z.engine,maxResults:Z.maxResults,contextSize:Z.contextSize,searchPrompt:Z.searchPrompt}}:void 0}],isStreaming:!0,error:null}));const N=new AbortController;t=N;const Q=new Map;try{await s1(Y,{signal:N.signal,onSession(I){e.update(V=>({...V,sessionId:I}))},onNotice(I){if(console.log("[NOTICE] Received notice:",I),!I||typeof I!="object"){console.warn("[NOTICE] Invalid payload:",I);return}const V=I.type;console.log("[NOTICE] Notice type:",V),console.log("[NOTICE] No handler for notice type:",V)},onMessageDelta({text:I,fragments:V,reasoningSegments:J,hasReasoningPayload:se,chunk:de}){e.update(ae=>{const ue=ae.messages.map(L=>{if(L.id!==b)return L;const U=l1(L.content,L.text,I,V,ae.sessionId),G=U.attachments.length>0?U.attachments:L.attachments,ie={...L,content:U.content,text:U.text,attachments:G??[]};if(J.length>0||se){const q=L.details??{},z={...q,reasoningStatus:"streaming"};J.length>0&&(z.reasoning=r1(q.reasoning,J)),ie.details=z}const H=de?jr(de):[];if(H.length>0){let q=ie.details;q||(q=L.details?{...L.details}:{});const z=jr(q?.citations??null,H);z.length>0&&(q.citations=z,ie.details=q)}return ie});return{...ae,messages:ue}})},onMetadata(I){e.update(V=>{const J=V.messages.map(se=>{if(se.id!==b)return se;const de=se.details??{},ae=lu(I.reasoning),ue=ae.length>0;let L=de.reasoning;ue&&(L=Wi(ae)>=Wi(de.reasoning)?ae:de.reasoning??ae);const U=ue?se.pending?"streaming":"complete":de.reasoningStatus??null,G=typeof I.message_id=="number"?I.message_id:de.serverMessageId??null;let ie=de.meta??null,H=de.citations??null;if(I.meta===null)ie=null,H=null;else if(i1(I.meta)){ie=I.meta;const le=jr(I.meta,I);le.length>0&&(H=le)}else{const le=jr(I);le.length>0&&(H=le)}const q=n(I.created_at,I.created_at_utc,se.createdAt??null),z=n(I.created_at_utc,se.createdAtUtc??null);return{...se,details:{...de,model:typeof I.model=="string"?I.model:de.model??null,finishReason:typeof I.finish_reason=="string"?I.finish_reason:de.finishReason??null,reasoning:L,reasoningStatus:U,usage:I.usage&&typeof I.usage=="object"?I.usage:de.usage??null,routing:I.routing&&typeof I.routing=="object"?I.routing:de.routing??null,toolCalls:Array.isArray(I.tool_calls)?I.tool_calls:de.toolCalls??null,generationId:typeof I.generation_id=="string"?I.generation_id:de.generationId??null,serverMessageId:G,meta:ie,citations:H},createdAt:q,createdAtUtc:z}});return{...V,messages:J}})},onToolEvent(I){const V=typeof I.call_id=="string"?I.call_id:Zs("tool"),J=typeof I.status=="string"?I.status:"started",se=typeof I.name=="string"?I.name:"tool",de=I.result,ae=typeof de=="string"?de:de&&typeof de=="object"?JSON.stringify(de):null,ue=typeof I.message_id=="number"?I.message_id:null,L=I.content,U=nt(e);let G,ie,H=[];if(Array.isArray(L)){const z=Co(L);H=Bc(z.parts,U.sessionId),G=L,ie=z.text}else J==="started"?(G=`Running ${se}…`,ie=`Running ${se}…`):(G=ae??`Tool ${se} responded.`,ie=ae??`Tool ${se} responded.`);let q=Q.get(V);if(q)e.update(z=>{const le=z.messages.map(xe=>{if(xe.id!==q)return xe;const De={...xe.details??{},toolName:se,toolStatus:J,toolResult:ae??xe.details?.toolResult??null,serverMessageId:ue??xe.details?.serverMessageId??null},B=n(I.created_at,I.created_at_utc,xe.createdAt??null),_e=n(I.created_at_utc,xe.createdAtUtc??null);return{...xe,content:G,text:ie,attachments:H.length>0?H:xe.attachments??[],pending:J==="started",details:De,createdAt:B,createdAtUtc:_e??B??xe.createdAtUtc??null}});return{...z,messages:le}});else{q=Zs("tool"),Q.set(V,q);const z=new Date().toISOString(),le=n(I.created_at,I.created_at_utc,z),xe=n(I.created_at_utc,le??z);e.update(De=>({...De,messages:[...De.messages,{id:q,role:"tool",content:G,text:ie,attachments:H,pending:J==="started",details:{toolName:se,toolStatus:J,toolResult:ae??null,serverMessageId:ue},createdAt:le,createdAtUtc:xe}]}))}},onDone(){e.update(I=>{const V=I.messages.map(J=>{if(J.id!==b)return J;const se=J.details?{...J.details,reasoningStatus:J.details.reasoning?"complete":J.details.reasoningStatus??null}:void 0,de=new Date().toISOString(),ae=J.createdAt??de;return{...J,pending:!1,details:se,createdAt:ae,createdAtUtc:J.createdAtUtc??ae}});return{...I,isStreaming:!1,messages:V}})},onError(I){console.error("Chat stream error",I),e.update(V=>({...V,isStreaming:!1,error:I.message??"Unknown error",messages:V.messages.filter(J=>J.id!==b&&!(J.role==="tool"&&J.pending))}))}})}catch(I){if(I instanceof DOMException&&I.name==="AbortError")return;const V=I instanceof Error?I.message:String(I);e.update(J=>({...J,isStreaming:!1,error:V,messages:J.messages.filter(se=>se.id!==b&&!(se.role==="tool"&&se.pending))}))}finally{t=null}}function s(){t&&(t.abort(),t=null,e.update(p=>{const x=p.messages.filter(y=>!(y.role==="assistant"&&y.pending&&!y.text||y.role==="tool"&&y.pending));return{...p,isStreaming:!1,messages:x}}))}function a(){t?.abort(),t=null,e.update(p=>({...Vi,selectedModel:p.selectedModel}))}function u(p,x){const y=p.messages.findIndex(b=>b.id===x);if(y===-1)return p;const _=p.messages.slice(),E=[],[S]=_.splice(y,1);if(!S)return p;if(S.role==="assistant")for(E.push(S.id);y<_.length&&_[y].role==="tool";)_.splice(y,1);else if(S.role==="user")for(;y<_.length&&_[y].role!=="user"&&_[y].role!=="system";){const[b]=_.splice(y,1);b?.role==="assistant"&&b.id&&E.push(b.id)}return{...p,messages:_}}async function i(p,x){let y=null;const _=new Set;for(const E of x){if(E.role==="assistant"||E.role==="tool")continue;const S=Gi(E);let b=!1;for(const D of S)if(!(!D||_.has(D))){_.add(D);try{await Pi(p,D),b=!0;break}catch(A){if(A instanceof er&&A.status===404)continue;y||(y=A instanceof Error?A.message:"Failed to delete previous message.");break}}}return y}async function l(p){const x=nt(e);if(x.isStreaming)return;const y=x.messages.find(_=>_.id===p);if(y){if(x.sessionId){const _=Gi(y);let E=null;for(const S of _)try{await Pi(x.sessionId,S),E=null;break}catch(b){if(b instanceof er&&b.status===404)continue;E=b instanceof Error?b.message:"Failed to delete message.";break}E&&e.update(S=>({...S,error:E}))}e.update(_=>u(_,p))}}async function c(p){const x=nt(e),y=x.messages.findIndex(b=>b.id===p);if(y===-1)return;const _=x.messages[y];if(_.role!=="user")return;x.isStreaming&&(t?.abort(),t=null);const E=x.messages.slice(y),S=x.messages.slice(0,y);if(e.update(b=>({...b,messages:S,isStreaming:!1,error:null})),x.sessionId){const b=await i(x.sessionId,E);b&&e.update(D=>({...D,error:b}))}await r({text:_.text,attachments:(_.attachments??[]).map(b=>({...b}))})}async function f(p,x){const y=x.trim();if(!y)return;const _=nt(e),E=_.messages.findIndex(A=>A.id===p);if(E===-1)return;const S=_.messages[E];if(S.role!=="user")return;_.isStreaming&&(t?.abort(),t=null);const b=_.messages.slice(E),D=_.messages.slice(0,E);if(e.update(A=>({...A,messages:D,isStreaming:!1,error:null})),_.sessionId){const A=await i(_.sessionId,b);A&&e.update(P=>({...P,error:A}))}await r({text:y,attachments:(S.attachments??[]).map(A=>({...A}))})}function d(){e.update(p=>({...p,error:null}))}function v(p){e.update(x=>({...x,selectedModel:p}));try{Ut.clearErrors(),Ut.load(p)}catch{}}function h(){const p=nt(e);if(p.sessionId)return p.sessionId;const x=Zs("session");return e.update(y=>({...y,sessionId:x})),x}return{subscribe:e.subscribe,sendMessage:r,cancelStream:s,clearConversation:a,deleteMessage:l,retryMessage:c,editMessage:f,clearError:d,setModel:v,ensureSessionId:h}}const va=d1();var f1=F('Uploading…'),p1=F(' '),h1=F('
                                Attachment preview
                                '),m1=F('
                                '),v1=F(''),g1=F(''),b1=F(''),_1=F('
                                ');function y1(e,t){it(t,!1);const n=()=>at(Uc,"$speechState",r),[r,s]=Hn(),a=R(),u=R(),i=R(),l=R(),c=R(),f=R(),d=R(),v=R();let h=oe(t,"prompt",12,""),p=oe(t,"isStreaming",8,!1),x=oe(t,"presetAttachments",24,()=>[]);const y=It(),_=new Set(["image/png","image/jpeg","image/webp","image/gif"]),E=10*1024*1024,S=4;let b=R([]),D=R(null),A=R(null),P=R(null);function Z(){return globalThis.crypto?.randomUUID?`attachment_${globalThis.crypto.randomUUID().replace(/-/g,"")}`:`attachment_${Date.now().toString(36)}${Math.random().toString(36).slice(2,10)}`}function Y(ne){if(!(!ne||typeof ne!="string")&&ne.startsWith("blob:"))try{URL.revokeObjectURL(ne)}catch{}}function T(ne){if(ue(),!ne||ne.length===0){w(D,null);return}const ge=[];for(const be of ne){if(!be)continue;const Te=be.displayUrl??be.deliveryUrl??null;Te&&ge.push({id:be.id??Z(),file:null,previewUrl:Te,status:"ready",resource:{...be,metadata:be.metadata?{...be.metadata}:null}})}w(b,ge),w(D,null)}function N(){if(p())return;const ne=h().trim();if(o(b).some(qe=>qe.status==="uploading")){w(D,"Please wait for uploads to finish.");return}if(o(b).some(qe=>qe.status==="error")){w(D,"Remove failed uploads before sending.");return}const Te=o(b).filter(qe=>qe.status==="ready"&&qe.resource).map(qe=>qe.resource);!ne&&Te.length===0||(y("submit",{text:ne,attachments:Te}),h(""),w(D,null),ue())}function Q(ne){ne.key==="Enter"&&!ne.shiftKey&&(ne.preventDefault(),N())}function I(){y("cancel")}function V(){p()&&n().mode!=="dictation"||n().connecting&&!n().recording&&n().mode!=="dictation"||y("startDictation")}function J(){p()||(w(D,null),o(A)?.click())}function se(ne){const ge=ne.target,be=ge.files?Array.from(ge.files):[];if(ge.value="",!be.length)return;const Te=S-o(b).length;if(Te<=0){w(D,`You can attach up to ${S} images.`);return}const qe=va.ensureSessionId(),ce=be.slice(0,Te);be.length>Te&&w(D,`Only ${S} images allowed per message.`);for(const pe of ce){if(!_.has(pe.type)){w(D,"Unsupported image format.");continue}if(pe.size>E){w(D,"Images must be 10 MB or less.");continue}const Ee=URL.createObjectURL(pe),Fe={id:Z(),file:pe,previewUrl:Ee,status:"uploading"};w(b,[...o(b),Fe]),de(Fe,qe)}}async function de(ne,ge){if(ne.file)try{const{attachment:be}=await B0(ne.file,ge);w(b,o(b).map(Te=>Te.id===ne.id?{...Te,status:"ready",resource:be}:Te))}catch(be){const Te=be instanceof Error?be.message:"Failed to upload image.";w(b,o(b).map(qe=>qe.id===ne.id?{...qe,status:"error",error:Te}:qe))}}function ae(ne){w(b,o(b).filter(ge=>ge.id===ne?(Y(ge.previewUrl),!1):!0)),o(b).length||w(D,null)}function ue(){o(b).forEach(ne=>{Y(ne.previewUrl)}),w(b,[])}Da(()=>{ue()}),ve(()=>O(h()),()=>{w(a,h().trim())}),ve(()=>o(b),()=>{w(u,o(b).some(ne=>ne.status==="uploading"))}),ve(()=>o(b),()=>{w(i,o(b).some(ne=>ne.status==="error"))}),ve(()=>o(b),()=>{w(l,o(b).some(ne=>ne.status==="ready"))}),ve(()=>(O(p()),o(u),o(i),o(a),o(l)),()=>{w(c,p()||o(u)||o(i)||!o(a)&&!o(l))}),ve(()=>(O(x()),o(P)),()=>{x()!==o(P)&&(T(x()),w(P,x()))}),ve(()=>n(),()=>{w(f,n().mode==="dictation"&&(n().recording||n().connecting))}),ve(()=>n(),()=>{w(d,n().connecting&&!n().recording)}),ve(()=>n(),()=>{w(v,n().error)}),Rt(),dt();var L=_1(),U=g(L),G=g(U);{var ie=ne=>{var ge=m1();_t(ge,5,()=>o(b),be=>be.id,(be,Te)=>{var qe=h1();let ce;var pe=g(qe),Ee=C(pe,2);{var Fe=ze=>{var je=f1();k(ze,je)};$(Ee,ze=>{o(Te),m(()=>o(Te).status==="uploading")&&ze(Fe)})}var et=C(Ee,2);{var rt=ze=>{var je=p1(),Je=g(je);K(()=>X(Je,(o(Te),m(()=>o(Te).error??"Upload failed.")))),k(ze,je)};$(et,ze=>{o(Te),m(()=>o(Te).status==="error")&&ze(rt)})}var Le=C(et,2);K(ze=>{ce=Ct(qe,1,"attachment-chip svelte-1ct3ltt",null,ce,ze),fe(pe,"src",(o(Te),m(()=>o(Te).previewUrl??o(Te).resource?.displayUrl??o(Te).resource?.deliveryUrl??"")))},[()=>({uploading:o(Te).status==="uploading",error:o(Te).status==="error"})]),W("click",Le,()=>ae(o(Te).id)),k(be,qe)}),k(ne,ge)};$(G,ne=>{o(b),m(()=>o(b).length)&&ne(ie)})}var H=C(G,2);{var q=ne=>{var ge=v1(),be=g(ge);K(()=>X(be,o(D))),k(ne,ge)};$(H,ne=>{o(D)&&ne(q)})}var z=C(H,2);{var le=ne=>{var ge=g1(),be=g(ge);K(()=>X(be,o(v))),k(ne,ge)};$(z,ne=>{o(v)&&ne(le)})}var xe=C(z,2),De=g(xe),B=C(De,2);Xr(B,ne=>w(A,ne),()=>o(A));var _e=C(B,2);qn(()=>pr(_e,h)),qn(()=>W("keydown",_e,Q)),Jr(_e,(ne,ge)=>Up?.(ne,ge),h);var Ne=C(_e,2),Be=g(Ne);{var Oe=ne=>{var ge=b1();W("click",ge,I),k(ne,ge)};$(Be,ne=>{p()&&ne(Oe)})}var ke=C(Be,2),We=C(ke,2),he=C(g(We),2);$p(he,{size:16,"aria-hidden":"true","stroke-width":2}),K(()=>{De.disabled=(O(p()),o(b),m(()=>p()||o(b).length>=S)),fe(_e,"placeholder",p()?"Waiting for response…":"Type here…"),fe(_e,"aria-disabled",p()),ke.disabled=p()&&!o(f)||o(d)&&!o(f),fe(ke,"aria-pressed",o(f)?"true":"false"),fe(ke,"data-active",o(f)?"true":"false"),We.disabled=o(c)}),W("click",De,J),W("change",B,se),W("click",ke,V),W("submit",L,Ko(N)),k(e,L),lt(),s()}var x1=F('
                                ');function vr(e,t){it(t,!1);let n=oe(t,"open",8,!1),r=oe(t,"labelledBy",8,null),s=oe(t,"modalClass",8,""),a=oe(t,"bodyClass",8,""),u=oe(t,"layerClass",8,""),i=oe(t,"closeLabel",8,"Close modal"),l=oe(t,"closeOnBackdrop",8,!0),c=oe(t,"focusOnOpen",8,!0),f=oe(t,"closeDisabled",8,!1);const d=It();let v=R(null),h=R(!1);function p(b){!l()||f()||b.target===b.currentTarget&&d("close")}function x(){f()||d("close")}function y(b){!n()||f()||b.key==="Escape"&&(b.preventDefault(),d("close"))}ve(()=>(O(n()),o(h),O(c()),o(v)),()=>{n()&&!o(h)?(w(h,!0),c()&&o(v)&&o(v).focus()):!n()&&o(h)&&w(h,!1)}),Rt(),dt();var _=Ae();W("keydown",au,y);var E=me(_);{var S=b=>{var D=x1(),A=g(D),P=C(A,2),Z=g(P),Y=g(Z),T=g(Y);tn(T,t,"heading",{});var N=C(Y,2),Q=g(N);tn(Q,t,"actions",{});var I=C(Q,2),V=C(Z,2),J=g(V);tn(J,t,"default",{});var se=C(V,2);tn(se,t,"footer",{}),Xr(P,de=>w(v,de),()=>o(v)),K((de,ae,ue)=>{Ct(D,1,de),fe(A,"aria-label",i()),Ct(P,1,ae),fe(P,"aria-labelledby",r()||void 0),fe(I,"aria-label",i()),I.disabled=f(),Ct(V,1,ue)},[()=>Ga((O(u()),m(()=>`model-settings-layer ${u()}`.trim()))),()=>Ga((O(s()),m(()=>`model-settings-modal ${s()}`.trim()))),()=>Ga((O(a()),m(()=>`model-settings-body ${a()}`.trim())))]),W("click",A,p),W("click",I,x),k(b,D)};$(E,b=>{n()&&b(S)})}k(e,_),lt()}var k1=F('

                                Loading…

                                '),w1=F('

                                '),E1=F('
                                 
                                '),S1=F('
                                '),C1=F('
                                '),A1=F('

                                No details available.

                                '),D1=F('

                                '),T1=F('

                                Generation details

                                ',1);function F1(e,t){it(t,!1);const n=It();let r=oe(t,"open",8,!1),s=oe(t,"generationId",8,null),a=oe(t,"loading",8,!1),u=oe(t,"error",8,null),i=oe(t,"data",8,null),l=oe(t,"fields",8,Cc),c=R([]);function f(){n("close")}ve(()=>(O(i()),O(l()),Ni),()=>{w(c,i()?l().map(p=>({field:p,display:Ni(i()?.[p.key])})):[])}),Rt(),dt();var d=Ae(),v=me(d);{var h=p=>{vr(p,{get open(){return r()},labelledBy:"generation-modal-title",modalClass:"generation-modal",closeLabel:"Close generation details",$$events:{close:f},children:(x,y)=>{var _=Ae(),E=me(_);{var S=D=>{var A=k1();k(D,A)},b=D=>{var A=Ae(),P=me(A);{var Z=T=>{var N=w1(),Q=g(N);K(()=>X(Q,u())),k(T,N)},Y=T=>{var N=Ae(),Q=me(N);{var I=J=>{var se=C1();_t(se,5,()=>o(c),de=>de.field.key,(de,ae)=>{var ue=S1(),L=g(ue),U=g(L),G=C(L,2),ie=g(G);{var H=z=>{var le=E1(),xe=g(le);K(()=>X(xe,(o(ae),m(()=>o(ae).display.text)))),k(z,le)},q=z=>{var le=Bn();K(()=>X(le,(o(ae),m(()=>o(ae).display.text)))),k(z,le)};$(ie,z=>{o(ae),m(()=>o(ae).display.isMultiline)?z(H):z(q,!1)})}K(()=>X(U,(o(ae),m(()=>o(ae).field.label)))),k(de,ue)}),k(J,se)},V=J=>{var se=A1();k(J,se)};$(Q,J=>{i()?J(I):J(V,!1)},!0)}k(T,N)};$(P,T=>{u()?T(Z):T(Y,!1)},!0)}k(D,A)};$(E,D=>{a()?D(S):D(b,!1)})}k(x,_)},$$slots:{default:!0,heading:(x,y)=>{var _=T1(),E=C(me(_),2);{var S=b=>{var D=D1(),A=g(D);K(()=>X(A,`ID: ${s()??""}`)),k(b,D)};$(E,b=>{s()&&b(S)})}k(x,_)}}})};$(v,p=>{r()&&p(h)})}k(e,d),lt()}var M1=F('Updated'),P1=F('
                                Edit message
                                ');function I1(e,t){it(t,!1);const n=R(),r=R(),s=R();let a=oe(t,"value",12,""),u=oe(t,"originalValue",8,""),i=oe(t,"saving",8,!1),l=oe(t,"disabled",8,!1);const c=It();let f=R(null);Aa(()=>{o(f)&&(o(f).focus(),o(f).setSelectionRange(0,o(f).value.length))});function d(){o(r)&&c("submit",{text:o(n)})}function v(){i()||c("cancel")}function h(T){T.key==="Enter"&&!T.shiftKey&&(T.preventDefault(),d())}ve(()=>O(a()),()=>{w(n,a().trim())}),ve(()=>(o(n),O(i()),O(l())),()=>{w(r,!!o(n)&&!i()&&!l())}),ve(()=>(o(n),O(u())),()=>{w(s,o(n)!==u().trim())}),Rt(),dt();var p=P1(),x=g(p),y=g(x),_=C(g(y),2);{var E=T=>{var N=M1();k(T,N)};$(_,T=>{o(s)&&T(E)})}var S=C(y,2);Xr(S,T=>w(f,T),()=>o(f));var b=C(S,2),D=g(b),A=C(D,2),P=g(A);{var Z=T=>{var N=Bn("Sending…");k(T,N)},Y=T=>{var N=Bn("Save & Send");k(T,N)};$(P,T=>{i()?T(Z):T(Y,!1)})}K(()=>{S.disabled=i()||l(),D.disabled=i(),A.disabled=!o(r)}),pr(S,a),W("keydown",S,h),W("click",D,v),W("submit",p,Ko(d)),k(e,p),lt()}const Ki={open:!1,messageId:null,citations:[]};function jc(){const{subscribe:e,set:t,update:n}=Tt(Ki);function r(a,u){t({open:!0,messageId:a,citations:u})}function s(){t(Ki)}return{subscribe:e,openWithCitations:r,close:s}}jc();const Hu={open:!1,messageId:null,segments:[],status:null};function N1(e,t){if(e.length!==t.length)return!1;for(let n=0;n{if(!l.open||!l.messageId)return l;const c=i.find(v=>v.id===l.messageId);if(!c)return Hu;const f=c.details?.reasoning??[],d=c.details?.reasoningStatus??null;return N1(f,l.segments)&&d===l.status?l:{...l,segments:f,status:d}})}return{subscribe:e,openWithDetails:r,openForMessage:s,close:a,syncFromMessages:u}}const qc="tool",O1=["prompt_tokens","input_tokens","prompt","input","promptTokens","inputTokens"],$1=["completion_tokens","output_tokens","completion","output","completionTokens","outputTokens"],R1=["total_tokens","total","totalTokens"];function z1(e,t=qc){const n=[],r={},s={};for(let a=0;a0;let c=0,f=a+1;for(;Hc(e[f],t);)c+=1,f+=1;const d=l?i.length:0,v=Math.max(d,c),h=v>0,p=U1(u.details?.usage);r[u.id]={used:h,count:v,tokens:p}}u.role!==t&&n.push(u)}return{visibleMessages:n,assistantToolUsage:r,messageIndexMap:s}}function Zi(e,t,n,r=qc){const s=t[n];if(typeof s!="number")return[];const a=e[s];if(!a||a.role!=="assistant")return[];const u=[],i=Array.isArray(a.details?.toolCalls)?a.details?.toolCalls:[];let l=s+1;for(;Hc(e[l],r);){const c=e[l],f=c.details??{},d=i[u.length],h=(typeof f?.toolName=="string"?f.toolName:null)??Wu(d)??"Tool",p=typeof f?.toolStatus=="string"?f.toolStatus:null,x=typeof f?.toolResult=="string"?f.toolResult:null,y=typeof c.content=="string"?c.content:null,_=x??y??Vu(d),E=Gu(d);u.push({id:c.id,name:h,status:p,input:E,result:_}),l+=1}return u.length===0&&i.length>0?i.forEach((c,f)=>{u.push({id:`${a.id}-metadata-${f}`,name:Wu(c)??`Tool ${f+1}`,status:null,input:Gu(c),result:Vu(c)})}):u.length>0&&i.length>0&&u.forEach((c,f)=>{const d=i[f];d&&((!c.name||c.name==="Tool")&&(c.name=Wu(d)??c.name),c.input||(c.input=Gu(d)),c.result||(c.result=Vu(d)))}),u}function Hc(e,t){return e?.role===t}function Wu(e){if(!e)return null;const t=e.name;if(typeof t=="string"&&t.trim().length>0)return t;const n=e.function;if(n&&typeof n=="object"){const r=n.name;if(typeof r=="string"&&r.trim().length>0)return r}return null}function Vu(e){if(!e)return null;const t=e.result;if(typeof t=="string")return t;if(t&&typeof t=="object")try{return JSON.stringify(t,null,2)}catch(r){console.warn("Failed to stringify tool result",r)}const n=e.function;if(n&&typeof n=="object"){const r=n.arguments;if(typeof r=="string")return r;if(r&&typeof r=="object")try{return JSON.stringify(r,null,2)}catch(s){console.warn("Failed to stringify tool arguments",s)}}return null}function Gu(e){if(!e)return null;const t=e.arguments,n=Yi(t);if(n)return n;const r=e.function;if(r&&typeof r=="object"){const s=Yi(r.arguments);if(s)return s}return null}function U1(e){if(!e||typeof e!="object")return null;const t=e,n=Ku(t,O1),r=Ku(t,$1);let s=Ku(t,R1);return s==null&&(n!=null||r!=null)&&(s=(n??0)+(r??0)),n==null&&r==null&&s==null?null:{inputTokens:n,outputTokens:r,totalTokens:s}}function Ku(e,t){for(const n of t){if(!(n in e))continue;const r=B1(e[n]);if(r!=null)return r}return null}function B1(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function Yi(e){if(typeof e=="string"){const t=e.trim();if(!t)return null;try{const n=JSON.parse(t);return typeof n=="string"?n:JSON.stringify(n,null,2)}catch{return t}}if(e&&typeof e=="object")try{return JSON.stringify(e,null,2)}catch(t){console.warn("Failed to stringify tool arguments",t,e)}return null}const Ji={open:!1,messageId:null,tools:[]};function j1(){const{subscribe:e,set:t,update:n}=Tt(Ji);function r(i,l){t({open:!0,messageId:i,tools:l})}function s(i,l,c,f){const d=Zi(i,l,c,f);r(c,d)}function a(){t(Ji)}function u(i,l,c){n(f=>{if(!f.open||!f.messageId)return f;const d=Zi(i,l,f.messageId,c);return d.length===f.tools.length&&d.every((h,p)=>{const x=f.tools[p];return x?.id===h.id&&x?.name===h.name&&x?.status===h.status&&x?.input===h.input&&x?.result===h.result})?f:{...f,tools:d}})}return{subscribe:e,openWithEntries:r,openForMessage:s,close:a,syncEntries:u}}const Xi={open:!1,messageId:null,details:null};function q1(){const{subscribe:e,set:t,update:n}=Tt(Xi);function r(u,i){t({open:!0,messageId:u,details:i??{engine:null,maxResults:null,contextSize:null,searchPrompt:null}})}function s(u){const i=u.details?.webSearchConfig;if(i&&typeof i=="object"){const l={engine:i.engine??null,maxResults:i.maxResults??null,contextSize:i.contextSize??null,searchPrompt:i.searchPrompt??null};r(u.id,l)}else r(u.id,null)}function a(){t(Xi)}return{subscribe:e,openWithDetails:r,openForMessage:s,close:a}}var H1=F('

                                No web citations found.

                                '),W1=F('

                                '),V1=F('

                                '),G1=F(" "),K1=F(" "),Z1=F('
                                '),Y1=F('
                              • '),J1=F('
                                  '),X1=F('

                                  '),Q1=F('

                                  Web Citations

                                  ',1);function eh(e,t){it(t,!1);const n=It();let r=oe(t,"open",8,!1),s=oe(t,"messageId",8,null),a=oe(t,"citations",24,()=>[]);function u(){n("close")}dt();var i=Ae(),l=me(i);{var c=f=>{vr(f,{get open(){return r()},labelledBy:"citations-modal-title",modalClass:"citations-modal",bodyClass:"citations-modal-body",closeLabel:"Close web citations",$$events:{close:u},children:(d,v)=>{var h=Ae(),p=me(h);{var x=_=>{var E=H1();k(_,E)},y=_=>{var E=J1();_t(E,5,a,zn,(S,b,D)=>{var A=Y1(),P=g(A),Z=g(P);Z.textContent=`Citation ${D+1}`;var Y=C(Z,2),T=C(P,2);{var N=ae=>{var ue=W1(),L=g(ue);K(()=>X(L,(o(b),m(()=>o(b).title)))),k(ae,ue)};$(T,ae=>{o(b),m(()=>o(b).title)&&ae(N)})}var Q=C(T,2),I=g(Q),V=C(Q,2);{var J=ae=>{var ue=V1(),L=g(ue);K(()=>X(L,(o(b),m(()=>o(b).content)))),k(ae,ue)};$(V,ae=>{o(b),m(()=>o(b).content)&&ae(J)})}var se=C(V,2);{var de=ae=>{var ue=Z1(),L=g(ue);{var U=H=>{var q=G1(),z=g(q);K(()=>X(z,`Start: ${o(b),m(()=>o(b).startIndex)??""}`)),k(H,q)};$(L,H=>{o(b),m(()=>o(b).startIndex!==void 0)&&H(U)})}var G=C(L,2);{var ie=H=>{var q=K1(),z=g(q);K(()=>X(z,`End: ${o(b),m(()=>o(b).endIndex)??""}`)),k(H,q)};$(G,H=>{o(b),m(()=>o(b).endIndex!==void 0)&&H(ie)})}k(ae,ue)};$(se,ae=>{o(b),m(()=>o(b).startIndex!==void 0||o(b).endIndex!==void 0)&&ae(de)})}K(()=>{fe(Y,"href",(o(b),m(()=>o(b).url))),X(I,(o(b),m(()=>o(b).url)))}),k(S,A)}),k(_,E)};$(p,_=>{O(a()),m(()=>a().length===0)?_(x):_(y,!1)})}k(d,h)},$$slots:{default:!0,heading:(d,v)=>{var h=Q1(),p=C(me(h),2);{var x=y=>{var _=X1(),E=g(_);K(()=>X(E,`Message ID: ${s()??""}`)),k(y,_)};$(p,y=>{s()&&y(x)})}k(d,h)}}})};$(l,f=>{r()&&f(c)})}k(e,i),lt()}const Qi='',th='',nh=2e3,rh="copy-code-button",el="copy-code-block";function sh(e){e.classList.add(el);const t=document.createElement("button");t.type="button",t.className=rh,t.setAttribute("aria-label","Copy code"),t.setAttribute("title","Copy code"),t.innerHTML=Qi;let n=null;const r=async()=>{const a=e.querySelector("code")?.textContent??e.textContent??"";if(a){if(!navigator?.clipboard?.writeText){console.warn("Clipboard API unavailable; cannot copy code block");return}try{await navigator.clipboard.writeText(a)}catch(u){console.error("Failed to copy code block",u);return}n!==null&&window.clearTimeout(n),t.classList.add("copied"),t.setAttribute("aria-label","Code copied"),t.innerHTML=th,n=window.setTimeout(()=>{e.isConnected&&(t.classList.remove("copied"),t.setAttribute("aria-label","Copy code"),t.innerHTML=Qi,n=null)},nh)}};return t.addEventListener("click",r),e.appendChild(t),{cleanup:()=>{t.removeEventListener("click",r),n!==null&&window.clearTimeout(n),t.remove(),e.classList.remove(el)}}}function tl(e,t){e.querySelectorAll("pre").forEach(r=>{t.has(r)||t.set(r,sh(r))}),Array.from(t.keys()).forEach(r=>{if(!e.contains(r)){const s=t.get(r);s&&(s.cleanup(),t.delete(r))}})}function Ao(e){const t=new Map,n=new MutationObserver(()=>{tl(e,t)});return n.observe(e,{childList:!0,subtree:!0}),tl(e,t),{destroy:()=>{n.disconnect(),Array.from(t.values()).forEach(r=>r.cleanup()),t.clear()}}}const nl={};function ah(e){let t=nl[e];if(t)return t;t=nl[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);t.push(r)}for(let n=0;n=55296&&f<=57343?s+="���":s+=String.fromCharCode(f),a+=6;continue}}if((i&248)===240&&a+91114111?s+="����":(d-=65536,s+=String.fromCharCode(55296+(d>>10),56320+(d&1023))),a+=9;continue}}s+="�"}return s})}Ts.defaultChars=";/?:@&=+$,#";Ts.componentChars="";const rl={};function uh(e){let t=rl[e];if(t)return t;t=rl[e]=[];for(let n=0;n<128;n++){const r=String.fromCharCode(n);/^[0-9a-z]$/i.test(r)?t.push(r):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const r=uh(t);let s="";for(let a=0,u=e.length;a=55296&&i<=57343){if(i>=55296&&i<=56319&&a+1=56320&&l<=57343){s+=encodeURIComponent(e[a]+e[a+1]),a++;continue}}s+="%EF%BF%BD";continue}s+=encodeURIComponent(e[a])}return s}Ta.defaultChars=";/?:@&=+$,-_.!~*'()#";Ta.componentChars="-_.!~*'()";function ni(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function cu(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const oh=/^([a-z0-9.+-]+:)/i,ih=/:[0-9]*$/,lh=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,ch=["<",">",'"',"`"," ","\r",` +`," "],dh=["{","}","|","\\","^","`"].concat(ch),fh=["'"].concat(dh),sl=["%","/","?",";","#"].concat(fh),al=["/","?","#"],ph=255,ul=/^[+a-z0-9A-Z_-]{0,63}$/,hh=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,ol={javascript:!0,"javascript:":!0},il={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function ri(e,t){if(e&&e instanceof cu)return e;const n=new cu;return n.parse(e,t),n}cu.prototype.parse=function(e,t){let n,r,s,a=e;if(a=a.trim(),!t&&e.split("#").length===1){const c=lh.exec(a);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let u=oh.exec(a);if(u&&(u=u[0],n=u.toLowerCase(),this.protocol=u,a=a.substr(u.length)),(t||u||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(s=a.substr(0,2)==="//",s&&!(u&&ol[u])&&(a=a.substr(2),this.slashes=!0)),!ol[u]&&(s||u&&!il[u])){let c=-1;for(let p=0;p127?E+="x":E+=_[S];if(!E.match(ul)){const S=p.slice(0,x),b=p.slice(x+1),D=_.match(hh);D&&(S.push(D[1]),b.unshift(D[2])),b.length&&(a=b.join(".")+a),this.hostname=S.join(".");break}}}}this.hostname.length>ph&&(this.hostname=""),h&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const i=a.indexOf("#");i!==-1&&(this.hash=a.substr(i),a=a.slice(0,i));const l=a.indexOf("?");return l!==-1&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),il[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};cu.prototype.parseHost=function(e){let t=ih.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};const mh=Object.freeze(Object.defineProperty({__proto__:null,decode:Ts,encode:Ta,format:ni,parse:ri},Symbol.toStringTag,{value:"Module"})),Wc=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Vc=/[\0-\x1F\x7F-\x9F]/,vh=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,si=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,Gc=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Kc=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,gh=Object.freeze(Object.defineProperty({__proto__:null,Any:Wc,Cc:Vc,Cf:vh,P:si,S:Gc,Z:Kc},Symbol.toStringTag,{value:"Module"})),bh=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),_h=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var Zu;const yh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),xh=(Zu=String.fromCodePoint)!==null&&Zu!==void 0?Zu:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function kh(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=yh.get(e))!==null&&t!==void 0?t:e}var Kt;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Kt||(Kt={}));const wh=32;var Dr;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(Dr||(Dr={}));function Do(e){return e>=Kt.ZERO&&e<=Kt.NINE}function Eh(e){return e>=Kt.UPPER_A&&e<=Kt.UPPER_F||e>=Kt.LOWER_A&&e<=Kt.LOWER_F}function Sh(e){return e>=Kt.UPPER_A&&e<=Kt.UPPER_Z||e>=Kt.LOWER_A&&e<=Kt.LOWER_Z||Do(e)}function Ch(e){return e===Kt.EQUALS||Sh(e)}var Wt;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(Wt||(Wt={}));var Sr;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(Sr||(Sr={}));class Ah{constructor(t,n,r){this.decodeTree=t,this.emitCodePoint=n,this.errors=r,this.state=Wt.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Sr.Strict}startEntity(t){this.decodeMode=t,this.state=Wt.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,n){switch(this.state){case Wt.EntityStart:return t.charCodeAt(n)===Kt.NUM?(this.state=Wt.NumericStart,this.consumed+=1,this.stateNumericStart(t,n+1)):(this.state=Wt.NamedEntity,this.stateNamedEntity(t,n));case Wt.NumericStart:return this.stateNumericStart(t,n);case Wt.NumericDecimal:return this.stateNumericDecimal(t,n);case Wt.NumericHex:return this.stateNumericHex(t,n);case Wt.NamedEntity:return this.stateNamedEntity(t,n)}}stateNumericStart(t,n){return n>=t.length?-1:(t.charCodeAt(n)|wh)===Kt.LOWER_X?(this.state=Wt.NumericHex,this.consumed+=1,this.stateNumericHex(t,n+1)):(this.state=Wt.NumericDecimal,this.stateNumericDecimal(t,n))}addToNumericResult(t,n,r,s){if(n!==r){const a=r-n;this.result=this.result*Math.pow(s,a)+parseInt(t.substr(n,a),s),this.consumed+=a}}stateNumericHex(t,n){const r=n;for(;n>14;for(;n>14,a!==0){if(u===Kt.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==Sr.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;const{result:n,decodeTree:r}=this,s=(r[n]&Dr.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,s,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,n,r){const{decodeTree:s}=this;return this.emitCodePoint(n===1?s[t]&~Dr.VALUE_LENGTH:s[t+1],r),n===3&&this.emitCodePoint(s[t+2],r),r}end(){var t;switch(this.state){case Wt.NamedEntity:return this.result!==0&&(this.decodeMode!==Sr.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Wt.NumericDecimal:return this.emitNumericEntity(0,2);case Wt.NumericHex:return this.emitNumericEntity(0,3);case Wt.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case Wt.EntityStart:return 0}}}function Zc(e){let t="";const n=new Ah(e,r=>t+=xh(r));return function(s,a){let u=0,i=0;for(;(i=s.indexOf("&",i))>=0;){t+=s.slice(u,i),n.startEntity(a);const c=n.write(s,i+1);if(c<0){u=i+n.end();break}u=i+c,i=c===0?u+1:u}const l=t+s.slice(u);return t="",l}}function Dh(e,t,n,r){const s=(t&Dr.BRANCH_LENGTH)>>7,a=t&Dr.JUMP_TABLE;if(s===0)return a!==0&&r===a?n:-1;if(a){const l=r-a;return l<0||l>=s?-1:e[n+l]-1}let u=n,i=u+s-1;for(;u<=i;){const l=u+i>>>1,c=e[l];if(cr)i=l-1;else return e[l+s]}return-1}const Th=Zc(bh);Zc(_h);function Yc(e,t=Sr.Legacy){return Th(e,t)}function Fh(e){return Object.prototype.toString.call(e)}function ai(e){return Fh(e)==="[object String]"}const Mh=Object.prototype.hasOwnProperty;function Ph(e,t){return Mh.call(e,t)}function Su(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){if(n){if(typeof n!="object")throw new TypeError(n+"must be object");Object.keys(n).forEach(function(r){e[r]=n[r]})}}),e}function Jc(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))}function ui(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function du(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const Xc=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,Ih=/&([a-z#][a-z0-9]{1,31});/gi,Nh=new RegExp(Xc.source+"|"+Ih.source,"gi"),Lh=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Oh(e,t){if(t.charCodeAt(0)===35&&Lh.test(t)){const r=t[1].toLowerCase()==="x"?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return ui(r)?du(r):e}const n=Yc(e);return n!==e?n:e}function $h(e){return e.indexOf("\\")<0?e:e.replace(Xc,"$1")}function Fs(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(Nh,function(t,n,r){return n||Oh(t,r)})}const Rh=/[&<>"]/,zh=/[&<>"]/g,Uh={"&":"&","<":"<",">":">",'"':"""};function Bh(e){return Uh[e]}function Ir(e){return Rh.test(e)?e.replace(zh,Bh):e}const jh=/[.?*+^$[\]\\(){}|-]/g;function qh(e){return e.replace(jh,"\\$&")}function wt(e){switch(e){case 9:case 32:return!0}return!1}function ga(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function ba(e){return si.test(e)||Gc.test(e)}function _a(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Cu(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const Hh={mdurl:mh,ucmicro:gh},Wh=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:Jc,assign:Su,escapeHtml:Ir,escapeRE:qh,fromCodePoint:du,has:Ph,isMdAsciiPunct:_a,isPunctChar:ba,isSpace:wt,isString:ai,isValidEntityCode:ui,isWhiteSpace:ga,lib:Hh,normalizeReference:Cu,unescapeAll:Fs,unescapeMd:$h},Symbol.toStringTag,{value:"Module"}));function Vh(e,t,n){let r,s,a,u;const i=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos32))return a;if(r===41){if(u===0)break;u--}s++}return t===s||u!==0||(a.str=Fs(e.slice(t,s)),a.pos=s,a.ok=!0),a}function Kh(e,t,n,r){let s,a=t;const u={ok:!1,can_continue:!1,pos:0,str:"",marker:0};if(r)u.str=r.str,u.marker=r.marker;else{if(a>=n)return u;let i=e.charCodeAt(a);if(i!==34&&i!==39&&i!==40)return u;t++,a++,i===40&&(i=41),u.marker=i}for(;a"+Ir(a.content)+""};sr.code_block=function(e,t,n,r,s){const a=e[t];return""+Ir(e[t].content)+` +`};sr.fence=function(e,t,n,r,s){const a=e[t],u=a.info?Fs(a.info).trim():"";let i="",l="";if(u){const f=u.split(/(\s+)/g);i=f[0],l=f.slice(2).join("")}let c;if(n.highlight?c=n.highlight(a.content,i,l)||Ir(a.content):c=Ir(a.content),c.indexOf("${c} +`}return`
                                  ${c}
                                  +`};sr.image=function(e,t,n,r,s){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=s.renderInlineAsText(a.children,n,r),s.renderToken(e,t,n)};sr.hardbreak=function(e,t,n){return n.xhtmlOut?`
                                  +`:`
                                  +`};sr.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?`
                                  +`:`
                                  +`:` +`};sr.text=function(e,t){return Ir(e[t].content)};sr.html_block=function(e,t){return e[t].content};sr.html_inline=function(e,t){return e[t].content};function Os(){this.rules=Su({},sr)}Os.prototype.renderAttrs=function(t){let n,r,s;if(!t.attrs)return"";for(s="",n=0,r=t.attrs.length;n +`:">",a};Os.prototype.renderInline=function(e,t,n){let r="";const s=this.rules;for(let a=0,u=e.length;a=0&&(r=this.attrs[n][1]),r};Wn.prototype.attrJoin=function(t,n){const r=this.attrIndex(t);r<0?this.attrPush([t,n]):this.attrs[r][1]=this.attrs[r][1]+" "+n};function Qc(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}Qc.prototype.Token=Wn;const Yh=/\r\n?|\n/g,Jh=/\0/g;function Xh(e){let t;t=e.src.replace(Yh,` +`),t=t.replace(Jh,"�"),e.src=t}function Qh(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function em(e){const t=e.tokens;for(let n=0,r=t.length;n\s]/i.test(e)}function nm(e){return/^<\/a\s*>/i.test(e)}function rm(e){const t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n=0;u--){const i=s[u];if(i.type==="link_close"){for(u--;s[u].level!==i.level&&s[u].type!=="link_open";)u--;continue}if(i.type==="html_inline"&&(tm(i.content)&&a>0&&a--,nm(i.content)&&a++),!(a>0)&&i.type==="text"&&e.md.linkify.test(i.content)){const l=i.content;let c=e.md.linkify.match(l);const f=[];let d=i.level,v=0;c.length>0&&c[0].index===0&&u>0&&s[u-1].type==="text_special"&&(c=c.slice(1));for(let h=0;hv){const D=new e.Token("text","",0);D.content=l.slice(v,_),D.level=d,f.push(D)}const E=new e.Token("link_open","a",1);E.attrs=[["href",x]],E.level=d++,E.markup="linkify",E.info="auto",f.push(E);const S=new e.Token("text","",0);S.content=y,S.level=d,f.push(S);const b=new e.Token("link_close","a",-1);b.level=--d,b.markup="linkify",b.info="auto",f.push(b),v=c[h].lastIndex}if(v=0;n--){const r=e[n];r.type==="text"&&!t&&(r.content=r.content.replace(am,om)),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function lm(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];r.type==="text"&&!t&&ed.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/mg,"$1—").replace(/(^|\s)--(?=\s|$)/mg,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg,"$1–")),r.type==="link_open"&&r.info==="auto"&&t--,r.type==="link_close"&&r.info==="auto"&&t++}}function cm(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type==="inline"&&(sm.test(e.tokens[t].content)&&im(e.tokens[t].children),ed.test(e.tokens[t].content)&&lm(e.tokens[t].children))}const dm=/['"]/,ll=/['"]/g,cl="’";function za(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function fm(e,t){let n;const r=[];for(let s=0;s=0&&!(r[n].level<=u);n--);if(r.length=n+1,a.type!=="text")continue;let i=a.content,l=0,c=i.length;e:for(;l=0)p=i.charCodeAt(f.index-1);else for(n=s-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){p=e[n].content.charCodeAt(e[n].content.length-1);break}let x=32;if(l=48&&p<=57&&(v=d=!1),d&&v&&(d=y,v=_),!d&&!v){h&&(a.content=za(a.content,f.index,cl));continue}if(v)for(n=r.length-1;n>=0;n--){let b=r[n];if(r[n].level=0;t--)e.tokens[t].type!=="inline"||!dm.test(e.tokens[t].content)||fm(e.tokens[t].children,e)}function hm(e){let t,n;const r=e.tokens,s=r.length;for(let a=0;a0&&this.level++,this.tokens.push(r),r};ar.prototype.isEmpty=function(t){return this.bMarks[t]+this.tShift[t]>=this.eMarks[t]};ar.prototype.skipEmptyLines=function(t){for(let n=this.lineMax;tn;)if(!wt(this.src.charCodeAt(--t)))return t+1;return t};ar.prototype.skipChars=function(t,n){for(let r=this.src.length;tr;)if(n!==this.src.charCodeAt(--t))return t+1;return t};ar.prototype.getLines=function(t,n,r,s){if(t>=n)return"";const a=new Array(n-t);for(let u=0,i=t;ir?a[u]=new Array(l-r+1).join(" ")+this.src.slice(f,d):a[u]=this.src.slice(f,d)}return a.join("")};ar.prototype.Token=Wn;const mm=65536;function Ju(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function dl(e){const t=[],n=e.length;let r=0,s=e.charCodeAt(r),a=!1,u=0,i="";for(;rn)return!1;let s=t+1;if(e.sCount[s]=4)return!1;let a=e.bMarks[s]+e.tShift[s];if(a>=e.eMarks[s])return!1;const u=e.src.charCodeAt(a++);if(u!==124&&u!==45&&u!==58||a>=e.eMarks[s])return!1;const i=e.src.charCodeAt(a++);if(i!==124&&i!==45&&i!==58&&!wt(i)||u===45&&wt(i))return!1;for(;a=4)return!1;c=dl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop();const d=c.length;if(d===0||d!==f.length)return!1;if(r)return!0;const v=e.parentType;e.parentType="table";const h=e.md.block.ruler.getRules("blockquote"),p=e.push("table_open","table",1),x=[t,0];p.map=x;const y=e.push("thead_open","thead",1);y.map=[t,t+1];const _=e.push("tr_open","tr",1);_.map=[t,t+1];for(let b=0;b=4||(c=dl(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop(),S+=d-c.length,S>mm))break;if(s===t+2){const A=e.push("tbody_open","tbody",1);A.map=E=[t+2,0]}const D=e.push("tr_open","tr",1);D.map=[s,s+1];for(let A=0;A=4){r++,s=r;continue}break}e.line=s;const a=e.push("code_block","code",0);return a.content=e.getLines(t,s,4+e.blkIndent,!1)+` +`,a.map=[t,e.line],!0}function bm(e,t,n,r){let s=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||s+3>a)return!1;const u=e.src.charCodeAt(s);if(u!==126&&u!==96)return!1;let i=s;s=e.skipChars(s,u);let l=s-i;if(l<3)return!1;const c=e.src.slice(i,s),f=e.src.slice(s,a);if(u===96&&f.indexOf(String.fromCharCode(u))>=0)return!1;if(r)return!0;let d=t,v=!1;for(;d++,!(d>=n||(s=i=e.bMarks[d]+e.tShift[d],a=e.eMarks[d],s=4)&&(s=e.skipChars(s,u),!(s-i=4||e.src.charCodeAt(s)!==62)return!1;if(r)return!0;const i=[],l=[],c=[],f=[],d=e.md.block.ruler.getRules("blockquote"),v=e.parentType;e.parentType="blockquote";let h=!1,p;for(p=t;p=a)break;if(e.src.charCodeAt(s++)===62&&!S){let D=e.sCount[p]+1,A,P;e.src.charCodeAt(s)===32?(s++,D++,P=!1,A=!0):e.src.charCodeAt(s)===9?(A=!0,(e.bsCount[p]+D)%4===3?(s++,D++,P=!1):P=!0):A=!1;let Z=D;for(i.push(e.bMarks[p]),e.bMarks[p]=s;s=a,l.push(e.bsCount[p]),e.bsCount[p]=e.sCount[p]+1+(A?1:0),c.push(e.sCount[p]),e.sCount[p]=Z-D,f.push(e.tShift[p]),e.tShift[p]=s-e.bMarks[p];continue}if(h)break;let b=!1;for(let D=0,A=d.length;D";const _=[t,0];y.map=_,e.md.block.tokenize(e,t,p);const E=e.push("blockquote_close","blockquote",-1);E.markup=">",e.lineMax=u,e.parentType=v,_[1]=e.line;for(let S=0;S=4)return!1;let a=e.bMarks[t]+e.tShift[t];const u=e.src.charCodeAt(a++);if(u!==42&&u!==45&&u!==95)return!1;let i=1;for(;a=r)return-1;let a=e.src.charCodeAt(s++);if(a<48||a>57)return-1;for(;;){if(s>=r)return-1;if(a=e.src.charCodeAt(s++),a>=48&&a<=57){if(s-n>=10)return-1;continue}if(a===41||a===46)break;return-1}return s=4||e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]=e.blkIndent&&(f=!0);let d,v,h;if((h=pl(e,l))>=0){if(d=!0,u=e.bMarks[l]+e.tShift[l],v=Number(e.src.slice(u,h-1)),f&&v!==1)return!1}else if((h=fl(e,l))>=0)d=!1;else return!1;if(f&&e.skipSpaces(h)>=e.eMarks[l])return!1;if(r)return!0;const p=e.src.charCodeAt(h-1),x=e.tokens.length;d?(i=e.push("ordered_list_open","ol",1),v!==1&&(i.attrs=[["start",v]])):i=e.push("bullet_list_open","ul",1);const y=[l,0];i.map=y,i.markup=String.fromCharCode(p);let _=!1;const E=e.md.block.ruler.getRules("list"),S=e.parentType;for(e.parentType="list";l=s?P=1:P=D-b,P>4&&(P=1);const Z=b+P;i=e.push("list_item_open","li",1),i.markup=String.fromCharCode(p);const Y=[l,0];i.map=Y,d&&(i.info=e.src.slice(u,h-1));const T=e.tight,N=e.tShift[l],Q=e.sCount[l],I=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=Z,e.tight=!0,e.tShift[l]=A-e.bMarks[l],e.sCount[l]=D,A>=s&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,!0),(!e.tight||_)&&(c=!1),_=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=I,e.tShift[l]=N,e.sCount[l]=Q,e.tight=T,i=e.push("list_item_close","li",-1),i.markup=String.fromCharCode(p),l=e.line,Y[1]=l,l>=n||e.sCount[l]=4)break;let V=!1;for(let J=0,se=E.length;J=4||e.src.charCodeAt(s)!==91)return!1;function i(E){const S=e.lineMax;if(E>=S||e.isEmpty(E))return null;let b=!1;if(e.sCount[E]-e.blkIndent>3&&(b=!0),e.sCount[E]<0&&(b=!0),!b){const P=e.md.block.ruler.getRules("reference"),Z=e.parentType;e.parentType="reference";let Y=!1;for(let T=0,N=P.length;T"u"&&(e.env.references={}),typeof e.env.references[_]>"u"&&(e.env.references[_]={title:y,href:d}),e.line=u),!0):!1}const Em=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Sm="[a-zA-Z_:][a-zA-Z0-9:._-]*",Cm="[^\"'=<>`\\x00-\\x20]+",Am="'[^']*'",Dm='"[^"]*"',Tm="(?:"+Cm+"|"+Am+"|"+Dm+")",Fm="(?:\\s+"+Sm+"(?:\\s*=\\s*"+Tm+")?)",td="<[A-Za-z][A-Za-z0-9\\-]*"+Fm+"*\\s*\\/?>",nd="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Mm="",Pm="<[?][\\s\\S]*?[?]>",Im="]*>",Nm="",Lm=new RegExp("^(?:"+td+"|"+nd+"|"+Mm+"|"+Pm+"|"+Im+"|"+Nm+")"),Om=new RegExp("^(?:"+td+"|"+nd+")"),vs=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp("^|$))","i"),/^$/,!0],[new RegExp(Om.source+"\\s*$"),/^$/,!1]];function $m(e,t,n,r){let s=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(s)!==60)return!1;let u=e.src.slice(s,a),i=0;for(;i=4)return!1;let u=e.src.charCodeAt(s);if(u!==35||s>=a)return!1;let i=1;for(u=e.src.charCodeAt(++s);u===35&&s6||ss&&wt(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(i),1);c.markup="########".slice(0,i),c.map=[t,e.line];const f=e.push("inline","",0);f.content=e.src.slice(s,a).trim(),f.map=[t,e.line],f.children=[];const d=e.push("heading_close","h"+String(i),-1);return d.markup="########".slice(0,i),!0}function zm(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;const s=e.parentType;e.parentType="paragraph";let a=0,u,i=t+1;for(;i3)continue;if(e.sCount[i]>=e.blkIndent){let h=e.bMarks[i]+e.tShift[i];const p=e.eMarks[i];if(h=p))){a=u===61?1:2;break}}if(e.sCount[i]<0)continue;let v=!1;for(let h=0,p=r.length;h3||e.sCount[a]<0)continue;let c=!1;for(let f=0,d=r.length;f=n||e.sCount[u]=a){e.line=n;break}const l=e.line;let c=!1;for(let f=0;f=e.line)throw new Error("block rule didn't increment state.line");break}if(!c)throw new Error("none of the block rules matched");e.tight=!i,e.isEmpty(e.line-1)&&(i=!0),u=e.line,u0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],s={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(s),r};Fa.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),s=e>0?this.src.charCodeAt(e-1):32;let a=e;for(;a0)return!1;const n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const s=e.pending.match(qm);if(!s)return!1;const a=s[1],u=e.md.linkify.matchAtStart(e.src.slice(n-a.length));if(!u)return!1;let i=u.url;if(i.length<=a.length)return!1;i=i.replace(/\*+$/,"");const l=e.md.normalizeLink(i);if(!e.md.validateLink(l))return!1;if(!t){e.pending=e.pending.slice(0,-a.length);const c=e.push("link_open","a",1);c.attrs=[["href",l]],c.markup="linkify",c.info="auto";const f=e.push("text","",0);f.content=e.md.normalizeLinkText(i);const d=e.push("link_close","a",-1);d.markup="linkify",d.info="auto"}return e.pos+=i.length-a.length,!0}function Wm(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const r=e.pending.length-1,s=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let a=r-1;for(;a>=1&&e.pending.charCodeAt(a-1)===32;)a--;e.pending=e.pending.slice(0,a),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n?@[]^_`{|}~-".split("").forEach(function(e){ii[e.charCodeAt(0)]=1});function Vm(e,t){let n=e.pos;const r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let s=e.src.charCodeAt(n);if(s===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&s<=56319&&n+1=56320&&i<=57343&&(a+=e.src[n+1],n++)}const u="\\"+a;if(!t){const i=e.push("text_special","",0);s<256&&ii[s]!==0?i.content=a:i.content=u,i.markup=u,i.info="escape"}return e.pos=n+1,!0}function Gm(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;const s=n;n++;const a=e.posMax;for(;n=0;r--){const s=t[r];if(s.marker!==95&&s.marker!==42||s.end===-1)continue;const a=t[s.end],u=r>0&&t[r-1].end===s.end+1&&t[r-1].marker===s.marker&&t[r-1].token===s.token-1&&t[s.end+1].token===a.token+1,i=String.fromCharCode(s.marker),l=e.tokens[s.token];l.type=u?"strong_open":"em_open",l.tag=u?"strong":"em",l.nesting=1,l.markup=u?i+i:i,l.content="";const c=e.tokens[a.token];c.type=u?"strong_close":"em_close",c.tag=u?"strong":"em",c.nesting=-1,c.markup=u?i+i:i,c.content="",u&&(e.tokens[t[r-1].token].content="",e.tokens[t[s.end+1].token].content="",r--)}}function Jm(e){const t=e.tokens_meta,n=e.tokens_meta.length;ml(e,e.delimiters);for(let r=0;r=d)return!1;if(l=p,s=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),s.ok){for(u=e.md.normalizeLink(s.str),e.md.validateLink(u)?p=s.pos:u="",l=p;p=d||e.src.charCodeAt(p)!==41)&&(c=!0),p++}if(c){if(typeof e.env.references>"u")return!1;if(p=0?r=e.src.slice(l,p++):p=h+1):p=h+1,r||(r=e.src.slice(v,h)),a=e.env.references[Cu(r)],!a)return e.pos=f,!1;u=a.href,i=a.title}if(!t){e.pos=v,e.posMax=h;const x=e.push("link_open","a",1),y=[["href",u]];x.attrs=y,i&&y.push(["title",i]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=p,e.posMax=d,!0}function Qm(e,t){let n,r,s,a,u,i,l,c,f="";const d=e.pos,v=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const h=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(p<0)return!1;if(a=p+1,a=v)return!1;for(c=a,i=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),i.ok&&(f=e.md.normalizeLink(i.str),e.md.validateLink(f)?a=i.pos:f=""),c=a;a=v||e.src.charCodeAt(a)!==41)return e.pos=d,!1;a++}else{if(typeof e.env.references>"u")return!1;if(a=0?s=e.src.slice(c,a++):a=p+1):a=p+1,s||(s=e.src.slice(h,p)),u=e.env.references[Cu(s)],!u)return e.pos=d,!1;f=u.href,l=u.title}if(!t){r=e.src.slice(h,p);const x=[];e.md.inline.parse(r,e.md,e.env,x);const y=e.push("image","img",0),_=[["src",f],["alt",""]];y.attrs=_,y.children=x,y.content=r,l&&_.push(["title",l])}return e.pos=a,e.posMax=v,!0}const ev=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,tv=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function nv(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;const r=e.pos,s=e.posMax;for(;;){if(++n>=s)return!1;const u=e.src.charCodeAt(n);if(u===60)return!1;if(u===62)break}const a=e.src.slice(r+1,n);if(tv.test(a)){const u=e.md.normalizeLink(a);if(!e.md.validateLink(u))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",u]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}if(ev.test(a)){const u=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(u))return!1;if(!t){const i=e.push("link_open","a",1);i.attrs=[["href",u]],i.markup="autolink",i.info="auto";const l=e.push("text","",0);l.content=e.md.normalizeLinkText(a);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=a.length+2,!0}return!1}function rv(e){return/^\s]/i.test(e)}function sv(e){return/^<\/a\s*>/i.test(e)}function av(e){const t=e|32;return t>=97&&t<=122}function uv(e,t){if(!e.md.options.html)return!1;const n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;const s=e.src.charCodeAt(r+1);if(s!==33&&s!==63&&s!==47&&!av(s))return!1;const a=e.src.slice(r).match(Lm);if(!a)return!1;if(!t){const u=e.push("html_inline","",0);u.content=a[0],rv(u.content)&&e.linkLevel++,sv(u.content)&&e.linkLevel--}return e.pos+=a[0].length,!0}const ov=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,iv=/^&([a-z][a-z0-9]{1,31});/i;function lv(e,t){const n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){const a=e.src.slice(n).match(ov);if(a){if(!t){const u=a[1][0].toLowerCase()==="x"?parseInt(a[1].slice(1),16):parseInt(a[1],10),i=e.push("text_special","",0);i.content=ui(u)?du(u):du(65533),i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}else{const a=e.src.slice(n).match(iv);if(a){const u=Yc(a[0]);if(u!==a[0]){if(!t){const i=e.push("text_special","",0);i.content=u,i.markup=a[0],i.info="entity"}return e.pos+=a[0].length,!0}}}return!1}function vl(e){const t={},n=e.length;if(!n)return;let r=0,s=-2;const a=[];for(let u=0;ul;c-=a[c]+1){const d=e[c];if(d.marker===i.marker&&d.open&&d.end<0){let v=!1;if((d.close||i.open)&&(d.length+i.length)%3===0&&(d.length%3!==0||i.length%3!==0)&&(v=!0),!v){const h=c>0&&!e[c-1].open?a[c-1]+1:0;a[u]=u-c+h,a[c]=h,i.open=!1,d.end=u,d.close=!1,f=-1,s=-2;break}}}f!==-1&&(t[i.marker][(i.open?3:0)+(i.length||0)%3]=f)}}function cv(e){const t=e.tokens_meta,n=e.tokens_meta.length;vl(e.delimiters);for(let r=0;r0&&r++,s[t].type==="text"&&t+1=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;u||e.pos++,a[t]=e.pos};Ma.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,s=e.md.options.maxNesting;for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(u){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()};Ma.prototype.parse=function(e,t,n,r){const s=new this.State(e,t,n,r);this.tokenize(s);const a=this.ruler2.getRules(""),u=a.length;for(let i=0;i|$))",t.tpl_email_fuzzy="(^|"+n+'|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}function To(e){return Array.prototype.slice.call(arguments,1).forEach(function(n){n&&Object.keys(n).forEach(function(r){e[r]=n[r]})}),e}function Du(e){return Object.prototype.toString.call(e)}function pv(e){return Du(e)==="[object String]"}function hv(e){return Du(e)==="[object Object]"}function mv(e){return Du(e)==="[object RegExp]"}function gl(e){return Du(e)==="[object Function]"}function vv(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}const ad={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function gv(e){return Object.keys(e||{}).reduce(function(t,n){return t||ad.hasOwnProperty(n)},!1)}const bv={"http:":{validate:function(e,t,n){const r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){const r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},_v="a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",yv="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function xv(e){e.__index__=-1,e.__text_cache__=""}function kv(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function bl(){return function(e,t){t.normalize(e)}}function fu(e){const t=e.re=fv(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(_v),n.push(t.src_xn),t.src_tlds=n.join("|");function r(i){return i.replace("%TLDS%",t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const s=[];e.__compiled__={};function a(i,l){throw new Error('(LinkifyIt) Invalid schema "'+i+'": '+l)}Object.keys(e.__schemas__).forEach(function(i){const l=e.__schemas__[i];if(l===null)return;const c={validate:null,link:null};if(e.__compiled__[i]=c,hv(l)){mv(l.validate)?c.validate=kv(l.validate):gl(l.validate)?c.validate=l.validate:a(i,l),gl(l.normalize)?c.normalize=l.normalize:l.normalize?a(i,l):c.normalize=bl();return}if(pv(l)){s.push(i);return}a(i,l)}),s.forEach(function(i){e.__compiled__[e.__schemas__[i]]&&(e.__compiled__[i].validate=e.__compiled__[e.__schemas__[i]].validate,e.__compiled__[i].normalize=e.__compiled__[e.__schemas__[i]].normalize)}),e.__compiled__[""]={validate:null,normalize:bl()};const u=Object.keys(e.__compiled__).filter(function(i){return i.length>0&&e.__compiled__[i]}).map(vv).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),xv(e)}function wv(e,t){const n=e.__index__,r=e.__last_index__,s=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=s,this.text=s,this.url=s}function Fo(e,t){const n=new wv(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function En(e,t){if(!(this instanceof En))return new En(e,t);t||gv(e)&&(t=e,e={}),this.__opts__=To({},ad,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=To({},bv,e),this.__compiled__={},this.__tlds__=yv,this.__tlds_replaced__=!1,this.re={},fu(this)}En.prototype.add=function(t,n){return this.__schemas__[t]=n,fu(this),this};En.prototype.set=function(t){return this.__opts__=To(this.__opts__,t),this};En.prototype.test=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return!1;let n,r,s,a,u,i,l,c,f;if(this.re.schema_test.test(t)){for(l=this.re.schema_search,l.lastIndex=0;(n=l.exec(t))!==null;)if(a=this.testSchemaAt(t,n[2],l.lastIndex),a){this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+a;break}}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(c=t.search(this.re.host_fuzzy_test),c>=0&&(this.__index__<0||c=0&&(s=t.match(this.re.email_fuzzy))!==null&&(u=s.index+s[1].length,i=s.index+s[0].length,(this.__index__<0||uthis.__last_index__)&&(this.__schema__="mailto:",this.__index__=u,this.__last_index__=i))),this.__index__>=0};En.prototype.pretest=function(t){return this.re.pretest.test(t)};En.prototype.testSchemaAt=function(t,n,r){return this.__compiled__[n.toLowerCase()]?this.__compiled__[n.toLowerCase()].validate(t,r,this):0};En.prototype.match=function(t){const n=[];let r=0;this.__index__>=0&&this.__text_cache__===t&&(n.push(Fo(this,r)),r=this.__last_index__);let s=r?t.slice(r):t;for(;this.test(s);)n.push(Fo(this,r)),s=s.slice(this.__last_index__),r+=this.__last_index__;return n.length?n:null};En.prototype.matchAtStart=function(t){if(this.__text_cache__=t,this.__index__=-1,!t.length)return null;const n=this.re.schema_at_start.exec(t);if(!n)return null;const r=this.testSchemaAt(t,n[2],n[0].length);return r?(this.__schema__=n[2],this.__index__=n.index+n[1].length,this.__last_index__=n.index+n[0].length+r,Fo(this,0)):null};En.prototype.tlds=function(t,n){return t=Array.isArray(t)?t:[t],n?(this.__tlds__=this.__tlds__.concat(t).sort().filter(function(r,s,a){return r!==a[s-1]}).reverse(),fu(this),this):(this.__tlds__=t.slice(),this.__tlds_replaced__=!0,fu(this),this)};En.prototype.normalize=function(t){t.schema||(t.url="http://"+t.url),t.schema==="mailto:"&&!/^mailto:/i.test(t.url)&&(t.url="mailto:"+t.url)};En.prototype.onCompile=function(){};const Ss=2147483647,Yn=36,li=1,ya=26,Ev=38,Sv=700,ud=72,od=128,id="-",Cv=/^xn--/,Av=/[^\0-\x7F]/,Dv=/[\x2E\u3002\uFF0E\uFF61]/g,Tv={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},eo=Yn-li,Jn=Math.floor,to=String.fromCharCode;function wr(e){throw new RangeError(Tv[e])}function Fv(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}function ld(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(Dv,".");const s=e.split("."),a=Fv(s,t).join(".");return r+a}function cd(e){const t=[];let n=0;const r=e.length;for(;n=55296&&s<=56319&&nString.fromCodePoint(...e),Pv=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:Yn},_l=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},dd=function(e,t,n){let r=0;for(e=n?Jn(e/Sv):e>>1,e+=Jn(e/t);e>eo*ya>>1;r+=Yn)e=Jn(e/eo);return Jn(r+(eo+1)*e/(e+Ev))},fd=function(e){const t=[],n=e.length;let r=0,s=od,a=ud,u=e.lastIndexOf(id);u<0&&(u=0);for(let i=0;i=128&&wr("not-basic"),t.push(e.charCodeAt(i));for(let i=u>0?u+1:0;i=n&&wr("invalid-input");const v=Pv(e.charCodeAt(i++));v>=Yn&&wr("invalid-input"),v>Jn((Ss-r)/f)&&wr("overflow"),r+=v*f;const h=d<=a?li:d>=a+ya?ya:d-a;if(vJn(Ss/p)&&wr("overflow"),f*=p}const c=t.length+1;a=dd(r-l,c,l==0),Jn(r/c)>Ss-s&&wr("overflow"),s+=Jn(r/c),r%=c,t.splice(r++,0,s)}return String.fromCodePoint(...t)},pd=function(e){const t=[];e=cd(e);const n=e.length;let r=od,s=0,a=ud;for(const l of e)l<128&&t.push(to(l));const u=t.length;let i=u;for(u&&t.push(id);i=r&&fJn((Ss-s)/c)&&wr("overflow"),s+=(l-r)*c,r=l;for(const f of e)if(fSs&&wr("overflow"),f===r){let d=s;for(let v=Yn;;v+=Yn){const h=v<=a?li:v>=a+ya?ya:v-a;if(d=0))try{t.hostname=hd.toASCII(t.hostname)}catch{}return Ta(ni(t))}function qv(e){const t=ri(e,!0);if(t.hostname&&(!t.protocol||md.indexOf(t.protocol)>=0))try{t.hostname=hd.toUnicode(t.hostname)}catch{}return Ts(ni(t),Ts.defaultChars+"%")}function Mn(e,t){if(!(this instanceof Mn))return new Mn(e,t);t||ai(e)||(t=e||{},e="default"),this.inline=new Ma,this.block=new Au,this.core=new oi,this.renderer=new Os,this.linkify=new En,this.validateLink=Bv,this.normalizeLink=jv,this.normalizeLinkText=qv,this.utils=Wh,this.helpers=Su({},Zh),this.options={},this.configure(e),t&&this.set(t)}Mn.prototype.set=function(e){return Su(this.options,e),this};Mn.prototype.configure=function(e){const t=this;if(ai(e)){const n=e;if(e=Rv[n],!e)throw new Error('Wrong `markdown-it` preset "'+n+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this};Mn.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(s){n=n.concat(this[s].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));const r=e.filter(function(s){return n.indexOf(s)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this};Mn.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(s){n=n.concat(this[s].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));const r=e.filter(function(s){return n.indexOf(s)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this};Mn.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this};Mn.prototype.parse=function(e,t){if(typeof e!="string")throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens};Mn.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)};Mn.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens};Mn.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */const{entries:vd,setPrototypeOf:yl,isFrozen:Hv,getPrototypeOf:Wv,getOwnPropertyDescriptor:Vv}=Object;let{freeze:pn,seal:Pn,create:gd}=Object,{apply:Mo,construct:Po}=typeof Reflect<"u"&&Reflect;pn||(pn=function(t){return t});Pn||(Pn=function(t){return t});Mo||(Mo=function(t,n){for(var r=arguments.length,s=new Array(r>2?r-2:0),a=2;a1?n-1:0),s=1;s1?n-1:0),s=1;s2&&arguments[2]!==void 0?arguments[2]:eu;yl&&yl(e,null);let r=t.length;for(;r--;){let s=t[r];if(typeof s=="string"){const a=n(s);a!==s&&(Hv(t)||(t[r]=a),s=a)}e[s]=!0}return e}function Xv(e){for(let t=0;t/gm),rg=Pn(/\$\{[\w\W]*/gm),sg=Pn(/^data-[\-\w.\u00B7-\uFFFF]+$/),ag=Pn(/^aria-[\-\w]+$/),bd=Pn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ug=Pn(/^(?:\w+script|data):/i),og=Pn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),_d=Pn(/^html$/i),ig=Pn(/^[a-z][.\w]*(-[.\w]+)+$/i);var Cl=Object.freeze({__proto__:null,ARIA_ATTR:ag,ATTR_WHITESPACE:og,CUSTOM_ELEMENT:ig,DATA_ATTR:sg,DOCTYPE_NAME:_d,ERB_EXPR:ng,IS_ALLOWED_URI:bd,IS_SCRIPT_OR_DATA:ug,MUSTACHE_EXPR:tg,TMPLIT_EXPR:rg});const ea={element:1,text:3,progressingInstruction:7,comment:8,document:9},lg=function(){return typeof window>"u"?null:window},cg=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const s="data-tt-policy-suffix";n&&n.hasAttribute(s)&&(r=n.getAttribute(s));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(u){return u},createScriptURL(u){return u}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},Al=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function yd(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lg();const t=Ce=>yd(Ce);if(t.version="3.2.7",t.removed=[],!e||!e.document||e.document.nodeType!==ea.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const r=n,s=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:u,Node:i,Element:l,NodeFilter:c,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:v,trustedTypes:h}=e,p=l.prototype,x=Qs(p,"cloneNode"),y=Qs(p,"remove"),_=Qs(p,"nextSibling"),E=Qs(p,"childNodes"),S=Qs(p,"parentNode");if(typeof u=="function"){const Ce=n.createElement("template");Ce.content&&Ce.content.ownerDocument&&(n=Ce.content.ownerDocument)}let b,D="";const{implementation:A,createNodeIterator:P,createDocumentFragment:Z,getElementsByTagName:Y}=n,{importNode:T}=r;let N=Al();t.isSupported=typeof vd=="function"&&typeof S=="function"&&A&&A.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:Q,ERB_EXPR:I,TMPLIT_EXPR:V,DATA_ATTR:J,ARIA_ATTR:se,IS_SCRIPT_OR_DATA:de,ATTR_WHITESPACE:ae,CUSTOM_ELEMENT:ue}=Cl;let{IS_ALLOWED_URI:L}=Cl,U=null;const G=Ye({},[...kl,...so,...ao,...uo,...wl]);let ie=null;const H=Ye({},[...El,...oo,...Sl,...ja]);let q=Object.seal(gd(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,le=null,xe=!0,De=!0,B=!1,_e=!0,Ne=!1,Be=!0,Oe=!1,ke=!1,We=!1,he=!1,ne=!1,ge=!1,be=!0,Te=!1;const qe="user-content-";let ce=!0,pe=!1,Ee={},Fe=null;const et=Ye({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let rt=null;const Le=Ye({},["audio","video","img","source","image","track"]);let ze=null;const je=Ye({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",ct="http://www.w3.org/2000/svg",He="http://www.w3.org/1999/xhtml";let ht=He,Bt=!1,bt=null;const Zt=Ye({},[Je,ct,He],no);let jt=Ye({},["mi","mo","mn","ms","mtext"]),qt=Ye({},["annotation-xml"]);const st=Ye({},["title","style","font","a","script"]);let Ve=null;const Ft=["application/xhtml+xml","text/html"],ye="text/html";let Se=null,ut=null;const Yt=n.createElement("form"),At=function(M){return M instanceof RegExp||M instanceof Function},Nt=function(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ut&&ut===M)){if((!M||typeof M!="object")&&(M={}),M=lr(M),Ve=Ft.indexOf(M.PARSER_MEDIA_TYPE)===-1?ye:M.PARSER_MEDIA_TYPE,Se=Ve==="application/xhtml+xml"?no:eu,U=On(M,"ALLOWED_TAGS")?Ye({},M.ALLOWED_TAGS,Se):G,ie=On(M,"ALLOWED_ATTR")?Ye({},M.ALLOWED_ATTR,Se):H,bt=On(M,"ALLOWED_NAMESPACES")?Ye({},M.ALLOWED_NAMESPACES,no):Zt,ze=On(M,"ADD_URI_SAFE_ATTR")?Ye(lr(je),M.ADD_URI_SAFE_ATTR,Se):je,rt=On(M,"ADD_DATA_URI_TAGS")?Ye(lr(Le),M.ADD_DATA_URI_TAGS,Se):Le,Fe=On(M,"FORBID_CONTENTS")?Ye({},M.FORBID_CONTENTS,Se):et,z=On(M,"FORBID_TAGS")?Ye({},M.FORBID_TAGS,Se):lr({}),le=On(M,"FORBID_ATTR")?Ye({},M.FORBID_ATTR,Se):lr({}),Ee=On(M,"USE_PROFILES")?M.USE_PROFILES:!1,xe=M.ALLOW_ARIA_ATTR!==!1,De=M.ALLOW_DATA_ATTR!==!1,B=M.ALLOW_UNKNOWN_PROTOCOLS||!1,_e=M.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ne=M.SAFE_FOR_TEMPLATES||!1,Be=M.SAFE_FOR_XML!==!1,Oe=M.WHOLE_DOCUMENT||!1,he=M.RETURN_DOM||!1,ne=M.RETURN_DOM_FRAGMENT||!1,ge=M.RETURN_TRUSTED_TYPE||!1,We=M.FORCE_BODY||!1,be=M.SANITIZE_DOM!==!1,Te=M.SANITIZE_NAMED_PROPS||!1,ce=M.KEEP_CONTENT!==!1,pe=M.IN_PLACE||!1,L=M.ALLOWED_URI_REGEXP||bd,ht=M.NAMESPACE||He,jt=M.MATHML_TEXT_INTEGRATION_POINTS||jt,qt=M.HTML_INTEGRATION_POINTS||qt,q=M.CUSTOM_ELEMENT_HANDLING||{},M.CUSTOM_ELEMENT_HANDLING&&At(M.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=M.CUSTOM_ELEMENT_HANDLING.tagNameCheck),M.CUSTOM_ELEMENT_HANDLING&&At(M.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=M.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),M.CUSTOM_ELEMENT_HANDLING&&typeof M.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(q.allowCustomizedBuiltInElements=M.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ne&&(De=!1),ne&&(he=!0),Ee&&(U=Ye({},wl),ie=[],Ee.html===!0&&(Ye(U,kl),Ye(ie,El)),Ee.svg===!0&&(Ye(U,so),Ye(ie,oo),Ye(ie,ja)),Ee.svgFilters===!0&&(Ye(U,ao),Ye(ie,oo),Ye(ie,ja)),Ee.mathMl===!0&&(Ye(U,uo),Ye(ie,Sl),Ye(ie,ja))),M.ADD_TAGS&&(U===G&&(U=lr(U)),Ye(U,M.ADD_TAGS,Se)),M.ADD_ATTR&&(ie===H&&(ie=lr(ie)),Ye(ie,M.ADD_ATTR,Se)),M.ADD_URI_SAFE_ATTR&&Ye(ze,M.ADD_URI_SAFE_ATTR,Se),M.FORBID_CONTENTS&&(Fe===et&&(Fe=lr(Fe)),Ye(Fe,M.FORBID_CONTENTS,Se)),ce&&(U["#text"]=!0),Oe&&Ye(U,["html","head","body"]),U.table&&(Ye(U,["tbody"]),delete z.tbody),M.TRUSTED_TYPES_POLICY){if(typeof M.TRUSTED_TYPES_POLICY.createHTML!="function")throw Xs('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof M.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Xs('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');b=M.TRUSTED_TYPES_POLICY,D=b.createHTML("")}else b===void 0&&(b=cg(h,s)),b!==null&&typeof D=="string"&&(D=b.createHTML(""));pn&&pn(M),ut=M}},bn=Ye({},[...so,...ao,...Qv]),ur=Ye({},[...uo,...eg]),In=function(M){let te=S(M);(!te||!te.tagName)&&(te={namespaceURI:ht,tagName:"template"});const ee=eu(M.tagName),Ie=eu(te.tagName);return bt[M.namespaceURI]?M.namespaceURI===ct?te.namespaceURI===He?ee==="svg":te.namespaceURI===Je?ee==="svg"&&(Ie==="annotation-xml"||jt[Ie]):!!bn[ee]:M.namespaceURI===Je?te.namespaceURI===He?ee==="math":te.namespaceURI===ct?ee==="math"&&qt[Ie]:!!ur[ee]:M.namespaceURI===He?te.namespaceURI===ct&&!qt[Ie]||te.namespaceURI===Je&&!jt[Ie]?!1:!ur[ee]&&(st[ee]||!bn[ee]):!!(Ve==="application/xhtml+xml"&&bt[M.namespaceURI]):!1},Me=function(M){Ys(t.removed,{element:M});try{S(M).removeChild(M)}catch{y(M)}},Re=function(M,te){try{Ys(t.removed,{attribute:te.getAttributeNode(M),from:te})}catch{Ys(t.removed,{attribute:null,from:te})}if(te.removeAttribute(M),M==="is")if(he||ne)try{Me(te)}catch{}else try{te.setAttribute(M,"")}catch{}},Mt=function(M){let te=null,ee=null;if(We)M=""+M;else{const re=ro(M,/^[\r\n\t ]+/);ee=re&&re[0]}Ve==="application/xhtml+xml"&&ht===He&&(M=''+M+"");const Ie=b?b.createHTML(M):M;if(ht===He)try{te=new v().parseFromString(Ie,Ve)}catch{}if(!te||!te.documentElement){te=A.createDocument(ht,"template",null);try{te.documentElement.innerHTML=Bt?D:Ie}catch{}}const j=te.body||te.documentElement;return M&&ee&&j.insertBefore(n.createTextNode(ee),j.childNodes[0]||null),ht===He?Y.call(te,Oe?"html":"body")[0]:Oe?te.documentElement:j},zt=function(M){return P.call(M.ownerDocument||M,M,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},rn=function(M){return M instanceof d&&(typeof M.nodeName!="string"||typeof M.textContent!="string"||typeof M.removeChild!="function"||!(M.attributes instanceof f)||typeof M.removeAttribute!="function"||typeof M.setAttribute!="function"||typeof M.namespaceURI!="string"||typeof M.insertBefore!="function"||typeof M.hasChildNodes!="function")},tt=function(M){return typeof i=="function"&&M instanceof i};function Ge(Ce,M,te){Ba(Ce,ee=>{ee.call(t,M,te,ut)})}const mt=function(M){let te=null;if(Ge(N.beforeSanitizeElements,M,null),rn(M))return Me(M),!0;const ee=Se(M.nodeName);if(Ge(N.uponSanitizeElement,M,{tagName:ee,allowedTags:U}),Be&&M.hasChildNodes()&&!tt(M.firstElementChild)&&on(/<[/\w!]/g,M.innerHTML)&&on(/<[/\w!]/g,M.textContent)||M.nodeType===ea.progressingInstruction||Be&&M.nodeType===ea.comment&&on(/<[/\w]/g,M.data))return Me(M),!0;if(!U[ee]||z[ee]){if(!z[ee]&&Ot(ee)&&(q.tagNameCheck instanceof RegExp&&on(q.tagNameCheck,ee)||q.tagNameCheck instanceof Function&&q.tagNameCheck(ee)))return!1;if(ce&&!Fe[ee]){const Ie=S(M)||M.parentNode,j=E(M)||M.childNodes;if(j&&Ie){const re=j.length;for(let we=re-1;we>=0;--we){const Pe=x(j[we],!0);Pe.__removalCount=(M.__removalCount||0)+1,Ie.insertBefore(Pe,_(M))}}}return Me(M),!0}return M instanceof l&&!In(M)||(ee==="noscript"||ee==="noembed"||ee==="noframes")&&on(/<\/no(script|embed|frames)/i,M.innerHTML)?(Me(M),!0):(Ne&&M.nodeType===ea.text&&(te=M.textContent,Ba([Q,I,V],Ie=>{te=Js(te,Ie," ")}),M.textContent!==te&&(Ys(t.removed,{element:M.cloneNode()}),M.textContent=te)),Ge(N.afterSanitizeElements,M,null),!1)},Lt=function(M,te,ee){if(be&&(te==="id"||te==="name")&&(ee in n||ee in Yt))return!1;if(!(De&&!le[te]&&on(J,te))){if(!(xe&&on(se,te))){if(!ie[te]||le[te]){if(!(Ot(M)&&(q.tagNameCheck instanceof RegExp&&on(q.tagNameCheck,M)||q.tagNameCheck instanceof Function&&q.tagNameCheck(M))&&(q.attributeNameCheck instanceof RegExp&&on(q.attributeNameCheck,te)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(te,M))||te==="is"&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&on(q.tagNameCheck,ee)||q.tagNameCheck instanceof Function&&q.tagNameCheck(ee))))return!1}else if(!ze[te]){if(!on(L,Js(ee,ae,""))){if(!((te==="src"||te==="xlink:href"||te==="href")&&M!=="script"&&Zv(ee,"data:")===0&&rt[M])){if(!(B&&!on(de,Js(ee,ae,"")))){if(ee)return!1}}}}}}return!0},Ot=function(M){return M!=="annotation-xml"&&ro(M,ue)},ot=function(M){Ge(N.beforeSanitizeAttributes,M,null);const{attributes:te}=M;if(!te||rn(M))return;const ee={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ie,forceKeepAttr:void 0};let Ie=te.length;for(;Ie--;){const j=te[Ie],{name:re,namespaceURI:we,value:Pe}=j,Ze=Se(re),Et=Pe;let Ue=re==="value"?Et:Yv(Et);if(ee.attrName=Ze,ee.attrValue=Ue,ee.keepAttr=!0,ee.forceKeepAttr=void 0,Ge(N.uponSanitizeAttribute,M,ee),Ue=ee.attrValue,Te&&(Ze==="id"||Ze==="name")&&(Re(re,M),Ue=qe+Ue),Be&&on(/((--!?|])>)|<\/(style|title|textarea)/i,Ue)){Re(re,M);continue}if(Ze==="attributename"&&ro(Ue,"href")){Re(re,M);continue}if(ee.forceKeepAttr)continue;if(!ee.keepAttr){Re(re,M);continue}if(!_e&&on(/\/>/i,Ue)){Re(re,M);continue}Ne&&Ba([Q,I,V],St=>{Ue=Js(Ue,St," ")});const ft=Se(M.nodeName);if(!Lt(ft,Ze,Ue)){Re(re,M);continue}if(b&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!we)switch(h.getAttributeType(ft,Ze)){case"TrustedHTML":{Ue=b.createHTML(Ue);break}case"TrustedScriptURL":{Ue=b.createScriptURL(Ue);break}}if(Ue!==Et)try{we?M.setAttributeNS(we,re,Ue):M.setAttribute(re,Ue),rn(M)?Me(M):xl(t.removed)}catch{Re(re,M)}}Ge(N.afterSanitizeAttributes,M,null)},Pt=function Ce(M){let te=null;const ee=zt(M);for(Ge(N.beforeSanitizeShadowDOM,M,null);te=ee.nextNode();)Ge(N.uponSanitizeShadowNode,te,null),mt(te),ot(te),te.content instanceof a&&Ce(te.content);Ge(N.afterSanitizeShadowDOM,M,null)};return t.sanitize=function(Ce){let M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},te=null,ee=null,Ie=null,j=null;if(Bt=!Ce,Bt&&(Ce=""),typeof Ce!="string"&&!tt(Ce))if(typeof Ce.toString=="function"){if(Ce=Ce.toString(),typeof Ce!="string")throw Xs("dirty is not a string, aborting")}else throw Xs("toString is not a function");if(!t.isSupported)return Ce;if(ke||Nt(M),t.removed=[],typeof Ce=="string"&&(pe=!1),pe){if(Ce.nodeName){const Pe=Se(Ce.nodeName);if(!U[Pe]||z[Pe])throw Xs("root node is forbidden and cannot be sanitized in-place")}}else if(Ce instanceof i)te=Mt(""),ee=te.ownerDocument.importNode(Ce,!0),ee.nodeType===ea.element&&ee.nodeName==="BODY"||ee.nodeName==="HTML"?te=ee:te.appendChild(ee);else{if(!he&&!Ne&&!Oe&&Ce.indexOf("<")===-1)return b&&ge?b.createHTML(Ce):Ce;if(te=Mt(Ce),!te)return he?null:ge?D:""}te&&We&&Me(te.firstChild);const re=zt(pe?Ce:te);for(;Ie=re.nextNode();)mt(Ie),ot(Ie),Ie.content instanceof a&&Pt(Ie.content);if(pe)return Ce;if(he){if(ne)for(j=Z.call(te.ownerDocument);te.firstChild;)j.appendChild(te.firstChild);else j=te;return(ie.shadowroot||ie.shadowrootmode)&&(j=T.call(r,j,!0)),j}let we=Oe?te.outerHTML:te.innerHTML;return Oe&&U["!doctype"]&&te.ownerDocument&&te.ownerDocument.doctype&&te.ownerDocument.doctype.name&&on(_d,te.ownerDocument.doctype.name)&&(we=" +`+we),Ne&&Ba([Q,I,V],Pe=>{we=Js(we,Pe," ")}),b&&ge?b.createHTML(we):we},t.setConfig=function(){let Ce=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Nt(Ce),ke=!0},t.clearConfig=function(){ut=null,ke=!1},t.isValidAttribute=function(Ce,M,te){ut||Nt({});const ee=Se(Ce),Ie=Se(M);return Lt(ee,Ie,te)},t.addHook=function(Ce,M){typeof M=="function"&&Ys(N[Ce],M)},t.removeHook=function(Ce,M){if(M!==void 0){const te=Gv(N[Ce],M);return te===-1?void 0:Kv(N[Ce],te,1)[0]}return xl(N[Ce])},t.removeHooks=function(Ce){N[Ce]=[]},t.removeAllHooks=function(){N=Al()},t}var xd=yd();const dg=new Mn({html:!1,linkify:!0,typographer:!0,breaks:!0}),fg={USE_PROFILES:{html:!0},ADD_ATTR:["target","rel","class","colspan","rowspan","scope"],ADD_TAGS:["table","thead","tbody","tfoot","tr","th","td"]};xd.addHook("afterSanitizeAttributes",e=>{const t=e;if(!t||typeof t.tagName!="string"||t.tagName.toUpperCase()!=="A")return;t.setAttribute("target","_blank");const n=(t.getAttribute("rel")||"").split(/\s+/).filter(Boolean),r=["noopener","noreferrer","nofollow","ugc"],s=Array.from(new Set([...n,...r]));t.setAttribute("rel",s.join(" "))});function ks(e){if(!e)return"";const t=dg.render(e);return xd.sanitize(t,fg)}var pg=F(' '),hg=F(' '),mg=F(''),vg=F(''),gg=F(' '),bg=F(' '),_g=F(''),yg=F(' '),xg=F(' '),kg=F(''),wg=F('
                                  '),Eg=F('
                                  '),Sg=F('
                                  '),Cg=F(' ',1),Ag=F(''),Dg=F('
                                  ');function Tg(e,t){it(t,!1);const n=R(),r=R(),s=R(),a=R();let u=oe(t,"message",8),i=oe(t,"toolSummary",8),l=oe(t,"copied",8,!1),c=oe(t,"disableDelete",8,!1);const f=It();let d=R(!1),v=R([]),h=R(!1),p=R(!1),x=R("View tool usage"),y=R(null),_=R(null),E=R(null);const S=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function b(){f("copy",{message:u()})}function D(){f("openReasoning",{message:u()})}function A(){f("openTool",{message:u()})}function P(){f("openWebSearchDetails",{message:u()})}function Z(){const ce=u().details?.generationId;ce&&f("openUsage",{id:ce})}function Y(){f("edit",{message:u()})}function T(){f("retry",{message:u()})}function N(){c()||f("delete",{message:u()})}function Q(ce){f("editAttachment",{message:u(),attachment:ce})}function I(ce){const pe=ce.metadata?.filename;return typeof pe=="string"&&pe.trim()?pe:null}function V(ce){const pe=I(ce);return pe?`Open attachment ${pe}`:"Open attachment"}function J(ce){return I(ce)??"Attachment preview"}const se="America/New_York";function de(ce){if(!ce)return null;const pe=new Date(ce);if(Number.isNaN(pe.getTime()))return null;const Ee=new Intl.DateTimeFormat("en-US",{timeZone:"UTC",weekday:"short",month:"short",day:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(pe),Fe=He=>Ee.find(ht=>ht.type===He)?.value??"",et=Fe("weekday"),rt=Fe("month"),Le=Fe("day"),ze=Fe("year"),je=Fe("hour"),Je=Fe("minute"),ct=Fe("second");return`${et} ${rt} ${Le} ${ze} ${je}:${Je}:${ct} UTC`.replace(/\s+/g," ")}function ae(ce,pe){if(!ce)return null;const Ee=typeof ce=="string"&&ce?ce:String(ce),Fe=new Date(Ee);if(Number.isNaN(Fe.getTime()))return{iso:Ee,display:Ee,tooltip:Ee};try{const rt=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:se,timeZoneName:"short"}).formatToParts(Fe),Le=st=>rt.find(Ve=>Ve.type===st)?.value??"",ze=Le("hour"),je=Le("minute"),Je=Le("second"),ct=Le("dayPeriod"),He=Le("timeZoneName"),ht=`${ze}:${je} ${ct}${He?` ${He}`:""}`.trim(),Bt=`${ze}:${je}:${Je} ${ct}${He?` ${He}`:""}`.trim(),bt=new Intl.DateTimeFormat(void 0,{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:se,timeZoneName:"short"}),Zt=de(pe??ce),jt=`${bt.format(Fe)} (${Bt})`,qt=Zt?`${jt} +${Zt}`:jt;return{iso:Ee,display:ht,tooltip:qt}}catch(et){console.warn("Failed to format timestamp",et);const rt=de(pe??ce);return{iso:Ee,display:Fe.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),tooltip:rt??Ee}}}ve(()=>O(i()),()=>{w(n,i()?.tokens?.totalTokens??null)}),ve(()=>o(n),()=>{w(E,o(n)!=null?`${S.format(o(n))} tokens`:null)}),ve(()=>O(i()),()=>{w(y,i()?.count&&i().count>0?`×${i().count}`:null)}),ve(()=>O(i()),()=>{w(p,!!i()?.used)}),ve(()=>{},()=>{w(_,null)}),ve(()=>(O(i()),o(E)),()=>{w(x,(()=>{const ce=[];return i()?.count&&i().count>0&&ce.push(`${i().count} ${i().count===1?"hop":"hops"}`),o(E)&&ce.push(`${o(E)}`),ce.length===0?"View tool usage":`View tool usage — ${ce.join(", ")}`})())}),ve(()=>O(u()),()=>{w(d,(u().details?.reasoning?.length??0)>0||!!u().details?.reasoningStatus)}),ve(()=>(O(u()),o(v),jr),()=>{const ce=u().details?.meta?.web_search_results;u().role==="assistant"&&(console.log("=== FULL MESSAGE DEBUG ==="),console.log("Message ID:",u().id),console.log("Message role:",u().role),console.log("Message.details:",JSON.stringify(u().details,null,2)),console.log("webSearchResults:",ce),console.log("Is Array?",Array.isArray(ce)),console.log("Length:",Array.isArray(ce)?ce.length:0),console.log("========================")),Array.isArray(ce)&&ce.length>0?(w(v,ce.map(pe=>({url:pe.url||"",title:pe.title||pe.name||"",content:pe.snippet||pe.content||pe.description||""})).filter(pe=>pe.url)),console.log("Citations extracted:",o(v))):(w(v,jr(u().details?.citations??null,u().details?.meta??null,u().details??null,u().content??null,{content:typeof u().content=="string"?u().content:null})),console.log("Citations from collectCitations:",o(v)))}),ve(()=>o(v),()=>{w(r,o(v).length>0)}),ve(()=>O(u()),()=>{w(h,!!u().details?.webSearchConfig)}),ve(()=>O(u()),()=>{w(s,(u().attachments?.length??0)>0)}),ve(()=>O(u()),()=>{w(a,ae(u().createdAt,u().createdAtUtc))}),Rt(),dt();var ue=Dg(),L=g(ue);let U;var G=g(L);{var ie=ce=>{var pe=xg(),Ee=g(pe),Fe=g(Ee),et=C(Fe);{var rt=Le=>{var ze=yg(),je=g(ze);{var Je=st=>{var Ve=pg(),Ft=g(Ve);K(()=>X(Ft,`— ${O(u()),m(()=>u().details.model)??""}`)),k(st,Ve)};$(je,st=>{O(u()),m(()=>u().details?.model)&&st(Je)})}var ct=C(je,2);{var He=st=>{var Ve=hg(),Ft=g(Ve);K(()=>X(Ft,o(E))),k(st,Ve)};$(ct,st=>{o(E)&&st(He)})}var ht=C(ct,2);{var Bt=st=>{var Ve=mg();let Ft;var ye=g(Ve);Mp(ye,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),K(Se=>{Ft=Ct(Ve,1,"sender-reasoning-indicator svelte-1cnmaqf",null,Ft,Se),fe(Ve,"title",(O(u()),m(()=>u().details?.reasoningStatus==="streaming"?"Reasoning stream in progress":"View reasoning trace")))},[()=>({streaming:u().details?.reasoningStatus==="streaming"})]),W("click",Ve,D),k(st,Ve)};$(ht,st=>{o(d)&&st(Bt)})}var bt=C(ht,2);{var Zt=st=>{var Ve=vg(),Ft=g(Ve);Lp(Ft,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),W("click",Ve,P),k(st,Ve)};$(bt,st=>{o(h)&&st(Zt)})}var jt=C(bt,2);{var qt=st=>{var Ve=_g(),Ft=g(Ve);zp(Ft,{size:14,strokeWidth:1.8,"aria-hidden":"true"});var ye=C(Ft,2);{var Se=At=>{var Nt=gg(),bn=g(Nt);K(()=>X(bn,o(y))),k(At,Nt)};$(ye,At=>{o(y)&&At(Se)})}var ut=C(ye,2);{var Yt=At=>{var Nt=bg(),bn=g(Nt);K(()=>X(bn,o(_))),k(At,Nt)};$(ut,At=>{o(_)&&At(Yt)})}K(()=>{fe(Ve,"aria-label",o(x)),fe(Ve,"title",o(x))}),W("click",Ve,A),k(st,Ve)};$(jt,st=>{o(p)&&st(qt)})}k(Le,ze)};$(et,Le=>{O(u()),m(()=>u().role==="assistant")&&Le(rt)})}K(()=>X(Fe,`${O(u()),m(()=>u().role)??""} `)),k(ce,pe)};$(G,ce=>{O(u()),m(()=>u().role!=="user")&&ce(ie)})}var H=C(G,2),q=g(H);{var z=ce=>{var pe=Ae(),Ee=me(pe);yo(Ee,()=>(O(ks),O(u()),m(()=>ks(u().text)))),k(ce,pe)};$(q,ce=>{O(u()),m(()=>u().text)&&ce(z)})}var le=C(q,2);{var xe=ce=>{var pe=Eg();_t(pe,5,()=>(O(u()),m(()=>u().attachments)),Ee=>Ee.id??Ee.displayUrl??Ee.deliveryUrl,(Ee,Fe)=>{var et=wg(),rt=g(et),Le=g(rt),ze=g(Le),je=C(Le,2);{var Je=ct=>{var He=kg(),ht=g(He);zi(ht,{size:14,strokeWidth:1.8,"aria-hidden":"true"}),W("click",He,()=>Q(o(Fe))),k(ct,He)};$(je,ct=>{O(u()),m(()=>u().role==="assistant")&&ct(Je)})}K((ct,He)=>{fe(Le,"href",(o(Fe),m(()=>o(Fe).displayUrl||o(Fe).deliveryUrl))),fe(Le,"aria-label",ct),fe(ze,"src",(o(Fe),m(()=>o(Fe).displayUrl||o(Fe).deliveryUrl))),fe(ze,"alt",He)},[()=>(o(Fe),m(()=>V(o(Fe)))),()=>(o(Fe),m(()=>J(o(Fe))))]),k(Ee,et)}),k(ce,pe)};$(le,ce=>{O(u()),m(()=>u().attachments?.length)&&ce(xe)})}Jr(H,ce=>Ao?.(ce));var De=C(H,2);{var B=ce=>{var pe=Sg(),Ee=g(pe),Fe=g(Ee);K(()=>{fe(Ee,"datetime",(o(a),m(()=>o(a).iso))),fe(Ee,"title",(o(a),m(()=>o(a).tooltip))),X(Fe,(o(a),m(()=>o(a).display)))}),k(ce,pe)};$(De,ce=>{o(a)&&ce(B)})}var _e=C(De,2),Ne=g(_e);let Be;var Oe=g(Ne);{var ke=ce=>{Ip(ce,{size:16,strokeWidth:1.6,"aria-hidden":"true"})},We=ce=>{Np(ce,{size:16,strokeWidth:1.6,"aria-hidden":"true"})};$(Oe,ce=>{l()?ce(ke):ce(We,!1)})}var he=C(Ne,2);{var ne=ce=>{var pe=Cg(),Ee=me(pe),Fe=g(Ee);zi(Fe,{size:16,strokeWidth:1.6,"aria-hidden":"true"});var et=C(Ee,2),rt=g(et);Op(rt,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),W("click",Ee,Y),W("click",et,T),k(ce,pe)};$(he,ce=>{O(u()),m(()=>u().role==="user")&&ce(ne)})}var ge=C(he,2);{var be=ce=>{var pe=Ag(),Ee=g(pe);Pp(Ee,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),W("click",pe,Z),k(ce,pe)};$(ge,ce=>{O(u()),m(()=>u().role==="assistant"&&u().details?.generationId)&&ce(be)})}var Te=C(ge,2),qe=g(Te);Rp(qe,{size:16,strokeWidth:1.6,"aria-hidden":"true"}),K((ce,pe)=>{Ct(ue,1,(O(u()),m(()=>`message ${u().role}`)),"svelte-1cnmaqf"),U=Ct(L,1,"bubble svelte-1cnmaqf",null,U,ce),Be=Ct(Ne,1,"message-action svelte-1cnmaqf",null,Be,pe),fe(Ne,"aria-label",l()?"Message copied":"Copy message"),Te.disabled=c()},[()=>({"has-attachments":o(s)}),()=>({copied:l()})]),W("click",Ne,b),W("click",Te,N),k(e,ue),lt()}var Fg=F('

                                  '),Mg=F(' '),Pg=F('

                                  No reasoning data received yet.

                                  '),Ig=F('
                                   
                                  '),Ng=F('
                                  ');function Lg(e,t){it(t,!1);const n=It();let r=oe(t,"open",8,!1),s=oe(t,"messageId",8,null),a=oe(t,"segments",24,()=>[]),u=oe(t,"status",8,null),i=R(null),l=R(null),c=R("");const f=12;let d=!0,v=!1;function h(b){if(!b||b.length===0)return"";let D="",A;for(const P of b){if(!P||typeof P.text!="string"||P.text.length===0)continue;const Z=P.text;A&&P.type&&A!==P.type&&(D.endsWith(` +`)||(D+=` +`),D+=` +`),D.length>0&&!D.endsWith(" ")&&!D.endsWith(` +`)&&!D.endsWith(" ")&&!D.endsWith("(")&&!D.endsWith("[")&&!D.endsWith("{")&&!D.endsWith("/")&&!D.endsWith("'")&&!D.endsWith("’")&&!/^[\s,.!?;:)/\]\}'"›»]/u.test(Z)&&Z[0]!=="'"&&Z[0]!=="’"&&(D+=" "),D+=Z,A=P.type??A}return D}wc(()=>{r()&&!v&&(d=!0),v=r(),r()&&o(i)&&o(i).focus(),r()&&o(l)&&u()==="streaming"&&d&&Zl(l,o(l).scrollTop=o(l).scrollHeight)});function p(){if(!o(l))return;const{scrollTop:b,scrollHeight:D,clientHeight:A}=o(l);d=D-(b+A)<=f}function x(){n("close")}function y(b){r()&&b.key==="Escape"&&(b.preventDefault(),x())}ve(()=>O(a()),()=>{w(c,h(a()))}),Rt(),dt();var _=Ae();W("keydown",au,y);var E=me(_);{var S=b=>{var D=Ng(),A=g(D),P=C(A,2),Z=g(P),Y=g(Z),T=C(g(Y),2);{var N=L=>{var U=Fg(),G=g(U);K(()=>X(G,`Message ID: ${s()??""}`)),k(L,U)};$(T,L=>{s()&&L(N)})}var Q=C(Y,2),I=g(Q);{var V=L=>{var U=Mg(),G=C(g(U));K(()=>{Ct(U,1,`reasoning-status ${u()}`,"svelte-2cxve6"),X(G,` ${u()==="streaming"?"Streaming":"Complete"}`)}),k(L,U)};$(I,L=>{u()&&L(V)})}var J=C(I,2),se=C(Z,2),de=g(se);{var ae=L=>{var U=Pg();k(L,U)},ue=L=>{var U=Ig(),G=g(U);K(()=>X(G,o(c))),k(L,U)};$(de,L=>{o(c),m(()=>o(c).length===0)?L(ae):L(ue,!1)})}Xr(se,L=>w(l,L),()=>o(l)),Xr(P,L=>w(i,L),()=>o(i)),W("click",A,x),W("click",J,x),W("scroll",se,p),k(b,D)};$(E,b=>{r()&&b(S)})}k(e,_),lt()}var Og=F('

                                  No tool activity recorded.

                                  '),$g=F(' '),Rg=F('
                                  '),zg=F('
                                  '),Ug=F('

                                  No details provided.

                                  '),Bg=F('
                                • Show input & output
                                • '),jg=F('
                                    '),qg=F('

                                    '),Hg=F('

                                    Tools used

                                    ',1);function Wg(e,t){it(t,!1);const n=It();let r=oe(t,"open",8,!1),s=oe(t,"messageId",8,null),a=oe(t,"tools",24,()=>[]);function u(){n("close")}dt();var i=Ae(),l=me(i);{var c=f=>{vr(f,{get open(){return r()},labelledBy:"tool-usage-modal-title",modalClass:"tool-usage-modal",bodyClass:"tool-usage-body",closeLabel:"Close tool usage details",$$events:{close:u},children:(d,v)=>{var h=Ae(),p=me(h);{var x=_=>{var E=Og();k(_,E)},y=_=>{var E=jg();_t(E,5,a,S=>S.id,(S,b)=>{var D=Bg(),A=g(D),P=g(A),Z=g(P),Y=C(P,2);{var T=ae=>{var ue=$g(),L=g(ue);K(()=>X(L,(o(b),m(()=>o(b).status)))),k(ae,ue)};$(Y,ae=>{o(b),m(()=>o(b).status)&&ae(T)})}var N=C(A,2),Q=C(g(N),2);{var I=ae=>{var ue=Rg(),L=C(g(ue),2),U=g(L);yo(U,()=>(O(ks),o(b),m(()=>ks(o(b).input)))),Jr(L,G=>Ao?.(G)),k(ae,ue)};$(Q,ae=>{o(b),m(()=>o(b).input)&&ae(I)})}var V=C(Q,2);{var J=ae=>{var ue=zg(),L=C(g(ue),2),U=g(L);yo(U,()=>(O(ks),o(b),m(()=>ks(o(b).result)))),Jr(L,G=>Ao?.(G)),k(ae,ue)};$(V,ae=>{o(b),m(()=>o(b).result)&&ae(J)})}var se=C(V,2);{var de=ae=>{var ue=Ug();k(ae,ue)};$(se,ae=>{o(b),m(()=>!o(b).input&&!o(b).result)&&ae(de)})}K(()=>X(Z,(o(b),m(()=>o(b).name)))),k(S,D)}),k(_,E)};$(p,_=>{O(a()),m(()=>a().length===0)?_(x):_(y,!1)})}k(d,h)},$$slots:{default:!0,heading:(d,v)=>{var h=Hg(),p=C(me(h),2);{var x=y=>{var _=qg(),E=g(_);K(()=>X(E,`Message ID: ${s()??""}`)),k(y,_)};$(p,y=>{s()&&y(x)})}k(d,h)}}})};$(l,f=>{r()&&f(c)})}k(e,i),lt()}var Vg=F('

                                    No web search details available.

                                    '),Gg=F('
                                    Context Size
                                    Amount of search context provided to the model
                                    '),Kg=F('
                                    Custom Search Prompt
                                    Instructions for how to incorporate search results
                                    '),Zg=F('
                                    Search Engine
                                    Max Results
                                    Number of search results retrieved
                                    '),Yg=F('

                                    '),Jg=F('

                                    Web Search Details

                                    ',1);function Xg(e,t){it(t,!1);const n=It();let r=oe(t,"open",8,!1),s=oe(t,"messageId",8,null),a=oe(t,"details",8,null);function u(){n("close")}function i(v){return v?v==="native"?"Native (OpenAI/Anthropic)":v==="exa"?"Exa":v:"Auto"}function l(v){return v?v.charAt(0).toUpperCase()+v.slice(1):"Default"}dt();var c=Ae(),f=me(c);{var d=v=>{vr(v,{get open(){return r()},labelledBy:"web-search-details-modal-title",modalClass:"web-search-details-modal",bodyClass:"web-search-details-modal-body",closeLabel:"Close web search details",$$events:{close:u},children:(h,p)=>{var x=Ae(),y=me(x);{var _=S=>{var b=Vg();k(S,b)},E=S=>{var b=Zg(),D=g(b),A=C(g(D),2),P=g(A),Z=C(A,2),Y=g(Z);{var T=ue=>{var L=Bn("Automatic selection based on model provider");k(ue,L)},N=ue=>{var L=Ae(),U=me(L);{var G=H=>{var q=Bn("Using provider's built-in web search");k(H,q)},ie=H=>{var q=Ae(),z=me(q);{var le=xe=>{var De=Bn("Using Exa's AI-powered search API");k(xe,De)};$(z,xe=>{O(a()),m(()=>a().engine==="exa")&&xe(le)},!0)}k(H,q)};$(U,H=>{O(a()),m(()=>a().engine==="native")?H(G):H(ie,!1)},!0)}k(ue,L)};$(Y,ue=>{O(a()),m(()=>!a().engine||a().engine===null)?ue(T):ue(N,!1)})}var Q=C(D,2),I=C(g(Q),2),V=g(I),J=C(Q,2);{var se=ue=>{var L=Gg(),U=C(g(L),2),G=g(U);K(ie=>X(G,ie),[()=>(O(a()),m(()=>l(a().contextSize)))]),k(ue,L)};$(J,ue=>{O(a()),m(()=>a().contextSize)&&ue(se)})}var de=C(J,2);{var ae=ue=>{var L=Kg(),U=C(g(L),2),G=g(U);K(()=>X(G,(O(a()),m(()=>a().searchPrompt)))),k(ue,L)};$(de,ue=>{O(a()),m(()=>a().searchPrompt&&a().searchPrompt.trim())&&ue(ae)})}K(ue=>{X(P,ue),X(V,(O(a()),m(()=>a().maxResults??5)))},[()=>(O(a()),m(()=>i(a().engine)))]),k(S,b)};$(y,S=>{a()?S(E,!1):S(_)})}k(h,x)},$$slots:{default:!0,heading:(h,p)=>{var x=Jg(),y=C(me(x),2);{var _=E=>{var S=Yg(),b=g(S);K(()=>X(b,`Message ID: ${s()??""}`)),k(E,S)};$(y,E=>{s()&&E(_)})}k(h,x)}}})};$(f,v=>{r()&&v(d)})}k(e,c),lt()}var Qg=F('
                                    '),e2=F('
                                    ',1);function t2(e,t){it(t,!1);const n=()=>at(b,"$toolUsageModal",u),r=()=>at(D,"$reasoningModal",u),s=()=>at(A,"$citationsModal",u),a=()=>at(P,"$webSearchDetailsModal",u),[u,i]=Hn();let l=oe(t,"messages",24,()=>[]),c=oe(t,"disableDelete",8,!1),f=R(null),d=R(null),v=null,h=R([]),p=R({}),x=R({});const y="tool";let _=!1;const E=12;let S=!0;const b=j1(),D=L1(),A=jc(),P=q1(),Z=It();wc(()=>{if(o(f)){if(_){_=!1;return}S&&Zl(f,o(f).scrollTop=o(f).scrollHeight)}});function Y(){if(!o(f))return;const{scrollTop:B,scrollHeight:_e,clientHeight:Ne}=o(f);S=_e-(B+Ne)<=E}function T(B){B&&Z("openGenerationDetails",{id:B})}async function N(B){try{await navigator.clipboard.writeText(B.text??"")}catch(_e){console.error("Failed to copy message",_e);return}w(d,B.id),_=!0,v&&clearTimeout(v),v=setTimeout(()=>{_=!0,w(d,null),v=null},2e3)}Da(()=>{v&&clearTimeout(v)});function Q(B){b.openForMessage(l(),o(x),B.id,y)}function I(){b.close()}function V(B){D.openForMessage(B)}function J(){D.close()}function se(B){const _e=jr(B.details?.citations??null,B.details?.meta??null,B.details??null);A.openWithCitations(B.id,_e)}function de(){A.close()}function ae(B){P.openForMessage(B)}function ue(){P.close()}function L(B){B&&Z("deleteMessage",{id:B.id})}function U(B){B&&Z("retryMessage",{id:B.id})}function G(B){B&&Z("editMessage",{id:B.id})}function ie(B){!B?.message||!B?.attachment||Z("editAssistantAttachment",B)}ve(()=>O(l()),()=>{const B=z1(l(),y);w(h,B.visibleMessages),w(p,B.assistantToolUsage),w(x,B.messageIndexMap)}),ve(()=>(O(l()),o(x)),()=>{b.syncEntries(l(),o(x),y)}),ve(()=>O(l()),()=>{D.syncFromMessages(l())}),Rt(),dt();var H=e2(),q=me(H);_t(q,5,()=>o(h),B=>B.id,(B,_e)=>{var Ne=Qg(),Be=g(Ne);{let Oe=vt(()=>(o(d),o(_e),m(()=>o(d)===o(_e).id)));Tg(Be,{get message(){return o(_e)},get toolSummary(){return o(p),o(_e),m(()=>o(p)[o(_e).id])},get copied(){return o(Oe)},get disableDelete(){return c()},$$events:{copy:ke=>N(ke.detail.message),openTool:ke=>Q(ke.detail.message),openReasoning:ke=>V(ke.detail.message),openCitations:ke=>se(ke.detail.message),openWebSearchDetails:ke=>ae(ke.detail.message),openUsage:ke=>T(ke.detail.id),delete:ke=>L(ke.detail.message),retry:ke=>U(ke.detail.message),edit:ke=>G(ke.detail.message),editAttachment:ke=>ie(ke.detail)}})}k(B,Ne)}),Xr(q,B=>w(f,B),()=>o(f));var z=C(q,2);Wg(z,{get open(){return n(),m(()=>n().open)},get messageId(){return n(),m(()=>n().messageId)},get tools(){return n(),m(()=>n().tools)},$$events:{close:I}});var le=C(z,2);Lg(le,{get open(){return r(),m(()=>r().open)},get messageId(){return r(),m(()=>r().messageId)},get segments(){return r(),m(()=>r().segments)},get status(){return r(),m(()=>r().status)},$$events:{close:J}});var xe=C(le,2);eh(xe,{get open(){return s(),m(()=>s().open)},get messageId(){return s(),m(()=>s().messageId)},get citations(){return s(),m(()=>s().citations)},$$events:{close:de}});var De=C(xe,2);Xg(De,{get open(){return a(),m(()=>a().open)},get messageId(){return a(),m(()=>a().messageId)},get details(){return a(),m(()=>a().details)},$$events:{close:ue}}),W("scroll",q,Y),k(e,H),lt(),i()}const n2=[{key:"temperature",aliases:["temperature"],label:"Temperature",description:"Higher values increase randomness.",fallback:{type:"number",min:0,max:2,step:.1}},{key:"top_p",aliases:["top_p"],label:"Top P",description:"Limits sampling to a cumulative probability mass.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_k",aliases:["top_k"],label:"Top K",description:"Restrict sampling to the top K tokens.",fallback:{type:"integer",min:1,max:400,step:1}},{key:"min_p",aliases:["min_p"],label:"Min P",description:"Nucleus sampling floor; smaller values widen sampling.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"top_a",aliases:["top_a"],label:"Top A",description:"Alternative nucleus control for certain models.",fallback:{type:"number",min:0,max:1,step:.01}},{key:"max_tokens",aliases:["max_tokens","max_output_tokens"],label:"Max completion tokens",description:"Upper bound on tokens generated in the response.",fallback:{type:"integer",min:1,max:32768,step:1}},{key:"frequency_penalty",aliases:["frequency_penalty"],label:"Frequency penalty",description:"Penalize frequent tokens; useful to reduce repetition.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"presence_penalty",aliases:["presence_penalty"],label:"Presence penalty",description:"Encourage introducing new topics by penalizing seen tokens.",fallback:{type:"number",min:-2,max:2,step:.05}},{key:"repetition_penalty",aliases:["repetition_penalty"],label:"Repetition penalty",description:"Higher values push the model away from repeating itself.",fallback:{type:"number",min:0,max:2,step:.05}},{key:"top_logprobs",aliases:["top_logprobs"],label:"Top logprobs",description:"Return log probabilities for the top N tokens per step.",fallback:{type:"integer",min:0,max:20,step:1}},{key:"seed",aliases:["seed"],label:"Seed",description:"Deterministic seed (when supported).",fallback:{type:"integer",min:0,step:1}},{key:"parallel_tool_calls",aliases:["parallel_tool_calls"],label:"Parallel tool calls",description:"Allow the model to invoke multiple tools simultaneously.",fallback:{type:"boolean"}},{key:"structured_outputs",aliases:["structured_outputs","json_schema","response_format"],label:"Structured outputs",description:"Favor structured responses when supported by the provider.",fallback:{type:"boolean"}},{key:"safe_prompt",aliases:["safe_prompt"],label:"Safe prompt",description:"Ask the provider to apply additional safety prompting.",fallback:{type:"boolean"}},{key:"raw_mode",aliases:["raw_mode"],label:"Raw mode",description:"Bypass guardrails when the provider allows it.",fallback:{type:"boolean"}}];function fa(e){if(typeof e!="string")return null;const t=e.trim().toLowerCase();return t?t.replace(/[^a-z0-9_\-]/g,"_"):null}function io(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()){const t=Number(e);if(Number.isFinite(t))return t}}function kd(e){const t={};if(!e||!e.capabilities)return t;const r=e.capabilities.parameters;if(!r||typeof r!="object")return t;function s(a,u){const i=fa(a);if(!i||!u||typeof u!="object")return;const l=u,c={},f=l.type??l.datatype??l.kind;typeof f=="string"&&(c.type=f.toLowerCase());const d=l.min??l.minimum??l.lower_bound??l.minimum_value,v=l.max??l.maximum??l.upper_bound??l.maximum_value,h=l.step??l.increment??l.resolution,p=io(d),x=io(v),y=io(h);p!==void 0&&(c.min=p),x!==void 0&&(c.max=x),y!==void 0&&(c.step=y),t[i]=c;const _=l.properties;if(_&&typeof _=="object")for(const[E,S]of Object.entries(_))s(`${a}.${E}`,S)}for(const[a,u]of Object.entries(r))s(a,u);return t}function wd(e){const t=new Set;if(!e)return t;const n=e.supported_parameters_normalized;if(Array.isArray(n))for(const s of n){const a=fa(s);a&&t.add(a)}const r=e.supported_parameters;if(Array.isArray(r))for(const s of r){const a=fa(s);a&&t.add(a)}if(t.size===0)for(const s of Qo(e)){const a=fa(s);a&&t.add(a)}return t}function r2(e,t){const n=e.fallback;if(n.type==="boolean")return{key:e.key,label:e.label,description:e.description,type:"boolean"};const r={key:e.key,label:e.label,description:e.description,type:n.type,min:n.min,max:n.max,step:n.step};if(!t)return r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r;const s=t.type?.toLowerCase();return s==="boolean"?{key:e.key,label:e.label,description:e.description,type:"boolean"}:(s==="integer"||s==="int"?r.type="integer":(s==="number"||s==="float"||s==="double")&&(r.type="number"),t.min!==void 0&&(r.min=t.min),t.max!==void 0&&(r.max=t.max),t.step!==void 0&&(r.step=t.step),r.type==="integer"&&(!r.step||r.step<=0)&&(r.step=1),r)}function s2(e,t){const n=wd(e),r=new Set(t?Object.keys(t):[]),s=kd(e),a=[],u=new Set;for(const i of n2){if(!i.aliases.some(d=>n.has(d))&&!r.has(i.key)||u.has(i.key))continue;const c=i.aliases.map(d=>s[d]).find(d=>d!==void 0),f=r2(i,c);"min"in f&&"max"in f&&f.min!==void 0&&f.max!==void 0&&f.min>=f.max&&(f.min=void 0,f.max=void 0),a.push(f),u.add(i.key)}return a}function Ed(e,t){const n=e?.[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function pu(e,t){let n=e;return t.min!==void 0&&(n=Math.max(n,t.min)),t.max!==void 0&&(n=Math.min(n,t.max)),n}function Sd(e){const t=e.min??0,n=e.max??t;if(t<=0&&n>=0)return pu(0,e);const r=t+(n-t)/2;return pu(r,e)}function a2(e,t){const n=Ed(t,e.key);return n!==void 0?pu(n,e):Sd(e)}function Dl(e){if(e.step&&e.step>0)return e.step;if(e.type==="integer")return 1;const t=e.min??0,r=(e.max??t+1)-t;if(!Number.isFinite(r)||r<=0)return .01;const s=r/100;return s>0?s:.01}function u2(e,t){const n=e.min??0,s=(e.max??n)-n;if(!Number.isFinite(s)||s===0)return"0%";const u=(pu(t??Sd(e),e)-n)/s*100;return`${Math.min(100,Math.max(0,u))}%`}const o2=new Intl.NumberFormat(void 0,{maximumFractionDigits:4});function hu(e){return typeof e=="number"&&Number.isFinite(e)?String(e):""}function ta(e,t){return t.type==="integer"?String(Math.round(e)):o2.format(e)}var i2=F('
                                    ');function l2(e,t){it(t,!1);const n=R(),r=R(),s=R(),a=R(),u=R();let i=oe(t,"field",8),l=oe(t,"parameters",8),c=oe(t,"numericValue",8),f=oe(t,"hasCustom",8,!1),d=oe(t,"handlers",8);ve(()=>(O(i()),O(l())),()=>{w(n,a2(i(),l()))}),ve(()=>(O(i()),O(c())),()=>{w(r,u2(i(),c()))}),ve(()=>(O(c()),O(i())),()=>{w(s,c()!==void 0?ta(c(),i()):"Provider default")}),ve(()=>(O(i()),o(n)),()=>{w(a,i().min??o(n))}),ve(()=>(O(i()),o(n)),()=>{w(u,i().max??o(n))}),Rt(),dt();var v=i2(),h=g(v),p=g(h);let x;var y=g(p),_=C(p,2),E=C(h,2),S=C(E,2),b=g(S),D=g(b),A=C(b,2),P=g(A);K((Z,Y,T,N)=>{x=Ct(p,1,"range-value",null,x,Z),X(y,o(s)),_.disabled=!f(),fe(E,"min",(O(i()),m(()=>i().min))),fe(E,"max",(O(i()),m(()=>i().max))),fe(E,"step",Y),Dt(E,o(n)),xn(E,`--slider-fill:${o(r)};`),fe(E,"aria-valuemin",(O(i()),m(()=>i().min))),fe(E,"aria-valuemax",(O(i()),m(()=>i().max))),fe(E,"aria-valuenow",c()??void 0),fe(E,"aria-valuetext",o(s)),X(D,T),X(P,N)},[()=>({default:!f()}),()=>(O(Dl),O(i()),m(()=>Dl(i()))),()=>(O(ta),o(a),O(i()),m(()=>ta(o(a),i()))),()=>(O(ta),o(u),O(i()),m(()=>ta(o(u),i())))]),W("click",_,()=>d().onRangeReset(i().key)),W("input",E,Z=>d().onSliderInput(i().key,Z)),k(e,v),lt()}var c2=F(' '),d2=F(''),f2=F('
                                    Enabled
                                    '),p2=F('');function h2(e,t){it(t,!1);let n=oe(t,"field",8),r=oe(t,"parameters",8),s=oe(t,"handlers",8);const a=_=>_.type==="number"||_.type==="integer";let u=R(),i=R(!1);ve(()=>(O(n()),O(r())),()=>{a(n())?w(u,Ed(r(),n().key)):w(u,void 0)}),ve(()=>(O(r()),O(n())),()=>{w(i,r()?.[n().key]!=null)}),Rt(),dt();var l=p2(),c=g(l),f=g(c),d=g(f),v=C(f,2);{var h=_=>{var E=c2(),S=g(E);K(()=>X(S,(O(n()),m(()=>n().description)))),k(_,E)};$(v,_=>{O(n()),m(()=>n().description)&&_(h)})}var p=C(c,2);{var x=_=>{var E=Ae(),S=me(E);{var b=A=>{l2(A,{get field(){return n()},get parameters(){return r()},get numericValue(){return o(u)},get hasCustom(){return o(i)},get handlers(){return s()}})},D=A=>{var P=d2();K(Z=>{fe(P,"inputmode",(O(n()),m(()=>n().type==="integer"?"numeric":"decimal"))),fe(P,"step",(O(n()),m(()=>n().step??(n().type==="integer"?1:"any")))),fe(P,"min",(O(n()),m(()=>n().min??void 0))),fe(P,"max",(O(n()),m(()=>n().max??void 0))),Dt(P,Z)},[()=>(O(hu),O(r()),O(n()),m(()=>hu(r()?.[n().key])))]),W("change",P,Z=>s().onNumberChange(n().key,Z)),k(A,P)};$(S,A=>{O(n()),m(()=>n().min!==void 0&&n().max!==void 0)?A(b):A(D,!1)})}k(_,E)},y=_=>{var E=Ae(),S=me(E);{var b=D=>{var A=f2(),P=g(A);K(()=>{fe(P,"id",(O(n()),m(()=>`field-${n().key}`))),Gt(P,(O(r()),O(n()),m(()=>r()?.[n().key]===!0)))}),W("change",P,Z=>s().onBooleanChange(n().key,Z)),k(D,A)};$(S,D=>{O(n()),m(()=>n().type==="boolean")&&D(b)},!0)}k(_,E)};$(p,_=>{O(n()),m(()=>a(n()))?_(x):_(y,!1)})}K(()=>X(d,(O(n()),m(()=>n().label)))),k(e,l),lt()}var m2=F(""),v2=F(''),g2=F(''),b2=F('
                                    Reasoning tokens Adjust effort, budget, or output visibility when the provider supports reasoning traces.
                                    ');function _2(e,t){it(t,!1);let n=oe(t,"reasoning",8),r=oe(t,"handlers",8);dt();var s=b2(),a=C(g(s),2),u=g(a),i=C(g(u),2),l=g(i);l.value=l.__value="default";var c=C(l);c.value=c.__value="on";var f=C(c);f.value=f.__value="off";var d;jn(i);var v=C(u,2);{var h=E=>{var S=v2(),b=C(g(S),2),D=g(b);D.value=D.__value="";var A=C(D);_t(A,1,()=>(O(n()),m(()=>n().options)),zn,(Z,Y)=>{var T=m2(),N=g(T),Q={};K(I=>{X(N,I),Q!==(Q=o(Y))&&(T.value=(T.__value=o(Y))??"")},[()=>(o(Y),m(()=>o(Y).charAt(0).toUpperCase()+o(Y).slice(1)))]),k(Z,T)});var P;jn(b),K(()=>{fe(S,"aria-disabled",(O(n()),m(()=>!n().effort.supported))),b.disabled=(O(n()),m(()=>!n().effort.supported)),P!==(P=(O(n()),m(()=>n().effort.supported?n().effort.value??"":"")))&&(b.value=(b.__value=(O(n()),m(()=>n().effort.supported?n().effort.value??"":"")))??"",kn(b,(O(n()),m(()=>n().effort.supported?n().effort.value??"":""))))}),W("change",b,function(...Z){r().onEffortChange?.apply(this,Z)}),k(E,S)};$(v,E=>{O(n()),m(()=>n().effort.showField)&&E(h)})}var p=C(v,2);{var x=E=>{var S=g2(),b=C(g(S),2);K(D=>{fe(S,"aria-disabled",(O(n()),m(()=>!n().maxTokens.supported))),fe(b,"min",(O(n()),m(()=>n().schemas.maxTokens?.min??void 0))),fe(b,"max",(O(n()),m(()=>n().schemas.maxTokens?.max??void 0))),fe(b,"step",(O(n()),m(()=>n().schemas.maxTokens?.step??1))),b.disabled=(O(n()),m(()=>!n().maxTokens.supported)),Dt(b,D)},[()=>(O(hu),O(n()),m(()=>hu(n().maxTokens.value)))]),W("change",b,function(...D){r().onMaxTokensChange?.apply(this,D)}),k(E,S)};$(p,E=>{O(n()),m(()=>n().maxTokens.showField)&&E(x)})}var y=C(p,2),_=g(y);K(()=>{d!==(d=(O(n()),m(()=>n().enabledSelection)))&&(i.value=(i.__value=(O(n()),m(()=>n().enabledSelection)))??"",kn(i,(O(n()),m(()=>n().enabledSelection)))),Gt(_,(O(n()),m(()=>n().exclude)))}),W("change",i,function(...E){r().onEnabledChange?.apply(this,E)}),W("change",_,function(...E){r().onExcludeChange?.apply(this,E)}),k(e,s),lt()}const y2=["reasoning","reasoning_effort","reasoning_max_tokens","reasoning_exclude","reasoning_enabled","include_reasoning"],qa={effort:["reasoning.effort","reasoning_effort"],maxTokens:["reasoning.max_tokens","reasoning_max_tokens","thinking_budget"],exclude:["reasoning.exclude","reasoning_exclude","include_reasoning"],enabled:["reasoning.enabled","reasoning_enabled"]};function x2(e){if(!e)return!1;const t=["openai/o1","openai/o3","openai/gpt-5","gpt-5","/grok","grok-"],n=[],r=a=>{if(typeof a!="string")return;const u=a.trim().toLowerCase();u&&n.push(u)};if(r(e.id),r(e.name),Array.isArray(e.tags))for(const a of e.tags)r(a);const s=e;return r(s.series),r(s.family),n.some(a=>t.some(u=>a.includes(u)))}function k2(e){const t=[];for(const n of e){const r=fa(n);r&&t.push(r)}return t}function w2(){return Ht(Ut,e=>e.data?.parameters??null)}function E2(e,t){return Ht([e,t],([n,r])=>s2(n,r))}function S2(e){return Ht(e,t=>!!(t&&Object.keys(t).length>0))}function C2(e){return Ht(e,t=>kd(t))}function A2(e){return Ht(e,t=>wd(t))}function D2(e){return Ht(e,t=>{const n=r=>{for(const s of k2(r)){const a=t[s];if(a)return a}};return{effort:n(qa.effort),maxTokens:n(qa.maxTokens),exclude:n(qa.exclude),enabled:n(qa.enabled)}})}function T2(e){return Ht(e,t=>t?.reasoning??null)}function F2(e,t,n,r,s){const a=["low","medium","high"];return Ht([e,t,n,r,s],([u,i,l,c,f])=>{const d=i?.effort??null,v=i?.max_tokens??null,h=i?.exclude===!0,p=i?i.enabled===!0?"on":i.enabled===!1?"off":"default":"default",x=(()=>{if(u?.reasoning&&Object.keys(u.reasoning).length>0)return!0;for(const Z of y2)if(l.has(Z))return!0;for(const Z of Object.values(c))if(Z)return!0;return!1})(),y=!!(c.effort||l.has("reasoning_effort")||x2(f)),_=!!(c.maxTokens||l.has("reasoning_max_tokens")),E=d!==null,S=v!==null;return{supported:x,schemas:c,enabledSelection:p,options:a,effort:{value:d,supported:x&&(y||E),showField:y||E},maxTokens:{value:v,supported:x&&(_||S),showField:_||S},exclude:h}})}function M2(){return Tt(null)}function P2(){const e=Tt(!1),t=Tt(""),n=M2(),r=w2(),s=E2(n,r),a=S2(r),u=C2(n),i=A2(n),l=D2(u),c=T2(r),f=F2(r,c,i,l,n);let d=null;const h=Ht([e,t,Ut],([S,b,D])=>({open:S,selectedModel:b,settingsState:D})).subscribe(({open:S,selectedModel:b,settingsState:D})=>{!S||!b||(D.data&&D.data.model!==b&&Ut.setModel(b),d!==b&&(d=b,Ut.clearErrors(),Ut.load(b)))});Da(()=>{h()});const p={onSliderInput:(S,b)=>{const D=b.currentTarget;if(!D)return;const A=Number(D.value);Number.isFinite(A)&&Ut.updateParameter(S,A)},onRangeReset:S=>{Ut.updateParameter(S,null)},onNumberChange:(S,b)=>{const D=b.currentTarget;if(!D)return;const A=D.value.trim();if(!A){Ut.updateParameter(S,null);return}const P=Number(A);if(!Number.isFinite(P)){Ut.updateParameter(S,null);return}Ut.updateParameter(S,P)},onBooleanChange:(S,b)=>{const D=b.currentTarget;D&&Ut.updateParameter(S,D.checked)}};function x(S){const b=nt(c)?{...nt(c)}:{};S(b);for(const D of Object.keys(b)){const A=b[D];(A==null||typeof A=="string"&&A.trim()==="")&&delete b[D]}Object.keys(b).length===0?Ut.updateParameter("reasoning",null):Ut.updateParameter("reasoning",b)}const y={onEnabledChange:S=>{const b=S.currentTarget;if(!b)return;const D=b.value;x(A=>{D==="on"?A.enabled=!0:D==="off"?A.enabled=!1:delete A.enabled})},onEffortChange:S=>{const b=S.currentTarget;if(!b)return;const D=b.value;x(A=>{D?A.effort=D:delete A.effort})},onMaxTokensChange:S=>{const b=S.currentTarget;if(!b)return;const D=b.value.trim();if(!D){x(P=>{delete P.max_tokens});return}const A=Number(D);if(!Number.isFinite(A)||A<=0){x(P=>{delete P.max_tokens});return}x(P=>{P.max_tokens=A})},onExcludeChange:S=>{const b=S.currentTarget;if(!b)return;const D=b.checked;x(A=>{D?A.exclude=!0:delete A.exclude})}};let _={open:!1,selectedModel:"",model:null};function E(S){S.open!==_.open&&(e.set(S.open),_.open=S.open),S.selectedModel!==_.selectedModel&&(t.set(S.selectedModel),_.selectedModel=S.selectedModel),S.model!==_.model&&(n.set(S.model),_.model=S.model)}return{settingsState:Ut,parameters:r,fields:s,hasCustomParameters:a,reasoning:f,parameterHandlers:p,reasoningHandlers:y,resetToDefaults:()=>Ut.resetToDefaults(),flushSave:()=>Ut.flushSave(),sync:E}}var I2=F('

                                    Loading settings…

                                    '),N2=F('

                                    '),L2=F('

                                    This model does not expose configurable parameters.

                                    '),O2=F('
                                    '),$2=F('
                                    '),R2=F('

                                    Model settings

                                    ',1),z2=F(''),U2=F(' '),B2=F('Saving changes…'),j2=F('Pending changes; closing this modal will save.'),q2=F('Changes save when you close this modal.'),H2=F('
                                    ');function W2(e,t){it(t,!1);const n=()=>at(h,"$settingsState",i),r=()=>at(y,"$hasCustomParameters",i),s=()=>at(_,"$reasoning",i),a=()=>at(x,"$fields",i),u=()=>at(p,"$parameters",i),[i,l]=Hn();let c=oe(t,"open",8,!1),f=oe(t,"selectedModel",8,""),d=oe(t,"model",8,null);const v=It(),{settingsState:h,parameters:p,fields:x,hasCustomParameters:y,reasoning:_,parameterHandlers:E,reasoningHandlers:S,resetToDefaults:b,flushSave:D,sync:A}=P2();let P=!1;async function Z(){if(P||n().saving)return;P=!0,await D()&&v("close"),P=!1}ve(()=>(O(c()),O(f()),O(d())),()=>{A({open:c(),selectedModel:f(),model:d()})}),Rt(),dt();var Y=Ae(),T=me(Y);{var N=Q=>{vr(Q,{get open(){return c()},labelledBy:"model-settings-title",closeLabel:"Close model settings",$$events:{close:()=>void Z()},children:(I,V)=>{var J=Ae(),se=me(J);{var de=ue=>{var L=I2();k(ue,L)},ae=ue=>{var L=Ae(),U=me(L);{var G=H=>{var q=N2(),z=g(q);K(()=>X(z,(n(),m(()=>n().error)))),k(H,q)},ie=H=>{var q=Ae(),z=me(q);{var le=De=>{var B=L2();k(De,B)},xe=De=>{var B=$2(),_e=g(B);{var Ne=ke=>{_2(ke,{get reasoning(){return s()},get handlers(){return S}})};$(_e,ke=>{s(),m(()=>s().supported)&&ke(Ne)})}var Be=C(_e,2);{var Oe=ke=>{var We=O2();_t(We,5,a,he=>he.key,(he,ne)=>{h2(he,{get field(){return o(ne)},get parameters(){return u()},get handlers(){return E}})}),k(ke,We)};$(Be,ke=>{a(),m(()=>a().length)&&ke(Oe)})}k(De,B)};$(z,De=>{s(),a(),m(()=>!s().supported&&!a().length)?De(le):De(xe,!1)})}k(H,q)};$(U,H=>{n(),m(()=>n().error)?H(G):H(ie,!1)},!0)}k(ue,L)};$(se,ue=>{n(),m(()=>n().loading)?ue(de):ue(ae,!1)})}k(I,J)},$$slots:{default:!0,heading:(I,V)=>{var J=R2(),se=C(me(J),2),de=g(se);{var ae=L=>{var U=Bn();K(()=>X(U,(O(d()),m(()=>d().name)))),k(L,U)},ue=L=>{var U=Ae(),G=me(U);{var ie=q=>{var z=Bn();K(()=>X(z,(O(d()),m(()=>d().id)))),k(q,z)},H=q=>{var z=Bn();K(()=>X(z,f())),k(q,z)};$(G,q=>{O(d()),m(()=>d()?.id)?q(ie):q(H,!1)},!0)}k(L,U)};$(de,L=>{O(d()),m(()=>d()?.name)?L(ae):L(ue,!1)})}k(I,J)},actions:(I,V)=>{var J=z2();K(()=>J.disabled=(r(),n(),m(()=>!r()||n().saving))),W("click",J,b),k(I,J)},footer:(I,V)=>{var J=H2(),se=g(J);{var de=ue=>{var L=U2(),U=g(L);K(()=>X(U,(n(),m(()=>n().saveError)))),k(ue,L)},ae=ue=>{var L=Ae(),U=me(L);{var G=H=>{var q=B2();k(H,q)},ie=H=>{var q=Ae(),z=me(q);{var le=De=>{var B=j2();k(De,B)},xe=De=>{var B=q2();k(De,B)};$(z,De=>{n(),m(()=>n().dirty)?De(le):De(xe,!1)},!0)}k(H,q)};$(U,H=>{n(),m(()=>n().saving)?H(G):H(ie,!1)},!0)}k(ue,L)};$(se,ue=>{n(),m(()=>n().saveError)?ue(de):ue(ae,!1)})}k(I,J)}}})};$(T,Q=>{c()&&Q(N)})}k(e,Y),lt(),l()}var V2=F('
                                    '),G2=F('
                                    '),K2=F(''),Z2=F('
                                    ');function Y2(e,t){it(t,!1);const n=It();let r=oe(t,"suggestions",24,()=>[]),s=oe(t,"deleting",8,null),a=R(!1),u=R(""),i=R("");function l(b){n("select",{text:b})}function c(b,D){D.stopPropagation(),n("delete",{index:b})}function f(){w(a,!0)}function d(){o(u).trim()&&o(i).trim()&&(n("add"),w(u,""),w(i,""),w(a,!1))}function v(){w(u,""),w(i,""),w(a,!1)}function h(){const b=o(u).trim(),D=o(i).trim();return b&&D?{label:b,text:D}:null}var p={getNewSuggestion:h};dt();var x=Z2(),y=g(x);_t(y,3,r,b=>b.text,(b,D,A)=>{var P=V2(),Z=g(P),Y=g(Z),T=C(Z,2);K(()=>{X(Y,(o(D),m(()=>o(D).label))),T.disabled=s()===o(A)}),W("click",Z,()=>l(o(D).text)),W("click",T,N=>c(o(A),N)),k(b,P)});var _=C(y,2);{var E=b=>{var D=G2(),A=g(D),P=C(A,2),Z=C(P,2),Y=C(Z,2);pr(A,()=>o(u),T=>w(u,T)),W("keydown",A,T=>T.key==="Enter"&&d()),pr(P,()=>o(i),T=>w(i,T)),W("keydown",P,T=>T.key==="Enter"&&d()),W("click",Z,d),W("click",Y,v),k(b,D)},S=b=>{var D=K2();W("click",D,f),k(b,D)};$(_,b=>{o(a)?b(E):b(S,!1)})}return k(e,x),m0(t,"getNewSuggestion",h),lt(p)}function ci(e,t){const n=()=>{e.style.height="auto",e.style.height=`${e.scrollHeight}px`},r=()=>n();return n(),e.addEventListener("input",r),{update:()=>n(),destroy:()=>{e.removeEventListener("input",r)}}}const lo={loading:!1,saving:!1,error:null,saveError:null,value:"",initialValue:"",dirty:!1};function J2(){const e=Tt({...lo});function t(i,l){return i.trim()!==l.trim()}function n(i){return i.system_prompt?.trim()??""}async function r(){e.set({...lo,loading:!0});try{const i=await D0(),l=n(i);e.set({loading:!1,saving:!1,error:null,saveError:null,value:l,initialValue:l,dirty:!1})}catch(i){const l=i instanceof Error?i.message:"Failed to load system prompt.";e.set({...lo,loading:!1,error:l})}}function s(i){e.update(l=>{const c=i;return{...l,value:c,dirty:t(c,l.initialValue),saveError:null}})}async function a(){let i="";e.update(c=>(i=c.value,{...c,saving:!0,saveError:null}));const l={system_prompt:i.trim()||null};try{const c=await T0(l),f=n(c);e.set({loading:!1,saving:!1,error:null,saveError:null,value:f,initialValue:f,dirty:!1})}catch(c){const f=c instanceof Error?c.message:"Failed to save system prompt.";e.update(d=>({...d,saving:!1,saveError:f}))}}function u(){e.update(i=>({...i,value:i.initialValue,dirty:!1,saveError:null}))}return{subscribe:e.subscribe,load:r,save:a,reset:u,updateValue:s}}const X2={loading:!1,adding:!1,deleting:null,error:null,items:[]};function Q2(){const e=Tt({...X2});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await fetch(`${yt}/api/suggestions`);if(!a.ok)throw new Error(`HTTP ${a.status}`);const u=await a.json();e.update(i=>({...i,loading:!1,items:u.suggestions}))}catch(a){const u=a instanceof Error?a.message:"Failed to load suggestions.";e.update(i=>({...i,loading:!1,error:u}))}}async function n(a,u){e.update(i=>({...i,adding:!0,error:null}));try{const i=await fetch(`${yt}/api/suggestions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a,text:u})});if(!i.ok)throw new Error(`HTTP ${i.status}`);const l=await i.json();return e.update(c=>({...c,adding:!1,items:l.suggestions})),l.suggestions}catch(i){const l=i instanceof Error?i.message:"Failed to add suggestion.";return e.update(c=>({...c,adding:!1,error:l})),null}}async function r(a){e.update(u=>({...u,deleting:a,error:null}));try{const u=await fetch(`${yt}/api/suggestions/${a}`,{method:"DELETE"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const i=await u.json();return e.update(l=>({...l,deleting:null,items:i.suggestions})),i.suggestions}catch(u){const i=u instanceof Error?u.message:"Failed to delete suggestion.";return e.update(l=>({...l,deleting:null,error:i})),null}}function s(){e.update(a=>({...a,error:null}))}return{subscribe:e.subscribe,load:t,add:n,remove:r,clearError:s}}const _s=Q2();var eb=F('

                                    Loading system prompt…

                                    '),tb=F('

                                    '),nb=F('

                                    '),rb=F(' ',1),sb=F('

                                    '),ab=F('

                                    Loading presets…

                                    '),ub=F('

                                    No presets saved yet.

                                    '),ob=F('Default'),ib=F(' Filters'),lb=F(''),cb=F('
                                  • '),db=F('
                                      '),fb=F('

                                      '),pb=F('

                                      '),hb=F('

                                      Create, update, or apply a preset.

                                      '),mb=F(""),vb=F(`

                                      System prompt

                                      Applied to new chat sessions when no custom prompt is present.

                                      Presets

                                      Save and manage snapshots of the current configuration.

                                      Speech settings

                                      Configure Deepgram speech-to-text dictation settings.

                                      Deepgram model

                                      Choose the speech-to-text engine and helper features.

                                      Model
                                      Speech timing presets

                                      Timing & auto-submit

                                      Tune silence detection and message submission.

                                      Endpointing window (ms)

                                      How long Deepgram waits after silence before finalizing the + transcript.

                                      Utterance gap (ms)

                                      Silence between words before Deepgram starts a new interim + segment.

                                      Send automatically when speech ends. Delay waits after + endpointing.

                                      `,1),gb=F('

                                      System settings

                                      Configure orchestration defaults, presets, and speech settings.

                                      ',1),bb=F('

                                      Resolve the errors above before closing.

                                      '),_b=F('

                                      '),yb=F('

                                      Saving changes…

                                      '),xb=F('

                                      Pending changes; closing this modal will save.

                                      '),kb=F('

                                      Changes save when you close this modal.

                                      '),wb=F('
                                      ');function Eb(e,t){it(t,!1);const n=()=>at(c,"$systemPrompt",a),r=()=>at(va,"$chatStore",a),s=()=>at(Kn,"$presetsStore",a),[a,u]=Hn();let i=oe(t,"open",8,!1);const l=It(),c=J2();let f=R(!1),d=!1;async function v(){await Promise.all([c.load(),Kn.load()])}async function h(){return nt(c).dirty?(await c.save(),!nt(c).saveError):!0}async function p(){if(d||n().saving||o(S))return;d=!0;const G=await h(),ie=await de(),H=nt(c);G&&ie&&!H.saveError&&l("close"),d=!1}let x=R(""),y=R(null),_=R(Q()),E=R(!1),S=R(!1),b=R(null);function D(G){const ie=G.target;c.updateValue(ie?.value??"")}function A(){w(x,""),w(y,null)}async function P(){const G=o(x).trim();if(!G)return;await Ut.load(r().selectedModel),await Kn.create(G)&&w(x,"")}async function Z(G){const ie=await Kn.apply(G.name);ie?.model&&va.setModel(ie.model),await _s.load()}async function Y(G){await Ut.load(r().selectedModel),await Kn.saveSnapshot(G.name)}async function T(G){if(!G.is_default){if(o(y)===G.name){await Kn.remove(G.name),w(y,null);return}w(y,G.name),setTimeout(()=>{o(y)===G.name&&w(y,null)},3e3)}}async function N(G){await Kn.setDefault(G.name)}function Q(){const G=da.current??Vr();return{...G,stt:{...G.stt}}}function I(){da.refresh(),w(_,Q()),w(E,!1),w(S,!1),w(b,null)}function V(G,ie){w(_,{...o(_),stt:{...o(_).stt,[G]:ie}}),w(E,!0),w(b,null)}function J(G,ie){const H=G.target;if(!H)return;const q=Number(H.value);Number.isFinite(q)&&ie(q)}function se(G){const ie=Bp[G];w(_,{...o(_),stt:{...o(_).stt,utteranceEndMs:ie.stt.utteranceEndMs,endpointing:ie.stt.endpointing,autoSubmitDelayMs:ie.stt.autoSubmitDelayMs}}),w(E,!0),w(b,null)}async function de(){if(!o(E))return!0;w(S,!0);try{const G=da.save(o(_));return w(_,{...G,stt:{...G.stt}}),w(E,!1),w(b,null),!0}catch(G){const ie=G instanceof Error?G.message:"Failed to save speech settings.";return w(b,ie),!1}finally{w(S,!1)}}function ae(){w(_,Vr()),w(E,!0),w(b,null)}ve(()=>(O(i()),o(f)),()=>{i()&&!o(f)?(w(f,!0),v(),I(),A()):!i()&&o(f)&&(w(f,!1),c.reset(),I(),A())}),Rt(),dt();var ue=Ae(),L=me(ue);{var U=G=>{{let ie=vt(()=>(n(),o(S),m(()=>n().saving||o(S))));vr(G,{get open(){return i()},labelledBy:"system-settings-title",modalClass:"system-settings-modal",bodyClass:"system-settings-body",layerClass:"system-settings-layer",closeLabel:"Close system settings",get closeDisabled(){return o(ie)},$$events:{close:()=>void p()},children:(H,q)=>{var z=vb(),le=me(z),xe=g(le),De=C(g(xe),2),B=g(De),_e=C(xe,2),Ne=g(_e);{var Be=re=>{var we=eb();k(re,we)},Oe=re=>{var we=Ae(),Pe=me(we);{var Ze=Ue=>{var ft=tb(),St=g(ft);K(()=>X(St,(n(),m(()=>n().error)))),k(Ue,ft)},Et=Ue=>{var ft=rb(),St=me(ft);qn(()=>pr(St,()=>n().value,$t=>g0(c,m(n).value=$t,m(n)))),qn(()=>W("input",St,D)),Jr(St,($t,_n)=>ci?.($t),()=>n().value);var $e=C(St,2);{var mn=$t=>{var _n=nb(),gr=g(_n);K(()=>X(gr,(n(),m(()=>n().saveError)))),k($t,_n)};$($e,$t=>{n(),m(()=>n().saveError)&&$t(mn)})}K(()=>St.disabled=(n(),m(()=>n().saving))),k(Ue,ft)};$(Pe,Ue=>{n(),m(()=>n().error)?Ue(Ze):Ue(Et,!1)},!0)}k(re,we)};$(Ne,re=>{n(),m(()=>n().loading)?re(Be):re(Oe,!1)})}var ke=C(le,2),We=C(g(ke),2),he=g(We),ne=g(he),ge=C(ne,2),be=g(ge),Te=C(he,2);{var qe=re=>{var we=sb(),Pe=g(we);K(()=>X(Pe,(s(),m(()=>s().error)))),k(re,we)};$(Te,re=>{s(),m(()=>s().error)&&re(qe)})}var ce=C(Te,2);{var pe=re=>{var we=ab();k(re,we)},Ee=re=>{var we=Ae(),Pe=me(we);{var Ze=Ue=>{var ft=ub();k(Ue,ft)},Et=Ue=>{var ft=db();_t(ft,5,()=>(s(),m(()=>s().items)),St=>St.name,(St,$e)=>{var mn=cb(),$t=g(mn),_n=g($t),gr=g(_n),br=C(gr);{var as=sn=>{var Xe=ob();k(sn,Xe)};$(br,sn=>{o($e),m(()=>o($e).is_default)&&sn(as)})}var Tu=C(br,2);{var Fu=sn=>{var Xe=ib();k(sn,Xe)};$(Tu,sn=>{o($e),m(()=>o($e).has_filters)&&sn(Fu)})}var us=C(_n,2),$s=g(us),Rs=g($s),os=C($s,2),zs=g(os),Us=g(zs),Bs=C(zs,4),Ia=g(Bs),js=C($t,2),Lr=g(js),Na=g(Lr),Or=C(Lr,2),_r=g(Or),qs=C(Or,2);{var Mu=sn=>{var Xe=lb(),Xt=g(Xe);K(()=>{Xe.disabled=(s(),o($e),m(()=>s().settingDefault===o($e).name)),fe(Xe,"aria-busy",(s(),o($e),m(()=>s().settingDefault===o($e).name))),X(Xt,(s(),o($e),m(()=>s().settingDefault===o($e).name?"Setting…":"Set as default")))}),W("click",Xe,()=>N(o($e))),k(sn,Xe)};$(qs,sn=>{o($e),m(()=>!o($e).is_default)&&sn(Mu)})}var $r=C(qs,2),Pu=g($r);K((sn,Xe)=>{X(gr,`${o($e),m(()=>o($e).name)??""} `),X(Rs,(o($e),m(()=>o($e).model))),X(Us,sn),X(Ia,Xe),Lr.disabled=(s(),o($e),m(()=>s().applying===o($e).name)),fe(Lr,"aria-busy",(s(),o($e),m(()=>s().applying===o($e).name))),X(Na,(s(),o($e),m(()=>s().applying===o($e).name?"Applying…":"Apply"))),Or.disabled=(s(),m(()=>s().saving)),fe(Or,"aria-busy",(s(),m(()=>s().saving))),X(_r,(s(),m(()=>s().saving?"Saving…":"Save snapshot"))),$r.disabled=(o($e),s(),m(()=>o($e).is_default||s().deleting===o($e).name)),fe($r,"aria-busy",(s(),o($e),m(()=>s().deleting===o($e).name))),fe($r,"title",(o($e),m(()=>o($e).is_default?"Cannot delete default preset":"Delete preset"))),X(Pu,(o(y),o($e),s(),m(()=>o(y)===o($e).name?"Confirm delete":s().deleting===o($e).name?"Deleting…":"Delete")))},[()=>(o($e),m(()=>new Date(o($e).created_at).toLocaleString())),()=>(o($e),m(()=>new Date(o($e).updated_at).toLocaleString()))]),W("click",Lr,()=>Z(o($e))),W("click",Or,()=>Y(o($e))),W("click",$r,()=>T(o($e))),k(St,mn)}),k(Ue,ft)};$(Pe,Ue=>{s(),m(()=>!s().items.length)?Ue(Ze):Ue(Et,!1)},!0)}k(re,we)};$(ce,re=>{s(),m(()=>s().loading)?re(pe):re(Ee,!1)})}var Fe=C(ce,2);{var et=re=>{var we=fb(),Pe=g(we);K(()=>X(Pe,`Applied preset: ${s(),m(()=>s().lastApplied)??""}`)),k(re,we)},rt=re=>{var we=Ae(),Pe=me(we);{var Ze=Ue=>{var ft=pb(),St=g(ft);K(()=>X(St,`Saved: ${s(),m(()=>s().lastResult.name)??""}`)),k(Ue,ft)},Et=Ue=>{var ft=hb();k(Ue,ft)};$(Pe,Ue=>{s(),m(()=>s().lastResult)?Ue(Ze):Ue(Et,!1)},!0)}k(re,we)};$(Fe,re=>{s(),m(()=>s().lastApplied)?re(et):re(rt,!1)})}var Le=C(ke,2),ze=g(Le),je=C(g(ze),2),Je=g(je),ct=C(ze,2),He=g(ct),ht=C(g(He),2),Bt=g(ht),bt=C(g(Bt),2);_t(bt,5,()=>jp,zn,(re,we)=>{var Pe=mb(),Ze=g(Pe),Et={};K(()=>{X(Ze,(o(we),m(()=>o(we).label))),Et!==(Et=(o(we),m(()=>o(we).value)))&&(Pe.value=(Pe.__value=(o(we),m(()=>o(we).value)))??"")}),k(re,Pe)});var Zt;jn(bt);var jt=C(Bt,2),qt=C(g(jt),2),st=g(qt),Ve=C(st,2),Ft=C(Ve,2),ye=C(ht,2),Se=g(ye),ut=g(Se),Yt=C(Se,2),At=g(Yt),Nt=C(Yt,2),bn=g(Nt),ur=C(Nt,2),In=g(ur),Me=C(ur,2),Re=g(Me),Mt=C(Me,2),zt=g(Mt),rn=C(Mt,2),tt=g(rn),Ge=C(He,2),mt=C(g(Ge),2),Lt=g(mt),Ot=C(g(Lt),2),ot=C(Lt,2),Pt=C(g(ot),2),Ce=C(mt,2),M=g(Ce),te=g(M),ee=g(te),Ie=C(M,2),j=C(g(Ie),2);K(re=>{B.disabled=(n(),m(()=>!n().dirty||n().saving)),ge.disabled=re,fe(ge,"aria-busy",(s(),m(()=>s().creating))),X(be,(s(),m(()=>s().creating?"Creating…":"Create from current"))),Je.disabled=o(S),Zt!==(Zt=(o(_),m(()=>o(_).stt.model)))&&(bt.value=(bt.__value=(o(_),m(()=>o(_).stt.model)))??"",kn(bt,(o(_),m(()=>o(_).stt.model)))),Gt(ut,(o(_),m(()=>o(_).stt.interimResults))),Gt(At,(o(_),m(()=>o(_).stt.vadEvents))),Gt(bn,(o(_),m(()=>o(_).stt.smartFormat))),Gt(In,(o(_),m(()=>o(_).stt.punctuate))),Gt(Re,(o(_),m(()=>o(_).stt.numerals))),Gt(zt,(o(_),m(()=>o(_).stt.fillerWords))),Gt(tt,(o(_),m(()=>o(_).stt.profanityFilter))),Dt(Ot,(o(_),m(()=>o(_).stt.endpointing))),Dt(Pt,(o(_),m(()=>o(_).stt.utteranceEndMs))),Gt(ee,(o(_),m(()=>o(_).stt.autoSubmit))),Dt(j,(o(_),m(()=>o(_).stt.autoSubmitDelayMs))),j.disabled=(o(_),m(()=>!o(_).stt.autoSubmit))},[()=>(o(x),s(),m(()=>!o(x).trim()||s().creating))]),W("click",B,()=>c.reset()),pr(ne,()=>o(x),re=>w(x,re)),W("keydown",ne,re=>re.key==="Enter"?P():null),W("click",ge,P),W("click",Je,ae),W("change",bt,re=>V("model",re.target.value)),W("click",st,()=>se("fast")),W("click",Ve,()=>se("normal")),W("click",Ft,()=>se("slow")),W("change",ut,re=>V("interimResults",re.target.checked)),W("change",At,re=>V("vadEvents",re.target.checked)),W("change",bn,re=>V("smartFormat",re.target.checked)),W("change",In,re=>V("punctuate",re.target.checked)),W("change",Re,re=>V("numerals",re.target.checked)),W("change",zt,re=>V("fillerWords",re.target.checked)),W("change",tt,re=>V("profanityFilter",re.target.checked)),W("change",Ot,re=>J(re,we=>V("endpointing",we))),W("change",Pt,re=>J(re,we=>V("utteranceEndMs",we))),W("change",ee,re=>V("autoSubmit",re.target.checked)),W("change",j,re=>J(re,we=>V("autoSubmitDelayMs",we))),k(H,z)},$$slots:{default:!0,heading:(H,q)=>{var z=gb();k(H,z)},footer:(H,q)=>{var z=wb(),le=g(z);{var xe=B=>{var _e=bb();k(B,_e)},De=B=>{var _e=Ae(),Ne=me(_e);{var Be=ke=>{var We=_b(),he=g(We);K(()=>X(he,o(b))),k(ke,We)},Oe=ke=>{var We=Ae(),he=me(We);{var ne=be=>{var Te=yb();k(be,Te)},ge=be=>{var Te=Ae(),qe=me(Te);{var ce=Ee=>{var Fe=xb();k(Ee,Fe)},pe=Ee=>{var Fe=kb();k(Ee,Fe)};$(qe,Ee=>{n(),o(E),m(()=>n().dirty||o(E))?Ee(ce):Ee(pe,!1)},!0)}k(be,Te)};$(he,be=>{n(),o(S),m(()=>n().saving||o(S))?be(ne):be(ge,!1)},!0)}k(ke,We)};$(Ne,ke=>{o(b)?ke(Be):ke(Oe,!1)},!0)}k(B,_e)};$(le,B=>{n(),m(()=>n().saveError)?B(xe):B(De,!1)})}k(H,z)}}})}};$(L,G=>{i()&&G(U)})}k(e,ue),lt(),u()}async function Sb(){const e=await fetch(`${yt}/api/clients/kiosk/stt`);if(!e.ok)throw new Error(`Failed to fetch kiosk STT settings: ${e.statusText}`);return e.json()}async function Cb(e){const t=await fetch(`${yt}/api/clients/kiosk/stt`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk STT settings: ${t.statusText}`);return t.json()}async function Ab(){const e=await fetch(`${yt}/api/clients/kiosk/stt/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk STT settings: ${e.statusText}`);return e.json()}async function Db(){const e=await fetch(`${yt}/api/clients/kiosk/tts`);if(!e.ok)throw new Error(`Failed to fetch kiosk TTS settings: ${e.statusText}`);return e.json()}async function Tb(e){const t=await fetch(`${yt}/api/clients/kiosk/tts`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk TTS settings: ${t.statusText}`);return t.json()}async function Fb(){const e=await fetch(`${yt}/api/clients/kiosk/tts/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk TTS settings: ${e.statusText}`);return e.json()}async function Mb(e="openai"){const t=await fetch(`${yt}/api/clients/kiosk/tts/voices?provider=${encodeURIComponent(e)}`);if(!t.ok)throw new Error(`Failed to fetch TTS voices: ${t.statusText}`);return t.json()}async function Pb(){const e=await fetch(`${yt}/api/clients/kiosk/ui`);if(!e.ok)throw new Error(`Failed to fetch kiosk UI settings: ${e.statusText}`);return e.json()}async function Ib(e){const t=await fetch(`${yt}/api/clients/kiosk/ui`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk UI settings: ${t.statusText}`);return t.json()}async function Nb(){const e=await fetch(`${yt}/api/clients/kiosk/llm`);if(!e.ok)throw new Error(`Failed to fetch kiosk LLM settings: ${e.statusText}`);return e.json()}async function Lb(e){const t=await fetch(`${yt}/api/clients/kiosk/llm`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update kiosk LLM settings: ${t.statusText}`);return t.json()}async function Ob(){const e=await fetch(`${yt}/api/clients/kiosk/llm/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset kiosk LLM settings: ${e.statusText}`);return e.json()}async function $b(){const e=await fetch(`${yt}/api/clients/kiosk/presets`);if(!e.ok)throw new Error(`Failed to fetch kiosk presets: ${e.statusText}`);return e.json()}async function Rb(e){const t=await fetch(`${yt}/api/clients/kiosk/presets/${e}/activate`,{method:"POST"});if(!t.ok)throw new Error(`Failed to activate kiosk preset: ${t.statusText}`);return t.json()}async function zb(e,t){const n=await fetch(`${yt}/api/clients/kiosk/presets/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Error(`Failed to update kiosk preset: ${n.statusText}`);return n.json()}const Ub={eot_threshold:.7,eot_timeout_ms:5e3,eager_eot_threshold:null,keyterms:[],enabled:!0,provider:"openai",voice:"alloy",model:"tts-1",speed:1,sample_rate:24e3,idle_return_delay_ms:1e4,llm_model:"openai/gpt-4o-mini",system_prompt:"You are a helpful voice assistant who replies succinctly.",temperature:.7,max_tokens:500,conversation_mode:!1,conversation_timeout_seconds:10};function Bb(e){return JSON.parse(JSON.stringify(e))}function Cd(){return Bb(Ub)}function jb(){const e=Tt(Cd());let t=!1,n=!1;async function r(){if(n)return nt(e);n=!0;try{const[u,i,l,c]=await Promise.all([Sb(),Db(),Pb(),Nb()]),f={eot_threshold:u.eot_threshold,eot_timeout_ms:u.eot_timeout_ms,eager_eot_threshold:u.eager_eot_threshold??null,keyterms:u.keyterms,enabled:i.enabled,provider:i.provider,voice:i.voice,model:i.model,speed:i.speed,sample_rate:i.sample_rate,idle_return_delay_ms:l.idle_return_delay_ms,llm_model:c.model,system_prompt:c.system_prompt,temperature:c.temperature,max_tokens:c.max_tokens,conversation_mode:c.conversation_mode,conversation_timeout_seconds:c.conversation_timeout_seconds};return e.set(f),t=!0,f}catch(u){return console.error("Failed to load kiosk settings:",u),nt(e)}finally{n=!1}}async function s(u){try{const i={},l={},c={},f={};u.eot_threshold!==void 0&&(i.eot_threshold=u.eot_threshold),u.eot_timeout_ms!==void 0&&(i.eot_timeout_ms=u.eot_timeout_ms),u.eager_eot_threshold!==void 0&&(i.eager_eot_threshold=u.eager_eot_threshold),u.keyterms!==void 0&&(i.keyterms=u.keyterms),u.enabled!==void 0&&(l.enabled=u.enabled),u.provider!==void 0&&(l.provider=u.provider),u.voice!==void 0&&(l.voice=u.voice),u.model!==void 0&&(l.model=u.model),u.speed!==void 0&&(l.speed=u.speed),u.sample_rate!==void 0&&(l.sample_rate=u.sample_rate),u.idle_return_delay_ms!==void 0&&(c.idle_return_delay_ms=u.idle_return_delay_ms),u.llm_model!==void 0&&(f.model=u.llm_model),u.system_prompt!==void 0&&(f.system_prompt=u.system_prompt),u.temperature!==void 0&&(f.temperature=u.temperature),u.max_tokens!==void 0&&(f.max_tokens=u.max_tokens),u.conversation_mode!==void 0&&(f.conversation_mode=u.conversation_mode),u.conversation_timeout_seconds!==void 0&&(f.conversation_timeout_seconds=u.conversation_timeout_seconds);const d=[];return Object.keys(i).length>0&&d.push(Cb(i)),Object.keys(l).length>0&&d.push(Tb(l)),Object.keys(c).length>0&&d.push(Ib(c)),Object.keys(f).length>0&&d.push(Lb(f)),await Promise.all(d),await r()}catch(i){throw console.error("Failed to save kiosk settings:",i),i}}async function a(){try{const[u,i,l]=await Promise.all([Ab(),Fb(),Ob()]),c=nt(e),f={eot_threshold:u.eot_threshold,eot_timeout_ms:u.eot_timeout_ms,eager_eot_threshold:u.eager_eot_threshold??null,keyterms:u.keyterms,enabled:i.enabled,provider:i.provider,voice:i.voice,model:i.model,speed:i.speed,sample_rate:i.sample_rate,idle_return_delay_ms:c.idle_return_delay_ms,llm_model:l.model,system_prompt:l.system_prompt,temperature:l.temperature,max_tokens:l.max_tokens,conversation_mode:l.conversation_mode,conversation_timeout_seconds:l.conversation_timeout_seconds};return e.set(f),f}catch(u){throw console.error("Failed to reset kiosk settings:",u),u}}return{subscribe:e.subscribe,load:r,save:s,reset:a,get isLoaded(){return t},get current(){return nt(e)}}}const Ha=jb();var qb=F('

                                      Loading settings…

                                      '),Hb=F(""),Wb=F(""),Vb=F('
                                      '),Gb=F('
                                      Eager EOT Threshold
                                      0.3 (eager) 0.9 (conservative)
                                      '),Kb=F(""),Zb=F('
                                      Speed
                                      0.5x (slow) 2x (fast)
                                      ',1),Yb=F(`
                                      Language Model Configure the AI model and behavior.
                                      Temperature
                                      0 (focused) 2 (creative)
                                      Max Tokens
                                      50 (short) 2000 (long)
                                      Speech Recognition Deepgram Flux end-of-turn detection settings.
                                      EOT Threshold
                                      0.5 (fast) 0.9 (reliable)
                                      EOT Timeout
                                      500ms 10s
                                      Advanced Optional fine-tuning options.
                                      Display Kiosk screen behavior settings.
                                      Return to Clock
                                      1s 60s
                                      Conversation Timeout
                                      1s 60s
                                      Text-to-Speech Voice synthesis settings for assistant responses.
                                      Keyterms Words to boost recognition (one per line, up to 100).
                                      `),Jb=F('

                                      Kiosk settings

                                      Configure the voice assistant kiosk.

                                      ',1),Xb=F(''),Qb=F(' '),e_=F('Saving changes…'),t_=F('Pending changes; closing this modal will save.'),n_=F('Changes save when you close this modal.'),r_=F('
                                      ');function s_(e,t){it(t,!1);const n=()=>at(a,"$filtered",r),[r,s]=Hn(),{filtered:a}=Qn;let u=R([]),i=R(null),l=R(!1),c=oe(t,"open",8,!1);const f=It();let d=R(Cd()),v=R(!1),h=R(!1),p=R(!0),x=R(null),y=R(!1),_=!1;async function E(){w(p,!0);try{const[I,V]=await Promise.all([Ha.load(),$b(),Qn.loadModels()]);w(d,{...I}),w(u,await Mb("openai")),w(i,V)}catch{w(x,"Failed to load settings")}finally{w(p,!1)}}async function S(I){if(!o(l)){w(l,!0);try{w(i,await Rb(I));const V=await Ha.load();w(d,{...V}),w(v,!1)}catch{w(x,"Failed to activate preset")}finally{w(l,!1)}}}async function b(){if(!(!o(i)||o(l))){w(l,!0);try{const I=o(i).active_index,V=o(i).presets[I],J={name:V.name,model:o(d).llm_model,system_prompt:o(d).system_prompt??"",temperature:o(d).temperature,max_tokens:o(d).max_tokens,eot_threshold:o(d).eot_threshold,eot_timeout_ms:o(d).eot_timeout_ms,keyterms:o(d).keyterms,tts_enabled:o(d).enabled,tts_voice:o(d).voice,tts_model:o(d).model,tts_sample_rate:o(d).sample_rate};w(i,await zb(I,J)),w(x,`Saved to "${V.name}"`),setTimeout(()=>{o(x)?.startsWith("Saved")&&w(x,null)},2e3)}catch{w(x,"Failed to save preset")}finally{w(l,!1)}}}function D(){_||o(h)||(_=!0,(async()=>(await P()&&f("close"),_=!1))())}function A(){w(v,!0),w(x,null)}async function P(){if(!o(v))return!0;w(h,!0),w(x,null);try{const I=await Ha.save(o(d));return w(d,{...I}),w(v,!1),!0}catch(I){const V=I instanceof Error?I.message:"Failed to save settings.";return w(x,V),!1}finally{w(h,!1)}}async function Z(){w(h,!0);try{const I=await Ha.reset();w(d,{...I}),w(v,!1),w(x,null)}catch{w(x,"Failed to reset settings")}finally{w(h,!1)}}function Y(I,V,J){return`${(I-V)/(J-V)*100}%`}ve(()=>(O(c()),o(y),o(v),o(h)),()=>{c()&&!o(y)?(w(y,!0),w(v,!1),w(h,!1),w(x,null),E()):!c()&&o(y)&&(w(y,!1),o(v)&&!o(h)&&P())}),Rt(),dt();var T=Ae(),N=me(T);{var Q=I=>{vr(I,{get open(){return c()},labelledBy:"kiosk-settings-title",closeLabel:"Close kiosk settings",$$events:{close:()=>void D()},children:(V,J)=>{var se=Ae(),de=me(se);{var ae=L=>{var U=qb();k(L,U)},ue=L=>{var U=Yb(),G=g(U),ie=C(g(G),2),H=g(ie),q=g(H),z=C(g(q),2);_t(z,5,n,ee=>ee.id,(ee,Ie)=>{var j=Hb(),re=g(j),we={};K(()=>{X(re,(o(Ie),m(()=>o(Ie).name??o(Ie).id))),we!==(we=(o(Ie),m(()=>o(Ie).id)))&&(j.value=(j.__value=(o(Ie),m(()=>o(Ie).id)))??"")}),k(ee,j)});var le;jn(z);var xe=C(q,2);{var De=ee=>{var Ie=Vb(),j=C(g(Ie),2),re=g(j);_t(re,5,()=>(o(i),m(()=>o(i).presets)),zn,(Ze,Et,Ue)=>{var ft=Wb(),St=g(ft);ft.value=ft.__value=Ue,K(()=>X(St,(o(Et),m(()=>o(Et).name)))),k(Ze,ft)});var we;jn(re);var Pe=C(re,2);K(()=>{re.disabled=o(h)||o(l),we!==(we=(o(i),m(()=>o(i).active_index)))&&(re.value=(re.__value=(o(i),m(()=>o(i).active_index)))??"",kn(re,(o(i),m(()=>o(i).active_index)))),Pe.disabled=o(h)||o(l)}),W("change",re,Ze=>S(parseInt(Ze.target.value,10))),W("click",Pe,b),k(ee,Ie)};$(xe,ee=>{o(i)&&ee(De)})}var B=C(H,2),_e=C(g(B),2);Jr(_e,(ee,Ie)=>ci?.(ee),()=>o(d).system_prompt),qn(()=>W("input",_e,ee=>{w(d,{...o(d),system_prompt:ee.target.value||null}),A()}));var Ne=C(B,2),Be=g(Ne),Oe=g(Be),ke=C(g(Oe),2),We=g(ke),he=C(Oe,2),ne=C(Ne,2),ge=g(ne),be=g(ge),Te=C(g(be),2),qe=g(Te),ce=C(be,2),pe=C(G,2),Ee=C(g(pe),2),Fe=g(Ee),et=g(Fe),rt=g(et),Le=C(g(rt),2),ze=g(Le),je=C(rt,2),Je=C(Fe,2),ct=g(Je),He=g(ct),ht=C(g(He),2),Bt=g(ht),bt=C(He,2),Zt=C(pe,2),jt=C(g(Zt),2),qt=g(jt),st=C(jt,2);{var Ve=ee=>{var Ie=Gb(),j=g(Ie),re=C(g(j),2),we=g(re),Pe=C(j,2);K((Ze,Et)=>{X(we,Ze),Dt(Pe,(o(d),m(()=>o(d).eager_eot_threshold??.5))),Pe.disabled=o(h),xn(Pe,`--slider-fill: ${Et??""}`)},[()=>(o(d),m(()=>o(d).eager_eot_threshold?.toFixed(2)??"—")),()=>(o(d),m(()=>Y(o(d).eager_eot_threshold??.5,.3,.9)))]),W("input",Pe,Ze=>{w(d,{...o(d),eager_eot_threshold:parseFloat(Ze.target.value)}),A()}),k(ee,Ie)};$(st,ee=>{o(d),m(()=>o(d).eager_eot_threshold!==null)&&ee(Ve)})}var Ft=C(Zt,2),ye=C(g(Ft),2),Se=g(ye),ut=g(Se),Yt=C(Se,2),At=g(Yt),Nt=g(At),bn=C(g(Nt),2),ur=g(bn),In=C(Nt,2),Me=C(Yt,2);let Re;var Mt=g(Me),zt=g(Mt),rn=C(g(zt),2),tt=g(rn),Ge=C(zt,2),mt=C(Ft,2),Lt=C(g(mt),2),Ot=g(Lt),ot=g(Ot),Pt=C(Ot,2);{var Ce=ee=>{var Ie=Zb(),j=me(Ie),re=g(j),we=C(g(re),2);_t(we,5,()=>o(u),zn,(mn,$t)=>{var _n=Kb(),gr=g(_n),br={};K(()=>{X(gr,(o($t),m(()=>o($t).name))),br!==(br=(o($t),m(()=>o($t).id)))&&(_n.value=(_n.__value=(o($t),m(()=>o($t).id)))??"")}),k(mn,_n)});var Pe;jn(we);var Ze=C(j,2),Et=g(Ze),Ue=g(Et),ft=C(g(Ue),2),St=g(ft),$e=C(Ue,2);K((mn,$t)=>{we.disabled=o(h),Pe!==(Pe=(o(d),m(()=>o(d).voice)))&&(we.value=(we.__value=(o(d),m(()=>o(d).voice)))??"",kn(we,(o(d),m(()=>o(d).voice)))),X(St,`${mn??""}x`),Dt($e,(o(d),m(()=>o(d).speed))),$e.disabled=o(h),xn($e,`--slider-fill: ${$t??""}`)},[()=>(o(d),m(()=>o(d).speed.toFixed(1))),()=>(o(d),m(()=>Y(o(d).speed,.5,2)))]),W("change",we,mn=>{w(d,{...o(d),voice:mn.target.value}),A()}),W("input",$e,mn=>{w(d,{...o(d),speed:parseFloat(mn.target.value)}),A()}),k(ee,Ie)};$(Pt,ee=>{o(d),m(()=>o(d).enabled)&&ee(Ce)})}var M=C(mt,2),te=C(g(M),2);K((ee,Ie,j,re,we,Pe,Ze,Et,Ue,ft,St,$e)=>{z.disabled=o(h),le!==(le=(o(d),m(()=>o(d).llm_model)))&&(z.value=(z.__value=(o(d),m(()=>o(d).llm_model)))??"",kn(z,(o(d),m(()=>o(d).llm_model)))),_e.disabled=o(h),Dt(_e,(o(d),m(()=>o(d).system_prompt??""))),X(We,ee),Dt(he,(o(d),m(()=>o(d).temperature))),he.disabled=o(h),xn(he,`--slider-fill: ${Ie??""}`),X(qe,(o(d),m(()=>o(d).max_tokens))),Dt(ce,(o(d),m(()=>o(d).max_tokens))),ce.disabled=o(h),xn(ce,`--slider-fill: ${j??""}`),X(ze,re),Dt(je,(o(d),m(()=>o(d).eot_threshold))),je.disabled=o(h),xn(je,`--slider-fill: ${we??""}`),X(Bt,`${o(d),m(()=>o(d).eot_timeout_ms)??""}ms`),Dt(bt,(o(d),m(()=>o(d).eot_timeout_ms))),bt.disabled=o(h),xn(bt,`--slider-fill: ${Pe??""}`),Gt(qt,(o(d),m(()=>o(d).eager_eot_threshold!==null))),qt.disabled=o(h),Gt(ut,(o(d),m(()=>o(d).conversation_mode))),ut.disabled=o(h),X(ur,`${Ze??""}s`),Dt(In,(o(d),m(()=>o(d).idle_return_delay_ms))),In.disabled=o(h),xn(In,`--slider-fill: ${Et??""}`),Re=Ct(Me,1,"reasoning-field svelte-10jke8k",null,Re,Ue),X(tt,`${ft??""}s`),Dt(Ge,(o(d),m(()=>o(d).conversation_timeout_seconds))),Ge.disabled=(o(h),o(d),m(()=>o(h)||!o(d).conversation_mode)),xn(Ge,`--slider-fill: ${St??""}`),Gt(ot,(o(d),m(()=>o(d).enabled))),ot.disabled=o(h),te.disabled=o(h),Dt(te,$e)},[()=>(o(d),m(()=>o(d).temperature.toFixed(1))),()=>(o(d),m(()=>Y(o(d).temperature,0,2))),()=>(o(d),m(()=>Y(o(d).max_tokens,50,2e3))),()=>(o(d),m(()=>o(d).eot_threshold.toFixed(2))),()=>(o(d),m(()=>Y(o(d).eot_threshold,.5,.9))),()=>(o(d),m(()=>Y(o(d).eot_timeout_ms,500,1e4))),()=>(o(d),m(()=>(o(d).idle_return_delay_ms/1e3).toFixed(0))),()=>(o(d),m(()=>Y(o(d).idle_return_delay_ms,1e3,6e4))),()=>({"disabled-field":!o(d).conversation_mode}),()=>(o(d),m(()=>o(d).conversation_timeout_seconds.toFixed(0))),()=>(o(d),m(()=>Y(o(d).conversation_timeout_seconds,1,60))),()=>(o(d),m(()=>o(d).keyterms.join(` +`)))]),W("change",z,ee=>{w(d,{...o(d),llm_model:ee.target.value}),A()}),W("input",he,ee=>{w(d,{...o(d),temperature:parseFloat(ee.target.value)}),A()}),W("input",ce,ee=>{w(d,{...o(d),max_tokens:parseInt(ee.target.value,10)}),A()}),W("input",je,ee=>{w(d,{...o(d),eot_threshold:parseFloat(ee.target.value)}),A()}),W("input",bt,ee=>{w(d,{...o(d),eot_timeout_ms:parseInt(ee.target.value,10)}),A()}),W("change",qt,ee=>{const Ie=ee.target.checked;w(d,{...o(d),eager_eot_threshold:Ie?.5:null}),A()}),W("change",ut,ee=>{w(d,{...o(d),conversation_mode:ee.target.checked}),A()}),W("input",In,ee=>{w(d,{...o(d),idle_return_delay_ms:parseInt(ee.target.value,10)}),A()}),W("input",Ge,ee=>{w(d,{...o(d),conversation_timeout_seconds:parseFloat(ee.target.value)}),A()}),W("change",ot,ee=>{w(d,{...o(d),enabled:ee.target.checked}),A()}),W("input",te,ee=>{const j=ee.target.value.split(` +`).map(re=>re.trim()).filter(re=>re.length>0).slice(0,100);w(d,{...o(d),keyterms:j}),A()}),k(L,U)};$(de,L=>{o(p)?L(ae):L(ue,!1)})}k(V,se)},$$slots:{default:!0,heading:(V,J)=>{var se=Jb();k(V,se)},actions:(V,J)=>{var se=Xb();K(()=>se.disabled=o(h)||o(p)),W("click",se,Z),k(V,se)},footer:(V,J)=>{var se=r_(),de=g(se);{var ae=L=>{var U=Qb(),G=g(U);K(()=>X(G,o(x))),k(L,U)},ue=L=>{var U=Ae(),G=me(U);{var ie=q=>{var z=e_();k(q,z)},H=q=>{var z=Ae(),le=me(z);{var xe=B=>{var _e=t_();k(B,_e)},De=B=>{var _e=n_();k(B,_e)};$(le,B=>{o(v)?B(xe):B(De,!1)},!0)}k(q,z)};$(G,q=>{o(h)?q(ie):q(H,!1)},!0)}k(L,U)};$(de,L=>{o(x)?L(ae):L(ue,!1)})}k(V,se)}}})};$(N,I=>{c()&&I(Q)})}k(e,T),lt(),s()}async function a_(){const e=await fetch(`${yt}/api/clients/cli/llm`);if(!e.ok)throw new Error(`Failed to fetch CLI LLM settings: ${e.statusText}`);return e.json()}async function u_(e){const t=await fetch(`${yt}/api/clients/cli/llm`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to update CLI LLM settings: ${t.statusText}`);return t.json()}async function o_(){const e=await fetch(`${yt}/api/clients/cli/reset`,{method:"POST"});if(!e.ok)throw new Error(`Failed to reset CLI settings: ${e.statusText}`);return e.json()}async function i_(){const e=await fetch(`${yt}/api/clients/cli/presets`);if(!e.ok)throw new Error(`Failed to fetch CLI presets: ${e.statusText}`);return e.json()}async function l_(e){const t=await fetch(`${yt}/api/clients/cli/presets`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error(`Failed to create CLI preset: ${t.statusText}`);return t.json()}async function c_(e){const t=await fetch(`${yt}/api/clients/cli/presets/by-name/${e}`,{method:"DELETE"});if(!t.ok)throw new Error(`Failed to delete CLI preset: ${t.statusText}`)}async function d_(e){const t=await fetch(`${yt}/api/clients/cli/presets/by-name/${e}/apply`,{method:"POST"});if(!t.ok)throw new Error(`Failed to apply CLI preset: ${t.statusText}`);return t.json()}const Io={model:"openai/gpt-4o-mini",system_prompt:`You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks. + +PRINCIPLES: +1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself. +2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access. +3. READ before WRITE. Query current state before changing anything. Never assume. +4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists. +5. BACKUP before destructive edits. Verify the backup exists before proceeding. +6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing. + +WHEN THINGS FAIL: +- Read both stdout and stderr carefully - they usually explain why. +- Explain the root cause briefly. +- Offer what YOU can try next (retry, workaround, different approach). +- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions. + +Workflow: get profile → query state → act → verify → report.`,temperature:.7,max_tokens:1e3};function f_(){const e=Tt(Io);let t=!1,n=!1;async function r(){if(n)return nt(e);n=!0;try{const i=await a_(),l={model:i.model,system_prompt:i.system_prompt,temperature:i.temperature,max_tokens:i.max_tokens};return e.set(l),t=!0,l}catch(i){return console.error("Failed to load CLI settings:",i),nt(e)}finally{n=!1}}async function s(i){const l=nt(e);e.set({...l,...i,model:i.model??l.model,system_prompt:i.system_prompt??l.system_prompt,temperature:i.temperature??l.temperature,max_tokens:i.max_tokens??l.max_tokens});try{const c=await u_(i);e.update(f=>({...f,model:c.model,system_prompt:c.system_prompt,temperature:c.temperature,max_tokens:c.max_tokens}))}catch(c){throw console.error("Failed to update CLI LLM settings:",c),e.set(l),c}}async function a(){try{try{await d_("default"),await r();return}catch{console.log("No user default found, performing hard reset")}await o_(),await r(),await s(Io)}catch(i){throw console.error("Failed to reset CLI settings:",i),i}}async function u(){const i=nt(e);try{(await i_()).presets.some(c=>c.name==="default")&&await c_("default"),await l_({name:"default",llm:{model:i.model,system_prompt:i.system_prompt,temperature:i.temperature,max_tokens:i.max_tokens}})}catch(l){throw console.error("Failed to save as default:",l),l}}return{subscribe:e.subscribe,load:r,updateLlm:s,reset:a,saveAsDefault:u}}const na=f_();var p_=F('

                                      Loading settings…

                                      '),h_=F(""),m_=F('
                                      Language Model Configure the AI model and behavior for the CLI.
                                      Temperature
                                      0 (focused) 2 (creative)
                                      Max Tokens
                                      50 4000
                                      '),v_=F('

                                      CLI Settings

                                      Configure the command-line assistant.

                                      ',1),g_=F('
                                      '),b_=F(" "),__=F('Saving changes…'),y_=F('Pending changes; closing this modal will save.'),x_=F('Changes save on close. "Set as default" updates the reset target.'),k_=F('
                                      ');function w_(e,t){it(t,!1);const n=()=>at(a,"$filtered",r),[r,s]=Hn(),{filtered:a}=Qn;let u=oe(t,"open",8,!1);const i=It();let l=R({...Io}),c=R(!1),f=R(!1),d=R(!0),v=R(null),h=R(!1),p=!1;async function x(){w(d,!0);try{const[Y]=await Promise.all([na.load(),Qn.loadModels()]);w(l,{...Y})}catch{w(v,"Failed to load settings")}finally{w(d,!1)}}function y(){p||o(f)||(p=!0,(async()=>(await E()&&i("close"),p=!1))())}function _(){w(c,!0),w(v,null)}async function E(){if(!o(c))return!0;w(f,!0),w(v,null);try{return await na.updateLlm({model:o(l).model,system_prompt:o(l).system_prompt,temperature:o(l).temperature,max_tokens:o(l).max_tokens}),w(c,!1),!0}catch(Y){const T=Y instanceof Error?Y.message:"Failed to save settings.";return w(v,T),!1}finally{w(f,!1)}}async function S(){w(f,!0);try{await na.reset();const Y=await na.load();w(l,{...Y}),w(c,!1),w(v,null)}catch{w(v,"Failed to reset settings")}finally{w(f,!1)}}async function b(){w(f,!0);try{o(c)&&await E(),await na.saveAsDefault(),w(v,"Settings saved as new default")}catch{w(v,"Failed to save as default")}finally{w(f,!1)}}function D(Y,T,N){return`${(Y-T)/(N-T)*100}%`}ve(()=>(O(u()),o(h),o(c),o(f)),()=>{u()&&!o(h)?(w(h,!0),w(c,!1),w(f,!1),w(v,null),x()):!u()&&o(h)&&(w(h,!1),o(c)&&!o(f)&&E())}),Rt(),dt();var A=Ae(),P=me(A);{var Z=Y=>{vr(Y,{get open(){return u()},labelledBy:"cli-settings-title",closeLabel:"Close CLI settings",$$events:{close:()=>void y()},children:(T,N)=>{var Q=Ae(),I=me(Q);{var V=se=>{var de=p_();k(se,de)},J=se=>{var de=m_(),ae=g(de),ue=C(g(ae),2),L=g(ue),U=C(g(L),2);_t(U,5,n,he=>he.id,(he,ne)=>{var ge=h_(),be=g(ge),Te={};K(()=>{X(be,(o(ne),m(()=>o(ne).name??o(ne).id))),Te!==(Te=(o(ne),m(()=>o(ne).id)))&&(ge.value=(ge.__value=(o(ne),m(()=>o(ne).id)))??"")}),k(he,ge)});var G;jn(U);var ie=C(L,2),H=C(g(ie),2);Jr(H,(he,ne)=>ci?.(he),()=>o(l).system_prompt),qn(()=>W("input",H,he=>{w(l,{...o(l),system_prompt:he.target.value||null}),_()}));var q=C(ie,2),z=g(q),le=g(z),xe=C(g(le),2),De=g(xe),B=C(le,2),_e=C(q,2),Ne=g(_e),Be=g(Ne),Oe=C(g(Be),2),ke=g(Oe),We=C(Be,2);K((he,ne,ge)=>{U.disabled=o(f),G!==(G=(o(l),m(()=>o(l).model)))&&(U.value=(U.__value=(o(l),m(()=>o(l).model)))??"",kn(U,(o(l),m(()=>o(l).model)))),H.disabled=o(f),Dt(H,(o(l),m(()=>o(l).system_prompt??""))),X(De,he),Dt(B,(o(l),m(()=>o(l).temperature??.7))),B.disabled=o(f),xn(B,`--slider-fill: ${ne??""}`),X(ke,(o(l),m(()=>o(l).max_tokens??1e3))),Dt(We,(o(l),m(()=>o(l).max_tokens??1e3))),We.disabled=o(f),xn(We,`--slider-fill: ${ge??""}`)},[()=>(o(l),m(()=>o(l).temperature?.toFixed(1)??"0.7")),()=>(o(l),m(()=>D(o(l).temperature??.7,0,2))),()=>(o(l),m(()=>D(o(l).max_tokens??1e3,50,4e3)))]),W("change",U,he=>{w(l,{...o(l),model:he.target.value}),_()}),W("input",B,he=>{w(l,{...o(l),temperature:parseFloat(he.target.value)}),_()}),W("input",We,he=>{w(l,{...o(l),max_tokens:parseInt(he.target.value,10)}),_()}),k(se,de)};$(I,se=>{o(d)?se(V):se(J,!1)})}k(T,Q)},$$slots:{default:!0,heading:(T,N)=>{var Q=v_();k(T,Q)},actions:(T,N)=>{var Q=g_(),I=g(Q),V=C(I,2),J=g(V);K(()=>{I.disabled=o(f)||o(d),V.disabled=o(f)||o(d),X(J,o(f)?"Saving…":"Set as default")}),W("click",I,S),W("click",V,()=>void b()),k(T,Q)},footer:(T,N)=>{var Q=k_(),I=g(Q);{var V=se=>{var de=b_();let ae;var ue=g(de);K(L=>{ae=Ct(de,1,"status",null,ae,L),X(ue,o(v))},[()=>({error:o(v).includes("Failed")})]),k(se,de)},J=se=>{var de=Ae(),ae=me(de);{var ue=U=>{var G=__();k(U,G)},L=U=>{var G=Ae(),ie=me(G);{var H=z=>{var le=y_();k(z,le)},q=z=>{var le=x_();k(z,le)};$(ie,z=>{o(c)?z(H):z(q,!1)},!0)}k(U,G)};$(ae,U=>{o(f)?U(ue):U(L,!1)},!0)}k(se,de)};$(I,se=>{o(v)?se(V):se(J,!1)})}k(T,Q)}}})};$(P,Y=>{u()&&Y(Z)})}k(e,A),lt(),s()}const tu=["Google Calendar","Google Tasks","Gmail","Google Drive"],co={loading:!1,authorizing:!1,authorized:!1,userEmail:null,expiresAt:null,services:[...tu],error:null};function E_(e){return new Promise((t,n)=>{const r=u=>{const i=u.data;if(!i||typeof i!="object"||i.source!=="google-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const f=typeof c=="string"?c:"Authorization failed.";n(new Error(f))}},s=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(s)};window.addEventListener("message",r)})}function S_(){const e=Tt({...co});async function t(){e.update(s=>({...s,loading:!0,error:null}));try{const s=await N0();e.set({loading:!1,authorizing:!1,authorized:s.authorized,userEmail:s.user_email??null,expiresAt:s.expires_at??null,services:s.services&&s.services.length>0?s.services:[...tu],error:null})}catch(s){const a=s instanceof Error?s.message:"Failed to check Google authorization status.";e.set({...co,services:[...tu],loading:!1,error:a})}}function n(){e.set({...co,services:[...tu]})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Google authorization is only available in a browser environment."})),!1;if(nt(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await L0({}),u=window.open(a.auth_url,"google-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!u)throw new Error("Popup was blocked. Allow pop-ups and try again.");return u.focus(),await E_(u),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const u=a instanceof Error?a.message:"Failed to start Google authorization.";return e.update(i=>({...i,authorizing:!1,error:u})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}const Wa={loading:!1,refreshing:!1,saving:!1,dirty:!1,error:null,saveError:null,servers:[],updatedAt:null,pending:{},pendingChanges:{}};function Tl(e,t){return{...e,servers:t.servers??[],updatedAt:t.updated_at??null,error:null,saveError:null}}function C_(){const e=Tt({...Wa});async function t(){e.set({...Wa,loading:!0});try{const h=await F0();e.set({...Wa,servers:h.servers,updatedAt:h.updated_at??null,loading:!1})}catch(h){const p=h instanceof Error?h.message:"Failed to load MCP servers.";e.set({...Wa,loading:!1,error:p})}}function n(h,p){e.update(x=>{const y=x.servers.map(E=>E.id===h?{...E,enabled:p}:E),_={...x.pendingChanges,[h]:{...x.pendingChanges[h]??{},enabled:p}};return{...x,servers:y,dirty:!0,saveError:null,pendingChanges:_}})}async function r(h,p,x){e.update(y=>{const _=y.servers.map(E=>{if(E.id!==h)return E;const S={...E.client_enabled??{}};return S[p]=x,{...E,client_enabled:S}});return{...y,servers:_,pending:{...y.pending,[h]:!0},saveError:null}});try{const y=await I0(h,p,x);e.update(_=>{const E={..._.pending};return delete E[h],{..._,servers:y.servers??_.servers,updatedAt:y.updated_at??_.updatedAt,pending:E}})}catch(y){const _=y instanceof Error?y.message:"Failed to update MCP server client enabled.";e.update(E=>{const S={...E.pending};return delete S[h],{...E,pending:S,saveError:_}})}}function s(h,p){r(h,"kiosk",p)}function a(h,p){r(h,"svelte",p)}function u(h,p){r(h,"cli",p)}function i(h,p,x){e.update(y=>{const _=y.servers.find(A=>A.id===h);if(!_)return y;const E=new Set(_.disabled_tools??[]);x?E.delete(p):E.add(p);const S=Array.from(E).sort(),b=y.servers.map(A=>A.id!==h?A:{...A,disabled_tools:S,tools:A.tools.map(P=>P.name===p?{...P,enabled:x}:P)}),D={...y.pendingChanges,[h]:{...y.pendingChanges[h]??{},disabled_tools:S}};return{...y,servers:b,dirty:!0,saveError:null,pendingChanges:D}})}function l(h,p,x){e.update(y=>{const _=y.servers.find(D=>D.id===h);if(!_)return y;const E={..._.env??{},...y.pendingChanges[h]?.env??{}};E[p]=x;const S=y.servers.map(D=>D.id===h?{...D,env:E}:D),b={...y.pendingChanges,[h]:{...y.pendingChanges[h]??{},env:E}};return{...y,servers:S,dirty:!0,saveError:null,pendingChanges:b}})}async function c(){e.update(h=>({...h,refreshing:!0,error:null}));try{const h=await P0();e.update(p=>({...Tl(p,h),refreshing:!1}))}catch(h){const p=h instanceof Error?h.message:"Failed to refresh MCP servers.";e.update(x=>({...x,refreshing:!1,saveError:p}))}}function f(h){return nt(e).servers.find(x=>x.id===h)}function d(h){return!!nt(e).pending[h]}async function v(){const h=nt(e);if(!h.dirty)return!0;const p=Object.entries(h.pendingChanges);if(!p.length)return e.update(y=>({...y,dirty:!1})),!0;e.update(y=>({...y,saving:!0,saveError:null}));let x=!0;for(const[y,_]of p){e.update(E=>({...E,pending:{...E.pending,[y]:!0}}));try{const E=await M0(y,_);e.update(S=>{const b={...S.pending};delete b[y];const D={...S.pendingChanges};delete D[y];const A=Tl(S,E),P=Object.keys(D).length>0;return{...A,pending:b,pendingChanges:D,dirty:P}})}catch(E){let S="Failed to update MCP server.";if(E instanceof Error)S=E.message;else if(typeof E=="object"&&E!==null){const b=E;S=String(b.detail||b.message||b.error||JSON.stringify(E))}else typeof E=="string"&&(S=E);S.includes("[object Object]")&&(S="Failed to save MCP server settings. Check server logs for details."),e.update(b=>{const D={...b.pending};return delete D[y],{...b,pending:D,saving:!1,saveError:S}}),x=!1;break}}return x?(e.update(y=>({...y,saving:!1,dirty:!1})),!0):(e.update(y=>({...y,saving:!1,dirty:!0})),!1)}return{subscribe:e.subscribe,load:t,refresh:c,setServerEnabled:n,setClientEnabled:r,setKioskEnabled:s,setFrontendEnabled:a,setCliEnabled:u,setToolEnabled:i,setServerEnv:l,getServer:f,isPending:d,flushPending:v}}const Fl={loading:!1,saving:!1,refreshing:!1,configured:!1,email:null,error:null};function A_(){const e=Tt({...Fl});async function t(){e.update(a=>({...a,loading:!0,error:null}));try{const a=await O0();e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null})}catch(a){const u=a instanceof Error?a.message:"Failed to check Monarch status.";e.set({...Fl,loading:!1,error:u})}}async function n(a){e.update(u=>({...u,saving:!0,error:null}));try{const u=await $0(a);return e.set({loading:!1,saving:!1,refreshing:!1,configured:u.configured,email:u.email,error:null}),!0}catch(u){const i=u instanceof Error?u.message:"Failed to save Monarch credentials.";return e.update(l=>({...l,saving:!1,error:i})),!1}}async function r(){e.update(a=>({...a,saving:!0,error:null}));try{const a=await R0();return e.set({loading:!1,saving:!1,refreshing:!1,configured:a.configured,email:a.email,error:null}),!0}catch(a){const u=a instanceof Error?a.message:"Failed to remove Monarch credentials.";return e.update(i=>({...i,saving:!1,error:u})),!1}}async function s(){e.update(a=>({...a,refreshing:!0,error:null}));try{return await new Promise(a=>setTimeout(a,2e3)),e.update(a=>({...a,refreshing:!1})),{success:!0,message:"Account data refreshed successfully"}}catch(a){const u=a instanceof Error?a.message:"Failed to refresh account data.";return e.update(i=>({...i,refreshing:!1,error:u})),{success:!1,message:u}}}return{subscribe:e.subscribe,load:t,save:n,remove:r,refresh:s}}const fo={loading:!1,authorizing:!1,authorized:!1,userEmail:null,error:null};function D_(e){return new Promise((t,n)=>{const r=u=>{const i=u.data;if(!i||typeof i!="object"||i.source!=="spotify-auth")return;a();const l=i.status,c=i.message;if(l==="success")t();else{const f=typeof c=="string"?c:"Authorization failed.";n(new Error(f))}},s=window.setInterval(()=>{e.closed&&(a(),n(new Error("The authorization window was closed before completion.")))},500),a=()=>{window.removeEventListener("message",r),window.clearInterval(s)};window.addEventListener("message",r)})}function T_(){const e=Tt({...fo});async function t(){e.update(s=>({...s,loading:!0,error:null}));try{const s=await z0();e.set({loading:!1,authorizing:!1,authorized:s.authorized,userEmail:s.user_email??null,error:null})}catch(s){const a=s instanceof Error?s.message:"Failed to check Spotify authorization status.";e.set({...fo,loading:!1,error:a})}}function n(){e.set({...fo})}async function r(){if(typeof window>"u")return e.update(a=>({...a,error:"Spotify authorization is only available in a browser environment."})),!1;if(nt(e).authorizing)return!1;e.update(a=>({...a,authorizing:!0,error:null}));try{const a=await U0({}),u=window.open(a.auth_url,"spotify-oauth","width=520,height=640,noopener=yes,noreferrer=yes");if(!u)throw new Error("Popup was blocked. Allow pop-ups and try again.");return u.focus(),await D_(u),await t(),e.update(i=>({...i,authorizing:!1})),!0}catch(a){const u=a instanceof Error?a.message:"Failed to start Spotify authorization.";return e.update(i=>({...i,authorizing:!1,error:u})),!1}}return{subscribe:e.subscribe,load:t,reset:n,authorize:r}}var F_=F('

                                      Checking Google authorization...

                                      '),M_=F('

                                      ',1),P_=F('

                                      '),I_=F('

                                      Access will refresh automatically.

                                      '),N_=F('

                                      Connected as .

                                      ',1),L_=F('

                                      Google services are not connected.

                                      '),O_=F("
                                    • "),$_=F('

                                      Checking Spotify authorization...

                                      '),R_=F('

                                      ',1),z_=F('

                                      Connected as .

                                      Access will refresh automatically.

                                      ',1),U_=F('

                                      Spotify is not connected.

                                      '),B_=F(''),j_=F(''),q_=F('

                                      Checking Monarch status...

                                      '),H_=F('

                                      Connected as .

                                      '),W_=Go(''),V_=Go(''),G_=F('

                                      '),K_=F(`

                                      If you already use an app, you must reset MFA in Monarch + Settings to see the secret key again. Enter the new key here AND in + your app.

                                      `),Z_=F('

                                      '),Y_=F('

                                      Toggle integrations available to the assistant.

                                      '),J_=F('

                                      Loading MCP servers...

                                      '),X_=F('

                                      '),Q_=F('

                                      No MCP servers configured.

                                      '),e3=F(' ',1),t3=F(' ',1),n3=F(""),r3=F(`
                                      This machine Select which computer you're on. Sets host profile + and storage path.
                                      `),s3=F('
                                    • '),a3=F('
                                        '),u3=F('

                                        Tool list unavailable.

                                        '),o3=F('

                                        '),i3=F('
                                        '),l3=F('
                                      • '),c3=F('
                                          '),d3=F('

                                          '),f3=F('

                                          Pending changes save when you close this modal.

                                          '),p3=F(" ",1),h3=F(`

                                          Google services

                                          Connect Calendar, Tasks, Gmail, and Drive with a single consent.

                                            Click "Connect Google Services" to authorize these integrations for + the assistant.

                                            Spotify

                                            Connect Spotify for music control and playback.

                                            Click "Connect Spotify" to authorize music control and playback + features.

                                            Monarch Money

                                            Connect your Monarch Money account.

                                            Server status

                                            `,1),m3=F('

                                            MCP servers

                                            Manage MCP server availability, tools, and client access.

                                            ',1),v3=F('

                                            Resolve the errors above before closing.

                                            '),g3=F('

                                            Saving changes...

                                            '),b3=F('

                                            Pending changes; closing this modal will save.

                                            '),_3=F('

                                            Changes save when you close this modal.

                                            '),y3=F('
                                            ');function x3(e,t){it(t,!1);const n=()=>at(f,"$mcpServers",u),r=()=>at(d,"$googleAuth",u),s=()=>at(h,"$spotifyAuth",u),a=()=>at(v,"$monarchAuth",u),[u,i]=Hn();let l=oe(t,"open",8,!1);const c=It(),f=C_(),d=S_(),v=A_(),h=T_();let p=R(!1),x=!1,y=R(new Set),_=R(""),E=R(""),S=R(""),b=R(!1);const D=[{id:"xps13",label:"Dell XPS 13",path:"/home/human/GoogleDrive/host_profiles"}];async function A(){await Promise.all([f.load(),d.load(),v.load(),h.load()])}async function P(){if(x||n().saving||r().authorizing)return;x=!0;const z=await f.flushPending(),le=nt(f);z&&!le.saveError&&c("close"),x=!1}function Z(z,le){const xe=D.find(De=>De.id===le);xe&&(J(z,"HOST_PROFILE_ID",xe.id),J(z,"HOST_ROOT_PATH",xe.path))}function Y(){!o(_)||!o(E)||v.save({email:o(_),password:o(E),mfa_secret:o(S)||null})}function T(z,le){n().saving||f.setServerEnabled(z,le)}function N(z,le){n().saving||f.setKioskEnabled(z,le)}function Q(z,le){n().saving||f.setFrontendEnabled(z,le)}function I(z,le){n().saving||f.setCliEnabled(z,le)}function V(z,le,xe){n().saving||f.setToolEnabled(z,le,xe)}function J(z,le,xe){n().saving||f.setServerEnv(z,le,xe)}function se(){const z=nt(f);z.dirty||z.saving||f.refresh()}function de(){r().loading||r().authorizing||d.load()}async function ae(){r().authorizing||await d.authorize()}function ue(){s().loading||s().authorizing||h.load()}async function L(){s().authorizing||await h.authorize()}function U(z){if(!z)return null;try{const le=new Date(z);return Number.isNaN(le.getTime())?z:new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",year:"numeric",month:"short",day:"2-digit"}).format(le)}catch(le){return console.warn("Failed to format timestamp",le),z}}function G(z){const le=new Set(o(y));le.has(z)?le.delete(z):le.add(z),w(y,le)}ve(()=>(O(l()),o(p)),()=>{l()&&!o(p)?(w(p,!0),A()):!l()&&o(p)&&(w(p,!1),d.reset(),h.reset(),w(y,new Set))}),Rt(),dt();var ie=Ae(),H=me(ie);{var q=z=>{{let le=vt(()=>(n(),r(),m(()=>n().saving||r().authorizing)));vr(z,{get open(){return l()},labelledBy:"mcp-settings-title",modalClass:"mcp-settings-modal",bodyClass:"system-settings-body",layerClass:"system-settings-layer",closeLabel:"Close MCP servers",get closeDisabled(){return o(le)},$$events:{close:()=>void P()},children:(xe,De)=>{var B=h3(),_e=me(B),Ne=g(_e),Be=C(g(Ne),2),Oe=g(Be),ke=g(Oe),We=C(Ne,2),he=g(We);{var ne=Me=>{var Re=F_();k(Me,Re)},ge=Me=>{var Re=Ae(),Mt=me(Re);{var zt=tt=>{var Ge=M_(),mt=me(Ge),Lt=g(mt),Ot=C(mt,2),ot=g(Ot);K(()=>{X(Lt,(r(),m(()=>r().error))),ot.disabled=(r(),m(()=>r().loading||r().authorizing))}),W("click",ot,de),k(tt,Ge)},rn=tt=>{var Ge=Ae(),mt=me(Ge);{var Lt=ot=>{var Pt=N_(),Ce=me(Pt),M=C(g(Ce)),te=g(M),ee=C(Ce,2);{var Ie=re=>{var we=P_(),Pe=g(we);K(Ze=>X(Pe,`Current token expires ${Ze??""}.`),[()=>(r(),m(()=>U(r().expiresAt)??"soon"))]),k(re,we)},j=re=>{var we=I_();k(re,we)};$(ee,re=>{r(),m(()=>r().expiresAt)?re(Ie):re(j,!1)})}K(()=>X(te,(r(),m(()=>r().userEmail)))),k(ot,Pt)},Ot=ot=>{var Pt=L_();k(ot,Pt)};$(mt,ot=>{r(),m(()=>r().authorized)?ot(Lt):ot(Ot,!1)},!0)}k(tt,Ge)};$(Mt,tt=>{r(),m(()=>r().error)?tt(zt):tt(rn,!1)},!0)}k(Me,Re)};$(he,Me=>{r(),m(()=>r().loading)?Me(ne):Me(ge,!1)})}var be=C(he,2);_t(be,5,()=>(r(),m(()=>r().services)),zn,(Me,Re)=>{var Mt=O_(),zt=g(Mt);K(()=>X(zt,o(Re))),k(Me,Mt)});var Te=C(_e,2),qe=g(Te),ce=C(g(qe),2),pe=g(ce),Ee=g(pe),Fe=C(qe,2),et=g(Fe);{var rt=Me=>{var Re=$_();k(Me,Re)},Le=Me=>{var Re=Ae(),Mt=me(Re);{var zt=tt=>{var Ge=R_(),mt=me(Ge),Lt=g(mt),Ot=C(mt,2),ot=g(Ot);K(()=>{X(Lt,(s(),m(()=>s().error))),ot.disabled=(s(),m(()=>s().loading||s().authorizing))}),W("click",ot,ue),k(tt,Ge)},rn=tt=>{var Ge=Ae(),mt=me(Ge);{var Lt=ot=>{var Pt=z_(),Ce=me(Pt),M=C(g(Ce)),te=g(M);K(()=>X(te,(s(),m(()=>s().userEmail)))),k(ot,Pt)},Ot=ot=>{var Pt=U_();k(ot,Pt)};$(mt,ot=>{s(),m(()=>s().authorized)?ot(Lt):ot(Ot,!1)},!0)}k(tt,Ge)};$(Mt,tt=>{s(),m(()=>s().error)?tt(zt):tt(rn,!1)},!0)}k(Me,Re)};$(et,Me=>{s(),m(()=>s().loading)?Me(rt):Me(Le,!1)})}var ze=C(Te,2),je=g(ze),Je=C(g(je),2),ct=g(Je);{var He=Me=>{var Re=B_();K(()=>Re.disabled=(a(),m(()=>a().saving))),W("click",Re,()=>v.remove()),k(Me,Re)},ht=Me=>{var Re=j_(),Mt=g(Re);K(()=>{Re.disabled=(a(),o(_),o(E),m(()=>a().saving||!o(_)||!o(E))),X(Mt,(a(),m(()=>a().saving?"Saving...":"Connect")))}),W("click",Re,Y),k(Me,Re)};$(ct,Me=>{a(),m(()=>a().configured)?Me(He):Me(ht,!1)})}var Bt=C(je,2),bt=g(Bt);{var Zt=Me=>{var Re=q_();k(Me,Re)},jt=Me=>{var Re=Ae(),Mt=me(Re);{var zt=tt=>{var Ge=H_(),mt=C(g(Ge)),Lt=g(mt);K(()=>X(Lt,(a(),m(()=>a().email)))),k(tt,Ge)},rn=tt=>{var Ge=K_(),mt=g(Ge),Lt=C(g(mt)),Ot=C(mt,2),ot=C(g(Ot)),Pt=g(ot),Ce=C(Pt,2),M=g(Ce);{var te=Pe=>{var Ze=W_();k(Pe,Ze)},ee=Pe=>{var Ze=V_();k(Pe,Ze)};$(M,Pe=>{o(b)?Pe(te):Pe(ee,!1)})}var Ie=C(Ot,2),j=C(g(Ie)),re=C(Ie,4);{var we=Pe=>{var Ze=G_(),Et=g(Ze);K(()=>X(Et,(a(),m(()=>a().error)))),k(Pe,Ze)};$(re,Pe=>{a(),m(()=>a().error)&&Pe(we)})}K(()=>{fe(Pt,"type",o(b)?"text":"password"),fe(Ce,"title",o(b)?"Hide password":"Show password")}),pr(Lt,()=>o(_),Pe=>w(_,Pe)),pr(Pt,()=>o(E),Pe=>w(E,Pe)),W("click",Ce,()=>w(b,!o(b))),pr(j,()=>o(S),Pe=>w(S,Pe)),k(tt,Ge)};$(Mt,tt=>{a(),m(()=>a().configured)?tt(zt):tt(rn,!1)},!0)}k(Me,Re)};$(bt,Me=>{a(),m(()=>a().loading)?Me(Zt):Me(jt,!1)})}var qt=C(ze,2),st=g(qt),Ve=g(st),Ft=C(g(Ve),2);{var ye=Me=>{var Re=Z_(),Mt=g(Re);K(zt=>X(Mt,`Last updated ${zt??""}`),[()=>(n(),m(()=>U(n().updatedAt)??""))]),k(Me,Re)},Se=Me=>{var Re=Y_();k(Me,Re)};$(Ft,Me=>{n(),m(()=>n().updatedAt)?Me(ye):Me(Se,!1)})}var ut=C(Ve,2),Yt=g(ut),At=g(Yt),Nt=C(st,2),bn=g(Nt);{var ur=Me=>{var Re=J_();k(Me,Re)},In=Me=>{var Re=Ae(),Mt=me(Re);{var zt=tt=>{var Ge=X_(),mt=g(Ge);K(()=>X(mt,(n(),m(()=>n().error)))),k(tt,Ge)},rn=tt=>{var Ge=p3(),mt=me(Ge);{var Lt=te=>{var ee=Q_();k(te,ee)},Ot=te=>{var ee=c3();_t(ee,5,()=>(n(),m(()=>n().servers)),zn,(Ie,j)=>{var re=l3(),we=g(re),Pe=g(we),Ze=g(Pe),Et=g(Ze),Ue=C(Ze,2),ft=g(Ue);let St;var $e=g(ft),mn=C(ft,2);{var $t=Xe=>{var Xt=e3(),Nn=C(me(Xt),2),an=g(Nn);K(()=>{fe(Nn,"title",(o(j),m(()=>o(j).module))),X(an,`Module: ${o(j),m(()=>o(j).module)??""}`)}),k(Xe,Xt)},_n=Xe=>{var Xt=Ae(),Nn=me(Xt);{var an=Ln=>{var yr=t3(),Rr=C(me(yr),2),Qt=g(Rr);K((en,Vn)=>{fe(Rr,"title",en),X(Qt,`Command: ${Vn??""}`)},[()=>(o(j),m(()=>o(j).command.join(" "))),()=>(o(j),m(()=>o(j).command.join(" ")))]),k(Ln,yr)};$(Nn,Ln=>{o(j),m(()=>o(j).command?.length)&&Ln(an)},!0)}k(Xe,Xt)};$(mn,Xe=>{o(j),m(()=>o(j).module)?Xe($t):Xe(_n,!1)})}var gr=C(Pe,2),br=g(gr),as=g(br),Tu=C(as,2),Fu=g(Tu),us=C(br,2);let $s;var Rs=g(us),os=C(us,2);let zs;var Us=g(os),Bs=C(os,2);let Ia;var js=g(Bs),Lr=C(we,2),Na=g(Lr);{var Or=Xe=>{var Xt=r3(),Nn=g(Xt),an=C(g(Nn),2),Ln=g(an);Ln.value=Ln.__value="";var yr=C(Ln);_t(yr,1,()=>D,zn,(Qt,en)=>{var Vn=n3(),un=g(Vn),is={};K(()=>{X(un,(o(en),m(()=>o(en).label))),is!==(is=(o(en),m(()=>o(en).id)))&&(Vn.value=(Vn.__value=(o(en),m(()=>o(en).id)))??"")}),k(Qt,Vn)});var Rr;jn(an),K(()=>{an.disabled=(n(),o(j),m(()=>n().pending[o(j).id]||n().saving)),Rr!==(Rr=(o(j),m(()=>o(j).env?.HOST_PROFILE_ID??"")))&&(an.value=(an.__value=(o(j),m(()=>o(j).env?.HOST_PROFILE_ID??"")))??"",kn(an,(o(j),m(()=>o(j).env?.HOST_PROFILE_ID??""))))}),W("change",an,Qt=>Z(o(j).id,Qt.target.value)),k(Xe,Xt)};$(Na,Xe=>{o(j),m(()=>o(j).id==="shell-control")&&Xe(Or)})}var _r=C(Na,2);let qs;var Mu=g(_r),$r=g(Mu),Pu=C(_r,2);{var sn=Xe=>{var Xt=i3(),Nn=g(Xt);{var an=Qt=>{var en=a3();_t(en,5,()=>(o(j),m(()=>o(j).tools)),zn,(Vn,un)=>{var is=s3(),fi=g(is),pi=g(fi),Dd=g(pi),Td=C(pi,2),Fd=g(Td),Md=C(fi,2),La=g(Md),Pd=C(La,2),Id=g(Pd);K(()=>{fe(is,"data-disabled",(o(un),m(()=>!o(un).enabled))),X(Dd,(o(un),m(()=>o(un).name))),X(Fd,(o(un),m(()=>o(un).qualified_name))),Gt(La,(o(un),m(()=>o(un).enabled))),La.disabled=(o(j),n(),m(()=>!o(j).enabled||n().pending[o(j).id]||n().saving)),X(Id,(o(un),m(()=>o(un).enabled?"Enabled":"Disabled")))}),W("change",La,Nd=>V(o(j).id,o(un).name,Nd.target.checked)),k(Vn,is)}),k(Qt,en)},Ln=Qt=>{var en=u3();k(Qt,en)};$(Nn,Qt=>{o(j),m(()=>o(j).tools.length)?Qt(an):Qt(Ln,!1)})}var yr=C(Nn,2);{var Rr=Qt=>{var en=o3(),Vn=g(en);K(un=>X(Vn,`Disabled tool ids: ${un??""}`),[()=>(o(j),m(()=>o(j).disabled_tools.join(", ")))]),k(Qt,en)};$(yr,Qt=>{o(j),m(()=>o(j).disabled_tools.length)&&Qt(Rr)})}K(()=>fe(Xt,"id",`tools-${o(j),m(()=>o(j).id)??""}`)),k(Xe,Xt)};$(Pu,Xe=>{o(y),o(j),m(()=>o(y).has(o(j).id))&&Xe(sn)})}K((Xe,Xt,Nn,an,Ln,yr)=>{fe(re,"data-connected",(o(j),m(()=>o(j).connected))),fe(re,"data-pending",(n(),o(j),m(()=>n().pending[o(j).id]?"true":"false"))),fe(re,"data-dirty",(n(),o(j),m(()=>n().pendingChanges[o(j).id]?"true":"false"))),X(Et,(o(j),m(()=>o(j).id))),St=Ct(ft,1,"",null,St,Xe),X($e,(o(j),m(()=>o(j).connected?"Connected":"Offline"))),Gt(as,(o(j),m(()=>o(j).enabled))),as.disabled=(n(),o(j),m(()=>n().pending[o(j).id]||n().saving)),X(Fu,(o(j),m(()=>o(j).enabled?"Running":"Stopped"))),$s=Ct(us,1,"toggle frontend-toggle",null,$s,Xt),fe(us,"title",(o(j),m(()=>o(j).enabled?"Enable for main web frontend":"Server must be running"))),Gt(Rs,(o(j),m(()=>o(j).client_enabled?.svelte??!0))),Rs.disabled=(o(j),n(),m(()=>!o(j).enabled||n().pending[o(j).id]||n().saving)),zs=Ct(os,1,"toggle kiosk-toggle",null,zs,Nn),fe(os,"title",(o(j),m(()=>o(j).enabled?"Enable for kiosk voice assistant":"Server must be running"))),Gt(Us,(o(j),m(()=>o(j).client_enabled?.kiosk??!1))),Us.disabled=(o(j),n(),m(()=>!o(j).enabled||n().pending[o(j).id]||n().saving)),Ia=Ct(Bs,1,"toggle cli-toggle",null,Ia,an),fe(Bs,"title",(o(j),m(()=>o(j).enabled?"Enable for CLI client":"Server must be running"))),Gt(js,(o(j),m(()=>o(j).client_enabled?.cli??!1))),js.disabled=(o(j),n(),m(()=>!o(j).enabled||n().pending[o(j).id]||n().saving)),qs=Ct(_r,1,"tools-toggle",null,qs,Ln),fe(_r,"aria-expanded",yr),fe(_r,"aria-controls",`tools-${o(j),m(()=>o(j).id)??""}`),X($r,`${o(j),m(()=>o(j).tool_count)??""} tool${o(j),m(()=>o(j).tool_count===1?"":"s")??""} available`)},[()=>({connected:o(j).connected,offline:!o(j).connected}),()=>({"toggle-disabled":!o(j).enabled}),()=>({"toggle-disabled":!o(j).enabled}),()=>({"toggle-disabled":!o(j).enabled}),()=>({open:o(y).has(o(j).id)}),()=>(o(y),o(j),m(()=>o(y).has(o(j).id)))]),W("change",as,Xe=>T(o(j).id,Xe.target.checked)),W("change",Rs,Xe=>Q(o(j).id,Xe.target.checked)),W("change",Us,Xe=>N(o(j).id,Xe.target.checked)),W("change",js,Xe=>I(o(j).id,Xe.target.checked)),W("click",_r,()=>G(o(j).id)),k(Ie,re)}),k(te,ee)};$(mt,te=>{n(),m(()=>!n().servers.length)?te(Lt):te(Ot,!1)})}var ot=C(mt,2);{var Pt=te=>{var ee=d3(),Ie=g(ee);K(()=>X(Ie,(n(),m(()=>n().saveError)))),k(te,ee)};$(ot,te=>{n(),m(()=>n().saveError)&&te(Pt)})}var Ce=C(ot,2);{var M=te=>{var ee=f3();k(te,ee)};$(Ce,te=>{n(),m(()=>n().dirty)&&te(M)})}k(tt,Ge)};$(Mt,tt=>{n(),m(()=>n().error)?tt(zt):tt(rn,!1)},!0)}k(Me,Re)};$(bn,Me=>{n(),m(()=>n().loading)?Me(ur):Me(In,!1)})}K(()=>{Oe.disabled=(r(),m(()=>r().loading||r().authorizing)),X(ke,(r(),m(()=>r().authorizing?"Authorizing...":r().authorized?"Reconnect Google Services":"Connect Google Services"))),pe.disabled=(s(),m(()=>s().loading||s().authorizing)),X(Ee,(s(),m(()=>s().authorizing?"Authorizing...":s().authorized?"Reconnect Spotify":"Connect Spotify"))),Yt.disabled=(n(),m(()=>n().refreshing||n().saving||n().dirty)),X(At,(n(),m(()=>n().refreshing?"Refreshing...":"Refresh")))}),W("click",Oe,()=>void ae()),W("click",pe,()=>void L()),W("click",Yt,se),k(xe,B)},$$slots:{default:!0,heading:(xe,De)=>{var B=m3();k(xe,B)},footer:(xe,De)=>{var B=y3(),_e=g(B);{var Ne=Oe=>{var ke=v3();k(Oe,ke)},Be=Oe=>{var ke=Ae(),We=me(ke);{var he=ge=>{var be=g3();k(ge,be)},ne=ge=>{var be=Ae(),Te=me(be);{var qe=pe=>{var Ee=b3();k(pe,Ee)},ce=pe=>{var Ee=_3();k(pe,Ee)};$(Te,pe=>{n(),m(()=>n().dirty)?pe(qe):pe(ce,!1)},!0)}k(ge,be)};$(We,ge=>{n(),m(()=>n().saving)?ge(he):ge(ne,!1)},!0)}k(Oe,ke)};$(_e,Oe=>{n(),m(()=>n().saveError)?Oe(Ne):Oe(Be,!1)})}k(xe,B)}}})}};$(H,z=>{l()&&z(q)})}k(e,ie),lt(),i()}var k3=F('
                                            ');function No(e,t){it(t,!1);let n=oe(t,"title",8),r=oe(t,"startOpen",8,!1),s=oe(t,"forceOpen",8,!1),a=R(r()),u=R(!1);const i=c(n());function l(){s()||w(a,!o(a))}function c(E){const S=E.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,"")||"section",b=Math.abs(Array.from(E).reduce((D,A)=>D*31+A.charCodeAt(0),7)).toString(36);return`filter-section-${S}-${b}`}ve(()=>(O(s()),o(a),o(u),O(r())),()=>{s()?(o(a)||w(a,!0),w(u,!0)):o(u)&&(w(a,r()),w(u,!1))}),Rt(),dt();var f=k3(),d=g(f),v=g(d);let h;var p=g(v),x=g(p),y=C(d,2),_=g(y);tn(_,t,"default",{}),K(E=>{Ct(f,1,`filter-section ${o(a)?"expanded":"collapsed"}`,"svelte-10u46cr"),h=Ct(v,1,"toggle svelte-10u46cr",null,h,E),fe(v,"aria-expanded",o(a)),fe(v,"aria-controls",i),fe(v,"aria-disabled",s()),X(x,n()),fe(y,"id",i),fe(y,"hidden",!o(a))},[()=>({locked:s()})]),W("click",v,l),k(e,f),lt()}var w3=F('
                                            ');function E3(e,t){it(t,!1);const n=R(),r=R(),s=R(),a=R(),u=R(),i=R(),l=It();let c=oe(t,"id",8),f=oe(t,"min",8,0),d=oe(t,"max",8,100),v=oe(t,"step",8,1),h=oe(t,"value",24,()=>({min:f(),max:d()})),p=oe(t,"disabled",8,!1),x=oe(t,"ariaLabelMin",8,"Minimum value"),y=oe(t,"ariaLabelMax",8,"Maximum value");const _=6;function E(N,Q,I){return!Number.isFinite(N)||NI?I:Number(N.toFixed(_))}function S(N,Q,I){const V=I-Q;return!Number.isFinite(V)||V<=0?0:(N-Q)/V*100}function b(N,Q){const I={min:N,max:Q};l("input",I),l("change",I)}function D(N){const Q=N.target,I=E(Number(Q.value),o(n),o(a));if(I>o(a)){b(o(a),o(a));return}b(I,o(a))}function A(N){const Q=N.target,I=E(Number(Q.value),o(s),o(r));if(IO(f()),()=>{w(n,Number.isFinite(f())?f():0)}),ve(()=>(O(d()),o(n)),()=>{w(r,Number.isFinite(d())?d():o(n))}),ve(()=>(O(h()),o(n),o(r)),()=>{w(s,E(h()?.min??o(n),o(n),o(r)))}),ve(()=>(O(h()),o(r),o(n)),()=>{w(a,E(h()?.max??o(r),o(n),o(r)))}),ve(()=>(o(s),o(a)),()=>{o(s)>o(a)&&w(s,o(a))}),ve(()=>(o(s),o(n),o(r)),()=>{w(u,S(o(s),o(n),o(r)))}),ve(()=>(o(a),o(n),o(r)),()=>{w(i,S(o(a),o(n),o(r)))}),Rt(),dt();var P=w3(),Z=C(g(P),2),Y=C(Z,2),T=C(Y,2);K(()=>{fe(P,"data-disabled",p()),xn(Z,`left: ${o(u)}%; right: ${100-o(i)}%;`),fe(Y,"id",c()?`${c()}-min`:void 0),fe(Y,"min",o(n)),fe(Y,"max",o(a)),fe(Y,"step",v()),Dt(Y,o(s)),fe(Y,"aria-label",x()),Y.disabled=p(),fe(T,"id",c()?`${c()}-max`:void 0),fe(T,"min",o(s)),fe(T,"max",o(r)),fe(T,"step",v()),Dt(T,o(a)),fe(T,"aria-label",y()),T.disabled=p()}),W("input",Y,D),W("input",T,A),k(e,P),lt()}var S3=F('

                                            '),C3=F(''),A3=F('
                                            ');function gs(e,t){it(t,!1);let n=oe(t,"title",8),r=oe(t,"options",24,()=>[]),s=oe(t,"selected",24,()=>[]),a=oe(t,"excluded",24,()=>[]),u=oe(t,"emptyMessage",8,"No options available."),i=oe(t,"variant",8,"default");const l=It();let c=R([]);function f(p){l("toggle",p)}function d(p){return p.trim().toLowerCase()}function v(p,x){if(p.length===0)return!1;const y=d(x);return y?p.some(_=>d(_)===y):!1}function h(p){return v(s(),p)?"include":v(a(),p)?"exclude":"neutral"}ve(()=>O(r()),()=>{w(c,r().map(p=>{const x=h(p);return{value:p,state:x,pressed:x==="include"?"true":x==="exclude"?"mixed":"false"}}))}),Rt(),dt();{let p=vt(()=>(O(s()),O(a()),m(()=>s().length+a().length>0)));No(e,{get title(){return n()},get forceOpen(){return o(p)},children:(x,y)=>{var _=A3(),E=g(_);{var S=D=>{var A=S3(),P=g(A);K(()=>X(P,u())),k(D,A)},b=D=>{var A=Ae(),P=me(A);_t(P,1,()=>o(c),({value:Z,state:Y,pressed:T})=>Z,(Z,Y)=>{let T=()=>o(Y).value,N=()=>o(Y).state,Q=()=>o(Y).pressed;var I=C3();let V;var J=g(I),se=g(J);K(de=>{V=Ct(I,1,"pill svelte-2m3fny",null,V,de),fe(I,"aria-pressed",Q()),fe(I,"data-state",N()),X(se,T())},[()=>({active:N()==="include",exclude:N()==="exclude"})]),W("click",I,()=>f(T())),k(Z,I)}),k(D,A)};$(E,D=>{O(r()),m(()=>r().length===0)?D(S):D(b,!1)})}K(()=>fe(_,"data-variant",i())),k(x,_)},$$slots:{default:!0}})}lt()}const di=1e-9,Pa=[4e3,16e3,32e3,64e3,128e3,256e3,1e6],xa=Pa.length,pa=0;function D3(e){return!Number.isFinite(e)||e<=0?"Any":e>=1e6?"1M":e>=1e3?`${Math.round(e/1e3)}K`:`${e}`}const Ml=["Any",...Pa.map(e=>D3(e))],ss=[0,.1,.2,.5,1,5,10],Gr=ss.length,ws=Gr,Pl="$10+";function ua(e){if(e<=0)return"FREE";const t=Math.abs(e),n=t>=10||t>=1?0:t>=.1?1:t>=.01?2:3;return`$${e.toFixed(n).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")}`}const po=ss.map(e=>ua(e));function ra(e,t,n){return!Number.isFinite(e)||en?n:Math.round(e)}function Ad(e){let t=0,n=Number.POSITIVE_INFINITY;for(let r=0;rMath.abs(n-e)<=di);return t>=0?t:Ad(e)}function M3(e){if(e===null)return ws;const t=ss.findIndex(n=>Math.abs(n-e)<=di);return t>=0?t:Ad(e)}function P3(e){if(e===null||e<=0)return pa;for(let t=0;t=ws)return null;const t=Math.min(Math.max(e,0),Gr-1);return ss[t]}function O3(e){if(!e)return 0;let t=0;e.search.trim()&&(t+=1);const n=r=>{t+=r.include.length+r.exclude.length};return n(e.inputModalities),n(e.outputModalities),n(e.series),n(e.providers),n(e.supportedParameters),n(e.moderation),e.minContext!==null&&(t+=1),e.minPromptPrice!==null&&(t+=1),e.maxPromptPrice!==null&&(t+=1),t}var $3=F('

                                            No context metadata available.

                                            '),R3=F('

                                            '),z3=F(' '),U3=F('
                                            Minimum tokens
                                            '),B3=F('

                                            No pricing metadata available.

                                            '),j3=F('

                                            '),q3=F(' '),H3=F('
                                            '),W3=F('
                                            Prompt price (per 1M tokens)
                                            '),V3=F('');function G3(e,t){it(t,!1);const n=()=>at(i,"$facets",a),r=()=>at(l,"$filters",a),s=()=>at(S,"$activeFilters",a),[a,u]=Hn(),{facets:i,filters:l,toggleInputModality:c,toggleOutputModality:f,toggleSeries:d,toggleProvider:v,toggleSupportedParameter:h,toggleModeration:p,setMinContext:x,setMinPromptPrice:y,setMaxPromptPrice:_,resetFilters:E,activeFilters:S}=Qn,b="context-length-slider",D="prompt-price-slider";let A=R(),P=R(null),Z=R(),Y=R(0),T=R(""),N=R(null),Q=R(!1),I=R(0),V=R([]),J=R(!1),se=R({min:0,max:0}),de=R(""),ae=R([]);function ue(he){if(o(Q)){x(null);return}const ne=ra(he,pa,xa);x(I3(ne))}function L(he){if(o(J)){y(null),_(null);return}const ne=he.detail,ge=ra(ne.min,0,Gr-1),be=ra(ne.max,0,ws);y(N3(ge)),_(L3(be))}ve(()=>n(),()=>{w(P,n())}),ve(()=>r(),()=>{w(A,r())}),ve(()=>s(),()=>{w(Z,s())}),ve(()=>o(A),()=>{w(Y,O3(o(A)))}),ve(()=>o(Y),()=>{w(T,o(Y)>0?`${o(Y)} active filter${o(Y)===1?"":"s"}`:"All models shown.")}),ve(()=>(o(P),o(Q),o(A),Ml),()=>{const he=o(P)?.maxContext??null;w(N,he),w(Q,he===null),w(I,o(Q)?pa:P3(o(A)?.minContext??null)),w(V,o(Q)?[]:Ml)}),ve(()=>o(P),()=>{const he=o(P)?.maxPromptPrice??null;w(J,he===null)}),ve(()=>(o(J),o(A),Gr),()=>{w(se,(()=>{if(o(J))return{min:0,max:ws};const he=F3(o(A)?.minPromptPrice??null),ne=M3(o(A)?.maxPromptPrice??null),ge=ra(he,0,Gr-1),be=ra(ne,0,ws);return ge>be?{min:be,max:be}:{min:ge,max:be}})())}),ve(()=>(o(A),Pl),()=>{w(de,(()=>{const he=o(A)?.minPromptPrice,ne=o(A)?.maxPromptPrice,ge=he===null?po[0]:ua(he),be=ne===null?Pl:ua(ne);return`${ge} – ${be}`})())}),ve(()=>(o(J),po),()=>{w(ae,o(J)?[]:po)}),Rt(),dt();var U=V3(),G=g(U),ie=g(G),H=C(g(ie),2);let q;var z=g(H),le=C(ie,2),xe=C(G,2),De=g(xe);{let he=vt(()=>(o(P),m(()=>o(P)?.inputModalities??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.inputModalities?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.inputModalities?.exclude??[])));gs(De,{title:"Input modalities",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},emptyMessage:"No modality data available.",$$events:{toggle:be=>c(be.detail)}})}var B=C(De,2);{let he=vt(()=>(o(P),m(()=>o(P)?.outputModalities??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.outputModalities?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.outputModalities?.exclude??[])));gs(B,{title:"Output modalities",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},emptyMessage:"No modality data available.",$$events:{toggle:be=>f(be.detail)}})}var _e=C(B,2);{let he=vt(()=>(o(A),m(()=>o(A)?.minContext!==null)));No(_e,{title:"Context length",get forceOpen(){return o(he)},children:(ne,ge)=>{var be=Ae(),Te=me(be);{var qe=pe=>{var Ee=Ae(),Fe=me(Ee);{var et=Le=>{var ze=$3();k(Le,ze)},rt=Le=>{var ze=R3(),je=g(ze);K(Je=>X(je,`All models offer ${Je??""} context.`),[()=>(O($a),o(N),m(()=>$a(o(N))))]),k(Le,ze)};$(Fe,Le=>{o(P),m(()=>o(P)?.maxContext===null||o(P)?.maxContext===void 0)?Le(et):Le(rt,!1)})}k(pe,Ee)},ce=pe=>{var Ee=U3(),Fe=g(Ee),et=C(g(Fe),2),rt=g(et),Le=C(Fe,2);fe(Le,"id",b),fe(Le,"step",1);var ze=C(Le,2);_t(ze,7,()=>o(V),(je,Je)=>je+Je,(je,Je)=>{var ct=z3(),He=g(ct);K(()=>X(He,o(Je))),k(je,ct)}),K(je=>{X(rt,je),fe(Le,"min",pa),fe(Le,"max",xa),Dt(Le,o(I))},[()=>(o(A),O($a),m(()=>o(A)?.minContext===null?"Any":$a(o(A)?.minContext??0)))]),W("input",Le,je=>ue(Number(je.target.value))),k(pe,Ee)};$(Te,pe=>{o(Q)?pe(qe):pe(ce,!1)})}k(ne,be)},$$slots:{default:!0}})}var Ne=C(_e,2);{let he=vt(()=>(o(A),m(()=>o(A)?.minPromptPrice!==null||o(A)?.maxPromptPrice!==null)));No(Ne,{title:"Prompt pricing",get forceOpen(){return o(he)},children:(ne,ge)=>{var be=Ae(),Te=me(be);{var qe=pe=>{var Ee=Ae(),Fe=me(Ee);{var et=Le=>{var ze=B3();k(Le,ze)},rt=Le=>{var ze=j3(),je=g(ze);K(Je=>X(je,`All models share ${Je??""} pricing.`),[()=>(O(ua),o(P),m(()=>ua(o(P)?.maxPromptPrice??0)))]),k(Le,ze)};$(Fe,Le=>{o(P),m(()=>o(P)?.maxPromptPrice===null||o(P)?.maxPromptPrice===void 0)?Le(et):Le(rt,!1)})}k(pe,Ee)},ce=pe=>{var Ee=W3(),Fe=g(Ee),et=C(g(Fe),2),rt=g(et),Le=C(Fe,2);E3(Le,{id:D,min:0,get max(){return ws},step:1,get value(){return o(se)},ariaLabelMin:"Minimum prompt price",ariaLabelMax:"Maximum prompt price",get disabled(){return o(J)},$$events:{input:L,change:L}});var ze=C(Le,2);{var je=Je=>{var ct=H3();_t(ct,7,()=>o(ae),(He,ht)=>He+ht,(He,ht)=>{var Bt=q3(),bt=g(Bt);K(()=>X(bt,o(ht))),k(He,Bt)}),k(Je,ct)};$(ze,Je=>{o(ae),m(()=>o(ae).length>0)&&Je(je)})}K(()=>X(rt,o(de))),k(pe,Ee)};$(Te,pe=>{o(J)?pe(qe):pe(ce,!1)})}k(ne,be)},$$slots:{default:!0}})}var Be=C(Ne,2);{let he=vt(()=>(o(P),m(()=>o(P)?.series??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.series?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.series?.exclude??[])));gs(Be,{title:"Series",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},emptyMessage:"Series information unavailable.",$$events:{toggle:be=>d(be.detail)}})}var Oe=C(Be,2);{let he=vt(()=>(o(P),m(()=>o(P)?.supportedParameters??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.supportedParameters?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.supportedParameters?.exclude??[])));gs(Oe,{title:"Supported parameters",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},variant:"columns",emptyMessage:"No parameter metadata available.",$$events:{toggle:be=>h(be.detail)}})}var ke=C(Oe,2);{let he=vt(()=>(o(P),m(()=>o(P)?.providers??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.providers?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.providers?.exclude??[])));gs(ke,{title:"Providers",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},emptyMessage:"No provider data available.",$$events:{toggle:be=>v(be.detail)}})}var We=C(ke,2);{let he=vt(()=>(o(P),m(()=>o(P)?.moderation??[]))),ne=vt(()=>(o(A),m(()=>o(A)?.moderation?.include??[]))),ge=vt(()=>(o(A),m(()=>o(A)?.moderation?.exclude??[])));gs(We,{title:"Moderation",get options(){return o(he)},get selected(){return o(ne)},get excluded(){return o(ge)},variant:"compact",emptyMessage:"No moderation metadata available.",$$events:{toggle:be=>p(be.detail)}})}K(he=>{q=Ct(H,1,"filters-status svelte-1247vns",null,q,he),X(z,o(T)),le.disabled=!o(Z)},[()=>({muted:o(Y)===0})]),W("click",le,E),k(e,U),lt(),u()}var K3=F(""),Z3=F('
                                            ');function Y3(e,t){it(t,!1);let n=oe(t,"selected",8),r=oe(t,"onSelect",8);const s=[{label:"Newest",value:"newness"},{label:"Lowest price",value:"price"},{label:"Longest context",value:"context"}];function a(c){const f=c.target;r()(f.value)}dt();var u=Z3(),i=C(g(u),2);_t(i,5,()=>s,zn,(c,f)=>{var d=K3(),v=g(d),h={};K(()=>{X(v,(o(f),m(()=>o(f).label))),h!==(h=(o(f),m(()=>o(f).value)))&&(d.value=(d.__value=(o(f),m(()=>o(f).value)))??"")}),k(c,d)});var l;jn(i),K(()=>{l!==(l=n())&&(i.value=(i.__value=n())??"",kn(i,n()))}),W("change",i,a),k(e,u),lt()}const J3="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M400-240%20160-480l240-240%2056%2058-142%20142h486v80H314l142%20142-56%2058Z'/%3e%3c/svg%3e";var X3=F('
                                            Chat

                                            Model Explorer

                                            ');function Q3(e,t){it(t,!1);let n=oe(t,"resultCount",8,0),r=oe(t,"searchValue",8,""),s=oe(t,"onSearch",8),a=oe(t,"sort",8),u=oe(t,"onSort",8),i=oe(t,"onClose",8);function l(b){const D=b.target;D&&s()(D.value)}dt();var c=X3(),f=g(c),d=g(f),v=g(d),h=C(f,2),p=g(h),x=C(g(p),2),y=C(p,2),_=g(y),E=g(_),S=C(_,2);Y3(S,{get selected(){return a()},get onSelect(){return u()}}),K(()=>{fe(v,"src",J3),Dt(x,r()),X(E,`${n()??""} result${n()===1?"":"s"}`)}),W("click",d,Ko(function(...b){i()?.apply(this,b)})),W("input",x,l),k(e,c),lt()}var ey=F('
                                            '),ty=F('

                                            ');function ny(e,t){it(t,!1);const n=R(),r=R(),s=R(),a=R(),u=R(),i=R(),l=R(),c=R(),f=R(),d=R(),v=R(),h=R(),p=R(),x=R(),y=R();let _=oe(t,"model",8),E=oe(t,"onSelect",8);const S=1e6;function b(L){return L&&L.split(/[\s_/-]+/).filter(Boolean).map(U=>U.charAt(0).toUpperCase()+U.slice(1)).join(" ")}function D(L){const U=new Set,G=[];for(const ie of L){const H=b(ie.trim());if(!H)continue;const q=H.toLowerCase();U.has(q)||(U.add(q),G.push(H))}return G}function A(L){if(L===null)return"Unknown";const U=L/S,G=U>=10?0:1;return`${U.toFixed(G).replace(/\.0$/,"")}M tokens`}function P(L){return L.length?L.join(", "):null}function Z(L,U){if(L===null)return null;const G=cp(L);return G==="FREE"?"FREE":`${G} ${U}`}const Y="/ 1M tokens";function T(L,U,G,ie){const H=Z(G,ie);return H?{key:L,label:U,value:H}:null}function N(L,U,G){return G?{key:L,label:U,value:G}:null}function Q(){E()(_())}function I(L){(L.key==="Enter"||L.key===" ")&&(L.preventDefault(),E()(_()))}ve(()=>O(_()),()=>{w(n,_().name??_().id)}),ve(()=>O(_()),()=>{w(r,Nc(_()))}),ve(()=>O(_()),()=>{w(s,lp(_()))}),ve(()=>O(_()),()=>{w(a,ca(_()))}),ve(()=>o(a),()=>{w(u,A(o(a)))}),ve(()=>O(_()),()=>{w(i,Jo(_()).map(L=>L.toLowerCase()))}),ve(()=>O(_()),()=>{w(l,Xo(_()).map(L=>L.toLowerCase()))}),ve(()=>o(r),()=>{w(c,o(r)!==null)}),ve(()=>o(s),()=>{w(f,o(s)!==null)}),ve(()=>o(i),()=>{w(d,D(o(i)))}),ve(()=>o(l),()=>{w(v,D(o(l)))}),ve(()=>O(_()),()=>{w(h,(()=>{const L=_().provider;if(L&&typeof L=="object"){if(L.display_name)return L.display_name;if(L.slug)return L.slug}const U=_().id?.split("/")??[];return U.length>1?U[U.length-2]:null})())}),ve(()=>(o(u),o(h),o(d),o(v)),()=>{w(p,[N("context","Context",o(u)),N("provider","Provider",o(h)),N("input-modalities","Input",P(o(d))),N("output-modalities","Output",P(o(v)))].filter(L=>!!L))}),ve(()=>(o(c),o(r),o(f),o(s)),()=>{w(x,[o(c)?T("input-price","Input price",o(r),Y):null,o(f)?T("output-price","Output price",o(s),Y):null].filter(L=>!!L))}),ve(()=>(o(p),o(x)),()=>{w(y,[...o(p),...o(x)])}),Rt(),dt();var V=ty(),J=g(V),se=g(J),de=g(se),ae=C(J,2),ue=g(ae);_t(ue,5,()=>o(y),L=>L.key,(L,U)=>{var G=ey(),ie=g(G),H=g(ie),q=C(ie,2),z=g(q);K(()=>{X(H,(o(U),m(()=>o(U).label))),X(z,(o(U),m(()=>o(U).value)))}),k(L,G)}),K(()=>{fe(V,"aria-label",`Use model ${o(n)}`),X(de,o(n))}),W("click",V,Q),W("keydown",V,I),k(e,V),lt()}var ry=F(''),sy=F('

                                            Active filters

                                            ');function ay(e,t){it(t,!1);let n=oe(t,"chips",24,()=>[]);const r=It();function s(l){r("clear",l)}dt();var a=Ae(),u=me(a);{var i=l=>{var c=sy(),f=C(g(c),2);_t(f,5,n,d=>d.id,(d,v)=>{var h=ry();let p;var x=g(h),y=g(x),_=g(y),E=C(y,4),S=g(E);K(b=>{p=Ct(h,1,"chip svelte-v6y1b4",null,p,b),fe(h,"aria-label",(o(v),m(()=>`Remove ${o(v).state==="exclude"?"excluded":"included"} filter ${o(v).categoryLabel} ${o(v).valueLabel}`))),X(_,(o(v),m(()=>o(v).categoryLabel))),X(S,`${o(v),m(()=>o(v).state==="exclude"?"Not ":"")??""}${o(v),m(()=>o(v).valueLabel)??""}`)},[()=>({include:o(v).state==="include",exclude:o(v).state==="exclude"})]),W("click",h,()=>s(o(v))),k(d,h)}),k(l,c)};$(u,l=>{O(n()),m(()=>n().length>0)&&l(i)})}k(e,a),lt()}var uy=F('

                                            '),oy=F("
                                          • "),iy=F('
                                              '),ly=F('
                                              ');function cy(e,t){it(t,!1);let n=oe(t,"models",24,()=>[]),r=oe(t,"filtersActive",8,!1),s=oe(t,"onSelect",8),a=oe(t,"filterChips",24,()=>[]);const u=It();function i(h){u("clearFilter",h.detail)}dt();var l=ly(),c=g(l);ay(c,{get chips(){return a()},$$events:{clear:i}});var f=C(c,2);{var d=h=>{var p=uy(),x=g(p);{var y=E=>{var S=Bn("No models match your current filters.");k(E,S)},_=E=>{var S=Bn("No models available.");k(E,S)};$(x,E=>{r()?E(y):E(_,!1)})}k(h,p)},v=h=>{var p=iy();_t(p,5,n,x=>x.id,(x,y)=>{var _=oy(),E=g(_);ny(E,{get model(){return o(y)},get onSelect(){return s()}}),k(x,_)}),k(h,p)};$(f,h=>{O(n()),m(()=>n().length===0)?h(d):h(v,!1)})}k(e,l),lt()}var dy=F('Active'),fy=F('
                                              '),py=F(' ',1);function hy(e,t){it(t,!1);const n=()=>at(v,"$filtered",a),r=()=>at(y,"$activeFilters",a),s=()=>at(h,"$filters",a),[a,u]=Hn(),i=R(),l=R(),c=R();let f=oe(t,"open",12,!1);const d=It(),{filtered:v,filters:h,setSearch:p,setSort:x,activeFilters:y,setSelectionState:_}=Qn,E={inputModalities:{label:"Input"},outputModalities:{label:"Output"},series:{label:"Series"},providers:{label:"Provider"},supportedParameters:{label:"Parameter"},moderation:{label:"Moderation"}},S=["inputModalities","outputModalities","series","providers","supportedParameters","moderation"],b="(max-width: 1024px)";let D=R(!1),A=R(!0),P=!1,Z=R([]);const Y="modal-open";let T=()=>{typeof document<"u"&&document.body.classList.remove(Y)};Da(()=>T());function N(){f(!1),d("close")}function Q(H){d("select",{id:H.id}),N()}function I(H){x(H)}function V(H){p(H)}function J(H){const q=[];for(const z of S){const le=H[z];if(!le)continue;const De=E[z]?.label??z;for(const B of le.include)q.push(se(z,De,B,"include"));for(const B of le.exclude)q.push(se(z,De,B,"exclude"))}return q}function se(H,q,z,le){const xe=z.trim();return{id:`${H}:${le}:${xe}`,category:H,categoryLabel:q,value:xe,valueLabel:de(xe),state:le}}function de(H){return H.replace(/[_-]/g," ")||H}function ae(H){w(D,H),H?P||w(A,!1):(w(A,!0),P=!1)}function ue(){w(A,!o(A)),P=!0}function L(H){const q=H.detail;_(q.category,q.value,"neutral")}Aa(()=>{if(typeof window>"u")return;const H=window.matchMedia(b);ae(H.matches);const q=z=>{ae(z.matches)};return typeof H.addEventListener=="function"?(H.addEventListener("change",q),()=>H.removeEventListener("change",q)):(H.addListener(q),()=>H.removeListener(q))}),ve(()=>O(f()),()=>{typeof document<"u"&&(f()?document.body.classList.add(Y):document.body.classList.remove(Y))}),ve(()=>n(),()=>{w(i,n())}),ve(()=>r(),()=>{w(l,r())}),ve(()=>s(),()=>{w(c,s())}),ve(()=>o(c),()=>{w(Z,o(c)?J(o(c)):[])}),Rt(),dt();var U=Ae(),G=me(U);{var ie=H=>{var q=py(),z=me(q),le=C(z,2),xe=g(le);Q3(xe,{get resultCount(){return o(i),m(()=>o(i).length)},get searchValue(){return s(),m(()=>s().search)},onSearch:V,get sort(){return s(),m(()=>s().sort)},onSort:I,onClose:N});var De=C(xe,2),B=g(De);{var _e=ke=>{var We=fy(),he=g(We);let ne;var ge=C(g(he),2);{var be=Te=>{var qe=dy();k(Te,qe)};$(ge,Te=>{o(l)&&Te(be)})}K(Te=>{ne=Ct(he,1,"filters-toggle svelte-drtqmy",null,ne,Te),fe(he,"aria-expanded",o(A))},[()=>({open:o(A)})]),W("click",he,ue),k(ke,We)};$(B,ke=>{o(D)&&ke(_e)})}var Ne=C(B,2),Be=g(Ne);G3(Be,{});var Oe=C(Ne,2);cy(Oe,{get models(){return o(i)},get filtersActive(){return o(l)},get filterChips(){return o(Z)},onSelect:Q,$$events:{clearFilter:L}}),K(()=>{fe(le,"data-compact",o(D)),fe(De,"data-compact",o(D)),fe(Ne,"data-compact",o(D)),fe(Ne,"data-open",o(A))}),W("click",z,N),k(H,q)};$(G,H=>{f()&&H(ie)})}k(e,U),lt(),u()}var my=F(''),vy=F('
                                              ');function gy(e,t){it(t,!1);const n=()=>at(A,"$selectable",c),r=()=>at(va,"$chatStore",c),s=()=>at(P,"$activeFor",c),a=()=>at(Uc,"$speechState",c),u=()=>at(b,"$modelsLoading",c),i=()=>at(D,"$modelsError",c),l=()=>at(_s,"$suggestionsStore",c),[c,f]=Hn(),{sendMessage:d,cancelStream:v,clearConversation:h,deleteMessage:p,retryMessage:x,editMessage:y,clearError:_,setModel:E}=va,{loadModels:S,loading:b,error:D,selectable:A,activeFor:P}=Qn;let Z=R(""),Y=R([]),T=R(),N=R(!1),Q=R(!1),I=R(!1),V=R(!1),J=R(!1),se=R(!1),de=R(!1),ae=R(0),ue=R(!1),L=R(null),U=R(null),G=R(null),ie=R([]),H=R(null);const q=Cc;let z=R(null),le=R(""),xe=R(""),De=R(!1);Aa(async()=>{await S(),await _s.load();const ye=await Kn.loadDefault();if(ye){const Se=await Kn.apply(ye.name);Se?.model&&E(Se.model),await _s.load()}});async function B(){if(!o(T))return;const ye=o(T).getNewSuggestion();ye&&await _s.add(ye.label,ye.text)}async function _e(ye){await _s.remove(ye.detail.index)}Da(()=>{typeof document<"u"&&document.body.classList.remove("modal-open")});function Ne(ye){E(ye)}function Be(){Xp()}function Oe(ye){E(ye.detail.id)}function ke(ye){w(Z,ye)}function We(ye){r().isStreaming||p(ye.detail.id)}function he(ye){x(ye)}function ne(ye){if(!ye?.attachment)return;Te();const Se={...ye.attachment,metadata:ye.attachment.metadata?{...ye.attachment.metadata}:null},ut=o(Y)??[],At=ut.some(Nt=>Nt.id===Se.id||Nt.displayUrl===Se.displayUrl||Nt.deliveryUrl===Se.deliveryUrl)?ut:[...ut,Se];w(Y,At)}function ge(ye){const Se=r().messages.find(ut=>ut.id===ye&&ut.role==="user");Se&&(w(De,!1),w(z,ye),w(le,Se.text),w(xe,Se.text))}function be(){w(z,null),w(le,""),w(xe,"")}function Te(){o(De)||be()}function qe(){Te()}function ce(ye){if(!o(z))return;const Se=ye.trim();if(!Se)return;const ut=o(z);w(De,!0),be(),y(ut,Se).catch(At=>{console.error("Failed to apply message edit",At)}).finally(()=>{w(De,!1)})}async function pe(ye){if(ye){w(Q,!0),w(ue,!0),w(L,null),w(U,null),w(G,ye);try{const Se=await C0(ye);w(U,Se?.data??null)}catch(Se){const ut=Se instanceof Error?Se.message:"Failed to load details.";w(L,ut)}finally{w(ue,!1)}}}function Ee(){w(Q,!1),w(G,null),w(U,null),w(L,null)}async function Fe(ye){const Se=ye.trim();if(Se){w(Z,Se);try{await d({text:Se,attachments:[]}),w(Z,"")}catch(ut){console.error("Failed to send speech transcription",ut)}}}ve(()=>(o(N),o(Q),o(I),o(V),o(J),o(se),o(de)),()=>{typeof document<"u"&&document.body.classList.toggle("modal-open",o(N)||o(Q)||o(I)||o(V)||o(J)||o(se)||o(de))}),ve(()=>(n(),r()),()=>{w(ie,n()(r().selectedModel))}),ve(()=>(s(),r()),()=>{w(H,s()(r().selectedModel))}),ve(()=>(a(),o(ae)),()=>{a().promptVersion!==o(ae)&&(w(ae,a().promptVersion),w(Z,a().promptText))}),ve(()=>(a(),r(),qi),()=>{if(a().pendingSubmit&&!r().isStreaming){const ye=qi();ye&&Fe(ye.text)}}),ve(()=>(o(z),ji),()=>{o(z)&&ji()}),Rt(),dt();var et=vy(),rt=g(et);{let ye=vt(()=>(r(),m(()=>r().messages.length>0)));Dp(rt,{get selectableModels(){return o(ie)},get selectedModel(){return r(),m(()=>r().selectedModel)},get modelsLoading(){return u()},get modelsError(){return i()},get hasMessages(){return o(ye)},$$events:{openExplorer:()=>w(N,!0),clear:()=>{w(Y,[]),w(Z,""),h()},modelChange:Se=>Ne(Se.detail.id),openModelSettings:()=>w(I,!0),openSystemSettings:()=>w(V,!0),openMcpServers:()=>w(J,!0),openKioskSettings:()=>w(se,!0),openCliSettings:()=>w(de,!0)}})}var Le=C(rt,2);{var ze=ye=>{Xr(Y2(ye,{get suggestions(){return l(),m(()=>l().items)},get deleting(){return l(),m(()=>l().deleting)},$$events:{add:B,delete:_e,select:Se=>ke(Se.detail.text)},$$legacy:!0}),Se=>w(T,Se),()=>o(T))};$(Le,ye=>{r(),m(()=>!r().messages.length)&&ye(ze)})}var je=C(Le,2);t2(je,{get messages(){return r(),m(()=>r().messages)},get disableDelete(){return r(),m(()=>r().isStreaming)},$$events:{openGenerationDetails:ye=>pe(ye.detail.id),deleteMessage:We,retryMessage:ye=>he(ye.detail.id),editMessage:ye=>ge(ye.detail.id),editAssistantAttachment:ye=>ne(ye.detail)}});var Je=C(je,2);{var ct=ye=>{var Se=my(),ut=g(Se),Yt=g(ut),At=C(ut,2);K(()=>X(Yt,(r(),m(()=>r().error)))),W("click",At,_),k(ye,Se)};$(Je,ye=>{r(),m(()=>r().error)&&ye(ct)})}var He=C(Je,2);{var ht=ye=>{I1(ye,{get originalValue(){return o(xe)},get saving(){return o(De)},get disabled(){return o(De)},get value(){return o(le)},set value(Se){w(le,Se)},$$events:{cancel:qe,submit:Se=>ce(Se.detail.text)},$$legacy:!0})},Bt=ye=>{y1(ye,{get presetAttachments(){return o(Y)},get isStreaming(){return r(),m(()=>r().isStreaming)},get prompt(){return o(Z)},set prompt(Se){w(Z,Se)},$$events:{submit:Se=>d(Se.detail),cancel:v,startDictation:Be},$$legacy:!0})};$(He,ye=>{o(z)?ye(ht):ye(Bt,!1)})}var bt=C(He,2);F1(bt,{get open(){return o(Q)},get generationId(){return o(G)},get loading(){return o(ue)},get error(){return o(L)},get data(){return o(U)},get fields(){return q},$$events:{close:Ee}});var Zt=C(bt,2);W2(Zt,{get open(){return o(I)},get selectedModel(){return r(),m(()=>r().selectedModel)},get model(){return o(H)},$$events:{close:()=>w(I,!1)}});var jt=C(Zt,2);Eb(jt,{get open(){return o(V)},$$events:{close:()=>w(V,!1)}});var qt=C(jt,2);x3(qt,{get open(){return o(J)},$$events:{close:()=>w(J,!1)}});var st=C(qt,2);s_(st,{get open(){return o(se)},$$events:{close:()=>w(se,!1)}});var Ve=C(st,2);w_(Ve,{get open(){return o(de)},$$events:{close:()=>w(de,!1)}});var Ft=C(Ve,2);hy(Ft,{get open(){return o(N)},set open(ye){w(N,ye)},$$events:{select:Oe},$$legacy:!0}),k(e,et),lt(),f()}r0(gy,{target:document.getElementById("app")});export{Hn as A,Ac as B,R as C,w as D,C as E,fe as F,jn as G,kn as H,Dt as I,oe as a,$ as b,It as c,yy as d,W as e,F as f,k as g,lt as h,dt as i,g as j,_y as k,Ae as l,me as m,O as n,_t as o,it as p,o as q,Aa as r,X as s,K as t,m as u,Da as v,ve as w,at as x,Rt as y,Xr as z}; diff --git a/src/backend/static/assets/index-TxloFkvi.css b/src/backend/static/assets/index-TxloFkvi.css deleted file mode 100644 index ad0cb319..00000000 --- a/src/backend/static/assets/index-TxloFkvi.css +++ /dev/null @@ -1 +0,0 @@ -:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--line-height: 1.5;--color-bg: #0b101b;--color-surface: rgba(10, 16, 28, .95);--color-surface-2: rgba(12, 18, 32, .9);--color-surface-3: rgba(11, 18, 34, .82);--color-border: rgba(37, 49, 77, .85);--color-border-strong: rgba(67, 91, 136, .6);--color-text: #f3f5ff;--color-muted: #9fb3d8;--color-subtle: #7b87a1;--color-accent: #38bdf8;--color-accent-strong: #4f46e5;--color-accent-contrast: #07101e;--color-danger: #f87171;--color-danger-strong: #fecaca;--shadow-elevated: 0 18px 48px rgba(3, 8, 20, .55);--shadow-soft: 0 12px 28px rgba(4, 8, 20, .45);--shadow-focus: 0 0 0 3px rgba(56, 189, 248, .2);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--transition-fast: .15s ease;--transition-med: .2s ease;--bp-xl: 1280px;--bp-lg: 1024px;--bp-md: 768px;--bp-sm: 640px;--bp-xs: 480px;font-family:var(--font-sans);line-height:var(--line-height);font-weight:400;color-scheme:dark;background-color:var(--color-bg);color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--color-bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.btn{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font-weight:600;line-height:1.1;cursor:pointer;transition:border-color var(--transition-med),color var(--transition-med),background var(--transition-med),box-shadow var(--transition-med),transform var(--transition-fast)}.btn:hover:not(:disabled),.btn:focus-visible:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-primary{--btn-bg: linear-gradient(135deg, rgba(56, 189, 248, .9), rgba(59, 130, 246, .9));--btn-border: transparent;--btn-color: var(--color-accent-contrast);box-shadow:0 10px 30px #38bdf840}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled){color:var(--color-accent-contrast);transform:translateY(-1px);box-shadow:0 12px 32px #38bdf859}.btn-ghost{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text)}.btn-ghost:hover:not(:disabled),.btn-ghost:focus-visible:not(:disabled){background:#10192bbf}.btn-danger{--btn-bg: rgba(139, 35, 35, .12);--btn-border: rgba(139, 35, 35, .6);--btn-color: var(--color-danger-strong)}.btn-danger:hover:not(:disabled),.btn-danger:focus-visible:not(:disabled){border-color:#fca5a5;color:#ffe4e6;background:#a02d2d33}.btn-soft{--btn-bg: rgba(79, 70, 229, .16);--btn-border: rgba(79, 70, 229, .35);--btn-color: #c7d2fe}.btn-soft:hover:not(:disabled),.btn-soft:focus-visible:not(:disabled){border-color:#6366f18c;color:#e0e7ff;background:#4f46e538}.btn-quiet{--btn-bg: var(--color-surface-3);--btn-border: rgba(71, 99, 150, .45);--btn-color: var(--color-text)}.btn-small{padding:.35rem .8rem;font-size:.86rem}.btn-icon{width:2.25rem;height:2.25rem;padding:0}.btn-tonal{--btn-bg: rgba(56, 189, 248, .12);--btn-border: rgba(56, 189, 248, .4);--btn-color: #e0f2fe}.input-control,input.styled-input,.styled-input input,.form-field input[type=text],.form-field input[type=number],.form-field input[type=email],.form-field input[type=password]{width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.48rem .65rem;font:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.input-control:focus-visible,input.styled-input:focus-visible,.styled-input input:focus-visible,.form-field input[type=text]:focus-visible,.form-field input[type=number]:focus-visible,.form-field input[type=email]:focus-visible,.form-field input[type=password]:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.input-control:disabled,input.styled-input:disabled,.styled-input input:disabled,.form-field input[type=text]:disabled,.form-field input[type=number]:disabled,.form-field input[type=email]:disabled,.form-field input[type=password]:disabled{opacity:.6;cursor:not-allowed}.select-control,select.styled-select,.styled-select select,.form-field select{appearance:none;width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#090e1aeb;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .6rem center;background-size:.9rem;color:var(--color-text);padding:.48rem 2rem .48rem .65rem;font:inherit;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.select-control:focus-visible,select.styled-select:focus-visible,.styled-select select:focus-visible,.form-field select:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-control:disabled,select.styled-select:disabled,.styled-select select:disabled,.form-field select:disabled{opacity:.6;cursor:not-allowed}.select-control option,select.styled-select option,.styled-select select option,.form-field select option{background:#0a101a;color:var(--color-text)}.textarea-control,textarea.form-field,textarea.styled-textarea{width:100%;min-height:120px;resize:vertical;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.85rem 1rem;font:inherit;line-height:1.5;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.textarea-control:focus-visible,textarea.form-field:focus-visible,textarea.styled-textarea:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.textarea-control:disabled{opacity:.6;cursor:not-allowed}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field-label,.field-label{font-size:.82rem;font-weight:600;color:#cfd8f3}.form-field-hint,.field-hint{font-size:.75rem;color:#8094bb}.topbar.svelte-1vc4gmw{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start;background:transparent;position:relative;z-index:20;padding:2rem 2rem 1rem}.topbar-content.svelte-1vc4gmw{width:100%;display:flex;align-items:center;justify-content:flex-start}.controls.svelte-1vc4gmw{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){flex:0 0 auto}.chat-header .controls .model-picker{display:flex}.chat-header .controls .model-picker,.chat-header .controls .web-search{width:auto}.preset-badge.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;border:1px solid #25314d;background:#0c1322b3;color:#c8d6ef;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.preset-badge.svelte-1vc4gmw:hover,.preset-badge.svelte-1vc4gmw:focus-visible{border-color:#38bdf8;color:#f2f6ff;background:#0c1628d9;outline:none;box-shadow:0 0 0 2px #38bdf840}.preset-badge.svelte-1vc4gmw .label:where(.svelte-1vc4gmw){text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;color:#9fb3d8}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e5edff}.preset-badge.svelte-1vc4gmw .dot:where(.svelte-1vc4gmw){width:.4rem;height:.4rem;border-radius:999px;background:#22c55e;box-shadow:0 0 0 2px #22c55e26}.preset-badge.applying.svelte-1vc4gmw .spinner:where(.svelte-1vc4gmw){width:.85rem;height:.85rem;border-radius:999px;border:2px solid rgba(148,187,233,.25);border-top-color:#38bdf8;animation:svelte-1vc4gmw-spin .9s linear infinite}@keyframes svelte-1vc4gmw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-header .controls select{appearance:none;padding:.45rem 2rem .45rem .75rem;border-radius:.5rem;background-color:#090e1aeb;color:#f3f5ff;border:1px solid rgba(37,49,77,.9);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .65rem center;background-size:.9rem;min-width:160px;font:inherit}.chat-header .controls select:hover{border-color:#38bdf8;background-color:#0c1322f2;color:#f8fafc}.chat-header .controls select:focus{outline:2px solid #38bdf8;outline-offset:2px;border-color:#38bdf8;box-shadow:none}.chat-header .controls select:disabled{opacity:.6;cursor:not-allowed;background-color:#090e1a99}.chat-header .controls select option{background:#0a101a;color:#f3f5ff}.chat-header .controls .btn{white-space:nowrap}.chat-header .controls .btn.system-settings svg{width:1.05rem;height:1.05rem}.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.75rem}.web-search-loading.svelte-1vc4gmw .status:where(.svelte-1vc4gmw){font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .4rem;border-radius:999px;border:1px solid rgba(62,90,140,.6);color:#9fb3d8}@media (max-width: 1280px){.topbar.svelte-1vc4gmw{height:auto;padding:.75rem 1.5rem 1rem}.topbar-content.svelte-1vc4gmw{flex-direction:column;align-items:stretch;gap:.75rem;width:100%;max-width:900px;margin:0 auto}.controls.svelte-1vc4gmw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%;max-width:900px;margin:0 auto;gap:.75rem;justify-items:stretch}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){width:100%;min-width:0}.chat-header .controls .btn,.chat-header .controls select,.preset-badge.svelte-1vc4gmw,.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw,.chat-header .controls .model-picker,.chat-header .controls .web-search{width:100%}.chat-header .controls .btn,.preset-badge.svelte-1vc4gmw{justify-content:center}.chat-header .controls select{min-width:0;text-align:left}.chat-header .controls .explorer{grid-column:1}.chat-header .controls .model-picker,.model-picker-loading.svelte-1vc4gmw{grid-column:2}.preset-badge.svelte-1vc4gmw{grid-column:1 / -1;order:9}.web-search-loading.svelte-1vc4gmw{justify-content:center}}@media (max-width: 1024px){.topbar.svelte-1vc4gmw{padding:.75rem 1.25rem 1rem}.controls.svelte-1vc4gmw{gap:.65rem}}@media (max-width: 768px){.topbar.svelte-1vc4gmw{padding:.75rem 1.15rem}.topbar-content.svelte-1vc4gmw,.controls.svelte-1vc4gmw{max-width:100%}.chat-header .controls .btn,.chat-header .controls select{padding:.55rem .9rem}.chat-header .controls .btn.system-settings svg{width:1rem;height:1rem}}@media (max-width: 480px){.topbar.svelte-1vc4gmw{padding:.75rem 1rem .5rem}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:20ch}}.composer.svelte-1ct3ltt{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1rem;background:transparent;position:relative;z-index:20}.composer-content.svelte-1ct3ltt{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;justify-content:flex-end;padding:0 2rem}.attachment-strip.svelte-1ct3ltt{display:flex;flex-wrap:wrap;gap:.75rem}.attachment-chip.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .35rem;border-radius:.85rem;background:#172034d9;border:1px solid rgba(67,91,136,.45)}.attachment-chip.uploading.svelte-1ct3ltt{border-color:#818cf8a6}.attachment-chip.error.svelte-1ct3ltt{border-color:#f87171a6;background:#371414bf}.attachment-chip.svelte-1ct3ltt img:where(.svelte-1ct3ltt){width:48px;height:48px;border-radius:.65rem;object-fit:cover}.chip-status.svelte-1ct3ltt{font-size:.75rem;color:#e2e8f0e6}.attachment-chip.error.svelte-1ct3ltt .chip-status:where(.svelte-1ct3ltt){color:#fecaca}.remove-attachment.svelte-1ct3ltt{appearance:none;border:none;background:#0f172ab3;color:#e2e8f0e6;border-radius:999px;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;line-height:1}.remove-attachment.svelte-1ct3ltt:hover,.remove-attachment.svelte-1ct3ltt:focus-visible{background:#4f46e5d9;color:#fff;outline:none}.composer-error.svelte-1ct3ltt{font-size:.8rem;color:#fca5a5;background:#3e141f99;border:1px solid rgba(248,113,113,.4);padding:.45rem .75rem;border-radius:.65rem}.composer-error.voice.svelte-1ct3ltt{color:#fbbf24;background:#5c3e0c99;border-color:#fbbf2466}.input-shell.svelte-1ct3ltt{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:999px;background:#0b1222d1;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex:1 1 auto;min-height:2.5rem;background:transparent;border:none;color:inherit;padding:.25rem 0;resize:none;font:inherit;line-height:1.55}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt):focus{outline:none}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt)::placeholder{color:#d0d6eb99}.icon-button.svelte-1ct3ltt{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:#172034d9;color:inherit;cursor:pointer;transition:background .12s ease}.icon-button.leading.svelte-1ct3ltt{background:#1d2945e6}.icon-button.svelte-1ct3ltt:hover,.icon-button.svelte-1ct3ltt:focus{background:#2e4065e6;outline:none}.icon-button[data-active=true].svelte-1ct3ltt{background:#4f46e5d9;color:#f8f9ff}.icon-button[data-active=true].svelte-1ct3ltt:hover,.icon-button[data-active=true].svelte-1ct3ltt:focus{background:#6366f1e6}.icon-button.svelte-1ct3ltt:disabled{opacity:.45;cursor:not-allowed}.composer-actions.svelte-1ct3ltt{display:flex;align-items:center;gap:.5rem}.send-button.svelte-1ct3ltt{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.25rem;padding:0 1.15rem;border-radius:999px;border:none;background:#3c63c8d9;color:#f3f5ff;font-weight:600;font-size:.85rem;letter-spacing:.01em;cursor:pointer;transition:background .15s ease,color .15s ease}.send-button.svelte-1ct3ltt .send-label:where(.svelte-1ct3ltt){line-height:1}.send-button.svelte-1ct3ltt:hover,.send-button.svelte-1ct3ltt:focus-visible{background:#5684e8f2;outline:none}.send-button.svelte-1ct3ltt:disabled{cursor:not-allowed;opacity:.7;background:#3c63c880;color:#dadeeee6}.stop-inline.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.35rem;background:none;border:1px solid rgba(236,72,153,.6);color:#f472b6;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.stop-inline.svelte-1ct3ltt:hover,.stop-inline.svelte-1ct3ltt:focus{border-color:#f472b6e6;color:#fecdd3;outline:none}.stop-indicator.svelte-1ct3ltt{width:.75rem;height:.75rem;border-radius:.2rem;background:linear-gradient(135deg,#f472b6,#f97316)}.sr-only.svelte-1ct3ltt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 1024px){.composer.svelte-1ct3ltt{padding:0 0 .75rem}.composer-content.svelte-1ct3ltt{padding:0 1.5rem}}@media (max-width: 768px){.composer.svelte-1ct3ltt{padding:0 0 .5rem}.composer-content.svelte-1ct3ltt{padding:0 1rem;gap:.6rem}.attachment-strip.svelte-1ct3ltt{gap:.6rem}.input-shell.svelte-1ct3ltt{flex-wrap:wrap;align-items:stretch;padding:.75rem .85rem;border-radius:1.5rem;gap:.6rem}.icon-button.leading.svelte-1ct3ltt{order:0}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex-basis:100%;order:1;min-height:3rem;padding:.25rem .1rem}.composer-actions.svelte-1ct3ltt{order:2;width:100%;justify-content:flex-end;flex-wrap:wrap;gap:.45rem}.icon-button.svelte-1ct3ltt,.send-button.svelte-1ct3ltt{height:2.4rem}}@media (max-width: 480px){.composer-content.svelte-1ct3ltt{padding:0 .75rem}.input-shell.svelte-1ct3ltt{padding:.7rem;gap:.5rem}.composer-actions.svelte-1ct3ltt{justify-content:space-between;gap:.4rem}.composer-actions.svelte-1ct3ltt>:where(.svelte-1ct3ltt){flex:1 1 calc(50% - .4rem);min-width:0}.send-button.svelte-1ct3ltt{width:100%}}.model-settings-layer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.model-settings-backdrop{position:absolute;inset:0;background:#040814a6;border:none;padding:0;margin:0;cursor:pointer}.model-settings-backdrop:focus-visible{outline:2px solid var(--color-accent)}.model-settings-modal{position:relative;width:min(640px,100%);max-height:min(80vh,720px);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.model-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(67,91,136,.45)}.model-settings-heading h2{margin:0;font-size:1.05rem;font-weight:600}.model-settings-subtitle{margin:.35rem 0 0;font-size:.8rem;color:var(--color-muted)}.model-settings-actions{display:flex;align-items:center;gap:.5rem}.model-settings-actions :global(.btn){white-space:nowrap}.model-settings-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.status{margin:0;font-size:.85rem;color:var(--color-muted)}.status.error{color:var(--color-danger-strong)}.settings-grid{display:grid;gap:1rem}.settings-stack{display:flex;flex-direction:column;gap:1.25rem}.setting{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:var(--color-surface-2)}.setting-header{display:flex;flex-direction:column;gap:.35rem}.setting-label{font-weight:600}.setting-hint{font-size:.75rem;color:#8094bb}.setting-range{display:flex;flex-direction:column;gap:.55rem}.setting-range-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.range-value{font-size:.78rem;font-weight:600;color:var(--color-text)}.range-value.default{color:#8ea7d2;font-weight:500;font-style:italic}.range-reset{background:none;border:1px solid rgba(71,99,150,.45);border-radius:999px;color:#9fb3d8;padding:.2rem .6rem;font-size:.68rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,opacity .2s ease}.range-reset:hover:not(:disabled),.range-reset:focus-visible{border-color:var(--color-accent);color:var(--color-accent);outline:none}.range-reset:disabled{opacity:.45;cursor:not-allowed}.setting-range .range-input{width:100%;appearance:none;height:.45rem;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%);position:relative}.setting-range .range-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.setting-range .range-input::-webkit-slider-runnable-track{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%)}.setting-range .range-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;margin-top:-.28rem;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-webkit-slider-thumb:hover{transform:scale(1.05)}.setting-range .range-input::-moz-range-track{height:100%;border-radius:999px;background:#3d547b59}.setting-range .range-input::-moz-range-progress{height:100%;border-radius:999px;background:#38bdf8e6}.setting-range .range-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-moz-range-thumb:hover{transform:scale(1.05)}.range-extents{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:#8094bb}.reasoning{gap:.75rem}.reasoning-controls{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.reasoning-field{display:flex;flex-direction:column;gap:.35rem}.reasoning-toggle{display:inline-flex;align-items:center;gap:.5rem}.reasoning-toggle input{width:1.1rem;height:1.1rem}.setting-boolean{display:inline-flex;align-items:center;gap:.5rem}.setting-boolean input{width:1.1rem;height:1.1rem}.model-settings-footer{padding:.85rem 1.5rem;border-top:1px solid rgba(67,91,136,.45);background:#090e1af2}@media (max-width: 640px){.model-settings-layer{padding:1.5rem}.model-settings-modal{width:100%}}.generation-modal{width:min(520px,100%);max-height:min(80vh,640px)}.generation-modal-details.svelte-1uwhn5q{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.generation-detail-row.svelte-1uwhn5q{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.6rem;background:#090e1a99}.generation-detail-row.svelte-1uwhn5q dt:where(.svelte-1uwhn5q){font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#7b87a1}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q){margin:0;font-size:.9rem;color:#f3f5ff;font-weight:500;word-break:break-word}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q) pre:where(.svelte-1uwhn5q){margin:0;white-space:pre-wrap;font-family:var(--font-mono);background:#0c1220bf;border-radius:.55rem;padding:.65rem .75rem;border:1px solid rgba(67,91,136,.25)}.message-editor.svelte-hszu4t{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1.25rem;position:relative;z-index:20}.editor-shell.svelte-hszu4t{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem;border-radius:1rem;background:#0b1222e6;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.editor-header.svelte-hszu4t{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#96a0ba}.editor-status.svelte-hszu4t{text-transform:none;font-size:.75rem;color:#b1bddcd9}textarea.svelte-hszu4t{width:100%;min-height:4rem;background:#060a14ad;border:1px solid rgba(57,82,124,.55);border-radius:.75rem;padding:.75rem 1rem;resize:vertical;color:inherit;font:inherit;line-height:1.5}textarea.svelte-hszu4t:focus{outline:none;border-color:#8aa2d2e6;box-shadow:0 0 0 1px #8aa2d28c}textarea.svelte-hszu4t:disabled{opacity:.75;cursor:not-allowed}.editor-actions.svelte-hszu4t{display:flex;justify-content:flex-end;gap:.75rem}.button.svelte-hszu4t{padding:.5rem 1.1rem;border-radius:999px;border:none;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.button.primary.svelte-hszu4t{background:#3c63c8d9;color:#f8fafc}.button.primary.svelte-hszu4t:hover,.button.primary.svelte-hszu4t:focus{background:#5684e8f2}.button.primary.svelte-hszu4t:disabled{background:#3c63c880;cursor:not-allowed}.button.secondary.svelte-hszu4t{background:#1d2945e6;color:#d1d5e5}.button.secondary.svelte-hszu4t:hover,.button.secondary.svelte-hszu4t:focus{background:#2e4065f2}.button.secondary.svelte-hszu4t:disabled{opacity:.6;cursor:not-allowed}.status.svelte-15rpl30{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.citations-modal-list.svelte-15rpl30{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.25rem}.citations-modal-item.svelte-15rpl30{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.65rem}.citations-modal-header.svelte-15rpl30{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.citations-modal-number.svelte-15rpl30{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#facc15}.citations-modal-link.svelte-15rpl30{font-size:.75rem;font-weight:600;padding:.3rem .65rem;border-radius:.4rem;background:#38bdf81f;color:#7dd3fc;text-decoration:none;border:1px solid rgba(56,189,248,.25);transition:background .14s ease,border-color .14s ease,color .14s ease}.citations-modal-link.svelte-15rpl30:hover,.citations-modal-link.svelte-15rpl30:focus-visible{background:#38bdf833;border-color:#38bdf873;color:#bae6fd;outline:none}.citations-modal-title.svelte-15rpl30{margin:0;font-size:.95rem;font-weight:600;color:#f3f5ff;line-height:1.4}.citations-modal-url.svelte-15rpl30{font-size:.75rem;color:#94addb;word-break:break-all;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.citations-modal-content.svelte-15rpl30{margin:0;font-size:.85rem;line-height:1.5;color:#e0e7ffd9;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35)}.citations-modal-meta.svelte-15rpl30{display:flex;gap:.85rem;font-size:.72rem;color:#9fb3d8bf;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.message.svelte-1cnmaqf{display:flex}.message.user.svelte-1cnmaqf{justify-content:flex-end}.message.assistant.svelte-1cnmaqf{justify-content:flex-start}.bubble.svelte-1cnmaqf{max-width:75%;padding:1rem 1.5rem;border-radius:.95rem;background:#121a2ed9;border:1px solid rgba(58,77,120,.38);position:relative}.message.user.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:#263258c7}.message.assistant.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:transparent;border:none;padding:.5rem 0}.message-meta.svelte-1cnmaqf{margin-top:.35rem;font-size:.75rem;color:#ffffffa6;display:flex}.message.assistant.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-start}.message.user.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-end}.message-meta.svelte-1cnmaqf time:where(.svelte-1cnmaqf){letter-spacing:.02em}.sender.svelte-1cnmaqf{display:flex;align-items:center;gap:.65rem;font-size:.75rem;font-weight:600;margin-bottom:.5rem;color:#7b87a1}.sender-label.svelte-1cnmaqf{text-transform:uppercase}.sender-label.svelte-1cnmaqf .sender-model:where(.svelte-1cnmaqf){text-transform:none;font-weight:500;display:inline-flex;align-items:center;gap:.35rem}.sender-token-count.svelte-1cnmaqf{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;background:#7d8baa29;color:#cbd5f5;font-size:.7rem;font-weight:600;text-transform:none;white-space:nowrap}.sender-model-text.svelte-1cnmaqf{display:inline-block}.sender-reasoning-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#c084fc;background:none;border:none;padding:0;cursor:pointer}.sender-reasoning-indicator.streaming.svelte-1cnmaqf{animation:svelte-1cnmaqf-reasoningPulse 1.25s ease-in-out infinite}.sender-reasoning-indicator.svelte-1cnmaqf:hover,.sender-reasoning-indicator.svelte-1cnmaqf:focus-visible{color:#e9d5ff;outline:none}.sender-tool-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;gap:.35rem;min-height:1.5rem;padding:.2rem .5rem;border-radius:999px;color:#38bdf8;background:#38bdf81a;border:1px solid rgba(56,189,248,.25);font-size:.75rem;font-weight:600;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease}.sender-tool-indicator.svelte-1cnmaqf:hover,.sender-tool-indicator.svelte-1cnmaqf:focus-visible{color:#7dd3fc;background:#38bdf82e;border-color:#7dd3fc8c;outline:none}.sender-tool-count.svelte-1cnmaqf{font-size:.7rem;font-weight:700}.sender-tool-tokens.svelte-1cnmaqf{font-size:.7rem;font-weight:500;color:#94e9ffe6}.sender-citation-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#facc15;background:none;border:none;padding:0;cursor:pointer}.sender-citation-indicator.svelte-1cnmaqf:hover,.sender-citation-indicator.svelte-1cnmaqf:focus-visible{color:#fde68a;outline:none}.message-content.svelte-1cnmaqf{line-height:1.55;font-size:.95rem;color:#e2e8f8;overflow:visible}.message-content.svelte-1cnmaqf p{margin:0 0 .85rem}.message-content.svelte-1cnmaqf p:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#182238cc;border-radius:.35rem;padding:.15rem .35rem;font-size:.85rem;word-break:break-word}.message-content.svelte-1cnmaqf pre{margin:0 0 1rem;background:#0d1422e6;border-radius:.65rem;border:1px solid rgba(67,91,136,.35);padding:1rem 1.1rem;overflow-x:auto}.message-content.svelte-1cnmaqf pre.copy-code-block{position:relative;padding-top:2.2rem}.message-content.svelte-1cnmaqf pre:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf pre code{background:transparent;padding:0;font-size:.85rem;display:block}.message-content.svelte-1cnmaqf .copy-code-button{position:absolute;top:.65rem;right:.75rem;width:1.85rem;height:1.85rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.5rem;background:#09101cd9;color:#d4e0f5d9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.message-content.svelte-1cnmaqf .copy-code-button:hover,.message-content.svelte-1cnmaqf .copy-code-button:focus-visible{color:#f8fafc;background:#1c263cf2;transform:translateY(-1px);outline:none}.message-content.svelte-1cnmaqf .copy-code-button:active{transform:translateY(0)}.message-content.svelte-1cnmaqf .copy-code-button.copied{color:#34d399}.message-content.svelte-1cnmaqf .copy-code-button svg{width:1rem;height:1rem;display:block}.message-content.svelte-1cnmaqf table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.85rem}.message-content.svelte-1cnmaqf table:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf th,.message-content.svelte-1cnmaqf td{border:1px solid rgba(67,91,136,.45);padding:.5rem .75rem;text-align:left;vertical-align:top}.message-content.svelte-1cnmaqf th{background:#182238d9;font-weight:600;color:#f8fafc}.message-content.svelte-1cnmaqf a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.message-content.svelte-1cnmaqf img{display:block;max-width:100%;height:auto;margin:.85rem 0}.bubble.has-attachments.svelte-1cnmaqf{max-width:100%}.message-attachments.svelte-1cnmaqf{display:flex;flex-direction:column;gap:.75rem;margin-top:.85rem;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf){margin:0;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-shell:where(.svelte-1cnmaqf){position:relative}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){display:block;width:100%;border-radius:.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#10182873;transition:transform .12s ease,border-color .12s ease}.message.user.svelte-1cnmaqf .message-attachments:where(.svelte-1cnmaqf) .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){background:#2a3b6099}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):hover,.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):focus-visible{border-color:#93c5fda6;transform:translateY(-1px);outline:none}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) img:where(.svelte-1cnmaqf){display:block;width:100%;height:auto;max-height:70vh;object-fit:contain}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf){position:absolute;left:50%;bottom:.85rem;transform:translate(-50%,8px);opacity:0;pointer-events:none;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:999px;border:1px solid rgba(147,197,253,.75);background:#080e1cd1;color:#e2e8f0;font-size:.75rem;letter-spacing:.01em;text-transform:uppercase;transition:opacity .15s ease,transform .15s ease;z-index:2}.message-attachments.svelte-1cnmaqf .attachment-shell:where(.svelte-1cnmaqf):hover .attachment-edit:where(.svelte-1cnmaqf),.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):focus-visible{opacity:1;transform:translate(-50%);pointer-events:auto;outline:none}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):hover{background:#1e2a48eb;border-color:#b4cfffd9}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf) svg{width:.85rem;height:.85rem}.message-attachments.svelte-1cnmaqf .attachment-edit-label:where(.svelte-1cnmaqf){font-weight:600}.message-actions.svelte-1cnmaqf{position:absolute;bottom:-1.6rem;display:flex;gap:.35rem;padding:.1rem .2rem;background:transparent;border:none;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5}.message.svelte-1cnmaqf:hover .message-actions:where(.svelte-1cnmaqf),.message.svelte-1cnmaqf:focus-within .message-actions:where(.svelte-1cnmaqf),.message-actions.svelte-1cnmaqf:hover{opacity:1;pointer-events:auto}.message.assistant.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){left:0;right:auto;justify-content:flex-start}.message.user.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){right:0;left:auto;justify-content:flex-end;bottom:-2.1rem}.message-action.svelte-1cnmaqf{width:1.8rem;height:1.8rem;border-radius:.5rem;border:none;background:transparent;color:#d4e0f5cc;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;position:relative;transition:color .12s ease,transform .12s ease}.message-action.svelte-1cnmaqf:hover,.message-action.svelte-1cnmaqf:focus-visible{color:#f8fafc;transform:translateY(-1px);outline:none}.message-action.svelte-1cnmaqf:active{transform:translateY(0)}.message-action.copied.svelte-1cnmaqf{color:#34d399}.message-action.svelte-1cnmaqf:disabled{opacity:.4;cursor:not-allowed;transform:none}@keyframes svelte-1cnmaqf-reasoningPulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}50%{transform:scale(1.15);filter:drop-shadow(0 0 6px rgba(192,132,252,.5))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}}.reasoning-modal-layer.svelte-2cxve6{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.reasoning-modal-backdrop.svelte-2cxve6{position:absolute;inset:0;background:#04081499;border:none;padding:0;margin:0;cursor:pointer}.reasoning-modal-backdrop.svelte-2cxve6:focus-visible{outline:2px solid #38bdf8}.reasoning-modal.svelte-2cxve6{position:relative;width:min(520px,100%);max-height:min(75vh,640px);background:#0a101cf2;border:1px solid rgba(78,54,128,.4);border-radius:1rem;box-shadow:0 18px 48px #0308148c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.reasoning-modal-header.svelte-2cxve6{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(78,54,128,.35)}.reasoning-modal-header.svelte-2cxve6 h2:where(.svelte-2cxve6){margin:0;font-size:1.05rem;font-weight:600}.reasoning-modal-subtitle.svelte-2cxve6{margin:.35rem 0 0;font-size:.75rem;color:#9f8ed2;word-break:break-all}.reasoning-modal-actions.svelte-2cxve6{display:flex;align-items:center;gap:.75rem}.modal-close.svelte-2cxve6{background:none;border:1px solid rgba(124,58,237,.4);border-radius:999px;color:#f3f5ff;padding:.35rem .9rem;cursor:pointer;font-size:.75rem}.modal-close.svelte-2cxve6:hover,.modal-close.svelte-2cxve6:focus-visible{border-color:#c084fc;color:#c084fc;outline:none}.reasoning-status.svelte-2cxve6{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;padding:.25rem .65rem;border-radius:999px;border:1px solid rgba(192,132,252,.35);color:#e9d5ff;background:#7c3aed1f}.reasoning-status.streaming.svelte-2cxve6{animation:svelte-2cxve6-reasoningStatusPulse 1.4s ease-in-out infinite}.reasoning-status-indicator.svelte-2cxve6{width:.5rem;height:.5rem;border-radius:999px;background:#c084fc;position:relative}.reasoning-modal-body.svelte-2cxve6{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.reasoning-modal-status.svelte-2cxve6{margin:0;font-size:.9rem;color:#b8a6e3}.reasoning-modal-text.svelte-2cxve6{margin:0;font-size:.88rem;line-height:1.5;white-space:pre-wrap;background:#182034d9;border-radius:.75rem;border:1px solid rgba(99,102,241,.3);padding:.85rem 1rem;color:#f3f5ff;overflow-x:auto}@keyframes svelte-2cxve6-reasoningStatusPulse{0%{box-shadow:0 0 #c084fc73}70%{box-shadow:0 0 0 10px #c084fc00}to{box-shadow:0 0 #c084fc00}}.tool-usage-modal{width:min(520px,100%);max-height:min(75vh,600px)}.tool-usage-body{padding-bottom:1.5rem}.tool-usage-modal-list.svelte-12mixwl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.tool-usage-modal-item.svelte-12mixwl{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem}.tool-usage-modal-item-header.svelte-12mixwl{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.tool-usage-modal-name.svelte-12mixwl{font-size:.95rem;font-weight:600;color:#f3f5ff}.tool-usage-modal-status-pill.svelte-12mixwl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .45rem;border-radius:999px;background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.25)}.tool-usage-modal-details.svelte-12mixwl{border-top:1px solid rgba(67,91,136,.35);padding-top:.5rem}.tool-usage-modal-summary.svelte-12mixwl{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:.02em;color:#94addb}.tool-usage-modal-summary.svelte-12mixwl::-webkit-details-marker{display:none}.tool-usage-modal-summary.svelte-12mixwl:before{content:"▸";transition:transform .2s ease;font-size:.75rem}.tool-usage-modal-details[open].svelte-12mixwl .tool-usage-modal-summary:where(.svelte-12mixwl):before{transform:rotate(90deg)}.tool-usage-modal-section.svelte-12mixwl{margin-top:.65rem;display:flex;flex-direction:column;gap:.35rem}.tool-usage-modal-section-label.svelte-12mixwl{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#7b92c4}.tool-usage-modal-block.svelte-12mixwl{margin:0;font-size:.85rem;line-height:1.5;background:#0f1626d9;border-radius:.6rem;border:1px solid rgba(67,91,136,.35);padding:.75rem .85rem;color:#dbe9ff;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl p{margin:0 0 .75rem}.tool-usage-modal-block.svelte-12mixwl p:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#1c263ccc;border-radius:.35rem;padding:.1rem .35rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl pre{margin:0 0 .85rem;background:#0d1422e6;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);padding:.85rem;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl pre.copy-code-block{position:relative;padding-top:2rem}.tool-usage-modal-block.svelte-12mixwl pre:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl .copy-code-button{position:absolute;top:.55rem;right:.6rem;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.45rem;background:#080e18d9;color:#deeaffd9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:hover,.tool-usage-modal-block.svelte-12mixwl .copy-code-button:focus-visible{color:#f1f5ff;background:#1a2436f2;transform:translateY(-1px);outline:none}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:active{transform:translateY(0)}.tool-usage-modal-block.svelte-12mixwl .copy-code-button.copied{color:#34d399}.tool-usage-modal-block.svelte-12mixwl .copy-code-button svg{width:.95rem;height:.95rem;display:block}.tool-usage-modal-block.svelte-12mixwl table{width:100%;border-collapse:collapse;margin:0 0 .75rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl table:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl th,.tool-usage-modal-block.svelte-12mixwl td{border:1px solid rgba(67,91,136,.45);padding:.45rem .6rem;text-align:left;vertical-align:top}.tool-usage-modal-block.svelte-12mixwl th{background:#182238d9;font-weight:600;color:#f1f5ff}.tool-usage-modal-block.svelte-12mixwl a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.tool-usage-status.svelte-12mixwl{font-size:.78rem}.status.svelte-1oswcu0{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.details-grid.svelte-1oswcu0{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;padding:.5rem 0}.detail-item.svelte-1oswcu0{background:#090e1a99;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.detail-item.full-width.svelte-1oswcu0{grid-column:1 / -1}.detail-label.svelte-1oswcu0{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94addb}.detail-value.svelte-1oswcu0{font-size:1.1rem;font-weight:600;color:#f3f5ff;line-height:1.3}.detail-value.engine.svelte-1oswcu0{color:#7dd3fc}.detail-value.prompt.svelte-1oswcu0{font-size:.9rem;font-weight:400;line-height:1.5;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;white-space:pre-wrap;word-break:break-word}.detail-description.svelte-1oswcu0{font-size:.8rem;color:#9fb3d8bf;line-height:1.4}@media (max-width: 640px){.details-grid.svelte-1oswcu0{grid-template-columns:1fr}}.conversation.svelte-26wxji{flex:1 1 auto;overflow-y:auto;padding:2rem 0;display:flex;flex-direction:column;gap:1.5rem;scroll-padding-top:4rem;scroll-padding-bottom:4rem;scrollbar-gutter:stable}.conversation-item.svelte-26wxji{padding:0 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.conversation.svelte-26wxji{padding:1.5rem 0;gap:1.25rem}.conversation-item.svelte-26wxji{padding:0 1.5rem}}@media (max-width: 640px){.conversation.svelte-26wxji{padding:1rem 0;gap:1rem}.conversation-item.svelte-26wxji{padding:0 1rem}}@media (max-width: 480px){.conversation-item.svelte-26wxji{padding:0 .75rem}}.presets-modal{width:min(820px,calc(100% - 2rem));max-height:min(80vh,720px)}.presets-body{display:flex;flex-direction:column;gap:1.25rem}.create-row.svelte-14pmhe{display:flex;gap:.5rem}.create-row.svelte-14pmhe input[type=text]:where(.svelte-14pmhe){flex:1;min-width:200px}.preset-list.svelte-14pmhe{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.preset-item.svelte-14pmhe{display:flex;align-items:center;gap:.75rem;border:1px solid rgba(37,49,77,.6);border-radius:.65rem;padding:.6rem .75rem;background:#0c132299}.preset-item.svelte-14pmhe .meta:where(.svelte-14pmhe){flex:1;min-width:0}.preset-item.svelte-14pmhe .name:where(.svelte-14pmhe){font-weight:600;display:flex;align-items:center;gap:.5rem}.default-badge.svelte-14pmhe{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.4)}.filters-badge.svelte-14pmhe{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#3b82f626;color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.filters-badge.svelte-14pmhe svg:where(.svelte-14pmhe){width:12px;height:12px}.preset-item.svelte-14pmhe .details:where(.svelte-14pmhe){display:flex;gap:.5rem;color:#9fb3d8;font-size:.85rem;flex-wrap:wrap}.preset-item.svelte-14pmhe .details:where(.svelte-14pmhe) .model:where(.svelte-14pmhe){color:#c7d7f4}.preset-item.svelte-14pmhe .actions:where(.svelte-14pmhe){display:inline-flex;gap:.4rem}.preset-item.svelte-14pmhe .actions:where(.svelte-14pmhe) button:where(.svelte-14pmhe){display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap;font:inherit}.suggestions.svelte-1r3jne1{display:flex;flex-wrap:wrap;gap:.75rem;padding:1.5rem 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}.suggestion-item.svelte-1r3jne1{position:relative;display:inline-flex;align-items:center}.suggestion-btn.svelte-1r3jne1{font-size:.85rem;padding:.625rem 2.5rem .625rem 1.25rem;border-radius:999px;background:#141e3366;border:1px solid rgba(57,76,114,.6);color:inherit;cursor:pointer;font:inherit}.suggestion-btn.svelte-1r3jne1:hover,.suggestion-btn.svelte-1r3jne1:focus{border-color:#8cb4ff99}.delete-btn.svelte-1r3jne1{position:absolute;right:0;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:none;background:transparent;color:#ff6b6b;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.delete-btn.svelte-1r3jne1:hover:not([disabled]){color:#f44}.delete-btn[disabled].svelte-1r3jne1{opacity:.5;cursor:not-allowed}.add-btn.svelte-1r3jne1{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .18s ease,color .18s ease}.add-btn.svelte-1r3jne1:hover,.add-btn.svelte-1r3jne1:focus-visible{transform:translateY(-1px) scale(1.04);color:#7effb8;text-shadow:0 0 6px rgba(127,255,184,.45)}.add-btn.svelte-1r3jne1:active{transform:scale(.92);text-shadow:none}.add-form.svelte-1r3jne1{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){padding:.5rem .75rem;border-radius:.5rem;background:#141e3399;border:1px solid rgba(57,76,114,.6);color:inherit;font:inherit}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1)::placeholder{color:#fff6}.add-submit-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:#14503366;border:1px solid rgba(57,114,76,.6);color:#a0e0b0;cursor:pointer;font:inherit}.add-cancel-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:transparent;border:1px solid rgba(114,57,57,.6);color:#e0a0a0;cursor:pointer;font:inherit}@media (max-width: 1024px){.suggestions.svelte-1r3jne1{padding:1.25rem 1.5rem;gap:.65rem}}@media (max-width: 768px){.suggestions.svelte-1r3jne1{padding:1rem;gap:.5rem}.suggestion-item.svelte-1r3jne1{width:100%}.suggestion-btn.svelte-1r3jne1{width:100%;text-align:center}.add-btn.svelte-1r3jne1,.add-form.svelte-1r3jne1{width:100%}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){flex:1;min-width:120px}}@media (max-width: 480px){.suggestions.svelte-1r3jne1{padding:.85rem .75rem;gap:.45rem}}.speech-settings-modal{width:min(640px,100%)}.speech-settings-body{display:flex;flex-direction:column;gap:1.25rem}.speech-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220f0;padding:1.15rem;display:flex;flex-direction:column;gap:1rem}.speech-card-header{display:flex;flex-direction:column;gap:.3rem}.speech-card-header h3{margin:0;font-size:.95rem;font-weight:600}.speech-card-header p{margin:0;font-size:.78rem;color:#8094bb}.model-presets-row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.speech-field{display:flex;flex-direction:column;gap:.4rem}.speech-field .field-label,.speech-field label{font-size:.8rem;font-weight:600}.presets-field .speech-presets{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.toggle-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.toggle-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:.75rem;border:1px solid rgba(71,99,150,.45);background:#0a101cd9}.toggle-item input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.toggle-item span{font-size:.82rem}.timing-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.auto-submit-block{display:flex;flex-direction:column;gap:.75rem;border:1px solid rgba(71,99,150,.45);border-radius:.85rem;padding:.85rem 1rem;background:#0a101cd9}.auto-submit-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.inline-checkbox{display:inline-flex;align-items:center;gap:.5rem}.inline-checkbox input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.delay-inline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.delay-inline input[type=number]{width:120px}.delay-label{font-size:.78rem;font-weight:500;color:#cbd5f5}.speech-hint{font-size:.72rem;color:#8094bb}.model-settings-footer .status{font-size:.78rem}.model-settings-footer .status[data-variant=success]{color:#34d399}.model-settings-footer .status[data-variant=error]{color:#f87171}.model-settings-footer .status[data-variant=pending]{color:#facc15}@media (max-width: 560px){.model-presets-row{grid-template-columns:minmax(0,1fr)}.delay-inline input[type=number]{width:min(200px,100%)}}@media (max-width: 440px){.delay-inline{flex-direction:column;align-items:flex-start}}.system-settings-layer{z-index:150}.system-settings-modal{width:min(720px,100%)}.system-settings-header{align-items:center}.system-settings-body{display:flex;flex-direction:column;gap:1.25rem}.system-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220eb;padding:1.1rem;display:flex;flex-direction:column;gap:.9rem}.system-card-body{display:flex;flex-direction:column;gap:.75rem}.system-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.system-card-header h3{margin:0;font-size:.95rem;font-weight:600}.system-card-caption{margin:.35rem 0 0;font-size:.78rem;color:#8094bb}.system-card-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.status.success{color:#34d399}.google-auth-body{gap:.65rem}.google-auth-email{color:#38bdf8;font-weight:600}.google-auth-actions{display:flex;align-items:center;gap:.5rem}.google-services-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));font-size:.8rem;color:#9fb6e3}.google-services-list li:before{content:"•";color:#38bdf8;margin-right:.45rem}.system-prompt{min-height:140px;line-height:1.45}.server-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.server-row{border:1px solid rgba(71,99,150,.35);border-radius:.75rem;padding:.85rem;background:#080d18e6;display:flex;flex-direction:column;gap:.75rem}.server-row[data-pending=true]{opacity:.6}.server-row-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.server-toggles{display:flex;align-items:center;gap:1rem;flex-shrink:0}.running-toggle{color:#34d399}.running-toggle input{accent-color:#34d399}.frontend-toggle{color:#38bdf8}.frontend-toggle input{accent-color:#38bdf8}.kiosk-toggle{color:#a78bfa}.kiosk-toggle input{accent-color:#a78bfa}.toggle-disabled{opacity:.4;cursor:not-allowed}.server-heading h4{margin:0;font-size:.9rem;font-weight:600}.server-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.75rem;color:#8ea7d2}.server-meta .connected{color:#34d399}.server-meta .offline{color:#f87171}.server-row-body{display:flex;flex-direction:column;gap:.65rem}.tools-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;border-radius:.5rem;border:1px solid rgba(71,99,150,.35);background:#0a101cb3;color:#8ea7d2;padding:.55rem .75rem;font-size:.8rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.tools-toggle:hover{border-color:#38bdf8;color:#38bdf8;background:#0a101cd9}.tools-toggle.open{border-color:#38bdf8;color:#38bdf8;background:#10192bd9}.tools-toggle__label{font-weight:500}.tools-toggle__icon{transition:transform .2s ease;flex-shrink:0}.tools-toggle.open .tools-toggle__icon{transform:rotate(180deg)}.tools-dropdown{display:flex;flex-direction:column;gap:.65rem;padding-top:.25rem}.shell-server-settings{display:flex;flex-direction:column;gap:.6rem;padding:.65rem .75rem;border:1px solid rgba(71,99,150,.3);border-radius:.65rem;background:#0a101cd9}.shell-setting{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.shell-setting__info{display:flex;flex-direction:column;gap:.2rem;min-width:220px;flex:1}.shell-setting .password-input-wrapper{width:100%;max-width:320px}.tool-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.tool-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .5rem;border:1px solid rgba(71,99,150,.25);border-radius:.6rem;background:#0c1220bf}.tool-row[data-disabled=true]{opacity:.7}.tool-info{display:flex;flex-direction:column;gap:.2rem}.tool-name{font-weight:600;font-size:.85rem}.tool-qualified{font-size:.7rem;color:#8094bb}.toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:#cfd8f3}.toggle input{width:1.2rem;height:1.2rem;accent-color:#38bdf8}.system-settings-footer{display:flex;align-items:center;justify-content:space-between}.status.warning{color:#fbbf24}.status.muted{color:#8094bb}.monarch-form{display:flex;flex-direction:column;gap:.85rem}.monarch-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#cfd8f3}.password-input-wrapper{display:flex;align-items:center;position:relative}.password-input-wrapper input{flex:1;padding-right:2.5rem}.password-input-wrapper .btn{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);padding:.2rem .4rem;width:auto;height:auto;border:none;background:none;color:#8094bb;box-shadow:none}.password-input-wrapper .btn:hover,.password-input-wrapper .btn:focus-visible{color:#38bdf8;box-shadow:none}.shell-setting input[type=text],.shell-setting input[type=password],.shell-setting select{width:100%;max-width:320px}.keyterms-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;resize:vertical;min-height:70px;line-height:1.4}.keyterms-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.keyterms-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.keyterms-input.svelte-10jke8k::placeholder{color:var(--color-muted);opacity:.6}.setting-select.svelte-10jke8k{display:flex;flex-direction:column;gap:.5rem}.select-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;cursor:pointer}.select-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.filter-section.svelte-10u46cr{border:1px solid #1c253f;border-radius:.9rem;padding:0;background:#0a101deb;transition:border-color .2s ease,background .2s ease}.filter-section.expanded.svelte-10u46cr{border-color:#2a3760;background:#0c1322f2}.filter-section.svelte-10u46cr header:where(.svelte-10u46cr){margin:0}.toggle.svelte-10u46cr{width:100%;border:none;background:none;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.95rem 1.1rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:color .2s ease}.toggle.svelte-10u46cr:hover,.toggle.svelte-10u46cr:focus-visible{color:#38bdf8}.toggle.locked.svelte-10u46cr{cursor:default;pointer-events:none;color:inherit}.toggle.svelte-10u46cr:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.toggle.svelte-10u46cr:focus:not(:focus-visible){outline:none}.title.svelte-10u46cr{flex:1;text-align:left}.chevron.svelte-10u46cr{width:.9rem;height:.9rem;position:relative;transition:transform .25s ease}.chevron.svelte-10u46cr:before{content:"";position:absolute;inset:0;mask:url('data:image/svg+xml,%3Csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath fill="white" d="m8.59 16.59 1.41 1.41L16 12l-5.99-5.99-1.41 1.41L13.17 12z"/%3E%3C/svg%3E') center / contain no-repeat;background:currentColor}.filter-section.expanded.svelte-10u46cr .chevron:where(.svelte-10u46cr){transform:rotate(90deg)}.content.svelte-10u46cr{padding:1rem 1.1rem 1.2rem;border-top:1px solid rgba(28,37,63,.75)}.filter-section.collapsed.svelte-10u46cr .content:where(.svelte-10u46cr){display:none}.range-slider.svelte-1q5g18c{position:relative;width:100%;height:2.25rem}.range-slider[data-disabled=true].svelte-1q5g18c{opacity:.5;pointer-events:none}.track.svelte-1q5g18c,.range.svelte-1q5g18c{position:absolute;inset:50% 0 auto;transform:translateY(-50%);height:.35rem;border-radius:999px}.track.svelte-1q5g18c{background:#38538459}.range.svelte-1q5g18c{background:linear-gradient(90deg,#2563eb,#38bdf8)}input[type=range].svelte-1q5g18c{position:absolute;inset:0;margin:0;width:100%;height:100%;background:none;pointer-events:none;appearance:none;-webkit-appearance:none}input[type=range].svelte-1q5g18c::-webkit-slider-runnable-track{height:0}input[type=range].svelte-1q5g18c::-moz-range-track{height:0;background:none}input[type=range].svelte-1q5g18c::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c::-moz-range-thumb{pointer-events:auto;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c:hover::-webkit-slider-thumb,input[type=range].svelte-1q5g18c:focus-visible::-webkit-slider-thumb{transform:scale(1.05);border-color:#38bdf8}input[type=range].svelte-1q5g18c:hover::-moz-range-thumb,input[type=range].svelte-1q5g18c:focus-visible::-moz-range-thumb{transform:scale(1.05);border-color:#38bdf8}.thumb-min.svelte-1q5g18c{z-index:3}.thumb-max.svelte-1q5g18c{z-index:4}.options.svelte-2m3fny{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:start}.options[data-variant=columns].svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.options[data-variant=compact].svelte-2m3fny{display:flex;flex-wrap:wrap;gap:.4rem}.pill.svelte-2m3fny{border-radius:.5rem;border:1px solid rgba(31,42,69,.65);background:#0e1421e6;color:#d4daee;padding:.45rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease;text-align:left}.options[data-variant=compact].svelte-2m3fny .pill:where(.svelte-2m3fny){width:auto;padding:.3rem .65rem;border-radius:999px;gap:.5rem}.pill.svelte-2m3fny .label:where(.svelte-2m3fny){flex:1;white-space:normal}.indicator.svelte-2m3fny{width:.55rem;height:.55rem;border-radius:50%;background:#38bdf8;opacity:0;transition:opacity .2s ease}.pill.svelte-2m3fny:hover{border-color:#38bdf8;color:#f2f7ff;transform:translateY(-1px)}.pill.svelte-2m3fny:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.pill.svelte-2m3fny:focus:not(:focus-visible){outline:none}.pill.active.svelte-2m3fny{background:#233c68d9;border-color:#38bdf8;color:#38bdf8}.pill.active.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1}.pill.exclude.svelte-2m3fny{background:#ef444426;border-color:#f87171bf;color:#fca5a5}.pill.exclude.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1;background:#f87171}.pill.exclude.svelte-2m3fny:hover{border-color:#f87171;color:#fee2e2}.options[data-variant=compact].svelte-2m3fny .indicator:where(.svelte-2m3fny){display:none}.options[data-variant=compact].svelte-2m3fny .pill.active:where(.svelte-2m3fny){background:#38bdf826}.options[data-variant=compact].svelte-2m3fny .pill.exclude:where(.svelte-2m3fny){background:#f8717133;border-color:#f87171b3;color:#fecaca}.empty.svelte-2m3fny{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.options.svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (max-width: 480px){.options.svelte-2m3fny{grid-template-columns:1fr}}.filters-panel.svelte-1247vns{border:1px solid #141d33;border-radius:1rem;background:#080d18d9;display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem;min-height:0}.filters-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.filters-header.svelte-1247vns h3:where(.svelte-1247vns){margin:0}.filters-status.svelte-1247vns{margin:.2rem 0 0;font-size:.82rem;color:#9ca4bc}.filters-status.muted.svelte-1247vns{color:#6f7892}.filters-content.svelte-1247vns{padding:0;display:flex;flex-direction:column;gap:1rem;flex:1 1 auto;min-height:0;overflow-y:auto}.slider-group.svelte-1247vns{display:flex;flex-direction:column;gap:.85rem}.slider-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.88rem}.slider-label.svelte-1247vns{color:#b9c2d7}.slider-value.svelte-1247vns{font-variant-numeric:tabular-nums;color:#f0f4ff;font-weight:600}.slider.svelte-1247vns{width:100%;appearance:none;height:.35rem;border-radius:999px;background:#22314e99;outline:none;cursor:pointer;accent-color:#2563eb}.slider.svelte-1247vns:disabled{cursor:not-allowed;opacity:.45}.slider.svelte-1247vns::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-track{background:transparent}.slider-scale.svelte-1247vns{display:flex;justify-content:space-between;font-size:.78rem;color:#6f7892;text-transform:uppercase;letter-spacing:.04em}.price-scale.svelte-1247vns{gap:.5rem}.slider-scale.svelte-1247vns span:where(.svelte-1247vns){flex:1;text-align:center}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):first-child{text-align:left}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):last-child{text-align:right}.hint.svelte-1247vns{margin:0;font-size:.85rem;color:#7f89a3}@media (max-width: 1024px){.filters-panel.svelte-1247vns{order:-1;max-height:none}.filters-content.svelte-1247vns{max-height:none;flex:none;min-height:auto;overflow:visible}}@media (max-width: 480px){.filters-panel.svelte-1247vns{padding:1rem}}.sort.svelte-3bn1bu{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;flex-wrap:nowrap;white-space:nowrap}.sort-label.svelte-3bn1bu{color:#d4daee;font-weight:500;white-space:nowrap}.sort-select.svelte-3bn1bu{min-width:140px;flex-shrink:0}.explorer-header.svelte-d2gcy1{display:grid;grid-template-columns:1fr;align-items:start;row-gap:.75rem}.explorer-header.svelte-d2gcy1 h2:where(.svelte-d2gcy1){margin:0}.title-group.svelte-d2gcy1{display:flex;align-items:center;gap:.75rem;justify-self:start;flex-wrap:wrap}.chat-link.svelte-d2gcy1{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font-size:.88rem;font-weight:600;letter-spacing:.02em}.chat-link.svelte-d2gcy1 .label:where(.svelte-d2gcy1){line-height:1}.chat-link.svelte-d2gcy1 .icon:where(.svelte-d2gcy1){width:1.1rem;height:1.1rem;flex-shrink:0;display:block}.chat-link.svelte-d2gcy1:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}.summary.svelte-d2gcy1{margin:0;color:#8a92ac;font-size:.88rem;white-space:nowrap}.header-controls.svelte-d2gcy1{display:flex;flex-direction:column;gap:.75rem;width:min(100%,320px);justify-self:start}.search.svelte-d2gcy1{width:100%;min-width:0}.search.svelte-d2gcy1 input:where(.svelte-d2gcy1){width:100%}.meta-row.svelte-d2gcy1{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.75rem;width:auto;white-space:nowrap}.summary.svelte-d2gcy1,.meta-row.svelte-d2gcy1 .sort{flex:0 0 auto}.visually-hidden.svelte-d2gcy1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 480px){.meta-row.svelte-d2gcy1{gap:.5rem}.summary.svelte-d2gcy1{white-space:normal}}.model-card.svelte-b7ahyp{border:1px solid #1f2c48;border-radius:.85rem;padding:.85rem;display:grid;gap:.75rem;background:#0c1324;height:100%;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.model-card.svelte-b7ahyp:hover{border-color:#38bdf899;box-shadow:0 4px 18px #070c1673;transform:translateY(-1px)}.model-card.svelte-b7ahyp:focus-visible{outline:2px solid rgba(56,189,248,.9);outline-offset:2px;border-color:#38bdf8b3;box-shadow:0 0 0 4px #38bdf82e}header.svelte-b7ahyp{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem}h4.svelte-b7ahyp{margin:0;font-size:1rem;font-weight:600}.info-section.svelte-b7ahyp{display:grid}.info-grid.svelte-b7ahyp{margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.info-item.svelte-b7ahyp{display:grid;gap:.2rem;padding:.45rem .6rem;border-radius:.75rem;background:#10172bd9;border:1px solid rgba(56,83,132,.35)}.info-item.svelte-b7ahyp dt:where(.svelte-b7ahyp){margin:0;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#7d87a2}.info-item.svelte-b7ahyp dd:where(.svelte-b7ahyp){margin:0;font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2;color:#e2e8f0;word-break:break-word}.active-filters.svelte-v6y1b4{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .25rem}.title.svelte-v6y1b4{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7f89a3;margin:0}.chip-list.svelte-v6y1b4{display:flex;flex-wrap:wrap;gap:.4rem}.chip.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid rgba(31,42,69,.7);background:#0e1421e6;color:#ccd3ea;padding:.25rem .65rem;font-size:.78rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.chip.svelte-v6y1b4:hover{transform:translateY(-1px);border-color:#38bdf8}.chip.svelte-v6y1b4:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.chip.svelte-v6y1b4:focus:not(:focus-visible){outline:none}.chip.include.svelte-v6y1b4{border-color:#38bdf899;background:#1f527859;color:#e0f2ff}.chip.exclude.svelte-v6y1b4{border-color:#f87171b3;background:#6e161659;color:#fee2e2}.chip-label.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.3rem}.chip-category.svelte-v6y1b4{font-weight:600}.chip-value.svelte-v6y1b4{font-weight:500}.chip-remove.svelte-v6y1b4{font-size:.85rem;line-height:1}@media (max-width: 640px){.active-filters.svelte-v6y1b4{padding:.25rem 0}.chip.svelte-v6y1b4{font-size:.75rem}}.results.svelte-6ipifh{display:flex;flex-direction:column;gap:1.25rem;min-height:0;flex:1}.model-grid.svelte-6ipifh{list-style:none;margin:0;padding:0 .25rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;overflow-y:auto}.empty.svelte-6ipifh{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.model-grid.svelte-6ipifh{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0}}@media (max-width: 480px){.model-grid.svelte-6ipifh{grid-template-columns:1fr}}.modal-backdrop.svelte-drtqmy{position:fixed;inset:0;background:#030a16a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.model-explorer.svelte-drtqmy{position:fixed;inset:4vh;background:#080d18;border:1px solid #141d33;border-radius:1rem;padding:1.5rem;display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:1.75rem;row-gap:1.25rem;z-index:100;max-height:90vh;overflow:hidden}.model-explorer[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.explorer-header{grid-column:1;grid-row:1;align-self:start}.body.svelte-drtqmy{flex:1;min-height:0}.body[data-compact=false].svelte-drtqmy{display:contents}.body[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.body-toolbar.svelte-drtqmy{display:none}.filters-toggle.svelte-drtqmy{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;border:1px solid #25314d;background:#0b111de6;color:#f2f4f8;padding:.45rem .95rem;font-weight:600;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.filters-toggle.svelte-drtqmy:hover{border-color:#38bdf8;color:#38bdf8}.filters-toggle.open.svelte-drtqmy{border-color:#38bdf8;color:#38bdf8;background:#10192bf2}.filters-toggle__status.svelte-drtqmy{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#041225;background:#38bdf847;border-radius:999px;padding:.12rem .5rem}.filters-panel-container.svelte-drtqmy{min-height:0}.body[data-compact=false].svelte-drtqmy .filters-panel-container:where(.svelte-drtqmy){display:contents}.filters-panel-container[data-compact=true].svelte-drtqmy:not([data-open=true]){display:none}.body[data-compact=false].svelte-drtqmy .filters-panel{grid-column:1;grid-row:2;align-self:stretch}.body[data-compact=false].svelte-drtqmy .results{grid-column:2;grid-row:1 / span 2;align-self:stretch}body.modal-open{overflow:hidden}@media (max-width: 1024px){.model-explorer.svelte-drtqmy{max-height:none}.body-toolbar.svelte-drtqmy{display:flex;justify-content:space-between;align-items:center}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:min(60vh,540px);overflow-y:auto}}@media (max-width: 768px){.model-explorer.svelte-drtqmy{inset:2vh;padding:1.25rem}}@media (max-width: 640px){.model-explorer.svelte-drtqmy{inset:0;border-radius:0;height:100dvh;max-height:none;overflow-y:auto;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.body.svelte-drtqmy{gap:1rem}.filters-toggle.svelte-drtqmy{width:100%;justify-content:space-between}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:none;box-shadow:0 18px 36px #04091273}}.svelte-1n46o8q{box-sizing:border-box}.chat-app.svelte-1n46o8q{--header-h: 64px;--composer-h: 140px;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0);background:radial-gradient(circle at top,#162135,#05070f 55%,#04060d);color:#f3f5ff;overflow:hidden;position:relative}.chat-app.svelte-1n46o8q:before,.chat-app.svelte-1n46o8q:after{content:"";position:fixed;left:0;right:0;pointer-events:none;z-index:10}.chat-app.svelte-1n46o8q:before{top:0;height:calc(var(--header-h) + 2rem);background:linear-gradient(to bottom,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}.chat-app.svelte-1n46o8q:after{bottom:0;height:calc(var(--composer-h) + 2rem);background:linear-gradient(to top,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}@media (max-width: 1024px){.chat-app.svelte-1n46o8q{--header-h: 58px;--composer-h: 130px}}@media (max-width: 768px){.chat-app.svelte-1n46o8q{--header-h: 56px;--composer-h: 170px}.chat-app.svelte-1n46o8q:before{height:calc(var(--header-h) + 1.5rem)}.chat-app.svelte-1n46o8q:after{height:calc(var(--composer-h) + 1.5rem)}}.chat-error.svelte-1n46o8q{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 auto 1.25rem;padding:.9rem 1.25rem;width:min(800px,calc(100% - 4rem));border-radius:.75rem;border:1px solid rgba(248,113,113,.4);background:#45141499;color:#fecaca;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q){border:1px solid rgba(248,113,113,.6);border-radius:999px;background:transparent;color:inherit;padding:.3rem .9rem;cursor:pointer}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):hover,.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):focus-visible{border-color:#fca5a5;color:#fca5a5;outline:none} diff --git a/src/backend/static/assets/index-aV7IF0Eb.css b/src/backend/static/assets/index-aV7IF0Eb.css new file mode 100644 index 00000000..2eb2e0b6 --- /dev/null +++ b/src/backend/static/assets/index-aV7IF0Eb.css @@ -0,0 +1 @@ +:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--line-height: 1.5;--color-bg: #0b101b;--color-surface: rgba(10, 16, 28, .95);--color-surface-2: rgba(12, 18, 32, .9);--color-surface-3: rgba(11, 18, 34, .82);--color-border: rgba(37, 49, 77, .85);--color-border-strong: rgba(67, 91, 136, .6);--color-text: #f3f5ff;--color-muted: #9fb3d8;--color-subtle: #7b87a1;--color-accent: #38bdf8;--color-accent-strong: #4f46e5;--color-accent-contrast: #07101e;--color-danger: #f87171;--color-danger-strong: #fecaca;--shadow-elevated: 0 18px 48px rgba(3, 8, 20, .55);--shadow-soft: 0 12px 28px rgba(4, 8, 20, .45);--shadow-focus: 0 0 0 3px rgba(56, 189, 248, .2);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--transition-fast: .15s ease;--transition-med: .2s ease;--bp-xl: 1280px;--bp-lg: 1024px;--bp-md: 768px;--bp-sm: 640px;--bp-xs: 480px;font-family:var(--font-sans);line-height:var(--line-height);font-weight:400;color-scheme:dark;background-color:var(--color-bg);color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--color-bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.btn{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);font-weight:600;line-height:1.1;cursor:pointer;transition:border-color var(--transition-med),color var(--transition-med),background var(--transition-med),box-shadow var(--transition-med),transform var(--transition-fast)}.btn:hover:not(:disabled),.btn:focus-visible:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-primary{--btn-bg: linear-gradient(135deg, rgba(56, 189, 248, .9), rgba(59, 130, 246, .9));--btn-border: transparent;--btn-color: var(--color-accent-contrast);box-shadow:0 10px 30px #38bdf840}.btn-primary:hover:not(:disabled),.btn-primary:focus-visible:not(:disabled){color:var(--color-accent-contrast);transform:translateY(-1px);box-shadow:0 12px 32px #38bdf859}.btn-ghost{--btn-bg: transparent;--btn-border: var(--color-border);--btn-color: var(--color-text)}.btn-ghost:hover:not(:disabled),.btn-ghost:focus-visible:not(:disabled){background:#10192bbf}.btn-danger{--btn-bg: rgba(139, 35, 35, .12);--btn-border: rgba(139, 35, 35, .6);--btn-color: var(--color-danger-strong)}.btn-danger:hover:not(:disabled),.btn-danger:focus-visible:not(:disabled){border-color:#fca5a5;color:#ffe4e6;background:#a02d2d33}.btn-soft{--btn-bg: rgba(79, 70, 229, .16);--btn-border: rgba(79, 70, 229, .35);--btn-color: #c7d2fe}.btn-soft:hover:not(:disabled),.btn-soft:focus-visible:not(:disabled){border-color:#6366f18c;color:#e0e7ff;background:#4f46e538}.btn-quiet{--btn-bg: var(--color-surface-3);--btn-border: rgba(71, 99, 150, .45);--btn-color: var(--color-text)}.btn-small{padding:.35rem .8rem;font-size:.86rem}.btn-icon{width:2.25rem;height:2.25rem;padding:0}.btn-tonal{--btn-bg: rgba(56, 189, 248, .12);--btn-border: rgba(56, 189, 248, .4);--btn-color: #e0f2fe}.input-control,input.styled-input,.styled-input input,.form-field input[type=text],.form-field input[type=number],.form-field input[type=email],.form-field input[type=password]{width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.48rem .65rem;font:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.input-control:focus-visible,input.styled-input:focus-visible,.styled-input input:focus-visible,.form-field input[type=text]:focus-visible,.form-field input[type=number]:focus-visible,.form-field input[type=email]:focus-visible,.form-field input[type=password]:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.input-control:disabled,input.styled-input:disabled,.styled-input input:disabled,.form-field input[type=text]:disabled,.form-field input[type=number]:disabled,.form-field input[type=email]:disabled,.form-field input[type=password]:disabled{opacity:.6;cursor:not-allowed}.select-control,select.styled-select,.styled-select select,.form-field select{appearance:none;width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#090e1aeb;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .6rem center;background-size:.9rem;color:var(--color-text);padding:.48rem 2rem .48rem .65rem;font:inherit;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.select-control:focus-visible,select.styled-select:focus-visible,.styled-select select:focus-visible,.form-field select:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-control:disabled,select.styled-select:disabled,.styled-select select:disabled,.form-field select:disabled{opacity:.6;cursor:not-allowed}.select-control option,select.styled-select option,.styled-select select option,.form-field select option{background:#0a101a;color:var(--color-text)}.textarea-control,textarea.form-field,textarea.styled-textarea{width:100%;min-height:120px;resize:vertical;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#090e1aeb;color:var(--color-text);padding:.85rem 1rem;font:inherit;line-height:1.5;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),outline var(--transition-fast)}.textarea-control:focus-visible,textarea.form-field:focus-visible,textarea.styled-textarea:focus-visible{outline:2px solid var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.textarea-control:disabled{opacity:.6;cursor:not-allowed}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field-label,.field-label{font-size:.82rem;font-weight:600;color:#cfd8f3}.form-field-hint,.field-hint{font-size:.75rem;color:#8094bb}.topbar.svelte-1vc4gmw{height:var(--header-h);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start;background:transparent;position:relative;z-index:20;padding:2rem 2rem 1rem}.topbar-content.svelte-1vc4gmw{width:100%;display:flex;align-items:center;justify-content:flex-start}.controls.svelte-1vc4gmw{display:flex;gap:.75rem;align-items:center;flex-wrap:nowrap}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){flex:0 0 auto}.icon-row.svelte-1vc4gmw{display:flex;align-items:center;gap:.75rem}.chat-header .controls .model-picker{display:flex}.chat-header .controls .model-picker,.chat-header .controls .web-search{width:auto}.preset-badge.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .65rem;border-radius:999px;border:1px solid #25314d;background:#0c1322b3;color:#c8d6ef;font-size:.8rem;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.preset-badge.svelte-1vc4gmw:hover,.preset-badge.svelte-1vc4gmw:focus-visible{border-color:#38bdf8;color:#f2f6ff;background:#0c1628d9;outline:none;box-shadow:0 0 0 2px #38bdf840}.preset-badge.svelte-1vc4gmw .label:where(.svelte-1vc4gmw){text-transform:uppercase;font-size:.7rem;letter-spacing:.06em;color:#9fb3d8}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e5edff}.preset-badge.svelte-1vc4gmw .dot:where(.svelte-1vc4gmw){width:.4rem;height:.4rem;border-radius:999px;background:#22c55e;box-shadow:0 0 0 2px #22c55e26}.preset-badge.applying.svelte-1vc4gmw .spinner:where(.svelte-1vc4gmw){width:.85rem;height:.85rem;border-radius:999px;border:2px solid rgba(148,187,233,.25);border-top-color:#38bdf8;animation:svelte-1vc4gmw-spin .9s linear infinite}@keyframes svelte-1vc4gmw-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-header .controls select{appearance:none;padding:.45rem 2rem .45rem .75rem;border-radius:.5rem;background-color:#090e1aeb;color:#f3f5ff;border:1px solid rgba(37,49,77,.9);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;background-image:url('data:image/svg+xml,%3Csvg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 8l3 3 3-3" stroke="%23d4daee" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .65rem center;background-size:.9rem;min-width:160px;font:inherit}.chat-header .controls select:hover{border-color:#38bdf8;background-color:#0c1322f2;color:#f8fafc}.chat-header .controls select:focus{outline:2px solid #38bdf8;outline-offset:2px;border-color:#38bdf8;box-shadow:none}.chat-header .controls select:disabled{opacity:.6;cursor:not-allowed;background-color:#090e1a99}.chat-header .controls select option{background:#0a101a;color:#f3f5ff}.chat-header .controls .btn{white-space:nowrap}.chat-header .controls .btn.settings-icon svg{width:1.05rem;height:1.05rem}.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw{display:inline-flex;align-items:center;gap:.75rem}.web-search-loading.svelte-1vc4gmw .status:where(.svelte-1vc4gmw){font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.1rem .4rem;border-radius:999px;border:1px solid rgba(62,90,140,.6);color:#9fb3d8}@media (max-width: 1280px){.topbar.svelte-1vc4gmw{height:auto;padding:.75rem 1.5rem 1rem}.topbar-content.svelte-1vc4gmw{flex-direction:column;align-items:stretch;gap:.75rem;width:100%;max-width:900px;margin:0 auto}.controls.svelte-1vc4gmw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;width:100%;max-width:900px;margin:0 auto;gap:.75rem;justify-items:stretch}.controls.svelte-1vc4gmw>:where(.svelte-1vc4gmw){width:100%;min-width:0}.chat-header .controls .btn,.chat-header .controls select,.preset-badge.svelte-1vc4gmw,.model-picker-loading.svelte-1vc4gmw,.web-search-loading.svelte-1vc4gmw,.chat-header .controls .model-picker,.chat-header .controls .web-search{width:100%}.chat-header .controls .btn,.preset-badge.svelte-1vc4gmw{justify-content:center}.icon-row.svelte-1vc4gmw{grid-column:1 / -1;justify-content:center;flex-wrap:nowrap}.icon-row.svelte-1vc4gmw .btn{width:auto}.chat-header .controls select{min-width:0;text-align:left}.chat-header .controls .explorer{grid-column:1}.chat-header .controls .model-picker,.model-picker-loading.svelte-1vc4gmw{grid-column:2}.preset-badge.svelte-1vc4gmw{grid-column:1 / -1;order:9}.web-search-loading.svelte-1vc4gmw{justify-content:center}}@media (max-width: 1024px){.topbar.svelte-1vc4gmw{padding:.75rem 1.25rem 1rem}.controls.svelte-1vc4gmw{gap:.65rem}}@media (max-width: 768px){.topbar.svelte-1vc4gmw{padding:.75rem 1.15rem}.topbar-content.svelte-1vc4gmw,.controls.svelte-1vc4gmw{max-width:100%}.chat-header .controls .btn,.chat-header .controls select{padding:.55rem .9rem}.chat-header .controls .btn.settings-icon svg{width:1rem;height:1rem}.icon-row.svelte-1vc4gmw{gap:.5rem}}@media (max-width: 480px){.topbar.svelte-1vc4gmw{padding:.75rem 1rem .5rem}.preset-badge.svelte-1vc4gmw .name:where(.svelte-1vc4gmw){max-width:20ch}}.composer.svelte-1ct3ltt{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1rem;background:transparent;position:relative;z-index:20}.composer-content.svelte-1ct3ltt{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;justify-content:flex-end;padding:0 2rem}.attachment-strip.svelte-1ct3ltt{display:flex;flex-wrap:wrap;gap:.75rem}.attachment-chip.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .35rem;border-radius:.85rem;background:#172034d9;border:1px solid rgba(67,91,136,.45)}.attachment-chip.uploading.svelte-1ct3ltt{border-color:#818cf8a6}.attachment-chip.error.svelte-1ct3ltt{border-color:#f87171a6;background:#371414bf}.attachment-chip.svelte-1ct3ltt img:where(.svelte-1ct3ltt){width:48px;height:48px;border-radius:.65rem;object-fit:cover}.chip-status.svelte-1ct3ltt{font-size:.75rem;color:#e2e8f0e6}.attachment-chip.error.svelte-1ct3ltt .chip-status:where(.svelte-1ct3ltt){color:#fecaca}.remove-attachment.svelte-1ct3ltt{appearance:none;border:none;background:#0f172ab3;color:#e2e8f0e6;border-radius:999px;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;line-height:1}.remove-attachment.svelte-1ct3ltt:hover,.remove-attachment.svelte-1ct3ltt:focus-visible{background:#4f46e5d9;color:#fff;outline:none}.composer-error.svelte-1ct3ltt{font-size:.8rem;color:#fca5a5;background:#3e141f99;border:1px solid rgba(248,113,113,.4);padding:.45rem .75rem;border-radius:.65rem}.composer-error.voice.svelte-1ct3ltt{color:#fbbf24;background:#5c3e0c99;border-color:#fbbf2466}.input-shell.svelte-1ct3ltt{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:999px;background:#0b1222d1;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex:1 1 auto;min-height:2.5rem;background:transparent;border:none;color:inherit;padding:.25rem 0;resize:none;font:inherit;line-height:1.55}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt):focus{outline:none}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt)::placeholder{color:#d0d6eb99}.icon-button.svelte-1ct3ltt{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;border:none;background:#172034d9;color:inherit;cursor:pointer;transition:background .12s ease}.icon-button.leading.svelte-1ct3ltt{background:#1d2945e6}.icon-button.svelte-1ct3ltt:hover,.icon-button.svelte-1ct3ltt:focus{background:#2e4065e6;outline:none}.icon-button[data-active=true].svelte-1ct3ltt{background:#4f46e5d9;color:#f8f9ff}.icon-button[data-active=true].svelte-1ct3ltt:hover,.icon-button[data-active=true].svelte-1ct3ltt:focus{background:#6366f1e6}.icon-button.svelte-1ct3ltt:disabled{opacity:.45;cursor:not-allowed}.composer-actions.svelte-1ct3ltt{display:flex;align-items:center;gap:.5rem}.send-button.svelte-1ct3ltt{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.25rem;padding:0 1.15rem;border-radius:999px;border:none;background:#3c63c8d9;color:#f3f5ff;font-weight:600;font-size:.85rem;letter-spacing:.01em;cursor:pointer;transition:background .15s ease,color .15s ease}.send-button.svelte-1ct3ltt .send-label:where(.svelte-1ct3ltt){line-height:1}.send-button.svelte-1ct3ltt:hover,.send-button.svelte-1ct3ltt:focus-visible{background:#5684e8f2;outline:none}.send-button.svelte-1ct3ltt:disabled{cursor:not-allowed;opacity:.7;background:#3c63c880;color:#dadeeee6}.stop-inline.svelte-1ct3ltt{display:inline-flex;align-items:center;gap:.35rem;background:none;border:1px solid rgba(236,72,153,.6);color:#f472b6;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.stop-inline.svelte-1ct3ltt:hover,.stop-inline.svelte-1ct3ltt:focus{border-color:#f472b6e6;color:#fecdd3;outline:none}.stop-indicator.svelte-1ct3ltt{width:.75rem;height:.75rem;border-radius:.2rem;background:linear-gradient(135deg,#f472b6,#f97316)}.sr-only.svelte-1ct3ltt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 1024px){.composer.svelte-1ct3ltt{padding:0 0 .75rem}.composer-content.svelte-1ct3ltt{padding:0 1.5rem}}@media (max-width: 768px){.composer.svelte-1ct3ltt{padding:0 0 .5rem}.composer-content.svelte-1ct3ltt{padding:0 1rem;gap:.6rem}.attachment-strip.svelte-1ct3ltt{gap:.6rem}.input-shell.svelte-1ct3ltt{flex-wrap:wrap;align-items:stretch;padding:.75rem .85rem;border-radius:1.5rem;gap:.6rem}.icon-button.leading.svelte-1ct3ltt{order:0}.input-shell.svelte-1ct3ltt textarea:where(.svelte-1ct3ltt){flex-basis:100%;order:1;min-height:3rem;padding:.25rem .1rem}.composer-actions.svelte-1ct3ltt{order:2;width:100%;justify-content:flex-end;flex-wrap:wrap;gap:.45rem}.icon-button.svelte-1ct3ltt,.send-button.svelte-1ct3ltt{height:2.4rem}}@media (max-width: 480px){.composer-content.svelte-1ct3ltt{padding:0 .75rem}.input-shell.svelte-1ct3ltt{padding:.7rem;gap:.5rem}.composer-actions.svelte-1ct3ltt{justify-content:space-between;gap:.4rem}.composer-actions.svelte-1ct3ltt>:where(.svelte-1ct3ltt){flex:1 1 calc(50% - .4rem);min-width:0}.send-button.svelte-1ct3ltt{width:100%}}.model-settings-layer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.model-settings-backdrop{position:absolute;inset:0;background:#040814a6;border:none;padding:0;margin:0;cursor:pointer}.model-settings-backdrop:focus-visible{outline:2px solid var(--color-accent)}.model-settings-modal{position:relative;width:min(640px,100%);max-height:min(80vh,720px);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.model-settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(67,91,136,.45)}.model-settings-heading h2{margin:0;font-size:1.05rem;font-weight:600}.model-settings-subtitle{margin:.35rem 0 0;font-size:.8rem;color:var(--color-muted)}.model-settings-actions{display:flex;align-items:center;gap:.5rem}.model-settings-actions :global(.btn){white-space:nowrap}.model-settings-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.status{margin:0;font-size:.85rem;color:var(--color-muted)}.status.error{color:var(--color-danger-strong)}.settings-grid{display:grid;gap:1rem}.settings-stack{display:flex;flex-direction:column;gap:1.25rem}.setting{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:var(--color-surface-2)}.setting-header{display:flex;flex-direction:column;gap:.35rem}.setting-label{font-weight:600}.setting-hint{font-size:.75rem;color:#8094bb}.setting-range{display:flex;flex-direction:column;gap:.55rem}.setting-range-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.range-value{font-size:.78rem;font-weight:600;color:var(--color-text)}.range-value.default{color:#8ea7d2;font-weight:500;font-style:italic}.range-reset{background:none;border:1px solid rgba(71,99,150,.45);border-radius:999px;color:#9fb3d8;padding:.2rem .6rem;font-size:.68rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,opacity .2s ease}.range-reset:hover:not(:disabled),.range-reset:focus-visible{border-color:var(--color-accent);color:var(--color-accent);outline:none}.range-reset:disabled{opacity:.45;cursor:not-allowed}.setting-range .range-input{width:100%;appearance:none;height:.45rem;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%);position:relative}.setting-range .range-input:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.setting-range .range-input::-webkit-slider-runnable-track{height:100%;border-radius:999px;background:linear-gradient(90deg,rgba(56,189,248,.9) 0%,rgba(56,189,248,.9) var(--slider-fill, 50%),rgba(61,84,123,.35) var(--slider-fill, 50%),rgba(61,84,123,.35) 100%)}.setting-range .range-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;margin-top:-.28rem;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-webkit-slider-thumb:hover{transform:scale(1.05)}.setting-range .range-input::-moz-range-track{height:100%;border-radius:999px;background:#3d547b59}.setting-range .range-input::-moz-range-progress{height:100%;border-radius:999px;background:#38bdf8e6}.setting-range .range-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:2px solid rgba(10,16,28,.95);box-shadow:0 4px 12px #38bdf859;cursor:pointer;transition:transform .1s ease}.setting-range .range-input::-moz-range-thumb:hover{transform:scale(1.05)}.range-extents{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:#8094bb}.reasoning{gap:.75rem}.reasoning-controls{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.reasoning-field{display:flex;flex-direction:column;gap:.35rem}.reasoning-toggle{display:inline-flex;align-items:center;gap:.5rem}.reasoning-toggle input{width:1.1rem;height:1.1rem}.setting-boolean{display:inline-flex;align-items:center;gap:.5rem}.setting-boolean input{width:1.1rem;height:1.1rem}.model-settings-footer{padding:.85rem 1.5rem;border-top:1px solid rgba(67,91,136,.45);background:#090e1af2}@media (max-width: 640px){.model-settings-layer{padding:1.5rem}.model-settings-modal{width:100%}.reasoning-controls{grid-template-columns:1fr}}.generation-modal{width:min(520px,100%);max-height:min(80vh,640px)}.generation-modal-details.svelte-1uwhn5q{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.generation-detail-row.svelte-1uwhn5q{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px solid rgba(67,91,136,.4);border-radius:.6rem;background:#090e1a99}.generation-detail-row.svelte-1uwhn5q dt:where(.svelte-1uwhn5q){font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#7b87a1}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q){margin:0;font-size:.9rem;color:#f3f5ff;font-weight:500;word-break:break-word}.generation-detail-row.svelte-1uwhn5q dd:where(.svelte-1uwhn5q) pre:where(.svelte-1uwhn5q){margin:0;white-space:pre-wrap;font-family:var(--font-mono);background:#0c1220bf;border-radius:.55rem;padding:.65rem .75rem;border:1px solid rgba(67,91,136,.25)}.message-editor.svelte-hszu4t{flex-shrink:0;display:flex;justify-content:center;padding:0 0 1.25rem;position:relative;z-index:20}.editor-shell.svelte-hszu4t{width:min(800px,100%);display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem;border-radius:1rem;background:#0b1222e6;border:1px solid rgba(57,82,124,.55);box-shadow:0 12px 28px #04081473}.editor-header.svelte-hszu4t{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#96a0ba}.editor-status.svelte-hszu4t{text-transform:none;font-size:.75rem;color:#b1bddcd9}textarea.svelte-hszu4t{width:100%;min-height:4rem;background:#060a14ad;border:1px solid rgba(57,82,124,.55);border-radius:.75rem;padding:.75rem 1rem;resize:vertical;color:inherit;font:inherit;line-height:1.5}textarea.svelte-hszu4t:focus{outline:none;border-color:#8aa2d2e6;box-shadow:0 0 0 1px #8aa2d28c}textarea.svelte-hszu4t:disabled{opacity:.75;cursor:not-allowed}.editor-actions.svelte-hszu4t{display:flex;justify-content:flex-end;gap:.75rem}.button.svelte-hszu4t{padding:.5rem 1.1rem;border-radius:999px;border:none;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease,border-color .15s ease}.button.primary.svelte-hszu4t{background:#3c63c8d9;color:#f8fafc}.button.primary.svelte-hszu4t:hover,.button.primary.svelte-hszu4t:focus{background:#5684e8f2}.button.primary.svelte-hszu4t:disabled{background:#3c63c880;cursor:not-allowed}.button.secondary.svelte-hszu4t{background:#1d2945e6;color:#d1d5e5}.button.secondary.svelte-hszu4t:hover,.button.secondary.svelte-hszu4t:focus{background:#2e4065f2}.button.secondary.svelte-hszu4t:disabled{opacity:.6;cursor:not-allowed}.status.svelte-15rpl30{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.citations-modal-list.svelte-15rpl30{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.25rem}.citations-modal-item.svelte-15rpl30{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.65rem}.citations-modal-header.svelte-15rpl30{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.citations-modal-number.svelte-15rpl30{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#facc15}.citations-modal-link.svelte-15rpl30{font-size:.75rem;font-weight:600;padding:.3rem .65rem;border-radius:.4rem;background:#38bdf81f;color:#7dd3fc;text-decoration:none;border:1px solid rgba(56,189,248,.25);transition:background .14s ease,border-color .14s ease,color .14s ease}.citations-modal-link.svelte-15rpl30:hover,.citations-modal-link.svelte-15rpl30:focus-visible{background:#38bdf833;border-color:#38bdf873;color:#bae6fd;outline:none}.citations-modal-title.svelte-15rpl30{margin:0;font-size:.95rem;font-weight:600;color:#f3f5ff;line-height:1.4}.citations-modal-url.svelte-15rpl30{font-size:.75rem;color:#94addb;word-break:break-all;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.citations-modal-content.svelte-15rpl30{margin:0;font-size:.85rem;line-height:1.5;color:#e0e7ffd9;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35)}.citations-modal-meta.svelte-15rpl30{display:flex;gap:.85rem;font-size:.72rem;color:#9fb3d8bf;font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.message.svelte-1cnmaqf{display:flex}.message.user.svelte-1cnmaqf{justify-content:flex-end}.message.assistant.svelte-1cnmaqf{justify-content:flex-start}.bubble.svelte-1cnmaqf{max-width:75%;padding:1rem 1.5rem;border-radius:.95rem;background:#121a2ed9;border:1px solid rgba(58,77,120,.38);position:relative}.message.user.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:#263258c7}.message.assistant.svelte-1cnmaqf .bubble:where(.svelte-1cnmaqf){background:transparent;border:none;padding:.5rem 0}.message-meta.svelte-1cnmaqf{margin-top:.35rem;font-size:.75rem;color:#ffffffa6;display:flex}.message.assistant.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-start}.message.user.svelte-1cnmaqf .message-meta:where(.svelte-1cnmaqf){justify-content:flex-end}.message-meta.svelte-1cnmaqf time:where(.svelte-1cnmaqf){letter-spacing:.02em}.sender.svelte-1cnmaqf{display:flex;align-items:center;gap:.65rem;font-size:.75rem;font-weight:600;margin-bottom:.5rem;color:#7b87a1}.sender-label.svelte-1cnmaqf{text-transform:uppercase}.sender-label.svelte-1cnmaqf .sender-model:where(.svelte-1cnmaqf){text-transform:none;font-weight:500;display:inline-flex;align-items:center;gap:.35rem}.sender-token-count.svelte-1cnmaqf{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;background:#7d8baa29;color:#cbd5f5;font-size:.7rem;font-weight:600;text-transform:none;white-space:nowrap}.sender-model-text.svelte-1cnmaqf{display:inline-block}.sender-reasoning-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#c084fc;background:none;border:none;padding:0;cursor:pointer}.sender-reasoning-indicator.streaming.svelte-1cnmaqf{animation:svelte-1cnmaqf-reasoningPulse 1.25s ease-in-out infinite}.sender-reasoning-indicator.svelte-1cnmaqf:hover,.sender-reasoning-indicator.svelte-1cnmaqf:focus-visible{color:#e9d5ff;outline:none}.sender-tool-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;gap:.35rem;min-height:1.5rem;padding:.2rem .5rem;border-radius:999px;color:#38bdf8;background:#38bdf81a;border:1px solid rgba(56,189,248,.25);font-size:.75rem;font-weight:600;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease}.sender-tool-indicator.svelte-1cnmaqf:hover,.sender-tool-indicator.svelte-1cnmaqf:focus-visible{color:#7dd3fc;background:#38bdf82e;border-color:#7dd3fc8c;outline:none}.sender-tool-count.svelte-1cnmaqf{font-size:.7rem;font-weight:700}.sender-tool-tokens.svelte-1cnmaqf{font-size:.7rem;font-weight:500;color:#94e9ffe6}.sender-citation-indicator.svelte-1cnmaqf{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:#facc15;background:none;border:none;padding:0;cursor:pointer}.sender-citation-indicator.svelte-1cnmaqf:hover,.sender-citation-indicator.svelte-1cnmaqf:focus-visible{color:#fde68a;outline:none}.message-content.svelte-1cnmaqf{line-height:1.55;font-size:.95rem;color:#e2e8f8;overflow:visible}.message-content.svelte-1cnmaqf p{margin:0 0 .85rem}.message-content.svelte-1cnmaqf p:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#182238cc;border-radius:.35rem;padding:.15rem .35rem;font-size:.85rem;word-break:break-word}.message-content.svelte-1cnmaqf pre{margin:0 0 1rem;background:#0d1422e6;border-radius:.65rem;border:1px solid rgba(67,91,136,.35);padding:1rem 1.1rem;overflow-x:auto}.message-content.svelte-1cnmaqf pre.copy-code-block{position:relative;padding-top:2.2rem}.message-content.svelte-1cnmaqf pre:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf pre code{background:transparent;padding:0;font-size:.85rem;display:block}.message-content.svelte-1cnmaqf .copy-code-button{position:absolute;top:.65rem;right:.75rem;width:1.85rem;height:1.85rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.5rem;background:#09101cd9;color:#d4e0f5d9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.message-content.svelte-1cnmaqf .copy-code-button:hover,.message-content.svelte-1cnmaqf .copy-code-button:focus-visible{color:#f8fafc;background:#1c263cf2;transform:translateY(-1px);outline:none}.message-content.svelte-1cnmaqf .copy-code-button:active{transform:translateY(0)}.message-content.svelte-1cnmaqf .copy-code-button.copied{color:#34d399}.message-content.svelte-1cnmaqf .copy-code-button svg{width:1rem;height:1rem;display:block}.message-content.svelte-1cnmaqf table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.85rem}.message-content.svelte-1cnmaqf table:last-child{margin-bottom:0}.message-content.svelte-1cnmaqf th,.message-content.svelte-1cnmaqf td{border:1px solid rgba(67,91,136,.45);padding:.5rem .75rem;text-align:left;vertical-align:top}.message-content.svelte-1cnmaqf th{background:#182238d9;font-weight:600;color:#f8fafc}.message-content.svelte-1cnmaqf a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.message-content.svelte-1cnmaqf img{display:block;max-width:100%;height:auto;margin:.85rem 0}.bubble.has-attachments.svelte-1cnmaqf{max-width:100%}.message-attachments.svelte-1cnmaqf{display:flex;flex-direction:column;gap:.75rem;margin-top:.85rem;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf){margin:0;width:100%}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-shell:where(.svelte-1cnmaqf){position:relative}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){display:block;width:100%;border-radius:.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#10182873;transition:transform .12s ease,border-color .12s ease}.message.user.svelte-1cnmaqf .message-attachments:where(.svelte-1cnmaqf) .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf){background:#2a3b6099}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):hover,.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) .attachment-link:where(.svelte-1cnmaqf):focus-visible{border-color:#93c5fda6;transform:translateY(-1px);outline:none}.message-attachments.svelte-1cnmaqf .attachment-card:where(.svelte-1cnmaqf) img:where(.svelte-1cnmaqf){display:block;width:100%;height:auto;max-height:70vh;object-fit:contain}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf){position:absolute;left:50%;bottom:.85rem;transform:translate(-50%,8px);opacity:0;pointer-events:none;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:999px;border:1px solid rgba(147,197,253,.75);background:#080e1cd1;color:#e2e8f0;font-size:.75rem;letter-spacing:.01em;text-transform:uppercase;transition:opacity .15s ease,transform .15s ease;z-index:2}.message-attachments.svelte-1cnmaqf .attachment-shell:where(.svelte-1cnmaqf):hover .attachment-edit:where(.svelte-1cnmaqf),.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):focus-visible{opacity:1;transform:translate(-50%);pointer-events:auto;outline:none}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf):hover{background:#1e2a48eb;border-color:#b4cfffd9}.message-attachments.svelte-1cnmaqf .attachment-edit:where(.svelte-1cnmaqf) svg{width:.85rem;height:.85rem}.message-attachments.svelte-1cnmaqf .attachment-edit-label:where(.svelte-1cnmaqf){font-weight:600}.message-actions.svelte-1cnmaqf{position:absolute;bottom:-1.6rem;display:flex;gap:.35rem;padding:.1rem .2rem;background:transparent;border:none;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:5}.message.svelte-1cnmaqf:hover .message-actions:where(.svelte-1cnmaqf),.message.svelte-1cnmaqf:focus-within .message-actions:where(.svelte-1cnmaqf),.message-actions.svelte-1cnmaqf:hover{opacity:1;pointer-events:auto}.message.assistant.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){left:0;right:auto;justify-content:flex-start}.message.user.svelte-1cnmaqf .message-actions:where(.svelte-1cnmaqf){right:0;left:auto;justify-content:flex-end;bottom:-2.1rem}.message-action.svelte-1cnmaqf{width:1.8rem;height:1.8rem;border-radius:.5rem;border:none;background:transparent;color:#d4e0f5cc;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;position:relative;transition:color .12s ease,transform .12s ease}.message-action.svelte-1cnmaqf:hover,.message-action.svelte-1cnmaqf:focus-visible{color:#f8fafc;transform:translateY(-1px);outline:none}.message-action.svelte-1cnmaqf:active{transform:translateY(0)}.message-action.copied.svelte-1cnmaqf{color:#34d399}.message-action.svelte-1cnmaqf:disabled{opacity:.4;cursor:not-allowed;transform:none}@keyframes svelte-1cnmaqf-reasoningPulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}50%{transform:scale(1.15);filter:drop-shadow(0 0 6px rgba(192,132,252,.5))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(192,132,252,.35))}}.reasoning-modal-layer.svelte-2cxve6{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:140}.reasoning-modal-backdrop.svelte-2cxve6{position:absolute;inset:0;background:#04081499;border:none;padding:0;margin:0;cursor:pointer}.reasoning-modal-backdrop.svelte-2cxve6:focus-visible{outline:2px solid #38bdf8}.reasoning-modal.svelte-2cxve6{position:relative;width:min(520px,100%);max-height:min(75vh,640px);background:#0a101cf2;border:1px solid rgba(78,54,128,.4);border-radius:1rem;box-shadow:0 18px 48px #0308148c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.reasoning-modal-header.svelte-2cxve6{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(78,54,128,.35)}.reasoning-modal-header.svelte-2cxve6 h2:where(.svelte-2cxve6){margin:0;font-size:1.05rem;font-weight:600}.reasoning-modal-subtitle.svelte-2cxve6{margin:.35rem 0 0;font-size:.75rem;color:#9f8ed2;word-break:break-all}.reasoning-modal-actions.svelte-2cxve6{display:flex;align-items:center;gap:.75rem}.modal-close.svelte-2cxve6{background:none;border:1px solid rgba(124,58,237,.4);border-radius:999px;color:#f3f5ff;padding:.35rem .9rem;cursor:pointer;font-size:.75rem}.modal-close.svelte-2cxve6:hover,.modal-close.svelte-2cxve6:focus-visible{border-color:#c084fc;color:#c084fc;outline:none}.reasoning-status.svelte-2cxve6{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;padding:.25rem .65rem;border-radius:999px;border:1px solid rgba(192,132,252,.35);color:#e9d5ff;background:#7c3aed1f}.reasoning-status.streaming.svelte-2cxve6{animation:svelte-2cxve6-reasoningStatusPulse 1.4s ease-in-out infinite}.reasoning-status-indicator.svelte-2cxve6{width:.5rem;height:.5rem;border-radius:999px;background:#c084fc;position:relative}.reasoning-modal-body.svelte-2cxve6{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.reasoning-modal-status.svelte-2cxve6{margin:0;font-size:.9rem;color:#b8a6e3}.reasoning-modal-text.svelte-2cxve6{margin:0;font-size:.88rem;line-height:1.5;white-space:pre-wrap;background:#182034d9;border-radius:.75rem;border:1px solid rgba(99,102,241,.3);padding:.85rem 1rem;color:#f3f5ff;overflow-x:auto}@keyframes svelte-2cxve6-reasoningStatusPulse{0%{box-shadow:0 0 #c084fc73}70%{box-shadow:0 0 0 10px #c084fc00}to{box-shadow:0 0 #c084fc00}}.tool-usage-modal{width:min(520px,100%);max-height:min(75vh,600px)}.tool-usage-body{padding-bottom:1.5rem}.tool-usage-modal-list.svelte-12mixwl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.tool-usage-modal-item.svelte-12mixwl{border:1px solid rgba(67,91,136,.4);border-radius:.75rem;background:#090e1a99;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem}.tool-usage-modal-item-header.svelte-12mixwl{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.tool-usage-modal-name.svelte-12mixwl{font-size:.95rem;font-weight:600;color:#f3f5ff}.tool-usage-modal-status-pill.svelte-12mixwl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .45rem;border-radius:999px;background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.25)}.tool-usage-modal-details.svelte-12mixwl{border-top:1px solid rgba(67,91,136,.35);padding-top:.5rem}.tool-usage-modal-summary.svelte-12mixwl{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:.02em;color:#94addb}.tool-usage-modal-summary.svelte-12mixwl::-webkit-details-marker{display:none}.tool-usage-modal-summary.svelte-12mixwl:before{content:"▸";transition:transform .2s ease;font-size:.75rem}.tool-usage-modal-details[open].svelte-12mixwl .tool-usage-modal-summary:where(.svelte-12mixwl):before{transform:rotate(90deg)}.tool-usage-modal-section.svelte-12mixwl{margin-top:.65rem;display:flex;flex-direction:column;gap:.35rem}.tool-usage-modal-section-label.svelte-12mixwl{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#7b92c4}.tool-usage-modal-block.svelte-12mixwl{margin:0;font-size:.85rem;line-height:1.5;background:#0f1626d9;border-radius:.6rem;border:1px solid rgba(67,91,136,.35);padding:.75rem .85rem;color:#dbe9ff;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl p{margin:0 0 .75rem}.tool-usage-modal-block.svelte-12mixwl p:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl code{font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#1c263ccc;border-radius:.35rem;padding:.1rem .35rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl pre{margin:0 0 .85rem;background:#0d1422e6;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);padding:.85rem;overflow-x:auto}.tool-usage-modal-block.svelte-12mixwl pre.copy-code-block{position:relative;padding-top:2rem}.tool-usage-modal-block.svelte-12mixwl pre:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl .copy-code-button{position:absolute;top:.55rem;right:.6rem;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:.45rem;background:#080e18d9;color:#deeaffd9;cursor:pointer;transition:color .14s ease,background .14s ease,transform .14s ease}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:hover,.tool-usage-modal-block.svelte-12mixwl .copy-code-button:focus-visible{color:#f1f5ff;background:#1a2436f2;transform:translateY(-1px);outline:none}.tool-usage-modal-block.svelte-12mixwl .copy-code-button:active{transform:translateY(0)}.tool-usage-modal-block.svelte-12mixwl .copy-code-button.copied{color:#34d399}.tool-usage-modal-block.svelte-12mixwl .copy-code-button svg{width:.95rem;height:.95rem;display:block}.tool-usage-modal-block.svelte-12mixwl table{width:100%;border-collapse:collapse;margin:0 0 .75rem;font-size:.8rem}.tool-usage-modal-block.svelte-12mixwl table:last-child{margin-bottom:0}.tool-usage-modal-block.svelte-12mixwl th,.tool-usage-modal-block.svelte-12mixwl td{border:1px solid rgba(67,91,136,.45);padding:.45rem .6rem;text-align:left;vertical-align:top}.tool-usage-modal-block.svelte-12mixwl th{background:#182238d9;font-weight:600;color:#f1f5ff}.tool-usage-modal-block.svelte-12mixwl a{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1px}.tool-usage-status.svelte-12mixwl{font-size:.78rem}.status.svelte-1oswcu0{font-size:.9rem;color:#c7d2feb3;text-align:center;padding:2rem 1rem}.details-grid.svelte-1oswcu0{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;padding:.5rem 0}.detail-item.svelte-1oswcu0{background:#090e1a99;border:1px solid rgba(67,91,136,.4);border-radius:.75rem;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}.detail-item.full-width.svelte-1oswcu0{grid-column:1 / -1}.detail-label.svelte-1oswcu0{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94addb}.detail-value.svelte-1oswcu0{font-size:1.1rem;font-weight:600;color:#f3f5ff;line-height:1.3}.detail-value.engine.svelte-1oswcu0{color:#7dd3fc}.detail-value.prompt.svelte-1oswcu0{font-size:.9rem;font-weight:400;line-height:1.5;padding:.75rem .85rem;background:#0f1626d9;border-radius:.5rem;border:1px solid rgba(67,91,136,.35);font-family:Fira Code,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;white-space:pre-wrap;word-break:break-word}.detail-description.svelte-1oswcu0{font-size:.8rem;color:#9fb3d8bf;line-height:1.4}@media (max-width: 640px){.details-grid.svelte-1oswcu0{grid-template-columns:1fr}}.conversation.svelte-26wxji{flex:1 1 auto;overflow-y:auto;padding:2rem 0;display:flex;flex-direction:column;gap:1.5rem;scroll-padding-top:4rem;scroll-padding-bottom:4rem;scrollbar-gutter:stable}.conversation-item.svelte-26wxji{padding:0 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}@media (max-width: 768px){.conversation.svelte-26wxji{padding:1.5rem 0;gap:1.25rem}.conversation-item.svelte-26wxji{padding:0 1.5rem}}@media (max-width: 640px){.conversation.svelte-26wxji{padding:1rem 0;gap:1rem}.conversation-item.svelte-26wxji{padding:0 1rem}}@media (max-width: 480px){.conversation-item.svelte-26wxji{padding:0 .75rem}}.suggestions.svelte-1r3jne1{display:flex;flex-wrap:wrap;gap:.75rem;padding:1.5rem 2rem;max-width:min(800px,100%);margin:0 auto;width:100%;box-sizing:border-box}.suggestion-item.svelte-1r3jne1{position:relative;display:inline-flex;align-items:center}.suggestion-btn.svelte-1r3jne1{font-size:.85rem;padding:.625rem 2.5rem .625rem 1.25rem;border-radius:999px;background:#141e3366;border:1px solid rgba(57,76,114,.6);color:inherit;cursor:pointer;font:inherit}.suggestion-btn.svelte-1r3jne1:hover,.suggestion-btn.svelte-1r3jne1:focus{border-color:#8cb4ff99}.delete-btn.svelte-1r3jne1{position:absolute;right:0;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border:none;background:transparent;color:#ff6b6b;cursor:pointer;font-size:1.5rem;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.delete-btn.svelte-1r3jne1:hover:not([disabled]){color:#f44}.delete-btn[disabled].svelte-1r3jne1{opacity:.5;cursor:not-allowed}.add-btn.svelte-1r3jne1{border:none;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:transform .18s ease,color .18s ease}.add-btn.svelte-1r3jne1:hover,.add-btn.svelte-1r3jne1:focus-visible{transform:translateY(-1px) scale(1.04);color:#7effb8;text-shadow:0 0 6px rgba(127,255,184,.45)}.add-btn.svelte-1r3jne1:active{transform:scale(.92);text-shadow:none}.add-form.svelte-1r3jne1{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){padding:.5rem .75rem;border-radius:.5rem;background:#141e3399;border:1px solid rgba(57,76,114,.6);color:inherit;font:inherit}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1)::placeholder{color:#fff6}.add-submit-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:#14503366;border:1px solid rgba(57,114,76,.6);color:#a0e0b0;cursor:pointer;font:inherit}.add-cancel-btn.svelte-1r3jne1{font-size:.85rem;padding:.5rem 1rem;border-radius:999px;background:transparent;border:1px solid rgba(114,57,57,.6);color:#e0a0a0;cursor:pointer;font:inherit}@media (max-width: 1024px){.suggestions.svelte-1r3jne1{padding:1.25rem 1.5rem;gap:.65rem}}@media (max-width: 768px){.suggestions.svelte-1r3jne1{padding:1rem;gap:.5rem}.suggestion-item.svelte-1r3jne1{width:100%}.suggestion-btn.svelte-1r3jne1{width:100%;text-align:center}.add-btn.svelte-1r3jne1,.add-form.svelte-1r3jne1{width:100%}.add-form.svelte-1r3jne1 input:where(.svelte-1r3jne1){flex:1;min-width:120px}}@media (max-width: 480px){.suggestions.svelte-1r3jne1{padding:.85rem .75rem;gap:.45rem}}.system-settings-layer{z-index:150}.system-settings-modal,.mcp-settings-modal{width:min(720px,100%)}.system-settings-header{align-items:center}.system-settings-body{display:flex;flex-direction:column;gap:1.25rem}.system-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220eb;padding:1.1rem;display:flex;flex-direction:column;gap:.9rem}.system-card-body{display:flex;flex-direction:column;gap:.75rem}.system-card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.system-card-header h3{margin:0;font-size:.95rem;font-weight:600}.system-card-caption{margin:.35rem 0 0;font-size:.78rem;color:#8094bb}.system-card-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.status.success{color:#34d399}.google-auth-body{gap:.65rem}.google-auth-email{color:#38bdf8;font-weight:600}.google-auth-actions{display:flex;align-items:center;gap:.5rem}.google-services-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));font-size:.8rem;color:#9fb6e3}.google-services-list li:before{content:"•";color:#38bdf8;margin-right:.45rem}.system-prompt{min-height:140px;line-height:1.45;resize:none;overflow:hidden}.server-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.server-row{border:1px solid rgba(71,99,150,.35);border-radius:.75rem;padding:.85rem;background:#080d18e6;display:flex;flex-direction:column;gap:.75rem}.server-row[data-pending=true]{opacity:.6}.server-row-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.server-toggles{display:flex;align-items:center;gap:1rem;flex-shrink:0}.running-toggle{color:#34d399}.running-toggle input{accent-color:#34d399}.frontend-toggle{color:#38bdf8}.frontend-toggle input{accent-color:#38bdf8}.kiosk-toggle{color:#a78bfa}.kiosk-toggle input{accent-color:#a78bfa}.toggle-disabled{opacity:.4;cursor:not-allowed}.server-heading h4{margin:0;font-size:.9rem;font-weight:600}.server-meta{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.75rem;color:#8ea7d2}.server-meta .connected{color:#34d399}.server-meta .offline{color:#f87171}.server-row-body{display:flex;flex-direction:column;gap:.65rem}.tools-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;border-radius:.5rem;border:1px solid rgba(71,99,150,.35);background:#0a101cb3;color:#8ea7d2;padding:.55rem .75rem;font-size:.8rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.tools-toggle:hover{border-color:#38bdf8;color:#38bdf8;background:#0a101cd9}.tools-toggle.open{border-color:#38bdf8;color:#38bdf8;background:#10192bd9}.tools-toggle__label{font-weight:500}.tools-toggle__icon{transition:transform .2s ease;flex-shrink:0}.tools-toggle.open .tools-toggle__icon{transform:rotate(180deg)}.tools-dropdown{display:flex;flex-direction:column;gap:.65rem;padding-top:.25rem}.shell-server-settings{display:flex;flex-direction:column;gap:.6rem;padding:.65rem .75rem;border:1px solid rgba(71,99,150,.3);border-radius:.65rem;background:#0a101cd9}.shell-setting{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.shell-setting__info{display:flex;flex-direction:column;gap:.2rem;min-width:220px;flex:1}.shell-setting .password-input-wrapper{width:100%;max-width:320px}.tool-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.tool-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .5rem;border:1px solid rgba(71,99,150,.25);border-radius:.6rem;background:#0c1220bf}.tool-row[data-disabled=true]{opacity:.7}.tool-info{display:flex;flex-direction:column;gap:.2rem}.tool-name{font-weight:600;font-size:.85rem}.tool-qualified{font-size:.7rem;color:#8094bb}.toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:#cfd8f3}.toggle input{width:1.2rem;height:1.2rem;accent-color:#38bdf8}.system-settings-footer{display:flex;align-items:center;justify-content:space-between}.status.warning{color:#fbbf24}.status.muted{color:#8094bb}.monarch-form{display:flex;flex-direction:column;gap:.85rem}.monarch-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:#cfd8f3}.password-input-wrapper{display:flex;align-items:center;position:relative}.password-input-wrapper input{flex:1;padding-right:2.5rem}.password-input-wrapper .btn{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);padding:.2rem .4rem;width:auto;height:auto;border:none;background:none;color:#8094bb;box-shadow:none}.password-input-wrapper .btn:hover,.password-input-wrapper .btn:focus-visible{color:#38bdf8;box-shadow:none}.shell-setting input[type=text],.shell-setting input[type=password],.shell-setting select{width:100%;max-width:320px}.speech-settings-modal{width:min(640px,100%)}.speech-settings-body{display:flex;flex-direction:column;gap:1.25rem}.speech-card{border:1px solid rgba(67,91,136,.45);border-radius:.9rem;background:#0c1220f0;padding:1.15rem;display:flex;flex-direction:column;gap:1rem}.speech-card-header{display:flex;flex-direction:column;gap:.3rem}.speech-card-header h3{margin:0;font-size:.95rem;font-weight:600}.speech-card-header p{margin:0;font-size:.78rem;color:#8094bb}.model-presets-row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.speech-field{display:flex;flex-direction:column;gap:.4rem}.speech-field .field-label,.speech-field label{font-size:.8rem;font-weight:600}.presets-field .speech-presets{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.toggle-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.toggle-item{display:flex;align-items:center;gap:.55rem;padding:.55rem .75rem;border-radius:.75rem;border:1px solid rgba(71,99,150,.45);background:#0a101cd9}.toggle-item input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.toggle-item span{font-size:.82rem}.timing-grid{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.auto-submit-block{display:flex;flex-direction:column;gap:.75rem;border:1px solid rgba(71,99,150,.45);border-radius:.85rem;padding:.85rem 1rem;background:#0a101cd9}.auto-submit-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.inline-checkbox{display:inline-flex;align-items:center;gap:.5rem}.inline-checkbox input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:#4f46e5}.delay-inline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.delay-inline input[type=number]{width:120px}.delay-label{font-size:.78rem;font-weight:500;color:#cbd5f5}.speech-hint{font-size:.72rem;color:#8094bb}.model-settings-footer .status{font-size:.78rem}.model-settings-footer .status[data-variant=success]{color:#34d399}.model-settings-footer .status[data-variant=error]{color:#f87171}.model-settings-footer .status[data-variant=pending]{color:#facc15}@media (max-width: 560px){.model-presets-row{grid-template-columns:minmax(0,1fr)}.delay-inline input[type=number]{width:min(200px,100%)}}@media (max-width: 440px){.delay-inline{flex-direction:column;align-items:flex-start}}:global(.presets-modal){width:min(820px,calc(100% - 2rem));max-height:min(80vh,720px)}:global(.presets-body){display:flex;flex-direction:column;gap:1.25rem}.create-row{display:flex;gap:.5rem;flex-wrap:wrap}.create-row input[type=text]{flex:1;min-width:200px}.preset-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.preset-item{display:flex;align-items:center;gap:.75rem;border:1px solid rgba(37,49,77,.6);border-radius:.65rem;padding:.6rem .75rem;background:#0c132299}.preset-item .meta{flex:1;min-width:0}.preset-item .name{font-weight:600;display:flex;align-items:center;gap:.5rem}.default-badge{display:inline-block;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#22c55e33;color:#86efac;border:1px solid rgba(34,197,94,.4)}.filters-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px;background:#3b82f626;color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.filters-badge svg{width:12px;height:12px}.preset-item .details{display:flex;gap:.5rem;color:#9fb3d8;font-size:.85rem;flex-wrap:wrap}.preset-item .details .model{color:#c7d7f4}.preset-item .actions{display:inline-flex;gap:.4rem;flex-wrap:wrap}.preset-item .actions button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap;font:inherit}.keyterms-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;resize:vertical;min-height:70px;line-height:1.4}.keyterms-input.system-prompt.svelte-10jke8k{resize:none;overflow:hidden}.keyterms-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.keyterms-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.keyterms-input.svelte-10jke8k::placeholder{color:var(--color-muted);opacity:.6}.setting-select.svelte-10jke8k{display:flex;flex-direction:column;gap:.5rem}.select-input.svelte-10jke8k{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;cursor:pointer}.select-input.svelte-10jke8k:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-input.svelte-10jke8k:disabled{opacity:.5;cursor:not-allowed}.model-presets-row.svelte-10jke8k{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap;grid-column:1 / -1}.model-select-compact.svelte-10jke8k{flex:1;min-width:200px;max-width:280px}.presets-container.svelte-10jke8k{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:180px}.preset-select-row.svelte-10jke8k{display:flex;gap:.5rem;align-items:center}.preset-select-row.svelte-10jke8k .select-input:where(.svelte-10jke8k){flex:1;min-width:120px}.system-prompt-row.svelte-10jke8k{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem;grid-column:1 / -1}.disabled-field.svelte-10jke8k{opacity:.5;pointer-events:none}.model-settings-modal{width:min(720px,100%)}.keyterms-input.svelte-17wvx4j{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;resize:vertical;min-height:70px;line-height:1.4}.keyterms-input.system-prompt.svelte-17wvx4j{resize:none;overflow:hidden}.keyterms-input.svelte-17wvx4j:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.keyterms-input.svelte-17wvx4j:disabled{opacity:.5;cursor:not-allowed}.keyterms-input.svelte-17wvx4j::placeholder{color:var(--color-muted);opacity:.6}.setting-select.svelte-17wvx4j{display:flex;flex-direction:column;gap:.5rem}.select-input.svelte-17wvx4j{width:100%;padding:.6rem .75rem;border-radius:.5rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid rgba(67,91,136,.4);font-family:inherit;font-size:.85rem;cursor:pointer}.select-input.svelte-17wvx4j:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.select-input.svelte-17wvx4j:disabled{opacity:.5;cursor:not-allowed}.system-prompt-row.svelte-17wvx4j{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-top:.5rem;grid-column:1 / -1}.filter-section.svelte-10u46cr{border:1px solid #1c253f;border-radius:.9rem;padding:0;background:#0a101deb;transition:border-color .2s ease,background .2s ease}.filter-section.expanded.svelte-10u46cr{border-color:#2a3760;background:#0c1322f2}.filter-section.svelte-10u46cr header:where(.svelte-10u46cr){margin:0}.toggle.svelte-10u46cr{width:100%;border:none;background:none;color:inherit;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.95rem 1.1rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:color .2s ease}.toggle.svelte-10u46cr:hover,.toggle.svelte-10u46cr:focus-visible{color:#38bdf8}.toggle.locked.svelte-10u46cr{cursor:default;pointer-events:none;color:inherit}.toggle.svelte-10u46cr:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.toggle.svelte-10u46cr:focus:not(:focus-visible){outline:none}.title.svelte-10u46cr{flex:1;text-align:left}.chevron.svelte-10u46cr{width:.9rem;height:.9rem;position:relative;transition:transform .25s ease}.chevron.svelte-10u46cr:before{content:"";position:absolute;inset:0;mask:url('data:image/svg+xml,%3Csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath fill="white" d="m8.59 16.59 1.41 1.41L16 12l-5.99-5.99-1.41 1.41L13.17 12z"/%3E%3C/svg%3E') center / contain no-repeat;background:currentColor}.filter-section.expanded.svelte-10u46cr .chevron:where(.svelte-10u46cr){transform:rotate(90deg)}.content.svelte-10u46cr{padding:1rem 1.1rem 1.2rem;border-top:1px solid rgba(28,37,63,.75)}.filter-section.collapsed.svelte-10u46cr .content:where(.svelte-10u46cr){display:none}.range-slider.svelte-1q5g18c{position:relative;width:100%;height:2.25rem}.range-slider[data-disabled=true].svelte-1q5g18c{opacity:.5;pointer-events:none}.track.svelte-1q5g18c,.range.svelte-1q5g18c{position:absolute;inset:50% 0 auto;transform:translateY(-50%);height:.35rem;border-radius:999px}.track.svelte-1q5g18c{background:#38538459}.range.svelte-1q5g18c{background:linear-gradient(90deg,#2563eb,#38bdf8)}input[type=range].svelte-1q5g18c{position:absolute;inset:0;margin:0;width:100%;height:100%;background:none;pointer-events:none;appearance:none;-webkit-appearance:none}input[type=range].svelte-1q5g18c::-webkit-slider-runnable-track{height:0}input[type=range].svelte-1q5g18c::-moz-range-track{height:0;background:none}input[type=range].svelte-1q5g18c::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c::-moz-range-thumb{pointer-events:auto;height:1rem;width:1rem;border-radius:50%;background:#f8fbff;border:2px solid #2563eb;box-shadow:0 2px 6px #0d142773;transition:transform .2s ease,border-color .2s ease}input[type=range].svelte-1q5g18c:hover::-webkit-slider-thumb,input[type=range].svelte-1q5g18c:focus-visible::-webkit-slider-thumb{transform:scale(1.05);border-color:#38bdf8}input[type=range].svelte-1q5g18c:hover::-moz-range-thumb,input[type=range].svelte-1q5g18c:focus-visible::-moz-range-thumb{transform:scale(1.05);border-color:#38bdf8}.thumb-min.svelte-1q5g18c{z-index:3}.thumb-max.svelte-1q5g18c{z-index:4}.options.svelte-2m3fny{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:start}.options[data-variant=columns].svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.options[data-variant=compact].svelte-2m3fny{display:flex;flex-wrap:wrap;gap:.4rem}.pill.svelte-2m3fny{border-radius:.5rem;border:1px solid rgba(31,42,69,.65);background:#0e1421e6;color:#d4daee;padding:.45rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease;text-align:left}.options[data-variant=compact].svelte-2m3fny .pill:where(.svelte-2m3fny){width:auto;padding:.3rem .65rem;border-radius:999px;gap:.5rem}.pill.svelte-2m3fny .label:where(.svelte-2m3fny){flex:1;white-space:normal}.indicator.svelte-2m3fny{width:.55rem;height:.55rem;border-radius:50%;background:#38bdf8;opacity:0;transition:opacity .2s ease}.pill.svelte-2m3fny:hover{border-color:#38bdf8;color:#f2f7ff;transform:translateY(-1px)}.pill.svelte-2m3fny:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.pill.svelte-2m3fny:focus:not(:focus-visible){outline:none}.pill.active.svelte-2m3fny{background:#233c68d9;border-color:#38bdf8;color:#38bdf8}.pill.active.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1}.pill.exclude.svelte-2m3fny{background:#ef444426;border-color:#f87171bf;color:#fca5a5}.pill.exclude.svelte-2m3fny .indicator:where(.svelte-2m3fny){opacity:1;background:#f87171}.pill.exclude.svelte-2m3fny:hover{border-color:#f87171;color:#fee2e2}.options[data-variant=compact].svelte-2m3fny .indicator:where(.svelte-2m3fny){display:none}.options[data-variant=compact].svelte-2m3fny .pill.active:where(.svelte-2m3fny){background:#38bdf826}.options[data-variant=compact].svelte-2m3fny .pill.exclude:where(.svelte-2m3fny){background:#f8717133;border-color:#f87171b3;color:#fecaca}.empty.svelte-2m3fny{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.options.svelte-2m3fny{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (max-width: 480px){.options.svelte-2m3fny{grid-template-columns:1fr}}.filters-panel.svelte-1247vns{border:1px solid #141d33;border-radius:1rem;background:#080d18d9;display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem;min-height:0}.filters-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.filters-header.svelte-1247vns h3:where(.svelte-1247vns){margin:0}.filters-status.svelte-1247vns{margin:.2rem 0 0;font-size:.82rem;color:#9ca4bc}.filters-status.muted.svelte-1247vns{color:#6f7892}.filters-content.svelte-1247vns{padding:0;display:flex;flex-direction:column;gap:1rem;flex:1 1 auto;min-height:0;overflow-y:auto}.slider-group.svelte-1247vns{display:flex;flex-direction:column;gap:.85rem}.slider-header.svelte-1247vns{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.88rem}.slider-label.svelte-1247vns{color:#b9c2d7}.slider-value.svelte-1247vns{font-variant-numeric:tabular-nums;color:#f0f4ff;font-weight:600}.slider.svelte-1247vns{width:100%;appearance:none;height:.35rem;border-radius:999px;background:#22314e99;outline:none;cursor:pointer;accent-color:#2563eb}.slider.svelte-1247vns:disabled{cursor:not-allowed;opacity:.45}.slider.svelte-1247vns::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:#1d9bf0;border:2px solid #0f172a;box-shadow:0 2px 4px #090f1a59}.slider.svelte-1247vns::-moz-range-track{background:transparent}.slider-scale.svelte-1247vns{display:flex;justify-content:space-between;font-size:.78rem;color:#6f7892;text-transform:uppercase;letter-spacing:.04em}.price-scale.svelte-1247vns{gap:.5rem}.slider-scale.svelte-1247vns span:where(.svelte-1247vns){flex:1;text-align:center}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):first-child{text-align:left}.slider-scale.svelte-1247vns span:where(.svelte-1247vns):last-child{text-align:right}.hint.svelte-1247vns{margin:0;font-size:.85rem;color:#7f89a3}@media (max-width: 1024px){.filters-panel.svelte-1247vns{order:-1;max-height:none}.filters-content.svelte-1247vns{max-height:none;flex:none;min-height:auto;overflow:visible}}@media (max-width: 480px){.filters-panel.svelte-1247vns{padding:1rem}}.sort.svelte-3bn1bu{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;flex-wrap:nowrap;white-space:nowrap}.sort-label.svelte-3bn1bu{color:#d4daee;font-weight:500;white-space:nowrap}.sort-select.svelte-3bn1bu{min-width:140px;flex-shrink:0}.explorer-header.svelte-d2gcy1{display:grid;grid-template-columns:1fr;align-items:start;row-gap:.75rem}.explorer-header.svelte-d2gcy1 h2:where(.svelte-d2gcy1){margin:0}.title-group.svelte-d2gcy1{display:flex;align-items:center;gap:.75rem;justify-self:start;flex-wrap:wrap}.chat-link.svelte-d2gcy1{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;font-size:.88rem;font-weight:600;letter-spacing:.02em}.chat-link.svelte-d2gcy1 .label:where(.svelte-d2gcy1){line-height:1}.chat-link.svelte-d2gcy1 .icon:where(.svelte-d2gcy1){width:1.1rem;height:1.1rem;flex-shrink:0;display:block}.chat-link.svelte-d2gcy1:focus-visible{outline:2px solid rgba(56,189,248,.6);outline-offset:2px}.summary.svelte-d2gcy1{margin:0;color:#8a92ac;font-size:.88rem;white-space:nowrap}.header-controls.svelte-d2gcy1{display:flex;flex-direction:column;gap:.75rem;width:min(100%,320px);justify-self:start}.search.svelte-d2gcy1{width:100%;min-width:0}.search.svelte-d2gcy1 input:where(.svelte-d2gcy1){width:100%}.meta-row.svelte-d2gcy1{display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.75rem;width:auto;white-space:nowrap}.summary.svelte-d2gcy1,.meta-row.svelte-d2gcy1 .sort{flex:0 0 auto}.visually-hidden.svelte-d2gcy1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media (max-width: 480px){.meta-row.svelte-d2gcy1{gap:.5rem}.summary.svelte-d2gcy1{white-space:normal}}.model-card.svelte-b7ahyp{border:1px solid #1f2c48;border-radius:.85rem;padding:.85rem;display:grid;gap:.75rem;background:#0c1324;height:100%;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.model-card.svelte-b7ahyp:hover{border-color:#38bdf899;box-shadow:0 4px 18px #070c1673;transform:translateY(-1px)}.model-card.svelte-b7ahyp:focus-visible{outline:2px solid rgba(56,189,248,.9);outline-offset:2px;border-color:#38bdf8b3;box-shadow:0 0 0 4px #38bdf82e}header.svelte-b7ahyp{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem}h4.svelte-b7ahyp{margin:0;font-size:1rem;font-weight:600}.info-section.svelte-b7ahyp{display:grid}.info-grid.svelte-b7ahyp{margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.info-item.svelte-b7ahyp{display:grid;gap:.2rem;padding:.45rem .6rem;border-radius:.75rem;background:#10172bd9;border:1px solid rgba(56,83,132,.35)}.info-item.svelte-b7ahyp dt:where(.svelte-b7ahyp){margin:0;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#7d87a2}.info-item.svelte-b7ahyp dd:where(.svelte-b7ahyp){margin:0;font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2;color:#e2e8f0;word-break:break-word}.active-filters.svelte-v6y1b4{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .25rem}.title.svelte-v6y1b4{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7f89a3;margin:0}.chip-list.svelte-v6y1b4{display:flex;flex-wrap:wrap;gap:.4rem}.chip.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;border:1px solid rgba(31,42,69,.7);background:#0e1421e6;color:#ccd3ea;padding:.25rem .65rem;font-size:.78rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.chip.svelte-v6y1b4:hover{transform:translateY(-1px);border-color:#38bdf8}.chip.svelte-v6y1b4:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.chip.svelte-v6y1b4:focus:not(:focus-visible){outline:none}.chip.include.svelte-v6y1b4{border-color:#38bdf899;background:#1f527859;color:#e0f2ff}.chip.exclude.svelte-v6y1b4{border-color:#f87171b3;background:#6e161659;color:#fee2e2}.chip-label.svelte-v6y1b4{display:inline-flex;align-items:center;gap:.3rem}.chip-category.svelte-v6y1b4{font-weight:600}.chip-value.svelte-v6y1b4{font-weight:500}.chip-remove.svelte-v6y1b4{font-size:.85rem;line-height:1}@media (max-width: 640px){.active-filters.svelte-v6y1b4{padding:.25rem 0}.chip.svelte-v6y1b4{font-size:.75rem}}.results.svelte-6ipifh{display:flex;flex-direction:column;gap:1.25rem;min-height:0;flex:1}.model-grid.svelte-6ipifh{list-style:none;margin:0;padding:0 .25rem 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;overflow-y:auto}.empty.svelte-6ipifh{margin:0;color:#7f89a3;font-size:.9rem}@media (max-width: 768px){.model-grid.svelte-6ipifh{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0}}@media (max-width: 480px){.model-grid.svelte-6ipifh{grid-template-columns:1fr}}.modal-backdrop.svelte-drtqmy{position:fixed;inset:0;background:#030a16a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90}.model-explorer.svelte-drtqmy{position:fixed;inset:4vh;background:#080d18;border:1px solid #141d33;border-radius:1rem;padding:1.5rem;display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:1.75rem;row-gap:1.25rem;z-index:100;max-height:90vh;overflow:hidden}.model-explorer[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.explorer-header{grid-column:1;grid-row:1;align-self:start}.body.svelte-drtqmy{flex:1;min-height:0}.body[data-compact=false].svelte-drtqmy{display:contents}.body[data-compact=true].svelte-drtqmy{display:flex;flex-direction:column;gap:1.25rem}.body-toolbar.svelte-drtqmy{display:none}.filters-toggle.svelte-drtqmy{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;border:1px solid #25314d;background:#0b111de6;color:#f2f4f8;padding:.45rem .95rem;font-weight:600;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.filters-toggle.svelte-drtqmy:hover{border-color:#38bdf8;color:#38bdf8}.filters-toggle.open.svelte-drtqmy{border-color:#38bdf8;color:#38bdf8;background:#10192bf2}.filters-toggle__status.svelte-drtqmy{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#041225;background:#38bdf847;border-radius:999px;padding:.12rem .5rem}.filters-panel-container.svelte-drtqmy{min-height:0}.body[data-compact=false].svelte-drtqmy .filters-panel-container:where(.svelte-drtqmy){display:contents}.filters-panel-container[data-compact=true].svelte-drtqmy:not([data-open=true]){display:none}.body[data-compact=false].svelte-drtqmy .filters-panel{grid-column:1;grid-row:2;align-self:stretch}.body[data-compact=false].svelte-drtqmy .results{grid-column:2;grid-row:1 / span 2;align-self:stretch}body.modal-open{overflow:hidden}@media (max-width: 1024px){.model-explorer.svelte-drtqmy{max-height:none}.body-toolbar.svelte-drtqmy{display:flex;justify-content:space-between;align-items:center}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:min(60vh,540px);overflow-y:auto}}@media (max-width: 768px){.model-explorer.svelte-drtqmy{inset:2vh;padding:1.25rem}}@media (max-width: 640px){.model-explorer.svelte-drtqmy{inset:0;border-radius:0;height:100dvh;max-height:none;overflow-y:auto;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.body.svelte-drtqmy{gap:1rem}.filters-toggle.svelte-drtqmy{width:100%;justify-content:space-between}.filters-panel-container[data-compact=true].svelte-drtqmy .filters-panel{max-height:none;box-shadow:0 18px 36px #04091273}}.svelte-1n46o8q{box-sizing:border-box}.chat-app.svelte-1n46o8q{--header-h: 64px;--composer-h: 140px;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0);background:radial-gradient(circle at top,#162135,#05070f 55%,#04060d);color:#f3f5ff;overflow:hidden;position:relative}.chat-app.svelte-1n46o8q:before,.chat-app.svelte-1n46o8q:after{content:"";position:fixed;left:0;right:0;pointer-events:none;z-index:10}.chat-app.svelte-1n46o8q:before{top:0;height:calc(var(--header-h) + 2rem);background:linear-gradient(to bottom,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}.chat-app.svelte-1n46o8q:after{bottom:0;height:calc(var(--composer-h) + 2rem);background:linear-gradient(to top,rgba(4,6,13,1) 0%,rgba(4,6,13,.95) 30%,rgba(4,6,13,.8) 50%,rgba(4,6,13,.4) 70%,rgba(4,6,13,.1) 90%,transparent 100%)}@media (max-width: 1024px){.chat-app.svelte-1n46o8q{--header-h: 58px;--composer-h: 130px}}@media (max-width: 768px){.chat-app.svelte-1n46o8q{--header-h: 56px;--composer-h: 170px}.chat-app.svelte-1n46o8q:before{height:calc(var(--header-h) + 1.5rem)}.chat-app.svelte-1n46o8q:after{height:calc(var(--composer-h) + 1.5rem)}}.chat-error.svelte-1n46o8q{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 auto 1.25rem;padding:.9rem 1.25rem;width:min(800px,calc(100% - 4rem));border-radius:.75rem;border:1px solid rgba(248,113,113,.4);background:#45141499;color:#fecaca;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q){border:1px solid rgba(248,113,113,.6);border-radius:999px;background:transparent;color:inherit;padding:.3rem .9rem;cursor:pointer}.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):hover,.chat-error.svelte-1n46o8q button:where(.svelte-1n46o8q):focus-visible{border-color:#fca5a5;color:#fca5a5;outline:none} diff --git a/src/backend/static/index.html b/src/backend/static/index.html index 8efad30a..fe8ef3d5 100644 --- a/src/backend/static/index.html +++ b/src/backend/static/index.html @@ -5,8 +5,8 @@ frontend - - + +
                                              diff --git a/start.sh b/start.sh index 89f5c5c5..93e5d897 100755 --- a/start.sh +++ b/start.sh @@ -1,68 +1,72 @@ -#!/usr/bin/env bash -# Interactive launcher for Backend_FastAPI components -# Allows starting any combination of backend and frontends +#!/bin/bash + +# ============================================================ +# Backend_FastAPI Component Launcher +# ============================================================ +# Starts selected components of the stack: +# 1 - Backend (FastAPI on :8000, connects to MCP) +# 2 - MCP Servers (Standalone MCP pool on :9001-9010) +# 3 - Frontend (Svelte chat UI on :5173) +# 4 - Frontend-Kiosk (Kiosk UI on :5174) +# 5 - Frontend-CLI (Terminal chat client) # # Usage: # ./start.sh # Interactive menu -# ./start.sh 12 # Start backend + frontend -# ./start.sh 123 # Start backend + both web frontends -# ./start.sh all # Start everything (except CLI) +# ./start.sh 21 # Start MCP + Backend +# ./start.sh 213 # Start MCP + Backend + Frontend +# ./start.sh all # Start MCP + Backend + Frontend + Kiosk +# ============================================================ set -e -# Get the script directory -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -cd "$SCRIPT_DIR" - -# Ensure logs directory exists -mkdir -p logs - -# Colors for output +# Colors RED='\033[0;31m' GREEN='\033[0;32m' -BLUE='\033[0;34m' -CYAN='\033[0;36m' YELLOW='\033[1;33m' -NC='\033[0m' # No Color +CYAN='\033[0;36m' BOLD='\033[1m' +NC='\033[0m' # No Color -# Pids to track -declare -a PIDS=() - -# Wait for backend health endpoint to be available before launching frontends -wait_for_backend() { - local health_url="http://127.0.0.1:8000/health" - - if ! command -v curl >/dev/null 2>&1; then - echo -e "${YELLOW}curl not found; skipping backend readiness check.${NC}" - return - fi +# Ensure we're in the project root +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" - echo -e "${BLUE}Waiting for backend readiness...${NC}" - for _ in {1..60}; do - if curl -fsS "$health_url" >/dev/null 2>&1; then - echo -e "${GREEN}Backend is ready.${NC}" - return - fi - sleep 0.5 - done - echo -e "${YELLOW}Backend readiness check timed out; continuing anyway.${NC}" -} +# Track background processes +PIDS=() -# Function to cleanup background processes on exit cleanup() { echo "" - echo -e "${YELLOW}Stopping all servers...${NC}" + echo "Stopping all servers..." for pid in "${PIDS[@]}"; do - kill "$pid" 2>/dev/null || true + if kill -0 "$pid" 2>/dev/null; then + kill "$pid" 2>/dev/null || true + fi done - # Also kill any remaining child processes - kill $(jobs -p) 2>/dev/null || true - exit + # Kill any child processes + pkill -P $$ 2>/dev/null || true + exit 0 } trap cleanup SIGINT SIGTERM +# Helper: Wait for backend to be ready +wait_for_backend() { + local max_attempts=30 + local attempt=0 + echo -n "Waiting for backend..." + while [ $attempt -lt $max_attempts ]; do + if curl -s http://localhost:8000/health > /dev/null 2>&1; then + echo " ready!" + return 0 + fi + sleep 0.5 + attempt=$((attempt + 1)) + echo -n "." + done + echo " timeout (backend may still be starting)" + return 1 +} + # Get selection from argument or prompt if [[ -n "$1" ]]; then selection="$1" @@ -73,12 +77,13 @@ else echo -e "${BOLD}║ Backend_FastAPI Component Launcher ║${NC}" echo -e "${BOLD}╚════════════════════════════════════════════╝${NC}" echo "" - echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000; MCP servers managed inside backend)" - echo -e " ${CYAN}2${NC} - Frontend (Svelte chat UI on :5173)" - echo -e " ${CYAN}3${NC} - Frontend-Kiosk (Kiosk UI on :5174)" - echo -e " ${CYAN}4${NC} - Frontend-CLI (Terminal chat client)" + echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000, connects to MCP)" + echo -e " ${CYAN}2${NC} - MCP Servers (Standalone pool on :9001-9010)" + echo -e " ${CYAN}3${NC} - Frontend (Svelte chat UI on :5173)" + echo -e " ${CYAN}4${NC} - Frontend-Kiosk (Kiosk UI on :5174)" + echo -e " ${CYAN}5${NC} - Frontend-CLI (Terminal chat client)" echo "" - echo -e " ${CYAN}all${NC} - Start 1, 2, and 3 (web stack)" + echo -e " ${CYAN}all${NC} - Start 1, 2, 3, and 4 (full web stack)" echo "" echo -e "${BOLD}Enter selection (e.g., '12' or '123' or 'all'):${NC} " read -r selection @@ -86,7 +91,7 @@ fi # Handle 'all' shortcut if [[ "$selection" == "all" ]]; then - selection="123" + selection="1234" fi # Validate input @@ -95,8 +100,8 @@ if [[ -z "$selection" ]]; then exit 1 fi -if [[ ! "$selection" =~ ^[1-4]+$ ]]; then - echo -e "${RED}Invalid selection. Use only numbers 1-4 or 'all'.${NC}" +if [[ ! "$selection" =~ ^[1-5]+$ ]]; then + echo -e "${RED}Invalid selection. Use only numbers 1-5 or 'all'.${NC}" exit 1 fi @@ -104,29 +109,39 @@ echo "" # Track what we're starting START_BACKEND=false +START_MCP=false START_FRONTEND=false START_KIOSK=false START_CLI=false # Parse selection [[ "$selection" == *"1"* ]] && START_BACKEND=true -[[ "$selection" == *"2"* ]] && START_FRONTEND=true -[[ "$selection" == *"3"* ]] && START_KIOSK=true -[[ "$selection" == *"4"* ]] && START_CLI=true - -# Start Backend -if $START_BACKEND; then - echo -e "${GREEN}[1/4] Starting Backend (includes MCP servers)...${NC}" - uv run python scripts/kill_port.py 8000 +[[ "$selection" == *"2"* ]] && START_MCP=true +[[ "$selection" == *"3"* ]] && START_FRONTEND=true +[[ "$selection" == *"4"* ]] && START_KIOSK=true +[[ "$selection" == *"5"* ]] && START_CLI=true + +# Start MCP Servers (option 2) - start first so backend can connect +if $START_MCP; then + echo -e "${GREEN}[2/5] Starting MCP Servers...${NC}" for port in {9001..9010}; do uv run python scripts/kill_port.py "$port" done + uv run python scripts/start_mcp_servers.py & + PIDS+=($!) + sleep 3 # Give MCP servers time to start +fi + +# Start Backend (option 1) +if $START_BACKEND; then + echo -e "${GREEN}[1/5] Starting Backend...${NC}" + uv run python scripts/kill_port.py 8000 uv run uvicorn backend.app:create_app \ --factory \ --host 0.0.0.0 \ --reload & PIDS+=($!) - sleep 2 # Give backend time to start + sleep 2 fi # Avoid frontend proxy errors by waiting for backend to accept requests. @@ -134,28 +149,29 @@ if $START_BACKEND && ($START_FRONTEND || $START_KIOSK); then wait_for_backend fi -# Start Svelte Frontend +# Start Frontend (option 3) if $START_FRONTEND; then - echo -e "${GREEN}[2/4] Starting Frontend (Svelte)...${NC}" + echo -e "${GREEN}[3/5] Starting Frontend (Svelte)...${NC}" uv run python scripts/kill_port.py 5173 - (cd "$SCRIPT_DIR/frontend" && npm run dev) & + cd frontend && npm run dev & PIDS+=($!) + cd "$SCRIPT_DIR" fi -# Start Kiosk Frontend +# Start Kiosk (option 4) if $START_KIOSK; then - echo -e "${GREEN}[3/4] Starting Frontend-Kiosk...${NC}" + echo -e "${GREEN}[4/5] Starting Frontend-Kiosk...${NC}" uv run python scripts/kill_port.py 5174 - (cd "$SCRIPT_DIR/frontend-kiosk" && npm run dev) & + cd frontend-kiosk && npm run dev & PIDS+=($!) + cd "$SCRIPT_DIR" fi -# Handle CLI +# Start CLI (option 5) - interactive, runs in foreground if $START_CLI; then - # Check if other services are running - if $START_BACKEND || $START_FRONTEND || $START_KIOSK; then - # Other services are running in background, wait a moment then start CLI in foreground - echo -e "${GREEN}[4/4] Starting Frontend-CLI...${NC}" + if $START_MCP || $START_BACKEND || $START_FRONTEND || $START_KIOSK; then + # Other services running, start CLI after them + echo -e "${GREEN}[5/5] Starting Frontend-CLI...${NC}" echo "" sleep 1 source .venv/bin/activate && shell-chat @@ -165,8 +181,8 @@ if $START_CLI; then echo -e "Press ${RED}Ctrl+C${NC} to stop all servers" else # CLI is the only selection - echo -e "${GREEN}[4/4] Starting Frontend-CLI...${NC}" - echo -e "${YELLOW}Note: Backend is not running. Start with './start.sh 14' to run both.${NC}" + echo -e "${GREEN}[5/5] Starting Frontend-CLI...${NC}" + echo -e "${YELLOW}Note: Backend is not running. Start with './start.sh 125' to run both.${NC}" echo "" source .venv/bin/activate && shell-chat exit 0 @@ -174,11 +190,14 @@ if $START_CLI; then fi # Show status (only if we have background services) -if $START_BACKEND || $START_FRONTEND || $START_KIOSK; then +if $START_MCP || $START_BACKEND || $START_FRONTEND || $START_KIOSK; then echo "" echo -e "${BOLD}═══════════════════════════════════════════════${NC}" echo -e "${BOLD}Running Services:${NC}" + if $START_MCP; then + echo -e " ${GREEN}✓${NC} MCP Servers: http://localhost:9001-9010" + fi if $START_BACKEND; then echo -e " ${GREEN}✓${NC} Backend: http://localhost:8000" fi @@ -198,6 +217,9 @@ if $START_BACKEND || $START_FRONTEND || $START_KIOSK; then if [ -n "$LOCAL_IP" ]; then echo "" echo -e "${BOLD}Network Access (from other machines):${NC}" + if $START_MCP; then + echo -e " MCP Servers: http://${LOCAL_IP}:9001-9010" + fi if $START_BACKEND; then echo -e " Backend: http://${LOCAL_IP}:8000" fi From fffe5a4e8be60503df66820e95a7218e44778d26 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 23 Dec 2025 01:38:05 -0500 Subject: [PATCH 54/78] feat: Implement lazy MCP server loading and discovery to improve backend startup performance. --- data/mcp_servers.json | 9 +- frontend-cli/shell_chat.py | 44 ++++++ .../components/chat/McpServersModal.svelte | 28 ++++ frontend/src/lib/stores/mcpServers.ts | 5 + src/backend/chat/mcp_registry.py | 144 +++++++++++++++--- src/backend/chat/orchestrator.py | 31 +++- src/backend/routers/mcp_servers.py | 12 ++ src/backend/services/mcp_server_settings.py | 10 +- start.sh | 4 +- tests/test_mcp_registry.py | 1 + 10 files changed, 259 insertions(+), 29 deletions(-) diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 62a7f593..0757cc7a 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -16,12 +16,13 @@ }, { "client_enabled": { + "backend": false, "cli": true, - "kiosk": true, - "svelte": true + "kiosk": false, + "svelte": false }, "contexts": [], - "enabled": false, + "enabled": true, "env": {}, "http_port": 9002, "id": "housekeeping", @@ -119,7 +120,7 @@ "svelte": true }, "contexts": [], - "enabled": false, + "enabled": true, "env": { "HOST_PROFILE_ID": "xps13", "HOST_ROOT_PATH": "/home/human/GoogleDrive/host_profiles" diff --git a/frontend-cli/shell_chat.py b/frontend-cli/shell_chat.py index cdcc7eb1..99ce6b6d 100644 --- a/frontend-cli/shell_chat.py +++ b/frontend-cli/shell_chat.py @@ -297,6 +297,46 @@ async def _show_system_prompt(self) -> None: f"[error]Failed to get system prompt: {e}[/error]", style=ERROR_STYLE ) + def _handle_mode(self, mode: str | None = None) -> None: + """Handle /mode command - switch quake terminal mode.""" + mode_file = Path.home() / ".config" / "quake-terminal" / "mode" + valid_modes = ["terminal", "openrouter", "gemini"] + + # Get current mode + current = "terminal" + if mode_file.exists(): + current = mode_file.read_text().strip() + + if not mode: + # Show current mode and options + self.console.print(f"\n[bold]Quake Terminal Mode:[/bold]") + for m in valid_modes: + marker = "[green]►[/green]" if m == current else " " + desc = { + "terminal": "Plain shell", + "openrouter": "shell-chat (OpenRouter via Backend)", + "gemini": "gemini-chat (Gemini API)" + }.get(m, "") + self.console.print(f" {marker} [cyan]{m}[/cyan] - {desc}") + self.console.print(f"\n[dim]Usage: /mode [/dim]") + return + + mode = mode.lower() + if mode not in valid_modes: + self.console.print(f"[error]Invalid mode: {mode}[/error]", style=ERROR_STYLE) + self.console.print(f"[dim]Use: terminal, openrouter, or gemini[/dim]") + return + + # Save new mode + mode_file.parent.mkdir(parents=True, exist_ok=True) + mode_file.write_text(mode) + self.console.print(f"[info]Mode set to: {mode}[/info]", style=INFO_STYLE) + + if mode != "openrouter": + # Exit and let quake terminal restart with new mode + self.console.print("[dim]Exiting to switch mode. Press quake hotkey to reopen.[/dim]") + self.running = False + def _show_help(self) -> None: """Show available commands.""" help_text = """ @@ -311,6 +351,7 @@ def _show_help(self) -> None: /tools on Enable an MCP server /tools off Disable an MCP server /system Show system prompt + /mode Switch quake terminal mode /quit Exit shell-chat [bold]Shortcuts:[/bold] @@ -371,6 +412,9 @@ async def _handle_command(self, cmd: str) -> bool: elif command == "/system": await self._show_system_prompt() return True + elif command == "/mode": + self._handle_mode(parts[1] if len(parts) > 1 else None) + return True return False diff --git a/frontend/src/lib/components/chat/McpServersModal.svelte b/frontend/src/lib/components/chat/McpServersModal.svelte index 91299bfb..76c9d181 100644 --- a/frontend/src/lib/components/chat/McpServersModal.svelte +++ b/frontend/src/lib/components/chat/McpServersModal.svelte @@ -117,6 +117,13 @@ mcpServers.setCliEnabled(serverId, enabled); } + function toggleBackend(serverId: string, enabled: boolean): void { + if ($mcpServers.saving) { + return; + } + mcpServers.setBackendEnabled(serverId, enabled); + } + function toggleTool(serverId: string, tool: string, enabled: boolean): void { if ($mcpServers.saving) { return; @@ -629,6 +636,27 @@ /> CLI +
                                              diff --git a/frontend/src/lib/stores/mcpServers.ts b/frontend/src/lib/stores/mcpServers.ts index d419d556..b302b0d6 100644 --- a/frontend/src/lib/stores/mcpServers.ts +++ b/frontend/src/lib/stores/mcpServers.ts @@ -150,6 +150,10 @@ export function createMcpServersStore() { setClientEnabled(serverId, 'cli', cliEnabled); } + function setBackendEnabled(serverId: string, backendEnabled: boolean): void { + setClientEnabled(serverId, 'backend', backendEnabled); + } + function setToolEnabled(serverId: string, tool: string, enabled: boolean): void { store.update((state) => { const target = state.servers.find((item) => item.id === serverId); @@ -352,6 +356,7 @@ export function createMcpServersStore() { setKioskEnabled, setFrontendEnabled, setCliEnabled, + setBackendEnabled, setToolEnabled, setServerEnv, getServer, diff --git a/src/backend/chat/mcp_registry.py b/src/backend/chat/mcp_registry.py index 39e76d5e..b0fc1445 100644 --- a/src/backend/chat/mcp_registry.py +++ b/src/backend/chat/mcp_registry.py @@ -116,7 +116,7 @@ class MCPServerConfig(BaseModel): description="Optional per-tool override settings keyed by tool name", ) client_enabled: dict[str, bool] = Field( - default_factory=lambda: {"svelte": True, "kiosk": False, "cli": True}, + default_factory=lambda: {"svelte": True, "kiosk": False, "cli": True, "backend": True}, description="Per-client enabled state: {client_id: True/False}", ) @@ -139,6 +139,7 @@ def _migrate_legacy_enabled_flags(cls, data: Any) -> Any: "svelte": frontend_enabled, "kiosk": kiosk_enabled, "cli": frontend_enabled, # CLI follows frontend by default + "backend": True, # Backend connection enabled by default } return data @@ -374,6 +375,10 @@ def to_summary(self, score: float) -> dict[str, Any]: return payload +# Port range for discovering running MCP servers +MCP_DISCOVERY_PORTS = range(9001, 9011) # 9001-9010 inclusive + + class MCPToolAggregator: """Aggregate tools from multiple MCP servers behind a single interface.""" @@ -383,6 +388,7 @@ def __init__( *, base_env: dict[str, str] | None = None, default_cwd: Path | None = None, + lazy_mode: bool = False, ) -> None: self._configs = [cfg for cfg in configs] self._config_map: dict[str, MCPServerConfig] = { @@ -390,6 +396,7 @@ def __init__( } self._base_env = dict(base_env or {}) self._default_cwd = default_cwd + self._lazy_mode = lazy_mode self._clients: dict[str, MCPToolClient] = {} self._bindings: dict[str, _ToolBinding] = {} self._binding_order: list[_ToolBinding] = [] @@ -408,12 +415,21 @@ def tools(self) -> list[Any]: return [binding.tool for binding in self._binding_order] async def connect(self) -> None: - """Launch all enabled MCP servers and build the tool registry.""" + """Launch all enabled MCP servers and build the tool registry. + + In lazy_mode, this is a no-op. Use discover_and_connect() instead. + """ async with self._lock: if self._connected: return + # In lazy mode, skip all MCP connection at startup + if self._lazy_mode: + logger.debug("MCP aggregator in lazy mode, skipping startup connection") + self._connected = True + return + logger.info( "Starting MCP aggregator with %d configured server(s)", len(self._configs), @@ -422,6 +438,12 @@ async def connect(self) -> None: for config in self._configs: if not config.enabled: continue + if not config.is_enabled_for_client("backend"): + logger.debug( + "MCP server '%s' not enabled for backend client, skipping", + config.id, + ) + continue await self._launch_server(config) if not self._clients: @@ -432,6 +454,83 @@ async def connect(self) -> None: await self._refresh_locked() self._connected = True + async def discover_and_connect(self) -> dict[str, bool]: + """Scan MCP_DISCOVERY_PORTS for running servers and connect to enabled ones. + + Returns a dict mapping port -> is_running for discovered servers. + This is the main entry point for lazy MCP discovery. + """ + async with self._lock: + discovered: dict[str, bool] = {} + + # Scan all ports in the discovery range + for port in MCP_DISCOVERY_PORTS: + is_running = await self._is_server_running("127.0.0.1", port) + discovered[str(port)] = is_running + + if not is_running: + continue + + # Find config for this port + config = None + for cfg in self._configs: + if cfg.http_port == port: + config = cfg + break + + if config is None: + logger.info( + "Discovered MCP server on port %d but no config found, skipping", + port, + ) + continue + + # Check if already connected + if config.id in self._clients: + logger.debug( + "MCP server '%s' on port %d already connected", + config.id, + port, + ) + continue + + # Check if enabled for backend + if not config.enabled: + logger.debug( + "MCP server '%s' on port %d disabled, skipping", + config.id, + port, + ) + continue + + if not config.is_enabled_for_client("backend"): + logger.debug( + "MCP server '%s' on port %d not enabled for backend, skipping", + config.id, + port, + ) + continue + + # Connect to the running server + logger.info( + "Discovered MCP server '%s' running on port %d, connecting...", + config.id, + port, + ) + await self._launch_server(config) + + # Refresh tool registry after discovery + await self._refresh_locked() + self._connected = True + + logger.info( + "MCP discovery complete: %d server(s) connected, %d tool(s) available", + len(self._clients), + len(self._binding_order), + ) + + return discovered + async def apply_configs(self, configs: Sequence[MCPServerConfig]) -> None: """Apply a new configuration set, restarting servers as needed.""" @@ -908,24 +1007,33 @@ async def _launch_server(self, config: MCPServerConfig) -> None: connect_only=True, ) elif config.http_port is not None: - # Check if server is already running on this port - already_running = await self._is_server_running( - "127.0.0.1", config.http_port - ) - - if already_running: - logger.info( - "MCP server '%s' already running on port %d, connecting...", - config.id, - config.http_port, - ) - client = MCPToolClient( - http_port=config.http_port, - server_id=config.id, - connect_only=True, + if self._lazy_mode: + # In lazy mode, only connect to already-running servers + already_running = await self._is_server_running( + "127.0.0.1", config.http_port ) + + if already_running: + logger.info( + "MCP server '%s' already running on port %d, connecting...", + config.id, + config.http_port, + ) + client = MCPToolClient( + http_port=config.http_port, + server_id=config.id, + connect_only=True, + ) + else: + # Skip servers that aren't running + logger.info( + "MCP server '%s' not running on port %d, skipping (start with option 2)", + config.id, + config.http_port, + ) + return else: - # Launch the server ourselves + # In normal mode (tests), spawn the server client = MCPToolClient( server_module=config.module, command=config.command, diff --git a/src/backend/chat/orchestrator.py b/src/backend/chat/orchestrator.py index 50cfa803..1bccd8db 100644 --- a/src/backend/chat/orchestrator.py +++ b/src/backend/chat/orchestrator.py @@ -105,6 +105,7 @@ def __init__( [], base_env=env, default_cwd=project_root, + lazy_mode=True, # Skip MCP connections at startup for faster boot ) conversation_log_dir = settings.conversation_log_dir if not conversation_log_dir.is_absolute(): @@ -139,16 +140,15 @@ def set_profile_service(self, service: "ClientProfileService | None") -> None: self._profile_service = service async def initialize(self) -> None: - """Initialize database and MCP client once.""" + """Initialize database only. MCP configs are loaded lazily on first discovery.""" async with self._init_lock: if self._ready.is_set(): return await self._repo.initialize() - configs = await self._mcp_settings.get_configs() - await self._mcp_client.apply_configs(configs) - await self._mcp_client.connect() + # Skip MCP config loading at startup - will be loaded on first discovery + # This makes startup instant with 0 MCP overhead self._ready.set() logger.info( "Chat orchestrator ready: %d tool(s) available", @@ -319,6 +319,11 @@ async def process_stream( self._repo, ttl=self._settings.attachment_signed_url_ttl, ) + + # Auto-discover MCP servers if none connected yet + if not self._mcp_client.tools: + await self.discover_mcp() + tools_payload = self._mcp_client.get_openai_tools() # Determine allowed servers based on profile or client_enabled @@ -421,5 +426,23 @@ async def refresh_mcp_tools(self) -> None: await self._mcp_client.refresh() + async def discover_mcp(self) -> dict[str, bool]: + """Scan ports 9001-9010 for running MCP servers and connect to enabled ones. + + Returns a dict mapping port -> is_running. + This loads configs on first call (lazy initialization). + """ + # Load configs on first discovery (lazy) + if not self._mcp_client._configs: + configs = await self._mcp_settings.get_configs() + await self._mcp_client.apply_configs(configs) + + discovered = await self._mcp_client.discover_and_connect() + logger.info( + "MCP discovery triggered: %d tool(s) now available", + len(self._mcp_client.tools), + ) + return discovered + __all__ = ["ChatOrchestrator"] diff --git a/src/backend/routers/mcp_servers.py b/src/backend/routers/mcp_servers.py index 92ca1c64..9e23bcf1 100644 --- a/src/backend/routers/mcp_servers.py +++ b/src/backend/routers/mcp_servers.py @@ -84,6 +84,18 @@ async def read_mcp_servers( service: MCPServerSettingsService = Depends(get_mcp_settings_service), orchestrator: ChatOrchestrator = Depends(get_chat_orchestrator), ) -> MCPServerStatusResponse: + # Trigger MCP discovery when settings are accessed + await orchestrator.discover_mcp() + return await _build_status_response(service, orchestrator) + + +@router.post("/discover", response_model=MCPServerStatusResponse) +async def discover_mcp_servers( + service: MCPServerSettingsService = Depends(get_mcp_settings_service), + orchestrator: ChatOrchestrator = Depends(get_chat_orchestrator), +) -> MCPServerStatusResponse: + """Scan ports 9001-9010 for running MCP servers and connect to enabled ones.""" + await orchestrator.discover_mcp() return await _build_status_response(service, orchestrator) diff --git a/src/backend/services/mcp_server_settings.py b/src/backend/services/mcp_server_settings.py index e30f66d8..edb6022f 100644 --- a/src/backend/services/mcp_server_settings.py +++ b/src/backend/services/mcp_server_settings.py @@ -44,9 +44,12 @@ def __init__( self._lock = asyncio.Lock() self._configs: list[MCPServerConfig] = [] self._updated_at: datetime | None = None - self._load_from_disk() + self._loaded = False # Lazy load flag def _load_from_disk(self) -> None: + if self._loaded: + return + try: configs = load_server_configs(self._path, fallback=self._fallback) except ValueError as exc: @@ -64,6 +67,8 @@ def _load_from_disk(self) -> None: except FileNotFoundError: self._updated_at = None + self._loaded = True + def _save_to_disk(self) -> None: payload = {"servers": [_config_to_payload(cfg) for cfg in self._configs]} self._path.parent.mkdir(parents=True, exist_ok=True) @@ -73,6 +78,7 @@ def _save_to_disk(self) -> None: async def get_configs(self) -> list[MCPServerConfig]: async with self._lock: + self._load_from_disk() # Lazy load on first access return [cfg.model_copy(deep=True) for cfg in self._configs] async def replace_configs( @@ -111,6 +117,7 @@ async def patch_server( raise ValueError("Server id cannot be changed") async with self._lock: + self._load_from_disk() # Lazy load on first access for index, existing in enumerate(self._configs): if existing.id != server_id: continue @@ -128,6 +135,7 @@ async def toggle_tool( self, server_id: str, tool_name: str, *, enabled: bool ) -> MCPServerConfig: async with self._lock: + self._load_from_disk() # Lazy load on first access for index, existing in enumerate(self._configs): if existing.id != server_id: continue diff --git a/start.sh b/start.sh index 93e5d897..fc4770ae 100755 --- a/start.sh +++ b/start.sh @@ -4,7 +4,7 @@ # Backend_FastAPI Component Launcher # ============================================================ # Starts selected components of the stack: -# 1 - Backend (FastAPI on :8000, connects to MCP) +# 1 - Backend (FastAPI on :8000) # 2 - MCP Servers (Standalone MCP pool on :9001-9010) # 3 - Frontend (Svelte chat UI on :5173) # 4 - Frontend-Kiosk (Kiosk UI on :5174) @@ -77,7 +77,7 @@ else echo -e "${BOLD}║ Backend_FastAPI Component Launcher ║${NC}" echo -e "${BOLD}╚════════════════════════════════════════════╝${NC}" echo "" - echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000, connects to MCP)" + echo -e " ${CYAN}1${NC} - Backend (FastAPI on :8000)" echo -e " ${CYAN}2${NC} - MCP Servers (Standalone pool on :9001-9010)" echo -e " ${CYAN}3${NC} - Frontend (Svelte chat UI on :5173)" echo -e " ${CYAN}4${NC} - Frontend-Kiosk (Kiosk UI on :5174)" diff --git a/tests/test_mcp_registry.py b/tests/test_mcp_registry.py index ef55fe64..44fb1104 100644 --- a/tests/test_mcp_registry.py +++ b/tests/test_mcp_registry.py @@ -67,6 +67,7 @@ def __init__( server_id: str | None = None, cwd: Path | None = None, env: dict[str, str] | None = None, + connect_only: bool = False, ) -> None: if server_id is None: raise AssertionError("server_id must be provided") From 7b285e203b06bc7580af1f240b11989f7c9691b3 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 23 Dec 2025 05:22:20 -0500 Subject: [PATCH 55/78] feat: Remove `/mode` command from shell_chat and add pre-start process termination to start scripts. --- frontend-cli/shell_chat.py | 44 +------------------------------------- start.sh | 24 +++++++++++++++++++++ start_server.sh | 20 +++++++++++++++++ 3 files changed, 45 insertions(+), 43 deletions(-) diff --git a/frontend-cli/shell_chat.py b/frontend-cli/shell_chat.py index 99ce6b6d..11a0e02b 100644 --- a/frontend-cli/shell_chat.py +++ b/frontend-cli/shell_chat.py @@ -297,45 +297,6 @@ async def _show_system_prompt(self) -> None: f"[error]Failed to get system prompt: {e}[/error]", style=ERROR_STYLE ) - def _handle_mode(self, mode: str | None = None) -> None: - """Handle /mode command - switch quake terminal mode.""" - mode_file = Path.home() / ".config" / "quake-terminal" / "mode" - valid_modes = ["terminal", "openrouter", "gemini"] - - # Get current mode - current = "terminal" - if mode_file.exists(): - current = mode_file.read_text().strip() - - if not mode: - # Show current mode and options - self.console.print(f"\n[bold]Quake Terminal Mode:[/bold]") - for m in valid_modes: - marker = "[green]►[/green]" if m == current else " " - desc = { - "terminal": "Plain shell", - "openrouter": "shell-chat (OpenRouter via Backend)", - "gemini": "gemini-chat (Gemini API)" - }.get(m, "") - self.console.print(f" {marker} [cyan]{m}[/cyan] - {desc}") - self.console.print(f"\n[dim]Usage: /mode [/dim]") - return - - mode = mode.lower() - if mode not in valid_modes: - self.console.print(f"[error]Invalid mode: {mode}[/error]", style=ERROR_STYLE) - self.console.print(f"[dim]Use: terminal, openrouter, or gemini[/dim]") - return - - # Save new mode - mode_file.parent.mkdir(parents=True, exist_ok=True) - mode_file.write_text(mode) - self.console.print(f"[info]Mode set to: {mode}[/info]", style=INFO_STYLE) - - if mode != "openrouter": - # Exit and let quake terminal restart with new mode - self.console.print("[dim]Exiting to switch mode. Press quake hotkey to reopen.[/dim]") - self.running = False def _show_help(self) -> None: """Show available commands.""" @@ -351,7 +312,6 @@ def _show_help(self) -> None: /tools on Enable an MCP server /tools off Disable an MCP server /system Show system prompt - /mode Switch quake terminal mode /quit Exit shell-chat [bold]Shortcuts:[/bold] @@ -412,9 +372,7 @@ async def _handle_command(self, cmd: str) -> bool: elif command == "/system": await self._show_system_prompt() return True - elif command == "/mode": - self._handle_mode(parts[1] if len(parts) > 1 else None) - return True + return False diff --git a/start.sh b/start.sh index fc4770ae..d6bda1d6 100755 --- a/start.sh +++ b/start.sh @@ -49,6 +49,30 @@ cleanup() { trap cleanup SIGINT SIGTERM +# Kill any existing processes from a previous run +kill_existing() { + echo -e "${YELLOW}Killing any existing processes...${NC}" + + # Kill uvicorn processes for this project + pkill -f "uvicorn backend.app:create_app" 2>/dev/null || true + + # Kill MCP server processes + pkill -f "start_mcp_servers.py" 2>/dev/null || true + pkill -f "mcp_registry" 2>/dev/null || true + + # Kill node/npm processes for frontends + pkill -f "node.*frontend" 2>/dev/null || true + pkill -f "npm.*frontend" 2>/dev/null || true + pkill -f "vite.*5173" 2>/dev/null || true + pkill -f "vite.*5174" 2>/dev/null || true + + # Give processes time to exit + sleep 1 +} + +# Kill existing processes before starting +kill_existing + # Helper: Wait for backend to be ready wait_for_backend() { local max_attempts=30 diff --git a/start_server.sh b/start_server.sh index 03a4056c..c78be371 100755 --- a/start_server.sh +++ b/start_server.sh @@ -10,6 +10,26 @@ cd "$SCRIPT_DIR" # Ensure logs directory exists mkdir -p logs +# Kill any existing processes from a previous run +kill_existing() { + echo "Killing any existing backend/frontend processes..." + + # Kill uvicorn processes for this project + pkill -f "uvicorn backend.app:create_app" 2>/dev/null || true + + # Kill node/npm processes for frontend and frontend-kiosk + pkill -f "node.*frontend" 2>/dev/null || true + pkill -f "npm.*frontend" 2>/dev/null || true + pkill -f "vite.*5173" 2>/dev/null || true + pkill -f "vite.*5174" 2>/dev/null || true + + # Give processes time to exit + sleep 1 +} + +# Kill existing processes before starting +kill_existing + # Function to cleanup background processes on exit cleanup() { echo "Stopping servers..." From 9619ce759234c3890c2a5d38b59ff3ace0eb07fd Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 23 Dec 2025 05:47:35 -0500 Subject: [PATCH 56/78] feat: Refactor server row layout to use grid for improved responsiveness and alignment --- .../lib/components/chat/system-settings.css | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/frontend/src/lib/components/chat/system-settings.css b/frontend/src/lib/components/chat/system-settings.css index e80a3d6d..f4395f09 100644 --- a/frontend/src/lib/components/chat/system-settings.css +++ b/frontend/src/lib/components/chat/system-settings.css @@ -128,17 +128,18 @@ } .server-row-header { - display: flex; - align-items: center; - justify-content: space-between; - gap: 1rem; + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(240px, 360px); + align-items: start; + gap: 0.75rem 1.25rem; } .server-toggles { - display: flex; - align-items: center; - gap: 1rem; - flex-shrink: 0; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); + gap: 0.4rem 0.75rem; + justify-items: start; + width: 100%; } .running-toggle { @@ -170,6 +171,15 @@ cursor: not-allowed; } +.server-toggles .running-toggle { + grid-column: 1 / -1; +} + +.server-heading { + flex: 1 1 240px; + min-width: 0; +} + .server-heading h4 { margin: 0; font-size: 0.9rem; @@ -184,6 +194,16 @@ color: #8ea7d2; } +.server-meta span { + overflow-wrap: anywhere; +} + +@media (max-width: 720px) { + .server-row-header { + grid-template-columns: 1fr; + } +} + .server-meta .connected { color: #34d399; } From 50f146645592f7ce9371a4b84f3320c28d5cda28 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 23 Dec 2025 06:06:12 -0500 Subject: [PATCH 57/78] feat: Add standalone MCP settings page and enable direct access via URL parameter. --- frontend/mcp.html | 12 ++++++++++++ frontend/src/App.svelte | 8 ++++++++ frontend/src/McpStandalone.svelte | 28 ++++++++++++++++++++++++++++ frontend/src/mcp.ts | 8 ++++++++ 4 files changed, 56 insertions(+) create mode 100644 frontend/mcp.html create mode 100644 frontend/src/McpStandalone.svelte create mode 100644 frontend/src/mcp.ts diff --git a/frontend/mcp.html b/frontend/mcp.html new file mode 100644 index 00000000..2c1285e0 --- /dev/null +++ b/frontend/mcp.html @@ -0,0 +1,12 @@ + + + + + + MCP Settings + + +
                                              + + + diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 5aa29c5e..f14ab37d 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -90,6 +90,14 @@ // Reload suggestions after applying preset await suggestionsStore.load(); } + + // Check for URL params to open modals directly + const params = new URLSearchParams(window.location.search); + if (params.get("mcp") === "1") { + mcpServersOpen = true; + // Clean up URL + window.history.replaceState({}, "", window.location.pathname); + } }); async function handleSuggestionAdd(): Promise { diff --git a/frontend/src/McpStandalone.svelte b/frontend/src/McpStandalone.svelte new file mode 100644 index 00000000..b16f6ddf --- /dev/null +++ b/frontend/src/McpStandalone.svelte @@ -0,0 +1,28 @@ + + +
                                              + +
                                              + + diff --git a/frontend/src/mcp.ts b/frontend/src/mcp.ts new file mode 100644 index 00000000..8122c3f8 --- /dev/null +++ b/frontend/src/mcp.ts @@ -0,0 +1,8 @@ +import { mount } from 'svelte' +import McpStandalone from './McpStandalone.svelte' + +const app = mount(McpStandalone, { + target: document.getElementById('app')!, +}) + +export default app From 7eb512af2ac9dae8d1c98ba680c81240b8328f0f Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 23 Dec 2025 22:50:07 -0500 Subject: [PATCH 58/78] refactor: Remove explicit backend client enablement logic and UI, replacing with a general client enablement check. --- data/mcp_servers.json | 12 ++++---- .../components/chat/McpServersModal.svelte | 29 ++----------------- .../lib/components/chat/system-settings.css | 10 ++++++- frontend/src/lib/stores/mcpServers.ts | 4 --- src/backend/chat/mcp_registry.py | 19 ++++++++---- 5 files changed, 31 insertions(+), 43 deletions(-) diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 0757cc7a..13b84f03 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -2,6 +2,7 @@ "servers": [ { "client_enabled": { + "backend": false, "cli": true, "kiosk": true, "svelte": true @@ -18,8 +19,8 @@ "client_enabled": { "backend": false, "cli": true, - "kiosk": false, - "svelte": false + "kiosk": true, + "svelte": true }, "contexts": [], "enabled": true, @@ -33,7 +34,7 @@ "client_enabled": { "cli": true, "kiosk": true, - "svelte": true + "svelte": false }, "contexts": [], "enabled": false, @@ -115,9 +116,10 @@ }, { "client_enabled": { + "backend": true, "cli": true, - "kiosk": true, - "svelte": true + "kiosk": false, + "svelte": false }, "contexts": [], "enabled": true, diff --git a/frontend/src/lib/components/chat/McpServersModal.svelte b/frontend/src/lib/components/chat/McpServersModal.svelte index 76c9d181..61e42401 100644 --- a/frontend/src/lib/components/chat/McpServersModal.svelte +++ b/frontend/src/lib/components/chat/McpServersModal.svelte @@ -117,12 +117,7 @@ mcpServers.setCliEnabled(serverId, enabled); } - function toggleBackend(serverId: string, enabled: boolean): void { - if ($mcpServers.saving) { - return; - } - mcpServers.setBackendEnabled(serverId, enabled); - } + function toggleTool(serverId: string, tool: string, enabled: boolean): void { if ($mcpServers.saving) { @@ -636,27 +631,7 @@ /> CLI - + diff --git a/frontend/src/lib/components/chat/system-settings.css b/frontend/src/lib/components/chat/system-settings.css index f4395f09..4e23288d 100644 --- a/frontend/src/lib/components/chat/system-settings.css +++ b/frontend/src/lib/components/chat/system-settings.css @@ -136,7 +136,7 @@ .server-toggles { display: grid; - grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); + grid-template-columns: repeat(3, minmax(80px, 1fr)); gap: 0.4rem 0.75rem; justify-items: start; width: 100%; @@ -166,6 +166,14 @@ accent-color: #a78bfa; } +.cli-toggle { + color: #f59e0b; +} + +.cli-toggle input { + accent-color: #f59e0b; +} + .toggle-disabled { opacity: 0.4; cursor: not-allowed; diff --git a/frontend/src/lib/stores/mcpServers.ts b/frontend/src/lib/stores/mcpServers.ts index b302b0d6..c852a6b7 100644 --- a/frontend/src/lib/stores/mcpServers.ts +++ b/frontend/src/lib/stores/mcpServers.ts @@ -150,9 +150,6 @@ export function createMcpServersStore() { setClientEnabled(serverId, 'cli', cliEnabled); } - function setBackendEnabled(serverId: string, backendEnabled: boolean): void { - setClientEnabled(serverId, 'backend', backendEnabled); - } function setToolEnabled(serverId: string, tool: string, enabled: boolean): void { store.update((state) => { @@ -356,7 +353,6 @@ export function createMcpServersStore() { setKioskEnabled, setFrontendEnabled, setCliEnabled, - setBackendEnabled, setToolEnabled, setServerEnv, getServer, diff --git a/src/backend/chat/mcp_registry.py b/src/backend/chat/mcp_registry.py index b0fc1445..ab0ae4d2 100644 --- a/src/backend/chat/mcp_registry.py +++ b/src/backend/chat/mcp_registry.py @@ -116,7 +116,7 @@ class MCPServerConfig(BaseModel): description="Optional per-tool override settings keyed by tool name", ) client_enabled: dict[str, bool] = Field( - default_factory=lambda: {"svelte": True, "kiosk": False, "cli": True, "backend": True}, + default_factory=lambda: {"svelte": True, "kiosk": False, "cli": True}, description="Per-client enabled state: {client_id: True/False}", ) @@ -139,7 +139,6 @@ def _migrate_legacy_enabled_flags(cls, data: Any) -> Any: "svelte": frontend_enabled, "kiosk": kiosk_enabled, "cli": frontend_enabled, # CLI follows frontend by default - "backend": True, # Backend connection enabled by default } return data @@ -147,6 +146,14 @@ def is_enabled_for_client(self, client_id: str) -> bool: """Check if this server is enabled for a specific client.""" return self.client_enabled.get(client_id, False) + def is_enabled_for_any_client(self) -> bool: + """Check if this server is enabled for any UI client (svelte, kiosk, cli).""" + return ( + self.client_enabled.get("svelte", False) + or self.client_enabled.get("kiosk", False) + or self.client_enabled.get("cli", False) + ) + @field_validator("command", mode="before") @classmethod def _normalize_command(cls, value: Any) -> Any: @@ -438,9 +445,9 @@ async def connect(self) -> None: for config in self._configs: if not config.enabled: continue - if not config.is_enabled_for_client("backend"): + if not config.is_enabled_for_any_client(): logger.debug( - "MCP server '%s' not enabled for backend client, skipping", + "MCP server '%s' not enabled for any client, skipping", config.id, ) continue @@ -503,9 +510,9 @@ async def discover_and_connect(self) -> dict[str, bool]: ) continue - if not config.is_enabled_for_client("backend"): + if not config.is_enabled_for_any_client(): logger.debug( - "MCP server '%s' on port %d not enabled for backend, skipping", + "MCP server '%s' on port %d not enabled for any client, skipping", config.id, port, ) From 29548bc954380fee64b158bdc507962443e9ed32 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 03:41:35 -0500 Subject: [PATCH 59/78] feat: update Svelte LLM configurations, enable Svelte for an MCP server, and trigger MCP discovery after config changes. --- data/mcp_servers.json | 2 +- src/backend/data/clients/svelte/llm.json | 4 ++-- src/backend/data/clients/svelte/presets.json | 4 ++-- src/backend/routers/mcp_servers.py | 3 +++ tests/test_mcp_server_settings.py | 3 +++ 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/data/mcp_servers.json b/data/mcp_servers.json index 13b84f03..2e72772c 100644 --- a/data/mcp_servers.json +++ b/data/mcp_servers.json @@ -119,7 +119,7 @@ "backend": true, "cli": true, "kiosk": false, - "svelte": false + "svelte": true }, "contexts": [], "enabled": true, diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 383cde93..ce2d4cd1 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { - "model": "openai/gpt-5.2", - "system_prompt": "You are a helpful assistant. yea", + "model": "openai/gpt-4.1-nano", + "system_prompt": "You are a helpful assistant whith access to tools.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 5bfa81d9..3595806d 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -19,8 +19,8 @@ { "name": "shell", "llm": { - "model": "openai/gpt-5.2", - "system_prompt": "You are a helpful assistant. yea", + "model": "openai/gpt-4.1-nano", + "system_prompt": "You are a helpful assistant whith access to tools.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/routers/mcp_servers.py b/src/backend/routers/mcp_servers.py index 9e23bcf1..896b1e44 100644 --- a/src/backend/routers/mcp_servers.py +++ b/src/backend/routers/mcp_servers.py @@ -110,6 +110,7 @@ async def replace_mcp_servers( ] persisted = await service.replace_configs(configs) await orchestrator.apply_mcp_configs(persisted) + await orchestrator.discover_mcp() return await _build_status_response(service, orchestrator) @@ -132,6 +133,7 @@ async def update_mcp_server( ) configs = await service.get_configs() await orchestrator.apply_mcp_configs(configs) + await orchestrator.discover_mcp() return await _build_status_response(service, orchestrator) @@ -170,6 +172,7 @@ async def set_server_client_enabled( ) updated_configs = await service.get_configs() await orchestrator.apply_mcp_configs(updated_configs) + await orchestrator.discover_mcp() return await _build_status_response(service, orchestrator) diff --git a/tests/test_mcp_server_settings.py b/tests/test_mcp_server_settings.py index 4854f169..0a9c7c74 100644 --- a/tests/test_mcp_server_settings.py +++ b/tests/test_mcp_server_settings.py @@ -119,6 +119,9 @@ def describe_mcp_servers(self) -> list[dict[str, Any]]: async def refresh_mcp_tools(self) -> None: self.refreshed = True + async def discover_mcp(self) -> dict[str, bool]: + return {} + async def test_service_loads_fallback_and_persist(tmp_path: Path) -> None: path = tmp_path / "servers.json" From dad21a4931f6c96053bcb36ad97238001b00dcf2 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 04:18:26 -0500 Subject: [PATCH 60/78] added inventory to to separate from profile and make leaner --- scripts/migrate_profile_inventory.py | 122 +++++++++ .../mcp_servers/shell_control_server.py | 241 ++++++++++-------- tests/test_shell_control_server.py | 20 +- 3 files changed, 267 insertions(+), 116 deletions(-) create mode 100644 scripts/migrate_profile_inventory.py diff --git a/scripts/migrate_profile_inventory.py b/scripts/migrate_profile_inventory.py new file mode 100644 index 00000000..2e04765e --- /dev/null +++ b/scripts/migrate_profile_inventory.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python3 +"""Migrate existing profile.json to separate profile.json (lean) and inventory.json. + +Extracts software details (packages, services, defaults) to inventory.json +while keeping profile.json lean with only shell-control context. + +Usage: + uv run python scripts/migrate_profile_inventory.py /path/to/host_profiles/xps13 +""" + +from __future__ import annotations + +import json +import shutil +import sys +from pathlib import Path + + +def migrate_profile(host_dir: Path) -> None: + """Migrate a single host profile directory.""" + profile_path = host_dir / "profile.json" + inventory_path = host_dir / "inventory.json" + + if not profile_path.exists(): + print(f" Skipping {host_dir.name}: no profile.json") + return + + # Backup original + backup_path = profile_path.with_suffix(".json.backup") + if not backup_path.exists(): + shutil.copy2(profile_path, backup_path) + print(f" Created backup: {backup_path.name}") + + # Load current profile + profile = json.loads(profile_path.read_text(encoding="utf-8")) + software = profile.get("software", {}) + + # Fields to move to inventory + inventory_fields = ["packages", "enabled_services", "defaults", "snapshot_ts", + "kernel", "package_manager", "aur_helper", "os_base"] + + # Build inventory from software section + inventory: dict = {} + system_info: dict = {} + for field in inventory_fields: + if field in software: + if field in ("kernel", "package_manager", "aur_helper", "os_base"): + system_info[field] = software[field] + else: + inventory[field] = software[field] + + if system_info: + inventory["system"] = system_info + + # Remove inventory fields from profile.software + for field in inventory_fields: + software.pop(field, None) + + # Flatten lean profile structure + lean_profile: dict = {} + + # Copy hardware.host_id to top level + if "hardware" in profile: + hw = profile["hardware"] + if "host_id" in hw: + lean_profile["host_id"] = hw["host_id"] + + # Copy lean software fields to top level + if "os" in software: + lean_profile["os"] = software["os"] + if "desktop" in software: + lean_profile["desktop"] = software["desktop"] + if "display_server" in software: + lean_profile["display"] = software["display_server"] + if "sudo" in software: + lean_profile["sudo"] = software["sudo"] + + # Keep tools sections + for key in ("wayland_tools", "apps", "waybar_toggles", "bookmarks"): + if key in profile: + lean_profile["tools" if key == "wayland_tools" else key] = profile[key] + + # Keep quirks/notes if present + if "quirks" in profile: + lean_profile["quirks"] = profile["quirks"] + if "notes" in profile: + lean_profile["quirks"] = profile["notes"] # Rename notes -> quirks + + lean_profile["updated_at"] = profile.get("updated_at", "") + + # Save inventory.json + if inventory: + inventory_path.write_text( + json.dumps(inventory, ensure_ascii=False, indent=2), encoding="utf-8" + ) + print(f" Created inventory.json with {len(inventory)} fields") + + # Save lean profile.json + profile_path.write_text( + json.dumps(lean_profile, ensure_ascii=False, indent=2), encoding="utf-8" + ) + print(f" Updated profile.json ({len(json.dumps(lean_profile))} bytes)") + + +def main() -> None: + if len(sys.argv) < 2: + print("Usage: python migrate_profile_inventory.py ") + print("Example: python migrate_profile_inventory.py ~/GoogleDrive/host_profiles/xps13") + sys.exit(1) + + host_dir = Path(sys.argv[1]).expanduser() + if not host_dir.is_dir(): + print(f"Error: {host_dir} is not a directory") + sys.exit(1) + + print(f"Migrating {host_dir}...") + migrate_profile(host_dir) + print("Done!") + + +if __name__ == "__main__": + main() diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 7d7502f3..ead6a6cf 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -380,6 +380,37 @@ def _get_deltas_path(host_id: str | None = None) -> Path: return _get_host_dir(host_id) / "deltas.log" +def _get_inventory_path(host_id: str | None = None) -> Path: + """Return the inventory.json path for the given or active host.""" + + return _get_host_dir(host_id) / "inventory.json" + + +def _load_inventory() -> dict: + """Load the system inventory; return empty dict if missing.""" + + path = _get_inventory_path() + try: + payload = json.loads(path.read_text(encoding="utf-8")) + except FileNotFoundError: + return {} + except json.JSONDecodeError: + return {} + + return payload if isinstance(payload, dict) else {} + + +def _save_inventory(inventory: dict) -> None: + """Persist system inventory to disk atomically.""" + + path = _get_inventory_path() + tmp_path = path.with_suffix(".tmp") + tmp_path.write_text( + json.dumps(inventory, ensure_ascii=False, indent=2), encoding="utf-8" + ) + tmp_path.replace(path) + + def _load_profile() -> dict: """Load the current host profile; raise if it is missing or invalid.""" @@ -944,7 +975,9 @@ async def _detect_system_info() -> dict[str, object]: async def _auto_snapshot_software(triggers: set[str]) -> dict[str, object]: - """Run targeted snapshots based on what triggered, update profile.software automatically. + """Run targeted snapshots based on what triggered, update inventory.json. + + Writes to inventory.json (NOT profile.json) to keep the LLM context lean. Triggers: - "packages": Snapshot installed apps in tracked categories @@ -970,22 +1003,12 @@ async def _auto_snapshot_software(triggers: set[str]) -> dict[str, object]: if not snapshot: return {} - # Update profile.software section with snapshot - try: - current = _load_profile() - except (FileNotFoundError, ValueError): - current = {} - - # Ensure software section exists - if "software" not in current: - current["software"] = {} - - # Merge snapshot into software section + # Update inventory.json (not profile.json) with snapshot + current = _load_inventory() snapshot["snapshot_ts"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - current["software"] = _deep_merge(current.get("software", {}), snapshot) - current["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - _save_profile(current) - _append_delta("software_snapshot", snapshot, "Auto-snapshot after command") + merged = _deep_merge(current, snapshot) + _save_inventory(merged) + _append_delta("inventory_snapshot", snapshot, "Auto-snapshot after command") return snapshot @@ -1631,19 +1654,14 @@ async def shell_get_full_output( @mcp.tool("host_get_profile") # type: ignore async def host_get_profile() -> str: - """Get host profile with hardware, software, and notes. - - Profile structure: - - hardware: CPU, GPU, RAM, model, has_discrete_gpu - - software: OS, desktop, package_manager, aur_helper, plus: - - packages: Auto-tracked installed apps by category (browsers, editors, etc.) - - enabled_services: Auto-tracked systemd services - - defaults: Auto-tracked XDG default apps (browser, file_manager, etc.) - - notes: Binary quirks, limitations, user preferences - - The software section is auto-updated after shell_execute runs - package/service/xdg commands. Check profile.software.packages - before suggesting installations. + """Get lean host profile for shell control context. + + Contains only what the LLM needs to operate the system: + - host_id, os, desktop, display, sudo + - tools: screenshot, clipboard, windows, open_url, file_manager + - quirks: edge cases and workarounds + + Package lists, services, and defaults are in inventory.json (not returned). """ try: @@ -1662,124 +1680,127 @@ async def host_get_profile() -> str: ) -@mcp.tool("host_update_profile") # type: ignore -async def host_update_profile(updates: dict, reason: str | None = None) -> str: - """Update host profile (hardware, software, notes). - - Profile sections: - - hardware: CPU, GPU, RAM, model (rarely changes) - - software: OS, desktop, package manager, plus auto-tracked packages/services/defaults - - notes: Binary quirks, limitations, user preferences - - The software.packages, software.enabled_services, and software.defaults - are auto-updated by shell_execute after install/service/xdg commands. - Use this tool for manual corrections or non-auto-detected changes. +@mcp.tool("host_update_context") # type: ignore +async def host_update_context( + action: str, + key: str, + value: str | None = None, + reason: str | None = None, +) -> str: + """Update lean profile context. Use sparingly for significant discoveries. Args: - updates: Dict to deep-merge (set value to null to delete a key) - reason: Explanation logged to deltas.log for audit + action: "add" or "remove" + key: Dot-notation path (e.g., "tools.screenshot", "quirks.no_gpu") + value: Value to set (required for "add", ignored for "remove") + reason: Why this matters (logged for audit) + + Examples: + action="add", key="tools.screenshot", value="grim - | wl-copy" + action="remove", key="quirks.old_browser" """ + if action not in ("add", "remove"): + return json.dumps({"status": "error", "message": "action must be 'add' or 'remove'"}) + + if action == "add" and not value: + return json.dumps({"status": "error", "message": "value required for 'add'"}) try: current = _load_profile() except FileNotFoundError: - # Allow creating profile if it doesn't exist current = {} except (ValueError, RuntimeError) as exc: - return json.dumps( - { - "status": "error", - "host_id": _get_host_id_safe(), - "message": str(exc), - } - ) + return json.dumps({"status": "error", "message": str(exc)}) + + # Parse dot-notation key and build update dict + keys = key.split(".") + if action == "add": + update: dict = {} + ref = update + for k in keys[:-1]: + ref[k] = {} + ref = ref[k] + ref[keys[-1]] = value + else: # remove + update = {} + ref = update + for k in keys[:-1]: + ref[k] = {} + ref = ref[k] + ref[keys[-1]] = None # None triggers deletion in _deep_merge try: - merged = _deep_merge(current, updates) + merged = _deep_merge(current, update) merged["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) _save_profile(merged) - _append_delta("profile", updates, reason) + _append_delta("context_update", {"action": action, "key": key, "value": value}, reason) except RuntimeError as exc: - return json.dumps( - { - "status": "error", - "host_id": _get_host_id_safe(), - "message": str(exc), - } - ) + return json.dumps({"status": "error", "message": str(exc)}) - return json.dumps( - { - "status": "ok", - "host_id": _get_host_id_safe(), - "message": "Profile updated", - "applied": updates, - } - ) + return json.dumps({"status": "ok", "action": action, "key": key}) @mcp.tool("host_detect_system") # type: ignore async def host_detect_system() -> str: - """Detect and update profile with current system information. + """Detect system info and update both profile (lean) and inventory (full). - Auto-detects: OS, kernel, desktop environment, display server (wayland/x11), - package manager, AUR helper, installed packages, enabled services, default apps. + Updates: + - inventory.json: Full snapshot (packages, services, defaults, system info) + - profile.json: Only lean context fields (os, desktop, display) - Run this to initialize a new profile or audit an existing one. - Safe to run anytime — merges detected info into profile without overwriting - manual notes or hardware info. + Run this to initialize or audit system state. """ # Detect static system info system_info = await _detect_system_info() - # Also snapshot dynamic software state + # Snapshot dynamic software state packages = await _snapshot_tracked_packages() services = await _snapshot_enabled_services() defaults = await _snapshot_defaults() - # Build software section - software_update: dict[str, object] = {**system_info} + # Build full inventory snapshot + inventory_update: dict[str, object] = { + "system": system_info, + "snapshot_ts": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), + } if packages: - software_update["packages"] = packages + inventory_update["packages"] = packages if services: - software_update["enabled_services"] = services + inventory_update["enabled_services"] = services if defaults: - software_update["defaults"] = defaults - software_update["snapshot_ts"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - - # Load current profile and merge - try: - current = _load_profile() - except (FileNotFoundError, ValueError, RuntimeError): - current = {} - - # Merge into software section - if "software" not in current: - current["software"] = {} - current["software"] = _deep_merge(current.get("software", {}), software_update) - current["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - - try: - _save_profile(current) - _append_delta( - "system_detect", {"software": software_update}, "Auto-detected system info" - ) - except RuntimeError as exc: - return json.dumps( - { - "status": "error", - "host_id": _get_host_id_safe(), - "message": str(exc), - } - ) + inventory_update["defaults"] = defaults + + # Save to inventory.json + current_inventory = _load_inventory() + merged_inventory = _deep_merge(current_inventory, inventory_update) + _save_inventory(merged_inventory) + _append_delta("system_detect", inventory_update, "Auto-detected system info") + + # Update lean profile with only essential context + lean_update = {} + if "os" in system_info: + lean_update["os"] = system_info["os"] + if "desktop" in system_info: + lean_update["desktop"] = system_info["desktop"] + if "display_server" in system_info: + lean_update["display"] = system_info["display_server"] + + if lean_update: + try: + current_profile = _load_profile() + except (FileNotFoundError, ValueError, RuntimeError): + current_profile = {} + merged_profile = _deep_merge(current_profile, lean_update) + merged_profile["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + _save_profile(merged_profile) return json.dumps( { "status": "ok", "host_id": _get_host_id_safe(), - "message": "System info detected and profile updated", - "detected": software_update, + "message": "System detected. Inventory updated, profile kept lean.", + "inventory_fields": list(inventory_update.keys()), } ) @@ -1989,7 +2010,7 @@ def run( "shell_execute", "shell_get_full_output", "host_get_profile", - "host_update_profile", + "host_update_context", "host_detect_system", "system_update", "system_backup", diff --git a/tests/test_shell_control_server.py b/tests/test_shell_control_server.py index 645dcae4..9272cfde 100644 --- a/tests/test_shell_control_server.py +++ b/tests/test_shell_control_server.py @@ -175,25 +175,30 @@ async def test_host_get_profile_missing_host_id( assert "HOST_PROFILE_ID" in result["message"] -async def test_host_update_profile_adds_timestamp( +async def test_host_update_context_adds_timestamp( host_root: Path, monkeypatch: pytest.MonkeyPatch ) -> None: - """Test that host_update_profile adds updated_at timestamp.""" + """Test that host_update_context adds updated_at timestamp.""" monkeypatch.setenv("HOST_PROFILE_ID", "test-host") # Create initial profile profile_path = host_root / "test-host" / "profile.json" profile_path.parent.mkdir(parents=True, exist_ok=True) - profile_path.write_text('{"hostname": "test"}', encoding="utf-8") + profile_path.write_text('{"host_id": "test-host"}', encoding="utf-8") - # Update profile + # Update profile using new API result = json.loads( - await shell_control_server.host_update_profile( - {"notes": {"test": "value"}}, reason="test update" + await shell_control_server.host_update_context( + action="add", + key="quirks.test", + value="test value", + reason="test update", ) ) assert result["status"] == "ok" + assert result["action"] == "add" + assert result["key"] == "quirks.test" # Verify timestamp was added updated_profile = json.loads(profile_path.read_text(encoding="utf-8")) @@ -201,3 +206,6 @@ async def test_host_update_profile_adds_timestamp( # Verify format is ISO 8601 assert updated_profile["updated_at"].endswith("Z") assert "T" in updated_profile["updated_at"] + # Verify nested key was set + assert updated_profile.get("quirks", {}).get("test") == "test value" + From 938a7c92fc4bb9cddce457e55e4e79902ad6e8a1 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 04:37:34 -0500 Subject: [PATCH 61/78] added resource to prompt injection from host profile --- .../mcp_servers/shell_control_server.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index ead6a6cf..8e6497fe 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1652,6 +1652,26 @@ async def shell_get_full_output( return json.dumps(response) +# ============================================================================= +# Host Profile Resource (MCP Resource for LLM context injection) +# ============================================================================= + + +@mcp.resource( + uri="host://profile", + name="HostProfile", + description="Lean host profile with system context for shell control. " + "Contains: host_id, os, desktop, display, tools, apps, quirks.", + mime_type="application/json", +) +def host_profile_resource() -> dict: + """Return lean host profile as MCP Resource for LLM context.""" + try: + return _load_profile() + except (FileNotFoundError, ValueError, RuntimeError): + return {"error": "Profile not found", "host_id": _get_host_id_safe()} + + @mcp.tool("host_get_profile") # type: ignore async def host_get_profile() -> str: """Get lean host profile for shell control context. From 2a793c4178259f139970d19dbe5a70369a909d2b Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 05:32:43 -0500 Subject: [PATCH 62/78] feat: implement model filters for client presets and add a new method to load preset settings without activating them. --- frontend/src/lib/api/client.ts | 7 +- .../chat/SystemSettingsModal.svelte | 1 + src/backend/data/clients/svelte/llm.json | 2 +- src/backend/data/clients/svelte/presets.json | 82 ++++++++++++++++--- src/backend/routers/clients.py | 2 +- src/backend/schemas/client_settings.py | 42 +++++++++- .../services/client_settings_service.py | 33 +++++++- 7 files changed, 150 insertions(+), 19 deletions(-) diff --git a/frontend/src/lib/api/client.ts b/frontend/src/lib/api/client.ts index e7f817e0..39edd465 100644 --- a/frontend/src/lib/api/client.ts +++ b/frontend/src/lib/api/client.ts @@ -417,6 +417,7 @@ export async function fetchPresets(): Promise { interface BackendPreset { name: string; llm?: { model?: string;[key: string]: unknown }; + model_filters?: PresetModelFilters | null; created_at?: string | null; updated_at?: string | null; [key: string]: unknown; @@ -430,7 +431,7 @@ export async function fetchPresets(): Promise { name: preset.name, model: preset.llm?.model ?? 'unknown', is_default: index === response.active_index, - has_filters: false, + has_filters: Boolean(preset.model_filters), created_at: preset.created_at ?? new Date().toISOString(), updated_at: preset.updated_at ?? new Date().toISOString(), })); @@ -445,6 +446,7 @@ export async function fetchPreset(name: string): Promise { system_prompt?: string | null; [key: string]: unknown }; + model_filters?: PresetModelFilters | null; created_at?: string | null; updated_at?: string | null; [key: string]: unknown; @@ -461,6 +463,7 @@ export async function fetchPreset(name: string): Promise { name: preset.name, model: preset.llm?.model ?? 'unknown', system_prompt: preset.llm?.system_prompt ?? null, + model_filters: preset.model_filters ?? null, is_default: index === response.active_index, created_at: preset.created_at ?? new Date().toISOString(), updated_at: preset.updated_at ?? new Date().toISOString(), @@ -476,6 +479,7 @@ export async function createPreset(payload: PresetCreatePayload): Promise( @@ -516,6 +520,7 @@ export async function savePresetSnapshot( method: 'PUT', body: JSON.stringify({ llm: currentLlm, + model_filters: _payload?.model_filters ?? null, }), } ); diff --git a/frontend/src/lib/components/chat/SystemSettingsModal.svelte b/frontend/src/lib/components/chat/SystemSettingsModal.svelte index 030ca832..20b67402 100644 --- a/frontend/src/lib/components/chat/SystemSettingsModal.svelte +++ b/frontend/src/lib/components/chat/SystemSettingsModal.svelte @@ -112,6 +112,7 @@ chatStore.setModel(result.model); } await suggestionsStore.load(); + dispatch("close"); } async function handleSaveSnapshot(item: PresetListItem): Promise { diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index ce2d4cd1..35d50016 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { "model": "openai/gpt-4.1-nano", - "system_prompt": "You are a helpful assistant whith access to tools.", + "system_prompt": "You control the user's system via shell. Use the available toos to execture user commands.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 3595806d..b1d395a3 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -3,24 +3,27 @@ { "name": "test", "llm": { - "model": "openai/gpt-4o-mini", - "system_prompt": "You are a helpful assistant.", + "model": "openai/gpt-4.1-nano", + "system_prompt": null, "temperature": 0.7, - "max_tokens": 4096, - "supports_tools": true, + "max_tokens": 500, + "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 }, "stt": null, "tts": null, + "model_filters": { + "sort": "newness" + }, "created_at": "2025-12-19T10:56:16.306632+00:00", - "updated_at": "2025-12-19T10:56:16.306632+00:00" + "updated_at": "2025-12-25T10:31:45.744894+00:00" }, { "name": "shell", "llm": { "model": "openai/gpt-4.1-nano", - "system_prompt": "You are a helpful assistant whith access to tools.", + "system_prompt": "You control the user's system via shell. Use the available toos to execture user commands.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, @@ -29,8 +32,11 @@ }, "stt": null, "tts": null, + "model_filters": { + "sort": "newness" + }, "created_at": "2025-12-19T10:57:12.163449+00:00", - "updated_at": "2025-12-19T10:57:12.163449+00:00" + "updated_at": "2025-12-25T10:32:03.914502+00:00" }, { "name": "newonekosk", @@ -45,14 +51,26 @@ }, "stt": null, "tts": null, + "model_filters": { + "inputModalities": null, + "outputModalities": null, + "minContext": null, + "minPromptPrice": null, + "maxPromptPrice": null, + "sort": "newness", + "series": null, + "providers": null, + "supportedParameters": null, + "moderation": null + }, "created_at": "2025-12-19T11:20:27.054736+00:00", - "updated_at": "2025-12-19T11:20:27.054736+00:00" + "updated_at": "2025-12-25T10:24:32.395335+00:00" }, { "name": "all", "llm": { - "model": "openai/gpt-5.2", - "system_prompt": "You are a helpful assistant. yea", + "model": "microsoft/phi-3.5-mini-128k-instruct", + "system_prompt": "You are a helpful assistant.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, @@ -61,9 +79,49 @@ }, "stt": null, "tts": null, + "model_filters": { + "inputModalities": null, + "outputModalities": null, + "minContext": null, + "minPromptPrice": null, + "maxPromptPrice": null, + "sort": "newness", + "series": null, + "providers": null, + "supportedParameters": null, + "moderation": null + }, "created_at": "2025-12-22T07:07:25.314294+00:00", - "updated_at": "2025-12-22T07:07:25.314294+00:00" + "updated_at": "2025-12-25T10:24:35.012490+00:00" + }, + { + "name": "tst", + "llm": { + "model": "microsoft/phi-3.5-mini-128k-instruct", + "system_prompt": "You are a helpful assistant.", + "temperature": 0.7, + "max_tokens": 4096, + "supports_tools": true, + "conversation_mode": false, + "conversation_timeout_seconds": 10.0 + }, + "stt": null, + "tts": null, + "model_filters": { + "inputModalities": null, + "outputModalities": null, + "minContext": null, + "minPromptPrice": null, + "maxPromptPrice": null, + "sort": "newness", + "series": null, + "providers": null, + "supportedParameters": null, + "moderation": null + }, + "created_at": "2025-12-25T10:24:51.048296+00:00", + "updated_at": "2025-12-25T10:24:51.048296+00:00" } ], - "active_index": 1 + "active_index": 0 } \ No newline at end of file diff --git a/src/backend/routers/clients.py b/src/backend/routers/clients.py index 8e81aca1..08b522cc 100644 --- a/src/backend/routers/clients.py +++ b/src/backend/routers/clients.py @@ -320,7 +320,7 @@ async def apply_preset_by_name( raise HTTPException(status_code=404, detail=f"Preset not found: {name}") # Activate the preset (applies LLM/STT/TTS settings) - return service.activate_preset(preset_index) + return service.load_preset_settings(preset_index) @router.delete("/{client_id}/presets/by-name/{name}", response_model=ClientPresets) diff --git a/src/backend/schemas/client_settings.py b/src/backend/schemas/client_settings.py index 013e2a62..25eaf7ee 100644 --- a/src/backend/schemas/client_settings.py +++ b/src/backend/schemas/client_settings.py @@ -179,6 +179,34 @@ class TtsSettingsUpdate(BaseModel): # ============================================================================= + +# ============================================================================= +# Preset Filters +# ============================================================================= + + +class MultiSelectFilter(BaseModel): + """Filter with include/exclude lists.""" + + include: list[str] = Field(default_factory=list) + exclude: list[str] = Field(default_factory=list) + + +class PresetModelFilters(BaseModel): + """Filters saved with a preset.""" + + inputModalities: Optional[MultiSelectFilter] = None + outputModalities: Optional[MultiSelectFilter] = None + minContext: Optional[int] = None + minPromptPrice: Optional[float] = None + maxPromptPrice: Optional[float] = None + sort: Optional[str] = None + series: Optional[MultiSelectFilter] = None + providers: Optional[MultiSelectFilter] = None + supportedParameters: Optional[MultiSelectFilter] = None + moderation: Optional[MultiSelectFilter] = None + + # ============================================================================= # Client Presets # ============================================================================= @@ -191,8 +219,15 @@ class ClientPreset(BaseModel): llm: LlmSettings = Field(default_factory=LlmSettings) stt: Optional[SttSettings] = None tts: Optional[TtsSettings] = None - created_at: Optional[str] = Field(default=None, description="ISO timestamp when preset was created") - updated_at: Optional[str] = Field(default=None, description="ISO timestamp when preset was last modified") + model_filters: Optional[PresetModelFilters] = Field( + default=None, description="Saved model explorer filters" + ) + created_at: Optional[str] = Field( + default=None, description="ISO timestamp when preset was created" + ) + updated_at: Optional[str] = Field( + default=None, description="ISO timestamp when preset was last modified" + ) class ClientPresetUpdate(BaseModel): @@ -202,6 +237,7 @@ class ClientPresetUpdate(BaseModel): llm: Optional[LlmSettingsUpdate] = None stt: Optional[SttSettingsUpdate] = None tts: Optional[TtsSettingsUpdate] = None + model_filters: Optional[PresetModelFilters] = None class ClientPresets(BaseModel): @@ -263,4 +299,6 @@ class ClientSettings(BaseModel): "ClientPresetUpdate", "ClientPresets", "ClientSettings", + "MultiSelectFilter", + "PresetModelFilters", ] diff --git a/src/backend/services/client_settings_service.py b/src/backend/services/client_settings_service.py index b76281af..41b30d23 100644 --- a/src/backend/services/client_settings_service.py +++ b/src/backend/services/client_settings_service.py @@ -218,6 +218,8 @@ def get_presets(self) -> ClientPresets: def update_preset(self, index: int, update: ClientPresetUpdate) -> ClientPresets: """Update a preset at the given index.""" + from datetime import datetime, timezone + presets = self.get_presets() if index < 0 or index >= len(presets.presets): raise ValueError(f"Preset index {index} out of range") @@ -225,10 +227,10 @@ def update_preset(self, index: int, update: ClientPresetUpdate) -> ClientPresets preset = presets.presets[index] update_data = update.model_dump(exclude_none=True) - # Handle nested LLM update + # Handle nested LLM update - replace entirely instead of merging if "llm" in update_data and update_data["llm"]: llm_update = update_data.pop("llm") - preset.llm = preset.llm.model_copy(update=llm_update) + preset.llm = LlmSettings.model_validate(llm_update) # Handle nested STT update if "stt" in update_data and update_data["stt"]: stt_update = update_data.pop("stt") @@ -247,6 +249,9 @@ def update_preset(self, index: int, update: ClientPresetUpdate) -> ClientPresets for key, value in update_data.items(): setattr(preset, key, value) + # Update timestamp + preset.updated_at = datetime.now(timezone.utc).isoformat() + self._save_presets(presets) return presets @@ -275,6 +280,29 @@ def activate_preset(self, index: int) -> ClientSettings: tts=preset.tts, ) + def load_preset_settings(self, index: int) -> ClientSettings: + """Load settings from a preset without setting it as active (default).""" + presets = self.get_presets() + if index < 0 or index >= len(presets.presets): + raise ValueError(f"Preset index {index} out of range") + + preset = presets.presets[index] + + # Apply preset settings (LLM, STT, TTS only) - persistent for current session + self.replace_llm(preset.llm) + if preset.stt: + self._save_json("stt", preset.stt.model_dump()) + self._cache["stt"] = preset.stt + if preset.tts: + self._save_json("tts", preset.tts.model_dump()) + self._cache["tts"] = preset.tts + + return ClientSettings( + llm=preset.llm, + stt=preset.stt, + tts=preset.tts, + ) + def add_preset(self, preset: ClientPreset) -> ClientPresets: """Add a new preset.""" from datetime import datetime, timezone @@ -287,6 +315,7 @@ def add_preset(self, preset: ClientPreset) -> ClientPresets: llm=preset.llm, stt=preset.stt, tts=preset.tts, + model_filters=preset.model_filters, created_at=now, updated_at=now, ) From 0eab910be0010a238e8332e68c431a4709e6f39c Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 06:01:21 -0500 Subject: [PATCH 63/78] feat: enhance preset handling by adding model filters and updating preset mapping functions --- frontend/src/lib/api/client.ts | 128 ++++++++++-------- .../chat/SystemSettingsModal.svelte | 8 ++ src/backend/data/clients/svelte/llm.json | 6 +- src/backend/data/clients/svelte/presets.json | 4 +- 4 files changed, 86 insertions(+), 60 deletions(-) diff --git a/frontend/src/lib/api/client.ts b/frontend/src/lib/api/client.ts index 39edd465..ccb48ec1 100644 --- a/frontend/src/lib/api/client.ts +++ b/frontend/src/lib/api/client.ts @@ -21,6 +21,7 @@ import type { PresetCreatePayload, // Presets PresetListItem, + PresetModelFilters, PresetSaveSnapshotPayload, SpotifyAuthAuthorizeRequest, SpotifyAuthAuthorizeResponse, @@ -413,61 +414,74 @@ export async function streamChat( /* Preset API - using per-client svelte presets */ -export async function fetchPresets(): Promise { - interface BackendPreset { - name: string; - llm?: { model?: string;[key: string]: unknown }; - model_filters?: PresetModelFilters | null; - created_at?: string | null; - updated_at?: string | null; - [key: string]: unknown; - } +interface BackendPresetLlm { + model?: string; + system_prompt?: string | null; + supports_tools?: boolean | null; + [key: string]: unknown; +} - const response = await requestJson<{ presets: BackendPreset[]; active_index: number | null }>( - resolveApiPath('/api/clients/svelte/presets') - ); +interface BackendPreset { + name: string; + llm?: BackendPresetLlm | null; + model_filters?: PresetModelFilters | null; + created_at?: string | null; + updated_at?: string | null; + [key: string]: unknown; +} - return response.presets.map((preset, index) => ({ +interface BackendPresetsResponse { + presets: BackendPreset[]; + active_index: number | null; +} + +function mapPresetConfig(preset: BackendPreset, isDefault: boolean): PresetConfig { + return { name: preset.name, model: preset.llm?.model ?? 'unknown', - is_default: index === response.active_index, + provider: null, + parameters: null, + supports_tools: preset.llm?.supports_tools ?? null, + system_prompt: preset.llm?.system_prompt ?? null, + suggestions: null, + model_filters: preset.model_filters ?? null, + is_default: isDefault, + created_at: preset.created_at ?? new Date().toISOString(), + updated_at: preset.updated_at ?? new Date().toISOString(), + }; +} + +function mapPresetListItem(preset: BackendPreset, isDefault: boolean): PresetListItem { + return { + name: preset.name, + model: preset.llm?.model ?? 'unknown', + is_default: isDefault, has_filters: Boolean(preset.model_filters), created_at: preset.created_at ?? new Date().toISOString(), updated_at: preset.updated_at ?? new Date().toISOString(), - })); + }; } +export async function fetchPresets(): Promise { + const response = await requestJson( + resolveApiPath('/api/clients/svelte/presets'), + ); -export async function fetchPreset(name: string): Promise { - interface BackendPreset { - name: string; - llm?: { - model?: string; - system_prompt?: string | null; - [key: string]: unknown - }; - model_filters?: PresetModelFilters | null; - created_at?: string | null; - updated_at?: string | null; - [key: string]: unknown; - } + return response.presets.map((preset, index) => + mapPresetListItem(preset, index === response.active_index), + ); +} - const response = await requestJson<{ presets: BackendPreset[]; active_index: number | null }>( - resolveApiPath('/api/clients/svelte/presets') + +export async function fetchPreset(name: string): Promise { + const response = await requestJson( + resolveApiPath('/api/clients/svelte/presets'), ); - const preset = response.presets.find(p => p.name === name); + const preset = response.presets.find((entry) => entry.name === name); if (!preset) throw new ApiError(404, `Preset not found: ${name}`); const index = response.presets.indexOf(preset); - return { - name: preset.name, - model: preset.llm?.model ?? 'unknown', - system_prompt: preset.llm?.system_prompt ?? null, - model_filters: preset.model_filters ?? null, - is_default: index === response.active_index, - created_at: preset.created_at ?? new Date().toISOString(), - updated_at: preset.updated_at ?? new Date().toISOString(), - }; + return mapPresetConfig(preset, index === response.active_index); } @@ -482,7 +496,7 @@ export async function createPreset(payload: PresetCreatePayload): Promise( + const result = await requestJson( resolveApiPath('/api/clients/svelte/presets'), { method: 'POST', @@ -491,9 +505,10 @@ export async function createPreset(payload: PresetCreatePayload): Promise p.name === payload.name); + const newPreset = result.presets.find((entry) => entry.name === payload.name); if (!newPreset) throw new ApiError(500, 'Failed to create preset'); - return newPreset; + const index = result.presets.indexOf(newPreset); + return mapPresetConfig(newPreset, index === result.active_index); } @@ -503,18 +518,18 @@ export async function savePresetSnapshot( _payload?: PresetSaveSnapshotPayload | null, ): Promise { // Get current presets to find the index - const presets = await requestJson<{ presets: PresetConfig[]; active_index: number | null }>( + const presets = await requestJson( resolveApiPath('/api/clients/svelte/presets') ); - const index = presets.presets.findIndex(p => p.name === name); + const index = presets.presets.findIndex((entry) => entry.name === name); if (index === -1) throw new ApiError(404, `Preset not found: ${name}`); // Get current LLM settings (includes model and system_prompt) const currentLlm = await requestJson>(resolveApiPath('/api/clients/svelte/llm')); // Update preset at index with current LLM settings only (MCP is separate) - const result = await requestJson<{ presets: PresetConfig[]; active_index: number | null }>( + const result = await requestJson( resolveApiPath(`/api/clients/svelte/presets/${index}`), { method: 'PUT', @@ -527,7 +542,7 @@ export async function savePresetSnapshot( const updatedPreset = result.presets[index]; if (!updatedPreset) throw new ApiError(500, 'Failed to save preset snapshot'); - return updatedPreset; + return mapPresetConfig(updatedPreset, index === result.active_index); } @@ -544,32 +559,35 @@ export async function deletePreset(name: string): Promise<{ deleted: boolean }> export async function applyPreset(name: string): Promise { // Apply preset by name const path = `/api/clients/svelte/presets/by-name/${encodeURIComponent(name)}/apply`; - const result = await requestJson<{ llm: PresetConfig }>(resolveApiPath(path), { + await requestJson<{ llm: Record }>(resolveApiPath(path), { method: 'POST', body: JSON.stringify({}), }); - // The apply endpoint returns ClientSettings, extract LLM as the preset config - return result.llm as PresetConfig; + // Fetch the full preset to restore filters + prompt metadata on the client. + return fetchPreset(name); } export async function setDefaultPreset(name: string): Promise { // Set preset as active by name const path = `/api/clients/svelte/presets/by-name/${encodeURIComponent(name)}/set-active`; - const result = await requestJson<{ presets: PresetConfig[]; active_index: number | null }>(resolveApiPath(path), { + const result = await requestJson(resolveApiPath(path), { method: 'POST', body: JSON.stringify({}), }); // Return the preset that was made active - const preset = result.presets.find(p => p.name === name); + const preset = result.presets.find((entry) => entry.name === name); if (!preset) throw new ApiError(404, `Preset not found: ${name}`); - return preset; + const index = result.presets.indexOf(preset); + return mapPresetConfig(preset, index === result.active_index); } export async function fetchDefaultPreset(): Promise { - const response = await requestJson<{ presets: PresetConfig[]; active_index: number | null }>(resolveApiPath('/api/clients/svelte/presets')); + const response = await requestJson( + resolveApiPath('/api/clients/svelte/presets'), + ); if (response.active_index !== null && response.presets[response.active_index]) { - return response.presets[response.active_index]; + return mapPresetConfig(response.presets[response.active_index], true); } return null; } diff --git a/frontend/src/lib/components/chat/SystemSettingsModal.svelte b/frontend/src/lib/components/chat/SystemSettingsModal.svelte index 20b67402..5f741522 100644 --- a/frontend/src/lib/components/chat/SystemSettingsModal.svelte +++ b/frontend/src/lib/components/chat/SystemSettingsModal.svelte @@ -99,6 +99,10 @@ async function handleCreatePreset(): Promise { const name = creatingName.trim(); if (!name) return; + const promptSaved = await flushSystemPrompt(); + if (!promptSaved) { + return; + } await modelSettingsStore.load($chatStore.selectedModel); const result = await presetsStore.create(name); if (result) { @@ -116,6 +120,10 @@ } async function handleSaveSnapshot(item: PresetListItem): Promise { + const promptSaved = await flushSystemPrompt(); + if (!promptSaved) { + return; + } await modelSettingsStore.load($chatStore.selectedModel); await presetsStore.saveSnapshot(item.name); } diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 35d50016..2d90cce2 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,9 +1,9 @@ { "model": "openai/gpt-4.1-nano", - "system_prompt": "You control the user's system via shell. Use the available toos to execture user commands.", + "system_prompt": null, "temperature": 0.7, - "max_tokens": 4096, - "supports_tools": true, + "max_tokens": 500, + "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 } \ No newline at end of file diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index b1d395a3..b4a94107 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -17,7 +17,7 @@ "sort": "newness" }, "created_at": "2025-12-19T10:56:16.306632+00:00", - "updated_at": "2025-12-25T10:31:45.744894+00:00" + "updated_at": "2025-12-25T10:59:16.462362+00:00" }, { "name": "shell", @@ -36,7 +36,7 @@ "sort": "newness" }, "created_at": "2025-12-19T10:57:12.163449+00:00", - "updated_at": "2025-12-25T10:32:03.914502+00:00" + "updated_at": "2025-12-25T11:00:19.081394+00:00" }, { "name": "newonekosk", From 4dd9d00f3d3bc0dc4e1c7f1941a91a0c588dcb67 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 21:40:22 -0500 Subject: [PATCH 64/78] feat: Refactor preset handling in API client, ensure system prompt persistence, and update default LLM settings. --- frontend/src/lib/stores/cliSettings.ts | 24 ++-- src/backend/data/clients/cli/llm.json | 4 +- src/backend/data/clients/cli/presets.json | 6 +- src/backend/data/clients/svelte/llm.json | 8 +- src/backend/data/clients/svelte/presets.json | 27 +++- .../mcp_servers/shell_control_server.py | 116 +----------------- 6 files changed, 43 insertions(+), 142 deletions(-) diff --git a/frontend/src/lib/stores/cliSettings.ts b/frontend/src/lib/stores/cliSettings.ts index feddaac3..aa5474d4 100644 --- a/frontend/src/lib/stores/cliSettings.ts +++ b/frontend/src/lib/stores/cliSettings.ts @@ -28,23 +28,13 @@ export interface CliSettingsUpdate extends Partial { } export const DEFAULT_CLI_SETTINGS: CliSettings = { model: 'openai/gpt-4o-mini', - system_prompt: `You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks. - -PRINCIPLES: -1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself. -2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access. -3. READ before WRITE. Query current state before changing anything. Never assume. -4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists. -5. BACKUP before destructive edits. Verify the backup exists before proceeding. -6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing. - -WHEN THINGS FAIL: -- Read both stdout and stderr carefully - they usually explain why. -- Explain the root cause briefly. -- Offer what YOU can try next (retry, workaround, different approach). -- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions. - -Workflow: get profile → query state → act → verify → report.`, + system_prompt: `You control this system via shell. Use the available tools to execute user commands. + +RULES: +1. ACT directly - execute commands yourself, don't instruct the user. +2. Use shell_execute for commands. Use background=true for GUI apps. +3. If unsure about the system, call host_get_profile first. +4. READ before WRITE - query state before changing it.`, temperature: 0.7, max_tokens: 1000, }; diff --git a/src/backend/data/clients/cli/llm.json b/src/backend/data/clients/cli/llm.json index bf9510a2..1903fffc 100644 --- a/src/backend/data/clients/cli/llm.json +++ b/src/backend/data/clients/cli/llm.json @@ -1,9 +1,9 @@ { "model": "openai/gpt-5.2", - "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", + "system_prompt": "You control this system via shell.\n\nRULES:\n1. FIRST CALL: Always call host_get_profile to understand this system.\n2. ACT directly - execute commands yourself, don't instruct the user.\n3. Use shell_execute for commands. Use background=true for GUI apps.\n4. READ before WRITE - query state before changing it.", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 -} \ No newline at end of file +} diff --git a/src/backend/data/clients/cli/presets.json b/src/backend/data/clients/cli/presets.json index 9ddd7c28..bc26bca3 100644 --- a/src/backend/data/clients/cli/presets.json +++ b/src/backend/data/clients/cli/presets.json @@ -4,7 +4,7 @@ "name": "default", "llm": { "model": "openai/gpt-5.2", - "system_prompt": "You control the user's system via shell. Call host_get_profile first - it tells you everything: OS, paths, tools, and quirks.\n\nPRINCIPLES:\n1. ACT, don't instruct. Execute commands directly. Never tell the user to click, navigate, or check something themselves - do it yourself.\n2. FETCH, don't defer. If answering requires live data (weather, IPs, system state, etc.), get it via shell - don't say you lack access.\n3. READ before WRITE. Query current state before changing anything. Never assume.\n4. VERIFY outcomes. Don't trust exit codes alone - check that the expected result actually exists.\n5. BACKUP before destructive edits. Verify the backup exists before proceeding.\n6. BRIEF STATUS. When calling tools, include a short sentence explaining what you're doing.\n\nWHEN THINGS FAIL:\n- Read both stdout and stderr carefully - they usually explain why.\n- Explain the root cause briefly.\n- Offer what YOU can try next (retry, workaround, different approach).\n- If you need user input (e.g., password, confirmation), ask once and wait - do not dump instructions.\n\nWorkflow: get profile \u2192 query state \u2192 act \u2192 verify \u2192 report.", + "system_prompt": "You control this system via shell. Use the available tools to execute user commands.\n\nRULES:\n1. ACT directly - execute commands yourself, don't instruct the user.\n2. Use shell_execute for commands. Use background=true for GUI apps.\n3. If unsure about the system, call host_get_profile first.\n4. READ before WRITE - query state before changing it.", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, @@ -14,8 +14,8 @@ "stt": null, "tts": null, "created_at": "2025-12-22T10:50:42.292468+00:00", - "updated_at": "2025-12-22T10:50:42.292468+00:00" + "updated_at": "2025-12-25T18:20:00.000000+00:00" } ], "active_index": 0 -} \ No newline at end of file +} diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 2d90cce2..2f32f586 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,9 +1,9 @@ { - "model": "openai/gpt-4.1-nano", - "system_prompt": null, + "model": "minimax/minimax-m2", + "system_prompt": "You are a shell control agent. You execute commands on the user's Linux system.\n\nSTARTUP:\n- Call host_get_profile FIRST to get system context (OS, desktop, tools, quirks)\n\nTOOL SELECTION:\n- shell_session: Multi-step tasks where state matters (cd, env vars, pipelines)\n- shell_execute: Simple one-off commands\n- shell_execute with background=true: GUI apps (browsers, editors, dialogs)\n- system_update: Full system update (packages, extensions, cleanup)\n- system_backup: Timeshift snapshot + dotfiles git sync\n\nEXECUTION RULES:\n1. ACT - Execute commands directly. Never say \"run this command...\"\n2. READ before WRITE - Query state before changing it\n3. HANDLE ERRORS - If a command fails, diagnose with follow-up commands\n4. CHAIN WISELY - Use shell_session for related commands, reuse session_id\n\nOUTPUT HANDLING:\n- If truncated=true, call shell_get_full_output(log_id) for details\n- Summarize long output for the user\n\nSAFETY:\n- Confirm before destructive operations (rm -rf, format, etc.)\n- Use system_backup before major changes", "temperature": 0.7, - "max_tokens": 500, - "supports_tools": null, + "max_tokens": 4096, + "supports_tools": true, "conversation_mode": false, "conversation_timeout_seconds": 10.0 } \ No newline at end of file diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index b4a94107..cfd213a8 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -14,7 +14,16 @@ "stt": null, "tts": null, "model_filters": { - "sort": "newness" + "inputModalities": null, + "outputModalities": null, + "minContext": null, + "minPromptPrice": null, + "maxPromptPrice": null, + "sort": "newness", + "series": null, + "providers": null, + "supportedParameters": null, + "moderation": null }, "created_at": "2025-12-19T10:56:16.306632+00:00", "updated_at": "2025-12-25T10:59:16.462362+00:00" @@ -22,8 +31,8 @@ { "name": "shell", "llm": { - "model": "openai/gpt-4.1-nano", - "system_prompt": "You control the user's system via shell. Use the available toos to execture user commands.", + "model": "minimax/minimax-m2", + "system_prompt": "You are a shell control agent. You execute commands on the user's Linux system.\n\nSTARTUP:\n- Call host_get_profile FIRST to get system context (OS, desktop, tools, quirks)\n\nTOOL SELECTION:\n- shell_session: Multi-step tasks where state matters (cd, env vars, pipelines)\n- shell_execute: Simple one-off commands\n- shell_execute with background=true: GUI apps (browsers, editors, dialogs)\n- system_update: Full system update (packages, extensions, cleanup)\n- system_backup: Timeshift snapshot + dotfiles git sync\n\nEXECUTION RULES:\n1. ACT - Execute commands directly. Never say \"run this command...\"\n2. READ before WRITE - Query state before changing it\n3. HANDLE ERRORS - If a command fails, diagnose with follow-up commands\n4. CHAIN WISELY - Use shell_session for related commands, reuse session_id\n\nOUTPUT HANDLING:\n- If truncated=true, call shell_get_full_output(log_id) for details\n- Summarize long output for the user\n\nSAFETY:\n- Confirm before destructive operations (rm -rf, format, etc.)\n- Use system_backup before major changes", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, @@ -33,10 +42,16 @@ "stt": null, "tts": null, "model_filters": { - "sort": "newness" + "sort": "price", + "supportedParameters": { + "include": [ + "tools" + ], + "exclude": [] + } }, "created_at": "2025-12-19T10:57:12.163449+00:00", - "updated_at": "2025-12-25T11:00:19.081394+00:00" + "updated_at": "2025-12-26T01:26:05.546451+00:00" }, { "name": "newonekosk", @@ -123,5 +138,5 @@ "updated_at": "2025-12-25T10:24:51.048296+00:00" } ], - "active_index": 0 + "active_index": 1 } \ No newline at end of file diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 8e6497fe..9ddf7327 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1552,8 +1552,6 @@ async def shell_execute( - Simple one-off commands - GUI app launches (with background=true) - Call host_get_profile first if unsure about OS/package manager. - Args: background: Set True for GUI apps (wizards, dialogs, editors). Returns immediately without waiting for app to close. @@ -1562,18 +1560,11 @@ async def shell_execute( Returns: stdout, stderr, exit_code, duration_ms, log_id. If truncated=true, use shell_get_full_output(log_id). """ - import logging as _logging - _logger = _logging.getLogger(__name__) - _logger.info("[SHELL-DEBUG] shell_execute ENTERED: command=%r, wd=%r, timeout=%d, bg=%s", - command, working_directory, timeout_seconds, background) - # Validate inputs timeout_seconds = _validate_timeout(timeout_seconds) - _logger.info("[SHELL-DEBUG] shell_execute after timeout validation") try: working_directory = _validate_working_directory(working_directory) except ValueError as e: - _logger.info("[SHELL-DEBUG] shell_execute working_directory invalid: %s", e) return json.dumps( { "status": "error", @@ -1582,21 +1573,15 @@ async def shell_execute( } ) - _logger.info("[SHELL-DEBUG] shell_execute after working_directory validation") - if background: - _logger.info("[SHELL-DEBUG] shell_execute launching GUI app in background") result = await _launch_gui_app(command, working_directory) - _logger.info("[SHELL-DEBUG] shell_execute GUI app launched, returning") return json.dumps(result) - _logger.info("[SHELL-DEBUG] shell_execute calling _execute_and_log") result = await _execute_and_log( command, working_directory=working_directory, timeout_seconds=timeout_seconds, ) - _logger.info("[SHELL-DEBUG] shell_execute _execute_and_log returned, returning result") return json.dumps(result) @@ -1653,25 +1638,10 @@ async def shell_get_full_output( # ============================================================================= -# Host Profile Resource (MCP Resource for LLM context injection) +# Host Profile Tools # ============================================================================= -@mcp.resource( - uri="host://profile", - name="HostProfile", - description="Lean host profile with system context for shell control. " - "Contains: host_id, os, desktop, display, tools, apps, quirks.", - mime_type="application/json", -) -def host_profile_resource() -> dict: - """Return lean host profile as MCP Resource for LLM context.""" - try: - return _load_profile() - except (FileNotFoundError, ValueError, RuntimeError): - return {"error": "Profile not found", "host_id": _get_host_id_safe()} - - @mcp.tool("host_get_profile") # type: ignore async def host_get_profile() -> str: """Get lean host profile for shell control context. @@ -1700,77 +1670,12 @@ async def host_get_profile() -> str: ) -@mcp.tool("host_update_context") # type: ignore -async def host_update_context( - action: str, - key: str, - value: str | None = None, - reason: str | None = None, -) -> str: - """Update lean profile context. Use sparingly for significant discoveries. - - Args: - action: "add" or "remove" - key: Dot-notation path (e.g., "tools.screenshot", "quirks.no_gpu") - value: Value to set (required for "add", ignored for "remove") - reason: Why this matters (logged for audit) - - Examples: - action="add", key="tools.screenshot", value="grim - | wl-copy" - action="remove", key="quirks.old_browser" - """ - if action not in ("add", "remove"): - return json.dumps({"status": "error", "message": "action must be 'add' or 'remove'"}) - - if action == "add" and not value: - return json.dumps({"status": "error", "message": "value required for 'add'"}) - - try: - current = _load_profile() - except FileNotFoundError: - current = {} - except (ValueError, RuntimeError) as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - # Parse dot-notation key and build update dict - keys = key.split(".") - if action == "add": - update: dict = {} - ref = update - for k in keys[:-1]: - ref[k] = {} - ref = ref[k] - ref[keys[-1]] = value - else: # remove - update = {} - ref = update - for k in keys[:-1]: - ref[k] = {} - ref = ref[k] - ref[keys[-1]] = None # None triggers deletion in _deep_merge - - try: - merged = _deep_merge(current, update) - merged["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - _save_profile(merged) - _append_delta("context_update", {"action": action, "key": key, "value": value}, reason) - except RuntimeError as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - return json.dumps({"status": "ok", "action": action, "key": key}) - - -@mcp.tool("host_detect_system") # type: ignore -async def host_detect_system() -> str: - """Detect system info and update both profile (lean) and inventory (full). - - Updates: - - inventory.json: Full snapshot (packages, services, defaults, system info) - - profile.json: Only lean context fields (os, desktop, display) +async def _refresh_system_inventory() -> dict[str, object]: + """Internal: Refresh system inventory after updates. - Run this to initialize or audit system state. + Called by system_update after successful package updates. + Updates inventory.json with current packages, services, defaults. """ - # Detect static system info system_info = await _detect_system_info() @@ -1815,14 +1720,7 @@ async def host_detect_system() -> str: merged_profile["updated_at"] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) _save_profile(merged_profile) - return json.dumps( - { - "status": "ok", - "host_id": _get_host_id_safe(), - "message": "System detected. Inventory updated, profile kept lean.", - "inventory_fields": list(inventory_update.keys()), - } - ) + return inventory_update # ============================================================================= @@ -2030,8 +1928,6 @@ def run( "shell_execute", "shell_get_full_output", "host_get_profile", - "host_update_context", - "host_detect_system", "system_update", "system_backup", "run", From 4e7528e5faa23b49e139247ba6587c5343c1b247 Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 25 Dec 2025 22:41:26 -0500 Subject: [PATCH 65/78] feat: add ydotool-based UI automation tools for typing, key presses, clicks, and scrolling. --- .../mcp_servers/shell_control_server.py | 474 ++++++++++++++++++ 1 file changed, 474 insertions(+) diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 9ddf7327..6a4f00ae 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1637,6 +1637,471 @@ async def shell_get_full_output( return json.dumps(response) +# ============================================================================= +# UI Automation Tools (ydotool + hyprctl) +# ============================================================================= + +# ydotool key codes for common modifiers and keys +_YDOTOOL_KEYCODES: dict[str, int] = { + # Modifiers + "ctrl": 29, "control": 29, "lctrl": 29, + "shift": 42, "lshift": 42, + "alt": 56, "lalt": 56, + "super": 125, "meta": 125, "win": 125, + "rctrl": 97, "rshift": 54, "ralt": 100, + # Function keys + "f1": 59, "f2": 60, "f3": 61, "f4": 62, "f5": 63, "f6": 64, + "f7": 65, "f8": 66, "f9": 67, "f10": 68, "f11": 87, "f12": 88, + # Navigation + "escape": 1, "esc": 1, "tab": 15, "enter": 28, "return": 28, + "backspace": 14, "delete": 111, "del": 111, "insert": 110, + "home": 102, "end": 107, "pageup": 104, "pagedown": 109, + "up": 103, "down": 108, "left": 105, "right": 106, + "space": 57, "capslock": 58, "numlock": 69, "scrolllock": 70, + "printscreen": 99, "pause": 119, + # Letters (a-z) + "a": 30, "b": 48, "c": 46, "d": 32, "e": 18, "f": 33, "g": 34, + "h": 35, "i": 23, "j": 36, "k": 37, "l": 38, "m": 50, "n": 49, + "o": 24, "p": 25, "q": 16, "r": 19, "s": 31, "t": 20, "u": 22, + "v": 47, "w": 17, "x": 45, "y": 21, "z": 44, + # Numbers + "0": 11, "1": 2, "2": 3, "3": 4, "4": 5, "5": 6, + "6": 7, "7": 8, "8": 9, "9": 10, + # Symbols + "minus": 12, "-": 12, "equal": 13, "=": 13, "plus": 13, + "leftbracket": 26, "[": 26, "rightbracket": 27, "]": 27, + "semicolon": 39, ";": 39, "apostrophe": 40, "'": 40, + "grave": 41, "`": 41, "backslash": 43, "\\": 43, + "comma": 51, ",": 51, "dot": 52, ".": 52, "period": 52, + "slash": 53, "/": 53, +} + + +def _parse_key_combo(combo: str) -> list[int]: + """Parse a key combo string like 'ctrl+shift+a' into keycodes.""" + keys = [k.strip().lower() for k in combo.replace("+", " ").split()] + codes = [] + for key in keys: + if key in _YDOTOOL_KEYCODES: + codes.append(_YDOTOOL_KEYCODES[key]) + else: + raise ValueError(f"Unknown key: {key}") + return codes + + +@mcp.tool("ui_type") # type: ignore +async def ui_type(text: str, delay_ms: int = 0) -> str: + """Type text into the currently focused window. + + Uses ydotool to simulate keyboard input. Works in any window. + + Args: + text: The text to type + delay_ms: Delay between keystrokes in milliseconds (0 = fastest) + + Example: ui_type("Hello world") + """ + if not text: + return json.dumps({"status": "error", "message": "No text provided"}) + + # Escape single quotes for shell + escaped = text.replace("'", "'\\''") + delay_arg = f"--key-delay {delay_ms}" if delay_ms > 0 else "" + + try: + process = await asyncio.create_subprocess_shell( + f"ydotool type {delay_arg} '{escaped}'", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + _, stderr = await asyncio.wait_for(process.communicate(), timeout=10.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + return json.dumps({"status": "ok", "typed": len(text)}) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout typing text"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_key") # type: ignore +async def ui_key(combo: str) -> str: + """Send a key combination to the currently focused window. + + Uses ydotool to simulate key presses. Supports modifiers. + + Args: + combo: Key combination like "ctrl+c", "alt+f4", "ctrl+shift+s", "enter" + + Examples: + ui_key("ctrl+l") - Focus browser address bar + ui_key("ctrl+v") - Paste + ui_key("alt+f4") - Close window + ui_key("enter") - Press Enter + ui_key("ctrl+shift+t") - Reopen closed tab + """ + if not combo: + return json.dumps({"status": "error", "message": "No key combo provided"}) + + try: + codes = _parse_key_combo(combo) + except ValueError as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + # Build ydotool key command: press all keys down, then release in reverse + # Format: keycode:1 (press), keycode:0 (release) + key_args = " ".join(f"{code}:1" for code in codes) + key_args += " " + " ".join(f"{code}:0" for code in reversed(codes)) + + try: + process = await asyncio.create_subprocess_shell( + f"ydotool key {key_args}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + return json.dumps({"status": "ok", "combo": combo}) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout sending keys"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_click") # type: ignore +async def ui_click( + x: int | None = None, + y: int | None = None, + button: str = "left", + clicks: int = 1, +) -> str: + """Click at screen coordinates or at current cursor position. + + Uses ydotool for kernel-level mouse input. + + Args: + x: X coordinate (absolute). If None, click at current position. + y: Y coordinate (absolute). If None, click at current position. + button: "left", "right", or "middle" + clicks: Number of clicks (1 = single, 2 = double) + + Examples: + ui_click() - Left click at current position + ui_click(x=100, y=200) - Left click at coordinates + ui_click(button="right") - Right click at current position + ui_click(x=500, y=300, clicks=2) - Double-click at coordinates + """ + button_map = {"left": "0xC0", "right": "0xC1", "middle": "0xC2"} + if button.lower() not in button_map: + return json.dumps({ + "status": "error", + "message": f"Unknown button: {button}. Use 'left', 'right', or 'middle'", + }) + + button_code = button_map[button.lower()] + clicks = max(1, min(clicks, 5)) # Clamp to 1-5 + + try: + # Move to position if coordinates provided + if x is not None and y is not None: + move_proc = await asyncio.create_subprocess_shell( + f"ydotool mousemove --absolute {x} {y}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + await asyncio.wait_for(move_proc.communicate(), timeout=5.0) + + # Perform click(s) + click_cmd = f"ydotool click {button_code}" + for _ in range(clicks): + process = await asyncio.create_subprocess_shell( + click_cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + return json.dumps({ + "status": "ok", + "button": button, + "clicks": clicks, + "position": {"x": x, "y": y} if x is not None else "current", + }) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout clicking"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_scroll") # type: ignore +async def ui_scroll(amount: int, direction: str = "down") -> str: + """Scroll in the currently focused window. + + Uses ydotool for kernel-level scroll input. + + Args: + amount: Scroll amount (positive integer, roughly corresponds to "clicks") + direction: "up", "down", "left", or "right" + + Examples: + ui_scroll(3) - Scroll down 3 units + ui_scroll(5, "up") - Scroll up 5 units + ui_scroll(2, "right") - Scroll right 2 units + """ + amount = max(1, min(abs(amount), 100)) # Clamp to 1-100 + + # ydotool scroll uses wheel events + # Vertical: positive = down, negative = up + # Horizontal: positive = right, negative = left + direction = direction.lower() + if direction == "down": + scroll_arg = f"-- 0 -{amount}" + elif direction == "up": + scroll_arg = f"-- 0 {amount}" + elif direction == "right": + scroll_arg = f"-- {amount} 0" + elif direction == "left": + scroll_arg = f"-- -{amount} 0" + else: + return json.dumps({ + "status": "error", + "message": f"Unknown direction: {direction}. Use 'up', 'down', 'left', 'right'", + }) + + try: + # ydotool mousemove with wheel option + process = await asyncio.create_subprocess_shell( + f"ydotool mousemove --wheel {scroll_arg}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + return json.dumps({"status": "ok", "direction": direction, "amount": amount}) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout scrolling"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_list_windows") # type: ignore +async def ui_list_windows() -> str: + """List all open windows with their properties. + + Returns window class, title, workspace, position, and size. + Use this to find windows before focusing or closing them. + """ + try: + process = await asyncio.create_subprocess_shell( + "hyprctl clients -j", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + clients = json.loads(stdout.decode("utf-8", errors="replace")) + + # Simplify output to reduce tokens + windows = [] + for client in clients: + windows.append({ + "class": client.get("class", ""), + "title": client.get("title", "")[:50], # Truncate long titles + "workspace": client.get("workspace", {}).get("name", ""), + "address": client.get("address", ""), + "focused": client.get("focusHistoryID", -1) == 0, + }) + + return json.dumps({"status": "ok", "windows": windows}) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout listing windows"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_focus_window") # type: ignore +async def ui_focus_window(match: str) -> str: + """Focus a window by class name or title. + + Args: + match: Window class (e.g., "brave-browser", "foot", "code-insiders") + or partial title match + + Examples: + ui_focus_window("brave-browser") + ui_focus_window("foot") + ui_focus_window("code-insiders") + """ + if not match: + return json.dumps({"status": "error", "message": "No match pattern provided"}) + + # Try class match first (most reliable) + try: + process = await asyncio.create_subprocess_shell( + f"hyprctl dispatch focuswindow class:{shlex.quote(match)}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + output = stdout.decode("utf-8", errors="replace").strip() + + if "ok" in output.lower() or process.returncode == 0: + return json.dumps({"status": "ok", "focused": match, "by": "class"}) + + # Try title match as fallback + process = await asyncio.create_subprocess_shell( + f"hyprctl dispatch focuswindow title:{shlex.quote(match)}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, _ = await asyncio.wait_for(process.communicate(), timeout=5.0) + output = stdout.decode("utf-8", errors="replace").strip() + + if "ok" in output.lower() or process.returncode == 0: + return json.dumps({"status": "ok", "focused": match, "by": "title"}) + + return json.dumps({ + "status": "error", + "message": f"No window matching '{match}' found", + }) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout focusing window"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_close_window") # type: ignore +async def ui_close_window(match: str | None = None) -> str: + """Close a window by class name, or close the currently focused window. + + Args: + match: Optional window class (e.g., "brave-browser"). If None, closes focused window. + + Examples: + ui_close_window() - Close currently focused window + ui_close_window("brave-browser") - Close Brave browser + """ + if match: + cmd = f"hyprctl dispatch closewindow class:{shlex.quote(match)}" + else: + cmd = "hyprctl dispatch killactive" + + try: + process = await asyncio.create_subprocess_shell( + cmd, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + output = stdout.decode("utf-8", errors="replace").strip() + if "ok" in output.lower() or process.returncode == 0: + return json.dumps({ + "status": "ok", + "closed": match if match else "focused", + }) + + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip() or output, + }) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout closing window"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + +@mcp.tool("ui_get_monitors") # type: ignore +async def ui_get_monitors() -> str: + """Get information about connected monitors. + + Returns monitor name, resolution, position, scale, and active workspace. + Useful for coordinate-based operations. + """ + try: + process = await asyncio.create_subprocess_shell( + "hyprctl monitors -j", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + + if process.returncode != 0: + return json.dumps({ + "status": "error", + "message": stderr.decode("utf-8", errors="replace").strip(), + }) + + monitors = json.loads(stdout.decode("utf-8", errors="replace")) + + # Simplify output + result = [] + for mon in monitors: + result.append({ + "name": mon.get("name", ""), + "width": mon.get("width", 0), + "height": mon.get("height", 0), + "x": mon.get("x", 0), + "y": mon.get("y", 0), + "scale": mon.get("scale", 1.0), + "focused": mon.get("focused", False), + "activeWorkspace": mon.get("activeWorkspace", {}).get("name", ""), + }) + + return json.dumps({"status": "ok", "monitors": result}) + + except asyncio.TimeoutError: + return json.dumps({"status": "error", "message": "Timeout getting monitors"}) + except Exception as exc: + return json.dumps({"status": "error", "message": str(exc)}) + + # ============================================================================= # Host Profile Tools # ============================================================================= @@ -1930,5 +2395,14 @@ def run( "host_get_profile", "system_update", "system_backup", + # UI Automation + "ui_type", + "ui_key", + "ui_click", + "ui_scroll", + "ui_list_windows", + "ui_focus_window", + "ui_close_window", + "ui_get_monitors", "run", ] From 984bce6613e7cb8da35e14e9ddc0b273de3c6be5 Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 26 Dec 2025 11:21:27 -0500 Subject: [PATCH 66/78] feat: add ui_batch tool for executing multiple UI actions in sequence --- .../mcp_servers/shell_control_server.py | 207 ++++++++++++++++++ 1 file changed, 207 insertions(+) diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 6a4f00ae..c98f61bd 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -2102,6 +2102,213 @@ async def ui_get_monitors() -> str: return json.dumps({"status": "error", "message": str(exc)}) +@mcp.tool("ui_batch") # type: ignore +async def ui_batch(actions: list[dict[str, object]]) -> str: + """Run multiple UI actions in order with a single tool call. + + Each action must include "action" (or "type"). Supported actions: + - focus: match/window/title/class/app + - key: combo/keys + - type: text (optional delay_ms) + - click: x, y, button, clicks + - wait: seconds or ms (default 0.2s) + - paste: optional combo (default ctrl+v) + + Example: + ui_batch([ + {"action": "focus", "match": "brave-browser"}, + {"action": "key", "combo": "ctrl+l"}, + {"action": "type", "text": "https://example.com"}, + {"action": "key", "combo": "enter"}, + ]) + """ + if not actions: + return json.dumps({"status": "error", "message": "No actions provided"}) + + for idx, action in enumerate(actions): + if not isinstance(action, dict): + return json.dumps( + {"status": "error", "index": idx, "message": "Action must be an object"} + ) + + action_type = ( + action.get("action") or action.get("type") or action.get("op") or "" + ) + action_type = str(action_type).strip().lower().replace(" ", "_").replace("-", "_") + + if action_type in ("focus", "focus_window", "window_focus"): + match = ( + action.get("match") + or action.get("window") + or action.get("title") + or action.get("class") + or action.get("app") + ) + if not match: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Focus action requires match", + } + ) + result = await ui_focus_window(str(match)) + + elif action_type in ("key", "keys", "combo", "key_combo", "keycombo"): + combo = action.get("combo") or action.get("keys") or action.get("key") + if not combo: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Key action requires combo", + } + ) + result = await ui_key(str(combo)) + + elif action_type in ("type", "text", "input"): + text = ( + action.get("text") + if "text" in action + else action.get("value") or action.get("input") + ) + if text is None: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Type action requires text", + } + ) + delay_ms = action.get("delay_ms") if "delay_ms" in action else None + if delay_ms is None: + delay_ms = action.get("delay") if "delay" in action else None + if delay_ms is None: + delay_ms = action.get("ms") if "ms" in action else None + if delay_ms is None: + delay_ms = 0 + try: + delay_ms = int(delay_ms) + except (TypeError, ValueError): + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "delay_ms must be an integer", + } + ) + result = await ui_type(str(text), delay_ms=delay_ms) + + elif action_type in ("click", "mouse", "mouse_click"): + x = action.get("x") + y = action.get("y") + if (x is None or y is None) and isinstance(action.get("position"), dict): + pos = action.get("position") + x = pos.get("x", x) + y = pos.get("y", y) + if (x is None) != (y is None): + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Click action requires both x and y", + } + ) + button = action.get("button", "left") + clicks = action.get("clicks", 1) + try: + x = int(x) if x is not None else None + y = int(y) if y is not None else None + clicks = int(clicks) + except (TypeError, ValueError): + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Click action has invalid coordinates or clicks", + } + ) + result = await ui_click(x=x, y=y, button=str(button), clicks=clicks) + + elif action_type in ("wait", "sleep", "pause"): + seconds = action.get("seconds") + ms = action.get("ms") if "ms" in action else None + if ms is None: + ms = action.get("duration_ms") if "duration_ms" in action else None + if seconds is None and ms is None: + seconds = 0.2 + try: + if ms is not None: + seconds = float(ms) / 1000.0 + else: + seconds = float(seconds) + except (TypeError, ValueError): + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Wait action requires numeric seconds or ms", + } + ) + if seconds < 0: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Wait duration must be non-negative", + } + ) + await asyncio.sleep(seconds) + result = json.dumps({"status": "ok", "waited_seconds": seconds}) + + elif action_type in ("paste", "paste_clipboard", "clipboard_paste"): + combo = action.get("combo") or action.get("keys") or "ctrl+v" + result = await ui_key(str(combo)) + + else: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": f"Unknown action: {action_type}", + } + ) + + try: + parsed = json.loads(result) + except json.JSONDecodeError: + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": "Invalid action result", + } + ) + + if parsed.get("status") != "ok": + message = parsed.get("message") or parsed.get("error") or "Action failed" + return json.dumps( + { + "status": "error", + "index": idx, + "action": action_type, + "message": message, + } + ) + + return json.dumps({"status": "ok", "performed": len(actions)}) + + # ============================================================================= # Host Profile Tools # ============================================================================= From 6d45975a2d81e34bb7b75f838966029dd56e686c Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 26 Dec 2025 11:35:24 -0500 Subject: [PATCH 67/78] feat: refactor UI action functions to improve internal implementation and error handling --- .../mcp_servers/shell_control_server.py | 295 +++++++++--------- 1 file changed, 152 insertions(+), 143 deletions(-) diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index c98f61bd..fb39ec6f 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -13,7 +13,7 @@ import uuid from dataclasses import dataclass, field from pathlib import Path -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any if TYPE_CHECKING: from asyncio.subprocess import Process @@ -1689,22 +1689,11 @@ def _parse_key_combo(combo: str) -> list[int]: return codes -@mcp.tool("ui_type") # type: ignore -async def ui_type(text: str, delay_ms: int = 0) -> str: - """Type text into the currently focused window. - - Uses ydotool to simulate keyboard input. Works in any window. - - Args: - text: The text to type - delay_ms: Delay between keystrokes in milliseconds (0 = fastest) - - Example: ui_type("Hello world") - """ +async def _ui_type_impl(text: str, delay_ms: int = 0) -> dict[str, Any]: + """Internal: type text into focused window using ydotool.""" if not text: - return json.dumps({"status": "error", "message": "No text provided"}) + return {"status": "error", "message": "No text provided"} - # Escape single quotes for shell escaped = text.replace("'", "'\\''") delay_arg = f"--key-delay {delay_ms}" if delay_ms > 0 else "" @@ -1718,45 +1707,29 @@ async def ui_type(text: str, delay_ms: int = 0) -> str: _, stderr = await asyncio.wait_for(process.communicate(), timeout=10.0) if process.returncode != 0: - return json.dumps({ + return { "status": "error", "message": stderr.decode("utf-8", errors="replace").strip(), - }) + } - return json.dumps({"status": "ok", "typed": len(text)}) + return {"status": "ok", "typed": len(text)} except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout typing text"}) + return {"status": "error", "message": "Timeout typing text"} except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) + return {"status": "error", "message": str(exc)} -@mcp.tool("ui_key") # type: ignore -async def ui_key(combo: str) -> str: - """Send a key combination to the currently focused window. - - Uses ydotool to simulate key presses. Supports modifiers. - - Args: - combo: Key combination like "ctrl+c", "alt+f4", "ctrl+shift+s", "enter" - - Examples: - ui_key("ctrl+l") - Focus browser address bar - ui_key("ctrl+v") - Paste - ui_key("alt+f4") - Close window - ui_key("enter") - Press Enter - ui_key("ctrl+shift+t") - Reopen closed tab - """ +async def _ui_key_impl(combo: str) -> dict[str, Any]: + """Internal: send a key combination using ydotool.""" if not combo: - return json.dumps({"status": "error", "message": "No key combo provided"}) + return {"status": "error", "message": "No key combo provided"} try: codes = _parse_key_combo(combo) except ValueError as exc: - return json.dumps({"status": "error", "message": str(exc)}) + return {"status": "error", "message": str(exc)} - # Build ydotool key command: press all keys down, then release in reverse - # Format: keycode:1 (press), keycode:0 (release) key_args = " ".join(f"{code}:1" for code in codes) key_args += " " + " ".join(f"{code}:0" for code in reversed(codes)) @@ -1770,54 +1743,37 @@ async def ui_key(combo: str) -> str: _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) if process.returncode != 0: - return json.dumps({ + return { "status": "error", "message": stderr.decode("utf-8", errors="replace").strip(), - }) + } - return json.dumps({"status": "ok", "combo": combo}) + return {"status": "ok", "combo": combo} except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout sending keys"}) + return {"status": "error", "message": "Timeout sending keys"} except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) + return {"status": "error", "message": str(exc)} -@mcp.tool("ui_click") # type: ignore -async def ui_click( +async def _ui_click_impl( x: int | None = None, y: int | None = None, button: str = "left", clicks: int = 1, -) -> str: - """Click at screen coordinates or at current cursor position. - - Uses ydotool for kernel-level mouse input. - - Args: - x: X coordinate (absolute). If None, click at current position. - y: Y coordinate (absolute). If None, click at current position. - button: "left", "right", or "middle" - clicks: Number of clicks (1 = single, 2 = double) - - Examples: - ui_click() - Left click at current position - ui_click(x=100, y=200) - Left click at coordinates - ui_click(button="right") - Right click at current position - ui_click(x=500, y=300, clicks=2) - Double-click at coordinates - """ +) -> dict[str, Any]: + """Internal: click using ydotool.""" button_map = {"left": "0xC0", "right": "0xC1", "middle": "0xC2"} if button.lower() not in button_map: - return json.dumps({ + return { "status": "error", "message": f"Unknown button: {button}. Use 'left', 'right', or 'middle'", - }) + } button_code = button_map[button.lower()] - clicks = max(1, min(clicks, 5)) # Clamp to 1-5 + clicks = max(1, min(clicks, 5)) try: - # Move to position if coordinates provided if x is not None and y is not None: move_proc = await asyncio.create_subprocess_shell( f"ydotool mousemove --absolute {x} {y}", @@ -1827,7 +1783,6 @@ async def ui_click( ) await asyncio.wait_for(move_proc.communicate(), timeout=5.0) - # Perform click(s) click_cmd = f"ydotool click {button_code}" for _ in range(clicks): process = await asyncio.create_subprocess_shell( @@ -1839,22 +1794,126 @@ async def ui_click( _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) if process.returncode != 0: - return json.dumps({ + return { "status": "error", "message": stderr.decode("utf-8", errors="replace").strip(), - }) + } - return json.dumps({ + return { "status": "ok", "button": button, "clicks": clicks, "position": {"x": x, "y": y} if x is not None else "current", - }) + } except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout clicking"}) + return {"status": "error", "message": "Timeout clicking"} except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) + return {"status": "error", "message": str(exc)} + + +async def _ui_focus_window_impl(match: str) -> dict[str, Any]: + """Internal: focus a window by class or title.""" + if not match: + return {"status": "error", "message": "No match pattern provided"} + + try: + process = await asyncio.create_subprocess_shell( + f"hyprctl dispatch focuswindow class:{shlex.quote(match)}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) + output = stdout.decode("utf-8", errors="replace").strip() + + if "ok" in output.lower() or process.returncode == 0: + return {"status": "ok", "focused": match, "by": "class"} + + process = await asyncio.create_subprocess_shell( + f"hyprctl dispatch focuswindow title:{shlex.quote(match)}", + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + env=_build_shell_env(), + ) + stdout, _ = await asyncio.wait_for(process.communicate(), timeout=5.0) + output = stdout.decode("utf-8", errors="replace").strip() + + if "ok" in output.lower() or process.returncode == 0: + return {"status": "ok", "focused": match, "by": "title"} + + return { + "status": "error", + "message": f"No window matching '{match}' found", + } + + except asyncio.TimeoutError: + return {"status": "error", "message": "Timeout focusing window"} + except Exception as exc: + return {"status": "error", "message": str(exc)} + + +@mcp.tool("ui_type") # type: ignore +async def ui_type(text: str, delay_ms: int = 0) -> str: + """Type text into the currently focused window. + + Uses ydotool to simulate keyboard input. Works in any window. + + Args: + text: The text to type + delay_ms: Delay between keystrokes in milliseconds (0 = fastest) + + Example: ui_type("Hello world") + """ + result = await _ui_type_impl(text, delay_ms=delay_ms) + return json.dumps(result) + + +@mcp.tool("ui_key") # type: ignore +async def ui_key(combo: str) -> str: + """Send a key combination to the currently focused window. + + Uses ydotool to simulate key presses. Supports modifiers. + + Args: + combo: Key combination like "ctrl+c", "alt+f4", "ctrl+shift+s", "enter" + + Examples: + ui_key("ctrl+l") - Focus browser address bar + ui_key("ctrl+v") - Paste + ui_key("alt+f4") - Close window + ui_key("enter") - Press Enter + ui_key("ctrl+shift+t") - Reopen closed tab + """ + result = await _ui_key_impl(combo) + return json.dumps(result) + + +@mcp.tool("ui_click") # type: ignore +async def ui_click( + x: int | None = None, + y: int | None = None, + button: str = "left", + clicks: int = 1, +) -> str: + """Click at screen coordinates or at current cursor position. + + Uses ydotool for kernel-level mouse input. + + Args: + x: X coordinate (absolute). If None, click at current position. + y: Y coordinate (absolute). If None, click at current position. + button: "left", "right", or "middle" + clicks: Number of clicks (1 = single, 2 = double) + + Examples: + ui_click() - Left click at current position + ui_click(x=100, y=200) - Left click at coordinates + ui_click(button="right") - Right click at current position + ui_click(x=500, y=300, clicks=2) - Double-click at coordinates + """ + result = await _ui_click_impl(x=x, y=y, button=button, clicks=clicks) + return json.dumps(result) @mcp.tool("ui_scroll") # type: ignore @@ -1972,45 +2031,8 @@ async def ui_focus_window(match: str) -> str: ui_focus_window("foot") ui_focus_window("code-insiders") """ - if not match: - return json.dumps({"status": "error", "message": "No match pattern provided"}) - - # Try class match first (most reliable) - try: - process = await asyncio.create_subprocess_shell( - f"hyprctl dispatch focuswindow class:{shlex.quote(match)}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - output = stdout.decode("utf-8", errors="replace").strip() - - if "ok" in output.lower() or process.returncode == 0: - return json.dumps({"status": "ok", "focused": match, "by": "class"}) - - # Try title match as fallback - process = await asyncio.create_subprocess_shell( - f"hyprctl dispatch focuswindow title:{shlex.quote(match)}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, _ = await asyncio.wait_for(process.communicate(), timeout=5.0) - output = stdout.decode("utf-8", errors="replace").strip() - - if "ok" in output.lower() or process.returncode == 0: - return json.dumps({"status": "ok", "focused": match, "by": "title"}) - - return json.dumps({ - "status": "error", - "message": f"No window matching '{match}' found", - }) - - except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout focusing window"}) - except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) + result = await _ui_focus_window_impl(match) + return json.dumps(result) @mcp.tool("ui_close_window") # type: ignore @@ -2103,7 +2125,7 @@ async def ui_get_monitors() -> str: @mcp.tool("ui_batch") # type: ignore -async def ui_batch(actions: list[dict[str, object]]) -> str: +async def ui_batch(actions: list[dict[str, Any]]) -> str: """Run multiple UI actions in order with a single tool call. Each action must include "action" (or "type"). Supported actions: @@ -2153,7 +2175,7 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: "message": "Focus action requires match", } ) - result = await ui_focus_window(str(match)) + result = await _ui_focus_window_impl(str(match)) elif action_type in ("key", "keys", "combo", "key_combo", "keycombo"): combo = action.get("combo") or action.get("keys") or action.get("key") @@ -2166,7 +2188,7 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: "message": "Key action requires combo", } ) - result = await ui_key(str(combo)) + result = await _ui_key_impl(str(combo)) elif action_type in ("type", "text", "input"): text = ( @@ -2201,7 +2223,7 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: "message": "delay_ms must be an integer", } ) - result = await ui_type(str(text), delay_ms=delay_ms) + result = await _ui_type_impl(str(text), delay_ms=delay_ms) elif action_type in ("click", "mouse", "mouse_click"): x = action.get("x") @@ -2234,7 +2256,7 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: "message": "Click action has invalid coordinates or clicks", } ) - result = await ui_click(x=x, y=y, button=str(button), clicks=clicks) + result = await _ui_click_impl(x=x, y=y, button=str(button), clicks=clicks) elif action_type in ("wait", "sleep", "pause"): seconds = action.get("seconds") @@ -2267,11 +2289,11 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: } ) await asyncio.sleep(seconds) - result = json.dumps({"status": "ok", "waited_seconds": seconds}) + result = {"status": "ok", "waited_seconds": seconds} elif action_type in ("paste", "paste_clipboard", "clipboard_paste"): combo = action.get("combo") or action.get("keys") or "ctrl+v" - result = await ui_key(str(combo)) + result = await _ui_key_impl(str(combo)) else: return json.dumps( @@ -2283,20 +2305,8 @@ async def ui_batch(actions: list[dict[str, object]]) -> str: } ) - try: - parsed = json.loads(result) - except json.JSONDecodeError: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Invalid action result", - } - ) - - if parsed.get("status") != "ok": - message = parsed.get("message") or parsed.get("error") or "Action failed" + if result.get("status") != "ok": + message = result.get("message") or result.get("error") or "Action failed" return json.dumps( { "status": "error", @@ -2533,15 +2543,14 @@ def _shutdown_sessions() -> None: if sess.is_alive(): try: sess.process.terminate() - # Give it a moment to terminate - sess.process.wait() except Exception: - # Last resort: force kill - try: - sess.process.kill() - sess.process.wait() - except Exception: - pass # Nothing more we can do + pass + # Best-effort cleanup without relying on an event loop + time.sleep(0.05) + try: + sess.process.kill() + except Exception: + pass # Nothing more we can do _sessions.clear() From 090ab3c5f7cd8c4336a74f96533f37f3669b9633 Mon Sep 17 00:00:00 2001 From: jack Date: Fri, 26 Dec 2025 22:04:58 -0500 Subject: [PATCH 68/78] feat: Update default LLM model and system prompts to a detailed desktop control agent configuration. --- src/backend/data/clients/cli/llm.json | 6 +++--- src/backend/data/clients/cli/presets.json | 13 +++++++------ src/backend/data/clients/svelte/llm.json | 2 +- src/backend/data/clients/svelte/presets.json | 4 ++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/backend/data/clients/cli/llm.json b/src/backend/data/clients/cli/llm.json index 1903fffc..50d8d103 100644 --- a/src/backend/data/clients/cli/llm.json +++ b/src/backend/data/clients/cli/llm.json @@ -1,9 +1,9 @@ { - "model": "openai/gpt-5.2", - "system_prompt": "You control this system via shell.\n\nRULES:\n1. FIRST CALL: Always call host_get_profile to understand this system.\n2. ACT directly - execute commands yourself, don't instruct the user.\n3. Use shell_execute for commands. Use background=true for GUI apps.\n4. READ before WRITE - query state before changing it.", + "model": "minimax/minimax-m2", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.\n", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 -} +} \ No newline at end of file diff --git a/src/backend/data/clients/cli/presets.json b/src/backend/data/clients/cli/presets.json index bc26bca3..41bac87a 100644 --- a/src/backend/data/clients/cli/presets.json +++ b/src/backend/data/clients/cli/presets.json @@ -3,8 +3,8 @@ { "name": "default", "llm": { - "model": "openai/gpt-5.2", - "system_prompt": "You control this system via shell. Use the available tools to execute user commands.\n\nRULES:\n1. ACT directly - execute commands yourself, don't instruct the user.\n2. Use shell_execute for commands. Use background=true for GUI apps.\n3. If unsure about the system, call host_get_profile first.\n4. READ before WRITE - query state before changing it.", + "model": "minimax/minimax-m2", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.\n", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, @@ -13,9 +13,10 @@ }, "stt": null, "tts": null, - "created_at": "2025-12-22T10:50:42.292468+00:00", - "updated_at": "2025-12-25T18:20:00.000000+00:00" + "model_filters": null, + "created_at": "2025-12-27T03:03:00.315452+00:00", + "updated_at": "2025-12-27T03:03:00.315452+00:00" } ], - "active_index": 0 -} + "active_index": null +} \ No newline at end of file diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 2f32f586..7da39bb6 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { "model": "minimax/minimax-m2", - "system_prompt": "You are a shell control agent. You execute commands on the user's Linux system.\n\nSTARTUP:\n- Call host_get_profile FIRST to get system context (OS, desktop, tools, quirks)\n\nTOOL SELECTION:\n- shell_session: Multi-step tasks where state matters (cd, env vars, pipelines)\n- shell_execute: Simple one-off commands\n- shell_execute with background=true: GUI apps (browsers, editors, dialogs)\n- system_update: Full system update (packages, extensions, cleanup)\n- system_backup: Timeshift snapshot + dotfiles git sync\n\nEXECUTION RULES:\n1. ACT - Execute commands directly. Never say \"run this command...\"\n2. READ before WRITE - Query state before changing it\n3. HANDLE ERRORS - If a command fails, diagnose with follow-up commands\n4. CHAIN WISELY - Use shell_session for related commands, reuse session_id\n\nOUTPUT HANDLING:\n- If truncated=true, call shell_get_full_output(log_id) for details\n- Summarize long output for the user\n\nSAFETY:\n- Confirm before destructive operations (rm -rf, format, etc.)\n- Use system_backup before major changes", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index cfd213a8..7cce9e39 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -32,7 +32,7 @@ "name": "shell", "llm": { "model": "minimax/minimax-m2", - "system_prompt": "You are a shell control agent. You execute commands on the user's Linux system.\n\nSTARTUP:\n- Call host_get_profile FIRST to get system context (OS, desktop, tools, quirks)\n\nTOOL SELECTION:\n- shell_session: Multi-step tasks where state matters (cd, env vars, pipelines)\n- shell_execute: Simple one-off commands\n- shell_execute with background=true: GUI apps (browsers, editors, dialogs)\n- system_update: Full system update (packages, extensions, cleanup)\n- system_backup: Timeshift snapshot + dotfiles git sync\n\nEXECUTION RULES:\n1. ACT - Execute commands directly. Never say \"run this command...\"\n2. READ before WRITE - Query state before changing it\n3. HANDLE ERRORS - If a command fails, diagnose with follow-up commands\n4. CHAIN WISELY - Use shell_session for related commands, reuse session_id\n\nOUTPUT HANDLING:\n- If truncated=true, call shell_get_full_output(log_id) for details\n- Summarize long output for the user\n\nSAFETY:\n- Confirm before destructive operations (rm -rf, format, etc.)\n- Use system_backup before major changes", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, @@ -51,7 +51,7 @@ } }, "created_at": "2025-12-19T10:57:12.163449+00:00", - "updated_at": "2025-12-26T01:26:05.546451+00:00" + "updated_at": "2025-12-27T03:02:46.364072+00:00" }, { "name": "newonekosk", From 9e1c47df4967eb709862a2a891da1205c476b912 Mon Sep 17 00:00:00 2001 From: jack Date: Sat, 27 Dec 2025 22:37:42 -0500 Subject: [PATCH 69/78] feat: add Playwright server for browser automation and integrate it into the MCP system. --- 20251227_16h50m55s_grim.png | Bin 0 -> 3076858 bytes data/mcp_servers.json | 16 +- src/backend/chat/mcp_registry.py | 2 +- src/backend/mcp_servers/__init__.py | 6 + src/backend/mcp_servers/playwright_server.py | 839 ++++++++++++++++++ .../mcp_servers/shell_control_server.py | 19 +- tests/test_playwright_server.py | 246 +++++ 7 files changed, 1124 insertions(+), 4 deletions(-) create mode 100644 20251227_16h50m55s_grim.png create mode 100644 src/backend/mcp_servers/playwright_server.py create mode 100644 tests/test_playwright_server.py diff --git a/20251227_16h50m55s_grim.png b/20251227_16h50m55s_grim.png new file mode 100644 index 0000000000000000000000000000000000000000..f71f4c5d6ad54b1a6e8a00270c71a371e9e94f14 GIT binary patch literal 3076858 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

                                              } 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

                                              O>@slpzgi7UanUJ899x^fsC2wQY*ZOMugr& zq$b<##Dm-68{b95B5OjZ0Z0K1jQq+srNJJL8}!qxq0@6pDMwhuU+!2Thx{iB!MT9? zM6~vvaU}rtYKZ8-u*tm_y%V9I5pSKL%x&H~E1PT>D|J@80~Rg^90dh8A{^gcelrCo z9-qJC&LXm^ba=jVc-lbE4+ak*Up$fj?Z~aF94KM8P5(nfdwJUWN}MdA+A_iKLH6&; zwn!ECuXCWeOp5dwvBmB(pW+kz+Z|XUTcPdtsn=0CTi-o4y^_dJyN7Hj?e6Gb1w~&> z>SOE`E$~wkBSB)y?RxpcAO7&iKm6&#hY!;-{muXKH^2JJzx?W}uim}?ZmIR6<6{#V^15{If3~&*$sQ`^%^A=J|4Yxz?g7qvnr@)l9XNrBv0mE+3Rno^I9QwAGe3 z*N!jvhb8pj*+C+n9TKqiK*P<{1irn7P8>#<#a~67T-ovNC=%nrQ5x}9igyZ1Xd@pV zwL?n|J!$+}S;`i>;!@+P{0|9%#&}O;(9UFhCGoP5?c0UAx@Dpv*bo=I16@2{-V8RiziSV+NQeclYA5iTD^gB3Xt@ycXQ4x&JWUN;JxNNH-1s?11at#l+I6sta z#RhE^HQLkTMn*bUp}VWIQ|)&2Kuba<~~kb4X*n5GmEci-_bX z=a6x}L7_#W^90|8-|XBkCtXPhX1F?FsI^G_WL9Ed>@rWo`wtL}+NNZTNxNkaJ3T7)Byu zriX`fN~sq8`0@GWWjc;yPKhibUh4-@OQ}{PkR!FWfTgv;0N|tWmRLLB_jg!p9KRlc1%WOi+?ep1?C6?O4LP{(=El$&IAnLn$2|(mp#_?& zYS!HZwP*9VB*j@EQw^UWx=ct^EyYw#DcZEIsB=^-Q2=`ETfUdEwopxqH&)4o=@pVS6-dVJBjHm`skoB%H zVyKhXoqL!ZZcs-j>pm$&)1RK6KL7ml+wJ!I-~XP7&gb*-c$~rr2`p(@77&ixAnyN- zOeT`E1aHqu-H>;okkM5yXI$3R33!A+$UXoO?=@TXJ?=9OV#FwJcK3+`&9~r(63_H- zIC#c`PZH4{r9d#_csvbx)S{Y{g}v<)_gI?a9=79?dR&IO#^ux}J%;J18#T;G+8nfZ z$EXN%PgfEV;6Qwx1YZ!S)y*-7o3k3~vS6NPz1=?l{PWK~`wX$?_wU~W>#Vf{X-A3q z1%L@Qu00C@p5Hin$=?#`!nq0&RVvm~7Bo1!8)^~Zep5vz2Lk!?Jma4a4-XFy57-4* zA7q4ulBC_=@l7?|i zNj-1UZ;Lu@TzOm;NEX(zJUFK<7 z=F{nfBU3eE%R@HR?jKq`Gt5lPTGfmtZQ7pYK7bem>s_%qXeogI$_to;S_+0MY$;?v z`=+pQ>=)TWt_%a0PN&lsUwkpo^LO8USE~-g8UT)0*&V)T24i66xAT$(0z;<&D9MZf^$m-d9TSIKcJ?Y7{pFVy1mw)*e zu)$jE5XN46j;6LMg-z7QNy(ATbsJAfhbe))Kv*ci*z5JGJz6HjC}?Ybn%jVnPj1K=K!nN?lgBqd4| zhvGRiIy?KK*E##|XCJiluzx_y<&1{Xh%GjoU6oat5$=GQ?ZXAk5s^)8h^Lj68R6j$ z80_=fwV(XtCy$Shm&;|}Uu&&7FRw3`-~8q`zxjWE!%0f_ClirNlJMtg*dUq=G!1+8plA75WzRdp#Pr=$VIPvh7Un-dEW`XoeroP9=z4O|z`Oz_fG zTif@l%@NtXzP@hT_4V~t)kM-9Yf#T&(hQXBI$zRK77;O5wGQI3sb(MNPRA>ak>xxk z3B#_1rN+l`=w=r^^jmCk7|lC%ZBsR*d*(Ttdoy#hR=bTWxyW!W-Q85lU2+F-#KFOo zF&+XIfddg*4vuu_5K9JK!ky4g+R@#OT%twX+0kZ6eAH`vnvW4LJpR7#YMN6P&gWB+ zB(?59h}OFQ+rNEVYuoodl>~0rRvVemwy!T2l+RpdVrIdecYHDqjjFnH&LmR0vC!IE zy2#U*bS#oUzE0%m5OXIp+qNAXC(F{gLV*W@cNB4S>|<<-ycxkkx0XHr8P4r&0c~Uw zLZ92{S%O`L>5Q+Kiv_c$4exZeBXLG>I=~PaAgWntt%IvvQn!5%4-dE|Ol=wi4SgaI zl_`Z1=4K9-b52BuHxerlYnW0gCA&Ko|KZ^Q3jF);zjyc3X?=KjT$a@xA^}@;xZ?AA z&PR+y(iAMuhZpO7KA)eSo-pkpWcaNU7!L5A3o*Ylo^D?7_zmACwBt9ky`!ONd3c*P zNSEXMnmMb@`s6NFa`&8aE?M1btBCsJnld#ogzdw7cq~*Jokb$@{{4GgxeX#NpOViJ zsm-4AowSGi$Ir7*GQT;Fl26G2`g1StX3oZ2<1ZonDM@P_E9?`z?9ioCF8ZzjH|GH+ z(SkQpO3BO8`wTI?5r;I`um-&8u4RSi`<$MJ2wkYiVTEIlx))1lu3_o$4C0dW)6>&C zk*_{{{g*%gtFONLu;~Dzv$RscPA26BeGhL zIfhZfxKm;@@zPx`m+!v&uGaeH%NKVCC)T>INbf|tBM$hz@p_Y|#Vbxhd;}dMV6Bde zOzuq&dG5q=7BHV)^DpNwrO95T4qdeg?(yR#bw+pP0QvLONHFg{a`P!AcRHrxb~nMs z0k_sFFpETl29n<5%ZyP%$1!0hVV+#*sC~@q+y#q|A#ra7GJZ2M7!Ln#Uc)$>ej7C1 zT`+!tz#KC&=YaNB_eo0B$EHkjaPt6thcJ{>h*+lr%47HF0#W@h2R zFL3h!^8&@)&L4dH5uREQ=D)`Aqe(8~gCRro|M&V)`D11fjSyDv_RnvhNEKsR{q7=n z7k_i5!%L2rpb6NCFj(`)zV2>A=O6A=;oWOqoV#bAkMZ48%paV${;h!Cy;(+*>rQdV z)RaaOl>Xm&jjwQe14?*%56sM*oZN`awY6PUh!b%ZNp60V4{N4Zj z`llbtvV8dZo9CC;A3l99ub$<+mXH7IU;ps_{a^m=umA4T58pn2`u2zK|JQZfThp@i z6P;6LA#!7(lq4k~@>x^3lQVT*0q^6yh&x*Y5krSeudYnOHoRR`o_zWw2`a3$G@Vmm zn|&LHSKD2=n(1oWtF2Y5vD&t=GRyj5X6<3Vh{UZrtSx-5u-@tc7)5J z?f1&RT?pf_KI?ql=(Ky;`&%pYnAp6sX%|D9@cwjWcL;AvpG<+%-LiRFyK!XXpH@-t zY&5o7TVw!}Wtl#t$0de-IH7`-kUjZgqu~BqA#z}}T8~)YGL`6}jA#e6MTKLom6Vm0 zST{WkX}I~&K_(RI`P!6=iHLeocY5x)FRtTleJ>zL)gi?7 z;ijY=w)3D1~lt={+3-JvzH1^q9iPtaDS-K(u5*X6+XXD6t9yQ`XL+!@4amta|t zJL=YK#llV;t#Q}+Wnvb6w?f3-zK>`Uwm7ZQ){e6>;JJ%t2k+sd9FE2#V+{>HIBXTM zMD1@TFGj(S7FJC4>|XBgv*Mu(>gxfkxn4-;o?>sKq8H$tJ+KOTaD)HoH@ ztF%&&aRu{Pdr*&L(AJkP8{UneW)wv%@WhVm2dp*|U?NZ-v; zVlt1QioCSUK%4>CXgb^5gO){p(Kker#Zj`xm%O}McDMxi5uw7oqjO?q3a99msM_9n zhsFKzSS!fbN-stc@$~A|3qKq-x(dwXCUxV>R}q=S82lLPn7c(p5m$*7sA)$Bha`%y z<-2BqpAP*SA{&m3kN?2@rTe#3p!N$M=_2+wzPVueX)RMSra~c>EtX5UD{~t5pT7pM z7glNWvBbss;Y6uoF_%d*;oqUnj{mg)cU>5F`9nwLFq7$t>@V1$sgQbcC50l)Zwkxz zWNMMvm3j(0$Sv(vjW8OC&4cpLys&QgcVZcxMj?k^w&~sbVQ999MFZwTsaM=w=jY%_ zzN5eao&tNAJ7vu*_!?q*QeO{Ip#qGTCgluz>J)5f4ae#_^K#p#-#c)rBBce8V&?A+ z^P;#U1^qS}*P=-MbDznDpO!A>yAsny4uBe!jf*Q_Uurtl9ayP6W41K?&%)O7+g9Jt zk^#pBxhSKRI@&n*ngCAExsBmis=)B+SEch_N1`9tvqW|Xvufc?{Db`S z)Yt#@qaAVya~ylU$wQhE!vmj?#i44+!p-Y403(C(gq%0nmk^k z0k5|N;bWQ~R<%kjT>Dtz&zX+hL{V_@kU*)v)goDXcDDOoNVGkImHJSW3rtuMOl=4g zqKQ^nX}$m*5h=ddlma>yED;8l3r5};Jtd}6|M)l>x@Kl@$83NCJv}Y~ffvJx%a}VU zL~7hzbmP_+(j-#S!CV!6+8FrwvbT4uEiLN*aCv@&@|f%V?n5n7GKzh`aqx9$#9oW8 z+y4<(*GNTA`(7U}C0ZOkYCgF=aYzK$3hNmmW0$pI^V*fu%ow$TA7@D)`n(R$mrf!^ zRLefD*f2JifG#K6(q@Tc){@M3M zF!1{*Qa_)TVl|IBrpVoJczM}4IAQ289f%s_JFz5F4Mzdj|K_*I)e1t6+r)OF)z_wS zU_ag8@v_K+bAhx3#Mz-VEP0w^F3QX#hO*{6yA{PH%;$lf=K#87_fAKM21v56nujO; z<0v%|%y*izi*t;^$=^WrPY?aR>-4fb|HPkOpPb-;ic+(G! ziy&8UbIIu8aACyso4^;c3x7Mu{Sr+1e!tldCSNGhx|chA!u(+aALo(CkG$4`;5&Lq zMTCWW${$(OKIp_nYfP5Vnq=;{gvQy5BG{PJQGXwVQv56jWP`tN_6Bc zBZltbjEVml0*CAN*3IXh-lw2dwv12 zqiSmR?dLwc_TQ~HPM0|8mD~kfJLLA%tx^7bnhrAYH{sYNIAn+4oqy7{TDb5v>yT2< zamL5U{zf$<%=|OW9Q#)y9~>e(+yy>)DYA`lN};XitjBbtHx*SAZtZm-nN)!a<1$C# z>0of?5u@TnJGjVzhxr;=ybTM_Zqj`7+5g*Gys*r9xIbhw<+Hh0XueJ$UBIBPybXzT_W%S@8-lJ$V z6r6!d9C74~wW;~VMOH?HkJ)CxZYMY6PPEt~$oS-da z!-xIV3Yya$J^MK3ynp?PV;8HI;e~E3B?SPfJntj~u!P^?Fu(l``CPbk?nYP;<|DQe z_VkQ5hgfU(71M6ys+DaJm1?$z0xfehI>(J81k(TVaZhWe1nVQGTs1;ypTd6g;P$i@eEh};NITA8g05`0dR?g?_p6gp zjgQp9QU^UBpYYF=gC85!4BZ@5zY%w1N^j3FCrJsHW@0!vmC^lfoFrMgI`dP0<8tii zPV$L8E4dti*Mg)6v0N9t7`K8fSyr3g6W^~?yWjhp#h%CWL^}*rv9Q>dp03-Ro-Id@ zjJsdY_io?UYhLo+&zHoWmyO?U+1^Ue^TYyPQYu|aB#?8`=t{En_zwn@N?Gm%cgsI3 zdz$6<8SY;GO_<%U_lh!ke+Ug1#tLR)HFv~53FCEci@Ey9ttC*owbw#yfZKs~&+eFJ|6Lyjv-QIb4N$%MGM#jMrKzLX1 zPwV!{$f)2*)jy|Mc#PaQXI9ovpx3)a5#4L%-h7_=zZbw!X06{Je32Wven@<=#mZ&g z(OEMN)EvrIj`pA2bJzFyH=+^s;6nH-FprPs#-egl1(x!%C4BjzC5ZTMvd1@$b#ljl zbr&jT($V!l>J)+5DYU)P?atfMzL5c|cjJ4$qGH0L!mrn9?*%+|6QV(HX2*OCKYShn zg=;@{xvR0czkOJvsu$9;^W#wfu#HQeYcE8>W~g?mjy8CFn>zT75&5X6V@{alcZ;%5 z%J~5y7xB3*em<-H;yJ;BSa~eA)EOZ;SGBIYPL$g+Z|8@V!RdMM+!lE1@coyq-b47H;oxJ;M=IGf2;gM+d^O4K(IIXAogepVsXzs{ zsiVwbsAo(ltV!8Bj`TxrePYL{J@~W8ThEpQs<5|7Hv${mWp!fd`+I3(hcv@@KhR<~ z>hLr|qUF9%&Zy1h{z{`gY1=PRtIqG1JgNfq1@8Xaieh(BXaIcyrc;mrBkzaaXzWC* z%#N$?jH-ru(y}=@lGPLfCa+ILAuNr4Ua?0yCz6uvoI{i`MIG^ktUs>9kT3jdgElx2 zCv=8nyPZBAwDW<5h^{}iJ9ipMOiI8J4HuQ54u#2dP^gN)k?o%zbin@3Ft;L)#Se^7 zA}+tYrzS|Jja~CQ6XR6oZg=B+7FIIZl#X`WDeP}16faDfM6~FW^#lmqS|^pHrzo zS%A2$`Uvp`Z&DFtvEG(1EWG=md^-8U#Z+4v+oxoa9l)>NV*hwpW9tL zbLG4pYebz9l@v~h-Q;VTqxstUk-NsiiDi}H(jGp&6M>cgPLl(4gezImj`1X)Yj4bq ztm^T!jD*%nDq$!*{s25c-0hrC^-A@OoyX@q(R?K!06982EfY;4D&DRiVZWlcfX%#ZIm@1;3%{HxarN5sN@tnYq9HDgY1_qzfCM5Go1q_}Y~dAqaD zQ(`&PrToBqg@E|-{q1-ef2`aRaZmhfWfbpCyOaO3AL(dH^z9JMKco&LHfevsoW5ps z#D=ISBrB&z$JND5R>hgcwQ6m7dDr7u#)60h#+Y&;2S3tet;6uk#_bu&z?a1flBy#b z2I*Zs%Hkx!%(&2uEwy5lXiD=B1WXCz4cRIT^I1L$b?_EcHJ_G)aD491A;zx@#?TWF z)C3J3dcKlcRc(br=f40;Z6xp&bg(EYJY9d%76^T>DxX%N&St1%nxgA*KkL7gd?iW$ zPiF=-v+1wwE#>#JE_B@DYrj?4Wv5*vks1&r|N*Wm&d(5geqlORgk$a z$s6&n@H&^WITWIzlUqSSAN}f&*}CQ<5SKA4W$NaaqbJv``rlV_vTU@{EmK;`XJ_J*; zOxrg$=`h;diWqd zg~{>f&c$`cRIQV@88{0}U3Tu-QxtGh;3N;vkc?7NJuu~#6ay2aem~9mosoE&+Wvb) zTnt?sT{+9GzLzPM-gI9D)1mUYi2RaF3s9+jG& z%zm$wpt03a=aAp4QO8O!Z|bBCo1!%>`=;xnwwCZ;$ap%E_2RH%ulmxA;wL*?G@^EU zJTvnI7^#q(U5X(;NnuIj!Pfk(fL_5%ZZf4(d*+DqaOKk=L8TwOj53DvE zWU!fd#StS$5|6rV3q}wHabvj@{DU$~ep0qLLt{45sHi9n>-GoLyDTANlM<5JzPn&S zh~viR&EL;mSx5c-C|1#r!KVY6!;9gqiK6w+G$lJK_$Qm^Zj@qK3+@g&pK@3?BS1&5|MAMs-n+lY8Q+8f4ZiNg%8pY1XEGs1<{3--FVE~ z)bp;s*)X|AjKzx$%A;R(JsSniwOw=yRx}D4);_j=hb8P=9W>tOTdNMMoLc*c= zNbC=a&eqLhvSIxpr{S>VP}W(ZmC1P}n_tzKkzwt!aOV2h@Xc5sA(FGieg0^>cono9 z{IZ#b%pw(cpxp=<Uy{0w;soF}}6Gg;!M+wPFU0Cu^swXUcO5eqpHoC}sk19V;&OY{8BK zb&U$o9s1?uC1@%T$2Y_Qh;=g@Ryp>&#DqpEorAU5^Y=wtmAo_v6Di6PWt{oMB#}{` zcn@ULyUzC`AnktE53W?+j}z8b#B_oy6-PDELZqbBW~Q9DskEap(S`=?My%|+&rKOj zs_#82A-FbGxTc+x?W+-2%>1vi4K|$dsMH+PoF_TlJ5AX+ z&(1Y^o#dS>!=kuca9+r(GSX`>8ATF069$mRvtoy!*Xv=iC`lfnjJ${J&lnVFpJc;08BH3QKdF?|z?9Iph-}z2NVLJ|* z^4BA75r58d96DkM!dFL+AgmMsrHJoN2s!HagrKEmQekW6L5 zr0K#Bx(?aR@_OxLQpAmdn)XQp{ZHiTS@%+0bQQdT79_m6vQq%{5;L2_~B%6yx1 ztaIM2m6Z~lvhCympv>Eu2k!{on(VUZ*nU6_4Y!)hv~(hVuMSyQuw2XF4}D!-3wynn z{tvU`M&5bl3b(zsii#@s8DLnG?f2)T-oJXGbtn(-{%T+o13lL^Uu%8;+Ay(pjBamnDs#O&pE5z-!H89J5rFcXul&fGe(>z+C3FYLB@Z5yl z@C#c-J$+>F+}ZQvie?~8oZ5LnHlXrHPS~Rih%Kk{p^Km9u|SLj``9SA9&i4YV6zS*ftSPhJN|J=C}bt ze=)Ot{Bx2&)s>l+M=` zCXR+OMag>%<~Uc%&cawWngr#rth&OS2^^#K5@~(+`}4{vz-Ys;Kwngh*Qa z{^%{*50;7}8yt9!;+6ZEM1Q!)sxYYo8|1Qkl#*A74w=1yC418R)9)IM3#(TOgh$-kLyeMGjCs`j+~+$2?9%WJo0!QO@2M;X;uy^oib65bC%R; zM#kZYV8kT4D*uaM+o0fF7Ovta?0Go#%15ZFPeWm9YU)2TGszF@25fwGweI1eL6e3D z!3>3q=dPf8h}UzMIl&f`x^#2n_JO$nNA$_C=r%u`T!_A6uuGBLrznm;j`n)q2%J=}EH2&UDj|#17(tq|Zw3LWfYwgGD&+NBp23hD85|g9@rQs7l3-jb!nlqY`N-mg! zzH3NoqhVq~v7$c@)t(Cu>M6PYg~&(}z;opj9cdKXR+ing?n0-RvDdq|t`*fG<&;)R zCOZ}#&U#w=ms!D^Cd?+8(_ee)Dc%prM3OXYS8O2x#itV@iQghWMeg*THtIN><89JV zy67t6@GbmK1Nvc#ehlYTjO6V(Zc5=^GEdrexsIlQEc*co?222tgaKFc;#a z^yq#Z({O>gV-x<1FR1gt_#Y#qAQ}8jjEPU~iu8xplbtH6#Z9541e9e<+*5C^b2_Z% zztV5(`+a;rIzs6(BZr%`Cz*@ElZ6C)VUH01+b=Vc&X3OHXjM1p7U8F-W7UT&;BR~A zR_x=H`Qs9>rs@q_i8>@C9)4AJcGvB^)j1VNIVstZ(Pc8~%sSp;22K>b7`z zI;pj*hPKCuy&kFN<*sMgRQuf;6&kH6P6B~#K5it-9>Qoz*yn+erf;M~Lix}LrgVZ2 z9WXp&;pNY-lcPTlP~36Z+|kX!l+{z-+uX)$+WU17v*M%E``Ph1E9k@|sot@R(`-(k3K_=5t6sFbh;wY~xZ zbo7yqHY==4Kb*V0dv?;Ht9$NZO`Dzq>mjx{x0UTrkl#=vA&Eq6=rhMnr%tQk!oMTP z9NXIy;d9qJ)aM7i9=kz4?@3!I`^9j$7WiO)m$=in+t1akw5m-*(|`|p==b9OPNboL zb?|$!vbxQAjM(MN;b(2jWKJDs{2W^va=bJ_^3SM$?Dyr~ce9ropW!xDVc#yGHAc|Z z)NVr~BjaxS)sHTur}Uo044AzElNl*Otvr0%W|AZl(i&s_#l##>6EZ zpOUs>i{y66)&~HV!mxh}q%pfQ5$&lp#AopmqTN9<{U0zWovNRqOAuG<*UK}Uz1hdr zS?+57mmrdkU=CF`SG$SfpE&HRCfT9=alx>TyoX4Lm0=J=NcLKM_9rTETMc!^qE)1? zC*J5daOrmU+_e|xw}vGuz@&&di1d^34p)LiloZA&Y*4%J=IP4WO5y?KTjkvjq(?^d1i#6;3GR1W5#pLBP1 z^i)gcM;V^@>Mu29E~l{>+d>OvyH#m`$2B;-X!nuxDemR)_&6LH?U|3etNjmI#PxZp z5kgw^k^AUhW~3Ng)kN9Gfv%zUa>tpbx!O!~jH?c-8Vbnr|7~>F*RTczaMMsN$W<`M zs#z?QQq=5y-=b{p3A$iIQy5Ray=jP#)Q0&c*I^tObE$5}()LO!R*sC>p_T6{25mwZ zV+LzeZMk4yA>+vmfefEN3_fh56uH{)Xp1&D^#ZcaQMV|=wT+&whT1H2Hq~d(yqQ65 z&y|%U>n#*y#W=YST7oDTLzbmfzAWza1Mj z|96W<#xR`3dN-5;!^83XCo_661ILQsA z8R^XSvw@YN6e6#>VPiRSSqzJ;#C0LOx+va#+vpF6>T_4gA55(#rM_^@n7|UWj?$GT zbH>IO0gPm3*@Q2BuFR1RWTPPi#`m4L5aDlY$G=u5Ku9cRa>+t5l=@L(R*sHq0$Bih zklKYcy%kMuwauIkPa2&(kj}hXA0jHYI-d5GkJH18&=ZHJYK7NJ891F`k2euy;l7#< zjkZ?vn1*a5RMzm8aKx}#%$5#)J?2r~R+mq-%vSX9m-6mCw>U2y0{3-ZFH9JdY?*5A z=Y}x1ZU$Oe@-QgrOA#R$%n*N!UIP`)j=@D&tb~~*O;VTP*w;G439eaQIGD^BBC(KQ z(b3#vR{SV%b~qj^NuH~V@y#pKn)SCR#PgGLH(rqY-QrjMQG3wwy@%$*#Z_tA{WG^gWb zpoSMLB4S}o;3=x~bJ;ZVa2bp@{Q8k~b}o7h=;u00!Td1O=GNVhpfFdgh*J<2y8mGT zY@IEmOsfo0OO{GsKwCWMnJVR&x^@(>dgiE#dvJPJp8CW8H2DRWBTLAltm5f=;4yXd zY#y?^vUI>aBpFm}Zn8U)y0+HOoKTQ?z!y%APD+p{6}CAU0-)mT!^bO5@SRM{kT$de zm<~O8nNQNS{{9F8I=jMR-H@l`E^&{_Z!>>)6XXmO(-F1Ra-6!X1{;QK8Gm{+)8s||YF(Z>k z^vT|fafmM^R6Hq#VQc6qdl>rG@JtK1^S_1yO*OTxy_ob;YjZVl2%MHC)-+g8+UVum zv!E80pm(_orun?|W+a&`$14W~m}N?TQit@(KCt`ZrW%(vJMQd9=q zHFaa%H9>b)+H5kZe#zlt?!-B(RHI|hLec#SsS2~8oaK`KYHhRNN&*yDzs1a``KZ7Dil$w-{MCk{h_f}sQp&?;1ScncaZ`OwHqVTR3XEIMa+E!q zV3Kr1LswTv29Q;G@Egrt$@ZWFl)r5|cAhpv2d} z`o0#od44EDuPUFOQh5X)hUR6xcxSr5Q5ld2wg8A!6!`x0=W?_2P)qM4Lg6}Vzi2Pq z$GHE1i^jOczd7;Eyw&7p+76i%$8ouX)O}MehMt6Uq)*p?`5(;kr(ucy>TH4+>?Q9S z)0k(oo+=Bu=iYE5pI z=PHK~2W7q$t)DTtWuS01*G)#xwl?2`{Tb0}r%FLCEEM-di!o+I03Dw-S^)y242v%! zqhuomV>(ih>j0j+Y)etoRac9KkB3lUac3*NnT(VK35o9P@euOq^La%)9m^ux>X;JX zV+`vkv-8}YPKH1lP@z||&{tws07j~#W682DGA_kTVnp_Ii#XAh6~DR7wU*wCh@kf; zQKb$LJEaw|a2gB(k8ti?6)PxlA_qDPNH;k<)9=YZ5`nukrWo#!hF{|iL#9!aKh7d6 zc15>Y5?Udqg2UD}BW@4+4a^ZE`g4Ej?Mf?4c7bSkOZxW{sT#C&q?+(jUo{DT*Th9p zN4$GJWP96t)mG#D7O>G|t#G$q(NdOXFT3#lk19PUGq9gyTsdWm{oQ+$Jz*qcM7g(# z1v>H_*U-1i%M*LMxp+Hr_x*c+(%(NizeZY*r{>6iKYP{?ZN|f)#&Iy)X+}M-3GIxq zq<6id)ouxsm-_S1^UqxQt>^SdpsWqGag0%Cdv;&W0x1LZj4L?J8%-n@^!BN<+Z1?- zT8~4}GLEBu$w)c?iWiO-&U)z~=3s6GX*6WC=})#YkAg>_xWpG|ZfAU$A`n~txvQXQ zfF>7*&&su#d?tjAg)Ur6pal2>`NE?=Y*;?#oKZL1L$5%z+PvQZgzLwiXvjZ!P-Jq1 zQ{zQQIGNAO$z{qa04?VE*68LtD07Ldy_-&9D@`^mBZ5%Ger5X85&xoG0+#%%9Stm} zL4h~;X>(Fz6Q4{sRnH3scFX#<<^4jPW_}niMkJLO`IF60HOAjkG#Bs zUOHU~D!<&JC)WW-yY(;0B(f%$J8W7Mg^M^7*ipGJBx zgFe}3PJ%7M{J$a=!Xl33Od#K&wq|+vyQ6S#mD}27x}mV+sYVHg&P9v%1uf2eCx`h$ zG9X7CT6v7#DBX+5%`h!F-VkmS|9MJ2uZ1&QO`07MjhmcTCjARFRx=rKO&yOF}~~m zmeDT+O7$qvgAKv?Q%KD3Vh_FKRfIy4O21R556CP20bXAR9i*rTam-Q|6Y->|DXYA^ zRPbb1ru)w^^Wvp_TD$@bbSg;*3D)4-b-W&?2>tBhk!%Nbmke}j4 z;HBYK8$VNYO7;)VAnk^lTE3xGyhhM^DmaziO zN)HoA4SGhw$3}2N#g&eeF@6WR_Yex3i4k@7LM!6ICG3wm$X*Ui3?spoQ;tS_2IM|Q zrQ~quC4|??+R7|tASiW_8jhW#jC(Tg3u8P1o5bjMWU)eT z>PqDW^f&f5eFanMuMn`l9n^7VN=*Pb;F`zZEd!asZExW57cC)_n*YiWV%G~7)_fP+ z{gvK(vmI+F%9W@jSA9EIrV5n-!?0?WO@h&WlJ*I}F2r*3dRIc3s(x{hnO^c?FyjK0 zU@>{%!NN=neh!4(iyS2EY&1b2-B5k0`{75o+QK3ezHq*uPhAP3n|9A<0|xTw4`zLY zO07Cw)yS;lu@_|J#?Ci!)8m*}Fft0#M#jbx@E=zwujTkgOa4=o|~EXle$|`K0}swM1A%L|9ZbcM2<+XM1K1mYwwu;Wl>BUQJ8i zj;913d$jA~9ONdNvly^ZyM#t$xqUh}(2hMx>KJx3Qpqt6L=(ZrIeVT=pJ<>pT|RNN z1=7i1?^4eWe{C-TjUcng&{>-faAa%LG*(n5EtMkw=wr{&17rX${2Uq`cflR|*9*^H z)r}Ny|6XseS8RDs1d?F}gb|le53P_8N?XIOCnhNAc(*mZMNir|A8V?=&K-|=4*uT@ zfRTb%h`}}-KMJZ>0w()waH;f(L^-O(S`7ekt*JNe_d7pEWpHKEn$9&Al+I$9wR{pC z92bCE_;zh0!)q#V00hvjGC)`q`7BQK!^H~1wf*2`WuIiK$PK$qNr<7;P|oszd9r`32|Yz=+i4PVSXUK#z-yH2yG3vInT3 zwE^xWuPl|vJ+E7!r=FQ+rL`FNfZV`-qd@@n#G=TBienP~A@;bC)YW1x49yS7(W4QNkxS`sq`%9V1Txy{C;)R?pTu!1e#*&dR#q^ycAqrRG)KX5M>|OTOeOAh5gBK%jRlHhWwBHI{9Yvs zU482O(L4uRq{D7hhdN)<-Rfk%Bn-+7y8X?}qPCYd5?!%M7q~5{2aanHaB0?C>QPYS zEqX+RB$%)(dU{n`l?v<`a;nHg?fW@t%LB3Z?M`}%qWznz`5dV2!wt6iQmC_+qn=M` zX)Cy7!H);J{pFPdY*N(|Ky0TWomqY%-E!Ssy+93x#j1nk*bB48B6V$$kN0(E^!IN| zWn~PMV5lcVxZ_01?aAR~oCZLm(vs0?5Z;d?_~p(C?0F9zrj3?wZPQ<6cW%Pk1|4%V z+wWTK)KZJG$1&C>a|v0>13sEbSk3-gY^xAVfK5pQ3s6ypE{WFtoM4xn>_n1=v+Iw+ zMe&fc)U?~btU~gD+MM%*r>LsbdYq1b@8)n{<<>?5pchcvu}SGkGUvDx;`G#X0d+Hp z4akH?(v3RL2Z&%5@_Bf4P5=mD0iShIdf3OLb^45*`W56Bk|4W{uP`KAB{LxXpsZkX z$KX?mHdQ-a?^Q6&T<>-<;4f|!GO$$eeNFkF+(3JOf_V)8fxlqhNbjdX5x(^dv~Zy> zOnP3a-uxdqr;$aDj?Cs9Q^WMAYs^7dC_3vGFrNT87 zV5tcsbgg&Yd^MePV?XHjRX$}6Mxkcl;{dsWzsx#x#!2Q)wd3VF8wv#G#{2oc9G96A zQEL+PzH}6ss#CM!xz2fI%BibcP13O`jtY1&j(=5p+eu2S~t;Ho4 zI5Nwf7vfVLx@!ymdESx>q*W$(KvsEUG&j9I+B4Qw1F?nCR~gcN;C+Nx#of*b4FswQ|ML)tltd0yyxD1np94NCZ# z1fVd`Q-ulw*9ABfvVIp~kK51`jHdkH8a*t29I{inAHZ_A6FTsE6A?$Kxg0R zlH5IKr3)BOQZpmGN)ERE^F@O}{YNOVCtg!^ia~38N^7FELSKyfXKElQ4JZrB36B8V zRaKu$H`VO8tQEz` zj{Iil4irmNkyhc{EWBcz|0o-^H=!Lh+Ck-uq+Tr@Ne8tylh+vaeZ2Hg3f(W$P*5SZ zO3Vl!n1JzQZT&YrLo;-&8^$_;9ZY*!9K}wP+zB!S(y}ihoA=m}z^to>-_hKO7k1;V zZ=z{=h=1lkCZ=*Vy*USKM{nn}wh2)R_*l*L8+Zt!Xn5`6kY+qw(X42iuo zrSz+r=-6#wwT9mXLrN@wJ9_+Ee8@F-osLTr^NL2P9ugG&*(Xt$@RzvnZeLuxJ{Q&q zx*ClYDmOdu-MoF7{FaO7%NjGH8$Lpo#J1%={Y@YiPFMHOWRIs*ZvFLNOlE$Z#!?=} z`E=YCskQmcl-iTF+{IFd+ALbV)Dq?hyn{wzQIS;3ipDNOqpah{truw7r^flm=}~J9 zVc~cv6G&5KpjeOu1^kq=XBxXj<-Srk5K}J|N8k`+*jNnj=rIX*W9pbqM7CGOHh;yOTscXd>5?kvrA(*sBAYK*DO&u0sY!%RI~U+deQk*2#6mr6)~7&JKmq7Io9V5u8W zM0@I|4o5|mfX;kh=b)yYm#d(;vm~oSy0EI4JZ#TfNv_qx&&6CvEgnvvEB(K4`1<#ZqhP*;PNETM_TY zpRX4!nib$&$_Wt4qex!=`}ZeT$E{kww-oM6x+^^akB2M&LhA;@MRi4H@gHV1wEHJd zFCHX&g!~tYw)~>(krB^UJ_os`+$jd7HRMv%V#8h&2qCt-=`Pxt3Q7<{i$m{AmlAO;8MOHb7l$0dUd_bzK$G z5$ymCE2wu7dl~uIMve%R8rWN(>84WtaV9vcp8-%3T^thF?*(IY0oEAXR)Ly>v<;T# z+G?yYft7Pd@F>GrqWR$`ZJ3M(KYq(3hmbJfWD@_3(}$*u?UD$$vrFBf;n^2##ZCCRM~!^5SRg+d zX)0%Z^a2;QAm3i8B&ON4HC^Bs^-$~%#XwjvsFkqTS~SS*K`&>wp($Y1z#$nhCctKi zbIy4o5{Y}C;HSHU7h0Ose~4Ib8fx_(B+P~zI-9u|E3IaxQrULFLoFfgIo{Bxo;=C9 zdP7xyC55kj<}S!GzS83iN0ud+3X*(^+Q<#XiV-LX@Q1B>EdK%00It#E9fZe0W*Mo~ zVAU6yKWr)d)F6-xD+Ve~q6}URm{qdxT_#zu5B8VOgk$7jVRD&UfP*bBPqUBd2}~tPV^?_ad{S)2^Ve1qMt%TJ;N5kgJ8NZ$Z~7dH&FD*!GLAldoK3 zfd81p|4BJ*HEhO4_nn;ge|Uj`^4E{SRj4ihK+64#_lL6gN7eV6`|kJ7N>Nc!8MU2& z7d5OWS%hy806Rvx^Tl)1#dCvuxga(eYsGFeO2)ZyF??P>*lhz;;w=u?{AIKa_`fdtkb1^dK_*WazA{-L(3ZwEZ3lOjd zEAwa!x`!x(_xFRjjOeB_)ak@{!NVhWR?FU2xx-6_*#y&X>3D9*T20l^b;fe_KAVe# zmX?lT}XF*V_P~?P!Z@ItIKFA&7O7DAJ?~CWm`IFfXV=s$9&MLm-oB8 z_j}{F3AVwA?+3DO%aF56I!;`vPHegqeYq)k9 zu|i!A!>SZwbn?)Ox7USdtkS#3$D5`Lls&P7x&n62bEDKfDA&MWFk{)XbFqzXE9wRg zHe8+G#LN1E^)rS=M(Z9>r3^33u5Kx}0@MK-oWFBeDg~5fyRMSriHV3%J;%~S%GKF1 z@jP&ych#I|qz0_sJ0MMd6mp!;(%KU1=;}iJX^yW!MLTjPZOiE2U10`Hp8I>>5|iq>{=?{<JGK3exvI|N zGDP+levQ^I=WuWK30``v9sw6G$|VR{fnjKg;aBRQ$Lj`%RVb>gHs}?a8-H4YzQ4D( z9vdgo$|GRd*VFSwW|?s7Q9YU4VPCBXj(j>ovxHIJP78q$ektz{(-(0&jsO&3yj7;O zMlq3)fiOPX$cSGBp2v@ox85MU7;={1Gs>Ar=8NAB;|Xc<6Bt?5N^Gm4(;es*F%E<& z7BBpd>2z?Tr_FK92b(JXs}#kLvZ%tQlEVdF)Moo1$s;vI9@EJBvw92>G7T3OkmF@0 zr>()G51n?tb@W>nRF8jj7tC35OAW`oFcKJ%kIq)(-^nfkX(id5)ffLe#$r8z@P%QF z1JKaeAK+zK({hXGTg-?%x8-;x?59U^rGfBfA>Z+1!r>?VKwBdjzB)O0XaW^HW*6uU zj8!cH`mX`y*8?TH*}&EXAIj(aI>>$QMx>Vnm^wxt8NPKNO3UHmDO8zI?B{X7c&(=i zOoq>6Iw%1}l(q1yxI~-5w{AVm97@MtyQuz%KQus`HmmtATl{JF(5s?AZt0LEIva{} zr#t{P6f1#k7c+5P0OS2Tb5U5v&{zmA$0qhG)Pg>z`M3C-86e-czniVeq-2JwYc2IP zXxB8I*ctysZliQ>a`4t(a_`)W!F-k^Ez0&`Q&uuyKx;ev4l3 zu(DBv8y4vvI(83N#%l7LjJ5wKr#>$=^sg4?Jfx5)??)K|&vXk(U^Jd&zuGvwF1cqW z&C%YR(CBjfW%pZr5mzFnCU*^cj;djdEGEej?qM2#NWEbJeP7M{A#e!mic80Lzc8JS zidED}v%~c51X5;}B^kDM=K7aK%&Oe4!>t8So|dI1`^h_Pq^rywo)xAk2f=cEL#0as zejuOsasZFMl2*Rsmw+WDIw+bm$%AYX3$w$>LVv8mO7x@C#NDfF=iejvRhx7A?fxku zth3_EY2^TGBq(blBuRW<4s{1RX2iV$ZkTtHjbKayUV+B#hb%qrak!(jbWB9Z9Cv|% z#*FdQZmcJ9PuU_qb0`#ab-B{M*hPxnNdb(LhsZ~Hy;m+>xZ(6ucL`#H0~twziDbL z2yh1Aaomwrj=%%gxm+$OrBS?QP=eXiK0?GeGw|2(S*$BmCe{;PH~}YlgZ_-Qa;&uX z{#|2^wtnyvKtP%v?LPQlXN-fk#)Q(bQ@F#UyOcS$)hF$8D1Yjly&aA=)*M$pwlyRt z>q8#lh%C#DhsGVo8D=6MUeUoT{4nXFiyG9Ir zH2o`e4|~v4p_os#Rb$Vm3{1{&=5(4OF>g1XKj*|OHhSopn3$ZAp<&zrX7&x(2@g@>Nr%VY zlJ(wh9DhUoZ!~HoqCJE#{2F)Q8fBER$&Sfu5LDs;(IcXiq&G-(2HHS-;|dx;6A+7! z{p!?i8hM=Qz9(m1S*d-9UMsPI7B{qhT?>Y zbYggk@6vxy;TzwemX_s%H_Si%p1jxt?rojOq zA}F$kxMHn>o(6mw`?g)Tt+twTFW#elJWoA;d?4m^I3x%N(z-6Hx?Rz&$kx+UeR^G} z$fXn>FzB2Et?6dQ-ce1`!R4;n8Z)t%C6~Qiw`;A{N-nv8jUP#_zBObQ~VRPnU~ks z22|Wq%q`^n%Wzhzx%@d)>>`*vVdAFp%r#nP9Hve$SHsR^7&66 z|D?MT5urP9q-`n4qzn^cM{~T2 zh&Fronn<$72H9qYMpqqKqp7+scJyQ;{ZIoc>KIBk#85*i{w)m{&-2VSh(+Hby3RGd zgH2-*v;OqgWJS+0^MKYqgle5pV&s5YuiRz4yM#O{hoq}m4n_$JLh~em)^^$dgrQp= zGc&MOUV?}UeE`t9ULs1A`rIq);98rf*alO&(9}DrSX81DqkR{(&i4$RlGVv*-7so@ zbL~xt=yn_tp(p>T!lr%$vYvSk$y(b$iC99tfs892Xg$+g1j5l%VjG;?OIv(2@ntla{z z)kzB%)`%1(@&X(ElZJSRGD7oRx2p7@sHc7 z^~;}+C#ljIc6om<($rZ%kO~3`h=ofnIepVBlxJyzzPDCVt#1+@H&+IK<`V>+MFM(=?;KW&aY5drv|T;(1Btr_v+ zq*7D4azTQeIt0|Z+Q_NU!Unl@9%@RgXT?RO$T_pVuO@=0lr(|WZ`BwqNaeyTwU(4{ z97hqD&NBcb0ZXk_SP}@j{BnxhC|%6l_ub9S9#M|R6QU~^qz(C;g)&)WkrAMH##!}{#XdFlFAMp0uZ~yE6=3oELZ~xBU|NYMeGM7_LDfL}P zh;x}mw5CEwK(x&DlvL_9-ocd1l%jzufj({vR=t%uisSK11K5>=`$v&iCu zjR09tkZUU_)kssd{%UCTd(Pq@I4HonT1GfKdMKL$0L|s9b(-grmUND!1BZo0xKysd zpaa5OWhG!7YQ5H0OM;il z6=~O3wUaorv}qik4*&omgH72m;(|`mKvQ#)2#Jyk0!KUrDl@B6l_=@d$hnj<7Z$-( za+h-=5y*+UoDj_#asv=s2BE)(8B9=@ntHPDWTi4&SXN7W&nS_^=bnp{Q_5@eEk6$c)pY{^Y6s_>YR!xI zvx7qmF*`*#-bOha;f6LRQH>^LzZ;QVt&A$tnj6&4#>w**5m4iz82d0G15?Uf-|u$2 z{r*PT_cYIdD7BVaHMXrGIv-Ar+HL?yCoqVxR+mfLLluE!%Y9VS!-s?Uahh31#wh>tTk~-(Ra)6o~6%VUH)FCYC#NUNN zwAG&|;JCFc)w&`8qlFev!f&{`8!Ss&RY5gAh0(W2K__--ILSftRV`jN9ZTri=LWxh zC-F}&E-@Bp8tqcLx<38Y@|$mP(f{hNiabGx$j%cUW-JM z>8UGxh7d8`pgkH>Bb$A@nMvnPQ3%dc{jQT91d{O+@z2o|8dZHlrqEK5x4=^kPQ)d2 z>VGj=o?26coNOqsa~Q`@msPkHOLnGUTxfBQ(|T}5#E|8z*VyhrjsnubPPUwHxTD$Q z6C6S>CN(LREQl=r$B6J76Y+AZ{(0P_Q@ZXU>i2;sv{SZL#|VpGfG%%~Cgc4>-;c+K z09r90*=#9~{+gSw@w%)Ncr8KORU81&ZnPqz#bI%Dz3ok9^%i}PBfI9tC&O_hlE(=#Z zR^{PhW;t64oe}J!6EialJH*HawCnYH3fV@*RjqMrE=PS0h1&9VYT>7KP*c@U{qs^` zqD4l@f!2&q!zk5-w<4p-cbDu|E5nvNhpQ~%#Wmwx+L?fVsBb+CgUbQ~(GqR#x=sL| zpP!lQ{$_u3b3;Vh`${KG6q}p^*6l#sdI2oVq*k8h!q%kF+J_keSY?>w#zG*LBj~*} zTqwtEbvKi=2F3IFoDB85B5ks)Q;@4h+2X0%Wl+2;u=xtvG9-vdi}-WSDl}`TdlOH6 z)^?1V%(~(LxOud59)BIJKm`D;DLah$$AwtG=Y0`Ol(|MZbIp@6F?Mf+!!{PUS@Av-b zkN)Vp-~I0Kc>Lgl51yZ&$8prBC}SzL%w-mkWZ@HKGCFFFxf;PP1+36Ij<6N0Z5K8M zBE}xuiR)v*6fH*yJ#g)csz6X>Kt%5D?z*n?7EnZVe}Dh>+i&ZKS|+Y|t6HwgDP@}q zpUAZ$Z*c|2e~6mTB0EGB0?8U~ZD?)5gmo;$mCtxj|7#Sxu8wYgrL~pe+|p^pMNjcD zpusbEc`iYbSj?7QlhTwwYUO7 zV$Z6mj78|Vy`Vq4?=K3Py3U{TGj*4pS=L&(xQH;epeC434rUc5Lasc`vnyA*%U$1k zT&aeGMg@LM(e8)@;u?;u70Bgag%zDO&E#&x26UOB%yi}W2qmV7lkujT^O&yp6V+lmC}nwtV@ zzu({7+^9&>JWjL>TE#zY2aqVKIinzJ#G6n==3=v!sHsoV=I<=%r01ef)C@DgR{ONQeA`N{-g#@ibd9uRdK%^TF zr}9!QVQuYZjSnvZ0@ltDhl2!r6W5&;;;#@mZ4@s4Np2%PbIz%9>nzoE{it11&f4CF zy?V{}um3n>^Bd~ThoRr^cPS2VY0OhQGr72Iyh}u?rI;k^@2U%yT%4dXbM`T6;|)_QYu z)5hTi{z+!_K0a|Gq zGncu5K;I4HI8tgBXsJb7*QnOy=6pU|2jWCz6Sq_H2HW~ljaU+uQe0Jg_3G8#-5ny@ zMA0-1JyGIXr+H$_Sx``WLtn0SF4{a)s_@}>Jf4pI&}(ZD0OQyQA&1avblx}ZtDW&7_d^{Yx zuG6VuDP>p&b^x|Uv`Syioxt2?FnK;-)96A&4j0)Gf#a2Ex#4*kumH{+{9M51Byb45 z@j5-x?$aihrPkJ~5viiI)+T8NaNqZ_r$w!`)T&k5UDxN_sR+2ez5h4=<_~`V_rCl7 zKfM3F?|uJxJdUGw`f0%nSHIQSrKhZ3mz?wM?d|RDt=g5@TGVJcAEi{e&eQBKOTl3> z&6Dc+sy&ucG%GIIJRh`>L1}*G=6L{Uoy@$AYu{^oT13(zzm+Hr<2a0?j*L*-N@tb! zea9m6TvWCQEas}d<6LGW%w4wEDWxNd)b(DLu~{(7L&f(T8ZtJ+^$58A=)CT=l~HosEq#MD4bAvzLs(PoAEh{Lr=eJz1D3+p>nXt;)p}hEj{? zpkp9*M-YcRn2%0VZoHvUvnB*o!oy3!5r}a|TOI+7cAgzXLiD3t;(E!J3m~uvl|Jtv8?Q38A8X|uD@y8#1^wIHn^v2JwLO8-iCBe6M0lFCk*ZaAnxPj1px`s_ zOuoQU6c?kqOMuTg2?h6>tD|ftUa;3dQ_rOZ;@J^{nE^GYrv>o!uI+!^*p-N&bL&zZ z1s3&5X9YRu4bD)r2U9}^3kbR&3`0$thVo5aDUQH(9Z>VfMT;!wtj#+dk;Fn0wbtYD z2moGUs?6Mtrg@%IN?I)KTGQGPz{PJ?3bcfQRcy`~xUpZDrYQzZ^cp*;#p=hFP@dvz zrj$}%Hb9m?8i}F--}z6R?R7f5jX4Uy)Fac-=fWcv-a?3|c`VWj za?r~+C@OUTaadd%lAA)0XFpa~dlZb?{M$sG&wUIHm%)@{&fYVeiz*P5+2RW!q9b?LL*1#9ZsAZCcC^!csmY$)y)O|tw{5J zjlXaF)qjp0Dnc?|AMbpDB&(eScDafy`mcVbm(O+Zf;ZFwXxh!%blkie_%(*=5eRlm zg)sVoI;GWGH3>~aU;YH<*47fOsMMgXK00NNFwZ_rtuYW7Ung0n6np+XWKC zwDB$2qRUPx@ubi~&YPS2(K9o)eh&+VBIqhhyKS#YD>8(2IU(Y*RM6>>7o(6c+)aS|$V;L(S55y)!Qnwb1a>-B13AsQcnN zykSm%0&wS}icBYbg`~G|Lqxhfl)&fpdNd=4oFqM^%p(n|+-!Jhgw;lrTvCl61P4bg zglL~1y}Jf{w+>jpk3S*>Z!cZg70a$zs#MYLK6RD(zTv}SITm6Ka_tal8O0jV!`1G1 zh`~kz#by1IzXAk3SV9E=Vrv2F8{5D6t4~LZ5V~Lwk6`2_97<{k>l}5 zR_aP-a<}@?!{P9J5UUz=+;gLaLcrA-siRG{=0?t2#Ns94z1Xibd`RvDp>+z{hOQwr z*Ax+p9j;=u()^N*1#Mg*8!oZ=H=D#7KHt*sOWwbI=!8{yNOFPP?OKA+EK&kLngYkhcl zBbFzz4u1j!W)SIkCs?blyfgw;)|00ax|lu~@`j>`9JbImqD zh#O{R5h%5E(rfmQ<`C#66fBzTqAf1`-QC_15uG{Ma2qh^Oqrnd(Zt)^+xz=_4V7uA zZv!;F39dKkheej(z?N08VQapPcDFX!xq9nq8(X0L|2d`f>eXBCz4zYT-5r`gQCWxP zpld#s6miuW+T73P6@7kwE@jpxU$cZsNNH231Dxv!e1mC4U8iLvx zLE-;8?tw9U2n7uKiE<2P=E_1s9Z3}y1`6K%poO+Qs~dM|XS?j*aoCJU)BzW4l^$+7 znXGJqC5@dpAvk#4yz)Ou5YU$=1wn9}&*$Uu$Xr{BDm$4Y0OZ__<2X&~9GB=aigL<< zz!v0=;Z;BMWO+Om63$wR9Z3dk5F`N9+T2urK#>MF?35@$YIw*N6$5AuVzu3!R~0&Z z9Qhqv^bxLk>IEv(^((bjt_%oVdFClz7U`&gNNd$p{pc45w+k`>DYazGcei)%zWXi! zeDMAUPft(09;D*1bvS74ezBZ>u@L+1?d>oOj}H$I4-b=duyb&2xP+6Wu#~x|k|35j zs%b-REE5q3=oF!plky)4ffgSgl&Q5YkTy?YQRDULC3Ly=OlvYfxD!YNV}~iFd9I~Y z#6=@=)5f`UvV7@iuJp4ew8ei997V+>%RHTZ~n$_{KhAreDdQT|M+k? z)HViU@SR#16S5|G7@Quw z4&*p%9r~W;bD7oGM_QA1KAnkDzZfsq3;VZnXuaBR??%Ip^GoHqN)%!M?+w z$%7reL~AjHRNZJ)D*RR9d3<~%qTAcM-EL2aUG8=}sI~sh-~7$vmKG5r+CBPoKKJAJ?QeanABV&7r~@JuEMBUl1)N^G zxn|BvCapL}S`k_ToE7O)Xj#E6cLX##s3IqY`bPB@0!Yq%N~-2@qOR||d9IbqF!W#j z>N_BkQzrsl?smJ~>2$1h9>*~ys$5J~umN^cM!WQV^eO`7U_JtjTGCQiLZ?rcWhw$R zXbPsQbX`xJ5EEDFa({b!pL5ncs6<%@*DAm~*9rhM|0sxyIopbI=DaXSx z=lsq)UlGLP={!v{0S)7hxz2NWet!DifBOF6aQKIxelSgEBGkyJqKZczqrCPQ^Ei&L zUcKu3{=*MHJRXnkUKoZ^i^VH1tUjfrPR7dhJe?Ivdc=;L4m5{`LsEZ4OgUq%jIPuP zDDyAH6E(2w`(YS~plX8S>{Dx#2ym5JtGanz-&X#t)}`h@DW&LWIam@yC0Y5Idxsi} z2>Hh@SvWduLu8~{pFdX;k_};3i^DA@+^WY5e+F})>D%cJ-7txaT@^?GIGs+O#Hk5D z%&cz>0IC8xyMvcplo*^~xK{728$%Ki?Fox(1>VaKu;oK9h1@xJecw7_x-1Ay zsptFA4x)rDvZ0X2xt8ef@fq9-k`|Q() zhd0m9&)SuoEPD(tn&3t_DDrqRhrK4KJk70obK!&-mYuvB_GIFYfm`x}ScB3Hwm43j zJ8>1raOM`&fMy%{$zCoBbtW4{H}c6QZMlw#ZuU1fH#en}qjlocpT}{$y}i|}O66P_ zO68++l5_U7pIXuMv?W)s3D&ywu2TYmW_B$m7!kU@Y7=Q!=nBEOfc4;-h9m~ZWYUTV znJW>Ba1{Uql8`b2)~1MB!?Rjy3MoYTmg?2u&_M&&ikYA3h9$UOaQRpNP&|-rD1gnX z(?^59y+H#&yI3X!S@8jXgg-Qxx=T&6I5Lok-?a#5 zFPE6<2Zw7DLn|2+;O+?WpH-W6usi{fB-z5(V-Nd?sPeI(k4M5|=)@v+;hMdXD$tBBVIL%fBQ5`+m3EA>#3P)L?e9imnm{R&D@`Ax`!)1f}tf zC4Yr2_XW-C?bg&K3OOOT%YeL7WlAZe?MDmQ@1TlKXJ3iA3(>xHe2e&CvCnpDPFapr zj=d1*3xcTK1bdwE;-U^N2Nc|n%VsF#Z*86u^~f6fHYG}+Q6E@1NlH}ac`l_-lu}X$ zy(+24!;x7iQI|9HQmd%O*(wQ!LA_c4t9gDAP`=y9Hhsep6%`swo(hpzUd4u>z#Jvc zd|V%GKo(1`31|ty3%9 zkji9+}ogma~1!VCh>TDG2X#BmGf%ER$5I&0^&}GzV9i~G))f=4~Y1cuY5(@ z!+3I!d8R~1UwJz*>%rDCNJKznDbm<2 zi~gWT4=tHmu}FnNUb-g4UJFa$d0_2y4w&nF$5qNy6q57N}ms$?eurIeI}LNHs8z<&^tuIq+(Hly69;7lKW=@n+?ldhJ0GOrLqJ_LUcf&B|mPtGb*F=Cw zZZa6YHBe(4R!HMGe*NoT-|u%HfAaB%AO53eq$%E>PN&o9=y^QD&;vkgw5$xOky};I zM$Xw;Hw33AhL|)n1IjS;nYvo*d~VrS0HAX)Q%;}0{`9Z@^8bG4op(O{^wX5mIE-M5 zqAZzYO`n|SQmb|uN3UZe%Q~W9xl70lh;+0O$6!9|XfHc6WSiIEqDEsgx}Tey8>NxH z@85dsEzJ>3DIJf;!{LzIpvLOTo`mLbdg5^#aAAi=0pwrbNOOH_&k^wpUQE5hkOvSE z+u`FFm~F(N-+|U%k!Tr3nGyl$^2L8puITDP*nhlgkKO$U1@~sVHDHSQ|r>?+M@*2TJ=JUN3+41_$#&q zYExQb+A(vrj(UlbcIl{X#^RDMb@?LxiEh{x2{A=lUoc}LL|!LsL16M)9EJkOBETsn z>XNr%c7M8dn-G@1>%aDEU+cQ=bUbOV3%yvwx4P%%8dha8XCwk^AyX~aYQNv>6gCzq zr3~XRj03{r_jm!YEVImQqH*rjIq1mK4n?@@IvVJ7J{?Yn{cf)l2E}46nh7cZyJ6_| z0|Cub5pFG7U02!Qj3aFg`5ejz;?HPvb7FKMu4tu-I=HnnI+BPKnoFGzhiB51HDN;H z$}`Na$0`if?no*1efO2Gyz`B3d_zP&_}~NUIM`w&&hb1dd|^|#e&Vj1Waxp+>XBGt zJeRZy7iLamj2jgcg8RiWFeQIn#U}Opcc7R%ac$NQ0P@lc8MI` zkw2xxm8VjO(r%ZhY5MEG{_F35|N9D!c`g8Oe}7ksJU%}6eZSj{r_))FCQ3Jd1!b@j zYCfYrMns4$9sr05TfY{6wZ@|^>KN_N1reR2YWn8bk09{)@GzH>bMEZ_sTP&mPNC|y za?At(My{H*ZcIB8a^LsUG#w7--EQ~QufBVKe}6iirfHt%8mvoEU`~@3lrmW>KB)pg zt!EGdq^#XRM0lFcnhN7$MRTOQ5?~mHVAn64xw(K!5oYePA`DW#xw&Dk4-aqNym`}g z2LMg-?n)`8XtJieo?1uYl#|9^-7I>1eEiBde)qe-{oB9$J8vG|{OOG3d*<8F5|47*aw@p#t0xgtO*6H)HEoDxWjbm~C^fLhs#MNUw@J^y(lE+Yq9 zvq5x2!~d!QTIaV>e6y{n8~E3`GNzSkr*OuqR7OOEfLvMgII`xI0wv-u!|mPO{r#)M z;V?}fJv_YmKmY8{fB1vH&4lOE$+zbs*o_OcG;22~a9z^ij3W1$QeqIz#6fTHoDdMO zEI`ZFi^$b8S1%!C{}55kc|xqBVSH%)PDF%R{oV*5L>*C{=kww4T<5|d+DJoK&eOTp zf`}|qOD%N?pG#;z>B=^k?W0er)+Y%qPSM8rA|N3N#gmF>@95!E4w}{-7KF&X1I_Q? z6yf{a;3S&Q*-{yri-s%)p|nxhFPeCDUG$H~lPo=fom9}Y(mnWjl0teC8*;>NP?)=#injRA*zi!SG(ABJI|oS7Nt z#lw85O*JR2v#mzfs(9865*BD`~ki;JV z)O|~}*3UlsOlK*G$bP@qj6fpNsz^tM6f$d_5aQ1%A%M!(tsN(!f;7Ih{jk)crp~(y-30(=Xp!)p zt3*Dqfi_WMX0jVbdF1ES-l(PPx9t3jtN|mucITD1JYMHNDmiLSI%;g|k zy{O|!JjzI(zT6q^NKT~L5a{wko2_PJH4PaGV+Nq+*Gi!pP;CBElpTIddM>3_4M5;U z=74|81q8lj@5vM&8d{aoEQr?00FR9o6XjWad22m>C(&rxZmx&51LE^op>yQ;pvX)wp~vg8{&?|*N4(5U!`=9$DzEbOVqkjUsTI zeMDT6;M;YqL<@f4x^B-m;f7vOL3%3#YEg*d*wD48~A zO4g;rPfu@P*#phUsiCh@yt%{5p%j@0S#*bkH*JGmxUNN@5N(ZclfYyVQJYMx7{~=H zgFvbqQi`9J*-YEr3gJWuxSFGEW0tZm{~i?Km>>uGt9jVV4g%}M9~JWHWvm0&&)QpDsm_HE@7CO zhe1j92gP%D-s`_Q3yqN3@OH7>CNvkV1H|PZtW94Cj4nzU$9&z=Fbwa!^G-_X!w)~y zbda38z6Y(aS4X_rR;`tVFbhe}NvrOpwTMUn3;=3^xd-2PQS12;dug}|Pji4oa$V?Bi-%otsc5N z0x&3SVt&v_vm17_;pBQ52QQUgQAiR=Bn7|Bpw06eUc+@ zU;VZ&q%MzxXyrBXmu{XE!5Tdo)})-Q0-DRL6g{rx>NKR-Wn=*VKJCy)rkZi5>Hm)CUk zZfXfGilUp_u49OZ4@g2p9fkspu}ey%)5&$T6A`-U9l@e*7euUF#juF2eN=>xS34+) zMQZ}rwzht#IztUtLX+@B41(a_5K6!I$OO(&mDcihz*YCR0i+8$dH`Sn`;6 zyIt<{be<^DTxQMO^(bDphIT1s;Knu+Ed>Ub6k#kkZ`2##A^DJ{ov6G%B}yZ1JTmXfm|50HQM*_)sK!%rWd9)qH#?Gme!QN$BO z?M|os2V+?1lHWS_*l=Tqk4sxN13411EE?>R#_b3b4feHCk!r2x@+J@W5G59{PCyBf ztQ2_>yBoR_k<;mPJaNuBQx@~KiJ2jbHV(i7B0vdM8)Ok}IC(ywbIuTwo>eqNJvrNO zC_;2S+yl=Nnr$=l;c%Fyaym^Sf;dEu7r8XGiJ&V(bw#`_G(rHd>5$>@ZyvuuRxXl~ zjcCz^H&qE$gqe@W8AY1F0fNwXi+L~ZXR0@?=IIG^4V)s^oW{ESkkxlB6q?&;~N6yELjAAInSKmPHL`@S2;q08MoPoIAJ={OGKIG#@D zQp-5@h^QQn5HY8y>@WkfbY0%Z`vAZ^mwBFdyWQ{p?(cs4 z+u!-?|K|t)@jw0v3--hK@bHN+4*jmoe0V;k)ZgCjbIuPB4~N5Z*QJyaQ6{au$$i&# zDXCF^*5m*+2cp~1`Nltasa^yCQY)vF_WQl^nQEz-Y`M#N#2!F()psL>T_GW}=|Dhx zO(~l)hCqlU0@F0t%1R@zU%x(`XH4m<6dm(G-G)%`i!e=ONz8R;00X}>a`Z7g;1&hLdpra zMLH26=cKicr_)Jk{ct!uJiGzG{mp*2+x2~aI-L%O10wAAH-u@X8K!Nf3!00}C)26^ zZ!)^sWycNZ_%wrG-Bfk%&l#b-!`aTt&quI5G)MmvR%plMac{6;FqI{{ktR? zL2%}{JXKu_K>IuBJy}F@N~)^4^1#e`HwC6s^#HO{hIqVc&SKEson%?(f@`3aQoTQABz$V> z|H3^KV&gdO_xt<%``vD*+Nyck+3g+8$&S0Gx;MgpI3;RPQnDMZ7c)bY27hmMX$3>b%BaaRCV_0y(Df}9L zV*DH~_|)YR(`bIIp5z5VnaX+qrA};U`e=@ND zY)Aq?5ZIPJjNzXz%@O`r;6*^(&pYoJU1&<9~I{CQ_5EWx2i43MP@< z;=AkDqu_B7=z#jCuedi31sr}K$40myr3ecB*~7hvs4AwIHV|LmsY6!vB8~I=fjWFB z_|_do{T%&Wau{zEp15Qos3$^0hLN$`ZJQK|MvGqQJJkA44=_ixjKmUQ`yvmC@3Q#{ zg+u{<$qC}0M=Lk}^%9vk>@o6x+j(w)lI>x=7)FXrDI&Z=sf4+cvTmsw1x>sOg}9v` zZrDE{0y6*$P&*gIRmQeIF?x|?y~1wW<8n%jSWc(&`8*86F!a0qzVh>23d}QFOi>Ya zK2O3mrL0Z;Dbek4+ic78c@pTmRV*+*G#;_6^Pzp`@qN9+1+KbYFaBkJeUFT~xu`DA zc!<+9t465HbxkMRYPATsZnw74cRvTgUXaUTX)Ascv{~aAQbQcaN-3t{zYy$+6yX-N zV{e48Q=)G`jUTOno61~jP1b8f9ndB5IF9%C_c3=ZYb|le0gX&4o}H`}#Y=p~5F?MQ zRd<>w5h5c?UARF5vOXdp3|y`jPsA$i$lRWBB;0-@V5S>v4lX|Xk4Il3OgZZ&vWnRU;oB1The zs}BL=daf=EslcUB$9)K#15xoFsZQt9jx=-B7YD| zTIG=4SZwfz!yyt^bPz}061l6GV#ZeXq^F>zcsDmU-}v=!>~}ZM&(9xy^x?z9qll!O z&eJJT>bjv;DYbOm!P3B7UCFJvi-z8L8DmPN6r#oEjA1#k-gvMU=ux&hOVq70!#tJK z`Q*5IKA*v)i876p(r&kdwNOL%QK@_}5Y<|%S;gn``GXHW&!eWDw$N{*AOwI?3jz|+&CN}%_2J>6l(O6HZf;PLU{cs%Fa_5HBhjehhF zD2fDM*mYjY7ELsT!JSsi>6>I(G9lu#aP9DooKVa`6HzpVmem$x z=4qPF=Q-yCg$Z1>R?V>^tC}_V5LuFwJHa)Ma;d#X^z#injj#RAE9v0Oq=sCsmjriX ziEgCm_S}i)=;!zM+e!#yMAnx=o^ez&{IZ46OrK04U)G^5VVPPY<~1Qetz6qMKk~G! zT8aQ55NR)Jbt|XD%=4^yFiU+71}S;TOI^)&SkW@lQM&?wh=OiO0*>(HFnUIb>r%0I zsS%}2WGoo;jd;*0rEwhf5gHWHDY^<8MKb{Cx|}e#EGTV_10ter)Pr$NNSGW|SX$bQ zh-iQr5s^~g4|f&_P$#@(IZ65Js`a0?LJZoj9#^W(ec+^(*!YG1W?)n04OG3I!TNzD48 zl^_o$byNf^m8EbX^LV7$%DLC{UuwADAtPVlNM%R=X{!s~l2V8Y*qk|+Mtr9@7T6Mr@TB;ainq~dUA&>{elolXB5#O8| z896e4?5LPDbLe4Jk#gT@lqTHJP6;Pj%$l7KE02}ghomBPnp6dYH$;%lQUaF{!<#s~ zJ_aF{4wh5HgJmiaf!ZVl^OT#HUIS~3Pii;=2t9>)WD(@XKY`+WD*Uk%U#Bp>y+Hjt zt~EEu{!3?-W<;s0bk!*-4|QEgsJg!BmBw*VCCPT`{j)gcB6p583_v(w^7ufg-0D9b z7^0Eck)+f;5lrD%`DHcbVC2Zb`7Hjt{cPy&ySaDOJ77k8uATG)evvh~)U+r<*CU@p zH4H6!Nx8oCxD#HSf?Bn1l-!7JCHLWHp<|IYA1EaDr%W#A&GBbZGALmsTV0ZB=(7M+ zdAG~_rza#xQ1FTmYQ6($F}o`#Jd0vfoFaiCT7DVWLdI+w6QH`!Vb-K}h6IHi8;r=A zvEe@(ivdS=nf^rC%l6h;H7xyQ=lq_vI`S2%;|d{^V@a=-CV<3LgLrWA=LH#Q7;ETB zX};duqiIBky6CZf4SZYiw56a$@Ay#Fz2w;J18uRwo#-lyYKw7Z&TG7gV_D1~N>7Vm zv+B=d?@w~d=no!{3>Nf8wI^UKIjR!p=bt{jx%!e>%7rd<$_5@vnJ`rUPddB4Xc!^G zpX~eRj|Sv9_FT={IW=wT=bE!~8XCyuKdWQ1pVbT3$B8Sx1v2=@H~XDstd99>MTZou zRo57>Y;J7Ws-F!GehoZ&>vJSmO`_v{$s8OpGSjx#F2mc{-sk;1fQ>N5G!r#Sc9kI(!OXXgZ!Y#kKBb z!LfUyf~oE5skhV+7zMXs^l@RlrVAY6_+-N*UCHbJ!X8l+=MSTgLklN&wz>b*?#G-R zL-TR?)Zqx!S;8_ zJUA_qMf3t}_!v1`1hl%ad!2-TvMVzyPb}_5Bpt2@kG*g0G*Vr45I9GciDFsA(m-Fa^ya|Aft{-|`>cnuTMV_X#(vc#p>fVq;5 zlCH%`q*9Z&?JNEZkA%MoLS14(MT{iPNLz7rBrua#fYGdigh(|x{$U6M<=KvTD6MbY&wI)c6WISKQ0rUjG+dt1A?e0nh#nSE%y%u?ceKy=*f z27c<)T!BfJ%HrrA-k#bP2_zIZoNx1=kJ5GUc~oCvZBrGr9CH-t=}FeOjnL?-!wA8N zFq1x{PY1_y+yZ-^zLF&c5>(1c>)i`Fc+AYe|3uWqUcR1LWe+Rwt+D;;~#0{E20!?_x^(Cs_mK_iH5iIZ6BuNQ1XQe&ipgSc64{*z7-9h)hcob>heEe zKZ>xb`yguR6pKhd;RGiV6&Xh9IM*dgl}Agu&xQJh8R|wpv@Ilf?jlxyRjCQ@%iMS| z*S*p0{jDC;zR=^3*xjQipw1^U&^wSCPdChGl-!x@?Mp2QWNlW~FiVBT+xp}l93I+G z5e=JpHo5v=_FVyy<*$`>Zj#u06545GRDP-zYMf4U@YnO>R z6S=YfpVYYCTZ7))mzNitpgSAr`k_agUj|+=ZLP*p2{QuPXf;cX2Ce*&#mlledmaB~ z*#Cp8_ql23$33?=Ef60&raO@39^|7SXy}KuS1*J4=Kfx!-OUZXxSu`0W%a&Ixdfc9L;v;d*x%RJ7YPQT%9B1cxk59e zOt6fM0dc(sk2uXSz2+4B+g}tnnt)$Q4t+7XcGLOLcvi0EyJ-#Les*UKM~O05<+HBC zcdW>-QD?*TmqJZECeqe~t})|+Hl`QuSvo67UkEGIJ8Mom-~2`2e}53ezLBUD6$eAB z1qbZQXp3wA?FA@H9(o`(F6VDh?sFGtyFma)Oi&ldn00 zQE7m4Ka!}90*Yy1rspTC|KaBB`DAR0%mfRd!^aRb<0k5_vM3OPvu~kp?B3_jUT7uW zLxe)!DI=(45+=!`)(NZ1O@BJsL4A_JcC+#aGHgO9F^sC5cv}pJ;ol!3X%m2WescMx zFu|2|hGY2kWY_j(?_F~(#^B$7|B7$SM@hQAhI@(7P#-FPY^+feFcMfS$D?up;q&5_ zQK76w2|v8}hWpUYB;$Bw!Bqumu_D4?6bMc`Y!)~>lF9z03~<2kvlX;k5Pa1mwKJz= zm#Ocy*4+Ha1<*PjwRG)*;D`=D(-}}A!M&5I7@+QeWhh9axEk+{N5qf<~sU1aDM<(gPBvB;8Q!dQFHjw zf;^Lnc`|n^qaq;}`tR=}rRL%rkg?g%6NX*kU(U+emb-r zcoN`ro$X z3_c(m+X`SF;vl&+qhSLQs@MwGB7Jx(>Tc~Nt$RzvBv~K+v`T|1gDVXe7LDoq}hg1R7 z;xr@0wfry@UV=&uz$RqZNMv4%64RjQfOQmAX4@$3&qP$K3P`gkt$d=G{rur-SdO1; zA_^i^$Qev!22^BaH6$*U{A@!_SOYW+Cw}U=?0^l%(bM2jL@s_m4FK!2P}L;i+(L=+ z|G7c?9^1RSrSp48vDKbsPx$mYzk-mz7JM~NZtFNV-*koH!7Lx5sAtD%_P8$p?WC*J z{Dj@GrDhu9QzV+VkI^j8RG3-Cy!oG2!)Tu6u;H6wH%oR9gS8Y>#G_;s3T}vYPLe13 zeJczMfZ*2#1}!#iA-bzIbsxJ`oOyFOJsQksqt^BF1D_=c_h_8uffN?a%V!{v;?B!# z^Bx*ba3ivBnB#ZIdEx+X(-^kkw<@<7viGZ|Sw2O7!4%yJqQLtvX0<~wpK|)fUnJ+L zhYM$@6~KFR_6{UB%Y0*tIB zs0N2?H|9N0nH;pWv88h(Sw1UC$StQ35L5aLE-g5{3SL!d^zXrKuf< z=E>4>2t!jyvlf$r@a7pdWu5lC(!j8E0C%FQv!X$@Ao<&z=jPs?1(Oy31*|y2J-;x_ zmoGO9_nXVTSGk+66cK^Fq|=8q3Y*(!;NPwSZ81I08Yk?_eJE zL4garsV0f=Cwr(tJ}{^V1vIkfmOH^SwWa0OyM4H^I9@jYZ;RHt&Xih?Cz zR&>>Dl_WuBg=&uqAEHZV=ZMWW|IF_rd+|Xp7C*%SD{;aSnwWzBx`pC?ZXnv`27x#- z=#2z>-Lut76js-M-7_7w&o1MfY7X4mjuh>b#7kdcyB?&?gL-fWE&Rr7hg10 zqHuJZTXcyw;(@8BJDuRRA|yrW>{1lhW6cmV!7;GtufWe7qMpGq zF=)SvnK~zK*U*I_7|L#Uc;#ACQQnV2G3}`U_6H3ae^K&Q4uM@4CP>$p`{0Or5rpuR&5E z874b@VclOHS4}3qPo)cmZe+cEN(?}d0|ws0_fas!94!TC@_macav(V-0GCtp0v|*z-ZQBjBTyC z=De9+jPK2Y*G1=d&j)l5R9=c?96H73zw#|nl;Vx?awOc z+X~frABuy_$~>jNo_6f^&A7ZqzQ4Zzf+aUTKep0$+ywDbDlq8yI-68`GQq@D1aXvf z`QV>1|GfQw4D&z3?{)WSuTFipJGOU_kwiG{LCb>M;BenIS$I+cf=q!(;RR zem4JemLTi&$-tZ`2`4jioP4V*1lMyV;SMbUu!P&y3q&!CW(QGKCPzt4Y$Xa@$p(d0f z8{vMz=O5Ta;??5y5FS}vc>9Nmouc>{1@{_c#R%gZmr=lcH(Yj1`{)XhvWzu@@Bbia zXlPN=z$-k$Tgm*owl7o}zHnMCLaBQxwN-M1Qyu<;mm`xFi_p~}zO$s6?!%ADPa9SK zy+&X#wmzi#J7!|m*3QJ-l^~`Wb+xCnQ!F(XYb6=16j+PY<1{C##k2Vb0FP*$9%9+q zH;Km^I{GD%YnYGka^a23LV!ZE3?dalEdG6OA!4*?DY71>5BzD849L8jTY{S3S{fX? zQ$wi4o7ajwP_5St8~|^S4B&Wa+hEjg14Q5$H4DtB-1cX~8v5+1M;-mZ2w31%#316# z3Cw0#e(M8AExz@xK78kG zSvH`#*cF*??`&bn0afMGeYM(j9R%kDUkhJ?NnXCT%tT8^UJRoVu;{eTQyL@EwPcOQ z(#8L+Y0&(OOZ6>gUqTYKd5I5~j8?SY$HG$j!Qzn?rm!fF2yv%Y71Rz^G{EMCH}ThY zHwW!wO+rp^RJnAcR`dOqFQrASlY)!=x=KtyqfA&m zwRswUx}4?+(LrqWee63#-cPnq)UY_wz>e>0F@qH+6&HDy`{+1<+tkW#aK^Ry?Wee? zQOyBIHt7vIuzx#i+C+HN$cl68bBh!BuP%eoFuggAJuyGuPv3+G0~kkIUmKZD978Q7-QK(< z9MV!B2l73gunIY9aS~hu&h(}q3)HJ0YcP3)D|U-JrZi@&hU+mE@LP4ISF z>7}0DuIW=+Y(U5K>bz`=Z~`TbbQ?z>d3CNbEm%&&MMd?ew!ckK075d-v&iM+`Zyf; z8=IpLOYpNyN-NUs%zBepVXw#X)CcU|l9Mv)=^vvw*(Ua%+{1SRd$EWis zLPL$a&R(whBf#IflHy4Ro=x5FL-)tb9~dSiEs(WHr}Zk(M1vtaVJEB6Tn*^{Q)7K| zb_rgKLzS%HzxI6jy?V(cSX0V!k$ByEze@!Z7{~RN8V8ac>e%#tj)^%xoyF(Z9w&p# zH;Ces-NF`IPsV16Q`w2VVT0VB7vbqfLlj>SPa0m#9W4tqZGJi8O;M~y;+)fGLZI{{Lpld*!LPpX|ea^ufya?z2vSLIx4wT`lD|* zm!CiKAuLQoloOV!^bD~9OuF_BwSy?jPgh5aayf$z-pMsnv6%8v7+bxkeRsR+IO@}m zQoD))3Up{3Puc|kw*NB}WYJl(F81;&=KuCm!m&w!G|>=jYq0FOo_^%py*3YasOI;I zXLZJ&NoZ*S0PUwJ$1<4GJ~%J_9nt!;>J-fO$2~e7&DvxBgo?szX!$Dt*t>MlN>B6l z{9Fl~Y6aRRwrE=Ny}Tm^nG|cS`&mphSmHPXab|gb^IS*j;opWbuX3{0{^*9{)1g`U z!0V?c-`?%|nID#UasBhVb_;|FvuFQ4$H-3Do;&;P|Lzrxqkz+I5h-#;f<+lK`PO;9 zR1y!%sZht_cgcsXmwCW#bQP|-Hje`2b$K1Hc>e|INT1EgnVvg{Wy+K~ooT;Ab}T@m zDl~ah=^Y)`efGP|@qyt>@i?+S-aO+U`B#wx^RWGv_WpP^p`i>VLHv&gA7*IC>RXUv zTbFZw+Q(1p?G3MeFuJREM&}Az=Pg<97VAFs(FdgA(ZpnsNrNaxK_%f>c?m^Dbn(wo zNPzJ+jrs{|;U+4%1Zfz|t#F8aNV_=IEx8!E1-9IdZHDBSphAxis%(%`Ua}>Wz|8m< zaqVn!Teqj@E$QU29)(#L0}^j}xBd04@-<||;^_8e*qfTc2-QPDy$E&4%X>#=<)b3F z#fiKtgFHKBe~my8@Zk#=><>mL+!fBlf_|`i#PvFIhkN*)Xz(39RploGJV6Lta%V>Y z3=tFU7(s!q!(#Ez=6%Ji}x@O|6W?@`zhJx`#H}sHpu3{l~c3u z50+X&2jeOcRuMrt?)oj>uhg&q@by4z^4EgcYQ?%0F}l>af00>Hk>D!iclHI4@ya6* z;vzDbYBUcsF+9xqi_PniD9#e%d2aurH7kBS2JAPQWP3*oM9KG?R7lXo02MpOLB16H zFho zbU+|pN!42Ukuju!Oo8FL5c}%ZC6r?OR$cUvC@yYf{a9b1ocJ~EsF=p%ROJnbE*y&n z+C=m@2>>WMsiHU6+8l=Y)yC_5uvIwhXMs=7)i7trN1++IN@G8tHw6Y{@j?wU0r<1U zW{9pOnr*I2*G)x2YUM&R0;Sefr!7uJ_uA#{d^)jz6Vrtj39(=zzVjT%{I#oM-{6z> zzoS-9q?VL%wsq1YfT0u%c**L0%yQ{@J$Q}8>V5gi@&1_i_V^!&jY81lS-lTwetews}}JE+FfJ9c@RH}8HoM1EF3Ib?;!f{~+%KYgI*7b}4; zkI%dj#kxxM2RdK)nJh07NozOn6oGo(j?)~oV2m$de@@lH>g#BWRZ{Rk-q&@6;RLwR~2)#z?%x-l`wt8x4ImeMoQA>dtRP?2v z=He7Ap|y6H$wJ@G%_twz!AX{zb^Vbf6#bEp=Z)Z`oPts#CH~K^Uq_|9*}$5}Lqk!6 zlNvw%{=}n3T7LbdJUNHJy_V2mVu$wJYqPS-0_1ay2_t#}XPi2!%j(dA$y&c=mP>#_|@6$=8 zN}gEI(}UYOADr(c-V7MRWf`IE_ih$T&5V99T-@O#Re&)Zoahvr-H2j)6;`1tcD;;#H>{J!Zd3jqKGVH86v7dS zsOO15jh+=r5(X7GaI8Yu$sikCqG#$z{^EtGIlpe}Sq0Egt$OFtV#j0M3xdm&m){U%wBDr?(=Z=wzthw`WW)Sxx<@M8ywET1~U$_^A@8 zWX~5f1^avCb-RJ-Y>#NsjzCMC1a36~6s3PE)2WtNFuv-z&bl;8gga%66!{_7bczJx zx~oGIQO<16{qYNT*Ck@RF9tEJCT3O4P{$@r)yGFG)#g!m2=Ncal-MLKSnHhVTCxVj zQNB(VIbvlALGdkp6=~UiuFTOW#{4lkspHLQ=1>N3#XC`N6VKQ1^z1eZ!nSZywm}G^ zg;5IkR4oA-6;K^50QjK7hafnfdE~e+XjL)oi2hOUAa8(D-b8tm3MFc1RD+ZcVJBMu zwJ-`HNg@hNP#W-cj0FyqwL3-CH@7z_t`p;#U3G7r3a?U|$O#Sc4YQW#{E)3lU0B%I zH~NR)Ee%NA9}yJ^DBTR+w}Q$3B*PV2W%1n_B3rz{owbmTl3m{iMo`$4uA(>$ovIWs z*f|i#Gx%3flmpp?l!KTCP>F5@;I)5mTS{5dt0)3f#|Cd>KoO1*)6!w5a`B(QDo>t4 z8)BAc3SJ8(Oc8EP2X*m!B5SAkxhmE??3k~qzsS-9rr{I!oRt5uY=qEV){d+gx?_Azf(}S+(^SXMv^@ZZL^c`}M@zB+% zJqbc(x#4h0yZbBGEmf;FGOhNn3kr_V>e+ILx6z97wdq!?>?FXi% zX0!!HYjNqhA%Fr7puN_c-ul3*olIXL@kRx{Smk5bGnpW4B*i|XPDKvHo0*Iyb*zk2>u+^G+YgevTRJl4IMY776KyWJEG$w0a`%A>jpW~O*}J36-R>2 z`n4a+yS-BH!7LBv>$bJImLT)^{3Dy%u`zl)VnG=RxO4>8M&r%HK;eh!qSa!lRgJM0 zC%x~Rwx0>`o__YPVBWd@P5jFICxkM=DgVo_xzY6SfFbM@PXmC*kaKa2eifZe*{?`V zW6g9r`!oI=O{_(RRa@J+&Fe?@qT1BOj)1$c@cP|RhG?U&(u$3ly>rduv+32u7ZzPZ?nj;OH=W7Cy-I9=(U|LI&Mu)%q~OeGH!Fr&mSU)tiAt95;g!X00~dC6~mXbO0&s#TU!gCSts8LNo^ zQs~bsE4HGdEVXGU#OdJKf0~!qX;`vmukS9IvQ>@a%xn0erb)rm_Ow7PUZQn)2(MFN z?bD>^Vx*&x1%7Vl7=!~D)e;t3yHNc6t<1F_>!D_3tbuD{g}uVYH?ComBXMH2I&$_! zTWwDf!XjofRGwYEwAR4df@}FTiB9+PfM}R@zyW{r3(2R3;jafCWDaTG>RhSoh{xj{ z@s*JV1{Q#|C9PEG7Sj>|GTs*Fw3)tURsYEn_o|zXwBCaBe_eYE?whcDP^9+m!_l7` z1?C~J!t_w4>6$wKHN%SCf78{zsd{=5I!4GK%BSiH?mkkSR5wNHw8vYDa(Sun#iRm` z8`7ly9sEsI*Km$^nbqn-1L`-f10NUw*Yj&%A_he-S*H@>R|xN>D-wE}1mVofR0Zgc zDAq==8(ibyOXanEn0_7(JpOHHy{YylSC|&sH`y(x*?KPGkM(=E~0$ z)?Oc@D0MR+5-W1jJ{06u)}=LWGArLBupykbktdufJt`Mc){`-84RJRZrxLkkz zC{)rmX(wDM(;l6TJ-sJ=5*DT0uUks2*#d;oQcjyA41WTN^j8Tn8EQ6zF|nRtVr*&g z9eCy7sH_+5zAbXG*wJZ9n34V{s&}z0#O>@Cl1nXu_=IWO^6tSGvNL<#5*;=4q4YtN zX;qETO4U6ui7jH4;A6v1R`{rBs>ovqN0~i%O)C>Jnqw(qK$9|4?|E{$AzzV#+#f>W zYYNl=bR-fmQd61O7Bb+}DrMmLd=+;b3;i!Uy^^>KV>K$$XW0gJT~=Wk)~wx=4B@3e zWC&-mL4?5ZzjRargHraOP7TGeORUTR=ifypj9P>=6Hl9<#2hY#RpEN+rB6(pm1=6{ z_LC%K_SP&K%i7e0&E`Q8%9Y*spkb4@eUs4gdwSsIRyX{=o*HH$72p=sXA+=y#hH*) zi;zuD;iv!^nf!TDmPA@?IgR`+b9}7!+;F3dek7BEXJV3rgJZI*=JYjihDQNev-2KP zRaJ|D%9nBbyH_EVy{+rfbps9*-xy(eGR;{bv|@+eysveZMK$$;>2&6Z+?n5C;*es_ zQg^-#gKFh^`MSS35s5`z&qz!D;(*X+1TSqpIQLHZ3(QuyLdd%FWON zV-{QJRK+#@#OcAMn$T1`r_+E{e#9S(v$$^wq+) zlHjiY_5$QJi%}{-Z0J_6R2@@)6vW5aW(#JeYA6Uaozzc01@I266`#;oz`8PQ| zijaP;$Y6_mJIq3WOl2(v57z}W;HIXZxb*lDVDihmd?HOodqoWHH}g+PH)*dN zjNMt$&6YFY!gPOL@#fNdIkbFjPd5msk7mpz^=GcyvmIQ}Z)9+0LH-3A9*L*?4;Ijb zefcuzVGHT>cH$KJl2z563-R1 z&B=%q{=IL$QDO}$OIj}VE6#)eE;gaatgY_u?tr(KRT8gu!>Yn;G7UT8e0#g*ejJfK zN{9AgDU(Il*NT&k1{inbfhMj1orW=uvxiX*lOF8Z7AL4o?c3ec)%9D+#l;&4%}aH% zFd8BH^yC5#{T~&N|EhvK@+WPCRsDv$6ZpAjlyj$kDd=AgjvCo@&l0`ApwZC^#>gL) z|M|wp&W*b|T(fg8HSBBB3UY+cB3o;i6w)*y`@kxt_96?;b!U10Xwshj09o6SO--g+ z|H!NTtmUm49rc>cjLq%)p%1+Kt0(0C2JtBLm&2UPc!DC8*iJAN1(*Q`oe@T^Wzx%s ziR)L@%uOy#OO`$THkNALoHMW>NlC1`PyxjY@< z<{9{=UbmXN_`AY8*|9NqBF~J>j({7gHBhT=Mo<~31D1a=%c8N|pQ7|zy~pKY{n6G8 z9o&-gqNDX{jWj+u!m}O$9Qh`6iEb9Pi1_pOJ2S)=mq}0Lt(rx9;xW%HalL9~ww7$| zOqSt9N_M1tJqiDpcs4--LmlE$sK`@mWTOYBh&WR^q-^BPRajjYuHbpB84Q3JG=K*8O!=C8!iq z>*CVdYH-5chV~u9A-GczwNqT@4`+UJnV|SSgQxdRUy*Z#F($4bK?bNXI#%}z=MgZ% zCtS&_e_B0D^mKQ(@6~y`wbkvX5+(p%TmwRq#~%JsKcWJ%rlb%-`xHEe!hyeF4(m7l z5CQ^yToWR*Z9X*mRDmL)n78Td6Cy2zFRaC0Q=$tmpbs&YPBKcn?nG9rWm1hnPSJTv zknT##xzWlk%x*t>mu8H}6?GKK)RFXEQ(nNB$3Dv^O|*}QKS&dCM}8oMc~(Z{$vr!| z+58Bsh_kbG*)O!}yNyXEd9Nq3`hNsd5HSLw!T z%Qk&bVjd`zU^M^Cg%Sh+;%dmCpR;D$xfQi{t5rmgRir7sf(P>@Nt=&+} z|KTLd<!hIPfk37Y_$50dqaoXO?xMwMSij|xTW&3-+04^fh^Kbx zdpDtthT6uR>UGl=<+2o?@jbWWYc~4X(i)M4kxtxX8rU-VbYkB;(M&JZrT4Yv{_XA# zTDga&tU9la{{E|p66tcLfX2&cHeaY@zaBLj@AQ`VR$4{|%zfRtD%fhMAq9}|EBsx0 z214$iQTNkMzX_Iq$?Q@(H?vgX68&Gw#L$c8w(JSJ6(aWeGW-^F&S?U)d|Et5obOQ6 z4M_mWoROrmbQtCRO z+~2b16fJ*tdRV#@vY4-`zWt?z{#-nYhQ7e+vIjDt>b-|8;8@{BwNonOJ}-Rtf&uuX zOA>GR?PDOeMMmE4_FjwiY>@M+ka z-t$X5rc%*(^3koA3Ay8OFvJ6ZXsyvW9H9uRt?m{Lea8C{kP0G;g%EdkbViB&>E?PV z#BF0|fz(6YDc2N5npfkHn5&Ru$st>ZCMP^u9;;iKs^p)Iy*Xcx565`R%9ND~!kaOM4v0LN z!}!L>dSZ}v#)k@LXm|_~soHU(qWIR&HVsZ3wDe=G1=*V5pnZ*6{>e6J`8MwSnNIaswejell zn*v*!+hzV;84$y% z(YQ3E>C@&yXAjPdq@E0kM1)-~Tr<{~X2e3Vbw;X+YgqrdUKPM>4vs}eETSt$x>M}! znjz=Y7D^4bIN#p}_HL(H`Mh61Ll(Sxw?|qM)wEI(6aVoprVD%~c-94+5LbnOPNmE_ zt@)~{%yayB+!aIQhCO<>GoT!C)(I$pxua&Xi4~38X+!F73Zb%{aOPxtzviNW#Hmt6K$=IMc;y_d$NWHT3Ok8-gFf6VI)PdFM;%K z-kB+v!nGg9`t+BSag}YAVd~J{j@tSq$3UA;%(t#edNcM$NkeT0tPJ1w`|7flCWVC# z5~!ymwEE_(n&ogyz)h^^rbhfTBq?Zkz?Fh_@E^^eMxmSOAIBjQd)b=@6IzNH(`3)Z6x0^=<dN?Z0 zoCY+g9fjA=>dsv*AS(LS#WyKuHEl^1r_3J0A1KsdMv)^#`~tOZ4c=o}LZ*?oXL9`^D|%aXoBH^-}QI}QN1_A~%} zEG-ZPJBFr&su%(3YqW)jD)rq*=6w0#Hc4kHYavz)xQQZyo$mRMHG-X8H5ReMlW}aG z5-wHau)t-S%>;usJ@p2z+#Qa$*J2X9myLB*Bnv*4zQ5#-INP)?&Rd@OWeG)X-xYPQ z*~QOU$uK%n&aE$28Im1i9ThGhALd8bf`5mTNvw59<)lYmB(A&LHK5>-k9`-wI6aQT zTI@$p)?@X6dC9M0_{(8RRl`KxdP@h=KNv>$^M0@EB)6E^8hDiSW}FMARYL~we*Zy; zepc`)Ff;Bd$=W8HA3JcrxYsteKXx`hSh-PgkpZdH{!1bgxG3fLE)dl+b#IRpohrEbMToU;KtTq}_D@1X{)Zc(;Im0w4?~Ae zX44P5GQS7_ils;FhJ?xX1IE#((y|8|Wfw`Q*}+TUGI%g+ADw zeS!@o=H=y~;?-CCyCX}w9RT=hgts@@zbnu`hfxS*`vi&$!OnX-1L z+J@e}NM!k+xBdbifZpcTg23feMrdc1y>q4HX|_vHE)lT zO-vha5jK76`d{Yu<^tq!lmAx18d|qIO@r>Tp3l8GmeW8(H~t8iaRS3=JAK1FLdkhr zl>Z)AwhLSBa1#5S)A%o=*+$Nh_`X$HM6qFjBigCCl{Je|rzU#(`VF$@xE`GLMAfU}M^Q`*q4$9WuXFuw2X zAX(56d)|WlXe4B`N5ohgqb+bc@M8yCip2s&R%SCp0X2&fNnvW3eT7F1f^w!pt-E=? zNd!6We#KYKvI!j49=h57Hu{MM)dD+pAJ;~c>Uf#UiCqUR~{SWD!1rrzj|Ng6rjTuxvAH@JRl?c%0zg^R$xau$j%AdvWKM zV>o>KfUS}D(N1;o)_LQ_DRPxitTQeHg%2Bo=VK79-?i6Y&CghjA6Ryv=nRh-+$Ozb zua+~#7A8IA<$+nc+M75TT-y(DqmCET@g-m7U?`(PEu8F=}KGZn?(L|j*CS; z592-OT%JneHvIy^+a$y9J);c_WAQT>rQ%T@d9N|0l3l`|$>RL&Au*;^Pgg7hd>??*;D`~wlO`~-V- zxb4rD(;gZ-$6j~nlBY)bDEs2@kn)aR?Lm#3e-1jbjfvW-NZteNvlc8ZEbgcLYh$K! z4c@3Ir;UcD;W$!nzWnayRGa%Fc;Bne{qi7Su4bxw>cx9@k#SA7fLIbX;Fo@?#jzo0 zg<3Mt2jE01El>)fWp9H7nlxSwypQ!h`?`Sh>+VnP(0$X3V93)~RLu1@B)m#>D!O>n zGPlue#XI4j9evdRDsX03f^|Cl)ey~Yx5uIrIwn;YXpnD73&c8zI!2?Ju%ckeAYUk1 zC~FUfLxlb|lkf*7Mn&gc1{c=LT={4gUQEj3L2(gnfQ8~uPWRXixpanCD;v3;&$B4Z zho6q%tF&0AI&!^5NDe+?h`ga(<_Cw3pc`}uTS%Q&>nE9#8@8^!Na+_>oQvotka9cR z4*lvI${5g3QUnFGCw%6q&ls_7@P;LODOpoN1meuJ^kRSc-H)Lqv5<~cW^ZSQSPza+ap06bao&-$*YUdPG7FFLsIViUjAE4lx} zn54iy!=N=stxuR8$T7+c&Q1h6*LKta?A?v&huQQ=+E(}Ke-h=71nEbI0Iv@tT%yW< zzaWX&fg)vR8nlmlCIqi@#lhaO^&{@qoYoOho`U2HAF?xG$>I5;l9-4m7qF~-Y-yC1 z?8%9(51a*KSYHb7r(*$v)V`OBj;?Q(F(Tyy-3GjAvWutR;MJmWaq~-nAc9N@(HoGa zW#Szg+jHyn8q-+MY#KVPp5InV@Rb>+P*b+Nd~8*@WEogY9@~efYDB-#r&0Dcb8;(W z7bo7TR8o^yBB0rj1=ZYK_%ZeqpO2rPhMI7I-8y}T$Z!HE+jD^g;IwYtlp=*$@HNoh zK|}DF*xH)Bxu3VS+F_PBD!V&)DYJa*@_wr`k#0D+9K3LSx@~OIek=A;B=!^!jox8b zc(3ezs)Tk+?F9DTZ|#!U$7y-4M?@t{3422tRi8gEKvH(ih)vet9c^Ez_WqFn9-*76 z$ba+L#7RA11u$C{IjVnGYyRQ5UPO8jm-6^;rCCVm!&ec*AM^T2g4e4kpjxfB`2sB! z(aZLwm1oCP*9Y#-gm#-MtvhPUzYy=Nocpbjm0=WJ%4bYArvpPZf?-R~DE`lX0AYYlN~>IwEQ z9P{h;^Bj$Klo0pqZ&^;BQL2{@Bd6$4aHEB!Ud*P|?|+s9x-ac@Fz0u-rlk=A-`<`t zO}4ini_yrTTi{iFTUMKw{wWCG-DLoAAb0a>q-7XHl>XW1hEn2dYrmyJd`f9? z(LOmMRdg%Kf{SUfe{IlkJ^m1T+yf1J_r5~m2gEaz_FbFKryV3H%{8n49$5b`+5W$u z_O=cQ>cB+V#+q?R0abf9B+>s2aa=^k^>(aBZHlg4${47&Txxj;zx!w$zMZu=D=z47 zuPxb8JExs$fu)UGol;hKzE_{4#K5?MQ!3Onnv?J3g*;4r8XY+TollhvMS0cuRWRtQ zWEW{WGCF6tA|MUe`5CnX-!wpWfI7oSYN1;t^+Vh<&m#yXOX*w-vX@xPY&@nWbpG9GL%tyX#5HNZbcH#4I3o#SLDk|9TuP*m+E>Lm~ywJz=XeW$TK5bajc`ag8NWl-B; zx37%^E$;4C+>2{)DHhx%xJ!#`ad$5+!HT=PyIXOG777$8oa|@Mo_Ef9XMf9w%w#f? z-2b)Kef_S*Vkq}*JxT2Z_E%>8NA^rzF4HJ`=D5<9mL|7Zd==sG&VlxG>nuWz4rNE< z<$TZGUb)=ZhqeB{YHYJC(;L$Dk>=K=rR&Y1i^E>e<$7Q|;T)AA*xZ{JJzfjEk)S#^ z0kq+bGaOFR;xSz{BaC^ei?31xo@(IGMfH!-p+{CUw9&^zwvL#MC!NfHb(m#CYw+c$ zt|rEyJ8zEFhI`jL@~%=;P4 zd-7f}F#x@2km?q3SOr_QVA@A6j1s6 zU0;E7VivuN*v8Qd*p^1&bt+TB7S$gfRCr#hh~Tcah@)OITNLO zJdrvyGQ|CAIDs0{W?VP&(GW_VYJ(8QcE?cIg{`q7>1D|^;*O%k9c9uXhDw#w6Hg>j z?Qx!tyYC$VO3PX*Vg0Lc$H~*YVk2t!VDsyT0?v_0%B=RNv6Ib{*4E7TQHT{|wLSH5p%=P|RkdArM;Nj%WEE#9vv`uL* zzQr}wDh|cvoT7;#?O1x|+N~|?m6=Sr`t2w9`aZ}lm2a(|C!F;@rCeL%;zd|JVB+!I z?|A_UI!MfzCmB0ja@*U;JcY>JzBknJ_q4G2T9XP96F9g>gdS!ZHeK8+0ykT>omwZ4 zk|(2BYtCB&G$YP_2|h~XV<>iW_Xe`kNh_9=-leerlk=rRETAgd@lsfaYL(wEb$Xwd z>jLgsK>wg4f)>a07#2@^ksm_)1Yhk@oBo%}8yzL5Epo9#W10!4%&Uzfu)cT!N4tMI z&ZhgD&h;^6ODpPiOc(E`R{LyPbY&+rVvA~0u3eDTpZ*$n+?U;Es=IfAw(GB$gRm$I z0`N77HHsFsRWCtaUW-fDK-lw}xilF%iBCe?R}%ESv37 zQHX%uhU25GN~%XtLymzO_SE1Q_Po*#jqHM2AzP zcd5^_-K)modZznrK>KeJJKP?ox6XD#nFnlneE;rfJR&K?3~@EH^2=m~c_c>2gC!e^ z`z<2uIB$jHX1^deom;2MN``&N)|+(^gXRYw+|G13rpCBH?p)atDdDFlml7kU{7AIA zW@+V+19Ogl@Lv_Fo6MKhbA=w90uwNzqR5UH#jQ&^C3PW+FGJw1nGTZGaMeG+!3~N+CnTViQWLmr=yMf*OCHV{;5F4~i&uUmuQ`ofO{nZvn`VqXcP4BWQ)#WgX7K&4 z!)Jt_&`bI%;%Ud+z7YkN4y&u>jP^$9K@w7$0Ku z-l!nRssnkm9AQQhg$VT2J3a@zpT;6-&dM02^AGx$jC&uxgO>kgCgq4)8?9G*(2I1f zy4f5y)kd_(Ds~iv9#`2fsS?wwl|Y&?ufrRl zN9h%#b7AAk120v+skAscyrjBG0WIY1|6^D1Ztv;o@qhjUt%q>cO@uTpl;-K+;96@T z7MmrxYX%g^K~DvyH2{@nQw(Whk7e@tHZd^~yO7weW38w=|zuU_P6pbqZ1 z)yLUPo_Ue$Fd6yWxujb_;M|HdM2BF<+B7vVOrg2(!~Sng^@^_4QnTHc$C>|O0eT;c zRnY}M%;oz&j|K1KJYEYH#B*X}yN2^H8_xQukZL! z5G!*OyVM8`uY4AvbVTiHl`K*3wo?n8z|fOW&+^Fs!VNv94r1gZGMW0Sp+KWFRH&4)aDHgQMlo^#m3)u+ka&IU&|lbw+kaEiK%v(M&;6|t?SU<3xc@k@EADYqd5!ypH?4%U1* zhniXx3fB2JLwHA8YH7oBAMn*(K17SF;Dq{@{QzV8y6YI&52dP&9waXJYc>+WWg?5r zYAFqx20){sW~bOmJ>g;D85R(U^WA;|_{;AE1`-$`1V9JrmIdiUcg~>BfXcv+oz1YR zNR5*$jZ5Sl%Vk~^YZ9-cznNEmb#2w2nUu-}04XZt5K*mU2m63wIGFKp zJSb}XTemck@-oki1$b)*>QxEbp9kY_BE6L9Yeea3iu36A@xN{=Z)lUy!pdq`y1EP_ z9+<_Nof;-=CZJ;^C|NR@f|$}OK!`%J6=nK&E0odvGU0H3r(b1!yF`Jz=iXrQZtiU*HBC)W4 zK}$QJ&V#w{hkHSHVIMz4&0mfmPWD*cMY=7l{95UffK{h%zH8CHnQW=qYzekG%QGO| zY;nv%s~5srwC5YZsSHZy+xsc|bV5Cgq$rrs6DhzKn@@fv=UedU>U$QtHD3b)kHKn4 z$5IHD&^OcxUo1AucvSV1nmupf2awg*xwpeg)(10$ilgT&EGR>iOg}U3v!M@2-_ma+ z)543<5f)aUO$x7D1WKB^T?!_hX{$mM>2sL5%|^_^D{E?2)i_%l2**ktI=0;JeG|E( z9~KCNxlz=Tph0(i(wc70l#r-1XqTlue37yG{xbXi+WU4OPU3E_mu^F}pQ>SxsfL!I z=+lyg%0C5fHQ$@yaEG#Ib}bekbG$#<3Es2#qDNqijyVHw(?Z0hfA}xJ+Nm%xFG=|- ztx!%uEu&bovjA$5B|9DMkr!;dF@=eU@AD7*qHK-R9@}EWXSWAS=8<#6NMC^gxLT*y z>qJ1OIq$Z{&$>VeDjnsi!cwQ9E?P-Gqaon>b&&pq#Z>|@8j8~gb1_e@KJUa2k@OQR z%|wt|G=2+WwA9ARaW!`zAgEoP)G_h@`+QNyk-_o!a&>BYT;nP ziQ7tWUDgiRG(cA?m+b9i zc%l3!bvk#|@`ZA{Yoz0Ez^5Ea8wn^Uxo@|L(c*qOy!YUzdGO5fd+3zO${~zT3pKkfKE^#oxCr=1(PIEz@2Vqgdwq zU|Tc*T-MFM&B+e3DOQj=$3#^&%9jw&qqNFJc;@ijsAdninb~-9UVq||Z|&=?agMYM z#{j&j*Q>qVZ`b0aoqgZP5n*i$)0XU6gu_C#lXJEb4yZ%?%Q65OUIHQvGt(~5n|>LB zr)bDDGhG3@#I)H{Etj9#abFpxLN{L@cn6r+J`x(IIX<2Q@FJwD0%av8nuL6%{kP)s zEPMoXZ0gX})mJHqugif!+`_L5S`m4a+Mb_PYnUa%z!490h*;{*=zwK2po}k}KhS#^ zXz{8@D+7p?b!f+2;_qks7cU%h0+%F_gVQ?HBXap$ChYcPcm<#%MLe|75zAI-S(6?^ z%lCsuhe=?kKlzK}*DZtZzOTN0Cwi3sNbPmQDu%QpN^IZLm=t?%9K0{G|HvfVybLdGXgwo65Qk|rKe@)4 z6#&K>FHVfC(ko=9XVccSq^jT3e425J7KGq-V&s+_>U1Ex_>)^9w!Y2b2d>$Nc!n6-8bpN_}cdEC4L9T<`K zW)gGco)x7}4GUl-RV-jU+QmgF?~z1}UK$He*D$OV&>+bieOJIP$aKVA#u(GvuYtK^ zG2Nv#h;y^A4HIBUQQ&nd7-jc|#%LWX=H)Nv9JlLy-OqPsaoo29G7aoUtN6gDAdJ-@~XyF5FC!NgY1oJkt>+)G` zam^GKK6@z2hRf=$I>yfHU-(nEvW7^7$2#JIIGs27TO4Eix1t0zSw*WKixteN%^n{A zrrui2B6ukfI|SysE?bhpH-00W>7PZJh*VSWf$%IC@Ta}5!x1-^L^B7i2z%rFn3B$! zY&1kp;)}@gafTt5uDf5!kQpK37G(FDpt$|zeP9YZVMiUZ&y^K2sD*Ce{*NG^4JWl* zH;h5O0f4ot@bDAa_Dvz{BHG+9g7H{S_2!>jJ5ioGPD z^YiU3G|+tKG9uJyo$|lbj=S0p5uE)DlO+Z22dOaR78G!cm^meSbFh5^m!tF&4TOq6 zwU@b>(sE(FhG3ZrG&eh(^cY~7xkuK*VNScBG8BJpF}R1Wi81(O2E=1S(Exs28zVQy;~bZ1*P~>zyX+Rq=_7rq(9hnzsAa)5 z&-UNGdW8#u8mBN{m6tzz6%XOT%Z|~wA$@B7Y0b9YvP9%1|FoF5eW^Y`+FbmAR31_z zK~oVgpgFtKu=|m&rFHa;{G!_X2Hy7%-)8QF`nPknU|EV5rU6+#O$?%s7Br^rZDd&r zcjX~>dM8&nV5jLF9pjr;VdP1-y%nv(qtq6oK)l7b4@GMIOmKbfL%5c60s;vZtl+Of zH*ZQ!b09Nm$MHPiLRI~uN%kPTeBF!tGsXiJ>URXO*sU%svyR$O`AIdQOmXr<({8=U z^b2$nd7KSlhJie<#|PA7q=m}9_ErDvE%(pNb0Fh zJ!#3@ro~B?oP~S;3FEc#mv*@bO-$eh2|Sqtb&PU0uWYqi+1#f#{XQK zE({ZaxRFrxS&vTpgkYWu%QnaFrOlhv9oX5u6vCShi>0zi&_X^Fksbl5I}Io~=cNbD zRc-aCu09KW`0}eK25q~}TM=LiBBG{v$^4B~rG^&Zc63qi{}Bc+Nd&V8t4Xr@)5dRE zM7mXJoG(w8V=I2{z~n0HN7V`Kj$T` zT-0c=^;&BxAA0=${@R1qKdqboMmkPgFGb9o{ORoede8_tv;s-ks}pOI#qM8l9@AWz z=4**;BbADb9DgFHSI*=~KCJxA)4`6duKm;Y98}8R7G9iV#XjlQ zyL<3#!~roO^JDH*L#iV2@-wevZt210X4D(j!+$t?Vy|BR2AZ?05weXU~01^_+Ix;H97_JG7z-&SNr3>kIl7I4!4GYq1LwGf@Z{5<9EEV}4K35<3(;tn$$$XtBJ zX-rM>rUpCarak`nWb`jX`){z^Yy>icJv1+g*4&yXw6-^`5AIlMCY7ib4enY>< zBq8($h|kn3tAyQ>veE3sjm!u`7%%%Of?e zB5^)6Nc2KdmxvOG$JuO|jxApS2aDEdfn?EO0qy-iI^ThDm6|C%MEy%E zG*D-YgPM%HQf5o){DNUKpF0yAoj-p_&~pj=B;kUAw6g_T8dUD$OMB{L5(Qmb0!U*{ zHAM87xm^qO@XU z&a^frQchES*^#us165Dx-|LC^d#K6legvi1+p|t@fWI&P{7N?Y3GWD^lu3to5L=fF zA`j1_+jI7n-FXv^)BZb=#tG z4HCdO11O?eUqc$SVz5PVA?M=|#7O1Akzv-${X`-O3_r5H=ys)T!Ee|YE~6p+0=O5Y z7tU;V;ikkfPt)~>ctIOIynYcGz1T*alvG)p1|LdrNW`oKQ)Bwc$l(%=^=BGk_fCCb zo=+03(;6>*n9^Yz)-Y$oWWkFxzpkJ-_ZKL*756$O^L;se^61E?8TU`-@7voVfUr4- z&H`S0qD9B;C@g~=0ZNpXLs3d(Xe?b&ncS)^di{CxcP+LIyn4~dB?M+(=U=6*$I>vb zTvf)-qb6<#sz7PWO@3l&HhnmP-=^MgBd5m$MZgKJFVJTbatXIqX>*w!*gjD0=vFY1U_`3fqqvmFVO<*xUTtv_qCEXeEKLQGxb2JW2chKVwjCV z=?5M>8}?bcp%V_55B*!2dVmKHgHVW3uB+H~p)4d;{C*<0yhLdHq8bGpo~)HI)fOt_xsyFXadQp^}oL4C16too!^KG$ze=DNSdP;f!%9$xM?aqdhNil|*ny`9UA}C(X80Lx8q){D zRN1XAu=*DSTVf^RYWrnmg2rdBshQBKBJB&*$Z3rWIo71Twi?w1bR_(H4L+?$e$`_K zvclo}f9ZxMDC`*m{NEqm1}{!Ne-{gU{@OkfQ70B#A9ugwV;{!V;)qs3(vW$O#H>Zx zkVRYjbD1P(7pwyaL@>d1L4ctT4)diE{Pa}Di?6*UGUrnC+17MXHd;2 zBA_FdZ+~aLU+j5M*q+k#Gye_8FaZZwA0afG1zxeij#~dEBnA4MU6)nTXoF6e=aoy4 z#z(9nw)cZ>qjY@+`9`wm@Rhsw6EB-y>aQg{J~x|eW5CAT^&u_^mowah+Ghqcj5_c0 z9gLn^b~&@OU{aGSJwrTH)7D?ypVa~))cbA)ai?smE9DR)nhj(p+C0QvVS~QfLEvQ= z=rwNt7BCMDeBk1vN&89B?4_4ZJ%UJl4QY%B0J97<^CeTLlN-IH9ZRY)XXA-Th6Soq zxp73X(MnAZqXnJd`Xd&RY<}_g8=KJN$X9XCY~k|7L{nb&=Z181Z=;~8%$j2=2%p=K zXJ^o#u&pO=)NQzGY6WG46F<73K3W_*O@(?08644Pu#QX@sG;98=nd&GrHis_ow)RP zF3phPoo%*6opw0&vGHm01;MyaUcg3=)n_Df=D5RgTW-qU$TAPN*v6JPrC_hCA2l0-a4EI zhFhzix`;05zGosa;~~C1Si~_FEl^cmQsZ)glleW zgOX6@yTY#H1-?IBGGh*oiRFsTvi?jk(xbR7YcBac(SIijCze0&n{}JoZ1e~84Q=9& zVY^Rcib;dZ+#mO_g}C2b<|9NX z+#d052Hm@Yh4qVizl#{tx8gOoE>{aDDQJ$v-ylzt2os6xpjCHY-BP_-4rjqn!@mO+ zq37+H6z1{8G1jb|%J-(mb9s|!;bqAV5j2ESBk+Hxqn;?4#s8hPzVC^@&iC5mLlv^q zP><~0W8gdHuK(k|UVEAU45r@$36`aFm12#bW-%B<{VN9d5xia3(ryVuwjPk=@LHabr)~0R^SG3iCkNh zi-o`4OtkSm+^#H!QzjD%$Zo>P=9GRDER3|=23j*XByMZpsEckZ$1uMVY`(AyLAK|W zm(+9Ox^-C;L%4Q-^C3(3k(n~WOis9WJ8eRFV75ZlKC^sbO9ldFRRf@Tt7~W$uH)>$YTMECdwxWxm&bHOIqwyPwH|xGjdUw0I z4p27_U0s&zHr6R>D_L!|fQD{lC>{RyXRT_Jy zf0@540KCEIloe_=#H1ZBq5*JVPVXIV$3|013dezcu%ITHVtLsf$UPQ*4%kU=qB`OS zUxa9XK#Ac}(WgO1utb9r=CqQ9-~}m(6s{4=xij8`@x>f5q*8&*DU4e8)hHkgj%MEs zUGz8=O>VF|-jgR;7mIG!i6U$TpK!mmC0%AZuBTvN$o}PbVw=fk{;H&};duZjc;aQ7 z`Uq@KKOtca)V%VGj_8mUse3=(MsE;^oJOcAd#>MgAq^ClmO9D;whNK|$^dX3zs=67 zQiQqTc~aIu4cQ!u%OZyC=ju+5Newybr2|VAJ8q@-%c9gYs0!8+;?B}pCBIcjnU-kQgQiol3qIRtXW##?u( z8C`W36Xq;_uS6azvMO!eHj;H(Ho63#m?M&p1Vs|cW%N37Z0SsTUjzlxuPe+D--Oh& z2bLGI@Nt*Ps6gF@r$z#B!sARgwoT+1zZOW6`Db{kcP$Bs*dh`su0f5LCLAjHO~~nv>l?D{>n6uJ z(W}<)+`SR^gEE^3qjk_fKBM^48H*oj{r|84;&0pUch7^E2S?wsP^NG1OWyXZ%by8> zic1cHh3AdZH`_QTP;Fw?3tF%gF*Fy{UN?NthFVb->MQP`H)gpB`ixml~CunS@990MrR7WIuGPS%pl3U$WzXnMjUpgwpR`eJM9`AQ)gv7 z_?21VHWS4U8zfk&jL*$j1k@x<3TqmVP#cD<-Vn%YA@L^ z^*W@}dC$ADjxHHDVpS}Ap;J1GM+=-oNp_OX;NS9g&T28bFP7b?o8(p;k^pUl!UFnH zl{}+D@xx*jO_|}$rDcF{IMQ?ke?36;7ZS)a`>OEKK$v;qgwyA4V`mFdZ7wr*;)-Z1 zy>Ki}01&`nictuInLA(Fpx>T5p^Z)j{y>K)&pGEqP?c4=uw=8mw0v?Q^E-}9mWF_4 z#4uZoe(Z0_kc)gor5FD-7T_}c3Y=9XDwpU$gYw-Hym7G9 z&Ym;W0)?JvV)7d*%FcBHt|XCT0N`OBVFyqT701XtpzU#H6j^=e-PJ9*Z-2`YEfh0M z>%TlUefI`I+EA|_4->)ziBi|k6kc)0 zA+cS-uN;kD<6Jx)erh@?fopHAq`8G6aeZ#&AbE7J;_e_;9p+4qc7*74u)|a^)-DRa8dZn* zO!d;n+5BW!`k8D_`jhQUf54S)2u6V*nJi`Qz?mhaqj4LCOgr z%2>u%i|K|Hp=p%dX+-If-GFd?SlwRQ9cCi0kQBjVrG4t*{bteT#(|Pv)K9 z)An=kRA;W&t=1%+=-{YaG!Tw|Bml%{u$j_GV1&xU%tX-qxMuW+D)P@)Nw!a2&ZpIH6+)}LLvqQ<%qqtU!O!o|Apf z&CLe%3zv-p^sd*LR`$I`NzvCxqCb)EH|Q8V5#=z#UR?v#_C%N#qD+I=BEc6Y#goLA z$lp}mjWnnJd86T6!mmGks>*3QR+6-}CP`HWBTn_<9heG)k=a+blF`OlfTy~!Q`>1g zwzcZmi4ce-kB3x{(Bg(P_AByU%eA?A3}%-!ij9gJ-z(mM(=%B}J|0S@A9#cJ!i??& z9qntv{M_ST7}O@2Y7vxEb(-fPtG5zOL&^p#M#;uHn0eMF_8f&@T3!{qOH5^@HqQk@ z7cSG%cZRypa5xgRH~BYjH(ZDW8Z{*O1FQ>(sKaRRsI>+nur0KJO;gWA2&ID!R!4^l z2v%pDbY7H*;qoAS*tW$p%#_w~a&QsIVk1zfv zc!k1ObbM?w!#8Ei@|S#qEMPBhY}K4ZeR#cbg}9(8vMOdfZQ*7|>Gw)@CTb^QtOX^U z`xv-LU5md0i)t$$f=Pk`5VyOnKVSIg9mc5O+^OFnfzO-&?XK@qfI$h=o#dqqvJ(~13V zyXG=k+O$znl-6=SA#Q0D3y`zvT^_jC$>g?WAj?q}>i;OUgFnQKll)74xS}U!+DThD zKmRNDB0Kik2b24UHEK6mKS(K~b5JrzM|PA4;LcIzRx&18omhc!CCL{bdOyQL$d$x<2-oG)kH`pLq6qE41n1O z!k_M^IvVVz1L6r#4os-{=sF*e6`!QdiL3+0O+)%}jn7q(exW|Vj0lN@`KXhmqfYHf zAga#$D#HeKVAB3&iHNs%N)n;-?jJmUNV_Us2Xj_5b5mn!h2KrvHaye;`CjA?CJihVztu^EEEp-yabx>qX?eKM$k zxS#A)adf2CN#cz#hZH-XlVA3WchUt{Afi0tx6PB<{>3ju0S1o5?dmc*t}55>VJ^b+HfK zNd^<}Fq%R015gnp`1L05fGCPt;m&-znEw{r!X7xzs|9X0D~kps21QxWZIUlT_;L&b z7Su%j?meG^m+0RVEWX_HHi=8ZSHRA>Iv`u~Gm!on+g8p@cA)%-jVDn|7Pl@hdjH{w zkAl9uIT){%LD5z1gz4KjF+F{FAHxvxs4u)Q1*qSUcTrtL(H$vSLllMYQQ6mA}b7)9ivW?2TMY{7Kr`@?6~+ z36T@OO7PtJlw(h$fn$a1Kn0doTzy^K*gBF6i~eUbo?qh3_uz+>snx3 zfN5x83q!lEZ(7&2R0^P|eybq9O0R|cR8IO9g5x-HI#4tHBX9$8E$LfXp3Ue8)BGPe zH#^>|m?D+szmK_Rg!(lxQr5}|P zG?|MMf3J47Z7^?tPBSZ@3C;P~bBeE=P$VucMIn%3)OZXQ_b{{gq z7811WF6%X1*qy0+%&xpR>c%PR%L`QQ0MmE|t=J8mes|=(2;KgjHLb3_U8EXtf(9xb_R+VXpz z-s)RVhgK2g6)H}sdH$47g8o3=;UW#di$t_k&qWeJnJJqLaT@w!64W2p6^EXygUw{o zNg5MYVAf1O4v7fB{}{V0k~1oLs6fyG)ho_@AG@XknBXDc-Xn#Yfe2)*!Qc@=@zcji zhz1^X%rC}ez(p(k%kyR-gib3^?J+(x*Ih<^h^QV&MOBb`4088z?M7_^3z1^Qe&x3o z@bv)mk;57IrR5!h!{TH+%4?vw7qeHiI#D7G7FzGjz8Hi7h5jx|$Q841ZX8b@J*e_yD{{iZ`<8bXF8g=SSlCu6YlL#`+HE-iM~tiM zEQB0e=OTWyEwLZjh@SMt#O;6TpewbC{QxhoN;||~`3?Qt?q_Qc+XaT3XN`}3;3ub_ z8;Tn6vLxebw7kH7T&M}s6Y1s=Wj!dGO)c|;JYSo&ml5@arptd8z#w<;3d+yJA|j5< zz~d08Dy-!GQ=lLMh*nx7{?tvg(!){zCG!g-$fx_>IB@RbvC2+24f-?KX=%c9>a`aa z3V2G(nEh_T7Lt>dg*pSWBDMg9!JySMBis~BO#MDhqOje~A=eRNA$43hv)dySf8RqRXgQ6 zO801d8lfVTzz*N1D}-fqJp4^IPshW83WM`adT`I44TU7feAc_i)+QOZiz*ONSq%4r zMmd2mvZ`LNyK&hQ50wy?Z6%y^ccm?WxV4(axOSe^&SF&s8~sDDZRqsMDl?&ShQ_BK z;Nc(dikV&bXS_*L!qjVT+I9AxQ`vJ!2CEk`n)_L{WGaE1*i9l1k;G1>qJ=;VO)nnK zI5NjfUfGUHg@$OFBOM%mjInxU6p&p`J&Lv(yhIe4d9iFw?Jy0`1~Xf^s4lHYG|lFuGxklpjY-=fd|s%6eM4Tq@xs~k)C?!88Ht=%afUO`@0 zfNiZg%Q6n*$La-^8USfD7>B3uP(EblXJ31j^LLq;m~bEf%1E3q z9o&_OK9)^EysR|qJ`xdv36zSNI;CBH@)Gl|r7`GOYOdLia@Ap2@R_ptEn%;JZ}jGz zj~TF~>(L@i;wNh<6R=}N??|u#K{WAYsXpGW``-9tJ(_^_*CohP1-=(C8BW+jmt9#= zXx|DvVwH+oIZ>k1QR!cF`OR_8E;=p$?1N z85xeTzqrW2a9izU#j3+}#eMle(aRV5aXgKART?u#mKOdvB>(rM zc z4!I-+#M4WJ5Ljj1sEcykYkFr7)b- zuy)GN&qR*Xjr2S@r!D$i%Qq)rtn1r z<@b|_a1K>;{M8>l4-HNLR+{v&Qt-;5LT)XXPjT)%JbV%#9<-HX(W~*@YDE>p=6Dxo zhDZn!a~$EuYjQ~PS!Pqv9EsHv5l!hdb6G{fWD>OfiJE*98>xF#3WRK(o$ z321~;8XM;2cqP!MeoxLzs@KPI-=nS#;p+Zdi`GA|3d~ojHPWww-RaC7Nq4Y4P^93Q z&~Gb6t*YVIkqZ~(4#et&ob5JHI);94syt`oaaRz%5`+a510>s{ft74bo%HK{)F$!}3#i?srN`lNi7EH-_&{X3;0z zAe)|-$)FX`r#$yE9@y=W&|k7os^zqFTnqerj31>UxiBURVFE1hQBp#21Ar&EGBi2B z+++V3<%vu(V%^zE6yllWIkk$hrvOB)p*0WwrES>8|#@($=gg;771&laH**+W_+KTj<4w}w~tDUwpzaI(SrPt1n( z@+q4{XbLApNEpyE?V#bOzgrPru86h4v*`dUe?&X1ud$x zecAJ5ZF>)~iS%s3)_x}ZNu#*faXA676Ezma?m*}pVn zCrJBmmzskew`21Phx7n@(;DphBZCi)+ZK*Qv1S*T(g7YJ5vgSLgeQkoJ zYFblIywvVhabzMvwgt-WO|fB-L>3ReK~j-NSa&gqj3!*+AO{hvHJCxDY}B8cG%7A@01naQ}EM-F_L1@77a4P%ppu@=e7hO|xZKD_6vwdiX?|2SiNM(Ng1c zndnW@1;z!>tMXx^A`C>8x3<)Sb^^nQSHS}`)4(HYNZrjN zdInXVcecjEI>j);$Mgddwu?s8pF-r~#@6j+t+`CHgAfsG;#2`tX_dDVw?^}r0oMi|e4E=B!ffu^lmWk8M=!TDWA#+C@u(1d6G?c` zPqbj`ON-S*Ur1ffmPV#Ji%>&wH14y=8J^P+)S2b*df-h4i^}q z*ln={Il#95G<}o1|cLm?o$}p1u%o7r$D^(7b5vZ!E@Y)BA~z;)Hc%nNXwBccw?dhMn8NdL+wveM!Sx zM-QJ^o7-3+v~8F2b9QJ1utS5#cC7lMHHspcaQR+E*s^X>+}Y(w$`zM4sr24b3F>!T zpYAOZCM5L%3rqqk7%4G_BG7VgCe_sEleE-n#eQ;PC{a`xpSkc0xL;^#YisN2`My7a zAbbu7;{-k>#b5b+v!%*)44;OveA<02WgKDv(Ij1{{jN^|L8WI+&|#xEk)4Kgzo&5z83BvS#woh#Mcw(lCM~Ou1B%iL z^=3Ehp#?2Z&z1GkT+h`yn4C0>`%gtKbP;ip6jI?w5(&PezePlQcMW?9K7~avB1493 zlBh8b^k6uj7x83H4ud2{CX+N`BJfxFK)uZo`hS?`ZCTCbCBpQ}rN&0XFs`#%QDIc= zxtEbR!+?UQNWNs8<)cxBqJs^LT;y54%CLL<(okB!l`aE|Iy)c3-V${3C@j;?oS zm9=gqB_-2&dS+2ucA703>gvV0XqeFO;9R+V>2kb5=-eg-MohiG4!d_N2I%CsUP5E= zmG2fVrUxLl;oUmZfaG%#vlC7clPV@)vr|u};AN!_$5dldm>w(FW!DskTW}5=JakHwZ zVZmBM_>}yUr?r!Mdnp(=#_BM2zs-Apc%*T02rQqJ;M5}BWvb`KIaGP)KnO#pEm%zV zvrXiHQYB)h38blw|05cE#GF=y;svi)RW*yt3|?Q4!EbNre#9G%b*%nvwQgtaX5jai zn(y9uk;&!Fe$A(5BlkMn1qBD1gdn)I z>x=kn()^b!GbrG%3;Y@G69&8^$x3VHU^8YV!{!E&7f`XJ5(SosVw?yw5aBH?C@d?9 zxn3e+Go41IB#2_6Kl?yUC5Fl8B}e+NZr09Gl_IS>ZNjl%N)FS~WwCcWW*uVo(l*#}pA67q_V(Hfc$>>Ni)MEuLw zbt0;|H_j56xvxtwN=u&~kDMMnsRH-Ds4B2x4%C;1pAIywG5MSUmZ+KvQSs3I?BY!NADD0SovoWX5mt1Pn$%xJ8mqjS<-C4nGt5mbiwyI7@%9RspY66~5jGYQLN$|^ETs=!7)y@NnZmV_0z!FkMg;4$d z3D{#@k)CVRU+;%U^!sr7^b5sAm|Zsj*{VRUaDbW;4s5VPU8NC&;#lUP%)bsxfEKQJ zT!h;}^Hys#9sXn6axrNWTgyaIY&{ProzG+yn{M=L>L!Z_9xTi#3YT7*{hV6$2Ffgs zvr{gul<7zoLdI4Ev9GmLOYXfh^4vUq%aTABuLcN^w6MBy%KgRGe;WSRV#T`Rs>&Q2 zEX)X-08e_GF4-`CWmKk+7ZOV4;f=V7jX<>>V_C{U@z7A{lfHe?Hn>`^JtTM9#r?Z} z8rB}CfPH$OJW8)HFSzSQSQ_h^yqs-=BS;4D8y|`+Bp~2Vh1;}>V$W3XU}B{4fhs$)@HWNlAz4wjBx;J|e8d8z7YAAZ*C^I(1Y)zeRGgVR@bzDK^3P;qqmTpyiRtQ&1TFms+oB*5*^slx-S|nIve(+qImU@?d?W8Q-U<|i8 zb=)tL&5F=DzEX)m+bDgpGLUcd^WY#_vb)0Zi>b{?1dd!3{7z72pq8&Da`60oKqyHC zmW#Qg^ssD}2%A(JmiUniKY(nOZM2PD*Kg^>U}}chiV5^f$mfJws?Q66SZfqB2j$V{ zkCA9f6H|}%0q^-)dT_m*RWb@uD@56azwd=!LzeCr$AmPcy*O+K#rIM#cjcGfEK!e6 z_wp;P_Q4ahUFJc zUZ;IaL@8}l6LmfpDNKxddJgLpn1sz`NgO&O;|NNr)A`IbZxJCOJ@ut^om_$5An0=` z;s<=nMn#8Gfwi*$t0LAf{hb8K@O8rNjzaV&2Vd^D8<;uWTf^q6d;vRT9gH>GgcaH3 zW`74~D&-{BiPojiF>%b7p%tvU+>D4@bGYo%)VzW~QxAXo(n-ZAlwH_<#H8MNNXCpZ z)6~l+7>E{zG+WucEMU{JJ69P)2CQFpg6+os9IRvMeRGY!m`&^qfH~?+&Lx#{I*KaH z$ouc155e6!nxqr4Sn|Tb?`0TCJ2sJixnAC#TeP8l?-3_YmZMHq-VwQF#dhj;_T9JC4riHHhl+Jpd z&;XB5N<9z3VE-*Fnd<6X16=|C*VO{Z9KorQ@LhbX&DNc6&x=g{$7Ft0HwUZMhWqC2 zs0k^s$@68^9(0Hcc|L6W$iytkvAo~DY`<9Xb^86fiz+mk(*&>zbg&8t^!QP-^IZVz z4^;DCkK)dCnTM=O1cK|G$Qi3_fGrlJY6n9%co@flnVy;+g}fb2*Zp#}L_%#*0gbBf zJdQgvVNEnh4)4Gn&*O zlTr-fYA1`F=ZqmMovT2D3AI$S5Fy-JBg-clxH(cfL5@MpN-icr8yiVz9;7xko~SKi za{7}yU1*&^aH^?2rqPN*R@&nPpO4-U7yw60Ii>8Bgi~Q;Jp6?`C6#e#1V0imOAhNY zijzA~cscDFZr0Y~W^~?fg=pvI)=ukl@s-~t1VBWX zT#y;{W$OEf?2n>DZN5048W0MU*r9+`i0h3kFC1NfBh((+-qKDpdhA$gl!6yRY)d)4 zGz{6VpJbRY8RdB=ZIYR6}Mw<0Dik z#tC3X$o}ZAVe!2v1`?Q!{F1Y4LlcE1QE|%C_`!wmT_e#$2}DmW{E@Nd5D9gNSoRb2 zC4$4e?K}8LHEP`y8B2lFFWn+rdZMPvvW}m1so}WtuP2k`qWpDf43`yMpPw=~WQsSz z)KKL<5hsp)H8D+b_>Q8Qz1<^L?_JuT{Y&;Dx`}4*@>^lm;nWz=jGjFKcAC#D5Ay`Q zR91mN(Oh;>a#azIcO9=%TD`=lW^%4BjET=AOu?b1%gtJfNw3+e_553R@vl~bHC0vV zW6-{T7T}^YwL&0WuJLNe>lNxGE&EP`aE%*%!|==4vZ*@%Gt{Y`fdXrJg?X^+fAP7KY%N_d&jE@=3Vxwm9M*{I#%VhrMQOi%~C)XTp;gAhG|KCJt`hLe2)uqAzi-)Or9_^w7y+2G$db|#gYu|21 z{6EYu{9j^J!Cpsin%#l4@7W)x{$9z&Zxc#y?vV7hx&dYQ&HH`(xcL1jfaRN%q!pvsezF9$vN%r6t~SxoYGt4_F4m{T=(jcCf>^%#Q%!L z2H4cpiG>-hn4zm()$1C4vA*8+Zpg}5#KO;v1DdJs_Of%`7@r>zx$L#*xl5K9p*cpR zaY8kF$b(Vxy-l8eLiayI@40;v@#ZKMf+Ru6EBEtm&xgD>gU7QT0l%}m%2g5@>E>P{ zmG$1VScB2e$i3p=(8@CS7(q|zxveY|~}C|!A~?asrA zY!&lmdZyI*DVAx=`LOJcq`D_}aabjgyq1yaJPPX~o=K+53W<#E=2@~C?PpHo|?YUo`OQ^ieXSDV*A+6ic;a_wK zg{-ezWKt}=;YWfchFDS+A)KY6hSVrEst_ITxYH4aIO0(mSj%G&hzM6=dHkJV8doR zEg^j1y`cPpSU6WI%pfCT>HZ=WBh{E!-LT8(BYB~FoO493^QcDQwlU2ZeO8*4_aBMm zoMwVAl9FJqJW)0Z3Oc3uCh`%~gNMl43Hjm@u+8LvG?DyvL+dVbE>r@+7L~R7GV4D6 z7Z@@a-pSuox~&=(n_oZ#D(Irm1)F1$d?*0+PO{9HiF#R9@@oDXKI0W`YMI|Et2zw) zcDAWUkN67vVI?gkw3w!pO&TR8(*&p{=|BzM92w))7MN=PW}hxg72*4^`bv50sUO76 zcGmKhKEdb(q7mv<#yGFV11We&>?|>Zbj~N8rWu2DEw)60m{9zBjPf>}bn5}Q{38eZ z<0V(FIrEGdcV%lr5)*8zQD^@qrVKd<`(hMXp|*y51e0ozrFpr|`8TZy<9=uLI=DC2 z#Op-Z`crUzY2E!5``4Kn^JOWkeB-ymkE+Q7oHGA7?%^ofIIDEUSnj$eE^;rR&1JOUb4{Lt0-Bv&6*$!%Vx}76c;YmjGu_{a_ZS6{cPva!V=mxoZhqI#KcM{}pGueL~n{i;jOWH%`35KvDv^>J(u|tPrMD??AVDN!4h4^FGG}JtAPyD1RD(0)wtH0UG z$h@nS<>xN)|8vtn-CWF7n&4ZtPUa>G!{DV+YYlDsT}-E1kQty;>sp5d%5s)e z^&(4Lk-IMV1jUacl|VqbR=hUG!rMjN2SAzTBNfCPV)wcSdOK0gRwJtX%&aSikS6*^ zaHL_ymyGQ@!70peg%G0ZSh2)&Cpj+o8m6B%(@q74eGPKO**A=!pWlu1={Bl+<{jJY z=8+r>k%@kaUOc61JT0NpAGdQGQfTVEACtcE03ogcH?g3+x4wf5&&Rn^yS6*v(vm79 zIg%P|t-FKyF85V?&;b(+x;;;KN+0ttA4dl7t$@qB+V}7x8U3zyCa3_J?VC9mgbS~| z+34-(VGH2oTZh|rXI-7VBuiJqb&}xIA{e~c1|E#$>AoK7!SC|-^qjE&0Q#c<(iiq$ z`>#htuJWOJd3xS?GB2vA<{;y6) z3;>U#T^b2Q5ud~Cp4<1<8D1_-Oka-6l_n@;_0np;eY4Ima{;-Us|PNbXnr|F z_uWr6c>34V!wx^e_fQb;GoH}A!8aTG zmy!eP&20CK5Wv<&tlgmGy3@&~=MA2&s11W)t*&}5G`AIy0w;04cM?sE@yJcS9$X#J zj^rm0&ish;5r^~H%G^3JK8Aq(6NY$%y6fZUZZeIMM*SDG@B&&`ysv5z5s8s&_3n9W z1@@IvJ9{E#r5hle4N)(DqAWP(|pv9Q7f^ zVsdDv_J*f0$lyew_d>4V?3Oin2HX z=Z%j7nv4VKTosWV_FL=J_@_uZz1nM?`UIatTQUom9BlJx`m{l+o65r#d6WK3h3{e^ zQLdlKaz*bW30yS!qkO&xClaq@h2bnAXiBkGnQxMNtEKb9AI zyr2Q>(1<+W4-bFssu@&C6SKNW%Wd8CQqoSF5qw)pTvmh$Ad)w5rHfK@w`xD?Tm#kW z+I64<;z&H3S9H@EEEGvMAn~iio%9m2#^i8tz0JF)$^RuTyM3#?@Ar1M(MtElA}2>a zzvsT~ovEZaZM*71?)Ib1L~N{_J(1V1?e`6E=S#sUdT;wd%gZ3({;bQ)+|6&#Y9E5> zah&F|@LOA&KFk04x^=M#d~3B|YjC#mDygVI2F(z8y$v~oV|=uFg3j8Gcdo}Z03H`> zq(5hFwN_*`G+HjYkI4Wi;cuY)x82VdIeD2K2g}|EH!Obdw^RZr*@-XPcfbiYxhITw zNVI-<=sESp4RCFH*%sbglzcZDrHuDq<$LIN7V)|}V7t{R>Ys$fK!ew0kyjQxJWaRr z?kAm2tV{F#HzmK<>cUzz62IH>J2^Z9@4L3j)x2!<&8I;Gk-&&xzght<-;WMphx>MQ zlGWvYopj0h~uOQ``>1_o{7UVW`8C70`CE8W+c;udg#|HK()B#h~8wfi%Wy!`g8 z`Tl&;L@6WtQ<3g>Aj*s1;b@`0xiGGHBDaNw}!~b&H-2spBj=Tj3vMI?2gN#<~nSYwO^?-wWrTY|OmOrN?H(5eIhbDvakGkBBg3C=m9$WE>(G z2Nl)fB}wPw_ZM-T-OG5F1aHwLE|uD&89{}YCgmrHYD!+K6= z1R1Tbta+$u9Gjhu&2Q&^2W%5l+47v+hi||75zPXHpSGKfc)HDPSl2FwnOp);(vL#-IVPcMBCpuTTe2e{b@-gyyNrBEP z35#+x?<^nOgsz zmXEnDbXWOjL`-yH$XtNj8O$HsRm<%2FQp&i<8`=^tKOvIM{XU!7kmaW<;Vp?H&2ey za1L)`4j4?$dg#$j6+q;V=m-E&z2R*pK_+i$mxQFKygA)WBYOdF`UIV4#cT8$ zvnW((KY2QznD!SY4}ou=ts0{EC8d3F6o!tJKkemtwvjy*nd&4c8(3YUe8xQ9Pi1rp z-t8?wz!=s51tW((kOZR}-xMGMO|(I|(llF7m70cl2)#ROdxZ2Dzn6b#~NdTu`Ec1{m06 z-y1|gIX7sHl<30pGx9T2Q$zGMH8uALz91rYER6d7&+^R}m@q{W@NqZ?91yxF2*N+h z;+w?0(F*^R*KTNEdD0>b9N>`<*GD(g?Vpr=v&w z^&J69)b`AF8-auYyxxb8hO-@ROdqJ}=?1TB-EXbnw&S$p%(gtXA!{a%#v1{*i?2~M zN<=_NlcO7Zy+jz;)5wd!u0N|r4R69 z{R*kq zOBy`C=F?SKLCS2F@V+ln23=z*p*@n5@G|idclbZiNpul1ifoY&2P^zyu}+-FsE$o% zp%Ofq)}qw1dcMahU#dra|6@;ONA4+a6C@OBOGnv7B!7C$6c@YNtiNWHaJ;Ij7LItF z(D{_)&JY7NrFm2RuV$kFC`o;N%G|Gqpq^S%{gA;yL*6*6jYJ7|mAZgB3a2@A9Wsw*@{dEprO<=Cz>$F5!U)%@H$(NMnL4OR z@}zl&4mYR3S@JN~ScY}L_?ppL$-?HJTyK>I|0lOE^lqhW8pm#XFiBzH( zb;k}dHYO)4jOs8Y7G@*fejyb0l0LI^O$9!stgrxxJ!oQnMl9?18QkZzS-oHIAQ|^9 zqzogoLt1S-i27kC1D`)v@e+c-r!6HgTmw6l0gd=eX;Zr978cAk5S`S!I3H0vV};f? z&q!*6>Z}As`SSWFqFm|D3VQI{>#I-gimrh{x;LzODS#4rH)taI88vuQN^<3Leu~CX zfS|h1GVosOk6G)pHgO6yK%K|fq8*nx8V|F1`sd=Ki9)ql1npxBevx6uAQ>?~0As~S ziRA2P)&022xrn-}4LER|ifjHm%*5s2xe(hBJNwtgtz{-%0uK`t6JK9FfZ^buS#?su zcFyu(^g*1;j5F8-26JO3jU4@Xzyy}|w~}Aw#F%tglpY{6^&eTzPw59PWrz4SFm?ExyM-BR zl{oz1+LpnM`n&4uk(~s5*TWM$?MOXQHrw@@v*_Fw<0os$UBKtt+q1ab7aag2X!D+! z2dcNesP=rb*&kHnTLh>&7kGgF50BToS^j{ZfRMo{2X(ak5DeeT%si`-0Rasd8!-~s zef4ZT^B?@N!}Os48L<3$f5p)pa|n+n6Tv@I@EsVxm2B82=3lU6Rv-{$$wjb6t(s)9NR%>t8MOXZbl})w&rf{kZ3NC#zyZ8J zZojhFBmHyRI7b(RKpO@Zy2U+N|7po2Od(M$_XbkyAJ4Ccw%!g{_+L%>qIbG)+zYLg z8EK|*l*Y&FcY0iH#^*f^GuX$CoSux2k84N@wtDF}IehHA7>M{B71IbmMm~iWFOJcpMqtDyfK z{dtDTr2=sP34K|zCbp9RWw}}0fJ;iTc>gPC*|Do@Dv$r$>`wJgp zx&ryR?Pqe3DJ+E4i*D0U@ER4UnEH=T(!?FBm!u8~!crWy0iXo%S5I=)o^09muSJJ>M3*XbFT~PwQ;ht;5qjm^M|HG zh87v*qM(qsrGUa?+>3H<_0-i7;yk}2gGurJXy({fAfgJPo9~CieF~6DV8wP;SI>Y_ zn&uNVfFUr0x-@jxtK4DZqh zLp*+*ogp80<(E=V)vyPUi5=Lr3UCNvcW$p9Ro5C+@YJ9TCdxi~ByLNU$ED<>v@Y&>gVEIP0_uA#m&3#2Acy8|L#Pw|eHF%d^mvw=k zN5ghIwrU=wLj%g}2VuSEu}(ZX(X72(WC=fRa~Byj@Wc)OC4G+yLG10{OG?nn=p#_P zVS+Xu{^a;h+lH9yer;hsJ???L!DS5gf&Pe`Izan7nL9KokD^%jGtyCp9cKJ&HWLe# z#8*u%Gs<11F8VE1ku5Vg1C!&&Ur|%(F+Z2wdGVjgX_M31mWn`WO1Kv&y2{@f@rIO6 zKnXD$kHHjYB>;_iPP42nz48lVv=C5t?@w(2%UkFLJh~nWJ8onv46ivKna&ru9L; zqycDeC~YY6TMT2}HWg>XNm%1==)LlsII-jF99oe@&iz*rdCsrB1CJfNz|Mo;T!BwL=4v$09hbhQRf?o+5)0mKn0RbgXa zX!Qo97`-OZW1F;Sl;@}Yy>iD$)=@k_fCN$YJG=HPlvvYAZHg$SJP>fl~SlP+y zWmN6^3=1O@lPy{SumAg5Z9=QutQu%0cg?bamRR6Ukga7LDH{f&I(n8^7TExk?6C`{K0&KQgyp4=J zeSOcaKrckm%kOh!=0VEHWDo509LeM`fi5c?M#h^Su5g;R1vWUl*%{4( zbNM|7@86iFsx&?W!xgeyr>2?G2KvU5W%l89Yd6ylABT(m?6<<}d|wneIGjtBNUbx+ z|IL>`&S&}saypF`iYW&UO#(kgEiF2>%GcVY0KEPeC@Lw6P`zzSszth4k$_&?RuQtJ zN{hVr^%=iw;-z^d|JMiImJ6Q~%KV={*Kgm^eO{gOpY{mXCtIlz?Aj0jez(E)LXVdS zE#SYu?EJ2(Dae7DPVcXokfS2lcY!iXd-#_pAX(Ji&**9MWKl>$s;fw+T z)Xw0QM9=MX8p?AQJJXxIUd5`vQw*NS!Ny6Ugc_q-J%O_i8{^i%dV zUIW0FRf*Q~taEgDq6w%DG3`A5W_}KyGg!tT>a^^`UmLrom+DAozUcO;W__)`!#>gqdew|{%I$?%EoMucl zyns9>t68xN!wC5V)nZGfNIv3`gNn>dHZQQV28WP%Qw?|ibDJAZfh!Tpq3D8spd(G& zf46WLx$#E7fjAHr4vH+ioGK&Nj>_B+X<=*vOh-YsFe^>T1~;MFq9*xQ{-h9+?40H^ zb3OO--)@R?A?;%`*#85R|FXG6uZ{bN+bwyn`ELz3%xurOIw3pap_}%T4FIPX#K)Bw zx#loN8h@!vR2@&iWCVIvwnU z$}5MMDw*2&!4GkDL7xDfHxWk?M{fLy#YJ>uP*x$E3^-zcLOuB*Fy5Q~Bo#4FDWk4lUzI_i zYA5-X%dy)}40eztEjTInMdc<*>Ln20^uPLIRgS;jxFe-xY#)J`+IiL6aq zzJ>)<6P`^f{2hLkIQD#AP&?0wXB&@zxW@_ej;Mc~f$RyCOikC-xA>AeN`R?CRa4ko zfsrE^>r_|^4eC1klKhQ#^6>2C%}-rj4#F+F+vMkF3OV0HB#$!BT_o}fco11?{S^*< zMvbHqbuWfwIK&<&)9eavjA9fZ`BPoJir!_KZ-#*7kmy7g20$iFi6Ye-vsML%dVEbJ z|0o3b7M20f0wT+DJSyYlWme)7Q?PxL61T*oWJ^`oMoOz&+4$?hh5|29E~W^}shuqZ zS2yqpUIbP_gZ^s-mcT8rwzl@c%NH_`(xr6V2d6krP(#J{2ur({QwiyoJPp!e0RL9I z@Y34Z2nntIm?qR3Xswf<8Lphnv|D;R=u>_n9?(?8F5}95%FoI=!O3l4gsfCtt&js3 zk`Lu{C*wo9R;R?w0~D&F>&Ya9;~CtrA2^8S+G^`ezH5pv#zt1`Lw$ix;ISwo6I0`G zG@-(QJGs-^&gW0ikU15XPviP?2nI?gvM6V(P{HWH`e^kS994r5QidQ28TtO~RIabH z{fi27STK|(`e6;F(9(kxIMZ$P8V7YLRAKmEYNUOGFf4GTpa4l$X_?W55O6S8ktbyK z^zQks8Gmncb8~TVQcI%!guRQC%im#xZdD@{nOV`jt?}PKuQ@`u<+M`f%?4#Zd)qx5 zj-&VKL?nqNuA~RytB(J~wQpd*gQG;v?UzBY4X{DAhT~=eqO29zeh&(e; zZZ(wzpW^oidfxUv)UkSf|K-1e0GGuxA5V}Z)BYCcE_Au`a%=u{(*M-x{{;E~r4laW zX8A#gXf&cux$9(TfQrxYP(FlUt&J&E!o}4j@t%>nTm1rvBNe!Xz&%U4C-2L)9Z)-q zW0cjWGVz^WJ3CvD1c6de=a31ZiznV_;(DL}(Q?`5=7&r_Y)5K*0m^9-y5^+|z7Le7 z{2r%5!0=5Lue($ONT*ZVw8L1~{vUk)()04FO8OLhkXj9Jc#KW2Md|gr+@%3`d^l1( zucv>E7h2t4be!+Xusc?{OhhG^MKpe7!7E`c@&6*!TNklO^xz3cW{R zQPHRU<4^#2H;WCqg4^-X8;kt+i*)pO3^8JX>vag$XTQ;nfJ*(CH9lTq3ti{2cZbK# zy{wqe-(q$;9o!1!zzz6n{&Cy`nWDLoLl?PE5w99|dK|Fmeu~cbReJZ4WV5(%tZgyk7%&}Uh@a|;)v`$#PxNbCqHhBc>Vp6!(%M6 zRwS`xeznu)yq(x8Qy|Xy;JQ3{1bu>F?LJotFI{c3-Se|Ln~zq9A87vIbnmKs`{VSZ z-27yv=XJXZY@L5?AxW0e>Ucu}c)W)!{+lMcdE*yceCX@w@x8Er-x#lWUcQgB7MGJ> zi4`TY+|Zy;g$@sNL?*k8d_dg-@Xc z${yzCCw^_J?RK1;%uoRvt^5=8RyrFR%}q6eH|KcHKe154u5XYDOx(d}1(KE!^L)oV zjxtMD{HQ}b=*#+!fwfx&gWVAEL|IPrV%5DpN~=8#G#OXSOE#j&FLVQrIo>~*hexCl z6N0oH^(4Hf%d%|GE1`Do&#j#?>aLNa#0zBkQ*&~NCKNxQfzZV|Rds``liuq9EDBcz zQc_Z>f-Gg)?}&qY3u{a?c{cdN`-55((YD_ZkwPi1i9h4uNEOzPMRusF?llVeVn%y# z_Ckzl3`P}QZD2nc4~+%N$n?_FGoy!6K%AWvi9|M6JLOkU0e^v>@24i=mmy{h+>6W2 zDQW6olOuNvx+n0IP*CroMg9DCky+k`==OMBs`0hF4JEpx5xtJxk3cFm zh7UZnd7F)PKPDL>(^Ow|?WNhx1|q<8{)>(@{c8;dV#drl(BW!57PV4W`0>_7LLwKQ zRhSL+i>>aD{0#h#C7ynpVd7}V40$T#{=UqV&q{xWE&i1d&?3?x-{j5*`ADqLKuR6e za!HEfQ~sq}(Eu#=#-p-l67lZ_AG!um8L`1|qItZR12O~MKUPS@7&E^YyWMdv&4j)) z>PeDJYJdCNo=e=jWr$8d$lOJ$N19NnD1k^jv2Gmx6_|=WlbG;Q->vH{SGg0W8*MkNfZ z(Iaj5v%QczL~m|PfLL6A1Z5O0B+AqYq*r`id(durl9~*YF(FK`O2H}*44l?H4o29W zO#2MgQ;6qzq3)-oIsA4KM>f}2>7+2r$Mghs0nOv8trNFLW}kS(|AU;Doe;qJ9VQU4 zx7k9x;l>MsC;$D+?&IG*vz@rICp_h6_F+0Wi4~~c7TYoG!<-H7M#gN6+c@lDE&g05 zBAFE~Js#6u7CM#?A+o%*?}UJ#JSdE8i(caQVfcTs6p8>}K!)1CLPvJyFzOfs0JQb{ zqPO)i&Qr1Y2S0=mL3VXgDh*l}zv*uS80Po7zD)D&p*bHzXGI8);nRqgIe<8ZMPnwI zCfHGnIy*c6G`UzhTpmv8?(OYmm1LF_T=)K!Yn`vtq9r#cGdzOdiz)sQcTUzE{o^~L z$&LpM$_`-AF+&bobv_R1=3ib%qy-Uvw>r|MPrvf?_oxv>_>5I<3UkrT;=gPZ=I%iu zQYjyRfc8L^%qFd0A3wFqb0(g&sGaKePk)MLzCZaTfpeoD<2{sp%j~0QrVwe9siA3APIRE>ab5Ke^>m6`pQK};^fV%OIR9yoYgR>ZNCy;=B;%uxQm8BvY`Bthr`tyn)rq-=Y4(8t&$&=DD+EY~GV(Rx|We3E;W$MG> zoCBxXLM^m`nz}YT|~+Fvc&5EALAg-)f$>+BWnE=a3fgb|s#lPQYro@OPN?lDUD?vvNNih7TR$EEhLjR*2zm$oMs^~vPnoo(*`FtX0w?wudAXtqQ?bRV)qTfp9pau6>W1j2k&!ww)yYoE{TQM z8Q~{vz@LTkzQ8;OsxOf^JDQ7Mjoaki&Ap5rewTI@!uOz|-2!@VZ-q9Wb{%fVO8v78 zlwkps18-NE<(7U`b!An)V_DbN>+ZnU)Gy2xb!BIe_XMdWbrc2v_YSfDq3J4v;@G?(PsQxVyV+fZ&4%4ekyB1`lq*o!~CP9fAjUx7YWpdR0@@{Gf(DbkEsqFWE=U zO6zswRRoeroE0!QZ6eHA%82DB#48F*tXYVyy~u4IM@x4`yFKfjFKgxQx7dhs6*5}x z1NwK~PGc~qO7HsjFt^{F2E;D>iBpJ&G-?+QCl#nYm8F%>f7dt5Ntt0OZX#hsVg}@s zM!YyNr^@)LYpvJs;^qzb4rI`O=MPHQ+Zwf6EY^eAxw!cG{`CFOFgC`XU|VZEfcyI* zjT>t^c2}aWuQNHW2o&T`Fg;00quWVQFbDyz4}~J-yL9r08?S5>S&W#uq@-sSF{x=< zp?!}A%_2o#2M16#OPi}oE5Dh)e?a5v#wQ{nkS)Th?M;&XX?nYIT4Xg(M)nl^(GEH= zl_cI_seuTTH1aU)EP^b9(;t<~cX3r)cy7`P$#)AS74Bn4i5@+(?(7MNvMh;3y;o6D zf$p9lN>>;w&(u!~xV{~#Z&fTWCt7e=N>wg-@^Q)x5>->nF#C~3x_Z2XYkkmVmlhIZ zoGwozEd$R`G(dx6&_wd9Qg3g&;IWqH*uy6ClaP>^L7G*2M`;|7!J>l~G01+Ekoccm zNirOql+?i9n2vpnBr^4S`SsEAkUXQ^u|9MVxvL>HeNpVh80fG5fwy}@eZ=ygrG_~` zdP%l8nDouK4ymo(iat=OJXu;R#`pzXsne>4 zzHfs37sZm~bhaD;zoSxl-?a|+0Pt8;VQ#08kWj7nn742>8|tc3!VX=(31IThSe0FY4PFAjc zt+ZhNb64KnlnvmlOTAk%M;=VmxJaiWq9}Bp2 zK7szKR{d*Qu+ zXK&o(zf;Y>U0wdi9cGq`!{vUCH&@t;&{wzKPVOMPtGI0@`HP^_ZER{S9_}5BH_UyvZyc37R-H z$PO3rIi;wrp`I&J6OX7qwo?^%cQ6b+Gl0?3CKY3qgaHX8?-u-At0@!S*!zm~9%88D zIimYFjDB}x|DkeT>zwm(BD$?W7}@YX;Yq~s(hbB1-|>fA8NWx$?IP_FB&vrE0h<@H zu0N@+{ZUm_g92q%?|nAIj0OePr7hU#$@$wZujgzSl(>%Xy~Ud6Jh}#7mCCHWYqZe* zvvl=TQfLm(s$25=e=k5OBnR90Ay`X>rAfRXiFILAY8>Hl&+2H=#(UWpQTMvRJGVRj zXfcJ=r~sDcCL6v0&ze#c6)(Sd*Ja+N%jWvswFDAIG%`7pda)iK2-X*FSCp>Y&rOBmwzXKvge# zThrz!7cmqC1s*P`^F$qG%7|IS*b<__Unl4XC4J76&VY%tfT7@g!m?28la@wbPJ~fn zI9RiSn96GC{RqK09KTm1Zc*@&F2KWn;U8-v8AAGDO^*LFL>Cw(k2}vTu^5Cg_j{UK zi5FE|mNQkpWVWq3Jv~*Daw{@2a-+*wURI2GpD=iCjWR^Fm;Xzg1oy-rcP`U{IgHr^ zvTi6oG3X3~5XeEMmG@7|adH}BKE`_XNxm;37>%{?_g$>{fA&~a#o@r{JQjRgqJ}g? zfiWY|h>{0yWN*EozG-hadc7um;sg|P+=yD>MEF+d`ISiVq9hzK57D{}3M#P$rQu!g zVU#_;x^`+kxq}Dt-}1vm5i6(V#4h=IVf)srahX;$tFxbEaFL6%3-a1gQ8S0)5{)o8 zt;OYw+i@o9i`{OgO<^A-0JkXo>TQY`(FxgB8TYX4)@aN$`z8a+6fK`Th$e-PoXj!F zN9E|OHCBfYMjXfkr`Qeen?+h;5eY#X;t6Dy!qJ?{&#S0UNT6%_Dpe5onFjqRw#5&t z*~7Cwj)lYJ8<-}DksdbgB)SzK8k7M16NHYjN9YDig2$V89Zifh4J3bJ6lmA_tQUBTKu;P%;UY z2$c_kTy*`Ga>#`o?Ng)GlH}$$1dyg9%rw5ai_0WhpQw}&0VELv3q5=qGIJ=?fES?x2@?suo&OV9~L(tsYMVKJTkvGf+Nt zw0PyAaVdTl)RBUoQXYa0Jc$8lGjq7R6>ofe+!={5Hd^j^{*42RVX5_a`9I86Ggeye z7%@~L;(PA7?1Jj2+xYZfy?34zdB0&v)sQM{x~%O4Id@*a;N||NS}g(=(bQD6(qXk( zm8CNudO2DSFMoJhBi!Y-MWm?6{TqX(rRm)FsZr;>Vt0*MuL*qwZ4*c;tYxt6WjEUg zlvj0HOgx?Hu;wQDMcKlWZoYPy!2^&3J>aE{`Jm}8j%78syxLa3)vo@hO-iax&1MS< z(Dl9^ttRIR#-V}22$q_5Of6<-CJgTH?>E&8bphDbJN$QGU@tx}Pzq7ZJv@td&9!UV z-L|h-sK>OlxM}aMY7(MTwb}AKGmuQz^#)t7fx+YtV6JPFsD;W+m)lX>$w$9=W=TH@ z!Md7iLxJ0g#oRngWpa$Qww=Fs*;C^lTF*&562YASe^!-drsndvatko>z{dj6gJsjz z;M-7Bw#p)JLwcGP)oa1?Q)q0~y-u(r``$gQk;C@u#tAz?bSsOMr4Kg40N zCfi`SwzZ?+)5oY%MJi~^sjl?V(F%koCps)H00H*){0i5W0=5w~o8(!~Z@V~Md z-R7vMqJsM2);3ccU?1k{Itt3)PI>+LxrEAcDvt->f<-3BP&T`k<#?(pJ7|eVHn01m z&pTh)f?qdBsm8-^D>-cfI&!j7Jb%wLIK-*y1 z%eE$kxLkieu+pXt!Y4fwQ4_()DT%pfPpaf&1A)xjxFS zX6GWPLO7HbT%)^y=(SQx!^_-Nljfo__i66(1gs zL?8TaUGR3iU2(ua(kZC5EsKW=_{}~p>g|mttq32u$Hbc>2v)R%g%8em5d4s)GY8%M zw>z6HzKd-h8MqOYiM}9wf}@Hu2Ldv(j7;L4&2_iB>aM1`%82i`^UXRW=$b*v>t}a%k|jLpXt579 z8HWYc{~#tkW}1u0uOh9>zk?02$R)al*FE28yXw zL4OrHGMz_;769GcxrspE;fS*uZ~3%4tfpCwSjj2P{!~a;cjG{U#w}IIXhA%2EWCNZ zGWVXlZm<$Il>Cmt+Y47KFvRBVZt!Meq+Bb0Bk+iZoNe^FO$%GFW?VO7mt3Sd%E(juMym7;gg?ey*_ zM_}2h&e10MRULJwg|NsoIR6cC1}UpS!Z^@F>@wr(wANgR$LbVk$H&GLiq*AOT=C=L zjU1#X1(^|OU!qU@d#)*jCNH|IzIP&f-xMYqs#&Dx6^0bxAdaTsh&vNs`Mk&Ea zs&X1Og#hx&DLGNF`fi@h*^;hnY7qM*{!XTHnRIL4T$0vU9AZw!y)+0^Mlmdy_>tIo zgx>HE9C!NTfc>g<5?!p?CbyCV4hIPRFS|7R3qhcj9yT^M@CXOJb|x9S(vx_cYZ*sd7>(x}TT=N1laXk}ZS*kCTF2Qz2&RAG9s4H# zOyJSMuGLcKwS64=lU$~W#mDQm-c z>O+*F3`x-BwAI7iF{BCsJ90_$c?N4o;fgm3RmRKL2i79plkO3(X2?ahyA7JJQ3@nZ1|no!f*lU zgdeSMcg`IIx7qLkib4WNOnS{8?&8U8cpu8Vcbfg+X`HaQc2*N1XJkCKv&$j?qx)S% z5lYrHmpoUniLBKgFBk9cm2^F#S~UPXfxJ8;)ZdGt8o4_h&{~HJ&4ZTLSQE^(uT4$@ zbw)?u* zIAdDQ;Tr6E+76DqObqH;?W&Ga_j%lwBf$FrDyAJ0_I*!HH-39IHE!`c)F+^?dVZ1` zYLeI*&Txt!O(w9QizjpZdd@y!DrZY$mjl&ZheIU3RcclA!SCW5Po?g`e0{#N+x!s= z9Gvk|yE~Bwrg&Sm37^Z_j+yS^9Dw{j;-mtkj*iFYVu1#}1Arc>?ZwLda7B?{-iC=* zYyj&F$;lxmZqYDSTLt#$PtXfX>svLyUsV0G@yT9~#y;GO+ybPpvy0rouyfo}=soP< z{mF5s_eu1J-5yQG$7Q+zpRJ;IO;y#D>vBy_7hpbvCIP?V6aWh=%56VWL>NW@Xf?fN zE#xj9wo;SP`+0wUaNmlhipdX_*>VFFeQjjH)j(3Y-+Ta+_X%+szg-ZbI2hcc>Mxe4 za>S7M!~6QyM0UmufI+;{5Z%<=RDx^JWz}-3m=s!Yasg<-!;eby&x@n3ojVuIyJm^V+ZMv^xNT7I?9~&GA3hW4u|0 z!y(9Y1N+&8m8oWtU`c3LV=={)@SI1$)7pHzvq+yzm3? z6u(dWe$NH{E&SkrUV&a8gu%%nEWo*DqOQNZu;KDFr*^y8bcYW5*XBXWIdlh7-E8^U zR6Xwkp~~%ID5~$>`UeiUCR31SJU&|e)k3|0jjLU=jyn;rq!b%)wMBNeLDCyM&!hC5 z`!t;dsF9F2bw=9i)eA2*7w^x)e!va-{8g{c=lHIq4iCHO)K`Eo_I9o7ZF!4#=I|p( zRi4*jx!G;Gjif!t@3#3pujxa+Y6$plA=jUua}6OL1Ca5!CjOSs$3MoIbX-g{)5U)t zO<~^t7SR*5s*qMCg){RkPOXm-iA#;mby%so_~Anc#>X~;ddKJ6$$Efy>Tg4f-~87`9IxVT^!u03smEKjUL4AMy5`R^~7fVcjLZ#3d_I z!#~0QetBAz^qguDveo;Xs7Pony67&>Fy7lO5O8Hzu7cem>?kMyzcevL~<{UGfqgGkgG7NGBm+K^aI_$)M3NdpCNy9Z1;;pgPV^g zT8?ehNg=ZqTL!`KTZkDl`T(Ah8b_N?Ws1Y#xr)9Z!9+LI^nXG8_d1Xk63nO5}%CN~h5?c^AujpAzaT z<|do7C={-$v})4%6b=XJ;o?0jPR@$GO#9HU;Rw_{{=YP;_u@srR2ijk81Q`QS6#Zd z+8k{(cRtGWF=r?e6cZrALI;U*W;8ggy4VL3c2SSS4J(iY?(l)oVK^K;I+qE!2}dZ# zZf?GyI;{(TFglD=Xr~6HPzr`11GeKagGPZorZ6S7-+?=K{eTXE{BI>RrT%aIpeF!*5v50x~lahvdIPoC64Vl;mg6E@Fcj5%4oJdZF z3p(Mvo6(mR7hw%g>=X|ivR-LJ?SH?&kYc@3m7>U1Cf{=mXA z#_3Oryi`-1%boMZ?3o=EHt85yBT-c@Ei8u+<1zLwanR_R?Hk6Fe%PxHOwp+xZ**c+ zT(sJV5H$7cF{gMC+gbvPi&14(Xope*lggMfq>(^7sG$iwN-*e64jQpXnbxZdH{%Vd z%0yw9sPGIJ`(dm!5bxR*YA6)!d^LIcMizy|+wU*F@`v~qWp0`LamBWo)m%OH1sS{4 zITYll)@TZGpvxY$i!_^d#jn|d)nLuh#P^Y$81TqLrhQy)eB<{sez5eA`()U2-NBnW{*i5d z0>=~6BCl4(pVfWW>FZ3z_-jc2=&DCz33GVhADO;4!Yyy^ch|);$Orx`#%X_q#EyC@ zpBN|IT}!gs#8bY78C&3mLlu(HJM3*KwK9}(mdo&$yyLL{iqbbm z5I_@}`|znx#2)9;;UVb;__Zwi>DAR>j9B`foH^@xyVGO&!6Mn%=p%!g9X-lVm?Rf( zQL>uPxF-H1V&<7jpz^x%NkC!n->9c$3a&>F(TF?=tWAYK@StLg=(cM9^ZC}MQ@Nt4 zX~=3(ZB`l)ndK57_B_4o)UB`YL0wRv;XA7Wa-&BF#0IGq?oN)tt9ZrSo1Krd~@ zWwqWJ@qs)-LM|$I^T3AxN$3t1L=2qj+jN!So3)4IUS1mPU?995+7B1%7aB38=7(iGjp>a+HS2E7Uj;1fV9MY9?LaKU93B# zjkDNn^VW(rWWbD90eFc0z0kcx07ejHr31QvG$kBoL8;jf_uHz6EZ%D0Z`+9Zmg`SL$Al|Q_JYn2g^L#<_nVJs zMf$dST6%i!F1A({v+88o$70Uy0XKJl8YFIP_?#ZjTFPoKBQG0vVw6}TTX-~w|yL%;e_k7-ee z$mJq@A@2B+zbVrxSbbVx0kf<_z9vWN?0}DWDCUcI4^(srETTGV9=6Gv53J?^nS5E{_fBIQxoc5*N zFwZa7`0USVDKuZJZ!1~}xB*~6L}V?{vrb9d{|Zv6Zfk*Cjbo|TXlnY`Pjm*SLo9o{ zRcBAP`}W;+692){-%x}LOvR-Jn$##uAze(EvcwN_F!*;(p2R_3qutUsmpbQ~5Gcwn zO-K`B<9ipVXBhcYA}Q{XOYZ3 z9}#4Mj@`g&%|X{T5V!kr3J|%_dSOHO=zu$ zc1r+H4gq#BX&I&2{^590#Pa(w8LEsyzu+Gq2My2giq4iqZJ>izLj<}-XSvg#i*yl( z!{+>?QlR?i^)+WTKfzm|g2N1X#pxGCGqER&Ew^OLgUsu44jF%cgYR!0`$!!XmoC6m zm_ir^1>zjf7)P{>^=RoWQ9CqDfZHS`N&U?vGOSlHWj_C0ddq#Ff~ZGObn48DQR;*J zvrBc-f%RuzzXJJ{uzYRXLQs-2D+gw<8ReMXtSXHccmKqb~N3dr>WVc7W zbon7fkc$tCorob0S20LsXBMc8YAI`|B}|N^QLd&Gsmgq3WR}CNL!D1L^%%FtBaH+5`?F9~wRw?N_D9VVQ^lJFYf;)*wtBolRBhoO-azoM%j! zWggIh__Yi~ydnz+%9p97Yckrk%RgZU5FC6bN)KKsEtV|)Bv^J7T4$*`heiZW3EPIi z0Q?3>XEhQm%p(K`YrpE@9S(s~9WsmCu_2r<4U?qLml|>5kx8mB3}eq{t(V^k!9Y&Y znCuT=9f*qR4kadbmYh&Mll2i z#m5Ze^P$Q0`O5-BUo2E{J6aG?k3Nxni1pd)`uBb2r^bjnjk3Vt2|J%yFE^3RcX&i3 zEG&=^+c-I!AqNka&-p6LHX91Cmo6jhTrz;z-L5gIK|Anvnq!9yyfGkWFr5UqJMR;V$dp6f=u zbZux+lg$ap)ah}nn$fJLq575}D-D9R1R%L1`;my;seKwiIRCTwt+2e!1z;rRd186n z+3xSx2k|no0dq>($mPk-YbWpOilBLDYo|>y0ifha7S!5s1B7`XNd@r_fI8RJMXslR zeK6m_#Y?v+NybAy2z^nOG~xx3e~cmwV|auD1^VD5$?_rqenPg6hiiyP=Tm!tD!&%L z89wdITU$G8`H+*F$wr5JZm})kq^LF=y`-!gm?s`mE=dY9&2hxPSM>OFVdOmd{Or2) zZdxrLbiu(~pKq%#R!L153-}kelUy4-%1fi}Za07_#xastfG7nKI=$Kj^oW0LW_pK2 z;`sKMV2Rl^XVxaa_v2!~_H&kkTv~mnnsZ8g28=!#CLa{qW20^aRj?)*aH`TP(^RRyL9lX}N*+uL2 z=c1G<>#ONC*X`5-WIXRwg(BC|N)s~ZKTU{T<3NU;jasCcO%MFIT~^yJ0TN}%mUu%} z)7N*uy*fPkllwuoTb!8xC9H--)YSKsO(X!Xb>GDI?JS;X#W&bt5YiJQ*bMLTYV(ALOMx?bd*RYuby1VH2^(WOgqj{$jw{66NHl zjwTQk;6Bd-2LaLjRm$q5ac^~wKMqf^>%tXn>3kXc!Wl`BHP9N6RrtYpSp3XkV#<$p zYfT6ZF+USNWgFMe@adklpUM@cZ9Ls@Yoep-pf!UkTlilPsE9lJhmO6|=Fa{*xp)Kt z@^aeV?uyx6b{`@<$*Ohhw!st>7h62ok>-F#>bTD@b@2NoIfHLX%jOKb1chL#`6P3` z=a(RB{7kc-JNLQ;Z7N>q`!TU^t&`vi{-Sb2K&Ic`7^<2_9nr6*Voi?Eh#k;pxO}Zi zMd|Cc-%$3ucanE^AB)qz9V`=;Qtb${TefDR!N8=G?X*K@Ug_vBn0WpLTK&uz)a z;Tm%#4yQNkAdgN9BKt{atc@00yXF0FpeH7u3$KppN?YAT(tQgB6I(Sr4mQv(1)P4| z&A(U*AHvs^DoZOyKV+vVk^U)lkx^gTE5>WXe3C!xGmH|9xSKpuNl0sL&S%1)bf^(( za@cPi>3PgP3WNN65F~VjtC$400elpAm}#3imy`dozxJyIDK?qXfd%kYf}%2a2w%GK z6GLH0gXORCGkRfQbhafiisvn(?M*Xlmso~4K&Z2l9!PbSf#9`q3I_4a>R`&kF+LS) zEFjNHj2tRXAzl_7ZxKUfBr)sO2by%itWPSaG0Jzb_|7vTigg}_vW;>tP8g-nJgyeD zTtF$CSHSs?lY<_|Ws{F@+$A;&R5aHa(*l7vqmabuapnK;xA9v2W?+$|v_W4^dL$=M zHiI}<>QZqsD$|NrM82EvmafK_o|xIa?ceiXF4#?9^_()=7z|JzXJ`n9ywNwAu0q+E z9o&p1k)3%q@=*z~!VuL_u|KVbq%=LgqwW9Nq|5e`g1F@o&Cp>c-J$*l3K+_AZOK20 z{lS?2_+!WU<5Yd+NErj*14(o~lxd1hD@4MfA0>B1Cfm2WPq(eAr{L zwC5*Bu1ASCyZ9W3Z8YAgHdxSTw`*&M0iV-V$zX5atn~~L!e3qJnqJARd zcbZe}MR$gjq74Ls@VZFtkG(HXd37iWA8rY9J`dgV9%TIBVm-Jj&lnvGz0rqf&{CA% zZBgPu9j?r&r*>~L5j{OYq-ZM++UFsJfT2U|97RQqX6b2ST*}qT)yC?IOG=VQsA*C- zXbV1L4U!BJ8!gi3qw{qeHZsQh?D4!*tI~k+cVgIkk<$ILRv(~B{@%`oV41#U5K)+i zN;f&BwAAT#2Z55>I>xc{03#FYE;|yV(N;zXIPA#sj4|n{Qj|P!w_cNx21z%D<0t&~ z>JT>HL7Ek&xZ*4-eDDV$SPBaL*%fXkgm#Qd_MbdynH0o<68eSxh-yNL-3{Ux6|3Cb zZkHRpzPnyaOjYkU@$X|2o$vR=Z=>(SL5ytfXb!-uJ{ue3%)yP5#x-#eMDEXKL=dSt znyrT~4eAcy9cls`YMNTSn%cZTAOXnk};Ps=Z8_k zpt@x=3CV~in|7zCp(go@^!Yw!Lx`iLE%>N6I;>3Y9Ml2?h$nTBbeE58bf-%_&PTO$ zb@dI^d-!!y0m*yaC_RnEWOJrXoyOFxFmYC-3YmvOHL=KILVIpTBS>@InNQ-CRq*={ zY9m|CZ=x`bGi7Jh3J#|vrwZCsa8c@Lr@ya9Gx%BOxU1^Q^GjPQ^YZwxVgbcreV?_W zZQ`8;_Pe*17Fwv36+mSq%8HqpAsq>i;^fITfI!mV)N31Ue!z?X)jb+F^j!}&E^Lqn zgfYte1;RR!xF^NDJ@q|#)7R%>`S(|oHtW3iCN@^EGKRRv>8lt!J|PLga2)Kbsu?}1 zz4)+&!Ts<1yBerKjx^;G=+-3&*3$GBUX)_~MXgOV%L@1R{$PZj^~Cl#i~AciT8**< zxo@b5Sz-CJT4SrZerE(@^6Mm|KQH@F1%s*NURPp)5tIbwYQcYIzT4Q!F|%ocVAV%b z`fSht$}*;=6%d9vBU?JYOPZX=0yOX&VDyE=1_O@A-Af@hUG1aJX8$TXY@mI^N|_OQ zHcmQW+BH~Q;DHeZ=%5@wHb2*YAL8>Y_K+=mHK$VAtmFO&Ju)k|JcQ#_wC`DoLJi^< zWjeiLcHb%nF5Oiz>lOU&H_&cJcpo*=Iqtl+2nV9`Q8*5Q9+C?3AaWkAS@405f4&BYHQ2eA*vz27yL z**Xaox$F!+HGaJW-(T)DtF%Akk9Tyih&=1vfsYp|dmxlyfY|l)&tj7wg%wTQc49R3 z_IOc7LH;&ygg-t$J{FjU`t+E%J6HL94eCY>)o-$|GHl}h7!Bmm6_s!9P2R7@wjAG$ z6GC^R+k=rPU)pm@q22yO3w zt>RA@^OSBi8`)oL^2&Jdi1N#O%f&4c!%-b)sCDJJ^vpR|N9Astkyk28?g3KCi0eRl zDb(QY^=ku)G%s6beDf2=HM6%ky*e}T&@}yCl&2v--H?v$qwIjH(RsPI1&dns-Rtfm zIYlp5)dKfRg&H!1eV=bU^+zvMor9jspyF(QKl>!{KKmpr1C*uv9oArwYQZrf=*y?0 zMDi(7)$giNLnsRLSE0+2j8VPiP|y&lnE*>b?&pC{Q5_^6lNXG$$h7wNUt*6rJSL@3mb;fulVICRt=32>lo^5H*Te=)xp9);KRU;1gt^C)2j z{4(NHMMNw61SzD%tZR2uf(g_VaL`Muwk@_bN0COXWk%srP~(jTqvuiaK=BjD^(9Kc zvz|v`K!@;=7X=v(;9@GFGWg`kdF=;QNs|xg% zuE=>mYQ;%dyK6fY8AkKd(DVOn^#PZT?7o$M&ZV-I>k^^~hUN3bhoPw7wadw;K^Bj% zCTgo*Z2}fh;XKkxl%D_|Y9csja)3F2HOv=ewqlG7q;!()?|(d>+oj%Ft99TOx0j%1 zNC5MG%vF!M0<{#HiLY@EVScB#aVF4#L`UQYA{QdQL9fw6r|Vh>-SzjtLw|2wx@MV_=Flgjr?n6!0ju2Z1YcT!I1 zKEv-0pMhx2Dyq%f^DB$zh?b4ImnWu&3PCkPrADQQqW~9DoU117*N`OB`OH@dVcUg} zJm}n^1sc%=aw#OMko*K3XVLF$UHxv1RkoSMU-7dsi11?V&UW}@%}W=dkR}+HG31Dx z`JF|5V{v3Z;pd+T;>4)))Ri*}-PV`eoON-Miw0qcOvOjUsuc^^ND!TIdn|gCFEY;f2#KF#+@$(;ko2wMKmj`eMsNM73KhTChnzhd5bctMqTB=j5 z4;HvjWG_FSx2hm3Z-NN9 z&lzR#0XMQ$_d&oQb`WH|c;*k9YJ?lu)ZYFf{r&viM+9j^RN+|u<(FgM4!;ULYgxc<>6$Tds6c)Z@JWJNJlt8KM=5;)b{{CcfE#Z=Lagl2hn_fyS=#o~5F&{0pegm! zxG4D#gk*~u@Ay$xezQq79P8VqKVnOAimSzSea= z8|=(%5n-=^F!JV7gCv%U!zxg$5oNBZ5}~~byEY-y?j)=G87Li4`2##zJ-*=!fVJxL zXCT4|5d>FSOe{DE=30+uWNAn-tiL_f1M~>UdHbO-?khh>B8Pq{Ao==5~x=ci&?z(ZQsC(*Oa2 zbCfw;P+&$n9`#3h3Qa0c9|YmYmkLSFBDL7R<}9GBA^MJ*`$2^Bx4Z5hvM=CYfc=DQ z^ZI+La_9S`6YjE3^e|HHofhzD(uEttfxLe;ooyYNmMNqpiB};7)&*#>5{=I5tec@z zhz3EI9LYEPFj7?KB0A-O*Rgd>f7Yl#qXarmg*O}x}mg~f4)p^TM7E;~9OHl$r z#Gb0I1-30Aalj+72~W|jE1f{-4xz?NpC`7eA(;x>pU6r-y>60(?cLfRYSLuYd)ljc zqv1cqGeh4$kQp2OA3~^eKb{f#cELA)n-mtd{qzKO0_Jzd1Z+ql>NR;f&055lAzUM0 zWi>li>2*H!Gu6c0-j&nsP+g66#PuV#NC*wNsE+m`!Xh&oW;o`G%3kkJDCByH8)={q znBN{R%vYcB-L4$N=(wuve-#wa7J6-vCqobEizVVs~L)9!H?1Oidh(tcy}8e&$2bu%uhIPRm{I_SYEGUq5SWf!D#yBbQT0 ze&#Fmb*M36&z_s#^(d*YUZWcwY)(*SpM5h@0M@?-2_2Sp25mAAz4n zhKlN4NHmUU$UcbNJCmD&uTv78`5sxtOht#x0L)bNX8?H z3r%z);B`=qXHvC@kuOmjVz+vjls>~k1Li$FT$+A%rC9YL7v?c&^tS4(uq|5Hl09S< z#zJdoP@p5ePyiu>mMor&{mL(Zr*FWt~%D^IAZ1>4u z!xoX2F=48o%k!v-Biem@j6wML(1vtNoFj)g=91bz8|`v7IOLx7aiHnfRSR0C{?G3@ zdmE}h4JNA2xpZ_R$?e^n8eFD%^HQt zJ8?Uv3N+>E1}M}$bFWcV2pINVbKGAgudzn>N(_aEe}7R%{>m{a`U_+=_Q7#Bil0Ul zk*+vYOIx)ClMKVe*jTi5;bA!QnEaT2i}64e zyNbZ!$3jr%KL$-k&YhvoLLIv9jUH4G)voHy=6tX!@ zxqYf6uziLpwWFXYC~@fq9cgC}Z34!2uEFm;s+GTB8K9~9{P1%J#&jA)Z=)+BB(Jvo zsoSYHzCAA{V|#uOzOM%&lz^@2+wrZ*?$0-X*YTAG8(Q5y$`@DpH=a+O|8O1O`gL^(T5=}iXAhXFS$YhTJmjncls zFMbmZ=~eqlAZG0=7gBsEJN?zx;P!Nc>H`lAC?P@xCeZ9hzAE*q>lF&}`LScgqC@;X zp1$@|G}SraOq3#l2a+KC&o5!=r(i}EE> z3oymM%!Fb;5M=1`OISUkyH3s?rq}}Eh?|wACFe=O5{-Cn_TdZF^Y!VTg6*rY;vyZ^ zZ1G1Xo=>?SNWL~z8@H2y+JG69eidLhH)kI^2uG98X%igwFOSnlF)eq%V1PI2H@oQx z_O-{SLL}pRz-}xQ^KtRu(*YsEUipGOmKDnuqiVEdHSAPEb{p^EoTrBMMQ2)bvZ^2C4llDkw zm!QDILhc*Vm&Q%sTQxw!2amZf{~g+y9qM`zHGaDRi(JFak&<0USFz$ZW#i5qL0|}S zmC+{pKM22T(&xpaqUs-hJot#i%>cQ#sdg|F9 zF0lV6uLFH$nO>V`jUhu^eEb-qhUV;I*M+!$Yc4q|XyEpiWJ;LHZ$nvNLh_!Nm38B) z{x{dPb?R-{GjnXH85Bc@_jdnoo}fy_=|B3?%Kj+@50PpV!kz&MGJyq8W^6x`qT07` z5zWr4kr5;UV|lKd`6&@HR_0NE$)7D=vnu}f<5%i-+SP__o>RSC>?*R&$p@+zYoKuJ);vq56qOZdDWbG1%l*#Yxevb*CDvAMyEm$n6 zq3!s!x^b_wqZ%!8$NsGrW&)-!$PBPl=7Q!la<}>9Qn3{b}3_k?1w60({drKm?KvH@M-ZKRVe zK^0_)M#eCd(Ye)J5itsk8Kg5;5ED@T5f?92IjMSAgn)&ED9y@@$t=^F8f#<<@Prly ziGn~06;WbRd&Uw;Jo;Yrc>)fr2n`W}#lR4twmbCrim&}^8E09oSNi6=uHPl(eYe=QZ=U_ zYS|b5yvF+u3)4L;`@XbpHspd%=EIVz_`}*1$hN5_*`ZToaV-i=b-tfD0h%saZh;~@ zJ|pvJ?IyeiJp*~zf7&^yo7W`Z#KPpTZA(MWY`h1h!p^mWVHUOY39Ya&7y_1WT>k0k zT9B8A2r4caJO~(p28QB5Ft+(7o!%Y;-Y+^gAKy9wcDcqq2L?0d+|0tO^uzi{tkPSa zJt*+9cR#+a4$zNXA6EgE-j6Ee|7g0Zs5+J{IJmpJB)EHUcMI+i+yex6_h7-@2@)V! za0n3G-QC^Y-rSGJ;*Yh4o;f{dS69`p-KIlnYS;?KO&%RB1Aw^RR)XXR8BYr{gov*= z(Oiigx|pVm9c+LePt^l%Omx(6t>l}W90N#QTT%H3i+-wd5_}uP>OAGm4OWp5+=|e$zoqtRJ3%CFY6rk<3k44$f zxvBA|w-oxJPr|Q+C>2e^#8<|T-^)ebnDbr!e9Q3~us;!~0nOWXU`GX`QH>Mmz>gCW zjDF~#$RJzx-Uug;$YJ2;?tDpnHwOPyY_5_2IY||4lB2IU`mYPHxAXORs@PPzT67Gr-JtS zZ%;G(rAJzzQ*!wTY(Lnu?F2CiN3vXzY9tr|wGKWZcCoMI@!=;GpeX)R+1C&ByZgP4 zzwd$pmi=(DaZzSIeKjOn0y$WK%<|3CD5;VaUouFWm?lw7vzE&v@})G?H_R~ESD>XO zK`QrcYtoa((FpN3xxsHRIrF3x>y^GCvysD=*kvxcNgMFUCUF#otYJH zwv&M$ZN8F`Dd`V{N>wq9=q^H^VW=rhPtF`6jILqx5e|j?&5O1Z?HW1exD*St4^DtO;8p6>n02l5%{vx7jw4V54LJi zp`e_`wVq@J4V6dT-7UJ%!3vR${@)8QfwFRYJKw0BJr&$V6?aZ={}mDtM5lGI?Q|VF zZV8&SI=-`iNawvv9*_O*;+noGv)y;QTWRkxIJMfU-1$hIlbGfR!vu+u`qM~zyE12B zeCjkiBVCjVQ)0Sgl(r=&E8_`_2FoEOph&`v>(7e>@LQ1s>oly{_oWkEIL^kMBTyU1Kh{MiD}cgt6{{T$;P;oudYSiF7xee9SuP9IaH zikh05)^=U)vjn|w2NE70K2a38oo2)agGe0%ex~ZI3DhP!q`^z)M$t*E_sTbpXUQrm z_u7=Fo-M`bGR6>b8}dJeVi)Pibog|@0S&$sb#^@W!QP}YDqYRX1)orziP!Bhq8l(f z)*G%wZwtxiwBn8$)a{EE^}q6Z6H~oB9U;(C7nMU`KqfU6 zc@NAie0HF!F8CVHmWs7)xWRq}0biU2g)UZ>4+dEMoB|d4(@&_y64S2qAgBLyUJ;-k z`AkOu{Mm*N3OX*{+i+D?pTPcCi9Id^1azaAd}rH})8IvQ#-~s(6bbya5|dJDO~`ll zv!sNEhGtirEc_nGJLIF98HEI>{t?w+ikU6aQ&q!CLpSn|6=jy$K>|t$mK#!1iG=b= zTXS$>Q;MaZcRwME@VJy8t~lZEXOs}MjPW*3Sr5yp$+@iN$st89S)+EqEcg9U!9sN_ z()5JJkn3XQ?87$&OMXf(giGpsMsOp9Oe17T20;f)Um&E`cf@x#UfD}V#a-+TMmYHV zGw;+E7GMY!%Ur*Q_>47NRdF8XS+vbZ=R?t5GN~& zGPsuv(TrPRs7bGAZy9B6RLD9xAE~{d&B<4JkDL5irOkvHC!Ldx%p2myzftx&O29ypH2Nw$8uJk_eQen zrdOw@)eH=j%!__#$x=mW7Dz-H-rz!SA_V-79Pwe<0zE(&kMRhf0U0?)uBx#~2qPgZ zjB}~B2=C4Zp=44rv|1gy;(c$ip_QMD+%?C)R=yjf0|8{w2y}}~7y*J*k-0q;Bl=He+{8% zcO1jIeLtu^`x&`*yn>EkuLTL5(IlujZ>8R~n?g%vF;L=t*!qB*>dHUN@S}a{_g9^B z$%~Q5k;RgF6B*o2cgn4Hmyz|pp6KnMDLIDEq#hFg;OQNY8nJGno#V}x`79v9u%x)$ z5uhp~C)uZE8faG@a@i_V`fJp@SO zh&FWbRg2b}KjCe~J~1)h_ItA1rP zUe{EgdcNb_t6c{bSIi5PCNJGSuS>8D7WLC)ib4Rt)*lAe21tOsg4!?+pQ@d&Vx%}F z#-O`i+!&$SkXKE^pwXxINm<#ClbcVJ*z&Zcl8F11nDFHN)Zq;Yqqx7ng|C{2n+Z%G z+HZAur#u(RB=z}KYh!raaILcYueNr`qW~WCuk&pf5+0-dS#Qc3RZ?nn-kmx$AD#!@ z?BER^oY`ddekfV53nKS!zunrRs^GC(o1FCH%DAqma4_unwmp(Fyg3-usH0)PQ|sEc^7B4!Bx@q_B!(5s`rqcIwe^P;_t--v?lWSHA4kBK*;;bLvDznT=sZe zboTPPv1;sCaFqxAV1)1fk+omnu^`f|a0@mO>^t+;NHd{wk^^cF_8~(TUTN78s*C-7lq~d?1 z+V2;YfotIE5~r3|`VjYbIBFSEg;r~C2cN=VqEo99a@) zAp_m4Omz8d}O5IfrL0IZ8h)*{Tk5EbrNs6|<-h;h| z+VP|H>rGRB+j0i4VB;SNNvzVq^x;gEyFbTaX!^)Q%%9HavT_~1}r!n+TXBXamT@K>&4SaFrlogWnMu0>tVm> zSer*ju%44o>Ik(>9oFo$-1QV8MuVGLslE_CMp6Mee5A*9m1BI>i)s_T00hOZ3#@(K zlzp^IYah%4G4Rhv#%X2Z+GFx zPhoxj?yNjJlGk$B5T?!b()Hh(i*L;)L)I9ygdTUJb*%yXv%|wqKi_^Zc#{GKVDvw! zS%!ydAQ5z%vj~c7e_A%@ce`5OlprWcRu-c2t;0H=U@<&twQvi*HE6GWbN1L_gtnndOQaqGW!A(W2?#HGvU+Lp!#$D(O@lD9sLikpDnncLwDcjwS z!aIzwwW${Ptgd+mXxEkE?ZHfEpO7z*yh!{z`~+;gE88R_MPned>zEe$Y7B5gIJaND zoh7?Z5!PLM0tW(#(Sw>y+861-FP(?BXP=8cI>7{clc@y>P8s_&ucRng=T$|0p)_UM zw%M%l^>HCI_Y2pwhH?JP1c#B*U5@l$`<`Ml7p&420y?TIijAMVZR^(dd=$exLmy26 z5nJ+)$~&%E2-;Y1R3I>)z;!f7BOIl=kNliJrTg5Gt3ds#ZRcY4F`JYI^D<2Z!7P~` zPI>ZIf+a=rU2}kpu5Gf$NE;Ox^GAzxX$g{Ylz}Q&-|%6yuqqM0$wGF$Q28-ZKMt30 z!5fo}iNHYwNXUf>{KWgJ002`(p@HT*6D%SME-d;)8NZrEi5!ESxjdB^KO$1pPfbQP z;7DPM1yEPkgMnCbba2%Zx*u#)5Fnr-RYK{Zds%@>*R)YY2|B7rAuJke(*6~nHD-Nu z6&Y(bwTy_Oq@{9!jJZZv2sI1q@Dbvza0oUzx~eRZ83{QCn&;j+)Tx04s69`%3Ebef zZEm>vZgPDT!4>{!$e)*)79TsHRU2E+k!*lMmc- zyT38cCNo^P2OvebGtDpHrcd)EdjQC~s6ZG$y5b1Da7fR(m^ni2ekPiyy{FpWI1)$| zD-& zJ9+XxA-{o3oX4{S2Ap+N_y=DKN`(6#o}V!x6CNu@N+kezOe!NhK| zR5|H(AP)3IB7q(j@^l(rDiRp^FSR2Y0 z9Q3W*-TXESlEF9zTBZsC*R7tjGa`CqU*Wl#HjkbXk`Zo~tB3Hy4~eB7%F|PaPQ_w$ z?J1$d4lKfO0CLmit2PL!wDxZgl()A{!Su;%n@nP#@}JLrw{u8LNLm7~EB8VR_bL2_ znufOr+v{ms%jzn;=hIkZ%|mxCjq|fS!cPzL_h*`5DT4winT?u_xA&y$7H^8^4H9*2 zj~|(qbL6mb=4Z!qvH7MK{agp9xP~=CD*aVV7So>(~a zH&pE7G8r~pUshu!RA`w_7xd>oQ3Ecnh7PvvpGK!}b;0^v^Pmjs%*FZsFB0(sw~kQYW&;kvV1Zje_Q&VBQM{=uqSccM;e}u zo6l!+#mRlCQjdp$VINEdt?R7rFFs0TG-x%q6(ZmOvIKq2ddn4yi*d$%cjNBc-iIm! z4FPnqU;6EyuYDw7l-F&+Ga)H&{j=@*OLWPeWSsDAr8rr8zpi&glg;fOh;BsxZRQ6u zBxKI>`~d?R9niQ=*)Qi}iLF?*3MitC77vqo+*~>Ue>+yId0*mh+Q6~BMyXor(#5gBm&d4E ze$r<`jMLRu`fEwwLA&=go{qwBAp8S14rsh- zsAd=bye{VF`&pns2jDR9Fza=o0%Ja23)#-#WU%NO0?kUjq+vwYW4LDxDoC2fb!M=lLgHg#uPtPqYQD3f8XiCI* z{7PbCQNxWlJl}qp+maA+;YJI;?KJL4z%o|eCWyDX3*0q;m=I)fsc&@IN+eGQ?V!-etliXRVQ9*i-Lg3C1j6AQ7tfqdbK8z9 zkbJQ`Px*Z^G@I!`>Gb8CDAek?%Tv5q zI{!O;h`}6M{%pEt;0({?{bdUwf;syqZzn{AZU8w1vl;%PtTppma}7mQ$G6Vc@pXgy zJ2-n*itvQz4|txrcH^3UrLG0p{_nnHwzVj(?v4IlHeF#Tz-L3Fb37cF?MFSfg({zy zglB&Kl%WsTU$9iUs|fJ7rl0W>M;y5Z3#yUP!)2T)4dKm1kP*?px7Nfce8lf2Pr#0! zJG{J9r^f-mMg*AA(-|TW5@i0p;IFfqnWa%3&qhcAu{gC& zs=rtVh@_LI#H=WBxzy*FiqRR*2hgw~Kiquj6II~Hg2(>l5gIbt7|%0E14w+Ka}8FU z$O!l-d*8>2|3oG>%wzg!R&b-G@+nAsLQ2|IJ|~H2nZWBuBmQ7vk~3*B*C#?r!@Wx$ z$x!;r=|zP(QIEn8B8I-rg%@&21~}-Vfb~q?s3u{B6B@i2Jo$teRQ3MDJ$%5x-&^Eg zN^BGTf3>5@k+P%eJ} zIOXbTKg7H`Xaomg)HLHTNy=HapvEXBhmM@kcHJ>TD0Jra+M5Z$B_z|MC@JU7 zVTWZzd_)X$#MHLRqhhO@V3<~8vVm<_?KNvp000DtF6+Mt*hO^eQT2BwY;@-MV)*6c z@G`cWve>jDX~tcUl?C)Z_>;(?L9zq?JmH`7F&Yz9!}19v*cw|0J*evzC@2ff9u(QU z!qn!`H~oei{JW~22KGPr;}|(oK)}apu=;(D&x>3Zn8-O=>v*()hn0k|$tGgJAjf?A zBHA8g5+9>2;jssg5r`i!pv^ojB1V3d8tkfqGKMKykTi9qZZjnpZX6LXl_=m7NR>H~ zAdf*{E)t9-8A$t?R+X3dr{p&RX3?ohMJL=3z1d^rB=)DHjnQ%Ye>LtH2GtGs^fIrL z_2DDPXhNEunU^@&_$08(*cKTUG-?;^@WXOaH)*_bXrQ4*2Mqr~uzdYX4i8e#_-jO^ zSOsZ~-MO7=QL2Iq>4MkJa;x9_@+qZke$m_>Dx2-H3+v$NT@=~zqoeAlx!|p5t>*sm zA3x5y$-rZ@x3aVTy^v(3diSzu>Mnzk-_Y{y@a78S6zrCozs*u(Z{2G7ak2||zCDAO zY2u5&r{wK5%ZoKV7ba}iaOWG`TiJHsELi-t8#gz(Y#V*Nj!cbZS6KQ?-N%EiG;6})~yladbalad}9qL2DPbqbDO zTszWh{d&x43;yE)?JAIhQ$ox(mZ~tT#RmBJs&H~9-0K(;36wwn048QV+gbJfE`rxV z9?P-4uP;nmIxIR`US4h(;)~;NhxfJlpE@&TCp(vD`=hq{za1aJVt#w?%2AYe`a}g= zZ@>7ovjj&|1Exh=AQ@3twW%sz53r1)*ezjmvj~Y7K+N!Nc9p~g`QozQMb|4Dt$}#Bly<-pt z^Xnhy+~1$`yWSM24Gax?M>Hzu$H@3=dFFrk8o&uZtlp6r>9m>Mf;=Z2+_O497^TWF zDz5DQT=U_%kjL`1_3nhatv{E}PpzM`z`+vYKtVOG1NxBi;h)zwimxw-YDc4)}6 zM;vOzg6&WPk0ndL#^%HDnxc_^yap1)7r$Y4xWDu))fUPimSkY2Bddv25F)_9W7NJY zhW-+RyzX^;n=5eraxXtjpX>3otXoktnczX$wV^`E_szqd;uQyQsW-wB^LfqmUtFC{ zk&DsP7&Q&pXy%YExbe;=nO7p_|7|=yMw9b)7Z#Wa^(yGcsHr!fCG$}OpLF55Pd&ex zKxeocr-KZsXM>w|iXl~byux0;)^2oC`R+no_-P|so3SI${1J4M*)Ljrfo}Y|`m!@| zW|{jgdb4zSS>x+%!R#-gP~w2h-1N=Qa^vA z`-O!I5WJ2a{D=IQ^g5K_dHMKeco(I+7R#{6z;5JU+6^@z{p;WW2XJ!Me~gxQs5i*y z{IbX>SEcT;H{Em0BXqTZ1_8h|i z1=S7(l^79Ly8)vR${<^UXbuhMB{jXfn@Nyo7$nGI`OTAyJZ z8o_XJ;f4FX>2Y8GQHhP z+;H;GeCqjAfLN3ZHAAtTwcW2wEr#tu)1PA<*JIw)LqC@1xS@_uPah72-#guFg6_ND zjvU_Z`P+Kp-Y(zU7^s@XGnFLI5(}hGBY$@8PH2HAz4rI#)US2A#>jJO<9=~8Yv73` z*W+mUyz_o)l}VM8dJxT(NU@7`P99)&VmGcO&5?|h`k^tW0ec?YSwrI{pz)+(X&@f}v~m8COD=4lBw{uiIINNwNN$ z@oo`{x}Ju*nhGatmXmpYMDvZu$8J7~eL?FiJV3SaD~jv>dF3IWdx}~n@L6An_mj?& zUWKFGm%Iy)oaEVAzNv(&>&K@CQz)np?d|5SuE5`Bdtl&utW9w!b_6~P^Vs)TO>S;T zk>|lgrc9n;?O(Oc&Cf57A&TBVsjniC@9$<9b)f;SXmIm1`tv)!dL7MG>SdDzlVmT> z>`Yi#YybcYssBNozxHRfQST;s8yl}`{lQKT>Pj}-)c@4@aBd;FYlkHjCSu^9uaZaJZ}B?0Vac1x>92BEb0z; z3N0vg>G+HD7I6W(6n}`@W6t}dqN09C4k~baUt2h!LtknmL!{Hl*upyR{QeG&PA>^d z^btaZocss3vx=x2`(P8c1Y~3cyZYwB0WGD?l;6nq4eR!IAdsd}j&6#)m>i(IC<>1d zMTewh*s{if3>X;IcY=gM-$}_!vkhqj>_0kZDNni z#IEHm3r$JR<`NL$&X=bq^$`h&eb7%DfMyIR6_d>1#4JGnB14SI06BDJ zQg8@Fo`@(QMFmW=hR3w?>_!MdTOV^&nk_*k7gmk+r~pq0t%qcP zV(;fN_!eX!(lh$62;3;m1bJ3SAOr>BA7{=LT~h1HB&k5LAy#CZ?JS_-abWLZDgqmw zV1cmkSJIYzNO28kNK)H?Ib$J=#bqmY#IJv{&_(bN=pkkj*$L9v@bD$$X}dI#=(g05 z0nKS?>fh-ah$GY(>|1i|9ifxb^a2V`*(pL)Wt8Dj@)(1L?ghywM80(P%3&l}&?)#$ zuG}W|?$-#@N5??}t-_EW1Pq%yQEd8$kT4Ub8|%GkKam>4|3zOtHv8N1B|avJx4nCX zoGhI#osAvRAxf#Z0II@(GXU$#)CG<2_lIqbz#?qb1&DRZuU#F5D?dWAAj=T~;1d{Z z&UBXpnj^^q_aD1cb&tuBBV`KERq^3eGeTh5y;@5c5CQZso@k73y1`VSEsV~uGe}fL zpbCkuc&><60tGViJ2#{3p{z2dzrcV`-GG! zD|X>iCGHets66}1%=5d&a`$bDA_56@RW7b&h5mrV%+-|MYnTU7rx2KcMy1J$xgJt!WAiaiJs z%jb{HZj?tyRt8NTIM@ehwdPaX4xN|NF`4dFV8w50`kqM%Uz^ID!*@5>QKo)sVfK92 z@fPFos^RH5i>2&)+_3)ESW|-mEYux0f=rEe`(3`3DJt>}>9d*9@~!LyW-hT8832Zf zs_NN3M7Hu(lYw_fN};BA+H=dj$v_BSR$jgvylD5dl3qv?OA^73 z+P5vqxb6D5CAecQ`VUka0TEDwY}^k7y>vHAu6nQ9ZN=t~vpNuApyCVUbyh#`8oj@6 zQP~m_;ZaA+*DfkpN+0)L_nTf85D2=sm>rz*_&*Jd;n{%sg$(-|nqyD_W3h8k&ubo~ z0bhC+N7qoP#pHjgB|c3Rxjjz(MAA)x5K))@b}=`)widgzR07JXg&3@(yYji*EZTAs zMkYJ`BL3sHEbomVc?kxx+fychMn(XXIxPDe68nWm)J$UVPyNn!K~AW|LbQRK+-Qp{oY=VBD&4MxTJKL+i`l@%z<=xH1?5Xko$%;1iw* zdzl#>+ui;F{g6gpYd?x@kBM-tDnWXB?z;=Jw>RHclp9UWSwjJTc3}nfNxr4(Gtc*A zkPBt1W)`qiB=AW4J zGG2_j#YyH8iwJyMQd`>3&V<_mp`4Tx6YrFC+H%w2E zr?0B|CelS3jMb02Gx%d{$xYxX=tiJ;rk^Z>WVJ?nD?z%m1!S+)ZEkp2-Yj`^{cexn zOR73}Ge?PEHry33mfT*a{)#wgXq=Aqcie&R>{{~Gr{N;i8i|!NJzRhqf^CzaoRqj!GO!8aTax+Hew7oRWJ%x&WD@3%-7tLZ%>fWlWKLOS1{%#Zu|;(CmcLDfu(?`J z2@xBE$XemP59yghZl`!FR&H+De~N2#bhLDzRPt25>Hua97OkWxJZ#q|6HGU7MCHJD zB~~GZoCqX_+>ap=QWxmK7786kh!A3s_==oj47wK79`x!IFn@VX6$8vTA41S+MM5{N z;w7Q{lOjqRriuosPnzw>f$xwcY5y6}hj*byNiGOBqn+S)>BWAnC1u43Utv17Si zey#CXZ$$*OFv#|oKH~uv*mzQ`NpSFyE~R1|ucMFQ6&+m%@D%uXrbAG?Q-t*wuv+v= zyGRr`Hd6eaKiuumG4ino5WGM5gke$@;zrajW`2zhg5G@FFc)P~HCK zk?g-GIpa_kC#&L~QO2Maj!^XA2TEq(>wYYzDN2&#-yqXIL50Bo7wH?Xxn$*+ke-J? zLBbsep$uJx%$Ptu(1KPFp95_!+oph}jYzs2Pr0A+ppb=w3`VT`%pIePg#gfnB>gyaT#yWnFXD>NwxxtDsMXh0G2rg^GvlUU z`$@u2nmX%0y3XM2!BS1W@_7bLx z#AR&iZ`_!jFdcT3(&G4>q>ofk=E%*2wT-lpb+3bNEF4spLUskeBsFzfg&RQ>+V8puep@PruFyG%PI=>aPlR#6IQNQ*r&XgUJS z@FK3-?-uog2#ez1P7wgWxKu#7&%}u`S;?}S)eOMZG0SmqM_Q5Wk!bF`S~h&em5DQF zX~)s`37xSN5u_zn&V3~48{Ur2O^sQ`66fg~e~+qlcgDK@bvnj#wYGNF(_U9s2Wm5h zEsnLcptngCG**MNQw9dUPz&zPH8ie29I6ZdS4+Etjq!<}tmZf4)>)Y8K2WYbpsI0h zfIcF8f@KniN*-M8#FzJ?_)t(eB@^b`{W@6Yhf9PdP~!_lDQA(Ohs1a`Fr&H4hID z3nKo?o6^pQS8zp1pyA0rqU>xX;viM{S$Ucl6mI#ekyb2Z9v_w8#5cPLZW)2k#sk@c zUZ44P+@XKDWeTAJjj&%k9+%?e$->M_1CLA8bHL$=cNDr=A5S8|2YQ18wtci@$MENIB9k09Kh$IYX^xz zv8@Vl%%eg%Y^l1ob~JhBV(0!X+I^>nzJAJJkwb7t#?hbZwi_cPG;qujj!?zzQS4t_72t)QvxQi463l&EbsmFEr>ZT)FVA!YAm*cfylczk*7 z0e;`VYFW}iyuj$vbJaTB+m8F*#v%FZHhIj7A@RZlfJ^uJ{mukhg)mlOKY zylC8B4g!~!EDk-nk~OZiU+3a_ZI3hl%H;Xgf!0v) zjvI`pm2yPJVlyx9N`lA*Q+{+*yGCTdi$Za6&;8PCEvT>03R18TIQ{S>>o1V3DpERl zy;b;On-m68Qos-!w!8_PB;d`E!t&I|)A2NH)bTM?Yap7<(%DVx*K1$0!TFoTYz7k; zbu>S1c4SWaizfGR?Xgb!idx3qDk3ilF(_cb)P!#R-j_wn8nK(Pu9HDk=n<0&@xmvP z_LIPIvy2tzuS2&Csl@(C0&$81QSux4ak2`G{h@-f&${x)hLyBwneJdbC zDFY%!_3j<EMavn~ zINf}_s@*UYJGs!ErrkTIn`|2R3zA8X&xwwX=xs|`DzeSak%YVSQB9(-&SKL$uqMBK zOSk;KWBo}lOUwQ&0Gq(x19{7-JIi*O%X2*YIC;8}rCe*Qh0EgjIycey--Ap&LE*a2 z7b)E6Ot)N)`>vQ03W^^P*__*-_OGWKpWo$^EZq;TIc{SJ8rmpH;%I`%hac530%4kv z8PgPALRNScT&#=5aB49Vp(VuEOtnQnpP?J}@!rY1K+Qy4LbyRbO&_e^z2?(`v)`3CrV#R`Vp(2$%2mj)o zr^qPso~(HlWjne*9SJiVq9Wehjw9ZsP2Kko^srv2}{} zT_W(a)5a{2K&k919u*jXAA&nJ^`hzbwlMk%?P`;F z4LfSgN{~Y%K!79}TQdm3b#*~CmDg3z$|yax$t$pqB?e{+??vL44tZdIbyoH|SR@dH zw5~&d76=AcSe#r250K-hsi21#)1HdMR2a#YHO$E&&|!pFEJ{-h%;G6NKj-vkuBClM z28!ZeJ_W}W5L@DR;ud0*aFWYVK%{?^VqO2PN1M(qI-zS>OQ7skqpe_F%teux6jT&H zG=UrpO#uy0PLja&ow6@&7CC^^dgdie@B&@M3loMALrzhr-$E338t#jTIP8TnL-A>K zz%P9V-}v0>QQ=9kCR(^av1qv+xZQ*06Ohje`Nl@N|IN%}+~ctCH$yxolbf_HOqgbr zN>~urWYS!IGV3;o}fm04^&OO+;3$`0*m4+ zf$^AkD=PTa0c6|_7+m3fuVVi7p!$NIj$3BKOS}!@<5_*QAE2z zvpD(G3zyNHbsV+cS_nEUbeMt>1Nm&I1A;W0I9eM&>?^lz->0`k{-_?Lj615C1Xh)< zO!IMq5qC<;JgO%c#()hS}7yQMEnW zG;fA+_fIIxHAO1ev!%~a0bG_GwU;vo>P^M1CK8-<(S1cFNra?1W<=lTTF_AdK)0ex z&o@i`O#wXq9-a;IhW)hGt-$IRTDUww0-e-?{$~sAdKz>%Aj{Hi7Q}u(7C{@=eRP*1 z8|Ut7m^+pZDoGq$lY?ecJl_05&jR2?RH$nG2892-Lmu=8gJh+Ob(R|HGiG&%>Y`Y@ zsQEQDgI&&Qivt52?E`6hi$yY@DKoI~Jct$!Qpcsj9AXr>W!BDqSa;S=PHs-p{Y^58 z=ry?nIV;0vAL{c@bredw?}sinQ|GiHw z(c$#Ph;Zl~*G1))&fJ#w`CQ{hR|8|!kbm>z)@<8Ts@*T)j7d(llyg2c`Ssi_XC;o7 z2=jt-qzMV}K<|yf(=jZ6HivO{1^m{EIkzJdKlOR^ zZKA8z|6n(KFkmm&TKCxCTnY7Ohj`Bcx6;rdn%9)GlX_)6B96*eTXw*Mm>QfixC#bf ztWpX?WF~hONMT1rX}5<2VlZ2zAXPQnI=?(BsQh&jXMd!xMaCNVEQLma%A=p`vX?A-8)|A3hu=Bm~CBQUO!Hsw~OELG*q<)s_2ms>RrZ z592kJclKab`5cvLUqSd9!D(IDd z9Pih!ogm4NkW}Unfo-)NGAPLYlc2W1C?ldoIF@tm*>vvfH|G{EB#gA4<~MA~p);OX zRIE9qurTszwA0zmGwArKgQYmpba<3Qqg1RI`0PcB!3vYaErKTTK{HvtkC3xEUQC7@ zUIRZ2F;s>cvzUrXuFQpRbOk@>9EqZyz0B+%@w8M`o|w$FWUUniL@A0bgY~JmA$$6W zS#4oqp(OYd`6*#aSGwz8tZJmN4+eP<)78H&2*#(OJQZyKL&dr{iIQDc>mRmBo@?o9 zQ2PcooS=Q>5sEY;$LF*1= zSTh&*utG<_pm!hGSXWYn#ETh*UEHC?Z+O5F;Pl6%U_<`8BZh~NYc_{mA zjl?Agi(ve-`!(~}!EC`;A-bl6l+^?R5KSy`>_*V9s7o`G#;TrO4G zps9OFHL!soPd>E3!jW#0_W=U~0X?im7T+a9)QZBoGMHS1hBLRvs4K*rvGpneav2l1J82=jb=UC0hT023gR3~dO@I`vG6HLw zN*Lg!DmM;AK}^hAU5FX55d*F7MiCI9@j5{cGa9VpnZR=+^V7?k4?wcn6S`b#ZdsKd zWr|Bc5mm7qoTZww&9bE^V5N_s<|7Xou&7H{piYoUN=~LLhJ}LzhZ4;3;YQhu%+%axDJJbgYU|n4 zFvm!D5U)4FKplz^kJ1xAsReBY-~PQ2Qu|7%$97*x5_wKNvF8K`2!|2hfn}r~wuwWQ z(sVm3!yyC({W`5YeGs;O zJG-qf?MDAp$A=6$?>~>C-pE>2)0?PmYb)SOBo)3s++=BCGzzFRyxtH;6ZQou>ekL@ zb1wnRW0@2?zXJr|;IKo5wuBdi{laNv(f-HY{%ZRAn!1{vNB=~5kiaiz0&(;zgY1}~ z{Vbd%Q0#UW9lnA=O7;JJKB~~?GY^vPg0h;}cINlEck=e9{HO&yL!eUT@cKTWd9gd*T#({~5%HX7(f@Wl8StYHUg_9=Jh)uT ziFIFp>os^^aj!S>JFO#WN~U}CHp?>u?Rf>GsVH#O`lX@!H_PP z41BwJ_yh!Kmb#AIPs^!LS2Td;Etms&0yFj^3hE7ubC<@1k;N=ugb~;Sg&P)Ru~0+| z!SU_C?EORCtUI4FqeZ+tdA@DV=m*jKKyVXn>DH!CYhqNam2YI#`QDuSiP|!Uaw0|9 zcI_z|FcA|Q{#Q@)PZmPk>aT_9Tb%zx(K+1VxnO%p+zm?c`>QY+|F<)0%8R~hEBou? zAIt72U!ZosG&WyAquPZ!o0VOeOJT=`j8*p?sIej12p z_;4XDOz#p|YK?<<2oZ2`^}J+I(_#+WAUHGY`p|16g|zJgoBxI3qB8bwt6UB!wfP#0 zgJa%r*+yrhdmFX4@*u*QkCBbZ>lHGPp1A&l#ieuUx9^&@b35kQvmx*CTw3<{db463 z3x5QlFtXg@z_1nKhb{;QqzU{r#w);U$&h+?(oVL}%zB65WVI1mo9*nfWfkE^!~ zYO9UfMuQY7?ry=YxE61qxH}Xn?$+Y2!J)XjLveR^cXuf6ZYR%s<~{R$CzHvq%w%td zz1F=hTb~lxqao=d_HMTL$ZA7F`TwryHlR;q5U?m{JRQ+tAsx*Va`^@9qA}uNDGCCC zz2h!S>tJ+*pj+c#B|8(p(nKD!Zw0y#Vbb}@H>L1w9 zKQuS-;6+YJlzN3?^}kvGKj=@N3)IkIU&DepTO6TdhOL)=Rwv)Kkt2xpQqd}AV=Kq0 zOH<^SNaoTl;J&E^qJIHms;gs8`EKJMg0#tj)g2_jXo}23C?#~*9A!A?k$~U|lGtwCl=En~)&!n> zSzul$zO8pi2p*XU4<7#%XN)5B6Bj9(H+cW1SM;;L)K- zaDQE{jk>H0S2Btpig}WGOV^D|$IU?P+Y<no5T+P!I_Wo^ zGe%#8A)J&uR%N-u8(e@0g3vP^)1GROwgrXwTKJ8k0r8)CIjP#2V%+8*_JtgA-6<(} z(u4_TNyLq!av)@leKcycOz31$q^EcPd5vz{YK~pn&zRF!3k#Ib2cnEY!LXyee|{S& zN}JSb*;Z>Z9pwHn#Am3eOU31Si-;I_>4{qIE<*5U`+YNKmc?u4bYH+)ahEXq5Ju%a zao+M&y#!&!-{*TGAh;=1c1z*=*Ub+y$kGZy-X)fT^78aX*CWEon}p9P3`P*jPpFPO z?df)JaJ50W^{9JLy<%f+b5RZeao$33GJt*F+4X+7lT&o7QC8+_aZXMF1h^_Z=x-M! z5sjgzr?3250`D6e+x=n~4+(=aU`qT?sVU_n=;%5L!Q_gZ-cx2nqDhurDy5$)hh6dh z;pzBVWTwa_3Vifrxn}yb-}U4KTzK7odT7kxb&I< z!7RzyqO;I_PlaCxWyr-@mzZ?OF2QzqaIjmn;PYi$i<_vkr>8Y%hIC|fRNYK?s2M(WJbcVRoI1p0TyCRfrN(2XD z=Za8|2L<1R9sZRrnE$wm+l5f|NBhh;0hG%N6Bu%)Sj=`?W1q|^w{0TqxT*!Au6xZgUQ2A zyL165?!|>+ zK@4V_1ExR3uy-K6#lTEO)b(~h3D0J|#q~rTP;6~!x!l$aN$gk^a5-Htu#iImKswg? z89x-jo}U;H+|rsiK>(o*%E}Hq1%(q`)DBZP#?b@-0CrrR2BX202gg|^f^aT~uEZz$ z_I~3yIeo*E|8C@NYKQ_r%0v^vdJsKSACw|1Key-CNJ9a?wF|L-c3dRX+C^$Ty=JUN zJYU;z`157`7RJd`!1Y8Q|JeibT@3V?czX4^xN+n5if;Lql?AbS*6sI_lLP#E;z+;U z4$IO|g!Pk;77)svA^B;;IGGwyRs7|3K*7~V^F`>9zqzhC2k{TVMIgm07b`|aM!ID# zuC3{+s$vHl>g#7Im(s-=0& zn#w-RIh5i-Vov9~*>v0c;+72sKSlXtX+VOHF?hqnS)J^TV zx~Jdbi=e}XNlMc*vj>PWgOg`>YFL7Qmx>j{i=H7&-mDRYO;nE~v5#oM;*!D!Ka9}~ zHY;f@e-1LF1=3=GdqmVUX~VCdG=Rh!fBTVJOm;HS89Qu^=L9Cv0%Dfc9c7tC`XckK zzb)@Z$qgnfoIS8A(7trk!GQ(?s0;QImDbEpQ?O!1^074nOA>TL3=~GE@d#iOp&aQd z@?$ypx}L@(>cvrPGR+q#BSIl#uw|!%8Jb>Q0A_ zQ)5bvIKqZ$@v}J4!qAzoZUijrCcZ~?iGSa3V`485n?TYX=(Ca+*YnSb5{5vYkpecx z6fevkcX^TQ$Au_tNNg)fuDuY9X*TPzg}|yY85}xz=EidprjI;Lt|+0wmx>-I@+q?r4n=5o`_*&uLp+Us;7UxR6f^u0Gor!m0d}V$7%yb0HkZkNUpaSo(T!5 z*aA!(6}srK%hq&)(eP5rsV0_!(IGnC9;x7(E~sk(1+-{P+@8OLKF{ppgfo znK;}MS#$dsQ-fUxRE$83BDj}W$KOyCB8TJ>aHaj5a;sF+Q}^1-0R`$-v@t1QR~}$(uc)vKy(9>?(|Y!3|gUb-s0bML5J6X zm%i92;tfH{z5&_EtU{8nH6Ps}nN8z}VneH}zj0Pb*d4u0-ApYZdn7qCX4z9t^8w}e zCuWB%x~==$b{iGfzZ&$DO98XZYY#?~otH(Spqj=;BM1e#QK3A(Vq5p4_YI@xS?%jQfb5)V z>J<$43Uo^dGX_!BcqxqTM%2Ltt&*)M>#H!Yh`>VX!B=NK5#5)c_?)0mZ7Gg-{jwE?rmGugASN|kbTN{x$ zOQJHSk{&M(4U#Q%lUL*xY`3oKL@ZJAjVnv598B^d`}xRuIXBzaMhq;2pT5E$M_+)I z<&K{L5m6z76A#OlNU$O)Mwc}%<0g-ecU}HtP#Vh(`kBm2O;SO}*CFt=MwAKTH;X>I zCwgo7Vl1SORhO?RE6qPz5192Lz+z$F-(OjxI^QjQtkU%3HE*X9snLl1Ry(W~-C6br zehq$A?sUY_Sf;Rm`^q0SGIE?$xwU(=9c!*BpdPRLaaVb>DQ;qdcTe!zdfVg*VtTR#w9M{?>m@qU@bJn30eJW47TUEmddkoM#w_>Jlh>!QfAP()b6tR@NotNPa8mr* zLFv(|xsPyCzUegZ=!F3R&=o$&<9$Ok!_&SR{^X`{r`xvVa;80=D-Ni7+ztsk{PFgv zXnCnF_4_XMFf*gEk7)z-eYA5;s(s1<5u|J$edcOB47o~HcJ}8P#>$?)^o2l@kGMiB zblP9NuZDDHkp3hD=})$i%TEFTRnC2LkDpR`bYaR8(b0Dg@JGY@n5HX9d^oUx=<}rx zS0yAsL_|c#>oJjAk+@3fbYD>vdavy4f#!;?T-$M^A-!wk7i9@DjJv45=Cm?U8| ze;CKf`kx}m5m@18pm}iOqtw8X+2qE}A^{Q6g##p{FuqbOHDEgGJQVVb31k$MsL05E zPvI0<$1eg0FV47STol^SgpMw|Db+MbZkh2Q>|kjt<^tLRgqrw?e2AD+MaAj&?{Q7b zQ&as)bfH{4YM0>vdeF=7x>we#RTBUo>`JbG*NhfD&ULJ-fS#)A-czOsTPB3JkfJDv z37h_w-!0jd^75ymARs6E6QOSa?`kE-XFq8+w%B+~L51(ED1BNs2MrEttRi0|PMX?r z!RmWR$O1@D83&p{zR6GGFcuZaSt@^dW0K@t;_lbl+6`3q^aUre=l}#q;^im(@ju4; zp%IiNY5W~Mgs0T|IuM+`4P4;oBi?8rcH8sBD+B0gMk#+0e;tFH?e zQeksMyS2LfV->?)^-$>)dU63a7?g_KE`>CvFkyAx8>>~60P?&qK~u3AOsA;$e6b4L znx9GBasXYGWCXm$T(Z*%Q&LbXKDl>p10Q}Tp}|$s=96*CgiQu}9k22>XyUjS*ycY1 zCaXUV)iIzIB`fMbKjAcz4#^lXSnmv_Q>^HM zhqSFv0UZ}G0IW_5h@#C9zi`%KV`vCmCKlszi-F3H6blu}!tD_+p>`hj} z(yFiBkG8(ZC&uYmmXi;!ni1eSb?8`F%Y<+2{179e?QSqv`45SYIcoHZo7TS?2WSHdB=gAv?R>hn!dyzk;O~CKoiqKFVHQ1Sc?S!s4`x2@(=FI-qG-YBY z*EOS|&G6!$HC(trfmV2yhej|P>Kqo(dSS$1W(a_i6jJEu z2;uBvwcCk-G0M^vKU_JI7_M^>neluACASg+hMN^v`T)fohU|7&&Z4W#z30B+(Fgc7 zkG6mE-ToqKV_ESlQoRx~Gss5NrOGgukG)AWkJp$cnduE1Q0DXGof2+~!L=sBi3JLjQ@;rStu6{mo<5YOzw_ z`5(*2okyGhRm+XlNgl})GTAxewayFE}Cv9a;v?RTN; z4YCghDqpw3thd?=-kOcW&eySuqAYK@voJ|(>*kwb=a;OH@sGXZc`MMZ%Ev4`S_3C8 z%oOgh`~lmNPXJO05@JYs-k*;B@B3v717)>trtjOGS3FT=)qH|yogYgfLh-!GFm8O@ zS=o$X2s^{W_jYeZK6l6SWuV)KkHf5-kZgE5MMA#TyP<&hRGGX#bt|vBes(|7gkzF~ zzqVNlqq&JUTuF0v5*$koj2#QGIWK>9fWu4GDwM=Rlqeuw$g7TtloY13uG5L1U~>hk zb^Yj?;Y?3Ym!19f611B2Hg>V7JxQ9LpbX%L;`aj%$Kz3rb^k1oOXJ4Kkp}aXm4XqG z!ew`V9ZqDlx||DK4^aX-_6&q^^-Kxnj<%tfe|{E-8k^)W+Vvb9+`yMK8*-}|4} z?JYI}(K4XL*mNP4HeJ~kl?YQSom%tH*d=mO7|T_U0S$tk0+ytHx_eMccM-JtkgPa& z?bn=e3{RfluhQ8rbZ;8KKJa1P?i^nWjG`ovwrd=Vg`3~qtD%#BA7cMi87&H#g7{py)wx0o=zLktR4%nol{(DxOxdKT z(P>yLnB&&{SM64^h^ex{MciDqQGJa3wH#g_S)Zu#xwa;+k99{RfQI zl}XBw3aI+Kbv-jZ9X#aS3D3;^On8{&yExqKYEbs3h*C_%-X|6D#|;I`oTo~LaYpRG z9&U!IJOqn9EJT;^`n2Ra3QuhC&KQV-L%LLqAmX0>GWK>hs9?5Txbn+5aojX+>8B{a zFpWw^SBo+1zdchr%LQ$Z_l28>^Nq4^^M%p6oqr2wIr-;vV~%8>69t#s5tZ8ZyY|L% zxf+PS_l$`b^B(Hon-2apRZ-Mx|Ygzly{8j%V$3aXnru2SyZH zDA(txhY>ei){6CvsWAlSYX}~_UppL-4maa`UAAq&!^6ww+p9VS_K1Vak3iToBeJHY z3r#o{Nh^~KW#u&^C(JIkn=MW+3u!;X)%2>9mo+-C`zyWo!|j~K)wTB3q|*vpT{3-+ zPSo9Oewsd9Y`Pttyw4|YdK@?UT$F5j*IKcSrYUE&x?HrM+1NGT7F7zpgy?(Sr*+-j z{=sn_wtC-tXggW$+&x1hU3(i6erk5;^k^@;9SAS=evABmhoMo^N*g zybYjWbgS>#dA&Y(?;2%2A3L2mx+M7E1R+jyLJ5IO5RjB3ja5q%Eu|~CXq430Pv@`3 zd=m^YKhwBz^p?1s%KZF_wrMo$qZAr7Y49H9$bp8F@eztHlHYzgS}|#@oKOCH(B$O| zekY`;d38ODlCC;ZNKU0B!JdGJr_0eAcz6swhzH2XAga57QY&f1VhyU(P5`GUg%W4S}+FO`a5Wd?+>pX!W^KIZM zDoUH3eZ4#Jd4%u$D6@04J=IX^b@AGQF|pTmSoTbp073cB(E}FVCHi zL1^tmPWno%RB$UEK93>39naSsldmJ+KPm}8^%0HzjrXM(k0-@}o{Z5W8WoWmHaC?@ zdWGX;AXvz^H(+k(ld|0IDaqdE1FT5lwuaD6$>7I_A7++jEN^1$O#UnI7vlPP67nn8nk8ffGAafEnN?OX?>(Z9Zi}UqPg|TlWzNJvOw3A#^%!*c#bAY4d z+O#``&Qo4LT3swQ)*RNxg%~S4CBac&0W(NyH#`)!6l@n>p{7DelsK%_uh1lzOgR&{ z9|d_Q-DJ3ztuWB})Sj@}c4uz+V1zo&t~FQEa!@`*T}ZW!9s!vNO4}70y|AZX!9|V5d`!!4*P~Z&kN1_QakE;KlePIYrxP za`vQ~KL<4$wxvc&2jUd9!hqf+5)m64U6Xxym7jwMJ~osBbcVNELXIRcC;A;_Lc@5ge|o&--Cp|RU_`lm-|Qc%?=L{mlDj_94#c}*3?YjzFcYD?QJ z3@E9g5c^f7toQ%@p&POL2u$PtuYCVc4gY^XDzi=>UcS1VZ!}#E$>=}x4`qCHd0?U3 zdi?J5ICpe3ZR+N@4jw`FDxt^JRpp29-X25ne+Z4MhtYjv&sKHQ{%_lmhE5dHmi z48LLX6ZowaZ!_}lO@y6tG+Z?tUUx2DC(aG)1vKZam3P#i36x3cV}~RpMfJJ@nFYhG}9WLN=@?4M2$AhI{?zf7prxcft z3$F{;hgLq|m&Q!*=eUnYGKE$_=o`?lw+g$jsAE2799d6ySZPwks&N>7l# z&7t=VPv>QIbUT&Q*r=rjtPU%;@MY3Qbfxekhj1l^acYi6#$Htx&#sXw9Ov~PdvBKi z3hZdqe+72&=YIwET~q##FWHNXaG0IYV=dW;s>z&TX))5{bb8OgZnjs7m-#Wd>?bW7 z(rad`o55>#X2>q3SH_x1jZ!y^1#a3*nOS7UALybE_V?&+dubvzVyFoS=UE{9u~(^h zHcJkma=nFR!O-xqbL)D;!uh5TYt-!U(Xex^$pO3>+JFNw_o~4=-~`@P7`UFMJ5HkzBl8bKEH;_p=@%{LqY}5=vnkNZTH+)v-gGiIgI}ifh-@ zFZ0c*0dDArqR!;wpy0cew~2_&6*W>VAgahW%ED@BJs35^k4nV6#L^s70ibRqzYT}2 ztqA*j36=XEZ6n%J8MaM5TTv_zY+;Fo?;m2A9ol6F8&>&(cD~u_QyI@b2SsaUKwvSlK(eujZv(dl zN3HURz)cZ*=22(j zKTOT~xl+AW*7w6Ep}aZ6-ogX^PC_}JDnWL4F%|?M;kzn2x6v_?pG^s1F$>YfOOViP ztY??zv61|wG39JnSOFc>X>w~}P!uNrAl{xUL=^JE4<0v#F_`6)pD2OjnXfPOAUpP| zHG01;TGsN@m?Ro9aDidep+9Ub<#GURP+p3f z69giSR6b3?rUmn+4gXM$wzpo{`RCk;LztGgd1bTdV8JtYcJQpTNmH=q^S*GtaRMgq zc<#e0iWZm|xazLZdAYe+ybw)e)c7lO)mJ}AM#SR$V7Kmm`Fg{`@vEIr5V9;1OL-*V zFsrla;b5=E%fW5eYG{mhu~Ogb)xl==DWf$d;Vrh%fIqrG&+I(pDIkfwL#qfd%mL!k_OTv{#E#W;N@njcN|{EVV@(ea51ZCnRGdBRa?0(Apcn$xNQz3hnE$|j16BK; z<^XUBI;81oi;95kQF)fei+>^8M_49`EC_>9ruZuWLdHD zt8p`hA5gXcwN$>4TG>SpKz$1QMgEq`z4YDm4=t-I8;sD;D-#U*df-f@9{?Oi8$1Rs z23H+^$=5@hw!eU}nV649h(N8}eM=^<6-q>_gGHDeaG=W7wxTbPt0)P>#^7cZ;;TX~ zroDgFB9V=RhJq5Z0csnIQ_Uehgj^)0nbQ_&~5_Q_G1 zdXX?bSW}WPI6giR*=q{1NCoAis;Lz@C_70;rbO;86{=f(f=T2K5=>rxT7L3gv*THf zo5j*Za2%^fE^QR!DvIc9WFy9KD<==--k z3qw;1u+`xn}S> zAN$|DA*hsEGD-yVX1tT+&i(29Zq#`@+aISdFN;Z>*k&#ENlX~rPiC8AZ9!kvOMhW_ z^WYzTdA5#NEoK+gJj{rK_8!fn^5pM^vWXC!O!0 z)WP+`&jxu*p~o%B<8?=SMACcQyHr61$i0`8AN%^_j_)rYkHWmaRQ~U3$WWOkaK993 z_i=CM5kU4lU+H}ogtq`n`JZoX5JDTcgS$3~RKW|ukoLwWiKcsDT_su)%;dE$dwt=BB_6*o& zItA3TrdfEu!ev%F%j)_3ly!0wQyf_G-i%T=t zOJ3E0RMSE>>0?BQL1kBH&@Fy%KTT~JO7lvTN(zSN88tx0mb09Z7~R4E{HLk&PObM; z=F66?PHjti9DJ~`GooT)fOZuETnHZaAhH*?u{(6Uv}TO=1km_=K5USd8JAiWh?Se- zcNi)@-~dY*74oh&O^hwF*WnjRZ@ie! zx+m@w&xz{F2?xheD;7FUI%DqBk}Q1H_VNtB|DHGD-H|5Fm|DHMeiR&=GD+~6DMutF zT{!L%8Hed#zjY|Me$_~V59zv;WNJ$ZS6Up3+LC&1Ih)k3gnd>*%DsTE$tSg1Z=Vgh zBLr+Yu6cG0U`8dTzyo7DLs~98UIW77Zk;6#u*g;^|Phg#OIJIWPFOdiH|c z`M-vz6jzl^6rPnW*OrxE!;K=btkD;A zKoCZ^-pt1}r%laijsGbnm2uYGL}Bf-0_ z!i~VqW-Bt*Dt}_f+ccy&w)!;vQj&Ry3;L9%3+3cWo^Wl>J!l9&I~=1D&kL_91X=p> zp?~Ugkfmf8V@DRBpEP$qV)&;F#^<WJyhpQQg7k`3RH@@wE9 zQ4Wq)huv7RXQvB_-01fe;kTYyeQ74j9vFK@0>@E68Z4Th5^UTJ$h#@$yzP;}F10-G zTGLj*@h#+i4GnYpyU*ET*84R_-CoSlBlWv10BT3d3*nOYJyoepZ36@u#r!{!mOyQ7 zVdsaZtAGqIw^)|Xoc{;-Fs70?aBGFt#fv@ulH1|B&<&1J4%SXEZ(NPjsz^vFv=B3` zvQRdJYmFx7Q8lJTx-QI&3Tj^{tVjJuGT@L}XwkY}Iznn?M6MCxPmW8a(ESHUu&5ss zI3DAl|4&O^3n7=|3Npx9Hyj=w;vF7J`+DF2zY)^h%zomKt&ImVff_b1{JJeyWO26G zxCY1kve?v8dd3v1P(lB!U*G+{MKPiT-N+3Bm zk^2K^a2f zz8Hrf83?X+h6k5(rg-Zxk^MAxFa&!fONz^g%Gv{$*-v zpy2Vs_*}>d(}P`Q9ulemIY>A-RBv8HnitP=2$VKh%n*xKY%^hR+haK8#+7?;1Z}h3 z0BERcr^jM-^qh=9=; zEWufmMpQmm#g2xD`7LVjSyft8m+Tv}mUWcvR{OPiC`2qP)EPfJN#GXpc?}W-9^00`XaE`{Ip1)TqiIHqz_eaxQm*@ZXkF#YuL5 z>VJ+m=AaFcw3Ju-4r@UtN?BPjZWp=`2wVGunuehuVz+MdV$eZ=&MZMqUCZSE``AZG zwDa6mx0)sD4XAh2ulNs6Yx`TXZaWSEA~`rPP001WRYR?6_xfp`V`3X5H65JWbPkKZ zZ5sh|`2>;nwieq8Cc7{ftG;(sRhvtM3>s1jec!1T5SS(dfe<&Z$==B8$(D74i+5pZ zdjO(~CK5Dbx`D~fTxUCidQZ)3ZXZo(4mw>`|6NlOC7*7})0^;hhxSMSyxGU)p?9}x z##11ey-*&bG$JP1Nnfi9FTTfed^ZXED9AJ_NKM^swjf&T{h$8pgTW2ibHDybR&iDZ zIKA$`w_%$uFvZ+=7cdXGqh;u(F8|TM6vNe{ev+iFQvtTvf1h0_)`%1lAKv>wBVxv$ zq2n)@vEWck=E9zyE<6l2EXE~{u@GY#8lu6_n3G5ZjPowoY|zAQAOHqKg}z7hZ{8e& zHQkm9Vjp5|PhfqnB+jsCXL<>)FPtgvA?fu22L|+GGaPr`LMlNh0uFoqaN&fKeFaQB z@@35@L&O`$AmUNmN-DPzTCp9wSA5>!H{L{hF7LL0=1*wjzS-V;iQf)!>6ye*C@1c| zfoR10G}U5fqVxvTr@i|F|njh{Ud zI!^RdRs|n#1gh6$c+NX_hu}Tgu+g=*=OYZ8S+d-WDu>@`r%A-+(`8hA7)ZmBY@ zaHbWQb1X6Cc}D|pxTZ1sxeQwjqYfuFY_$tR)uovOoOUkMt<7nrp^Al1;nf~Z zqZDK05v}fb$CS|mHLE`aK3*$sZf+I`8w}W?7}tVQKaUO%OO=>(Zo+)gvMf;@w6HD> zwTO@~dZ8}49c$$Ew9V)J1Sdj3WI^nl)*V~zLt#*N^Ar>mAu9z6=8snnU8*x`82v;G zS?TrDQRF!lL^e)|N2q#+)*EzqIjQ(h_ZNHyQ`A%>b{uNDu3~f%gwqfxl|+}CXp%Ca z8;bx1e|8sU=P3PM{2QSA=l^{8A!T4g)onZID;jBf=Us)u8U!{!xds0RptreMb#8Xb z?^pg0zAgr8wA(a2fbhDaU!1-GCMA9IDoXj0zmaRi!5n96%`=8CNbqnzB zD}XFV1|-u&mKHgU3}cnME)?V(;M!LM&!X>@@#3!$V*4qqH_alLmC|?=1?|NNtKsJl zLS7wQ;}c6XlT(1bNa9O_JLpcCN`>TR|IiF85z2Xf2)!|O_OQVC+aFr#d%!T%j)Y5I zlOfz34G#;yMSdLaX1(^EeRZLGMSN(&GKQxZ+0t%7_^geME8&_7-Z|whmQ$A;Nn?Tl zzy`qHHfQ&mw>zKvw5->;qVu)(B)l=Uo@|?;VeA{1fsbeQm#6SV^uKBwOjK(XpHLqLyjvbc22FIfL9{FIpF z@D#aOs-F79g*jRAU}E=_O3PH@?Z9g&EpvW10U}w7(jF?HJn#=J0}zLpV{FI@P8Yl8 zS_>EnW0h0L)KlIX9`2By?1mp)h*Hi!rW=-w6N8^ZyM3+cF&he&p&vs^B}RvAN0z=Y zH21ruiW)Nq_F2yw?}gwFIHV6$&wZwnzW;Hg46DpE$k)YsT2eziB5|OGd7vE@&;DPJ zqCMEDBtoW2=p^ex&PPb%^CM@ZFVlv^xd-}+t5E(l#K2V{`VH%an%oRpDwf2c4@xd_ zNZ0-*Q8C4j!Kd?wk#fyO*{!>+YyHziI5LUdM4mHp58g-1lM$?L_q)$4Zpdyz#;Q&ZPDV{w(^DlYAlIIJ0$OKXN*j43_* z*EWJ@e%@am=x}M&v#7w&6g?n={35)h}6cI{V`ZEMBj>cFs8JZdyQKSl*$j@XJjnICeO8 z2gHvTYa4V;{yQl)20SDSWFlny9rE2-SG%muq9$r2K3(Kvo8?uR?B{8bd^m`Yfb;Bd z);o9aivyAP9{bK)SzAiYis#5_5u!a<5>LFg^_=DWNMYtt@JM+o#asmy75yhaDft^Z zD~D4!D!MyVwUenWRF{-pVd*eS z!g6bk&v?1!(fAL7R3MRAN~d12zO1>N!#r>HQ=H`f%TvXl$@gy z|Ec&-%RPE5Oc|?13u88?d}K%Tr@UREYSuo3onisaUiX5#KN;Vk0_4&1N@sbU#~q^z zyh$}|aA6I2TlT(%7B4W2Nh%;B6v7pe)T*%U>(Gu-Dn(CMIEA!)T9$>MucWIHdUG8f zbyrF8U=903NN=d%W#QJqprjI-<&SV~Y#1t^wQudj!rQx=j@E8H2y#XjNf`Mk>(8qw#-?8~>d+6d}*~=HoyGWbS|{u44b+aYQdtx79r%WzeCm zscGrrA#FSu9Un+9E=}L7s6#~Pyhs_06th5ayzsF3;tq5nZyDl#C|BB862W?VD`!xvj3dyus9=Q zT@Ze#q`G^#2ou0Nb0#(k4@2X8R%>;-73!cx3W}mI^oh5*{II zLja_*bG3id?VgV{FST~H)ghgQJ2t2~xnQbh)rY4WO%NTKBsMBZI$^2H4CNcjxz}-)C}Uh5}I&uw)hO^ z?Mk;vX=?kxpx4x(ijkhomg7fu8q2+W?%!(9B9V591!ZU#~JL~~W{>-zzwfaoUvVgz)KMU71R;Zgg^9p)4 zl-~vi^mN9K_wm`JY-n}xsIX|){UU5P{0{?jj8B?zZ=K6XgD8BgzA#w)mUf+EnoDqF zBE9pOW2L*Zmz4`;@vWn^t~=AAe%!Sb|DPi3L}%IaSR2_fT21>@+WE zb8P((VIP^u$7Cc>Qp0e&ohDlR`-5ok=>BXK(h#|74e|5sYc!!IL4B6|vvpMu?y%SG zDl=sFl+_o6HDAW`rJ2RmiY#DBq|K^B7!^MAM?%(&wqQ^wU`R?Xt6LES`)TDTOntO@ zv!P-V?iQlJeEyhB=xKb zBF2(H-ON7#^H9+t-_;_-g%8n;gOW3Fk$3!&&gamcFnhOuoVEBD5cD?_KK@Tig zI5V{}H9I`Cu_Wdz>p3ZA52y|X!xFdg5o>yiewPsYIYY8P6b4=T^H{49fyp>ju!q?c z!n&)VcXe3=P*W!uG`oJ)R$-3EBDAu=wfB12U)VeiR@ua*OG$9w@!B$S$Ot{ zd%>2^r&D9>4Co zl2}aq|7rm+q@2Z|lZN>k$C%JA`)0%|EYi%d%~vKrvl@~*zJyZq^r9BvYq1TuhBl(L z`2@(Iwdtxj9n+X;k2G>%k8mVlR3Ey@D*kBc*!8(teC4p~&iZjfe^gTJ@w?w7r8L@K z2MJc=<;}ZuGq2I{#h`T^nyWrp`6@HsbPMISGvToNT&M?0@3o~rRWmaLdB1x22BB}6_Zctv7p{(D+)UUu z5)H;84+%h#kSIB>h(58+91Py|jzpq-;nC;Y{s7?K|0ZfCQ+3)AcZM;`&D9)lOeFF9 z$(N{(ZEqA#UjmsfxaOtODApO&2|+YF%Z?e#ZkT}UL1ncqQPAP6l-z!;8r{oFYd+N zo#0U1id&1jySuv-ic4>1)}49pzPa!J;jEms@-64=?ESNSy*|1!*lWrlbob47_Cr|z zxVyMB!@W~iL>UnEY?}N`Mm|9pVYS#Qi+QO7x*k$#H5 z5;=`uQ7<}JP3LHM@j{%h)*kE5$}43S1`o1tZ58|2ERXO`{IinRbRug!lI`nB(>=)s zKQj(wF~9pd2%Or{Z`oiN^L=1%Tx1z9Sc^6$tDqAKhh+npmaGNUn}8`O!9_WjRm}xb zVlGh6c8x))QV2@AO9GKbFA#J7Mfrwe;PDxh>HDf{f_nqZllr=CkVTvKQ z?&uzdepdeQ^Gb(Ogh)QsL`q=cB7U^MbK=)p@l(kYCmlOE2{HN<9vaW%D$O;krt?%G z<-^kB*`q*2RM)Y4rjuZJyymXsX58d*4Dw;z9YlJ^`a?Vm$FPlT)SH;z^hV+rL&^4G zi;J--LjBW}+@Vy&L39G+Hxql8)-n4}W<~8MPO3EDi54GJ)%O@ojp?2}EJU!0UXy}2 z$NzP0-bJ21na19d`z#x|QN0>w%Vde@sD4qi)O($+e+lxoymejt%d0&PM6PWaE9|ci zI(3c7vk&D3Al;r;IiCoaCosuJVm3w&@hc}ZDwQf2CTori_6Y*7&%=WRipv1;;dyA# z_bA`18k5EQcKNMsieNhm`FQ80;SD1EnJ`yq6AudqVxOBY*UYzuI*y)0dMhaZ4mp+> zd36_k3Ylp@M7fPTi9vVEYRwYO46rFwc*Wczc;B1d9xz|_5wkx@36L<}W@cW*Od<>1 zE^eY61V^IcvGD@FZ-=bHG?qmgdxpS*Vx^dvN-!JUB19goyFp3@Nxu6L3TB949Tc1w zv+6^?pxjP6A3jc*wIaJ*?_6A&yPxirw!mxS99N`}HN~P6?IpmjB_QQP6sSjy;HP0d z__Xy8#)Wx=q+4RiE%?+`Fmh61mntd~rgydk9dOhlsGi>(kbz;AGUP6J_H<~=xJUO z=w$t*%d%uSUXbKh+kHJ%t474}u}9!x_oOj?8B2h0m?UH93R31dXGKK`GGwJqLKMt5 z#DNG`(buez$Q|WoaKPVDoC15@zJ)Z%-qke80*zK{aa0wfBZC-v3Q=@4{u`<$A3JO6 zbrvQyb63sH1E`{B7~7l6AsOx@^NL<>R|`}*cz>o&r7hVk`}bB)EoD!%RmaG>Dz6x5 z(MYh$%RI0vY3OB4_#C~cyT*~u>@9Fj5(-veL~AH&q1dMf-ipyy<@3#Y(@$xOv@go3 zAqFR}9@4Tl|Mt6Gdb{P3an4v?_SX)-B)2BROg?d6ez~1*w0pz$SgoA9F$$wLgm{`+ z_hJ4lg_vXA4q9QFlr<{P)ffc-*vd0{KRB!rqZm(9*Y@#BZH=vDx^+2jdQ`yY_pRsF zh+>JH)Ci=W6b0cNe`?|peO{?>ZFeg!?aO0PnNlrLf9`ljLJAN(5|LHPJHK!jGbCRn zg-+Ty3`Ha5TqrF$-F!VzP_{0Dz{NMB6BF z)d<{IoMjzlWa@YZSODUy8$bdV6PJRcV!e`?#JCjF8~nbhOMC(!**ng6jcye52k@(y zh#*+SJf^4Dc;k}Z~UfO>7y z=3cmuN6$>})s)K%wBgwKQB`a2RqT`QEhZXyfa+vo9AK#KunQQ%1Y8l0zzlqCRj|)S zgC;PUUZZNFToi7m#(63-}JP^PQ>>nvR_!#U-jV`u>l z3IZihACQF2UJGhRJBUBNoObY>PP!Ea#>0>Ip}_KhycGmCtE4uycf+_W5Ma2BPEVTpc6RvWDsC%a>NqfKWUh-xcl#06B%`D zi&)!Img^_bJKkUE3!`a&!~Xm`;8G)7{s_{fJ-&XR@_e8BnaKNWGgf-E;0LjGq2EDl z&4}ro{=0{vQyTlZ{YDgKP4M7{$l}itN zrx4Va@I+>{mtGZ1G@9Nji{=kdHCv`~mzT^TQG+*t%L_<{;lit9(Q=4?f-V5Df5XRO zlMZ72qDqmqVEJ9vu$5C)Q0vU%KIZWok4o8y*2V$H%7T)~0A}=hDWdu^UTdwqJy{K@ zQ8m$Zk}O}E+TE9$4g6$-ESzZB%)2CoTw}jDH>E4(Qw++g9hURp{ZFTDYk6R!(`bF=s10UXK>j-(y{QZl?6Y*%Px7|i{)BNDKTcA4`oQwszUAfhDvsL9UDvE0Z!MV# zzwCFuORaV0LJ^hE;82N2IZwa3x8&NIIP!7y5=FtIqZg1!#Qvjmw?AVwWG#xfcAn|Z zGWD@ymh4OT9T(39GGbiv%*7M!yIC!&XmU@VGjtyI@C@fFDd}fRm%+>PG!UNVyt6ReB%Ue%HM@B8LINe00n_ryCfjISVqtC*%7aQwYv(5xu{7 z`t7_f`x9AyL=gKCu%0#1mJU#QI)LOJ&xC$2OA*&#E;w8$4`^>3tz5EIOTyeM3iR~6 zU8_cN*!R!*p&ek0q5K|Ol}tuON82wlABUl`J%$qPhVJVaqWU?TSa{1M;JskCig|H% z^#O!piN<+?(b>H?fkKDloy1Ilxk^#SlbELgs;dv-JCP!j5M(^$reY4ZT<_!aSA4|h z9sduVn18&_KZOyeTDYl5lBiqo{f_RGE*E>(b0NjA`q^1PRSy`qP8h@i&-FRC^Al+* z=ZAoR9}D33m8i!sp-kroo2p(2XPuQu<3hNwZG<;8YH%JQ?W(3@h@$VXkAa+Vd+QFd z(Ma#1o4_w`W>;{^>E!bDs@rhqQJT&hB(dwOwuYrgqTY#myh50TpRk<_nPS!7(*PHd zTqAey=vByCjjO*zCm<$3Gx^lx#yNHuB9gXbUsB{{89*!oSjCG$D2G4+A-zItvNBOCx8%3$!J9isAcm=n2{cch&5(l1Ft}k%1}f=8$)0M3U0Qb5NoyV;-||+$%_h+ z>&rmrWR2jMMI|ueX#o& zov>9uho1fIpE~D&`JrPheS+S|mw<75EZ=wZO`peGZwjE&u|waD)0v-w!gYH3_x;pn z6@;xdxb#jIojZfKa^8Jg0I_xQMAoAZ)1@dhey?=BA);gpx*6%cCykQgAOYX-qNlur zCuBO|c+;Z^9V?fnYADe8*o!BH{FP8A%hhUunB${|>vgp|QYQ5(aR6}ep8}X`4!%#9 zaU_s<y^>-O%x7X*QWSFFe zf1^n2>Vy=^7g8ZpLY(9i65KW)t(V!Aq#X%pvI=@-ln+rsM{ZV4t|q@cV;&P1UePGC~ib8#CU zm%#(fu!MJoz4!c~zbp^HV<9s9b}m7>Fj5gyc2M_JRk-s?xe>+(!9&@@^6!XN5vaam zE8f$=FQ7EejYD8;01vE@*tPH6JcoV-VP>AE{(pF@|9!j9t6=}(0NXmproUV2)`y2J z?-NWKQRAsI&w7u<E_hX2unK<4j1S8>oKT;b zBB3R>*=!~m_SUm!C}UuTa`{@3UKd+w7$wVnIrn4k!$9-*!y!L$fwt@;v)|$5FLNOX zUc-i$0=74%xEW!xU8DSJXgm&RtJ6fk2Z>q~rkj(47?Ydb9YgT#Zxj4UF>nQI-tuMk z)fW#abduuID*}{kOlkONcuncH1u>U+w1AHE(Obb+OZJjRHOM$5L?9c-A6=myX<|%UZ?J-MQQ#D9 z7>Ru=ahUTeK+f_k40yEX_+AstmiKf-66F8kq}L$q&rr46JGRTl0N+S0Zb+A@sFcr+*_JhsG60TI9GsCz&5@56SOI+*nD<}G z1CJgs%x&e3UT+$Z-0BFPs@e}yKG}PvH~#fq7qKx>+baYUEmE%fiZovX@FvoP9Ra}M z@Z-?IE9n3yrmEba1mFUPGr?^4JGe9BTAfG&6pDedt|MSky58);5PG~GEp5*bH8HJD z88!b%SUFt8NzV{(_^h?76R%V}saC0*qoWukFO#}>@7QyR@h;eCR4k2I{(<~~&$

                                              vryGmbUDi01TafBePaEdvvr?Se* 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 z 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

                                              CMY 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%0Acz7O{$CCX<< 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

                                              Id)WI&d3AbJ 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Π?k7am67527wW`NuD7 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 WTNivw*>tK{_=4Pz9k48Qb|AxyjIg;8?)9aa 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⁡f(P3Xffk(Dml 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%0A?KP0F{ph8*aFH+9(vDeM&wz~3zj5IM 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�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�Z%g!=K9v@mAPilxn~x81Iv^omfz+LeWN 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%0A<`;NO}l zI!4;t@LVf`h^|6bIh)VoDhm(%jw&;zofjPhL=#hr7_YP_lR!c=qOoD<3~Nw@xaS1BbIM0DDe6RK_nYljw3-g-5!CW`e;v7iG?eKh!Hm zrPMx?tj*#UTk6m)JtYI)#%eU88tdT!*})Z$A7_(U(fuo+mKKMPiqA&em^ayc*P=yU zAxKQ?Y6UuTzkyK%<}aoE535?+S_Phn>~*2VYUMH{btX4Sh9n-epEhOI2w4F=!knDV zb#)@Zsw&&)=xDm;?$X0-R4Q@Ycu@5nTi{B(7ycR*ufjiXEtvZB|l9 z8jRk%zZ@UV z#7#ST=zWpg;l;4wM;ca>fW9z6G~lgU3P*J1QL%NH-w}WOngWdOP$5cd98Tp}XCS-d z0dZk>oa7kyOMAddAucWcnZO_S5yN@mp||{sPLDm|!z~XpXnIJE;=fUd7nP?ZTR)Vt zNw+4yq3x1Y8kLoeV%;=bsfZwpn`SKgkjAsdw3aG!z)|kMLXeq&xNdpPMJNl=Osz9{ zby3OO57=4eqooJ><8<>Wz#ypjJn?eP-R+r_kM4cIx>{ONRWBZ2*IM&1Oto}%36Z5h z>x1P?;}Z|eqKakWECzC_g7owoC5iSKC_vgp=d(ez_zDivS~oU>ay=GP36oLOlW~<$ z8&v}x=Qg~Ipvs9;dfNMxa^9Ug{4pk2u-Kt!=z1A3xL=9s-+KkS znx6OE7jQ$Jb&uHPx3&LQ3s4}IhV{49Sdj4DlGgD18u(BNhDTgkr{X2@U@5GIP?cu= zs=;(P{gj7TD<)24MZK89EpmR-zZXyl?c_#T@>=jqb%E}Ezf`ng@WRWd&(%!zvXBoGBD-*W#H5pq8Zp9 zUUo|-*bRJ?9RA9)1Lqtd$Y&v168#+J_dc-c_8bsG&q_m z=KUFP?oJF2tbe5vyc7WH&u~RijKBiJK*w;SV@yG3$^yKgW@0g>av~aiQ=al?6wUgU z-N07GG62kyb}!IslF0N!>($QXvC&n4J)5K{PM564IGf?uH&rZiPfdYYV8B?84nmE# zkkNo<1L*1ND$ubWmM+<5N*byvC%rUBhR9aHtKpQTBjz<339fSzrnKNgsDJ>k8C3;=Qj4a4q#;iwuVANnc8mf7zwpDz|*PdT1% z>&S-hORu*nIfp_gDYXH+^?9G?5g%_9q%XI%ulH#E@t^Unj>7wQ3k&;(@8R4;LS3KB zwrI!hpZk{R*JF<#n>51L1+U+$Fu(EVJ-n5@Eq{ZYO{?`gwEW!G?BPVsNp{Tp$!q93 zS4QI5H;2M>(eAr7nT4yELoxv!C8de-pMR!!-~ZCZ-;E7KJSZqkulq0ATMC>JfyuNJ zGgp_)UwGZ^M#x2jiLgGvxMG>`>nRpBf6V*YM8IA?uO1M`3v?XHg&w!VHW$zo*sZq} zES;7mr>0V$Rmo%|e^rE;wvJ9_9_m-q-5o}bKp_^o;3S8l^9Ohq<3J5S&czxVsm zvMDJ3pDf*PHWcpEZ>HpQMjMWs)-ahG93iGYPi^`Bk7Uqd)&2+sks$CkGKdflmSsoD zpt$;2!Tx^-A#jL=2R^D=YJFOi#Uj$_?5!2%sil$b2YuInYc0a(UdK}I(L9-MVyz3w z^#Apb(7MH6Z&sqyoqC3EA(6WX#TFfp_}h8&lsAQ5)NW{3CW-h9c&2Vg&g)`p+d~v%I0kpfn$XdgTi5&*b~8rV!5SXiQ=JYS*aiV;uOHfKJc52<{aX(L7xO*Q*hQ0hPnz&B%4 zs#$1W4JWi@c-%FLR~hO|pr)g$LrT{{++%D4Pa5ST5)?FRRo79R^`28f$D#=b4klFr zjV@-FS-Snm&d%=Y>Uv&&&N-P#A*J>s9143G=J8<6R9Rq|fN?Q}Z|3N!GP2evMX;%+ zr&U+hk)NSRzR2fFHVMIS>{T{K@?2KKpp#J=O2{00oLuy7sY1IR%;20#P-lXgd;a?!ErY0FGa*SFKp zxM|EhAxWDV9yMo+TU+9`vv$vF-xMm-29O11C$Qk z6}?uv_3Eb0$LNzEgFP-5pg%}o+J@oL1GP?z$jgay7di!gT%t%hz3oV>z#S^+#T+KIB7=khqY_T69z033P4 zxSac$v|O$A?NrCO{VziNNxLc`j>Cxn3);h9Sl!f;$et;1R3ta4zp=S-bc~@U-7+{Q z<~5Pbunycg*r6u5ZIIRH;-#s5BH@B2vcJQisW(*vhungbFwOO_Oc{U za}c3K^sf(s!kFWkHX`XLD!dWgkpl)H*ex`CO)@(Bel;a!+U0^RVk+1&n8z%-Gd?MX zvukS$%EAvMw^Qrag#l(ux%RPWlb1MdR&}8AYqxzIh8-@{A<$D}^z5j>%%*@?v}RN1 zjK^H<}gN8GiN3kG<2%=6@NFzUg|X1 zBAylr$_+wa_@~7$=Xi`}cREWk1gy-`r8|Prx{d}uJ;H{%lZa!RgOd`^|7oNoI_5SO z#sLElrN^yB|8n)Y*VoMF8VR}WdEYlbIvU)bwmYR-v;}rm)8j3dpWuQB_L8dd zsXk6YdjCY|_;gd#={Q$C@BUf?>-d^CkwN>!kF0l9eEGR*xrrzZ;0WSEe*?<}TWz%@?XGryH+=l~; z-m_eAK?hCp@F1Qj**<0VJwD*4s>>gx? zLofbsB2zkl3DYE$b1#Eyu+9|TMDw-vi6ChOrGN@{9FMYDt1aqW1ajnN zWDU{;v0uTiM9uU?EMH9mPkwr0ikU=k3=jk)2Z)VPOyP^p{85#M0u@&gBBMiZ&$?%_ zBoTv7U}~G<@GE2V!NB@|^5TNj^nMid>OpToqCf0jM%hJAu0v?DSdOD`t6w`)+&+bEoDxL6x z9{fpFIpOww65l5biUUyu4B1FSK6&pKZcB!D3~p&v%-Ly>&OFYttWHf%^=@zZnKqn{Ssm$aJ z6|Qq&VHjnE#gsDWs2;!T)2uw_H#ia!ilElA#CM32@@XU$;w;djhcLO zTDdy(XP9;GNS#9z>tlUo2fP20vyM;3l_ae-j;23MX$VC%jqpv2mC}rwCTR|jGNYjt zrM)NBbxn(JX;!unKIzE#Z-Ft*<{vhSA7SqlD9jek5%>^$sw@lMEQ64U!H6?9?E&Fl z_?&RyZv#jPs*0_+G*rRva7-by$OaQMIfGdc-Q)~qi>zmyzi z_k&V=k+KnbO9PKQNYMxfj5ZZ*=juUDL176P-CA0cUQ`DYbtyympHXD>WWh-Q1=?A2 zYin@il<^0bt^vFu_>V?dIbZ``Pv;mDHTj_09E>8A#6r<{<4UB?Q&N7}F3ifgDpLO{ zcGRMAEi-Kx7Lt^r?@cmS0e2ou{Vw`mLUdaalNN36i^91#h@lrg+jS9%t31C~Slz03 z6~d>t!wqG}lY^)Jkc2?DckylDaVq@8G+x?|<*|Au!_Y09d9_Wbt|6sZ2e!SV2CXNvanne%L_Ot7&h4P0Zx`-Ze3PexN7_OfVE)D0NPlR zoo~^}KJ!=Jj`b~BCR@!nL41;f=2Y#(vO-^uNHbUV)SM%n{O;KYtWuJL<1T7{1~Nmg4vHSagtE`p{)YWzsGI$ zW;4_0b~r#_S6*s!y@Q+fzC`sN2{_cO0Ep558dvQmaMhZR}s23u;Sv!|^BSKYTZf9Hiyf{*7AA9(vN9OjM_ zp?9GMpQjwZdl|dNimZ1+<|kY|KT&W^4J!0)mezDVB>#%;_xxAreWhgG2{Y4uOFT%q z-p0v9Pv<389oWg3>5fjWdy#9?V*8`@X}QBj@{vEoX}LTV7yVRcE&}9_rLX>si=&qAlCpkJ|Gw8N^N2HG0DVG+ z99yB}2M^>1(%#Q5V*vrC^V-~i$z7=*1-Ysj22!Ox8$l4b?loVI1G%p}+W}I2gj6-v z`ANYaWGbuJr!hd;>9t&NpRz7EPu!c3$PiGdmN7w-24GuDHXa&xz7JgH2$TzEdl9qz(GCxoTXiwmd3 z05N)lusboAG|8!u!cAN~lukVR2%+5+zlSOmKf%vABRH8B(BO%lGyD;KQp{C|@sE^3 z7;%GRsEib#C}#VoT*YViYX`AtiG#xVHHS3;1*N;YEx(`vF$WBT@t4F3!LD7}pt7{Q z^bS#37Oljp1U!3u8|RzU)rI%D#a{s_!A_BHSeTJMV9xIYY*|9St9WP*41k7f34?*k zEvXS=FAcyn${D2=P}LLBTsyTn))Z$%9BZ$T z7y_A@%E}>MEJnr_HI9kXRw~(|g8?+=hA*jd@(7j;c~}oWbM%o#ONF$VjOU}^{>)*H z44=cn=VoPDz0?x{d=@<%ZK!#UrdrBkHDmE4N+9GhwlY^q<~8^JWOUCrTk67zi%pwc z!mg^2g22QwxeHs8$f7}kR~mg=U8(&rF)9e8fWK6%ttcdg(Z2?Vdq-%gOTzr}oGXJ3 z+*p;ZEFi=7=OAEYV!~9E?jz3OuZXpl)8phF{DI|a)BqeWNqCRDUYb~uTm*h8yHoDAyQ+Sp` zcIF1`Zev4ZL*J*y0t@$=?ScSG`cX#jg2R8-<;wkdipatwv~_tGJQh|c_zRL$PNKgS z-EGazhKrfCe{@q+!kWt({!>v^9IVM;*{vYn2a0f7cw%>w#wV1uGkb%8ZeB`?#8WJ$ z-KK?u{~DBjE#jyzMRcy@-&YmnM#x}>o(clCB^v&Go*)f5eG#}hZ(RB9a;lVJUuOjA z0&}cqRxaNCDRVfAprlA;3k+d}a3V#FRxCf+ODT~cUb8Qllo$xx>xa#ZPX2S#F`@Tw zY6ay~{Td^RS{xcmnJ&+|pR`z(Qu# zIfxb3%+z8<7cxt$Q$$&_@UQqjt8yuFC$8mM|7mPG6ql&jV`wy)7KE@f3dS}BC8Q<$ zP>O3{n$`Ip9neN&PD7t6@90XFoIhAha{($8#!q`g$)_Cf1by~8R2Hnc>gO6_`I^{b zNU?u+=hr!b&;%t;!#}{>((@^jz20uQ*1;wI{$#14wib<|EuWiQUshTNVWx(k+56}kJ zEIr1M1$OG2k6-XCR$Y%6;+f!G1+S1w&E$BdqXauAEI{wElXT&P9uSRO?$>QHvv-Q_ zit}49>AK?eNl-ZMo%b7irn_*a@6X+kD7|2?yx&rf zUHg;1AIMXAvnq<;#o+p1XL%C&tG~1ic|qF{eo6G~>m{yp35wbaLHkFmZaKUtrKh z(1Sz5{XgSeB=e_J^M|k5K~texkgO63wf^BphAg|R#EIV zaRIpF5!300rnm-@x*z~{UjNZ*nF>+$GoF8S)F{(mO%jy3a;v6T>C=)|jZ564#|0M} z>8>*VCnWttT|W>i4IzRUWLQ)RD#3tY)1VMA89t|uBj_7o58_ZE&5h^tT=&Mf^aT`x zlebrf>mAMkA1Fem`Pzz~61IxMX=5RVCGB2i{Ez+srMO1n;}WR~n;SRo#49*wONhS_ z1tbKWP!+k8dtyYbyg{o=r4TzXZXA;)E@zHLJ1H=Ws+3AV|Bq)x< z8NsW_3Gd6KF2`YFRM8+XhU3z#$S)9)8<4>eeUR+gj7BHM9U>3Wow@OfNp_M$0zp)8 zdi*{>21B00COmcxR8Ygee-&4UjGOi94_7;$;6h|{+OkeEfw3EL0c6YL-x>Iqk5RS(KG8k zw}UO>*(lKcR;>EZ8?l^v8WOfKF$M-*6@B!$HTDDzuht(!B)l9*qy%L;AuAX|Lq}@_ z@gtGW57FM)`lFAXc^$R5!J*{Py2WGlv_t$Cevi*xh_-1xO1zVvBCN26_^q~{>Z4g+ zPC0_HBtbi+<87mJjt-Z5!NN05)+|1~6u)&O-Zd~?)e-j%<{glE?z?qrKd@tSwAC)3 z7tzp@iH=)eiT}GE{HlFFv{A2!&pf#(Po(G}2DO@c7~vUwvRCGjUP zY97JXmuh`!*>x?_qMQSNj;~e~R4~OD;Yr|4^srs#g_ePm!I)Kg%rGqhe+;#3n4I=b z_^K&}CDa21CwE#+2{e_Y!2yLZ0cq7Np-@>ez9T=uZrV(t>Xmq;tfg#N?%{2mPabO% z8|-(FV6YGz^_Q%2T&_*FycEUB`*6ByOfrga;!9$XW9%rAl!t$MCa9%KXldPmzT$vJyNW~4XVKE>WQi!{IbD>te2kdc{J0+x+#s8OY_Ote z0W=C1b4+Xmzj$iyqLtmH0? z$RNdNvJ>tXq%MYzn2bCmZn}mh8WQLK|LMsJUS&i)6y{;>K&? zbLRfcK#<~GcDM{&ciKw*oJ2s(g24Bmn4c5xv1nm%n&RnR=zjfJ;w->m$;;(dPtZ_8 z!Erl3%o8d=P?oL0NT{phygf;0R-*g!mOTT{+TZUhW}PAd4#_cCsUKznj%AL1VW2K$ z4@eFwjz;9LG1NpAz8a;({7#Med8?)) zgj{McO%?tFV{-mZ8lW=Ffd!8&+rxc$va9a@v;e1%U-}oZm2=LP!XgO<7Asw}i26{} z&u=7*k0T?|huk;nZLFv)3{2&CMG!ECXrXqa4z{kg1_o!fGh9%^EBgyFQbF%H`nlR~ z9_I1+hdvWEx=+CquRZGmZt1K16LzbPOYC}+$MR**-p3Z`{Ku;i?KeeHr%liGf1Z00 z+X@i^As5KG@}4K#8DH_fZ+MQ}ww!yI%P4;zZty^^vhaijY3lOTx*MO5p7cXyTA?&z zUGq8!Km%VrLd6Ud4>)Y%UeC(Hd_h3%V)l%9^rB*xI z3z40**EJaJzvyr?*e>!x?@cFz*SYq3r3(uu7VY$zR-)@k+WT;U9kBO9fk0{6?A&=d zgRNk-pA?MkLw5lCxL)HX>VP7?M`2u15iJ1kqa-!G!S2oIOHJlIEN!0r+bd#6-?7jC zPvXJG90a$|uSG>gySuyF+6JlWQYZmoW;O;x(Os(cNWyLvT_P1y*!%#r=w!(pMX2N} zOOgxc>RVj2aP*Wo#_uALP)DA1>qbYB{$?GczQYf`&dZR8k9D?MIhpbIWeX@#3ycCx z76mtSLf#hWl#ccvJFED;nrHOThG-7>d6FgU6cy3Evd*`T+bcwTgOA9^c?{vmgjZDWf6v^d5TqEI=TE@@qv8UiiLjeU z?NJG17|qQ|H~ZUa{Rof(h)%;+hZB>D21lt&PQ!zVKB+KB+B481{x$zPZ z@Je^W-Hcs@aaJtq46_LukitOjlY5~g|2&w+i+a2dJW)V}T%GX5GkuCl!vgk$01Dpg zKr(pD%~8!>IrdP6$uE>U7T58&>W)6ez|eWkMNVH3;N+x{;`>i*BP`L;(KL8Kpmasp zl$u5pd?%P95}O7AP8NYGa-4bsl}2dRx2S^!1zMwK>13zzFPvbU7mAO* zsHi#7vC)G|jNlj$oRX=b;<%#b3umd479&R$(P4Ed1>Jj3OfC|@hTm`x4;a1^*Og2^ z{5DEU34kAs#Rw8blEvOjQ(md2r3LM(C|yX6)1d)ohxlOvvrvZtG=C64EJ0cGsx_B1 z=Dq)NBr?e5C6&E@DJw)OiF`8M%SPWR#juxA#f@metb=9f21fJznbt!7mN$h>+<+Vf z7Gb?g`@=X*;j0#-isrB8UV*j3PNe~eX6Xg-5L^^cKR7V~m{1``f5fYpqfLIpMQaDd zL6Ck*6tmPUO}RyureOww48i`|98_zv3S^?j0cmVVA&X>L`><@aOS0u~R8C#Zl^75f zVHT}O8oH*-|usDeyOR~GvO6!yWf zR2EOO>gr~FXC+?B%Ab%RN^{+#VE$K{!KYBg#OUa}Dbc%m_oxFGn6zvh;xkMM@z7L|i1Ht$c{MxPE_W7f=221L@5vl*2G#MI$YA|uK7d9w?(cz3 zTv5Uy#F0TIXHANIHlDw-Aei9c_=9q_T56a$_0sTSIu%@6vY0Q;qPrTfDD321vfGL} z-@?ovrDWUTPeu{gDb+_n;Hbbj+gT(9{5I)J1Jki~J|UrrWOQf=rMZ4N>eaV{nWBWg zgqPZ}?^8r+^em2LWYT9Zx17qIH2la{>EQGs3I=Q%E)1xIHJ*ExY(OXQ%3oz{)U1*A zf+i;YbDk?tH8U2*J{lQPuETdU=~sl!QCk;=Dq>&+2uaEQy72W&N?+q4C&hFv)PfiMzNETFg*mU*`c*A&4G9AJsbps{C5kZ zreFjtgq$Nngo%JgA^vMFjyR%@a+Vt`qq;O^fqXXX+GaL9xlo!=s`BH^jdpqjsGIxFkP`O?t0~aVns*_TuGWRw=ER&Y#n@;V!+X zC>#o2D*@|ChHOg;)N<1>3q@(my!T4OfbsqkkmBiO(i<}~vy~}x4-ejBMbc^kiU`5t zh0hqQ1*5@~Ru$N|v&jSJ8l`n~_T!qGJ!u13sHf9VKyy}!0n!L5v0@OFo#9ZVBIU7n z<{2H4IUPPyN*LwcMgo}XE0HMe&d!W~y{)auxJ{c8y!tD&;&wHN2)TJE&~{*WmX@gy zYP>m|cwXkrd|mGF-7^-rT>1O5Hn8q?#~ZcU;kGb6MY(Y!>ngaF-SqfN@*`;ysPfA$ z4C9C-djF!9peIWnhA?vaSqWVDg@RghbAwU}lOa{jl~tL)>iaiTemd4Ri{qCfv;57Y zDFL?+Q7tbRW(^s9HM_H`9~19Z+gzDZJg_;^S(PKTNF5YyB@u1gb?>QD50_-k(i7*^ zKCV8^VeLQ;n9O;BTmk|uCdWmx6>bOr-U7FQ`U6&owrlN1uC5t049tvYYfkFlLVZ>- z4Og3QRVEuEFTH=y;n!Ynk&cfuTCaK1VV-WdO>D*d$)PQ@D;e;8b5Tx;FJ@w}R+3&? zZ)-_N#FdvW0{~Q=yw=2g+@6w3Y}kpwPc_$s6MS~N|JM7U#>J!s+%~B~r=`0-Ex&(X z7vEw$F#--I#wRj8O%LRWy>=Z&W<$nmR$LV#N1k1oPgh)+$22nk0c3f8R&VD2t4`Rk`Broa6~Mp!(*UZi{7!<$k(~L(BP@!wWACau z2?slrCBMemcTkDyoRoIv1tj|h!K0$WhLPjNe?fI$?FlwXU98q|j{E}frz3<`Jz*H< z9VopCXKgi5^=Dhg^l4i0X!a)q1r>AEV*Q)hq#Nv2TD(RuItJxL)x}X%&Rbr7gaP~G zQq;Li_~Eh)zv^#(d(7+$K(WUsSxKI!oExUY6f1UK(dlx8qhcHU3#jv7yd(hN!*ziu z#a6y?5GO!((!hA|;u;N8VG0a*XA&Y|yv^zrk@&xAqnjgvYe>Lvp&zhH{py56otxRk((||`bfw2=!Fbr#_U6DTr>|jFIft{@(W5Ev z@SUAhh7+pTVsQKV;Ybw0`jsEpTgEl&c82`LSSDcZ$+AV1ex{63gA^51zL=OQJ>gQ6*02x*1Ec}4!l1Ug?f`~v|DWZ4Sw&5?7Q>zF zG#F$ccA7pBb>RQDE){hS)W2+Ak?kYfC z7{&m@zkK^cGH)rIekroeZQcN3Ma$(&ArCfY;G__g6M>d`|KQV-xgc0Q}h!anu z={*Q18-8%?|CrqrC5H_0n}E%}e90O42hjXU0?9vF6E3c&xGBWi^{+_?qc*|_LjvzU0}@$mum~CG zNP$jk0GTPh%y2{mF4z(3GFJmA_(q6>Gvl1?R#+X@AtdnSsY8T7V4* zD49Q#eS9>k+E50(q`(J+Xp?E{~kFNV}Ux55Tii3g21!m4t^ z)i_G1&bA{s-G@9zP{Y=hb;SZOnt6H%O=g))htiznq%fpKB@M=e6O)qJ;VI}ic<79< zMSG=3a(5)a!X>Gm8a3e*6fppdB|Hh^YVSTf!ri~6lp(+0jq458{EPMKF~CvF!`(Cj zVe=~r6r{V1{-Jp7_A)>*QcWDBseg?l&S8+;X*Y8|OFF~cafGijrTqgy+=ap>u}qbt z;z&vj$jiS>jg7E9@;-gJwj4A|_D)2C2-K^?tlL^v;5jWIPr0d;*u9upG+v+fo>bX> zy6Y-Bt2gC``hBdS5h6g)CXU~VBGM89RK&`bJL}cNg6{`0AUUQMQt7~-Fb)srt8LB0 z2cF2rNa>iezn8M8EMI3wElfvu*O_7s2cN^KgM#<}yjwA-Ms%E1c6x_USUk?xD=m zi?Y(2CJAX znuy1#rr}Y1O|U2uM3|u*5pwd=myb!Vo5?d}QMLEGn<7k2&PPa6vhsM>2B!wk?&<** z^)N51nbNIZ74KnP0j5Z>FgZBy{x7QGU%k?LDaKYg`x3Y%IH`2D%skIoBT^GhFDi1f zB;NhGIz=*3YeQpJVj5>GDu$omv8}5ut;IWOHRWuw7dh}KfMB#X+JpV*9&uQ#XWxT&1>q3ydFLNqA z!;$04p-p)A+=gf5u&e3AU6A&8pw!aZn$4DIBMl*=v9Vnk@c46Oqj%Q$+VA)9+~GUC zJK=Zd)c!6;`tqkDqJ3k6t-)aCRZwc)Vdmw1Fu$Zhw&RUpVm zP>yIwnr&j^@(9Hn_xcNlN?&&05-3CYibYr{}YD7fl#x?k?GalY}`BtPqxy4<*n__j0CQt^61?YAwf z-ny$(j8J>t&+PY5@IF%%1%*L&-d5}aB^$4U6YYErId;uZgO~x|%guf5iwvRHGOO~p z#7}-3$E4SbBhm?rYxk>v&ZA{ zgupwiNx{~9YK7m1m*4przkD3qRiUKcK#AVFGBmQfw(~sQ6nj43j!3(<;2-y#x__PI zmd|;O3d^gn3z?eVl)$au7t=uh4$m*dTeH0bI zF4-I2uO%~YdhC23+yqk%XN8E{xAQ07HnkRH2bIRXr`btfw-&7V->Y{2P`YinzJ{** ztRcQT6Eh!;%4EI?2wiKrM0V7=EqLi(*EXFN=)G;M*Wb2A-1cy2zxJ;9Ufub<(Ez^Q zQm;4LKk>3_)yp$l&xLf0VVm`-7VjjsxdgspLs8$raQ4)c_-VbYASOFRI>V^5f4EmL|`fT>XSySb%*SGHk){ zn5A$@iSR%*ITI~OF^~d31|)_=9`vOjbQ>f)Z;V2_|5GWN^D(Ksuvq8FT3+>EeGf2d zGc%s2N}`v@+=XF=OHav@N9oi>8 zt?)cV+Z$ZacF8;4;GG=*Q0U5sNum4Xj(+e#90mU)@r0!0a0E&ay|qiri?7e2hN)T= zOC~PRM258gsbjRXJacL%=16FcT^5x>DYuXfkAb3WFA7NtE=d(R5D6e*Lr=!aB|SEj z%u9`dRNusqH7ywcm^z+APIJMM$hj6mCW3c zQtW`xV0=_?$CqSnLZ_%0mcp`|ko72rj#ni4J=gi`XNkgAtO$s)s{zTJaY>B_fg^2r zw@YT@(3LM6y`j7s4<;y0C0qLoNb$A^4>q=pk^%0+WxV;kNFzUEZkiIeKY05h5rezS z&iuHfM%ZYiN$h}gCT~T$&(?;3=jsQ0=&*J#irXxo<}!7aN^8mlYNv(*%3xj`r);dM zL=}U>XTsXvIwZ1i0lKNU^e97t)g|AG;1s`SaGO0;KA>enX>q={y4&xfl8VAyX+cot zzVh4A^<>Fw#wPUV*0Ps`iV-#y9J$tV2;gTOF<-XCp&x@iA0(qSl9fvq%MjZPmX)0# z-_~pm<@=&dCEwBM>tXhr`*o`o?&DR7Ohmy_2%7PT zG>YRtn3XcLzZeMIH z>Gxl_)CrxGtKeYGZDW7QqjuZYN`s7z6{C;P1yV4M6mrf2;AOL81BpSUE!N~X!ZmFim zu&T=cA2M`KLYb+Qg^a}I3=i0gt#`2(Pse*u6zPn@7Dsn_59^4Pke%Rct+S<=$b>cV zbcajlVeLuLhUHZ2QwLZFxY%aUwOD+(SM4mq#iKlT;v^YQPhTi=a2WV|9`{!rl^MqF zNTobcSuSC79Oj??Tr}|nG?wT`_tOPKT!mlRf6iT0|IWlM*N>%z(_gB#kE2@&!?S{6 z25IYP!&oeYM@E@E3O9!SD?-e0yiOu=SXMjMNaU#TKt;~U7*0s6U>SM&@)XUj*5PpM zPz8y`l%%JGFS}!j-Y_oAC&6Aiy^(7t(T_;De@bT>dP=ipK}NL}r6kb?1_qYTwAadk z?mL6S0&b+bI{4x$Rc7^x@Lm(2?dQaOngD<<|KUZfy<9Xu^A)x0;)tO!x@}OnLnSwG z;U`_-&I==X_F}Ja9GE9>R04=a#${CgC4$pjQs`?I{=If+-Hp3hlemgV%9JX$^_dej zyr;E@gUJyepJ>C6FXbUUo0Y^Ll;^#RkdDsbvnU2FCnQ6m{WP?8QA_BTfFn4ufVi3+ zYe{)g5cK35xN^(XmL9jTadDZgfAzJSJa52`^F)RA9D#R6bK)FLZwh+xjAqEXxzUm2 zhXd7Z+b@3r+@TR&$5xZj!)C|h%%ASAlw@wv9-Rhnn>DSTh4ROf>8;HH-vxGv`O0th z%(rfJrghYlbSGUt$BTTcj>dY=Rt~uP7HEyj$JdvVf(gooRvN5ye2$LB3f*zUi{7yYnRrzE)$=cQ*$rsV#fqEVvtt3A~+w(Z3uNSzBE4 z9ma>Ypp=x1Aflh(|7M@K8HNI}r<%8BXQ&Nn?OXNpQW{j2@~k)Cc0$?^O{*`kgRIeZ z*u}=D~WW&$oGxpANTx|vvCix&XBbM8@=9XZ`Ia4#? zeSMyBRY(o!G=DsZX|ektYuAI%FYhsnB?tYqd++iKJtKBBpNVL>>fXe0x4U?b(0Xv7 zwY|+tYTpo7yxHx4z4a2ai|`&)oi2{C*zP4A39IhlW>I`x*7yr8yCy zA5S*;IR$ELo_{OL32fI1UFF}m?Z3a?2>Ir=yR&eG+k1>F zh=GUHzWeO18D3Kr9k(6K%r4VhD8Z)dglO#n1R0LY_{`o*R;l?=z}HS0 zif+4DYtj=kwl8!Q`~FNl@%&#~ZhFIpJ4GGPAGSeTvg&Zc=3s(R;p@j6cWaNuyhNcZ zFFj;^$tURA**zVe7H9UgAt(>Y55@j3;#+_4EC1@fKX%)|mFd$Jyzv|kMT`y5U>(XO z?@af&(|qqjLQlQ-QvL2TefRgH($(c({${pcJia3Xc=E*DRtJl87B4S?iOmEqUF>imq*i1uH=3|?d|T3i28H+gT-uijLMp)Q@y*3dKF7qlqsRfF zI&OYHpnw}&xK@YjY;aXz(c!||MXECaGxYvK|1)Sie{ALHwMd5fIito+_aU|8Zss;k z=)QHpxv~pZ+4kWEd})#F|Xdd78vqH|T5p;N6ut+IyzCI^d1#5}EFzK%0wF}qU+IuxT6)X3m!#-wF! z$?7BSy3K%JFaTd%sq*`QROP<84AlM~r*X|ZAMxVqku=D{#W^BM$mj8zzJ6tos!EwW zCm-)}bWC)M7brXa@Lu@6JN(xU5rP?S0ETBTyHG$Wr9LfySzJ~!?%(9CrsU@2z!L{3 zjuj#K+9Zy#KW`IG|3}m~Ap*7S;RHT_%`9Ga`iv&7u^in>y2{z65iI?U(Nan2E$p+`A`y|esQx;N2&KG$jo1QzrwU$1(@LK1b`z`plc(@#tUQ=){_Yy z-`ch&(!%ihp}7^@1e?{(JHAxiLW78^(3iVdV2EbG!U=Vi$T1jc?WY(di_T+dheP3y z;vi&RAyW8ZQk2RwRGsRmdgXas6>bLpGJ2>?%D3#(6vZ>8CwzU$+XR<2A}KvPrKBCM z+3R?fBJY5!uTUS&Bm*a_f;fKLa69Lqo<^7Z2PTrdB(P+beC+m1IpfX%(`druhc4oT zBg%MN81CAP)fv^mIp@MzH6RRJwlKN5YM7|=Itlr$Co~_xhD39)Qv%>9;Jz2(L<@`5 z4Xmz3kGF#$nkGE(+KXuM@aFaP&W+5#S0bNX7H21)$jKkFDi~ANZl2C?oFyD?SQ1Mr zyft5{(cmD-$-kC+WqUuMwy~f?USYj@iWh-qGd3Z=PjwQiL$Rb|VPkrA{0(wxcS~0i z(|mWj#2_%a(mzm4SDhPkEZunX+(!|y>zOpWWxWR3hG0ZAF1w3l<7MlR#X1`9Mu2pO0A>I)Uc5UQysF!?MyrRsJZ z-g4V*IM}J%@}C+MWcsWZ2s!Rfg-<)bk0hI=-xJHfWHdc~*!>e9pEvPxJz(4R*zBTy z=lM#l{dAMQud8zBo&30$TK?L-FIZLWU90W-2A}x#&OyHYxm@cFx+)$s%-W5&^KAh3 z`^4O|Ff#AWe(wULjaTTy>be(O3&75em$?>E>x`?~eR=tbqkY;sy_UC#%;(XKPo3W@ zW*yHSKV^Eo^#LxzI=tQ)byuD@{)-drT36A52^m2U%_5zFf2N)dF%EmME|t%+ggSEgdz24i4*ZS*<3%o?n+_u^YJhRUj6kol*zb0tewvzxL-Rzmy)n)?w&z@~> z*SZhG8?R%T{4r`9p4Yb>cl1Jkg|LFp+h3X{{4Pt*CO&mMU+tHbmAy=zzaOc$TeI(U zM`T=tt9Lk9TJGUgJXPtv_L0h*dWQFNtGrz<_%*+*ejjT+xfkSGtbAwx@TaMS3zee%`p#GLKP7^0@k*B-s=7 zJ{-07RD^zvmML^QI^uVAszu^3g{61T-qLXu{GQo%|1o;IaolI3s5m2etVIfy!SN#; zl0OWY6aWqefdwLxOC=pAWkSCwpWx!dD6mp}*0ONt6wN3wgpy!l5-W}EBu9paffv0^ z0oww=jgYNjpV4tyCoL#$Hgkmmk^vCL{({HvZk*NC(~HZ?uaD1b&%?vgzNxQzkAG-@ z?W`|2_j;7{n>geQM# z6CKfh#mp%tY3s3dU*h+8YOQ6JUvJR+i0WPBd*77zh5_9uPpURENo({O9&h}9sossh zF%_Why?=WofB=j-(lD4CZM(ZBGm?|-Ysa(J5xd66Kd^|LOifq$&*zUt8}BRcPwGQ# znaCp~yl9ZelS!6}n)FEro{bqrJi)*9CX)9T$aQtFGp!PNN)#*ju0-S4Z@02JFT-W4 zZDLW$WT_34{$2W!KU$vFQadL)lKqyW7=l{&LiqQ_^ek~mQG!*Oq5CILh?(l4HF=-0 z^>Kcpquuinbwa@Tc;LqVLY6ll;d0^mWt& zrT2l69)XZU|2F#CqcgPalEWK1PcX_4dMKFYV6Fe8 zVbXEz`6+&0Qe4mc)wpJD;_KVyDBk%rr`@>ZpDZw<)&-atlvG$u6N_l~&RH}b2 zJ!6^4E^j|KHeP)Ijd%Skk3~mTdhNU4RqU3A)#|H>N8DKz?!G;yuXeR>SUjYI38z>9 z!u|bhgNu1OaKa!OLqNnv9K5cU3dQfUN|wMmM*9lXdk=2-S4;iY^-qYcTWcq=)F>>o z_dL`W!!rN#o$+PXCSLL>nXK-r{>#;Xq2^5%Y0z|^j(`kW7}0(P z1+%6U0oS9VMw5x)vq6}Vrt3e&!931ZJWFZt{A5T#e~k{=Z=dt76pcxvO~yz^P#$?x zWjMvLw@pSr(a^SWV88(I)%`AS@r_XO$*eOtFKo;{Kly{KO~29S#UL#X>`|=#!&1ko z=;i0cku=lT>ziw%OfXcX-or0dqXSYjI!9N%g<5@nxBVGm^`}5to1R*q1!$k_ZNt)T zT!$I}^MzE8d6_&6_)ro$eVa;kyv_T?xlWhQ=!@P5?L=fE8knHZ7I?7z$M^Og8nqZ0 zymPEF6XuRhY~&$`FI|9uyo98mZ2bzxI3Yypn@`maN3{NL4I~RRB3%yzzgU~riRgj# zq&89A(4iPv(?uK(yKleVrZU zaD=}0jhUj_R!~mq&x;Lq(f&hV3ZKfxD~*|+R$*w!Nh8o(-P0cg0PWi?$l-oEenKMQ zl75m~#qmC5afP_Ee1A}nOe6=!N@+(1M|v}fkSiQhd}Rp;eR$eDJ9?mZq?R_P9LN}2 zi)V*jKIuI}tm>ddUF<7Ya;EVLOW2Y&b{C^P4T04>8nv2Uxir$ijtD_z<%FN+NBtiKge77&=>yqIQ)nP&R;IrMvykwrW<`F2_1m@g?vxVqz+2?+I2rMaPoL`6=G>uBgJ?_cHT zz|x5woWU7Qmb?Q|i^vVInVc2OT`!h>Sz6xbB7#ZOL`;oy3ejJ5wjJ*zK$ zxfs*SOAAXqX4a(lYE9^?lDa%MBuSgk&4>%&zV_Xj*7@xGdow$GpR2uQDk>}%+>?XA zhH~Uh8n_bX?!}_MJFstR@X7R>Q_tgSN4q#p5KxB`L>5xBd^dYS46uMOsLNDlh!*)Jw^ zWY#5}DxHkygZOx%e1nC_6PBZ*>-Z&jW16zLDdT6Y4IOPnT$$F5cwIZ&>+f6K4iNpy!r}!uES{7KLGNbF8B1Z&#Q3Jf+oFN1i(gP`|Fe(A} z`;5f|w~GvB_t9B+lAo(*M1D+;s$?di9n>-iG67yvf?rX(uS+D1Gqe_1}@Mr^V1!$ZJj( zyfgo0SJy=k2|wd3&aBPT!Os z<1Au?&BDb+R>+g$AH>yh3kb+_2;ODvcU?OPSXR}0EwizZ&v-P9`%qZ{-GM=CcYP+G zjIUIbmDya@FoA_mCofr9m#gwOPo1uom+8Sg^1bmc^QD^)XI=Xyotgan+I%9}>f~+5 zB=f!=hR}fbY54jLbNWR4Z`!1|YQBb)F4%l8i=QPZ**=(&egaUE=Q_Mt4$t&ek5iN% zs?E4-j`c=6m)e4-4NA0rUmV31P`_NX`>6J+t0>KRzSR3@%gZ;~$ksz1?l2T2%oZ){ zV|CTADAwSyUtDl10f+jD$8)EJ!20nfRDRpXW8dYmnP9&9KU6O)tDzE0_KdWlss$>Sp|kg{5DQI1~s zvY^xic_%8CS%!#o_`VDtNIH;_(k5;J@JvT-jT}D6BsmH?_c5v!=%+`Y-)ESZ+LCs? z$poq#@05S)%5@pMz;$XO!rR)RUFhmh+x%A_{D*6Dc*kkq@b)hBc8Zf9xj^;ft|qL`%P zdakbY-{EVaiJkBawvf@spx3!(ebe0J#%v$Z#`g2UfyT6vLdR^A{^7_*;fS6A7WzC~ zH2Hn%gNo0i7OIp{DcU3jo*8-U zyqXG346_11AzIkpr!GLBVbu2pyI-41-h<<`M2QZk5P^mvaLJUBniK(Cm_MsU}@5aO@LpVdqRovNU%?pbX zh3SHz$SYAwT$GStAV;53KxKP~$-~5+ZReP*wDBz4cdVv`AN?s?VjgpG>hJlT-sUG9 zJ8^qw=)u$5Tr6`rq?g^(cK5VQ(sEux`FGl^S*vOP-##Q6E3mIsqxaIFehVF_R9jqEVoY`nb)V+v@tw% ze=L=4KYuiYJt~{UVU3`=0|3xg-`RkN?n>QXrB<$wK|>rAiLNq7_K>}Z%|LC~MDb9X z_3QCeEQSbO5~hOkJZjmmGQq!fub;z#4uaENl2-#qWXh7u6rKO!y0!@B#3mJNY13ya6OP8cQLic`5?Lv${4@sUcz|+FV7(fl~5XGu(%II$R=5y9B|d?zaFL4 zGi7_9Y4x8!m1Jx$G<`na({=wL+NbyaaDi*p*QV?dA)W!~Z9n}}oaB~8P*)W^&^ulx zHFkrTj5&2YN)5OFsAjir?#UXmCe4~;%K*m|(v1W0vY8L@!wnU>Bbs#*8X!_-T8x*&dJfFBWTF4=0a@OYVT{E9d%o#7RZR{t(;RyHrwX zrtP8AE0o$A5`PxG_f@qC$}b+fQA4_t?-^dV&jJdXoW7yNUKeLr3_Ev~$NS@5Wu5vp z9(vs0IF6H-LAkYiMJXf;ih>jgqhIBF#9-M@x4_TMP8{FcA%jo&E(o$8k3(JG5ermE zOwX1YwrrI)=Diaq!xBs7o}2CkJzuBO6?%F{tsicgx?Y#c_FYFWFt!D6AG`3m-M6;r zZMW~9Dza?W1V+~o;E*jd*=)jC z_CnSlpQ?y5T(=*>W(8k^s+rneUYQtu0*f?66?(R7i7K9 zj<=~N)LI^%OmbdCuk4Mpx;7q-(DmxfTnRB7G42`0Tc$c*4cR z#jSo=;RT;cEcc1@;EmVwkpxpQ5Bj3pAtXnF3HI0-MvXid7K8Pt)h^My+Hr>JPM|RE z(r8#e4O~n89oA3-d}&r~ybxBd#lsM(HO%|Cq}XUgQW%8EJvrxdyQb-AB#m{Ou4$h!dEoemy((Mk)zrbAk`EtyX+@!5KXd`U??pJAM8Due5 zfrm|%*IV#ML~Ecl;EVX@9yB^{HigH!WQv_CQ&N<;WV-hu2wR#?DAX|!xsB2lW<4P3!WOi;p?ULN_0%Jg0<8qTx~`9_^;mRo{c)A=SUWPFmj)qq`rS54ih#MsE>KfxLzO6zDaIgUCW?mCf)9H zZ_)|Uo<%S%xOkPjQ2`1%~We$xum^@`^FhVm14X>F(Lp< zM=P&~_f=xa9VADKkKjibYujwIUUwNa$b;f4%tTwHgc;YsF{izd!Y^@P?GNN8!bZEj z20lk~Xyo4F0Iq9RBcksm6dbavI>7LLiq#sFe@FNp&6 z3(*e#?PdNe^P3H+j~OW_Rsn8=%*-lKuOmEk)~ay!kTfYgzeWzh@31_TZhl>>7o#b9$Co zWOMmHATt!(+wilJF3P7t9hb)W`xm9O3ZJIv(-*_<$8Vo~l&TiIOno9ELhl;~OY1?o zPJQM~u!#-O7OF=gI>l^##$&Xgnl`kvZL~ZB=e8A7tX&6yRB2lK`R~b85A>p?;E`9m zi**+F^VXlTqbE?n@-iy%@qVe22CQGApAyo8zBFtJrDd1VEP)rNGmreBBhT#pa=o4= zXZ2~jyu@@BktUUF7W>bgmU>+Zte{154qe;SQ;@IavheAbj(ksIKrEK-QF;F@D=2%S zQ-Zg_=oA81#TG|p@SL^q95TFUfD?GW&RTi>wNIUfRfIG)68ft{eEI68 zkEVYZ4Y}pwXtR>HEubOOeR^Z-sjJ^4V+aWIz?d^b-3#s1jgmyS}dxp{-pfXxhBb41B0^ zyDRlb;CGpi9!G<;@8?1)b&&2%bMZmhoQzdO(&K}Q>ADh=j`zFS+J z`I>|PkLAoxb35064PeUSMP3ZWU6xIvEn+e!{6q(#te)1%>;j*(o;s!|i$D;n(0z}M zAUn$-_LbY4w6q!5wJOW_#)lnot?*H^R%n7*M;{7#7=U?+3Rg+Qo{SiE$AK#gNAZgp z^#u5*>xXH?eYNRQ=Ez==;abhQMFN%)ZQrbEkn2^?#7ei%s0R|gFBtu|5}Kdv&CnH> z*cdJXt(3*-6*zzU0Yr){>doIx#*WHW@93Z56Q9INtAKMAPTVwrS!*rQG|cZv zKEMr*N%xW@ycBP9wD7i^1mdoe(RrssrcIV6#{ap4Wo0me^%cQe-w;873C$ng7ugNR z6v3my0}2x%XlCE)NJm*@hz>KoOI{ys7GVw(x}}3#FGDP7|K7W0Ve}D12GUDSm|DUM z5P?#gW{(7mU1$eR`uEEQNX5X-4`fYJc|=)}fHv69^2DuEwHyS_dBn#wU8U*5wg*)u zk{w0nbf9co5v;;cF!0IcfOs5^dK#&hhSB!tn?kX`D)I;9Y#lm;*Nv|*p))3xySU7# z`#Ze@|32zQn%JF4Kw%5Loy|>p#V?FR?GXr@Mq((K7W6Swb!yo6FN`DIqjr`e!k1a;sPXocn))x-N+=I~@7fI?#y2-=53^P}-}bIbN=UiMKr_C_{bDW0IY(pV z=F8{Ldk!6s$zCOQqHj}Nj!Nwxqej|k!EWm>l({xI1 zV15KwPO2@ho^tAzQ9534X0<#=vcDW2+yhLt`nYth$4_fldK^pq_+^SmD0mD72(887 zSnpD-pRzvPx}}{aeomugHj~hnZaF$?!vrjjxcA39^?DAbvEY#j^Pgh*OGe{GGn@Od zUYD_&d1mI8&hPH-`T#jaO&8|~=-3;qX2aPOha*k()<9{~88s~wfbA9~V;FhSl+uaChb)Zg`sa%(;P1sG38cIc`c9qt`>zhL!te zzNHcGY?I4t8xg%O$QPF6{qG{5&GMOcMlut$ua?VvnTPjtXZ73oBA>^9i|e-Jx{1Eab7a({t_%2{RZQHd@TFGKv$H{92rV^kXkK5 zX7<{D&@ZPK!sSBqjn{}ZZD~nE?Bwup#JFA_k1Rj7?r+BF?$h4YN^12H-j#zR%=zfD z_-`~`PyY&gTEeu&tE8o&F3eYgEtc6?3rb#(zfqWhDq5_>KEoo~o)qCM;Cp0g81Y@_ ze3BgBjLAr-Dt>~I%nrj?BLqTV;GjqvgGp1O6BpCR1N+7+=8QII)pCCCB>K@eq{HWPc!6Qy z!ePT#J5wSs(Osz-a#mjvfY z8}ELGtT~?L+0~`C`Rj2?m96X3(-2ykcUG~T7v;1{5stg~46-hiM#HH#wa1?hJhIvGvn>H{?< z_qay^2RK)cbIIC$65sK@w8VibP%KoLH0);!Y1!Nce)jI90X1I7Pfeomfa%sw+Guv$ zM}SHu4H1ySDG#XhnD2bMid4TA@Ep?Bayyl1vUc~9xGuKJ&^`iJ zhh(kIUbJ&zHu)A4ZIUAOe(s^v`s}Z~btd-{s;VUX3v~}{IfAqMbefCtb6y8i*-jRd zZ{^}VwH4?%(j-(dM!VSxO?6pc>BGne_4POjF4;ozCEGuo-Lr{iM6JKE zf*;Toq;ONVqSCnwe^Md$>;+s?-bnzqwe~W82vR7YL3+LjMKP_P?89ljIk(By^%@KC zSoLUxpJQuTg4wwvr-_KviNqC39qB#?*7%bPRi!4MY^B$VX+kk=kKirHwFH{C@U{Y%+l6opo3!^$5jUt5K!$4weN^&hz;L@YHQ%< z!^f#5W&VaCbI&0G0G1fSw_saB{8+B!?}msBAETRw6DLbylY6cdRij1QXJSpxPFTYE zqeFlHNl*D+7aGQ2q*y?=~85W?O`GknB5#l_f*S#ebDWjG+TAtB@M7x_t zI4B`=8R`R$qzRwH!tew2VX8;|%&oC=)x>lm1)u_OKRW6m`F|6V>i!50^2ntL-hWt! z3i>+EZWuXo%x4Q^$MP1~YEvQi(L@GfmpX3l^*#{rKqc`tEsuXyxeXwncWwHCIv2v-(YGt{oWAXzeCE6#xo$Aql^Ge2C!Cm z?t_umYwXVL18N07xGk|f^8Dr%9nnL5)%e*A;}vukdYO9aUXe7(9cLmRa>e}JNERJ! z9G6B1jS z-{aHV(}am5IUf1S^pHdc&y?349v+^4lun9J*U_QBP#T31%Ak)^2t{i&!LsQ{4S z7bGSs#OE<1MRCMMyN)&7BS5D&kcaV2!n6FqYNqoYjrstHNEbng>0xmBu!yMr{;>c? zjv@+wcGuv;smVTk%0%}^HY0)+j+H6tV@Cb}9)W=wZXhoYBG2ECd?7ik9-l?;U@fJ;kJE%c zi1$O!ZLy^UPgO`0Cpv&0^|zbu4^%@tCTT~8tJl@j6B~cb=?i@?$e>Ql3wuerW=gcy zvH2@@Y0ALZB|IW=3=CfpiPpGLa?8kxkK|MeQhM(&kn(^wibKE!jOAhIIWghNNWI=3 zA>tD_Xq{~5w@`0`bUB~GM3^WgSl?yjv0obdb&~(O8*&8QUoOX;1C|7dm^5S{E9=z5 z*=DuD+bLw!7#2uM`Ugy@W*^;X*!Yxo0;J2c5VwMyy!>sk1Xs@}t>)rHCw_sGlAN$c zDO*wa%|t^d_^xobeQB26>1d(AR8Afi2s(@Iv{B52{Z=&dYK^vXN0IrO7vpWWwc`*q z9m9VE!7Nw4v@GYD#I&6Eu1>qLd(av^E@44i%cl=PD`EV^9k0dFV9Jf==g2f5c@@mF^@ZZ;{fk$uSlLQ7kkPm$X8a=jiLNk8H53og|s)u?d_o4y0YZ=m3oVB zvZ@jgS4#jKr1&v?hp7AcH8llp21>&uW)?(j&f(HUJ*m?M#pr2K1Uf&6kE(LsmpeN+ z$1{BXL27^a30?Q;m!iRgTMLzy`}TLk-K9U$9?94HTFwi<*U&tbOplC?(~ z%Fr23(P9yFe})l#=)Nk$j2*`Oxeb3dpmk6mfA&WDPUbbD8kQ?$4`LGFeJ^pJ+W5@G zz;ts5B_wXOdaL_PfS*Y9QSi6JP?^X1<|Njh_6u<_gsduJW2@3Sdgp8N(G}#IORG(; z)a3lE>wE`Jg}}&ZU5~*KT8{HXC(3b9VtrNX9gL6i87-tCJY+RMF5i&rjptp6t^82- z6h-+=@y-xeaNyFslPO`LO@qy~jv||#s4$o+X)%~IJi!0hd@%h1b$1Zq<5LT_&n`S7 zNsZx(bW3D7Ul68(?TWUAiVHwXiKTirkI-G=iOH~S%8vjRDixwFu5OqctSJk@hQeYO z?xgXKR#l*O<`|yBomCaF&E}n2suLKrO-#Jj@q=#L65_S^Nn4Z{udw9nxW#~*$)@5F z5GvQsO`A`hPnd+EnhlJc{&X@TRGx!J%~kXH!{Pg0{fsy`0>ApPHasb3KEBel%3@Qw zIvjO(BAZLuXTR|P$wb7VPHp7Dt;uxCUzBaN77iu{Ddo!Utl8|Fwb($ca=xs6FCBO~rBa0-%unghT>-vWW<| zDhc2ctrCc=iA+@PvyV*(arl`!rpl%MO6-A7TbQWTE273csP^>dm7L;u1usO+--Vaq zYqgpjeB217F7(cuiTc-3b5qg6A|)Ig9AR|Q{OEkoJaqX`y^uPk@M%aMC+OuNDvc)m zVVZ#f8={%hB_Z|2UNT=z#qY+yuzhT?=YjgG%=*(_qM0*}B~VYuA1LYR3nYy2K#V+8 zIA&xS2|U~Atn>Y_cVqvAynnd??fdqrrF%kfwa02`i^upRCiL;!)^8IQ50D+xRZ)E= zN@&aR!nUUUKpY>V3sDQ>$h(2gY;+Bo47W7nB4x=Rtk5OXp?KWE9Sn~G`12?o{ z*ND=N#f#1T5|;f5+J;H~Qc;S5i)sM1pH$r%l41;zg?%*0a)>U5`XB}v=1@~Y(eHp3 z0~m(M3eO;)=5H{FOcWTDDBxb+Q_HO#PA;Uzdv#lO;cUH;%=I^&(&(3eiHC!G`CstZ~UO zvTXZY2u8@-C7<%^84Ufh=Q`XlrOdM;4K$j+%heG{iHi<8c6b%bhu- z$h^t^k|a%8UF){{ryfoZV%qYt42JsXy)~;1k5*hp$M)}4R_%Yc#l5{C)Ro!X9B(EC zr3jLo+VPG^WTo8>L?rD#pN!kv5kpux2}(e*Q&W-*(|Je4c=RR1#ot0NfUZUk$^T65 z>m6;lomyeBOA+WhYb=lQtXeNk2B8tm4Ki*nSpsr zwWJ3m8XNl}6{r@6nM4(s`>-kuO0)FuoibTxY@#{SgOT9PJ>8-jsuNkxa{fV)9{oa{n-<;}Y-+c~)5Z4~$~6Qm+& zpJE_u1dhdXzv4p?Waoksdq9%q5zoKl=Qp-kCn4-MR@)wv3y#EAkQ7#dM_9D!SW5kN zYota-6;4JYB{m$cM#D7`1633c0+8yO~uE09&HyY4Y_>!(%CxgoSe$G87?{e0orexXHyMz+YVlDr&k}^8BdrK9qf;d8HkCjinkRf zhp?j*{TooF!G^@-d3brFraL;gC)$iUm>7S`lh|nyd*I+k3EhD|JA23cZJCbr9p1)+ z>tOmas!=8O5J611BZxM6Y)*%JXf&`?W*{|uK(N}rV< z+B7nZMr59W!2xb9Vr8OA933Rr|L}>cl-z~oyItJeCm<=FkLsA_&#t{6%MxCO&fF~& zEd>@`=W(rJN;QqacRcZx*1~wkd6L7>NDfAP@>tdNh=DE!BHU-cYujDuxG9ju24226Gm{`}v zWpqT^Aas4aVEy6iSW*PnP!(wm|LL@B7y4w9pBQ1=jZ47@Li&C-*gaW-3Jp0%OVKiz8AQ$sK;*;1Fy z{+kysC^tXfynpzzenJz%p8JgWTcDmSkFeBOHnq1ESGBdBIqE9LDRcJ(V3t=^!TPSP zVQEwf#Qk5zjtEwNrsMgV-Xti)TVuUDb@&k?>@q1UD<04$U0S4b%fitDrt0lmr!+)= z|Dl-TF}HM_>W$plZ5KlcxwwSHjHBW6_?w+JLb7W2T;yM)1mD6QDwzjAu61zeZ{2hf z6e$!)$inz`v^VG6VrJzlqv9#>x0F6ly~UqKDVjhFRc%X7ZsM-Z)ZO7cOzj)RnnP@7 z9px!0CnQQL*RrS;+S9s@mr7#?2!O&rr`LQxli8m+y4TX{HX$*DE?+0JtE#wvdnp#z zQ7y09eU(*e@~$-NZ{cqb&-DTCK%@;|V>si|HUy0rAjaALCu>ovWPVU14@@~f_^!8@ zy_S90V)N8vyJLA;HP$tc6BVzuStLrg z`le1ZVUMZ8yoNS&UhtKoT;FZES^qVUNTteQDSrTm{k57r@qe~mT0F8j4vyr*a!4_6 zRVxI0kch*_E&nq%v?4$>?m?C*Iw`Z`;&0J;_0}&A0H|q!!k{hkC*5d8C-Ezx-!Rxg zwZ%|CqJ?2S5*w=~;B97+ne*S}q<|lb0I?6F)zk9Agc+Vth`NFs8%Cvw@<5#)IbXdUli_S_uIQb zN43M+I9@>_l2UFXgiz$0aV{(=fk!V=x-3KoDx_m;=E(}jZvqkRC~9`_WQi8J3P;gn z5@*T;LHRZBK`|(TFV_E2Htc&GL;6lx5siFH7mPrxVM)!B#7ARV$OsS7;TL$;;KO( zPDW&QY~LBr{ee1XNgh@NftJEW84_K3Foq2+h1#rAxIp8wNOE#1h82?Xh|MpCDM=>} zq>km=?>9ibcQ)P(jhy>>EGe-h`q>jE*rSD7Tt0F9&e_Sy$;D;gzLh3it$;Dyv9NJ2 zy-}x7fsf4Ww9ZEw2ZmM%VhNInCOkYi2qpVQ@sNDCieAyIp%A#79!CrFrS{{X*EdqS zB7Y&;qL$4-Yy~6;XEVbO3>KhWr@Zos@|2YsI^LoMpFuxCKcWtZ->K@;Pu-(5EOE2O zo&P(>r}l-3NpnA&dY`{#nlI@=M84d>KOBZAvXaZ7G#f$=^Ra+%FlULI6X9PYTByggVFrAzql$eSo85DR5Z}s1* zSIg-|TvOAUC9bb);7*1H<2->G5lzyB;lel+PNAZiu^pZ>M2FA^V~Z3j&{72gau!6v zu)(ov1#y|CnU%V>&<~L zL51jZY@Ys|fn`-irdPA+O{359{F(w|94z zt95&EA>N39G;EZp#MPZ>$Q`H~q8L2C{)-*N*m8^w>P!E6zpADxSX0)93oN1LH1rSD zGX5tHhz1W4Z&?roUp03u+9z^0?HQp#`64T@30_cB>Vm`7o4rBkeU|rUNuz7gGax|g z%lTFOX9&ZR!DmGURJffQ3G&||wnE%m-|lSim>;$tZLTx~=*>`wIKoZ3AmGVYXa4?&}w!EmR_+$I3u>5+R}!ZUsG+-yQK~QRPBrJngI*456Clk796&H%DMM_&a4{W` z{M*Nq1!rlguG#3_8p8Km0lsUNlhJ!9ps9if*TbtRwM|L61KMo2x)j6B6knz1ftMRK(ulhL>~r(JYXpwJD2AKh46jL!T01ejs|l^ot=@6e;D&cIV;OM z!DH^N#-Y3|)K$p%LUIriI14>RUyOY5b=y)!#wC2zreQj675`NbeKbA}dYBK@APbh^ z&4|Rm8xzh~MU#G-Qr@*~NVmdBRQnWP+E=#L#zR-U#3aB}c#;OGfaa&kH=%q!Iiah( zu?Onvd>2*U+K?73?i1Q#c?_aq9E@*p(j!7RCD!viGd%W>_|r3GD(AJVtqw+xmhlJKq@S+s1%y8J!H90TG>Nd>P+ z{fV#(zj?z88RpZF8Q@ifxrkETLcFng3h-IX_y+7DEd!0p&)-TEh3SmIy@9bw5X+P} z5Z9D;((Ob~95Wo<9sdtC3X(Z-CPbTNJg{a0v$(e9jTAZ6KgAhFPV9eJ<>znpgq)g4 zh7ly+fA8K`LIMBX5yC`&&Gv$TOZkNywR|Ca zfS?_**UqLyu92@Jp13}?`KiJy zB>QnA8XjN@Izfr^#A5Em{UuaGjb1BtuV zGgD~flsa8U%Nu&?97HS5nUs)6Fg4o$p1C@CCzI{s=0fS=QAZ?2V0Sj$fsv0C~H7lx%*eW7mN0?SN~_UWp@&VL&b-PT2Ojg+dZo;{i0UJqCt7kyqk3d zzl&Y_eubsHpSlDo@Gw-gzng^ZOI%<1yzv9`i%r1?S;PmPvP+K+jO}{XnaJi4kM#W7g&p8}_$c9cL)8;X!@%HkCk(j0 zhX|x7NoO!0t`yCCBLmr9SJ{Qh%HW)JNV?N%)%TEXzmdq=%;CvFKh?&1joJKU2a>}i z6mZtWIW8!-*=3# zh)NvNJ99#AQQ5i)yT16qmno50-<_V&?)-9q3c*2zo90k6>2s!xZ1j@e=xSh zWP8008cjBxFMj|sk_CCq-k?<4mL8YN3g9bb4kL?H%azL3dkHPqI?Wc@;5lsecomgJ zUk?`dWi=Zplouy||91Nq9yKY@ms9;x&jfqu8hyJ2eSg0G8v`giBEa=}svj~3$TV(4 z)@^hz723+o*Fpq&9D555P9K}p?o6MTsEL>BoqvEcV12(^oj!cnn`p5wm3!qw`b% z5_f0X?|-qLIj!`*6uNJ8*Y4|bK`2J=4u8$GWtOqsIsQji$e5MuMF!w6nngOF&*nqx zN1}Z#YUL2%;wGkZeR-POY1+tOvfXypVbapu+wIPjmuwDFm3fWe6c}e6)UAdszx^QK z5P1In+}RPdrh~1fESPI{^!G4@Y5Z?yFowx9J(HEjo0hi0_DhV{%Y#P~$-?_qwKoV* zeLc)6|IYLHZ)7g7nK?!Cd4YVqT&2c@1KA?I;bP|U;{^YNtjrvm>bi^U=v*Zwfr*aS zX{f^!hMTd+G5_vg^KI;tLU*K0@pJx0oyAU{_Xw9aD1hbt<$XXyNGcGR%_a%4CZ1u?!U3O*16WA6(@>;Z5#?$+wpe^lF0N&fs*LW8jF zbB*Wa#I|D#-H1=WaTd`1xBm!i9N`3a&wgfnFsEilfXdv0#izCGhfJxmP6r{*@ww?Z zYDJXr7e<^xLw}i3l-|Lh`}jub10#@5jU3vISI%Vw8CilhHt`qW?o>ne;|~0a@RQMZ zG-4PVU6M91mQeQA5?2%u;Q0fxGze-h zNCcgWn!|Fq@J<|Z7U^P>6Q*R|;H~y38+i2Wbf|M5NXVd0$u4Q8nFR|m#93dHui?J| z3v=LrP|{WF#DyWZT(D?5H<;S6mxqR!sis=FCWO>JH!F<-8sK<3+xr(S3bT0?ov?4u zfb_NB$Y2KnnK=%Csz^_m79&kEG)IP^pcV2dN|pePCW2Y01A~$Ap?w+XjXdC)YRE?K zG(JV5RV8j6Z7Heq%w)5I$%IHn;Vjcde0VwoX~L)Ii~Y2_!P13=4FaR9D1q2~a=xI^ zeD3V8v_?j?2y(eBFfbx@_DmYO7j9>%&cZcLl(0X$i;NoC&}!XI8OdT5@)8;$=MAHX zpu3=pg_4c`Eevt>R3$SYD{#}2E>iI97{oKiCVWr2z^{3b!b_u>QGojPcR@IClarK` zntN9P6$)`vo!ie4kCP=7!8fuO-8UNI+64Gq-QYz_>WsV5Q=*t_gRKdudmO=%p=5JH zb>|lkHjn00rB)DC9S@QpcC2xAHM#k-X)0zIy5*Qa1A~u3%*u*;h@b#+!KrrMYdjkc z3zR}G#Pl_-z{X!n`1Dy0Mp~*Uk^|xa2`Ah1rPYK2hx#J_KdRm`s?D%#77p&#LUDJO z;$Eb1Qf!x{G?3vlKuk#xZxr5P7 zB7ZVkD{B(@3bVOd>P&DKVd|`4Zdf1)3(EmP6P1|ZxJc%F8T&|hVI8cHFqgLg5=Ch&M2jD?#s8=a z#Yh>xg#=uZoW(qtb+;rnz>4%IHGXewYilcRTg4F-7LjHHs{vp7 ztAf*Md(VQla2;6%))}0^+kh?`Rw#D>0?) zw#pUHmB(P!c$csmV&9YL*6AbHj%XVMXD*&wY;e1-&BH`&NQkw$+8&&PJ%3C`|2;%a!ezBbH~g6k9H*eBy7=P_Qh^|gX0J{H_59+J;u0gh`YEJz z$-6nvS5f?(B&nu)vVUw-$YDgTW%2VT)7_AS~9^ z^%@GN{rD{4<>i&-b?|FIV~yQ+hsW>H@8fhj_nr4QIL#rgwB+pK;%Q&u^Zh}=cb}Wu z({P#G>5vhZrTRKPSVP}^#xxYI0q{fj-Jc}s<*!iJeT7ahj1%@m+urDCSz1|H+GrWx zadO}{eTO-)YX+>bK03QNySWKIOs{KmR&7_=x_?p+%BKRsOuCwG`iSZa$FC}%cRt{0 z*2Uz-MfAnRr2g9@mrT6ty4#dOrO&2K_G_ITfxyb5$DO2ZUw3OO1R(bO_~Y5n?^doR za(C6gMuq8R{4=w%0*q4&KqrNL^He&n??Gdg%y-WFyfJ&c(P!=-GcJ!GcNH1%09OXT zf=0``LjC8%mh2C!r5>N-vK8Pr3kuKc*H49^tb@EvefP8bwl1O5MdrxNF6Z$94TAN# z@;(vWxuYDgdJ5#~eAw~xCYMSWf4|cRmCsgD5~|Mg&C#d9q$d z!Olf_ZGU$svwdE{`1iORtH|1XjyJlo!h63|Tkvh*IYn=EwzjR&wfo=o9Qpuw$ST|O zEbA*z?_A8M?cKkTuhdg-b6roxgsWVxt_0w3&0#)O3UGBYYD%x~TW0bJX71&)INKT< zw}TIf#zBjweH>S9d|I5Ot z@u6C{tTreP@-Ya}=c>!{ewqK};+P2<_S>p6=kI36aZH#xH zc;5TR!jBq4FE;o5=^C>h^6|5L%RKh!Q+#*opd_N`o~3fziu3mY*$q!2kjv5eZ%I5C zIV`k=Qwr`&4>H$oXUtVoz zu7zFRWMIW}R#trAzn5!?ql--+G)_CegD&5#2E(wD;trp=8`D+wcJJrIPHqDe%ZV*|o}UH6BEuh%0O zEFSuup`OJs^SAIq1Nfw!%RwEC0CQNv+VR597hg6owvf8%3!OMOQVyaD9>%lCZ^nfP?>#e z18VaDQK7N0DDM_%=Sj5%(|vBdHl;ibUVpt;y}eXIrE}`t% zldi71DcHmL&yUYDz zN>;Y#a(pM#3OFQSGTmtdtTj?}y&%bDg>JzRHWT$)K# znsCI!uH@9JnW8tVuX?@E(^D2C3E;g<0b0p+(BMsvNT1_4NFao66D>$p#Qfp&cRp*% zW+A(Zfbn*Kzu4b!wmm5v;!;vE#M=zH-LmmtvP{X@0L|@@y!$-&KwR`P(JM8qO?@e` z?u9VbIWocNq=|y)?(AdS^2nfBFp4{2hoPQ|dJoA%6lS9Ug{9 zAKKyTpH^GJJK9YHq#Cp+dL-4La_fxvMU%dRoX#`K$U!^z zTmC2_D7$X737adw-lqGoxfVu#9Ayw@wB8Nt3!WRw!pCUrcZgs6{ZFmP4JP-PN+ys< zdK$>8MNxacvYHfR2jf;c{kdj&r!YG~7IC@cRgC?fy5pK8xuhFCO|l^W6s6nk>uwER zjR55|j#a=&5Br|L8o4KgG`4yeOA1qeCgqMGG8>cHy_QT#-Q5Va@d&TM*h1`=ozQX@ zGJSrUFd7WHq!>g%cPsxmQ7uw=6)PK`(+TR3NKOi2GQ(0l9mr6@xm--5_E^rYQtg5e6rQ3J>`gHAmVh5d0DH*7I<^~fdUk_9uSU+ZouhademdhK>)7&BLS)f(mI0QGBoFBX39@)) z8Y3JKJ4CAvL!Tt0$2^UbUes7hYik)EEy;SWRlWo)ni$1nGX=s&SQyyP!vSk%a4nnutSXxZ^q@;9b$o z!R8lUHitJ@AoX&c*Es$6Op4O>x1HUp%XOaOo%sq|bITTQVUd7GoTF*nadLw z@9M70E1%7eRe`p~g^agux6e+^3~=ISww;xgR%1IhKsN2--@~|D*E3h4a*ZpevW<$$ z*X++VbKeUn;tuOuKF5|`#L|+u?F1x--r1}qY(4&0{FtzR^YgRw^R<{c9pu_>x*e|T zCmeNM^;HeFHm4RgrvN}zaTJ8qiUWv0_XkhLF#_EV!H}RT<6qgk0nE+x)%b5Oi#8)pj+m8W-JL|PsQeQTYo2QM?uImIlpBZ(eXJ#!okH>+O$#^qN z4%d5j*ZagliSGBTw1LsD`DorR8kNugE~`2p7E7k5Tg*BXY&Qlnn--q%bdy^f0;`v>klpJG*KiOyni+4s z`rZc@UP6tAbIEe)>#LUu3A+kHAKeMsU0<`F14BD~^FD_e!B^(;&4R#~7leP*vAK#X7U!)J!Lr&)L^HM6a`#ZDYZo+p-b2!EJ)~c6h+m z-oPq>k9-?6?--}sh|go8Q1+4U`p>VTe2oyoGH#FS*&l%_>km*>cG=L1M!QbyZq2-5+S|%d_hv8G}=eg)HewU zV9JAa%i#tkXb}ifIP>#)g?f}jMm7EP;@FpdA1xab8s#lFWe1fPJ$<2i zUN_g*zaRk3cLJB|-b0xjmJ|7?5L;e;Z^XqvLspX+iBB)vu1@}PZ8(FR+#ZK(^1**M z@eu5bQYoL`rAmd2c@O4+;l?4e=TL)P+x5X>q0F3gi{Iu(O6TqQ@pa9?WaZ=MMzMUM zi*quk_uf^X-!+f$TcOYkv(m;p>e@rcW&6YYSAhLvvC!P?`TUui-TQX*<>qF~Nx-Tf zy%&@vk;{>n=_Qs1(MFBW;=_vbsm*tcFXnT{?`kzc1!H{={CGFX4mC3 zS8=K94!msxUqT?EmmPh`Zm-XK>Xh;h^s@6L31Z*r#&*KdEthffWk7aY7 z@28b*hWmq2HUeYCA)ya~_x*7i;Q8DMw>6JruMKUdg}1>d@PFa*ZAb{(-xOPa_H(ck zsjAcS9!q0CJuT+K(`5;bh%&EI4ZHoa$!b$DBVo$#Hs&KTOtYY%EVa&XQ<@gzY-ERg zsf6u{$`mUDV;ZfU5icJ7BjZZk-Ytkh%P1B;fbYpGq$G5U<|Cxe8u4bZV7!XW6n&Y} zEyXBfFu=dO|UM zecvI5sHVg^h1Sq9;dCRe3Q(u#q%!z3_lfvM%4Zbr0b~DTjy;Dj>XU*jWHwPbE*kLT z3O4=vtMYq>{;_w4AdjM$1x31e>Ucp?^ES8A^L9cD0e5Xcl7k{`aBny5G4||55Mt6O zWcACEaj&b}`y7z@2le$UatyuRZv-r0RrEnwl+3Obb3S{39t!R#ZRHsTm*La!7hWQk zM56K?{cuT8QiPLmYyqw5ZgE5+eD0`xGTdaz94`_G0LY`6l`gadma5|H%>tp~q*N}J zf<$^*?g9cQXF)M6hbM8FStfZ_Nm^CuuPu^($zg%8qv+7lvcctNg2Pl^ z#DP)eW|-m_08KCiW3r;~kN3B&iN0t5+_IWwwVo+*ymKtYBn(&dm+4 zxpov4h4BA9H+PnBcCzeFmz7sfmd7qP5|1w*9!I-~Pp*;eUxF3rIEV*gfIO0f%1H^4 zPJjm7Jh!W_z$|eL;)QCq2p+&fT&4L^BE&)r5Aj>SlO9GCn?8gzP(7F3~fet$jFi z|1#I^+8$-J^W%c!S!r@RoKxUuS=yPmxvo&A1s@_RhtHG4+P1vE8zyr_YB}ZT8+pTQ z*5yqnWYpOiwalXa@H<$0nq2W8>?L%)W-sa08(wA+`aM7Up#g$LcH^_Kp1loCp7y4< zx-FShrJ1!IemJR|I+waTZn<-FW<`lBt<_np8LP+?Diaao>v8+L=#@8A4Ts0fgbFuc}vuBSj@pzfw(tGoLKZEiSZh_YqYB z-xH{#y9#HnoijjPTY26x+CV0(Q27jOK!govHX8BDvM!37`?^o9orJ_lDl7amQ$6B8TRxPutUEC?+LY3JKpVk3;Z{Lf%&!ooy* z#NObb0V(>L&?P{*3gBS+b+PsfMPdbC^nABh{*fzX*r#ec(PdrlSXjF%-p1`{+r@?7 zJ4dZa)Uq#Fk|W|B9!k-3zAnF8xcm21Nh~;+?SiT6x=J{?Y~1DsA*{@F z{`3KL`L-#@cDoY%4<<$TV>BO4AtnZ*yA`zgyf~xb)R4{p7AqC6V+{Ve+_&i&73{y@ zCzp3z#dST^)%^N^V(w7{}J+yFb4ESPpsc4xcXrd&R6Uj-2t%H&eq z?khVl6+TM%d6t{p6x?q;(&Z+i;V$9)8%@XTo}>I0rWZ$tQmQtm8xDF8J0Frto1FhM$|t=8N?x;;sX$XL{= z0=kY+qA*s>ecgp?vP(xWAY6N31Kinm-sl9Ug9FaycA=n3u3FJPM^EURu6l~1qYJTh z-*)|;{5IDfZZ^!bR@}!bIAYFVqVeDD&f4A{9_?E1IX~*07GS`Ht8ol6p#U2P+uFQR z!xJoL(uW0Ymto|d(;nL6Z&sMKrWL_NV1T`9~p7{aqw!0 zryLHWyrIMXQD+||Ra9=C!QI5Pp|hwN>4x!)Vm3o?WB5V9vOCJ$Qc8ypU%%UwYdW-? z^y|JROaU1?ugs*HrHx@)FzzqGJ`|I5W{K{|AKV{%kT*4-B)jDlhy83) zYTBo$dPbJ@MR)YH=Iqc5}56(1VfRYCZ>r1!wfaSWqPIHj*-iY zK3WE`O&Uetn+iC1NrJTLYbV5vT2*y~BY7lTM#Y>Tfk8TVvDs4vB3J`)>MKByi8z9I zU~sHrF6{Xx6lt+_zq>jTJ`Y(-r3#At1Ab@0oDkyVmKazE>@Oac& z9F#eBh}(Xfn1q~8l0%8EiHim={9M(2onKzwx6O)0Z*`4v70B{pZH#V^5LxpRSFErB zavIRj9l=WL6u9Pt5jUe4x&nPNEkgTqW8Yrd8q22ro5v|+`MoQ7nmCL{ zR!;IRX`c|EoDdg8 zCq)^(>n#{6eUFAr%ma+x(UEZisTdnmN>!_h2rI((x_Ge6?N5&MwD=+-LfeSk#Xwv@ z0m((uiliui^mAi_2n(t90r|Yqh$tu*Qbx-Auye@mg^}v}iKd#n^DR6{^U_Bw%ArJ@ zh2_$51k$R(fn!ih?^yCQ1%mr_j)9ye48@UXvFi!Hr2Udaexbtr%LA}cf#j-<$T#RP z8M41gYCpGwJ2ObD*EQZ_0bFxQTEZcM92N%=OE#uv^MYE#<_*rBwO?E)5V8T@}eQs8xV& z&Wuq0+qs>10olXR$oFo{x(h3vChjFwOaUBoOh>wIb6yu5R6cjPRhfOmfnW3cz8d#2 z+GKWM+nr^~7m``;>MzW z#>W*}_KJ`oR~$9yyfGzf?c+uzQ&#{5MQ*U*>u!ERf^l6|M$t&bl->HnY=VtVW|SPG zlrk<6o@BiAgypKfujA`jokdW_L{ng(&*saZzAKn%;N(6~~O>=g2G`-9^_jdmeei}+O-01o~M_;=6;5j-UaNPk}zCSrbpdb15&4Vjl$Vg zt3vwp@=?V6)g+1|sm?i{G~F}bvw8LDlZsG@`RSqkoK5WS+5@`&!yEWoot+)ibGz|s zPE1T##wU*LOBeQD23rw|EA>aDDPbPd?3nVR8Q>aE<20EZD5%+9XQVXNw2Gq?rv0vj&<6Mj5%j&bn+faL;7=tqgCB^h>x$u@f$=0klr;mhI;3XhRD&EWB?z&M6mvg zfNr1xVdFgmpQ%^USli!Kq;E55hvpH>^w_g11~u*22OIR*LKQ7~!6oYYE?5A9jh4W& zM}v@PqCYtN2mowbk5?XAB~#Crg(2{(fq4gym(kT#p{t1hevsFE;`C?rBgmmB@R1kA z)kV!;yIqvN`8cxayGiZG$E4cP!LE`0xF?omxKQ7#AQ{QJh(pR|5@Oilslp+s%&569 z6#9wMm1deH`XRL4QwBxjl*Tf1ri$pg>Y-;c;w1Y<{YlS{55Dq5N(S=|DzTZJq?B>U1|C3|vDh zOie{od5Zn55L}l{Mbm=yNyac+N{g0AzCbefskB2pzu%uV_TIVYk*4=}Ue;n-<(VLS z)!MDsTJu0XcB)r7;QgVsRxw#`D%%NU2(246TP@$(IlKZe6=k7F)1PA-7>d|%(=yX0 z&MC$vd{?Ch-2gZeMBHzX;R)cywWx2@=p=u-(r2sW>h*8(=WyOaHG8YwUyuj^3`W>G z45P$__uIm;UPd3~m`G$Iw2Y$?2!B5{#m&+rLc!P@ZT&D|EF8p1Sd4tgeM<^u9yYs* zyQGybM%KZsJH!5CMANgt3{Q#$FBumvQ$K8^1=8Y207ohj3?czi`*#o}3i0sMTiaUs zR`_n7`48ove^$|jT+U49Q+PZOZ~uZu5w%o5eEtK~rY=728!_s|eHI|7sl5CuLXjIgG6OLX!-eSgI0C{HHMW? z?B*;y(=bVJu-F(E2gf%&#KBafnpBGLMPBSfcDe*SaC9Tip<~!^U?6+zyxk!yUjK8L&Gv|D`wEQaj3ig`RAn`D-s!Ytj%(69WX* zg@}4YhwG>f3L)Tqiql6x3$W_SCbv(PbkVo^oW0VS}HwuUUL-h7?#*{n{D^|A_xVxd2)I+!#=ib9# z*m?`)4^AZz%$_mw%Xsa*e*W8ZW5VhM%e&OXrHNB?I!FN7;sbK+?9S&82|r&O zW`MWD)aizg-}$wzCP+`qGh3JKNBh+7kO)U zi>;%$chSK2;=HPMIc#d`K?yUKU?&>+_5XBD3l+Bi<%a+7U8E+S8I9XclcMW*M@(@C z%pnJ+>?!OwUbO;N%~`~6Bi#dS2+3D0It62kMCLe~ph4b0LXow|;bFe_HcL({ZlPBE6V3~b%=$}$Cas0MkiiOVw*$wUu3b~01$NnUbVFPlw zIXPK1W!Re-wKo>pTFp*kDn3Mb=YKBM|9$fRe;X*X8TP zkbkoaC;*i{)b5kjCN#jJu9t2Ga|ZWS2=O~5DLqv6H_cFUt195M@64OMZ)0kQ z<1YbIhxQa3`Hq|R0*i?%IzfKinMAFsciy!G#<0E>&W6JUqghB$nM-z8|@2m`>> zu`lqwD+&pQh}aA^O=qjQ#%j(~T7%Yoz#~OnE^Mmq<~h#r@^<-7RMpaCDZ8sOkC(*2 z$3&vdswt)d_UARVJ8S^6GeKa#8RF#@D?%T%EH?}yg;beivJXP9UF_E@QosJMK*Ipv zrP)#6#??*Jt)8hB)sXd)le76P^*Y(xTEd+bOQL)YqBvziUAM#KB47S4BnWQ1BO_y{ zfmU>p@0<crlS9&*Sb}7d8Q;{~cs2PT}NNhTcV=*y52Gi)rzc>JykoEmN zO-40udJaX~X#y)*y1A>%`s069r-gwQ+-f2TM)_6ns!jyEO|ovtSap(;%UK5tLL4CW zO%!W=twz%33#3NlpevvjWWfkGt$=FZ{&(0gd-$dpMR<3iBCYBhV*~;eIfAqoAnw)z z`VZ^I6a=)@4KIgsg)|=J7Ca2MlZOG2hNF~YFzP36_cn;u$>l?8paU7BL0wZoT}l87 zKobls)nQ7RI(#0&J~aSSSP4a7!mi`5MwMnuts)Hz55&=leo*A!7jQCOcbO1)X&ANU zcW<=r{DjW63&=#h$v-h8-50_P47WIL+}7m$r8yoCo>&$NrHU`km5IO41jlv2GvMD{Vv zAV_}i(EJ`=ktQn>F?_rt|0eQ{t*Y$d?^Oz2wlHnm7LZ1)>~dh+pCXzfX3V}BHQvdP z9*a&D+9Yb?(5a$=(SblArD$ky==VS#B|Ui)JLxTZXPcJjV(U}Ic0yka!&(jlhB+ey z>%;InL&_NAvEJ;)qI_~uu}qRQ3;;8)Az26XGg?h#pH~AN=3mER(n3A4b$QZZI58Y# z5ofyf(=QZ(j=@9x!4r3u?Hk@1JCE5m&Yd`30(%O$#Slg2Si@sZ(Aq#OB?GVW1y!f> zjyRLJZ)~_%NU^yB2GKXbG_cPBIb4!9X>0&Y+$z%aJ6JO&jqS6`2|x^r=K6(!4mvp= z6)6R{zHd_hDB{(+c<&d6l(_NnHm`E@`op`o!<{k)UV33{R;WXpGL|H56lFTj9uY(X z^-2aNoV*T|0XVoP=^S^kafC!CQ2vb%7c`Y9SGr9UrTkYNU3{S{8XJQWu-VO@#As*B z9y?Flxxb7#K9gnUI1aV*a+P_i78Fb0qM+d3ujf~0MzwoI{@=3tKNa>nu#}xA#t%Eo z7R-18D_lBb?QAV=K_HN=r6GWR7NbhNWdfcxp~wVT3;&w2)(3u{Tu}A=;>yoP4gC+D z6Ot96U1j)muQnpK19c23W)J{j%6$6zXbN6`!&%?haXy&d+Z~X8*$kGgaBz>lV-<^d z_Y{qRI&HvTSEu#!@bxZ$g(er-uhr&l4*@_^&ra;)@=b1O^bQjMnCagdsoYpVQm8av z=T((l6nqi-^nSm;Jke_EbQ+M({0mN3%86^}lZXKbKhjZLRCk6{#7CRr%j0 zw?!mA=A-k~CN~iPc_YlCp^V$ocwh#HkLz_df9 z&GOCjx}opx&woP-cINxHfQ>_e-*Ff;Td{F}QpOhRNW_-~zeA_oxG6dXt}u=Y)9hID z6F`})**U&ED>n{YbP8v4iFNYmp9T^IoR!tFgznaJ7m$2a+Je^5EZLL>1`wHeD$|uC zK$KCSh$#%#Wgs3#eWx0RaHRTU!tLYpR1O7Uz&IZ)qFs{Hh|8!VeXY*&lmQX6x`4wg znoJa=^o$wqyAsJuXkE=ov68?a07-yL8Y&_AYP>JG;ZM1ttyE$J7>N_u)! zd^$RDGP11**(^B`k4Cfqs;_okfPesBK8i?21LX;f?`;nJ5jRr@+Tsf+VULT26Amd8 z?S<3S_?KTt9^k75B6Kf8XKXbiQ&h(QUO`9@N|Tfn9>G4_jg0xwLZ4>Lv*HSVh8^K! zD7EQpFXDirNCA{Pyg9L~omU!PiVHBgJvhKfDshL{{aai!FtHzIY%i@`EbU zGBPUTHdXmcKH-!7PC-DO`@7Z2r{C$jyjhIEXp9JeN=^k}j4Vx{4JwC;fN#+;8SxiE z%^X3^C_n(%(?}l*S*-iVMg0@@rP<#`=a1O03xziMCn{+utn>WIb~(mD0I9uE1^o}@ zCvogyj$g(E=Q}*}%~5=4F~KbDF8fn1xrN)s-((tZgSH`59)$-QN_`tf+Wp@KkqdYk zy`*`{cogNilz-s`qL1r9SZFYae>7D~;N@UzMsQA9#f7o0l6&L;7c4jZ6Jh2MEmjZ= z>OA6N^LVp~Umeke#QLqvNy5M3DK~;K?K(Yrl2pP>TtYFgx%Hly`5_zOfbKdy>&|b20gGj0 zoLnx>lR%`xYX&x3l_iEFVHF8#D9yQDq~E!(Qv>d+UY^!(EmeN^?8TY%fWOB3Wnj6u z}a%yNm1ii=to$qsbar$(dwJYI$j|ffeRdE;ZA`V1u+h=sq-J@gs?6G;AW&4JPi1 zL_oeoc@+|9#h?N@Nx@?_C;T;M_67GJ$GDM`t6Pr1WF&y_53f{rG>>lpBTWc#7ztri zY}@cIHEHsjdgd|s)((TaVhGJF?}-uweHv1L{8-+CH6IjD7{YtBwSU>uT)|*D8Pj(f zW?iVreaf}f|MddYHN)CpMbAS-yvFv~)%x*QksQL)iVeG*wFl>7E?U)?5QdMt_NGZbFI@-!IdD|LVi2FnJ8V78&W7I;``FtzMTaAq+; zxcj%=*_|&s3XaU8=59e&A|}doJPdRN`{uwe?b=PD1blG#kZ_s921}bP=P=K>W!#Y^ zOfwFd83*|VmEf)wcmgg3lOiOiD?WgKI9t~7sjO~MQS{|%`Gi?wG z8J#035)7upVAYm;KLo}uHx)=`ZjKrbuA%{K9u!fQi^V8A_JEww1XaL5j?EL0ArhT< z;z8Pze7{1^#b3igy!LB-h|6)Hz!TMJ-6ETeotfAW? zP6a~c?8cI9jhb`tj@=TF~+@(2)jb3E& zF;9~hJldyfK`hIXuEYq!bwY_pfq|D~L%t@5#iRux zz~n+G-oT5&ec}mMFG7k4X4}~@)4(iJ?e6X-(@YKkEy;}9$Cnb+R~~(0;p&kxse66~ zAF9MFk<2JSLKh~fuW0rqDNDtNj~G!(B`PykR73@fSjm>EI%f8kHimbRl5{n@$}SQZ4H5qDYlcdX!(D-Y{vR1H*b>B!_u4k19YW0S$R#&jETQ33oTTGgkx353zr@V{EXkC2pb#= z{=ed@Qm4a&ErCH_HRM1bu9Viwjq8gv{u%xjP!CrvywQ%F{P5;U{<4JlmkZz@W+h&& z=qgd}Wwj?@30K1z@ z#Y*!rdof3LL+l8y&F(}KgSOiUSRw^C`KS9vapi=9j_yyx+dfnLE(3&aUFYjujQj{) zkKw$$3p{kQ0AW{G{~Ri7b^8oENrKWKo9k11BGUT0zQjfEZqQer=`E~+MM@QO zbFg=;>EoR^ajw)UUfRj+TY!Cimz}4P_wqo>5w{){=|9f(myMA)48Zhr^YqFNvyK7b zWNF90Z#`&-HW3F(NSCw`mgZKbsmr5a`H;U7*k(F58G4~GR%qO&f8Mbp4d8A*Hw7HE z=QO#D%zEtme5>OO#5ypE_-@<1=Cgr!N=39q0u?J~Drk5R1noYWhbhTz>{ryam>v1O zQTCmpVDOEzG5evJT%_BiF2@Q;FN62DGerv>F--V}9`vn!0m`LTeD&FfEs@Lh>R(kS z;w}&7<1cZ+IgkRt-5QpvTeALCg#;@kvH+3=u5rX)wQb{;x9xRi4@VK(T7MML2Q`9{ zNSwV(19fTs+Uzh|0o3>H-PCc4C~;DD-Rl?mwHmheG*jcQ#m9D_5Gl9H(_S2#1IGT^ zshX(a0Inc`Z`4R22bt@BpdwKhsqILUy(FjMATmb0*+sXpIh_+^^;R1)FRUnOo;qHA zJ_3O+DJ~V6F*4n}bReX!3KaKGtQRW?D!a0kOtCU}pH~MpvmIqUa;Z+YeM8KCRuc&J z!65%lBZ(Gdte;9j{)UP4&!nXF!SO3pOGSTzzF>qRlKWzbA^jxTI56P*7|GAHl98rm zZ7RSVDe09$P#4=!lA;ZH9!B8dX%F#B!Zl`CPV+5HG=dEiV?-0D8D7Y|gZreP%=TyE z&k&(vDThYFye0s(upx9Ca*uoA8cP?(N9PR=f<5pFCMNE~p|{97m1V}}x?lUGtHt&x z7Ws=4Q34T@hK8*$KbnnKa=tn-A1no~<%|y8U`EW+&8`%LkYlt~LbFkg`stcN0;+>> za-h}3ru+c8;`1enmh;ID8{3fuw0^?;vx20Kia;oZPk^okEIhEOZ0fcXM~ zG3DIZAE}&IyiU?Qv{lnszx;(sp!05wXt3!D?yQizfW|C~r^)(mF$IrGiX;ks})Uyg<~M zO~wn5qk9kcN*A(mvs+X|?KYRTl*Tg4%F6*E$_Xd2UdrHVO^?XXhCRa?UvT9hJZbu< zlsTsp;8FnHUuXehg&0X>p9J@sB#0WRrm~AvYfvJcR}KvCccP$*ey%5P7_GIz$Pi?1 z3iT-CvoF)}q|x1U{a8wil>0SMTX`ONDki)BzokT^)#?|ASs_>O3)K5Pg1t9W8TWecle7K(wUcfN z(L@T;Dxq$69Y>>WvjuOxP=1I2rApRO4%^o2e4=i=3-Cnzm?tw&z1!-w@vCC#0`W=f z_Qr!^~5oo|lE25~6 zxEKyUF!I*3?|fbQZ|SwPwua%6JL?k5tF+hu(zBlh<%KPj(S%Y1AT27n4rsp7PCSP* zp`Qt+BlJ7xHCL__5TI^59^r@Hj?IaF*h?A6;VXp(`u?Dy-t64`njGOak zLJCpHP&%qky?fOWS?U&+A$8w`9kvr2=5f!b=5?-v8Ryji3Zc-s9pQuA9kV8d- z@Q>adY>Z}Txm5~vstxZ+nEL3`2(x&8Y0`b%)*s=5D|}!U%tmrT)Fkf%On1340~p%& zz5pyvwN|EAINhHNfTi|?jn1y2>mH;o+)EEP59+Vm?KU&~R$y9{^?ba7K)kN;Mz(G+ zW8*N~;=fopWU(;|Y3aVJ=5p&H#jC1$Htp_;o)2QHm(flry*8upde_>~IfWm8;7xW&o(ArDe`F&JtK92rFc zN~A@DfZT1=gF_*chfh;Q2Fs^%9Rqqt3kHEQgWN;niHgozVZ5haRZ}7R#2Pr3ghQ+(I3OJ1 zYOzHevYn^1+(@m3;lQw*M8`g)PrdJhWptvHiO3MN;X;T2b$`a-aduOoiMOM^cXkfT zw1N^v35@JRd|qgZOfMulY7P`=#rzxc^0DPqCr+_3B9T!PB45S(uCL+y>DK^fV}mHaoc)IS0@;$9z6ew#3ztBwh*x>iV28jsE~7>YiunSPON(y+g1+do&JSl4 zk{U<;u-_titz!SJ(!KL=wd)0Ys8!8iHLL(R>di;rscN_g(=MB4kcqn@*=?l)Fp-s3 z|52dSe=H(S4xg1vlbxgt_5v0vkL)`pGYqN8#s?WQ(5VJ3_pJ=rCrUbd!}C{An+q2O z?@cP@Kwv;;)*H-_M)VWllO;=2f~-qb*%s|DA7k(@5wxJfz1XI)TJ5?2y^cD&UFHAw zn%1b0Z|;c;g-~U4NB;$4p8C-y+}(b*vjX!b8WB(me8RY>cnb>3 zhLR=Jir{Czej@+q!8J6Yi%6AC%srXScFz)){>6_7Pm+Fnb;~7*!H~j_IVJk2Q!O@} zlgQ!w01dHyzN)__luOyco9CHQAV?+;$p~?k)XcZkKo#q+ zUm~cPlE$!rtE~_@@ritGlLRR3@rn3(%?%YG_Y&q(1~xkNrfgk4@X*Wiq{x5knCU}@ zo!_&!d9LkYkKWU)`IOr?-=B<(DaG=rBn^d0@ls=QHe=3-3JEu(W1D(e1jGV0U8O!e z7`O>Jvx5}-JO5zt?U=A)u<^79quWu#l-emOa6p!uW1^>(Cv3DBO1V6|t#01?0~G_; zCf3#E>}OufHo}-g^p+wr>Ks6seIp=K+C!Fzg0UF1l6(U*t)>ihv@G~GV>7K3JQ?vH z_3IpL1I--pi(ThPgz@MK1KVRbXqnrzWZqs5&UR=TBI09%*{-So;qoeP2jKbd4+wTG z9i_ziL?SE`mg=cxSGh1~ALy$QyBlw=FlvNuCWD2xmzO7}!%-x8mxMHtnhmsWq1+}m zlgy2dJzu<29gm*vOuj*dEEdbWe0PX&wF->vb(eo&5c>)q5UOmo0>fnQPba^$Dg=Hw^>dy@K0FiKMj8fU%+7w>ZZ}@ zYSR=20-Z}=*OP@#Nm>ilzOtz&-qxCAC#yer)FJ8kxN`}&8;Aw~G<&~O!s&Tm@1?(j zee@7Hg{_|0nxVyZRR<>zWi?HcXy!%zpMHZ`wH8DTS6Q{Gt|5BM3mhQ&DQ{SCwI6}n zPZWK4n@!tP12yWbgFW`URp+$W5rJ@Ms=vim%iM0&ibq%ZBZZPASZmepMIP4u zrwrd-c`RQc1q&F!vhFrrxBHHl222{@w7>$)&;_@>2c7702hGvf=*HBr=FkT@5?=jR zSH|y{`NzK;rJCR|c?ZetlAtv;p=Plrfc|__>SXt&|36H|8ax82#m| zYC@LDxcJpaf^-TB{8-@!lyUI#9>*}OH)ZBU;ewogX+V{Db;Ce~=#6baNFkw8C#|U{_E%-q=Rn_`Fp?4!#Q!zKb;^rShpE@f7FoEJ4iZb(96;WN zU0vY~f8W!qp^Q>3Nghgt6Wkqq-c!`zjYbNiOGdFaB8?KArrX;Q)F+Q;VQg5lsPCx9 zi9kLO_@t=cN~e;*OPU@ZoiBg`O`NCU%-}WmS2N)p(Hc4xloa+9UP z^L*~S_n|9JzlZAyq%F;OG&qmDY?HQ~kYd_{j-tk8WqZe%K--4$#sHuRWlfE^<Lo8@6vG zUkPWSbgR|F;2oX~;kABXZTgjJ$`9OfeK3VZ;(h2s(q~RQtLl@ZiR8`VdBNqQf9Ld* zwuj>7f+_lA2t%RRbF33U05Us%E{{9O!{wfIsa8_4#U#{JL!dg-aQxPs1ERn%tH8AGbWUZu&-*eb5Jo9@|dzU=KO@E4E=(ov555~ z9Nlp}SVpW|d{C6Zbrbx{LdP6V{*JT2_(pSY79$houzO^#-7FfUmW37-p-MSr z$>ka56juknhY>VHG|A%==LX-zUQmCKi0P*qzEylt&k*Xz8*e)o6X?2P%&g!Qy7 z{(`jx4`{YuI{c-p-_29HKi(`Z#`(p){i<90ny9mMVx#0oRF$mkQNc%Bdt@h{YBP_Z z+Y7g@aW4{HD(7p_>-Drt3`2wV;^Zkl1IeZV6aaBHJ9E&mQ?5~|H{Kv3F+wV}jWME4+u)@bV zj{!(1E7+NO_NR198*R`Wa5*JN$>=k@BPesy-iSoxYe$8AuFH|f(HWpAVx7j zaZg<=w7w}>;Xr>co1W~z>}FzR2p@qtN1)SKL5BF=J-6BQYqrjMs5HxsogC;2><{i;dp!c5i)K{#*yxuc>f>$AF zM(5*51kK8JWSrV5D@_B&bB^OD-45t{D_QD@H(hEejTL zLVF;3oY>B=HQor&Es+c%Lb+;MNOO=yt3Ii;A~PL3tC%))j9Ly7lsh<7;4wAAKk!3T z!j+bcv89obk)xHPQYDz66hD4YH*&=IphG;TU8+Irv;ROF_?UUaX+AYLZ_n*KDLwkOBj{xl)gX7yKYD z_%t4sC0xt{0WgFpMiD&%9ttLh2H8UavJ8AFdpPOO-(|R7da@zxE>dA~8bp7tuZq;A zGbN1UHtol3p$m>o9E0k?qr`0XV?1S#jve-JiF+&GEMTLTiq24gMB_zsT!K+RnS~d9~`K;!~b6#Cr5FB(Be4Q7#%Vqrq+=d?gorVsDR6U1`PnnLnmD5Xqnc%q%P0r?Eq~G0?rx_ImjQ_?n2|6w+5-!d6 zam*W}jp1Xk-VkQU2XnC@U~rRT8@sg7sl+f4j6F+HB?6IF5L8L0)pY&&vI(Y-SP7?r zM#o*?ay#>SsGkh6MxW^jgwu-bx8(i}om)$MHyWo?Bfa*J zfwxIgbW3>tQbqm`#yLe^?!U@g^(@6YfyA30BevNQXEcRA%B1NeyOA|~jK6Ffm4pO* zDoZsr5MxKm_mb}mDGTMPJbXNz?d`7L%f|0n$g3v~!s4u+r7V;j=mF`KRh4l#HqS10 zzQ_Or17VNnNYIr1|5%9s(8Ym#4R2=Oju)r)5aCtlx3V6;FIU_bGfD=;n|?xm z&-s_&!$H^E!Ao0+LS*Z$kvZ^vC+}S+S38kntL^Y%*U{b(ybNC2=;*9zs4D4UUR~3$ zy>zxex3m9jVr!rY`PtEUW3eal>h_HL?_`>SgRYCk`C{ZzVP&V4s6*o)z0SrS3y_1) z70G5aIn^=nqabVNW~a6(o`?i8ZG6BxmbJC{p~63Sy~TZKeq8}E ztX+P7{lZYg1@Q#G9~U76EA4y@@Hl31=LK;59X*foxkQYUmf5@-oP(rmlI(goe7PAu z|J%@cbmh$H(D-on*NCbww{9mdK+wV#0P8-;HS5bGho+izB7Ps8DNu0y=6+^ zaREqCmloC${dSp!5ykEM{U8UjdTAL&s$h93B=3@RXi5w2b|pGKHrBxdqH;o9^HIqG z1hxL5nV$^bs5}JfxoB-+mz9S?hZzC2tYvAsZW%Pw@`qGnzbL1FmT*Obc24p81+(c~r)DPi+QV$g)1j`UX>8d$#V3Js%@K ze18(xD2buzRX7(Mz_5izDUWr1it7GNVz8pHEYolH?sW)_p?m)`aDO|hU}7aU&KKVK zW2X%ltOql?%GX8=HptUcGHI86pZk%ByxlR133W@xW}WX7Fh&()fbKpO0)1E`CczP} zQm%SBrXbp~hEWRS7)^GIw-75*()xj!VHOUQpYdYe)k3Uy%SNAkW!(?l>XKyqBxqj4 z_nr|APT=}S98U*vwhS3a%yjJS#6o$K$_2cv`qy zqW;cooW(h+XMq%BhHX9xy4gcy1XiAO@07|P@2_D)oI5EPu84?i)wMR;m}F^3QMR(o z`e_qxHX`Ya5!G*-nvr-7-JgNMa2BY-++&$ElrnfA$mSSET4HDXd|Xm-sjoaB_v$o~ zDfJqNaTu4@E>#e$3h6!IjdrI~#?Esb5Wk4kO{((7YOt zqJ30gN6m!bV7xn;yy9NXq!oPgv=4h`8BAxMmD7bbWx14%K}2i`}QgJpaO25%WaG=b-sRnulq*9FVOC1fobN zG6HGbDaoP~?gFE$%XI+&&KX-qYAYzjg|l%cjI)WfC>+yg=0;JiH!!JgX&#kejLc6& z!MeSl-yBz9pfwy2I+=#jDVSC`=vQ@8X+};i_@a)BXtW zA9&)c>l<1MlYP7X16{`u;@I9ck11hHBXHBf5Fru+W~hMwpAg{RBv}!gPAo#wl^9oZ zQqv57yU9!AhiHQ`2ILB{qGdiFTR;$i zk>>?uUp}fC)fT7c69*u z*>^XWoEkYpjGa(>|5@MgwqE6QmS3;QBKC0~#E_6wHk?7i$5y_#4G-ir6vh_8>_ZYht zNaCOpn48$SPD{Q?Su9oocjp?cEG|EzW0wy9Iyd~Q`3yUGQ4xg93k;=A+gJ|0U*rOW zIz_8v9AG*B$cKXW^jj?4b0@hVG7HJ952LD2`wa3dOj8JYX2xZ*%t=nqAvC3;Kv1?E z&(iwC3C`wGLDR1TfJhOb00l~=o0^^Yln30H8JS1;2{`l;7OYg%#IVRZY_SInQsYCC zl$6q+kU_s^b&H{qfZ7a-y1^{2BmZKhMr>j&k(A6C>2M2P(&a5H?1UgkfJcu7pX`(Y zHb!B|yhXq`zmW!S=i90xNaGKjvC(ZGrhO(9H7*g;QR5dmkyz?<27@iwX){6#J$vRv z3o!eyR)PMEJ>^!^+GLzns=D^r1A*8wWeUXkHUd>dWxEO;i0u=X+BCPkLKC7IuTsdR zV~i6aa_HHqhad|BNFvMb+8W`ht-XEiVAIFXm=MLDKas>5+WY3hp73O;RQ>BU$odY< z8Iw;>PxJG8;}G+MruP;iAvi~h@`2&fs7K)J&xu~IrGkS}niPi}G}ykOBT>K)RT>it zrSKZDMx7{)E+du~EJ(wE0nL>uEm55UNL|KM|GABZS5~Q5BLE53!9uJDA@z*HM35L5 zQ3_@*wM@tAImGiqBc}S(wz?>`&`=@>&IqwuO4&AI>mworljTRLh);G)>BR+?vV%qm z)3XB@d@U4j2+<(HP@(n2&fNcs8xbC@cYcxtpK|H;JPg?1Ifwlb3xIjg1p<=(dTz)Ca ztfpsR{ufgwQ-RT{f!7Wq9yKtuP{~EMx2`uc6MsA-#4eRi-(HJW^_wGf81k5|kB^x3 z;L?|S`dIh7`ZCeDztdF<-q{XV%+K+lQ{X11Nr#)HOiq@FHVwy0<%CBiM12w!C*AWX zx*%x|a4NjM?H^qo9YCLpG4(I{4vz{%grSoMDg>*~+NRT2;q*P4=sYIX8u)n?E!grb zPRmy-QQn{Km>qUJ)Ly;g0VFINz1|;4PmIdGnct~aAzE0*On0F5+TG~JDME;XU6BwX1wzvrMvsI^4xIjJKEBGikk7B54nUvsWe%rz|J;<7F*W(lj_tfb}@iUss6lH_wh^*1yS=a9`4B* zV@kb_&PoeDfChU$Faf;{E#Qs1b0KgC2LhQt10;Mbv$6;8wWv*7eI~qP z@>3Nz7ayk>7oWk1ud~?zexpTycQ=Fi0=7l`Mg~4U!H{)Fn9^r2Aq$IxwEyJDhb7$` ziCX!a*RBw2my&JFNAk6opgGw}lWfcvO5_z9F#{i62HsAnRo6RTe<5`3Knyi?x~!kP zeC+kxbdAEztpkrU$sRA(+P*G5_}wcpDFQGPF?IqwqJQeexcXVHCq}sxnfOfZ|C@zu z-&*>7|8%+4*lR#)7zi7Ehi`N2?Lz)}!1;pH21TA>1)yx?2oV;?hki^`CZg}O(DLV#}(L(Y0F{LuN%FatCv-rR7kbpAC$6{i4 z%8vPZco_T{6MOtRcBNI%jC+_P{#@(w-jp0|>(bv#IDKOD!$#aFKiamBTz1|dkoSK}SM^n%BT4Gj) z!#G9h20n!;DV;_J_3cAmz_+ibF7LBzv3Sk=e#)YU>YdeNOIqj^qF|G+qiO?ZA$czK z_ymKm>=duR2*fstiE`FE(Ezgpcf2G`uR9N~mrIpT;alg|`EURSH32tE^Y!6ra=@DF zhFyuy<-s0In|da}zyZPF%W6;uN854loJrue4Lkd0LGS7ceuv|IF2T2FR+uW%NjDgB zi#(fO!B9v@%6lbljdASEMu`Xj`FjHZ@eIn^X74aQz3D#hGxq?J7Jv%b44Xy+qp@x{ zI8A4PM#w+pCw@9YO!HM~sLYHRT}&vdgu;^odzrJnrxRHOYrd(=@2}}zB@_sY02>Z#KIUNYnJeVdur zXLv8x7ddhAClAZ?QmJIxv^ethCAgWngyD6`Ar3AjYC+ zcPR6^!$lhjk4;HYl*ai=j1E?o5Nuv21k@tkG zU$oa=J2e_hixLOZiktrs*nXdR}ap`uzSg$W1ZUa0o5 zO!YPr91$!Bea58)o;{foIkyU|IfsximW{I*p_vvd(lUmsXR=zo)Yi%d<1v3yR#lyy zo!KB( zK8KnLje)ISA(Kth(tdb?I;{2(zEdNCjN%DyFlES7 z@l}LNn``cyo(%AH93Vf-L>-DiPK&G^4lQ}@j4w;^k1#ueHrIq28y;0`!GT@|&&hKw zTPr0_ZUaf&f!V4{E-`Nn`}g!Orm?j5sn!l2;NxN zzUoi(s#{{4^wwGFH$ekf>BmYmt;S7*5CKs@}@&y=Q$W;(C?@UJ$&?Zz(93;Kon};|hENxK5(%uwXa6PJV`#5Taebw)y<2 zUDo;IQoQQw>Kk|mn)v^H69Oej!&8X5q16}{avCoRA z$7WODQ472OE4!=lZqNbR%M2qye>l0B6-SHx{ZZd#{%!{f)*Pf}F3FK~B;kq$k`xu1 z1Z-Vz^6f0;6*cw7#c^|Ef1Poo|HJ#R{&P}iPT*}iV!O|}%Z1=*?Hp=oEw-kOt>f?7g>j{L3Xuj01GWiScQoCsQ z*X6YJ^p~s)X5WL&Z$_i4u+wj;vWHCg?q}(?*spK5bAAVN83p}=;l2Q?FRwbgkVmLY z+-SZ`{~qeQS4rX{c4unizaM@(8+tzw z`nYh((8zypl*BgQ@U#h8gQVsRQ142k2E!UK7awx#-u@#EoTjyzqP65t@m1azw*^JeL8=-HF4b`32G!I($5`-aftHqzdgI$+8SsJ zT0~)YytqiTf8EtWFXlmCLocoxqH^p<*kYdYw)t^t^T&U0;Mus(T<8AiSa>Q^^muWV zG-wBf{M&P7PJ`i?Zo`J_29aM6!H`AoYDhr_36O32&yM$%EI{CPC5x;)IH}+|#zyQh zzjt-B&5L_A#iD^x`sE;2hw(TvOGgC&hjB z<6&@S_a?z5#CI~yTi(FWl8N?A+J}j>4K9L5?oNU3KIO0$c?IFTn_>fB+!iQnCs>ZC zaf9ePjOzt(y(-%lZ3{H`F+^rPf|={$6!MEeO-vgg0lV^cqlDqUqd;M|*A|A1MxRnp zI5u4Fk3c%cP;r2DEGCB;M_6Ne^7#jX4ry2Oz|mLG6oDW3B@Zf8 z;S5NG7!^&I3Y$<`__5k(gbUJ7C+43~RrodYrwv21W`Vh4KS;0WT3WutT)77WtC%4c zv%0aaHxaj*1sd?+D~in1*DtdA$tsA2}mJ zU@tN$21D9nCeqj#jEH%rsZVtvTp7K?ESA?8<*8&k3&#E=el$iBmwSphXCi$IM!s(w z655g!nhjMvX<2P;(DDf)dIKcMwRO*4Dm-T7ntX>6^$HdSjLp%qG+yLvyvP?FNT*V@=hf!nAPsM! zf>su&V#u$&QID8%9R+#lo&Zb3LXL@6jx9nyB(~J_;7Opv|K{V1PbSS*s~@3E4rje^ zDsfmBtwKgPr5akZx|~=wizUO+HF;INx3UfaeglOnUao(7mvk6f8qb}Zn5SDB`?j5R zbRYm_Y&4U-h?In+rgmq4zZ9K)qad!dT90nN=ELF!jr|Am8U zHgVTj+oDNJvCWS}9-f}K0Pm|EG{BtSio?>*ZAQ_1l}VT3DsOP?MpP@y=7qO@W-s$G zdx)GXI|jFd1dNe~yJn&74zp@s)E>##eHZsS7)|k_xB5}hpz{mCaduLotU*@e$F}h7}32qY=tv!B+bW6yGnCm1o840#Ja_w&HP#CWD+gNXA zs%IWB>t6J6_@SUc`cC0?XNPSUy>3&EUI+3iWo_t;a%#=Y9yn^Nt^oA6sTFj+6BY* zBSN&#rqdbC%EA3&1A@Vp4=~(>9T$6cMd8q$;x^_A-5D;fA15K*;Zg-7i<%nJ%`Ztf z+x?)vT_=e(e>@5`x55AEoih$RUmXzqn6ny zT+yywn+cqe>abN1`cc&($EMn`tWOJAh7G3w6L9n0flKwpK(4gd$B*iwn|-o|A) z=3#&yE?n@kmuF6FdKcZndH}CNa@k+#iLo6y&HJx0OZ1Md;n6bR(^%hp9Pxc>_~!A7 z0X*Zm>Xe6g#dDtv-<2)nGNhp+b73h3;c3oZonX_rBvX{BY1?ErV#-Iu3WK+ZijD(0 zTujz#z!E>!IGMjellLcE?>lh+X4il@m8n6 z>KLlFrBkAUT8WvY0H_AYr}zp1vJrauYuqBk(9=|z4XrGSSQbuSRm|kwO(eC+@(C0t@-%(GN0e;gPhZ@w<2+l1$t7q89{d?7n{IFs=`43K@0hM#0RfAcWe}(Q?YsX>FB@#@ngK4!eisE zM+lv|@oOw_t!bFzH2c1Fqh}_i@hw5b6q`b#OZFYm5w(y5P5=AOj2tRfT^(|9u}xT$ z7RoEuty@8+iiYR;&EsZSrf~LYo>KoLxt34ju17(VCjs3NmsqouspHRcCOVwf9Tu&0eNfj_Im^rweoX;6@GR6DF`#rK7DsY8T2iy(Tz|A(@b$2P z*+pw-YiN|oX&b5GR&lygqp8m^UOBqE&ETb>QbePc?T@Vm?3Xqf8TE)xVl2Z3@2Vxb zQj?~x=4SO(ya;vth!mZjOqq5pDGgjJecrc2Oi!ZHt)(4ijHpIEI3@!BH^niqG0E9-twFi#o!+EuEL8g)zul^677*+ zeI7ClB1R7-^SYZTm|YwG_Xp;2+k1#WfACj1Bt^Vu-55jEbrmPO^FIujn&J8V5tON? zsrzrViEVy@prx_P;7zJvl2mDxygw%9xC zdAVB8PRex20`8!8&pH2tP;i(jq*>`n3|ssiM{dSEC;wZCbZR>5@1!jo5$Yb_< zWfOoBcLc(}J$^j>UuD(R!NywPkUgsKK*IyU|9lRX{S8VL7GBkZ3Ra#3S)MM!8U15; zCWnbEMV!X1)+~iHN`=K*xknuE)L1~&+Es9?ByN^lHBK%r@Kl4ULSCM`Lb}%lYfeiZ z0$OoqxbxUMA97h=?XK*#e7UVh7)Zs2-iy5Y5lk)h3fZf;FM!B0IG zAHUsM0+r-_&Tvd6eYDRL;Aoq6WD!rXkO6spu~qEMBICr7Ut)PP4YY>VHF@1M!fo~C zi*Pgu>%C)%1Q6J#SfFlVlp(l8m~m_Wj5&P_IY3IwE1CZl(5f7M-PHFOusDu zL}L|HLq8bSKwD*1gdbi#-37$aClkZgVUVS6?ICin3biZB;<#- zeiqP6h40Ciq|mVhFI124xL1*WeINm#KiEC*r4%{eUlP`ko0?}@VM##&UWQmU8s<@m zB-Sr`8?D?@Fzb5ptzBL5vDGZPSu03zJe0SWYSUmvW~CisvJiNAtAj)TEpe&E2TQ*j{?*?}gu9)16z=w?1TY&&4DM~Vzs1!Ji znVYy;$qe6sUIPy;841j=wAKlU*0g#A!!Su@SDjtu1*5GH4p*qbf316{nSf-l#m97t zM*uLJva#~w(Ae4T^;WxrTeEIfU2;*%EJ%NAjh95r5gi&UYT~5)e_8;5q_%i$v}?SE zOCp;NI(&+Q^u2A>_vCBBvcd@Y0#yVozkYHnH~9?ITkE~L%yAZFTx0_Dsd$_SsqGUQW_3kFALcnq^k{t*lJVEJ{GslHUx_E!)mX ziJfuk)2wW`a2>*AGDb#5;bD$t7E?k6oPf1~`;ak@f(t_my^r{`(b23fg94MQVtT*- zD|G*F6rse&X@D!!cjUV}VD$=D)%b0%U1xV4Z}HZy`>OEEo!c)tpYdfTQ#R*+?+s3kmrlz!vYxVSiwM)~TEQxy139@%t+FwS3ilP{@F z9usEM^2o#8XJ10dkv`BR&$h?I!Su1gO;v0G0RA7h6t&PexF5SSEX6R1!~W&hFV!in zv2wSiToJtN*vR0x+Tt>}YMS7eBQ9S+KB9c%^j+Mm6N#o2AYRUW|3^Xl{x9ee&Vtc` zt7vp8$UmxObQ-X8*$iuQPy&Y%3P8nCf(kWXr1Bj)MISRFI-AyArmWR{fSEqpv!e5{ zL(4$(5M=6!1rP>tj$=qA-PrZPbgNC@}i!J_OPxTmRH=wwFQtk*;PmO4ajMl0AT0aB;J z^jihSCD8s+G06Y92vnX5aQq9Wy!}%VC@DhZR$j2UzXeALgvNGk#wPG6MZI_ZIUPbZ zB9uP}YxW7URjgfD0q4uqnV=g@V>(?+qVE`~-hyTIQRd`EPHN^NjUe+6u`f^Asnm?- zm`Ql?HRp%zT50W(H7$)pMx0{?Ud>WivGexlI0nY6Ky2ukHTlKnylAGWDzus0=6#f5 zQ~5|#%E}FYRPL#9@?(7tUiOM#MiuOCtSX7${uJ*LV{#wc=d+rd!D0eo)s2wCBWNql zH98e!%yIkB=$ct8%#dEe7(Ivg=EmRs6k$v&V%6CYcyTGI%rw%8!Dvv~)ZCiIm{PT$ z*cHss+9MH(-FZ5`a#_)-v}G^_i|!qr%285MQVfmwx$K0s%70}MdCEqWz=b6odO-xJ zk7G85%R&jY({B`0%@n5U5UfQoXN@OUoyJ~eOoF^F1nIg#aM@I8Pltq$j=q1B>D>NTeCR_G;^ScnMpm8v zId=(*i|^WZY+QIFO2VKsxxw|qT>yu@7Ddf7khg{LJOD)%5%{n8o9-REW^O?#(1l865DTW zu!tp=cDBUf+rwmMh0aZ88tSG+w4FRj#9*gl0c`kGc^2bc;>aH?wd&BtC8#<2*^HFf zC6pXA*ZekseA*U!3918BiFi7@K+i#5I9MD~cbfUdm{a?Wsc_J@<@|bVdUI4ULWUd} zJBDk?y?z}k0&A+tIjr-cdX?FEv}74W`>W2US_d8sj!bq*Oj={?=QY>| zXxPMQQ!`mOnIwf0LMTbRptsPW;h2-qcsM8u1zg&xQFvui^Gq|2zf*b6u2Rr4u|V62 z|8Q2tn2IzblmZxdHcqG+f@bivE+Ri|>^%cA!cGr~uw30lU&n^n#;0)l!`$(!@cR4w zVAA0e?dNfZ#N^dTLXw&rbJILa>aAp~HQtf%>fk6E^CXQ?)vzwo&8vQYohee#f>Sti zMmxy)u1lVqtj`i(E)m~BXFzR1+)t%iL1=7s;NIJ0t{j5s&m)xpQ%wfY%j1NKnFD3I zL$@Y7p%3z1$iLR6a#l;p5Nq&QL1Beqo0hhxMkKY*;x#09q#z(qUNQ`?iC9rnnqw-; zXcMbz1@Ua@1Lm1vv_h=6F~3QPT+HIp)}ti9r9$t}FBs-fB)o0NgCC*l7fR5vhJmEi zhB`bFT-Gnj<}!4e#g*=@vZ_k4(W17DgCW#jRXo^$FoFm)Jhht_Ty3)L@tkLv#2kQZ=!_-x zPev*FN~AEgd_u*OCM!Y#*yaq#piwUnu6~pcAeaFaQNFy5$rnKeV_9B5-cGTF@>SP8 z_cNAV$L32Fxz;LiT1$R`@mjByjfQ$31eF@<80+X9>WX!vf`^Au0paS(4gTi8=lbGq z)yBR4I|{luwb4swEgk-H*jsfyP?Q?^&#(?+@Rp!`GwE!&8g4F@-M~ZrS-zw zZz#J@nLgC}s{=QuQ{wl(eiY=xbRDqu-hn=T4MHs@6urDUh&@F`2@8rxf=}ZkO93f8 zJvl!LGRLf^Mir$9?V_AV%3%K6 z4Ruq`K2)QXdF{4gbl#=0z#S0y@yBb=tNLC*qg(%i##@3XY9kc6vPD;R9Q6K962|Xeoez*5-zKtS$uzehj zr>P3Q?dy^?-iaL6Ct_j2L}EfyV&dTRRl?;l#XR@5#K?4NQ-cO)@JS|?@>5V47?5Ns zQJEYyR`Hh^)#q0iXZB~(|k zT;=Z4R;iiDKN`4NM-4k=wcSOmcpw*HjDErEUboIb>asgl7Aq$!>02l~7RU1H>&+Hl zMOJM|2|m34A$sFe)2AxHkYla_lKq6UV(pjC-+tmf3$j?S(4N+qqDpA3*4mj_E&FVU z)&4k$99%R+&Dx2vDVC)INA3Le>VyUSuGT;u1Yd`!`cp#JG%7g7;&O7E-LD*ct|ntV zjv{(gmHfOSRkjtjCyFrDr|VEttuiu+j&4k#996pWT+?=f7JLCLvu6LCKLu?Rf?X*F zy?49}FYUbg2v<(YJBBR|1-@h7Pzg*3coHLs;nrMn+cv52zt%sB3G1`~Yq1ECeT4&vEnhXf&c93dfAqrTMvrm1m)5A3W9{ET5gqrtaFW&wpuwt!XwSb2# zVd-~aG7F|c!}mG?aH@(>@{tv_i@z_pKQ5AY+E?>KIlZf9Ir+wp={~aEDkZ@eTL+km zx7e;Bp+mTPv^@|TQV09&Pv+3$`eVw={U$5VJX=Yb=OF_81GPgxd%Kb7tO?7o- zF^0ZqVbC!scDInmOeXW1@c3_Hd6F0K7vbtHgEfyr z*Z)k~anOC;t?#&YgsIVF=lx-3bCZ?WDJrG2Cx%_{YJ9xaUEgm`YUTV|UO3)Mst@EN z#(@H;OBC)A=5Mn&Fb2%`|MnVTU6t;mE>OK1A&3%o(E*%?etuWmUe9q5yU7B$j_D2t z%diK$EdX4(=?_?V#(L8{uQ%4{(5`b{*~W9sYcggBBp zgR$khy<*5GUdpg{H`!5D1cvC?U~ z!oCHPVI;s%SUMCSrKVa!*2^|@S-J*UEqaJ<4Erv$=W(_5Y+&!72Y$E)R`futid=zx#6VM`jEx6lK~c-~cS|X&5(eX72Z~2= z+}Vtv^Ugu3KxRzp>KYgsgItV+97wdTpOj8xQKja8n}1rQM8*Li+s;dxnkCR?630y< z>bH{eC~*l-=5j!`H__&-K~Qh#P^u{_Ypev6cGNWYNQy;$S>)rQZL%rcE)S0k?p}RA z@5**Ea1#(r5U-_nMr^^Gj?x; z3JGFOm7juh@Duy>R{TTBAgX2M)?rzYMs+VC_v-&g(>I345w3r4>}I3JX5%zYW1~qL ztFdj{Y^=tOZM(5;H@1__hVP#LdC%9qu9?|c%yU0KLfB0L0Onfhs03Qe$&&^}PA2|R z#&`CIr-`Kc6`=~xF98v|>D7y==0Bfd2WE=7&19%;4r1h^CsDHEMQ6s;fJBHGks%Sk zyAo&aKZK29Tq}|4=#T-W<>j%i9rGllqzD0nmqv>f1Kt7@P+uvurPTufA`C%VJWCNk zDnvM?A!ekP-|0ooGDhUkp8_?hhNJ<3K^NQ@fs-_oPb@<<-c%dd9~=zY6!cNh0EyN` zt3T1j%dTC{M^okH5kG_v4-fCV`v1d8sw*Yy9OR+MPEMU?Wv_bH{*T#2AjHr9+3X|# z+a#C7cMq0UqcS`FXUe--Y~S~{t5l&T#zwwruLm7~!LqNr?#;S=?shltTgW~3)bjg^ z_s5Rd9#)e7Q@6X&>r7YpHzr@VmntEjDPCNPUE7wQpoO9uz)m2k&s{67KC(2r&qsL) zhA*7M?Vvr+Rhpmq9(T|EmH+i+utuSYo7>ZSDp$2_64zJSOCPUFWXy)L)s0OO+OiG0DTRAv)ZbZT}w`t3dqM?Y%oY z97?)Lu2K=u)_U{u{1*GmT`l^vskh%SmoRMlC%7en$R?Mgv+{2PA~{RVhY@HOZsupH z2)Kvn4`+0=Sw4pnEH5WlerMwd0E2ADC9rvx?_XS@m!2FP!9wEQ{Z#;!| zB!&#d;cGdiT$187J`Xzj*ZH{<#6B$G$YsAfLj9+{gOA!|8}Adv&ddB<4<=K&)@Z%= zwTd1;FfQ}QF@U_mYx0@#T}by4_0DFsW)vCB>r@mZD&@ z8R2pdf`y*Wz~5{KPOaxg4u{ZJ<&$74MXKI#|2OW4QpWLm#z@HTQLjdp7vG|Q`4t^d z{_USVj(0OB<#80KJuOWy;e49g1AhLK!E^m6La}>41{9ej)|_Gutwx+yAJGB_Dxw|i(~r+yFvU-p|*s zhBt!4{6VDtnZPr?upi$Ubs%zYk|>~YR`&1p26GLyhln5gade`>bJ=DroE-^60lkf1 zYN{Aut(vq?YvU4Bjzbn~d}>zTf@TIdZYm(qwxWPG^$I*E_XCPdLa$GJdMCzAD}G}Q zM*i@lY=VA#>lZmdi16X-nKRgeIZ;mSO$;W^cBK$zLy3yQw1SEvRtc6aL>LN4A*Z{@ zCJB`Xo6Nw>0csJ$BqH;?RpCUP~wVs@=!ke-2UiLqDmC`Q`wL@1qqC^_E-!6@~=^7EaBSLu8s$1{kO-X?llds z3=;cPEriod!>$*(45N&|smZ85+PqGUPZOOd^^j+Aj*8%2P~5uwI-a!55@7B;`7%Un zEp_V26Q^~0vA|tv+a&8vJfLjW%!&h6B0zHfA#?0^TSha<@{iBVdJ zi*p|zS(?x9G+tKvJ0K$V(xN@%Oq6ocq&4TC;EpYR3NN{R==Z zKu*V7kF76ehk>8a8;9*iqQLqTkFu!6I(2>*g(r}Ta*0ZidPHLfk>+6_Pia(jcK9^d zRk~l5diU>Ua>wjbcx>NFxXsoNgMLvrqtCd^MP;*pFsyO?Tvh25;C@xgke_6Ti*p2I z6jIkDNyb*y&PTrkp-O*Ch#NNpUHoE*AgiWupDvH9K=0zhdm%oA zl9RY`l!z-06nnBcub5DY@-$|s|FWEzz4Nv`Rt5Q6rSQT467aN^=l0zneO67#=+=@l z!M$6Lbpy0wVjK@NZbzy{`-OSU#)JA%^)r|wsn&}bJ3JIwjzrU|CV_?AtD zkOi88yWpvp!XVEqqis06&d2C>bXuv;;m9vr6ZaU80A=snZ7modp_c;z=v>`*()le?xc z=c+R=H#a>X-vw8`-RB2LuCBJJx7WdfdaL~vj^KZpAn&hQ<|al?gBVeIkA*3O=v<_9t8zwURFq~@ADzI=Ev0ATw@d@cRnqT`HGKfq-j@ZDD}l4C`k z&kVh&;5|$LVB;06`1r|e+sb;Es@kORk1^n5I9AV3NZshm`7Y;4a3uD|o(!l^vE z?dxHR{z{$i-7QYVRL4%rS*+LLy8lhf$N5`Nx4EK<^)%1n0C(5LvKXCx+llwG?n_f> zD424I_%1)1S>SzOe*3<8`)R%BX)_qo>&w9nSL+fkKg-}Sop&!L@+o`(ufR?Xr|rt~ zqzHkFZ=QtPq;W=XdJcWk?Gd27aAkjZzgzPxovtRKe;04xRt(0U?|3*3ksNscE$GR@ z5&SDnSB&(&E6Lh&;Vy!#3+q#J(Z+r+an@;HaHj)2BeiQ@-tEuA+rYmU(xA|l>e3<; zgJ418)sKoNX5ag7%Bi;^B?0EcCmhqZR+zG{boKp=n7fKYn8!oU|ztj=I)>5jH$$^g-yaS-G|0a&nB+@kO;}#{EblY^cHSI2o+?5 zZ?tzb`7LixTsv0!@&f4YN|lx?y*GD9FoUOs2ZT%bDI^BV(XMvu&*6uNR&(H=vA51J zAyBpz)+OQ;Bd(cj3K6eh2Z|DV)~%aDp|cv}MWr${EU2LaA>enZO%ueoptd}*Vb#Q0 z8>%NTL;#2~@KaGlQwBp@^%O_d3t~C$=BO?}M**G4zdS0KDL_V_#Sz{g24B;^aV+VCSrofs^ z!eG`%GaP$^ceHnpgJ2`@q9}L*ik4x6B|_+uO-aiVz-ElT@nQ25C8%4Eb7VQsp~X~6 zvcAJGh=AeJm^f!268q?ahlGV4oc8-N*`9rx93n}GNdv$*jtMZ*)d{6}fK#{!kWm0R zKkeJZ$g$(LPcyDk$`AWpEUdg#9|osn8`<%GaBgDceR;Ln=FA#iM|O}IzPOHdY;MdGW-2(yo6m|HXn!I@ zbTWZQYmE^{i#%3CAkY~h*C>*ltBl&>%HG46U0YW8`=t!*_19bsgZQ(JA8hR(&3KcI1w&}Xu?jE2;cjwh^dn_n8E#qsMB1378FJmrc zHtNhAMk;99=K}+oYj6D``v21cl36ZKS(m*y_2`&zB_E74=(3ffU1g;q!_rae^V#_s8 zPD?L$s>dV^gOIyq=d8Y*jSo?3n`_K{2h7B~L6gcgjTc*65S$xeEaeg*#0gSqM&G&B zm|EsJ`H#}^ZxWqX!3pQDoMCtl;irEOM^uXWriz+oZ1NdN*&r~4>MxHaM52aVlxtjR zje#gZmvy+rQSV@a^oNX+pOMxVJk~wLXw(o*@8FO8RUHt`sVCIZpqbVYQ3JNoqNl#HehTgQ(-+HI%7DBQSH& z5CG-OW&S0gFi0|1-54<>fbA3}V%WykLpb-oGliy8;>S-422x|?4@IV*iEG$=v#?8% z*mgq{*ai!UtSGEW)8}Np6A6^$hI#pPD1cZ-3TYtklG-GN1fr=DW?Ov^qqQUiL~#wg+ocFgWaC^qwM#`J z__45TMgwZDf^ZgaYnv`j*9!lUPKJ0*L7G#_H!@+FG#rC_T#I_Slf2~G5{^G5zoL_I z0P)(wm8>eG`__NVSX-8p$h_HxhKLELUd%Yo31?UjSbi-p)%fhzk4n`W!4gxmcG*J% z@v?37_g52QYA&vQoz$k{75U){vrFtGEyRz z>m{$JJ6Jj*X0jNFOr``S9tcae)Kr}XsAC+jgGk0^6ZBfv>Wpcf#jUU?21<38`q-n6 z9q5g80K0}9bstQe6~*tk`}wS_ti#9mRRGoq2ka2_lF5mnAK0qNl%}iNnwrNCUatGI zbr>rh+8_UwXIzY${-GOJM-V?WbH7~eGPUs;gut$kzGEXRg>xDW-pvM>H>g>;j91@=O1dC59JNhXoOdv+_%0u)adiL zZ{BN`)oQ$7fqefhiRE1VLA$UtLErLUmU@5eA-+`QZ?fG~n&!U>iiX<3`nbp4e!0|m z7|*nSnwsSHIkN3}(mComruBEYSSIz_k$U#6*z`LY_a^`dzQ_5yy`fjnvDo(Z@(?2y+7oBX!o?8#S+@JUY@#t41e5A?B%%bj+$?|jf2p=wD^C? z`=YT8m6w0U#jPl(AFrQ3Db$s1YCJHlZo#7->T??c(fB5FMfmEF-r3eei8Z$9fzZqj zUP@N31rEuimfy?H+RN#S)b2MnAiP+l;_~cUcVl*%U0SY%l-6h9=1Kg9#wz&<@(#ki zr$CaiF`53e`Fr;lDh(|a*~BRB1MX}Iab^;ecip>)hXWWuBB}12cikvwg-A4kSZ)J(?p!><&R-yfQaC__ou@T2-YNfbJ(Yf{U<2IO@rs5El-Ip7h_3-J= zio`OZr|$0IQDIOuqMS)I=+8|G$3b~@2%dN$u&lg&UAMAa4^aXUHURJ)mIM!l|*yKKaE9cX7&y3V(9dzB#jI?VTVctqa3F4>a=RhXSre5t0(EwkNN{ejFdmQ$sI zj3OTx6$A}XTD4-A)0J|iw1nhN9gZZz{?6j7{XhZ&l}*%dPywZ9^bya$#Wgu@Lj&lh z7i0XEW(oEATBG^EY#DVyDq(aV+MB%D3MHFX(bAQBeXswK&0++hNS!cA=OIys0+8P= z%cAL;RA6zX(XlmK*DtKHOYy=Gu|xZUFpbHOC)mJTNI;k2&RmVu#PD~*+T4z8 zh;^?Ou;Z`&q)VrS4x@m9(%#-m*y4d&Kp1Ip3vuL8CP{dJ zEsTWHXNl1v4=W#nXRe}8K?}S+Tx089#&9uo5Z5hX}c)}VD8>)qMH7& z_R5@dWpDF%B08cL6)U#$-B-~zNPFu?9)VI z6vd+PY1q~k^@rq12*+N@)qF@ww+yE#uFU21#9lU}hKOj#3e$kmrae0jT)NeIsOJR% zD`ENCN>6ouSbZkO!U!p>q9h|Hhs_E|S55SO3y8pETEP!6;d4BmgxYW)iS@CVmjt+2 zioMKx3z&qW?hK|pV+7C>MYga>-{n7W8=7T%$~2-|j1H`=HB2w_njaU@<|HP|jlm1b ztCmAu{L@kc$6s=PJ#N+7)eQe(wX~RS;_wzP+uml$H-$h!`e%S>`Kw3!ONE4R1kwn4 zN-@Q}JmDdw+6}>y@OhJ)=m=H+GR)QjrHBA7tSxnj zjh1pTsAS~WcpPL!95M|^Wg3|Dk?UP{|cIDv=Ib0{*bB ziW+`TN|aAHe^xV@2eLx7pO-!&8^)4RsRH44qeSxPkh5{Ib!N%w3AvcMl&v?TJ`E?z zqsq%k%-`NhWKXuH^YH>qbR&6XW4u7^<#1$@OZ0Zqhyx*;#ctAp!oo3Vod1eBj7x4{ zW``1HzRYapkMY2jNFJ{37)rfZHMXP^XH;!)3F3g@@Vifs{ z=nHsvdxzGxWUaXKH^CmYe9tH?+(%Drct{Ag@x7%CAW(FMQw+KX^I}pEmg5hOtLL6K zZeL&T0M!UZGLyZHiG7oH_S8sUpJ>avSQoDFzUG6MiK2Rl^q8urBrIU8-XK;@4F}?f zAnV(-b03cVPl-7mZ+(}4P^mE|ITTdAP^z_Yq|z1nL=zVt1uUH?-T2oZfKuSaO*Vi+ zShdZON_XVU8Jpc2Y(2!uO0kl$+0H|bR*5)PkDX9njgd#Ti&qB0_6GPUb}dS(*7dxo z;26hyC+_anS2>D4AMOAsg=Jzgj`mEteBWS+3`%lp>gT?4|?cO6(6qcmE~-hAEJ&FMmzD+0Q( z$3__~-jocLx4d2IxQeL6#wrr~8g=pXyydLlKFsaaaazaKFJLJ7LmV}Eaoy{yAI~eo zhrqhXiI$F5@V^)Du1md|0&aq*TcxW^Qr0e~$^BbP;A-bdpwusf zMz6_s2!HIgd3iXA?t+W^==B$dy|A`X$a3=X;R&YHT^GN^I;@_v?fv&f^h@#kV|z5Zkc+(E3?muqT(h>vk?FAARyUqRxBJV~y4TtN z90>J3vf3BV6V48PpS*QXG^JNj{J=u4=H}Jl5q;?12lT1V>sB18s$*59v4E59IKfMF z+n!%^-@kvazn;j^1=Kn%CaBC?H{1GJNcGh2t~~88+*?6DGVr^ey8|o4{ZC1`r?!}x zn=4U>CPgarm9OsP&#w+QJGtRX2upn0bk-h?0^0TtKkYbQ92%lg|6XHuNW9+6$ovQw zKuDO&D4L%26A6%%#6U}10x$q!Mi%?hx_+Qxq}6D0w)t53*}07$B9J`nj2_GnIP?Q)W@+$#>h`c+3_0TWN(SbcQ#c+5>%U|dz- zRm-}5_5gH*d`Xd}D&B7P+ik|}`bKiRGf3q=uF*X+f4FWulE|zJZWiKE+ zO3$H=zSldrh6nVT`?Np&F5BZXG)vngHRN`&@t&^~ds z8jNXJ(iq;kj8(Ut=x(^fI!eXoVm+(T`_?LXu|7n7XJZ>60th=P$5sj#6hF|#(b{vV}bNH^^hj^;O*#vii%3Mf;s4N6WxA|gZrCC zbaEjxMf1q_Q3<-s*Tx-+C24Gj7}pr0Na=s8Kv9SjWoLv_l{~(kZst`i8KFtl5zA~T z{VO6Km9Sn*UaZQUk&}rTy!cm)>h6DOSsAxbb-9s9A)54_6!d{dWzZP$uqWCb3!m_R zHbP?ukNhC9r6tD(&<|T6qlr`J%Qibi#U*7379Yl@$5nvokhf@5_G}g~ZZR|~f->hD zQL7SrH%2E;^No=I2FQLzcPAim-Lh?2rz|L-1VGk~J7?!}5tuuX6yP7a+Z$~Zc6p(x zb~G!X6?5{v?7S4$vrJ#%{j$sU!dVvrC`I$xDGxAD*STztdec5~Bs_)vMLFYzUP3(m zZ|LP*r@>-!5rUGM@^{kE2xvG8BaB17%_8*hDIkcO zNxpr{N?-dOpa~SffF8bK`tvD6nw{YQf811dro>7I%Y-+DDlUl=HIsvp7$(x%Y&uys zPqn^uF@p{-mpC-^FA_Y?!XIcTwh;K-TmJDKVvLM2F>yfL>w&=Eox1_UV+(Zp`Uqy& zD`lm!vHEH#c~g@*!n#rWAv6FWiVfca*_3P83L(`;xR#0`l1xw6l8MOxFOyQ_c=uPi zOV|R(7(5XzR5VQ~m>S2!<%IV(ob*L)MA*77pOM!|O`{YjtQ5uS(X}o<6Vm7W{5?Yn zxASeqYrH%|b-t=*@a#1$b&oF-xX3m%2si15k4#ZsPCr!IS0@ojKa~t|HeuS&G&he7 zXHU<2|Y9>Dar z>I%Gv6wG{Klg9RKj6%Z#q)`C)kbG8-U?jTlOWgt^tgeBDLG0ZhPFKgl&`OW-`Wd)% zB&qOvM7V&`*qYDQc>t50q#!c2MKSUGW;HY~|zbweoIrW;UIru#BMN4&g z#+Vk}n-=CFn zTZ@f9>i=xoS@#a)Gh)=0(*qbq|0ci{B8C>1mou?(wm*MTlB7F*VUf`dUJF$LB9J*+ma>f*&w;A3r3w;z2?pa8;SM)>#kkUyP#0z zw}vxP|3}Z~HqPerBSF85URS~Q*yzu0cHcfUw%s>E)1I)Hx9`i)_3r+FN{s13%yl1| zlUV%vL*^9#wI{{a_D}oUoBkKecNM=XHNiu1e$Mmq%Re7VdOUAl1S_FMb*?&ZqClMw z5%W3j|7yB=h=`Y+d!E+qe?H>OLcE#?0;oI*s+pnN5y*tyIr{B>mo|Mk7o1jjyuBqW%kF{^x4;>IIoX3^- zmgA5Xi^rm3m#Np<{bG4JsO!q_%{liy91LC!JbPX9f8T>F{sPwr?%fY5aUXlRR}bB| z`nN-AUAyMp5X2|3NDw0LgB*aP zQgJ`sUS0h*wJdlC$=cpk6Y~Bi$J}*mo%^=z4}K{!zv$6@EXmE_J1h)jxq6zTt$uFU zCiv-O+4a%Cm}%GjST6Kd743f&yl1@}3<)53f5j-tasF5HX2{D2rG54BKs>wJ)Ufqh z&93(`)zR$+PVv9hpYrMdmg{<=qisBXUji9;?Vbj)R%e)M~4e&vGw&hTMD=9zVU_tYAGeT zj*xNL2|OqIp7L?sZ5%6bKeUV2{SJ~F$w;~FY>rot-Pr`z1sCu7VSQDn%Fpb`OfloQ?Snkxp^ znCGz9&%BXX-xRVuz}+iXnFFzVJdUqJ_Pf;Z2tn?(TEDbV;VB=9$zj)U8)M9RKw0y; z+oWoXC0E%Az;vD)mQ#a+sW#u~lcM%=h2?ogv=cbLn zteu@5f@K1u#IDWMk!Y(9X9WQds<6vwL1sDOvH;|HOqA#`=Ynq_h)JSKh|mu;C_ay*DX%0_2HY)+?U{w zrz56JeXl`B7=ZD)rFpk0xD40DCBpG!yXg(r{ipv&7q_B^4!~nxXKQ|L?i0ZOec0Yx z0)HL!)prOAQu{*TG2fslj# zf+5(V@)uI+Q@H7iSW*T-903Teprn8v18H@DHc`Xmkj4=X%8LS?DUW7K>;egjSHpq3 zpNkLBAGYt)z3VxKSK`)5G{i~+fECUX|9*Q&?(}1b04d6XR3dNG`xDyDk{2SO<@XJ_ zUKxbk_1*xkF1d)?JY+E#JW;z9p1nUIb#M?fML-sAU22jZ?@_1w5MF?I%Vu=G!}r!c z{hK<2BYuK$%S}{*E8QGiz`(xPR2zQQ@CN$_<7 zD<&KCbiM;bVGM2G{tayc?^7J>1Y!VUR38S9lnIJ?jIGG}+S=CY+UAn_dbjV(^>qa0 zElH(_F&4lfG$j6)e2fTLE-oAfUTusj+Y%t28U@fMx*;537Z!q!AY;rFVPOMUNe-lo z#BxR*#nU+)N=E#HK_ZxIiVsjPXPPfo%;d6lQrd^~`ffJc4o_uwz{A7e@+&5VfW093YBBsGR2_c}j9S1`ap0&(GdPsW^z|hV z#M3>I__vT?;&xcbsNgp)TOuq~NDK@hX)s0qwCc3TYGGuk zs2C$BbfN3N^8=_d@`h2Se{aMF0yp5JM!bEDWyO`tnY!~?F}Ugt$;ipL7QP3GGE;H? zEK~bF0)-R>1Xkuhi_Ovhc&}V>2xd+(P=jd>mLOPQ4PC#c!tgZO{%&Ckzx5Z*oN(colS-rpgb&uC2TyK}=u^ zl@^!o)uhyo5ifTYCv7+`tqj`{C{>pl5`k;|CXj~;fIT6s ztU=46)Wnp&wbj7XEhhya2L9COgrWM38@5ByEhUz)xJbyDR1%$!WKl!08kNAfNv{D-hZT5s$x+i^FR<>8GCs1zbc};I>ig zEScvH3=w??Uv&ufB-u3~G{F@w%5ORfw=f&a2bUdFT|DvThCPrI1{6P34>h$+-=w)3 zlyH0^2A@`8uiaqH%oOj{>Jt`1I!$VI?QUL|K`a1SRNQ6pcn;%K~f+yF=UYe5bhh?7hHeNPC zHxw`s8S}bX7!WsTZ@3{%iO?cW!*33|M2^g2pX17&YdF&{@!T5VbL%5cbuIVj02gTJ zYGlX|6?C)9|Kry>&64*~mzWuX%GES4ZTmE0Luz%U^e@1IRTJa%9izEFCl^`x~Pe+)gJ&GCWe`S;IxHLW*rEO$a8?(8@5TLTDmRp zw5;V=YN&LW!t3|(3D{ACh~hFwS}A1^QDRDrOBCn^uwA0zDd_wQFC(VeSE-=-Z7IVl zpoLQp0)A9A|KOoA!;*BtsRpc|_pa$broEZ^gD)85{jQ#rZBJkUN4H+K`X`^?*HdM6 zjyABSeAI+)n77|wv8r^tm^PD=tQhpqv-r-Q7=+mD!MuQ-`gVDS2s4MXuD|typw<2 z7b*VYpz!0e^O@CL-`bj8TCz;?b)_wy&T?MzwD+Em8qadhg+q3R&iW8kqeai>-I{T_**v3(-G%qNlnzNC{UVAMX&& zrt{}U7kR*VwLyf8k-_G06bS!75anw_v}S3&(p+~*R4*h z>Fx^_p_QI@@DDAM?v5I*!C= zX@TpV>YS}W0bu(?Ixpzyz?|4=rG9PY_}R6hVsWXv`@~Y4_aTN`F`Mg5zx#RhM?*6B zaw~B2+wk^jM1cYzKy6x3kiXIUwdFu+&z@o`kXIv|kNpVu?I zH!7FiLk390%~Pr>Mjnq*45@6Nogixcw>esPH*Q2*Ik__&(kIm}uICvT_wSe4UNb?| z=GpEisgq|@o_pWCy^8t4Pj8;7lR_Rc8X8yBSI^hg*(^1_b>I2g9A+`Dx^J;kWKAs` zKw+*Gwnj%2x{db{Sm@fd`3h?y zPsF66955a3c0YUgs#MW4dY;D6{hoi9kPzsDC!AS$UtZk-y^wR*ZFko-G#ur@MNjj* z?6%!~dLI(BPF`c`hk#v*(HlwMf|# z+)L_bcUTD%`6_3fgHNy_U^|qhGNq}6jUVG25Bar%-nTzK*4FsW9_pH`bH<}>raFVS zZ!U#84`{a|^H04Q=8LEO#@DyFIT~L^hcB;=&ojJt$Pp%VpSI9H4$?jj{HtvW-_=sT(3x<68&SiLL>8T)NxsJ-Cuz167Yu>d1?KCc>D zsZcZfTb5O}w%_5KUGLVaGM5!xl1?Xn-vP+NTHkJQx#gb*c<(+#?=)8t24_?*OTr}9 zmrZ21AOf0gJ>jfc-VT;oATx46m=J5TRDlx^`ktWSjzE`Nd0pbAwh#^*p?8Hjf=tB> zqLm&ja&~GVuxV&As9dX@j@VstBOH7Kr=jW9OZ3*Rdn+|uDarO&c z;l~Ka_kp$CweVXtu!XU*kT+VP8{YIxBMpL7U3Gp}FK{;;h+^qPf!YQhCYESYE}Beh z8s)z77z6XZzXe9jYFzu$3i+&$?Y$`(#2O_Z&@&=QfX|Q=dbcv8Gr3hq=ACauWncCJ^WaZ{s36K(muyllI zSX}WbUK*sG+SI!PUhkPfwQ8qqHf3QLS|@V!DPHWK(WnWG2n%>=l?i!Ak%%0>zYrLA zQptT?q8WOkm<|sQ;}P#W9;cECY^zF6#2BOaAvc(cbdLasu=iybgOOSm$D=YsmJmaR zp^RcjC}Dja;y#Ped~sXezWu16WdeevBhP<7B~UPM zrpTd^-r}t|l-WhZQ57py>7gK1dzMAY7%#+iv|+P|)-0&dl9X6g8mK}s{^QMI4R(Pj zD@JW)eLDmbUcqXn)%F7e+CPL-&}VWalW;3-=W#ouezBDYrEAWTm4vBHj#g?^c6R2W zh5AuW)O?Y#8ViRl8BV&Dxpo!^RP!JDMj=}}knj>O@M}Jlo+Lx0E^A^LFDffAz$JmI zr;avHV37dO9Y|Ej@fSlcg!27s1Cc$fOd*`S(804|19X8=$m?7Z4afc}3K(?};R|O7 zpAb0}6W&jmv@aU{%7}=SPG+w2A+oP1<)cU=5gw+p2teooe*T}pFHlOfR3d#JX~aPivUdGVQv8P8O@T)qnQ&w!)K^cxx`O=~rq>gIKajN&!v371 zM+87B18VLUwonKC`7VV62k*$mGUa3b zrF?>^ss3z?#8!BjxbFameVo86gfyGvt`~1Y_Zw3UmyU1PbNH8uSa70n>fcuSKx`A~ ze~eJ*f5#B8c>;fxFQv!R*55}hNI^^R)M?-f^U@Tmsa4?mAv=8)uO_72vaB@twND?q z!=6-aE1(fTkAMD~L7BGIJg-z1u+y0zwK7W`6%@13WLHT};gmBd=F3+dRK9?UxQiHx zml8CACmu7DVERdXr|bHcM6onK^JTojA7J1Nj0eS@0D&A}UjWkB;`rCB%!wVI>J2{# z&uP=duufD20W&%YWMZ30H8RA_QqLh%#mNlHAqx5#BAE|;I1hgiN7_XyPM=RmR2!rZDlHlonl{4WumrlaYLlv z6t5L%zh^mEMtAnXv50P+$>LxpCkNgxD8&2Yi_QG>3$lKo0_!BO`Kyjak03&^*07)M zF2WyUX&I#JW{LU<7z4G8@3xR73kP9Mda0K91pkQzWT<^s62yB5l>19J2lVj<)10@&cPox+!w)4Wd+=f8K@~fzFH~j# zAidmLsf(wsgt7bNUUPr2l3P9nX$%O-_{+4`uTWDO4qHz+^7#-d!g3<<5T+IGyNuLI!NyaFeb+yI|wQdZ{i9 z**zUozw+8zdN22Er>W|o`>(&4lltB^o0E2ZSm&;TciCl%Ob-)i?cyw`QvI*l=hKMf z_BH(W?xtVww|x^}gqs@9LO{MwfAMjdyN<^;377ak8ZfD#05Wpc%at%ap!bI1XZI{n zo4ta*&jk5VPlI6N%dr2`QUbBg)W`OAj@yb-Lo6Sd6Q=gE2h=P@lGw>F7sqo6nWGT_ z?_^bOAvZg6Ti`!OIiC9& z74HdkT0`lO?2eDBv`+Wu7+zf6=dFsKhoaWoCXF}ar=PZ#ZwvbG&Qj(ehDVFb&R}%@ zKx8=Gz41jc^%b-M$`>mz@>E+3{iwPWVy^ri4o`3(!O$%N@`oPQ{=C{F1 zX^`AsB*4-&JG`;Qu%-sb$@wB+2cw)`pX-UFS7+-&XBL2*Ah z>V5CPA7|UeOoCoZO7$vK61YUK z_8>B)!j9>v!h0%6MetUmd9L30LB;)JGxu_)Vc+*OgbeXmnklg?zENpAYB8KOrOgfw?^0-Msk(c|Jrz>kUDg_d}eQg+5jc2D0Zl z?*alRgBA*N^u8AJoWgdvpI;$;K?e!80@olR_7-!z_uhFoU6Z|duT zzFI1yCw!E!yqyd^SoaM+K2FK8yadY@IlV9~Z#u4{-ZGm$@@8As>T;2OeblCb$>na*o`R>=ZT)uyW&KdNi zJRh|UQym=R^&hRLSJ3>{hvzUgPdny^EI+-*@EI=K-=rMh4ob3mE{n`-o}Z6?`_swH zaqGJr+>B3mAJ3t8-S@Hg_hTJEZ&~wR1&y0c@i{oue&~FFoOQUW_M(S#9F`>PKZMEH zj*Mcu?sZA+tj~NbC)u~bhq$6J>OXxBzzkaradF?k_b6AdtLXL}C)!(ydr_0Bgd<)olj|_5 z+~iMsMEa6}ovCTsUyGPLq zG!$|PUkyRuu(OC^NX*aMwTeuI1fTJiHB?n?;{94|)6H^y$h8Ggi#@_~=Yp0_Qw_osel@4stj%9v!|yV)cuI5Gq&V-nq`5QM|t z1KhX3UP{;s;87F0$|f{KLbzqtow7g?i8>mh($wSR2&D);?=X@0U2T_CUYq{ly-rDL z&nK8NwLJj*Uyx_ck>`{W49kRT4kzdQ5{^U;l}wQ`RIgX+qLp#yW^S=%B9&!^Y6Xt? zK2|Sd%L8P4e*MGNWx`rEnsMC9*m$ZDsw&lTnZ*A`(^*Be)o|T<6P#i}ic{Pv?ocd9ic4{q;$B|d z-JRm@?(Qzd-HR0p#kCYU`OX-Bu3_Y2XC!m2^~^abl3v>bQJ2ssK&`wSBcL?we&m#m zp%VG)U9|7!9vU;(RgNLlOa3^P2U_-wI#eAj&Ob=`+4<{E+P`3l-VQa+RPS^P9i`X5 zkEyrH&|y~pXmCkY=Cs)-g&cmIRSC;HPJjoU7N@3K7wc3Pr3}%P`BQ4*dE}VivCLdk zeGjJ2s41_fNK<9}{P{cJwZDcyH5jiZFkNGsNoOXZ4l>>?0~DYlJfWknhy^(vS4qp=hXR28kuMe2W#3#518fo_9DRiliD=n)4X z)$3F%p8W3xD~aDlG^o}X{z!ug<_KhEFlZTY`mmPlNWM$RLtP`Vtk?E#C_*>q<@FEMbsoE6t2|g=%+A~0*nqJU?UrRgx5lwCv z>=b|#JGdMH^syfdzjMQc4CMpyt3$-UCp0Swp&Fxrz>Z!N7S|6yxWq zDCxTyqMJoto&+!>FL5c7U{?K8L_^fWj)L!ae;9ujU9Ti)NRqh#Xo>HC@SUXT7Q2{l zP1k)b5iqmGNU(UA(UKHP5M;p*U4k?BLn+YmE$j@=AYhA!=TwPd8&bRSuVM{ptATCC z*;b1Wz)``x-_q}zOzl6-HVtvwOmLiZO*T{+)LPuha~fUmsj5UQ>I%dm$t_hYE$Qqe*Fs|fX78DmtaQ95b* zrv792H4JE>Sn)OY&J00v!$qNZGzR5o*ps5BZ|TWk1wUGakNU^+QPS$k>_EY;&9g1U z%mW_yFKQ|KzM{>{H|PX6*vj!z)|EMrhfYBifQ_*^=0Lp0JdFZMnd9?U2xJJ*Fd*pP zK}ikC%x0&^^w;0?-}yGp)kY}B`HFLi;bZ$CclV)4u#1aOKWI5)R+7x_HHRmrxh1iL zHN`qZqpCjIAMc49lF9*Li5&3Itk&@I^yKgSmO$W<5Vd`CpqD@(pr%8|3tixL=Z9;b z+`qWxE{bJ}XrSp&7_Ds^I~lmt8m9@p%Y^mU776>aycHwk6>Sqo%yLxf*4kwVQ$>gL1k7P zxfizsB}S9dlGSjcJ!k6k`L-&a9J5aprYfy2?vL|bTen<2k>+l@F;n3H+^-X$YCINH zW?$j*k?p#Gp=UEhVCQ3c#cH_?k*`vT~|j? zNKi*tH-KUCrT|;k#{B|?ZR6TIc!&;~Vf2k5K77-H7%3clHuTd2MxJX`{{Oi$#xxudEg7em3*9@ouIsLIZxThjryx zSR*T=bS6D;{$0Ei|2f>x(O>A@{9w)P@IJ~Y4Ja#%tM>aD%VECrJG<8%rtv|2g)6>y z$s z3tkl2zb4(q&}FBw>J#_s%v%g2-q&wt40;D|d%0}|?mv4r;C{liJ#WnB8Q=)J=fnLx zKE7N~;w`mA@Xzmmb$FR10CA;0yu$R9nfH$dQ^lN3Ay=ids+E!Z1SV?eJZt8%zSo^7 z=Mx$bN%c1O(9`4cPXpk;tt&Ly{qzv?9r$^9*|*Yrui5G9o9)uN^Yj99ei<8*KUm9s z;+1Gp3Qs3E@A7p&mCkkpfTak^oV9Pfx4?*uk**#I6&p$PY`D3PdB=AsiYr%Pm!qR zzA#*?&U*}2+3T@fSMua`(7b}|?>f|g3+H6!?zkm41LyB@-flq-=TDu=x|1YWsjhS0 zemc^5@d$OdAtYRNooamxFtotb_f{`!cS{%DD?0@E1qHAFaK-(RQ#0Id`wE+i|K1oo zbUntquw}U(I8E-nsr0D&-4ws}g(%zQr>6e7z45tN{O$7o&JwNV<*>E>`RBS{?3^ax zxOv?uB-oMTagx8`@YmkRnV5*^DXy~jk5B#aEHw=Ih(3)&$J%^euo?I`C5g4kG206d zzUV$JjqU;Y7mWG+jUs_FdivoZ{wq%CDl2yS+)j7-?WbtZ$T2fewj^Eia{oOP>0ha0 zX7fS#{=@d8=Eh=o^8WW+{qmM7!+*~)qCHHT){aIiJUg$Qbb`zP|9)00WyXg6(?c4m z&CSSn-={$bxW4P89h8_(JP(83UmJ#B@xXB-aj?N@qou~d&PMdh-J_q)`bV#tCqI6ty{l)FFOU+g@Yn8Lr_9omr??My7Qp4xX`Wf+n1 zR{8C|df6lS2fa_mOBrPoZB@0}s6 z0isXmD!U0w&zMm(%gEE;?{*a za{bQd=w??RVbjpe2HQV)pzCG%0t-{I538fME0)%_i;J^Dc^y1#Ta@xS1iq7WAZ2*w&*kGl_wbM9ke1 zWhu-sMRf5f>@~EH-Gx93%<@{9^EjQ19g# zAgrU#i*?zNYr!SsnF@QN!fx}Of2ggP9s*-Hw&4@#=^Mu32{8*uOu-5{N6qya^tmPF z9OzyqRcYo!202IJC92g$R>L$AF81#3?%%#O>6Ft&9A2V+@IkWiP!3Q=5hEtSl9;18 zx)LA65j)`4CpOhqE=5!KPjiP;Q7b@E9EMM^uA^r+GxUObK$-stZM49cXv06zFo*{AJI69r-bzSJ zA`5EPO2F<2j;GAnxFL2o9}OxiD$k9a7AX3h>KdlAH7Xx2$XC0)92Z7dVXr~zLCZQ- z1&%R(w)n)@LUA8N%7nD`t8H9B$7cTX$@r0nVoqd1d|OKmbx&izb2cah5dpwH{z&s4 zGh;_a9G?`K3MgS!VWb5vMIx}ORUn5ld@7P(<|j{Zfxk5w?s#yGf%_H zp&VJE5|FIt*y>o2594X{mI9 zsDe8ZDOss*HB@?WBXW?s4x{Qk9fk9@sfyz_jWufarr^K;1OQ?{M{3lXfzpQBIE?2; z2**Gq7&Bor%p)L;|7zP{UR19dYwB^KFkbp4byapXCsOe`5kh`Z3J&No^{LB9R`BZ; z-?o5kT?X9&<0L0m4lbxsaO`GN=qQr#4boo{vgv2M35YR&grEOE764UTuAK=iWA4Sz zsmIv?9y_Z|fw%_hyenoP| z+QVWM&KaMFW*)N{c+$)z56>Bhd!V2La!Yiaq(FYf_+ggNoGiD4af(I;Vt~PWx0|nD zgOV8Xp^K`}Dl}*vwMO+;-d+TCFrrCXvxOR%+y+UiCI?}N1e)oY7mx;k6FyD83&JOy zKDF+4pbzWdq1ak6F7l5_5>?l#BR#WBIF>)90uT-;T9L7V~C7&RZL#Zlr z%aKSmC&Cuz4HA#$aGb{97UH3r$3E&p3{fBnnpP3`Bp!o6p)ek3yZR=LzRu&WAuepj z?}3e>V~TMT45lo#h?x?K!u8O^b1nN)nF34vs@6!Np}e^10+zbbSr6$GO4Lm+$*Jg| zAO!8y1bQ15T?*AMMfZ&BsD#tS&e;3ma6o%4I z5I(_~t(DRI&s6=v%*da)qyzHVpUGZGmNb|0a0;fy4^F~oYy$h7o^Bltkt7iPq`eW1 zHmm90(ed`(=_BZytw-8i8R`ZR_oU43S^pMiE~5CL!^)s<{hC#A8?L zeKF{Xvx+7*@sUtPi}uhbfM2eb;{bI`g~A?PxSs(tk`E~m8*PP?klCW$J1u-xJ%`Pg z4}5FTWD@YG2?=JIo9g@w1oSSu{DL^GV-SBr1_9cs1d$UG64w~D`mmj|3UpyY`^ez> zGRUpB>&#U#o4vdg#$q@S#WiPey1;J1-#>X?%(U3){CoQ3RB51 zaHol*rA5LLKvCV);-;vWIFbAtxx4EyM7Z)rv-Orw$M>$*Pk(Wg?%Dda+ySO4KHV>3 z^{zdW&6%#eOJ{#;#H-geV{KD_@DcN5mniZiiwT?B!XakGcd+c8V!`}nZs za+-dmx4E_8wz^lCYmE*i_gI7im&cM1?}rhteuimmXUE`1z_`}4&n_Ug)6~;GT-chzsR}1C;9#* zp4Sm6ld%GS^AN*a6;G@uLWw3s-1z9T)|+n*w_b!g=#_q-|BkBNahs{O$nlvA=JbPU zO5o>}%=v~)lenDjQQ7r`t>?4&wePOgk%-&ro%e8!-}scSk)d}Eof6zd68#6>sMvYF z!k0rnO}YogcfaTNuAg1v&Q^Oo44E7$uWd9$=hTntibvu4U>!~K-@5%)CfTYzzP=6& z!tfZHo^jaW+j>pwb zKVP2($p?e?EP_TVAgT6aH86%0kXuBZ1Eg_*a_M893t1DChBSlm~(9v9>umpL~d z-B)^qui8sLSXu9u#Ml6Njg8EIs6TWZFaVEBYz}r6?J&0^fu?BpWjytMlnjedd3Ryu zZ$?wo!MIPiQI8Wn(HntMa=JP~Fuj=LxfcMVq`TfMj`SV19d>SibN#a4YG~;?yNT)iMx(O2_g|0b z#mTwu%cf~>+y1CmZCCH}6YVD|5-MuaIZQu^L5;4^*KQ?QQ@%rkmh+oX(fysUm%mrj zw2*&6R}OzrLPG1I@9x^Zb>y zPdl;kyW`?RS(owy`J{5O2~cL`&}}tYTfR@2Un_w;h<@eGeYPmm5!A{NfO{WM0OxKb zQ7NI$gYZb)9EUEcj?r|D&>cQwb~84azKPcC^1;ww#i+?Z#f}h%*lR6n?L)_PIxUDfdq;__(&{Tef4ZYl#9s; zPbwrsL!LOh!(EO2mt``X0Xn-L9PYj#T+a(twW)G5aKu@r)4+L`_&|Dul0a`NU#xm| za-JjTs-s$NyWZwB`D1z*9FgR_?#_ghu~c=9VHxkvS-(jH@p(O_2zbv z8Im}FYv-;;gfAJpDeJgN2tqJn$K_YrR?{h$Kgr;>TfbdyS?&)Ah{@#rdYADKU&IK& zfH;a6HAk`J1>Sr(0SzUDX(3I#oGy+QldAgn{bJ+78om(YPGzFo9)@5y$b1*1{^McT zzJmatf_=1=ot@M4#d@>LzsU_I*e_jkNc(#4v zSd1Iwj)jYwI(+Qds-%R1>XiT{>60Epwzu&S_e}=c{Z!x6suomHkmO}Vf;ICw_N(Og z`zp#~4q1=;WLKnaaCQ?06}t9DB)DYp<=FR>rQ-$mnM@D+bOtX`P!T{l8~k6^cGoCp ziTc>hi&Chg82F(aFGpxU7TG{|>*Ij+TG^pBsz!IN#tZztWbuU}BwP$K6iPbyAy8NgH_FapI# zxo?-w9GTjcdZvGfE)7L&R_J29uz#@xRC7nZ*OFZC`67x&!LlSzi!Rc4I3xmUzStIm z<0!|HqKQt)dRo>w9VhVUN0A$x=AFtn=oU#!J6xg}`>p9=-GbNmBZyixN1@N-Bb z2JY>7nQGlJjf;Clydoqo5L7_J`#kPN0{lUqNQeRS=@Lma&Ad(@Kadmc=EAo1p4~Y| z?FuX|89LKZ`gl2NE4U0D#4(#Y?|vqhw*Gh^jB&VqTU(_SWSPT5!Hmo`MW@oL`Qd|g zR4AWrs?VJUc4sUwTgO+|!!81TGX;E-PE0~Z#aa#~6DS|;X*t1>uGTRX`P(&?L{mTV zz9zoWaD>ooMEpZLE!8y|enDd0q}Lu1<<(gxGV6c*--eQlzYsLn)LM$6<`-qZYgOgX z&_tnQSI)9?q*X|w!7mf^I1;fW7^ovL1^VOR#-$Z7Nrh6Km*26oT{}ik36u^%jkO*l zS!OOVt?}~9Yb#<&|Hg;m4T!)SliG*}$WNZ8u^^xc!P>O28qu>pk;MB4_k(HHxK@(? zQ4-tWe(~}C4mx1a{3Px7l9X`5*mz*lUa`UESPmWBbi$)-~TgO7C_0_p;$J`%8zA0bzy5)zKryed~qxHq9h9W<| z8prkH2@k*yee&df`;z>szmW^uXu&j|zVEdM2O;f*sQXc{s9vxA-D8w)Yt>AHPVqda zS3$HyZGKnNul6ef8JRFRit1zp)5aqfqm}cJC8fC9-cG;K^H(wvFS^60nU8}ThLc?v z?z`hx1g*86fjihAM_q1CNJKEva1_ZNC^_h3l+D0AcU5mBH5E-K|_}Vr>ofOP|0t zXKb|&=^Qrakx{jzelHyt&+z*(2K68Uf(9Z;ajOFzkmb8P9QMIObwTrnfE*J@>L9uF zlS<$lMr-EYZg(mL1D;+MKwoGC-bF`qC6L$Z;5le;+}3cRpzl27JiWNAp5uEBhh*gX zAdl!jm1#h1XmK;r%mLUqU*MTy05$HXhp2v055bPC1)J=cMBuU`+hwh z3+u2@87m8YZqwzi5^Gqth1YGq*Pi0pWZT`{6yT3>np^6Wn6-2Y+XZIwc!}>MTX6uD zV+Lf@D=;kf*>dpRKdm({w>!RG_rL!{1z=RGTh|fwt|yGzb2@Mb7QbKr=NU}Shoco_p)L~=$%Ycm7d zW~!I<>}7uWR~O;JtHyi!rpkP0wVOS(e9V)%amSeghCIw4UlU3g6KYpZr|~JQ{!}%W zFpw6mR5y2U5QZX3UQAFpFV?Xm@9y;R;D{mRLn-eJHk~8kI6Ih0;^Kl|^Zr&k6$YA{ z*%w%Q>hKIH(4{rB*=+I#nJ<%|1e}YcO_j9!k61&KvHfqhxyImC zeg-Me{})gIGEFz7iV5VB!!AD%0?D%Tj5uG{7cjssk<8fng^i7^7S49xY;A4P;q-R9 z9;`CzlE2JzLvb{nJPaID#gxdihCE}Mk7*GJlm4@e#|+?B3TMQf!}bV583CZ{?`-5z zE@YC<#f|bZ+&|WnI%XZ-*;St+K`!OppI7fV4)W@^a z6b?C&KuP1!VlgV>Pq|{Qx5dUWkwvw**+&}^ToP`1bqBB1|qxY-2~&PX`4FAb1fYVRE!bLjMI4k3ro_T z7%F`19bs6j1H8B(Tfdlu*&i|LkUU&G`>`v&>FY_!3I-fX6t1i>EFM`RNiT$CF}MhP zsB1WhYEk5YE{n?zB2j`M9(M>htMuXHOalzDZ)xH`YVaHxH}F79q%pq6AxCXipo@+f zAwYartf_1#L+Hp*i$h&sq*f3+7*jBu_n8C^l=#kchOLP*G@7s7Rbk{?!Gi%>YSaf= z^m%iH_oCYU3VS|?ma2r`60Jf?a7=MP&a$+;Wo_)3;iP4l{jNsQAt;0a^fS&7vF*P= zhcOS(@dI^?A(J5a;gXbR)ChC%mispaPLj{CE|_;sJp(1_)|vvd`rOyL&C-NAM1-v zwZuG6ssmEO>y2u}EK^PLVzC`Vjqef!7uo@;-8bW>21k8XFl_iXO2EI<>F(_Gnpk86 z*oB3Kd3km460yj@%vKY=nCn9n?;#MQs$IJ);YsUe&s{WAc4!i}LV|Le%;;bCVsuAv zSMO&Kh#11DB4v=0x>DdMUCvCtWB8to>X-_Xoy^da{Ygt&GIG%061`F)TCS-hVhnI^ z#@&M^^*v(G6*Q0FfRh|_6-vkat}8z$5=!+&ny4npT**O#e!v4kbAb_ijEx+t_Gn=qQTA9<~VMuwh)gHUeI_LVJ{+urHtX?D-&{-`C@{N zJ&J}h$7*awA=%7Tk+Z0(YlMTy(&5p#IyzY7upaD=43x9eAf@777@Mc3=%0-Nwf3@mMdUh`tT{mix9 z&f?)97P1w>?N~JgUcJ&O?rC94~s#?MM zQ<0F6ZC*u+t{EEmfSGmi)@sg9GpjN)WgWccgE(R(`#=y2Tx*P`Ac$-(`UI~K~s?KE*Aaa;bL{Ho*pP`X=1QL!QoyX}uWe)0|(<3cu;vk80nSQ!V`SJfT`u3KMEurRG*;H@U8URql^iu5+Z zDhqiFF#p%0;3gkDvsxkd3!nKg>gbYd#P|u zO)aB-%cr;$nKsQ}z|!V|fe-Pa8pb046q(^OoHM5o@;T`gUGdH}^^@jxa^#0E?;(R@ zji|ajz6YAyeqI)uN(;ktyZI&eeKDF=p>~)e*6e+b*jEyM zxHO;a^eQpawp-$g+rDbNSQ?RLPFZG|45jDPJtNcC^gUkC-}0%{6!G11>yhwEiQvn6 zD&d;;$b2|Iaqu=?80ju|gWSZr`I)`;%ONBE=X+z5OG1+Eo_GI!r8PK)Z5zuhl@{|S z2w1Q_@R&BXSAN1*L`}JTPcD@Ppd_S}A;iWw7BrQEWJvcerJKH2R&RQJ7}1|2+rK8X zS%pRqP?_`hSiOC;{S=Co!!XGONh(2ATfZbS{KQY5Q)R@6@sKJ@Os(5?O|cV>VabsH zZ!VPj%ItF6d?D3-^_xW~eGjryxG%n^%-oBInAnmwigYqZA%6jG&QhJ)Ito2n&<8;r zB;^FgJPxUL!hzRa%&T9uo59rIlzAg1i>@$Pq?;u3iz&jfv(2Z9L0LjG%=p@?+H}AN zL{d3v?CsTGrdyT>j&s~L9WW=VOcO^(H!1PvEj~4`e?}asi>8melG8M0U~@!sUOe7` zdcIy}>;Atd&r-#7K~ByFkDFipufEelbkCSM07ZQSy>kdj<uC`<6qxV_`BEK>&H{GN=flSl*er9?xRR&X;C{g4 zIu?lNf}7N#nK_jVk_5Q9`IW0R^i_%?6a?3Gb#)r63@VrS_20?q$u(!RXhs$glEGdi z%-3B&gHbe3xv>N>5Lob&2+8~!FuMF=0`B)X`dj3ip#`}n58!{mrHE%lOebKV!a=4+ z)v7Il;dAq;%dn3Of(c6z#^HLhF`Q!8eBJFp0|-!L7!T~9JNA!hUe;*{VKz}m z9Y;vAPSj9^{Al$4X1hp`vw&t@g)*S>dg(}=h5b_`fDM!+uEkHOOu)vZZ5po8>}WgI z^$_A>8@DEm!V%hB=4z68CQxl$sDP@bJ%U+?W{jTxb*4;dw&-#YYd@D8Y8wwk1``sG zkPNzXH=qq;!h-|E(e$kZK|dk3mDM2rJ8l{m$@Z)H?>N7a0-z@v?%R(QY`r5>OE?TZK6&4= zH2W^be-=QA?aP1uNoI}c1oBz&0HJ+_{YoZO%V>N zmM-(EcB=RZ$kle_a{IPVlFb5xsIKd-mqpe6<19%H^*3h993&X237X8G1BViY%kt}U zW(xwdOoqcT#Ku)m6K|XmhKtI1Qpp66zHt4R3?euTDS(}p7<%AbN>!}wGD;xoc(LIt zypqlFe77FQglm69#Ejal#%$0)J=b`ydbCpR)r%hC=&5Oxs%hWBP*V{byU*lZr8Lm> zjrEEzVtx7f`8swi3d|!~%lEc^!;$aYG1K(dy$s7A@o@g*i2#IUeO2$i5GT_~Sdv>L zGdJ6fNk+kf(OiqQd?5ts zIOSLf%d0fdXdV>HYVj&rUnv~(!Fe2mBk#gS71iKWK|t*H^Wz5|VtIA_`-tcVq`AhN{S`zwJieze6rhOFK>V(hP)M74$h-LP_;XY= z$B35L?LoFo4$+Mu(XoP&p&sY-d)uD?N1q5L#F@H?`HjF#=WV z2Basq^j~TZBUftgZdR^=ACIB% zbs3-ktf4~JBzq2O=sSl-&4<3kM{Bv9Gc~$4>t?Bw3rZI~jmqASXC8KkJU@iEe#G{k zHw9VAk@%JUCvQ^fpajxpNXsj3^kP%m?ELXIGO;U@)AwQfJ{Bwb?LU|cW@AGLhB#-` zToh&nH=L}E{@2x2>~QkqkUpEt>@~bF6}}G!hrQU?PD9t)eMBzQLi~j2?wVWvTem{i zsI+UYrv$2EFy7OpuM6SM9e8Bd>Sn^ia(=X%OjRHQ{9`H8Y2D%B%e{|;z^#H%osQkU zLpwzQbEG=~jKpG<=d4kAbD5mn;NALfpQl$bLTW;Hn^soVGk~90u!~^a=Zk{=-5=`8oGofy64**bT32TSW^XYjg|sv`Q@^^% zU;HiZeJvEJt_s+~aI>=N3fgR`h6ki&Lg}y7?lq)kkl>6Yqi!HBSABD_Y^ttH+MIUKTPID>d1=uvpUV%|+OW*~8GjlWl*bR=?UV8+Tir>CLmO zFm}2Ib_F~y9)KMeN2E!%UmHAM{^t@osv+5nf+@g7!p#=f7k7(79lP#5_}o94oHko> zl{K%wjviiB>;9yvZQrI&Mm)ppOfS|7@ZF`?%W^xt2jRFfp~yY2OEbKOE}Mq0H<27j z;rtMiqqcV;+~r^^9%)NT6C8g|4BZ=@Zwso5>S3ak>r(He+_)xzMuXDFPz6zkiuXM+ z{~ZvU4DNm|vm(ZV!m^GoL@tV4NChXOn?cP+%2JO4;HyuL;k6{V42ouks)HoB-`MSq zR|^lIds=K3zd6Beqc+w-G*E6yi5o?)!R@aQVZw@#>H|x{{W|-#*S3DWsWj|iOZ2<) z+hAF>Rdy)>!8qa52n&?UA=4)?VpO=lHHEB3`{V6ZL?DF1;QF0FXuBEOv6U+sV} zC{(RD0l|a2NhYrl{_vjj_!rwTf68DCKxwSV(rx_Ai00(MB+g`RggL=L4Jae9Bn3S} zsRoBVrUvq~Z0KDTVFs5h>texw{_rh!YYkQlzqa7v?>tlKP@T~5KmbD)2`MQlA>n41 z>*)_7uJv`D8!EnK_dwY1>k;lG(ZgdJD1_h0)G>X+i5F=u{$W}uHh{>6Rc(-HpGqIj zX?vzl9Ym0<$O_Q>IHy%J#iKp|j}d;`j)}#zSkvmQ?~=x@t8Hzqt!1lRar?9SiJd*( zoG4DeSjW!cqDn(I>mlo6#>tx)AjFaRNv4JicHUG~@vXYY?l&hj0MDkdp;665!-i7M zM80vkYhu+a)2NKYG^eXz|9(efF?dGopQp@wC!<(irwhxv(aK_YntV9;8U!# zRA-ZLgm}t4%``#(N@VvQq!Y-b7BRrdVlcrVZAvJ(p-kTZ7Cxp-vxtG(NjW_(j$K;@4M-yl8EefRNUzg9(-W<4*g11g({;&pCe`IGSx$ptweE>UAus0x< z8M6i`3LSmHx@m7VKk=B%qI2bs5k3LXa1F_#S`Xhzp2a#bi83v)LgEDdv8Ph7_$o>` zDVR_arZg*AVPEmPyTUVLxWurytijK9CpL{N}QI2>7G%p-+(m39?S2U+(L22_&= z-mrK-xhrs1_KzCB!(FrI&HJ?Jh82ryNULpO-a6(L`QZm^l9cttE7}_Q@9;2$g!*>{ zH*>QW*a>#$1?&!%smcflrhV^56Ti6zPCLR&5^ANG5@EmpjqqO3AlLg1s4p6Wf?Qir z)MQ=vm-Mr7w*@4U3okmm8JsUr8y2{3f9yWT|wH=~9-C0!BBq#%DH zmRY2$B>5PNSyq&q;AhVa6@&tuV*&qRPcZib+NR(!#~=}p{W%)O&z{WJ1|by3vUd{j zqUm`%>@-e1=wf@x6Yp681}>t1wkMbM|KW@lClmR^eo7}}2N1A6Egt=r#)~By{g0hN z5PZRY#Ih)8T_zDDuZ54z)Sp|Z+N1o3x)H+DQy(50f^tmvD4;+SPK$;l;T9-Cd#47! zsJanau|Cnt5S^@K#S`wNTmMJu91&pZ|&&^K6u z?h@J-!2OvFQcNlA$+eV+;nWm`1qV1zPorh3!MgbHMa(2~!08|7C5A&rm?g(gBtIuhDVkX^g`;41^Y~d@lLM?^>kbD2tD5zY0TrwxX|TGN`gOv|d?rm4^=$D*M2}RN@9Z4&Y_8ac;W1t9$#t8@A_U*? zBrde}5H#=*0^Clfj~)ty?P#8PY4oATUG~|z$7!B5C3_E8rm9xfR!W;w_I=6jv9F5>4dz(w z_aefo)7rl?J+NGw%YaqlO3S2}(+^~1M1qHZR(>^m8dT1tH5$3OP3QEw?}~@L?#b+s z{P{rec^x^u^Z9X5skh1Ib4pYZ$7b*OvV*;6)n|Hc^ZR)e6E>ALPU+K46kJo&bMC(5|7?#DNNs^6GOT0Ep#PNDkH)ZSb( zzOhov7zKY|{ZAoHBq3=FQrE@z2PGl%GIU3lC^wrvWyHwPXFi#Q!e~Tpdkq7a%75Jo z&V2KV2!GyN{?Prp=azfj;Ns_gw$l9oJ4>eV`PGMScAunfy;NvaUhI0BJ{&g@NMb7kHZhy$h?d=PL z7vqQ>{A!ukYH=Oy*)1p5#pa{EDA*ySj|o5&YvZEP7fU-SGa;xLq{B5p}&&HY;4Id|GozV6W zuXdf|-^Zw^_a8w1K0=jW}JnG1y9dJp=kwfrXylcH^5Bt4gFy}q0@tNKpI94^0D*Bh(` z_v2a`QOTWd$AQPO4zG7t;(}7dPkC3Eb`HmbZ}bx4S7n zeU~@32fgce1`qd1N?uE=tC#q>Z=Giw2AjLyVyfj!*0X4RCcnNmmM3V-ws^aSP0SN< z!227=s4>yC#7Lo-VJ+Q%qyYzB!D&JzhU0^G=U2bjpqS}Ba-(jZAa6k%#X^yEamj>UFgA%m9&0{d>amlf)|85nn(d+Y@Ca~|@nwyr0oa~H2XviT!BS;EWTE10HX(R2f zVJjyws$Vh@;|J+H@Ifp7i1O^DP3*Jp|3k|hDeG6;YLh7vUb#h6egpyN{HUutqIKqz zsZvqDSoQdA=8K@TlYKvp3OU~Mokle*GVx?g&ENd|IeXbBW?>OlfSABObK~frx#l&5 zX3D3?w|DQ6vH-@j0RcZIUL>a}b*Uuml+o(=5zUGiq%agu+pT4$!B$!zf3Qj#5gc{{ z`kdPD$@=;d#EI||k7|aDm^l^5BE$C<&&D}YGV-%Bw*zfO$ekxL7=KDapdeV%pZ>Vy zR}L8Rbq*44go-dO5QZ{s9(-H~y_&lYrhH$3+^pkseIN)#$HeetPJQKX+?(Xg5>R?Y zIZI!!w3IU~)Lmp95|v#;OLoN)*FrN?ufRvj=JA>Ro7W+pAo&Ar&Jjnxih~AyP8XVo z{{G6Cw*t>tyy4g-k(e%a58Jq(aAxLOFIYxe8l_&NRz{6q6or)nqHJte#K_z1vgT8HK7NmD&ngjrOORAAPnLA)6uFYg?WmCLpHhVss8w& zVq3AE&HC9?spCWKWdB_vq5KXY4KDQEXK5rVFVkVKdBFfB zT3tpFYt>yHc^s*Lf3R$Ubu@OknKDAspYH0j_Z{5nD;Nd^3%s=I$@d*JfhpY0?esW4 zc}}iXRVI^070!RftGv865F|CN6+TfEw)0nj1UB~YSkA84Y7yg9S7uPfT~z^(ad9ZkXEDs z^Mpv0YJPO_56Z^GcnQUIpkeC7Sb{t>qqA^#umZ~O zD{ylOq2A8@cOs;ZTDJE;PHq{SU?R{)BYx0PJ|35GNXVM8z??aX-1HBV{8Z99r{5R0_=DpP)R4!H6ioQ5Ge6azwn83)E6$b7HL)N@8Pp{`<2kz|W6B z)pHw5D)8N+{h?=$@a9J_%>X2M#ae99mNz3tT07MvM=5t(#K$uX;Lh|tip}2s9!>`9 zHy>Fq%16W3`;^MTAkUt|8#(X90*J*n2v?d5fK$}b{Oc1ar8_8=qT($Y&0V!wwiY^A{7_cVSw>b%O z)&I|-z&2ShXUUz3n5i_HvCY*a5V1-X0Y{1>C_x41lzK=y>jhCp5~m^vt*ay4o)%b@2KqEeCq;~QvP7Xw7P7R;WRG?~ ze-Z6H*PUrbd50-#YDLRG&77-cn6A=- zx%B(9Qz~P>Jy-hqonP<68QGROI3A63E%SIR?-9Mj5<1(9+jMz3YN^iUZ=QwoPzf2E z(s4d;zx|TjwasJmTSYgg&CSg}AO2de*fMrWsH4%FZ!E>Xb1&l2{ncV(Z2Bzeh%LLp zXf1dr(M81NJTYbI=%FhLxu3i?Qc?FxL`2xE6pLS|wi4S8uVb_rgy6 zbFt88!&S&*BG9}Lw_Z^(y%$1umyped7w}>-sWO^X;Z^!}``{W^4HT`Np^EPSqgWEgI{_Q+ssyJoGC&f`X;(qebBKYmAF__n?BkEO|8S@iF* z{?*Nb(k7oT95RrZ>+v{THUO8dOs?bg5GXaN@ScG# z*Yw!*7vPs>`S$Dgc5xJs{y&q?Abc$7c!#J3|G^${Sa^JN7c+h%Mf~ zvfRfB1E4<7f#Y#Y>ueu6gZBCLfaj&^7SH~?K}O@Rvsm9NBNw0^(o%#)|hnp}R3^Z3)A8=+l_^d$k<5 z&Xma`+|E*+sX7SA4bVAn;W|aB)eMhdSP_Pj*$W+8YpqY-BA2xo$x;YK8QgyJbSyqN z^_}NuxRQ(sKF9w^4Li0=)=x9vcZ}~7DVz_*BHCZq-ZLRptw$r}XH8!x=JNw^(}&9ZOfe;)a7_nrs? zM?yLbLn(5|Q=}*rpIU!2GX=>;J|BLgHT0+|vV0~sFF}>$=&`}Mk!+yL}@ilF`uidHQm4#|wl8FrWc#z`651s^N$9SN#ccMoi+Bzm^GG7OyuDIa*Lq1?&F zxu(8ALhI86yA(YaVeDtWR=ZpMJ3-_79V_Cf|ZR)z(h1;;KO_r5-jF1WJVOz==KnplQ;R`wnYrC~9Zw z=&Z@+WBDPu%UgHNfsAF!1V};AqMrkozt?apHd|+@2jyU47VAQF>-t?B+>*1R&$(G8 zBp;~Ahi1cz(QH6$eUMpE04{lBQvx>+N2;ZqCSDVoYTx(R*dLZ)*BiSr^A&L79!q3k zBrA=$q#r!5P7TwPCK#NLqAg%nX$C8ZIwc}!1p{g1&Aj{L@@z?5ZVBX14Xb{Tea zlPKrB5HY~ff!LgMxH)q&Gz zXn;|jPxoYO^&qA&!4W}li7E^r=T_I=u<|5n<_^PombH6~7E6TG5xVi=DDaa-)pBJ2 zZ~ixWVcypfGF~vAh3n5!*{5IgZ(phvoDs=*ahRBO)yD$6F-^>DC|Bg=(_nl1Micu- z=y(OY^F+m95E0dU>;K`SI$CuZB9M9!2g*xeJGhvjhOnlsEYoWFp+fK`-DV{}jDx_q z-}3>in4k%x(welz$ml2hE5R^nHlcj}Wq0^W zNIn-F%$;0S)dy6yhQQ#`WY*5$!j|4B1AQM1Y);IQ40{i-tVWIo0K_%~aCiS&1M9Qb3jSTyKkQia zg%j-N?_alZ>}6B4_0(QzXWCnshnw>r(iFc=rle~}r;xs(LCmEGmwvqlY2$QLB4fvF zA(Wv0L_B4JA)8>Q*iR=M`$XYA22;uExVLy;tG#1Kezc0LpoVQy1=hculLcX7qSW7? zqyw|ye%}|pxqg)^HVs$^G(TRPTX_a-IQ&QA>5V7lmh zcF(-QB%`XE@jWFMS-i?-F987a!|7^N$8;-WfEn!kcV%U~wL^6zDn4IKL{f3~Fk0aF zg>N1k<(|Rc{7?iUh^$`90L7+^Y(oQen);vS+-?0fdAk9xv+23& zTFB8{2rW8?iP^4J3t$Zr4S<5Xe9Jmp116yHF|1OloU<7gcGJz0S-weO!1f41v`vRl z7Fwn1xnnA9onmR@4}||FahuI3;!^)tDz8cRSkK*(JhvRATI%Qs^GRINJA>Mdh%(nT zZYo9UXuw|Df%KjMAjrX!8F)~KdIE~z`KHr1JZ%!@H_I93-N=+K6@r)xb9O2^^zeyQ zq<9;fCyZ(sJLN}KyaGBoQ5XLUfkL0jXV0mBB27=j-5>clg}K>%&mBdUu7zZ>JO{3R z3@T@{wOU{O&f8CXgcvqn{c}R-vL@~DyN%VM|9})3C;YsIf)TI;u5PM8%aC9;aC;ab zZTn|WNb9HnNy^mTviv%g?qMeD7>F=>sBw)Mn~`9#3^&0_?S&$^FO%N3>NH8u5D zJ~9BS``J}RW9qJ@SG)buNs*tyve!rSq3fi9Mb-9#)_T_~=6>ft@+4i(whku&O%6t_ zc4rARV|re`l|JgOhTOj&2ebCB2mlUxt_zZ#{&ZB!{A0Agb@1`=Ti$b4l!Z^TuvEPM zEzfz7_^p-#YM_t&Ppj@~dft;~1bWw^UB32xyS%qxTLj68c7 z0459JgM=Z^)<-(0Ww(k;V~wlVspfG4H~^@nFR!~h=yId#bGzMCB2EN}zXO!@Ta+|3 zo{+=L7I8g268O%4hYe_Y9{<_iHF%~sP_5YLkC% zlN3zYe{cI$;N z?@47-(;+vF9)1T3#t+Y1dH#T*x|i704yS=pFKB(-A<*w6flDE!()TgF+UKgaVfd$J zwMWNcok$7NxCo9_#~YHd-;8B|^Z29F*;%^FeKrp&2HJQ=`{v0t^Wn)+!aQX0SM2fm z=iBQY75?kb=dTB7B2V+Z$7k1;wVsFM`^FD$_18b>$7kDdSS;{>0Q-`^gJ>I50 z+V3Z>+x&OFch01&I=5vxU+GnQz5W}0D>r@_yj39q)O5@yTI#LleSfyf5=BW%hoz#N zaFv`@QnUKvUa6M!3l~);8`pU-Q)| zT&wmB__Rb-TwPzCJk(tZzwe&L1GEn6h^XYUXkYup^%Pb0DcYD8FD`Kw-XH=Y4v(Pz zE9S#J_f3IF);PR*3}l7rfk5EBTnE}B0+`4{UQlxocGXsid^2jg5seB~&L=otb<{;e zi<@j^SwFYP!$G3O@|=^a6YY+jFr%S z25072z8-`%53Vn7Yip3y+jC_=>2uPjkCu_LdO63XU&Tl3iI8C+FnFQq_P6}=$K(G9 z_LzixHdHIpC_iQjh2Ly*drgD2{|&9~xR-y1Z~KUx{!zk-e&j<~{m48h$_AAM48F|y zJ5c8uM}!O@RDiJAA6zGg#etSwr)*NBwupX69fIga1nc)*ETD+rh__6;b~!jKEz)9h z2QXz)rM1``Gvvk6LBtR>Z8`ogeZ*xf1gQrsXeCxbMTO%iTfanvj}Jv@x3Ns zI^}YN?A0-mAM3>*7#q~&1Tw`Yk@^&UJ{w;n~Jn6>;=s#gt?>!(BmSbbudtkSW*mU&944S*`OF<_;G zQ7_cg=4$|ALqGA^Xa?G;3q6Hj`AsON&FmLs(B00AYeU@xYp0jyQc zP1U|!#1F`-EELVDeizm~LuhR=))(4$keJ(SyrDu$uBfPBQ?UUV({%DJ%S!DYJG954&D_-!=8Vfh0K72kFmfNd(2p=CClb zgVGi8l4dk{b&N|KWwD=%!(gc0)v5PNGT1ncUrSF*!>~stC4nUmh~Q6D;t_$chTgcK zk4GeXWxxMW6lB;MdFCx~K5Lh0>tsk0lkXbZcxblzqwZa-a~E?SoxRU5kfJ~ur0=3*dByFEdly+n~wMhJ6R`OH7T|A3>Di|AAkENU4F;+O?xKtWR1WXsEtv z<$EKEs@NB=P$->C046$U)kJ*{cU;svRSq+5agwRbW^TM%E@mS%E^-~>O|{B21*jRZ z$-O))A`?Ww^M*=4)Y{siJSmj}CxLk^+ucd~g5*JD1W4z8PBigoHT6*cxAP=>T2EQk z?Jzt)5Ehm($OV1JP^~f}WSbIx;v=$}tRE9V^*t*aF0gh$S1kpiid}S{1FUDnx(@$c z8rBW^Io>Z}*mw}T2c4)#c}o!9f*oxV@c87FXeVh-ME>j8o_sVck;m|L| zvO(~EJvFF;=O*)VMJm&rn0(uCFUvg6(7`NCf%<61qIL&HH_;aeXRNjKPft*1H(jcW z?;4`J3jiE1d{#%DcVBqfkB;qLE*I>$JFA=!Mh1-Sr-(4CjU1fA%P^&Fq~mKh1jnhT?Q2?Ci5VUPnYOOS`46PtVI56N(vv zD1hO7FF+v9zrO}mLT8od9$u$uJe^K+KYq$~iWi!1Jo$?d9)3#$_~|w~49jc#jiW4Y>JQ{Q1?`n85bmPu|y29XJ3- z_2<{b;E5-X)BpH8>JfB-Tg(0Ro22vaF~4)Sl?8TQ1gqPV|1Gh&9C)P)zSWnjS7+Cq zOzN~F1D<~R*+ECZTQffH7Sp*2bpD;5USrp#kOkl7Sa|#Huf-F>C%OR7mp#(L@80C> z%YXcqrzL(d@uk&e-6J)8m)G%_xWbWv?aDwp%X0qQwihH|{Ms^7$0+gw!8&V&T3g=+ zR=za9?aqt~L$~aWer__^nugv4Tr8FAB=H*ne1enrI~|ehxQ(|YjtT$QuQVNIuUHt7 z7f@KwdOQOOAo9|^aEAho9Se_m>U_PO=-62!6~4W>#t^ycLpvs=b{k0{ou3o(a#75c&7X zO$ff~RvL*MY!*PZZ%!|leDnGVOki?lq2lLqXsUbFZ;JH7s$A0y;;G&DXx(64io z@|Z}@xAEOS{)uC&Xa08clsB6BPLRigzoyAj#(e^x^`Aa$5YaAgp$NR~vILAN7 z$RQ^7WySjK3gi8L5Ntq3q~o`bLY%$E@Llkd>tp*dbX8#avUW9ktMk6!x^W+HSL=5N z1)UzQIs;yyV`jZx{l~W3E0L&$^Uv-I=XXl`?R$0mm!rn3E^A+Da%va8wI0%Je1_f$ z(CPj%zBge~ZyE;(Xhic)OP2{J0;J?#kkId`?LLXop^1l7M|^hM~wyXJ==`+A`b~ zEcM#?oSz!B%^Hj><63Y+cb*^feJj-OIS1zzS-;82g=%bX}?v)@7m6dHu5s)|4 za$N3H)UN3sG!Iv{p!J*M$y(&+>}(;STm8zEeM`L$D0@}V@hx#d>AemR7+1x-&(5r1 z^=Us%h{GPm-jF<3oe`f>bIi0s;|rn!Jnk`mOCM5rOjFSp(I^NVP)x)g9R#7NV!)G! z0D>TUM}Q)pnu9>GviQa4I@;l1WWkh3Wa9~e3_m7ICM9iu$wCh5MzKY?Hl85-0s^fq ztxMOF7n2tkp!)kF8gX1JW;H&3)wa34K$&h17jMu-AF47lW>rC~Ya# z*YU$4%dK3}NF1fX)FU`Bp9?|MX35#q;y@lbsP~b;f6`3{HvfWUGmt`lnn8~2+f>Mt z6>YGzicOIcP4HH1!kUd7XViQ?0gN`C{2#LIx)?~$TfU`jEs5HsYKj(ui3B1UIsF|i z6$FI|=Too+BZVeeaa2(ty%`482U!r6_*U9D#@|gLY`sf|Q38s31Z=ZfdK3-BQ8iSg z@V%*z{h~yy0{QfY*}5MJYzpFmDrz5)o%7f?Yz_*CCPd}G{X5Ng)CblY3Ym<_K6g@q#pj)E`8wrIl#=T2Ctv~t+6#zMuWHHf?4J1Pb;l&IYabF7dE-(G;c9-*L3keiSQCz17C+i`szQZ7T&qY ztA+q)OFq%z?W4xtPqqb31Y(yCh!wD^|2*>KnVAV@#)1KV$Tn(cBgW1nh-^7l3?xI$ zMJ>Y>71~3i^@DtEm%VxI5rGqBu%XX&xr_vcwk5$L{zg-lCK8eJ(GQnG{am7El~m!GHt&1(FqoIaJb^MqY~FrWN4`_p(W`traL8fj)qV>HH`O^ zaU({RwKNe-1rFE`_23xijxqAHrAy1ePB^24w%}EbAWDYi_t=yscIrE*jnE<<$B2sK zYZe@lYGi1mH43BNYZZk8Rb{n7Tj=a|3R}}C6nxa;X7ZTX=DDMVM`;mrEE&_kFXX*! zA6+i6=fEd=%ib7f?N+;}*Fc@+21M#jJEGZN!{(K`}u4NX#__~$L^}D6q z_6sq(B>H0gW3HmO{7XM$sBZNFSgrLJ;|Hn=vC5Q%p#*EhMJKjKxU2F+>=5@;Egf_; zr7qT5kEK_uS=YpYMH};xf&I%~v(fF>nSE0BrULI^76O&k>t5u5s}su8zuHzTLi{7g z6fX}#P-I1mTL#0~__eICz?%OP!=(@~vD`z6gzyb#2N=Ln$e1Ys*DjP~t(?J*0!I4g zI45DqJW{NfsdIh;6BzVX*?DBvft~2?cC>nOMZj0QBDrI^z@bvndS}mI{Croy@|e9h zG`U>fv73noI7kybo!xj9an;TN06hE-fBIhYAyM9^I(Xle)=nirh4rozox6v{B!1qn z1>S3xdQ8>d~%xeB5v49 zc+@nOnX?WJ8H>?#{mysx`xUlJ9g37%^iw-|kpikZ&hPeN$au++b`v7bUSEpew_i{; z8n-9SzYCvPdVgJ+w+`@r<(U_(p}{+L^`B~a7JfhM^c|Brhw`681#x_607=ia46Oy@ zYs&^tHIkYyij*l|0_s$btywMpEk z;SnA#|14BBANM6qWN>(pH#=Mp+;%=Zy88+Ii5;Zm%ru8KWA8)|`JYS;<_NnlkJjC& z2)%8d{xK2>*isMt>d^@}TKbwqz1{ve?LvaEWN9ztW#$ZvS||BYwnmTx06yj#mM5ahz(tVs!f0!114o>G7>|_ z$+)m+ZF86?72niD3RM)0*X|~C-SX)(X#dJh;)T}^4#fDka1l}B%E5>OL@{=P?@yK( zhJ%3Df*#B>l$(u9gSbCXmvqdK%VRh3EL84C$xrBt1CE6KOR_&@l#B1h?@}n{Z_NoL zA(^`{F2Ukvc(cJfv35@^I+<_QSGG%$5eZbK$>yUMdC)vru!%!j%b5(`=l*`S`G`sz zrg|evf!WJPj=Ezmk0wbazE6~ZVr)Ax;2YOM8a=L8Mh<=78m*3^!wSv?0z+I(b$zJW zCO|zZX1gZjzD$ZX&=R-UR~!oIydSXEv9FS(xr}0CR`o{Jt?>bsw3(KA{QL2oqdOzh z(SfeBY+mf{Zg_;DKyb@wB!sdU>D5nAQ0B+iK#sGXDuf5AY zwzzKjT(;{;x`J_VvL*SbS0y4qN-y4ZcL>HtGjK@)hye$iAi>^gDLJq4B&pKeT39WNOGhc*9$k$jp_ z|A%r#TC$W!%~~UMY|BHxJ$86JVtklD?{=e0d95AD5{Hd^?(n8w0bL{E*fw30Hj^}} z7oxLtT5A8S7{&Z#Je@R$1+j!Fwta7%Wu6p;nW@zz8kvF&RI^+J5OF8qBtmBpaOg202tIbuz7acWnz3a5zWH_Is3cxaMsmIHA_+;v~`gU z8j(Pd91t{=P~(Xz#U57znUeebC#5K}CfP`B1n=|*L9|UapI@MDTApAwB?6&o7cw2J zaWU*BYaS*am1;j(eO7z~qboMLpBV4&tCBGTD} zn*}0$`eIQY3Z-%h0e+r+$VP<(D*gUaow1Cr{^%H5SuTKRUJsa~tO;ad0@V;6 zM1eySL7sP`fn631@~984+JmIvtP#T$b&0ReW#x0>vCE5GNBa_KaLIC09Q7>il4%L+ zql{jAb`3<}Fa#K2q!1+_VT2tH`EbQg@5rL!w3OfLpWi2q-C`gO)-@EvRF<_dfP(W$4)iiE8MS z>fwchQbgkA)4nH<)-fvdYwziyXPC6yKn{lHj@?bQ3+t8`kX>Qwr}N|+!n-^TNBN@Q zbH5oP2_!7+sl1>ZX0p72Lh@lgehIW;jgd+Ax=mP^yK@ppXhC_jiW;>K=F| zh$On(Psz?$XRq7vo@9bg+nWp@fY|COBu95?|SY+#qkAu-z*HtJd`3XAThUdoIu%po5Y zFQ{GxA{&~i#5@8EAhuMcbkWo0C5kup@!GC!fILL$7`b)ZZ(Oc9`Jd@%#r#`)yE*LF z`FXk-=`fyC#K%ATJlc{TtxfVc{Aa@Ox6Ad8$NB2RP)-nUzl~2^4PAXIpsVW+t$z_- zG!*Wj-1x_?kAg5B0@yw~2^~=LjYgw*qIyms0edwIMl{D`)cAMe(($`Mqfqu$#O=M~ z_?5TJeqqjE4xdkBwC&@YxD5mZ2gLZ^=w9Lh?Yo=x#sLrZ%*R>$^{z*w6}_C!{mmb% zdG}+@;rt5x+9ldE1FjZ2SMJJNJ08A6MTUBwFC!{#FCl}5PaQ$ADhVUSjDoV?;RW4Z zc}U*2c#MxSsHSaVULPVhykGmzb2z=0N&Oy3p(rID-of#IA)!wd$5n5`6JMI_dZ3T$ zYtjzK!>AApK1{$F)SH2P9_g|+XY4lyZTK4LeE;rf@RKRZZ2rWHnD{fG#&+kayz{x} zW*k~}&~d4Bet48KyT;Mn>XW!f3m=H3B76-UgNO);@d=Jd35c5B*P)=-jL{YRsn~pF z`?EEVq5FKZlP;814|rSnxzgb{v$!|}ZOUzF@qr3BNujwMJOP*2{!PO-mJ!)c>mt=E zIm>Kb`hL@zA9Wkhg^%+?CR$4P1bMk@Tq^?hHU7NXI5Id5UdIQGsW|D?9}V%m%$t5} zD+<_2I;bl}NiF{-(W)ivlOsaigFj|y6qX+GT-X*tPeKo{Nx zg7w_@$5>v1kal_0zukO!JRt3~#o%%9-TTYp|90NeLNk%ZCQv=+aeI5VIu)mHiD|D@%{bz{k1$tPQz+6Yh?ZWU~O7j0`K1*VW-E4l8#a~ zcSyR1n(8GRK-Yv*%icbg5;e3YuJf)erCDx*9VYOe=|T_eWwGYx*hC$RUg!~b zKKc8lRPbu@mGpH7*+gs1%5{#Ir!hgfKPhVGe53ro_boqL9;=QmnT-Oc z-R1aNYy;d?qMRNs=3=Rv@rch|jyoX;OvJa=cD2rvsYG!VWJhDqoe2oENpO(`VL#na zrS-JvDa!2?(2_qHNIB0q?c9CwriSNBoLp{#4;~HHJ*E2-hIz}aFbXec(y^R5sGA6( zQ73}17M!B0n|uOd{Mp&s8vO%9%o@p3a7JVHV+Kt^vA3sPu99z+s9O=ZS)t}QNC>+f z#1#$?AYU_O6oB`|q&Xc_JRR8K=JlQXcn}v|YwJHlWBCGv)5usZ(Q?>c;7Y-k!Gn zHFk-l=AX_oi&DF0R6RZ@ad*R(nn|@hRQTvJ(_a%29M5@)=`&&3%}4?ff(2VblI5yY zxvkE{l7jW-GeJEyum(+1D2Eb^eFyb5>IC4a&?q@K?kVh$Hd|Fe(WWek;)iA+N$pRB z$>M%^y2(U*Nlwta4K^V{GB~JRx^mIz04VW-0R!si;PAPbc8H6Ojh(gAlWFI+Raa5t zL_~u6NlN%55jR2;hWId3rhTk_@*(J2SRTSzAyDcvO>#oQGwCM5Ubvza3j!6cKPrG= z7{TW{Mlr<*j@D z0*wFH3`eUl4=0tGWk|p1xSFXW zb+{+}HIRJS8oy~4RKkWnPk}fc-+z^pR}PXRa)^XJZ#gK66NJR7yEWlL3HV}fwF@Of z0KuUkB1>@5wu$7q-)`x&(TtHt&=tLM-G|IL0>XU~{D`S}3Q?{~dpnwX7zpyycg9}) zh{CMgUyGno%#paDBnd6?XL%aTFqp*&e9B>MdnXRu`n>pjJq+EHVOSJ)QQ57`(4JWB zC~9&mP-YLTAu40D)L#=tvxjb4O$k-J-)B1nz|3 z$%J*n1+vR8xhYzqXcS%Wm!ngj>Ue+hq8&aY1P2vlcikknM zFtq^#NZ?3j0w8{{KxXOwl9T4GixxM{jo1oAJPeqc8Po zc@Q0wKWxVvG11)$g$Y6SUwc|3GGuQxV>Q-rne#;+Fpe>mE&mdl&lXKoFY3&7%akJo zY+)R!;qO*gk}~8&!)qf3q9E7K;K6EE`j+>k$u%tF7ldepv*Lo?G|T61Ui|b@fbo{; z8i004HKd}VBrpYy`JqBwRx&P3jJFPbO`8UB>14%Zw5|&k; z#^5`{kG&1`*4&h&45If;i>;w6@ck1pKs-@fQgwO z9>fA5m+~1A9r$2xSh*_3rL0?Tp^sqh?@SRPYg6z;^g4|)-qoboKE_X5gK&Uoew?pA zJ~l3{q_v-7+;XZ6(L7l8K#RI=6d#Tm#kJ)Rg?xMrBouwDR&$=2OM!MM&`eI;aU()X z{v4*8PX^z%@w167{v$xD)bi7Zxa_J3-7X(G`D)FY@qf_Vu3$;nA=DQ^6LzHC&hip< z+rk$e3iPe$LA3Fb%SwT(V(HcO09Iv^heMpf&leqs*BJk~icve!5E6BfkjdrdrQ!7FV}V=-PvV#nbW&;12a;z8!X%_=CIjb zDW=X*+?3G{AbL0wKE@)pDCyNW+?isregl{dCLa=O{8BNhaeGPa;JZue^gbVsUT?nY z`J`tebu*jj?Hf~452aN;%I?0%5sB!A7eVu90@hgfoEibkn?v5a8 zXx(>n`{wTUZ7hq+>A7*gH!^LQYopa=f~%9W75)1{=<@eE<;KbI=flo~hTU3{)9cB5z3VIGe^YeHXDGQ>@pkr+ zr0q#$P{g-4o9FXu9uMhz<9owHay`x1XHMHQ3IMHicn%cUyZ67HaqQE4F1&877BhEV zXdv|){Coa5l&CQ=#?N2OBBWW3;ka?rc5HBdVEFZ53Qz;3=kF%npuf~>Z>hR+?kJ*C z(Es-JbTwr{;;ePQF?#)>>MTc2z{4TnD6;+FrDG)Pk->L~=wRc_aNq8IzFq{Yau z+h-T+0=DHvb8c5jsPGb+zBf_nSn><%2LhSu;o63G#KoQUYUen=w~ILW4CPZtz?y7~ zpR!Cg%B1tzza`spMq}vi^zSItz6811;uMP=mfxI&ueE?{h2_C=XeK5`T zFlOz8n0Opc!9wjeE~~7G%GU_Kd{sB=+5De)%IWqGVYHz!Oy@s@X=ZbYF~G{z6cnND z-j1}9comCZYD-!BmL$d~xXE^RB%*BK*qy&4lC)9TRy+KeCB)aFw+)FPfsqUb@o>3^ zfP50md_lb&iM)=O+!k0TpA{jXA55GAWM(O9DSTjN1r

                                              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ⅈI*I(U=@)nle79{U6C<4uGU)Rip9{r2to#zbArOf%q!tL4^MT$mPS2Xw- zwe9rXo)oq*Nkxeoc|!NT)W{)r^>jQ>soBJ#iZ=mP<{T-_fC!ID8-qh{_B&o3I|zAx zJ*WORkwcx0);gkBMyjGQB}E`W5d@8$A@4R;=A?{QKROBpNg^VjvLfnQ6Ug|G_&?-8 z;1MBsiR^!kD(w1hFwURSf%vFWMEPnBDcuvgo&x8RieU+akDEGu()9>ry2gd_1lp*N z*PWAuc%QP+VpJ59t7<;lV{k8^hW=PaIwgHliVlYtF%!1wp3Mw3L0g@O%4;Ocj-ndg zcG-^yR(antbSGGa^ksi|;~Wo9VKt&qZ>r9}Po{G`WFOpi7i*xo*!UV{n?vcj)+TQK ziGEdaV$vaN8>pltS{qiD27Y)ji^%zjs z{~nGf9<5U7_)5Kuvi;pI7{4kz#kZCP%`xoLOnti#-v9^rK?C@eR4Oyml4HRy!E_KZ zi}&v$q_9NBt57wa8Uk3}2@(M)9z2Gx0h>~ zH|z!YR0yZ8aI{AyPzT=u-C`P9FKn9kAqJTn>wfQvRu+l=a&HO!cpF=1f#pNwN&rc^ z{yu`=mCT;8W!{nSP_rw75WO^Zk}Ks8Ys672)^x=t`IvtduN*do7^J9kGVktOYJ=*3 zX+V84heg#vT!HN=PtXDUz=li6hC5OX5br{{H~DubMxFy5xTr~dhYkY?eP>JKP7t*p zISE0iBt9*K9^V;WB2|vT!vIDfBl~SHEA*BY)@2yCbLS&q`N_-BkR~+B_!|u)tde?s zSJlD@LNPHLkF54MfHa0iFB%xK!K+T015$$nEdLEz1`^<#-ps`pQfj$=|0cwo6J+c_ z4(D7*0Nx6@W3od^Lx(>fORB^IJC2pU3=k^{!`aDr6(+|{ju2x+R~#tYm{9_)>{+X} zq9gJy8hK@-I4khsJMvfeK24OFc%?im_AKUN{;d>9;5IJ~gNlb}pm;?+?l){12)!u8 z4=r`)f!BW&zy!Vt^1{K3N>Ct*(uPr?i*oPF(PCenHC$t3K`*$Otd0t(S z3=cDBBwn^q8*7p?0x-dmWJy30sn16QURE{~C<9d)!z3c*lz&`(5!mncJ_P0Qk<$i* zgi9}A_^+(+&Qja2g?RaihM~$nm{3qqMtABoz#Lh7fbNYM@E>I{Oea05_DC|Xhi6_n z|86=|(@`VmtuK)2XNg83WFhJUC~@j=?jZq`Bu^u*x)Sr*NSzI;LBKhnDl3*DpPZ$* zcP{yt);a(pItO2|COPNWKVpTrBj9&{{3hJo{uw#3s@|(wWbUw~r!NEVF&jrlw|MMOl{i5I;)B?{Ea3=W4`b&q=!MhOp30psG}7=Bk9pR(7JmHzTC zLn_70%hV)~{RU5zZn$67&6jdl9VgOR^qaP(Njl2?ad5~075N+VTpgOEa{+ut&H6tH zuJaGs&#K;p#VTFV?0rMLGKm5{mp`1GxBnM$xX%grGj2rH!^J&WX7F%XJmof;)Os6- zXb9Jl;5K9L;pRO6R`oBy?P^EaYR_~+&x-IZ*$%52LV?`{_%4MPR02fhJI(MX#vLsM z6&mWUXN|}e?poY^j(Rg~h*jk@y!t;6ngqv2y<$UsF>#P~Rz=HokRB3#Cc0ek0MC@( zsS&G{V69Jc>9-K!aqXlL(D&HeEh8ZrRswgt0T4NrQC6nRhTAHK#4n8LeWD~T!Y<3| z_;RCtER1jMQM2!}iJsei8~(}h`Zo1>$$v5$OFVwK(joh(Ive$0QP;Bo3we}lh$#f$ zXXKOo-ppu+GU*|&gzR-F&+a$MK=O1|+fgf&t=4O8`;N3}XdiZ>Bbh5Lu zaYXGvz{ZL+Fw7NIzb{%2P5R)J(TgiBo~3R`xn5}%*NWTB2DhPPSn3?|W#*%NWg_+k z4WeWi4r3(gZj-)X1|*=X{_YSS<&Q}?y=1f+K}_UM)0sOwkOz&#{^7TR;pL1OqaJAP zo(mPfge3D}1FIgM92fKq;FL{|RMVHxXq%#a%<#&LH4dWr{#;bgi>^_6W%>Ol z1jO$!2}#K^_4$&pT!?4J&rSE1zx@#N)1E6V;&~)XzD#vCR2;&+U6%~?JPEhEP)snU zO?^7K@0)3d0Au?*_Oon3n5rBFLFxx12xhcI9>ETg5)vHzS6*~DBy@`kh8qN0dI0ZCXt-P@GrY@wJliqy$>Nr@7?Cwnd*Bgyj>sd*fRwYDW#7R-8xdcD9p9}4?`s{-U_$y6{z))5xlpEaWehT^@q&Ga|SAKBHVcVQGogWqI z#j!0i!HEI*D$J2WGGU?sa+bQ%_?*6pQk8T2wQlm(==WH3Kvu?>+SrhRCWO>M{Pw`l z>0?%JfJmGuqWHJH{RGnQs{4U(cl}1Ps%~%-*hsP@WtcWkaQ=En=1r)`EN}7}jN=RZ zhWABzM2;U`cjqwJjrYa%Ib_JJ&3k#=KP=?xH_p5B{i_qABSB<~ma+{3i*I60MTmjrGjLj(PTOkprs zeSPg@8vj~TKa>*(HvvxcJ##wts)wD4gzd@BAq!RLcD^S-&qS7zX|Omw?RfroEs#Ni z!t^dHo3Amb-?U}_?^r@YkG^tJra@ZzRtID5|9Ao7qC$p;-?-FHEhUN?F@RuX+Ov!) zke-ngnjDXPVkz>`TQI4!Opf{e`-tvwe*XFWgRk@RpFR1VG)&SDXeTB(6y%w5#%9N; zP}a|`h4JJHpDo9sU{2TTA@#DQ=H^(@>VAaSc0=$+QbudFUF}FL2+( z)0X%d+4y~ndFo?trth`?tMmkwhQMgh|D=1DW#l@j;&XWgeaD+^KBWJP{`zpa#p0&9 z;0R0af8$#QzkQ6eA3lUw@aD3rr>cM#6}ao2FKvH0HIV0^k4 z@!Mc%kMWgDK?B}p*$`+u8(3TfpES(8KEdsZm&V4-TwR#=E97f&6x|Tvd0CkB1bVna z?%1#S3A)cIqh)(P_rn7rk6!>Y0t^sjgVwSJq?Wqpm zcFMi1hNBBhpV+jqm*`wQ_;;WWb_C342|ab+qw{GN`V_j)_6;64-aHb6CB;Xb*P*{E zR3Rb#pd=9e%0X*Z11uiRBUdLg<6dpwj+IFnC+Vb5o_5hF)icoXdkCycp~>nTev+by zom~ouV6SNpRT9`@^Or$~o~+;!cTiILquAUAb>!iBprgT{@G*fsW4}Wq+jxyR3CBj% zGeDtO^v^}?S!9wrBWVlNDH9=-XuaxrIv6AMtd)PQG$X#VUDony^cJ!G#Noo)Q25m&s!lE~Pd^QFgMqxNtq z=;0NjiHTbN{%iYwNHkfrfB;>I{WBeJs&xi8oKhF2gQYm7_%;t3YG>e*Cb&4b#zVmE zhyRqLWvDp0t)Y1q2WKs%DkPSsN0uIYbRyPam8#6I2Upn*69CvD1@JK5*Y7JHawl6Og zd|rbolrb=p{#^*&{qZEg-FBxwU?U7FCT-saYLLb(hwOd}>D8`X?O3a5%`tD#4W+SJ zt8JZO%(PtY(u9{22${=&+o@miY;4-sp4p7R=QG+qq-pdBa#b*qI1;cg=bKJ<(9-uA zTfAdp{Q0X&7d(W7ntALO&hynXlqBSriHN>tx?j?H(-$if@TqyYKQ$GwHlJ_D#&))} zmX?|w4Mt6+@vD6jc0Q~6sH4+(9ev~0+HAGKr01*n^DPmF^~m^R0G5bbgv-LR*V8IW zv&Qvip76uu)7+eg6W;H>p`o>-epBPY?U`ojLWcK@sRF)Ir+TaavB-UAs{LbIZ7sG` zuZ7R?p26Ep(GuY2uE3v*juT60IB)0op;T4R2zFa@?xtO1)OZ?*6bv~%IP~LXh>ly#-`?PA$ z6h*R{*Hrd^;p?q?y2nPvu~U3-3|{FN?9lTBs^IHVkFywrhq}zl@A-nTZt-I4WpHC1JY37Y4+?;a<9IrKpXY3-;5;@uMWViI*B_c0 zbF;nPnfs=cnHiyKhptzh2j`VhB9ALqE?gycEhRPI>Fq^aH#n2bMYdfN zVUNpfgQo`q4fh^IXInlQj1%9x8;k{#rm3Bi=Mp0-+Vd5#y0w12S^`dQd_5HYoytn* z%>2GzOuJ(urh^C0+#iSzGHPi|;^X6;riw>ZGHXLj-UA(L7&pQ%L#$CGeBXK&gZP=w z4q0Y{+5o__Ek+{5FF9I~t<2HAmE6z%r+p|hC)_KKu(=-TJ<<+z#nd||BlCBqLa#3s zVaene$(#R+o`?tCbB5q(Fv17nV8QXB6Z@k4M5j=-Q4gZ;`=@~{2RC{F)hD42GVEnk z2k4We;V1$P+rqTS{m~39v~g(7fj6UAhUNI*jqzw#xfFjcok90Q=wumG82k%yvPDJ7 zO%dp@4qxYqRAJ*9``H>NQUFkZJo-nqe|IIKIC<`nNo8$ zJ5>+R?eBF~qJ@ZzL1ECI>D$kkGL$*zP<7IR6z`pA(TXKPOUv-6b7zVlh9Xj1ayay= zesFb<0Z4XMqUrDFK=C^F2UOf&U7ikWDlkdCY$scKj+3Y8K+hwMd5_n^g$MmA6i=^q z_xBzX5FOBVEz{u^?dH1fE3$b}gpghHYlx}5Q3zL|yo_I35-A8aW@$6jU^O1vQg>an znvwXv$@B1b4^Y+8)zj4_aiHA#A%lY(ujhS~J}P*3QC5zN%hKd|nZ!_9ss!F(W7?n9 z)I5yT<_4^fwQmMC7__ILRtCFkWE|AhaemSwVP!5^l_)NWL=Zi>))Yd+ zWNBXCetcXvk-?DNgC@M~?*oUV*Lz%8MI5%Kz}6L5LE_KBDMe$eJ#4zsyyjWRke)~@J zQ6*#r6Y!6T<&W=sg9`ava%yWsOG_DlMz)zxk%61CMt^H0PW7?H(J7~tLcf0f{lhQ9 zy3i>vxf&0l<461LjA@ljreE8^h1=8c+FjPj7+yEuo5=r=*u`E@Zqm(AaX=C;c#I-duTRG!iU*!P6@?a##@Gg16N zcn`K(BqVctmH%t6wEEshy_~W7el*ze5=&=eEiH}kT3Pwij|_}RDUC`iiHC?Z>{xHm zj*#c%2H$W`&b-5oe?!WCexG_=gwMZU8SDeC^0m_Ge#7Hk+1O~bQx^eZ?=IS!>=e_PNUkmT_0b=TEM-l-1U=*32&Lm z1P>Dgp7RP#A-N_(3`_zy%OVfTMrw`f%WXIH+}s%>gRF!?uKQsnc1oi|&r5M4C>p5@ zX5;h4y?EaCvei4x22XQdm{K6#Im<<%9GmS^i#vWE7inp?b~ zn51Z%kkrU)$X`00K1E8^2k3e*Cd|EuX|gA8A_aL;^0}lC`dM7?%Xpuf-~*x^kXK4I zNG~0B9%cW(@`8RPr$%m^LO{h><*IEt?8S*r1&M|h;ABT5r%{exLDXa!-uRjwCH7-U zhXk%Vw8$cMQkmu(AzsK0C=#79QYj}o%)_hOly>K8$vDcYN)cL|h4fuW7F?;A&eBDk zd_a@n&qzJd=>{MG5fLUOdT3wv9&ZadM6t-rG5;O!q zbpkJ`ItQSp|F?Xqq(!~S!=(Xwz@=;mtvOdJtxMwr*wBS;ZI zavkl~(y)yd4$D_eH_&rAoZ?b(Tx_!Bv;~p1L~sNF-`DkPW}^KA7vhdTIqdo6%ilL{ z9P1{D-X>Z-7p%sC~3163CwJK7rW8)j;G9ME-i zd<7~TE%qm$SXB0S!xQxBU^X_tbsxq}xN%LzjP|%@yjhq8+#dfX3)I;v@?HFutG+o| zx;_>-;1&44LlXPBOw5e-+F#%R5qHy*qeP5UcJ>pFa3-JT>)jybnF6U?X_X8vHwGeg zEHy9P!J?i4OU{J!_{8)$kp|<BWoJ%S63VBrX3!pQsD7Dx5oETA)@jGnKK} zum-C}KjU^9!2%Xro#M{F0JCjZ!%St3wwDb>puD6MVG)V#Jyq*Qz7C!lt5+_g=Lw4~ ze^_7cM4|{e%nok}9^j)r!P38OHY0L=@Uqx+=d#S+U_7~WDEU?k#;k4bKmET@;5|m$340yPu(xiR42(XF)jz`zJw9dJocY&hBj_! z;v9ewnAxIdZ>Dk@`%eC-&sMw7DUV*)k?qnWKiw+PiZ{8C&_SZegWXj>RqM`K{z99& zwx+(v<0^v46AP=op+yn+S)Rbtf3Dub+9{C>gL_cxixUw5PG%P+`o2Ikup_Y>4-^c@ z_&m>ZU^7Awo8I1|gZ%?k?T>pRQJI_%U=gm3i)BqhKHms%71YE{5AiA3H61bi=LxWw**1~6 zzH$CDSk}^5QP@&ecdsS#f_H!m7NcMPRZWoUeZPwD)lDI4{T1E(7#`(w;1fg0AEdpiOvvw|KWD$tx~tgy_+^~d&&&Lat_V* zEe}!z?Z}OasQ7~>Nl(N9j_4tc>~vpAYDyFUs$*egad(KA%oS!4Q`vihoG2~{pc{TP z#VgA{>~TslU(3~7A%xckdmM_eFZGRO2~fJcIE^ok+X(;9)Zu+kjTlSHa6fi4#7`oU zm2?+}3N_xAX6P(&C$GSl-5~Akb3yG{M*VkAZVrTZGR;46#r?T`V@ZzW&V~(Gn#-b? zQgI9y4FB*$<$KN|K#ObdHi+Ep)s-Nci*z8zfe)gBMI#21Hpyvu$jh2a2LI^Xa}PiS z+Z^DoMs?KazrxD=M13ssK$hR@pRg}laGvV2y4zvtm43`cA&Tq}wI9X2_iAv#GYId5RjIp=$tKv9T1`shb_21(jgb+I(Vy}A2w<&UC; zvm(EC1o9+BCHG{n1*@fo`Nm(csFVlzKTx1EJf+1gch1TuZ<|Nt1JUGW?9{5|#5<}p zTx@<87Q%oayKTZ!|J{et3qTe%l>VK^&_08S9&T2#;*oYDQ-zXRYPSQJ)e9F$i6onK z1oBOsm=9Zp)uR4>K|=!!-ABpQrE21>0m`FD*$_)Hwv`*=z@G=Ix&dsx-N8u#-J(1d z{i}QVSqfg%xKlxhS&Mn?tUO{~7PcN?mlVA1EOSG!zK;vN zy?0T;!+~yYzf(@GGwizGaew&R@5Iht9oPSNkX3kmdD{49rQP03+WZ>C^-fMttTZMTBWX`A^3-4GOsTb{NRu1!Gn*TZAbbiThZKEd%Sd_Z|7 z4G|c1G0=UOJjKKY%h)nR`=f!DuJ>xkNNAin2BBaMlb=h@`RUJ@OtOk`G#52Sj^Rc} zyX1o1FhD=JI7gl5q2KPB*4+xWP6_ofP{WO|%jz`7^G z!W~Uc4vPfzC#G+5KaDVrhFsx`Hdf_(Ph@alW9`UR_q=<}Gz|FR@ub^?do3MLa6OTr zeOyU%fB9x&V$E)5QP!}{eG@_?}&g0GPg=q*f5ckpnO(tYH>#(>tBtGOisp4N-& z`P0%9nK3X_@%c2|mn>qhV8Y{-*7Lc=%i|hK^S$G5h$C2dfeMonA5>6hba~wE49m{7 z7;18UYO?SY5hRS*-UfxVI%fO%2(T~He!JqUOuNzfZT5FPPm2x6nF|GdPWO6!T_4CE zxBf^m&9q%6?a;y*9{(Avu5w&isr3N8o%2Gvx~aYotGyPxWG-;fBq4mA{&r9Mu1zZegj z#h*{No=aNYslqhPKiR1OpTJAs{LZ7J^-OsMQZoacFqi--o+$|5xfux&c-5!<(M8N0f#|gJ4_&t9#cnSw4 z^ik_35v8VEh39n@qr#}N@b(1OXPlqt`|IW9|JN_8M^6ylWuf5Cv1e$L9-NjphgWkM z-kJE`7b&dk%wMd!rV&^7)-sXgk`*I8l%5Ex+Vw@2TgOujYd4z-05Hi>O@rxds}WJv z|iuwQR*Vni>K4$lM=W#Nzms$!7*@J%VX>9G*`6?2C1 zqK)Z;MYAH!3SWQCRZVtx`c<&!sQUMesI(M^?W{+Zu(#M`kY@8k0QoF6!yc{BRxBmx z`}uq5Gz{Rvq1H{)28r{lpPLDdB2enD!VnpxEJGWVo#3WX(G@?7CiVGpPwE$N2a=0M z|Jy!#7DU*`757WGpl_H*$iprW^H)O8Sv!S5YU1LcvEkhqdX}%7-k-roc0t@5n-2!bX`er+Synq_2W%4Km%PXB_*XxR4t;lD za4zu?E0{_WN8E$O^8Fivx%F}-3J%>~CDiXYZ<4yzB~9r{1Hvzx;I(^#BTa13ApwFI zA%g1S9$1LFooaq0rg*I%>a+@#8HEKtpw=IE$`}9up>V?lp2Pq-)th-_8@Mx2Ld{E} z0Q0866Bi17JJL6B&C|00M^30P$Vy-5j0sH6q!)voxuayaBSoa{`Om2sq>DnXi#2Oh zJ#2pQ2^l({gmHj6lx0{YRQ=)FE*)$HbVtXyZiJ{|!x_FTmx|qo)jB=&q%ZJz>fhLJ zJ(O#RtTfy-|L&V4xKvvT}uZ)%=CZ4jVr}<3zThiG%4P^;$V`$voqDS{>Udf1vpNkmF zFy7HMlX5@RL8RvnRw$`PjQ7sFu6mNf_CnxyywhMW#vtDmM1%=A$fuD&cgzv;Zg#lY zbAmIZ_>&Z71Keg+NnNRGgq-%4NWa_a0kVp?8n;`IN!&iM5~$DW-3v((xlTSFx}p5o z#MSz;wRg>xS|Tj}&^H>X-)acK6ue!h0C=6Nw$g8`ca+|@c-;Ma$awXXFp>>6SE^0t zu3{{IgHZLTUcZcgE@DetSJw%AY@JDT{fyFWv6;$axNvlO1qKm~MR)FJ21fI&JbzR$ zfD`4!ZN9rMe?AcL{#e8@QMN%h($_a&Yisqm+VQs8;b8mforKJ2TJ?XYyq7OgrY!a6 zRHACfb6i%vs|O2TvnA;g&r|69qw?39HoXO&+WOjj3)8n`e9x=T>A(kv0g&KaPKPsi zP0ytBJD)zOndE~iS8`*r+{89~2Uv!y{$eqa+JkxI&qo9o%Q8wS>=?k!;XLs#?OxAY ztrwr3F0k#?jO_GFIv0q}SQDATaMzcPN{vm(m>OSfu$I~HdJ!Np(D67*2h}&TtuFAg z)-Bu|FUP7c#rI;si@Lhn88rMtc&INpC$reo=jX1Wc|E#m*2 zj!b{t*-6~}#ouJI@Nh5#*YVEanS(+@3&Xj{>|gEcZvn|BXsAz`&8r*SZYj1XPq_qBcxH0TI;@0P)T+*@fx|z3f7zcWRdJ4}A*&u4iL&S2h&j%AIO3?%NkcY);@6_F^g$5R-Rxd*%6|@+ zZxoPLRd9CE;N`oWL5T-q$w#gEe9zkD?GOFK`Nn!OueDazNi){Q+%I<~xeiDXuMTE{ z32vd`(5q!Z)cGTE;NLNfPDm2V$l|mmCKwI8CU_@{gie79-SNzzL=)eze2bD&(?>9e zTfVgP;ooZGAH{Ioxju8%oPV3)z~J@lmZ#Q05W9AkI)8f02mOGP zw3z<-eSUp$5nqhrU#c-}BQ+g#zp458$*s?Jl*?csiW}vUU=x+GtFn)>vd<@1eSQ74 zLbf=#tOc%15~Iyd)yywK&Dm8#*@}Pl)-TOeYi~c0`7VSRsmZid=5FsYc#j#hI$K`f1~BbFg)Vx|QhG>zCB?mQ z-n~m?ZU0^iaU4A!PUUWM>@mZTd3)lu-JfaTy_60fq^zGkmk!E>y?n;+&@|-cqCv$N z8gYlzO=BietekeoEnqUD4$L;%=AsLV*{)Qrr5wCe)O_DvrJ!OO#i4Q>9*kQ0Hi5^g z=Xo^57k+cH;Cj27@#IzSMuZR(Qr!H(L*9c%71tuElmS&64l$~vEMz$xoKwi0X$t^llfBr#>`V@x!!Kg>x$*?yPd)yWq=IJo;;%TjBC`r zt{AcCHyEn@{;cq9DRKZUT2kP<1H|7sDIu$E&VjHib# zVtZdxTbN&5Y-ewmeP34bT7)~Nqg_uLDyaDS7boUX(pUzmo$5cb7fJsuwGGL)Y9iZr^G4+c^e_myD9XdDFMr=YbD>cm>Wtw8i{tdrgQKDpG@dL`8=-<`rEQ`p z#HMjndh_$~;I={r81!xR7kP%6s}BE=4O9xjtutwcKx_v{46u|pNS?C63qPhYa0SKr z6Dr*p$d>eGLX^KT#y>+_6o(isnr9(r`?DxwuLC5A#Wp|ppFKfHz>YXqMfdf`!dd&! zmjc~Dnx?=>&I~mF!rvYQiH%TNLUM8yza-xHLQF>XF*G$)F+@^#*JCNrI7$ucK!!>} z=n>J0L@PA(9)bc;`6ct0%;ls$P~)PD5jT#zZH|kNXV@dZLNrk|qvu4w#$C|p_-tl% zKIp2UfrsiRPEM{R7QJ#Xd7-p`vHcz^bT*Oy^{c9gFQCnRd8aW9f+iLtj$^u$ApB|Y zPCVV(NZ0FY!JHGs_f|9tB~Qv~nX~CmzOR4(ehQ%dO^3xMb>`kXuSIH5^~eEEEnw4* zq6p%_!mTGvUR)BIKEOR>G3Pzdk$%|JGjf`mkjgN+B!4=CK}=_z3* zp-|A~I@NN{s?W2Za`z)+PE}`SlIjB?qZE7EMnGny~$K&NQr>d=cT&5;sEJV;*3ryP! z)P6VLOV@h+a?^YLW_3%v(zx>So!0XEKv2(~$d9mAZ;OzgaJ)c2_*$YN8x9U#YUzK! zO!=5e25uq)8<=ms8+HU~@31Myx>oZGj>KRE7K+LIWWcsTljGlAx%9V*Sl}87eMf2F z;OGr2HxJhr*KQ@yFQb^*=zc#07L&t1{{pfHf(JSs8f-M{n0J~oGAMwlsW}{w17d!_ z4J$@sDtnDSw;10fD}FbdM(QGO*pIT;B!5)zckRMW6{{{_U0V2|Ea!F#C)4Jxx#BY9~MZQ=80(6Y#3k;O7oIzF^<`MYt@bCFIcw>DS|O!v5UDLF}Dx6Ov$ zhw{hBrt$iG;3+R;a!$&r{wk~J+%3>_hjtKhlj(R2+XA(;j2(VuY7VLbU*MAgG^Pk| z{8IDT3Y@#X_<0{9zn1H+9BJ|D$AfnGdsKeIO7|JV8gYR&B<~~!a=%IP;O)Fg4>H7m zKeeBRZL4yhT33V!?5!1Q>W5p`@}D!djT7S%gm>=}cdU&Uue!Tr`egG8-jZ+~OHSwaiN}pOnS5~;R(Lip+qwX;UrDum zHnzg66B{xa??3ZKg|9#w-p2AD4R?VvTMDsBs?H!KCpiCLCn%=+e`vbOpt!oGd9koS z2%11}cMlFh7IzIAoZzm(C5yYeySux)yC-Py;11tDZ`D_Ie{Ahm-E*$&nLa%|J)%bV zLMPJ{5TRNV+(39%6n|e3qb!z?SgVvq(OZfgByq){jMR&CpgjH>ro7vqOiYyjEtrH7 z*$>#I70chbHkXwp0d2$Zk@5o4c0W08ZP>0q@`-7RhmevQ7mnk~KV{<~?+m~PGQ&=r zVt}L(hkr>@kmXbSCJE_P$$x3K0XW`-DqM^ z=LTWsyi1Pu8GL5oJ{LA~fbXV~e-3(!YOtB@ zj};DBHbj9LE=Q`PCB0ITtYeF~?guq7L|l`m<&t7}gg9HsgMqb7S}~yX3t{obJp#Fx zZ|DWn04qj7^y(i5eKDKGv0we`ev^D~n z+rNL2$U=D#WUD4h9Vr+yxwdjrKXiY%$l5WSqiFx^c;|n!`dLeEdzCxfqW!qUDCkhv z7zRc;>BCm0Z0h{R4lJ-QdPdBUVh#Xgm&%xx7A?X8q6Dp{c&S_;YoGY(Hw5%A5T~U7 zQvrKkQ$u@15ej&I*L;|+zaEDw8lZd{m0Zfx>=oLA^9NCy>ZgQlmlrQ-VjfSZYf;i- z$1H(8>!j0lA<-PZ9VP!$9MtjYK@NHn1fXF4Fck|GwLvc8#<}6!0|F&f;BjhdD3W2c zxBrnz%i%ONiRkz*H?;{^Cn4j{dpg-D>V=Wk$e+0qdEBBj^paCkk&Q0R-#X4x;xK6G zB}E`dkCB0iswkn^Y_sXY0p_9EwS|nC?SO%s-m=qWtIWHkkNI-AiE|tR`r@)5m?ooP zEz`C+P&-zz2Xbo}1Q|bJe7hl(tLXT_Q+%B~9?SzMZpDJc7vnHxuI4Ul$(-dvN?UEt z4%{@AXrrS-xpUiD7{AgfEV{5a-261BttlsAq$YPL70_LCdSys@)Cde#R7#J@_*38L zF=VmoU!atXB@=eI70|nGrlm^tH9>i}CODa^CK|+fUO~vk?(r}_OF0)t>~W*9HP`a? z^J)%1a?535j}5{|etG3)<5JKp3k{KTK#S(Hf!f{?#~vf4e#+!i`+27E zQ&d)Ku)03nKtw`TQhMb1&s3Jj&VU~0JYQ_i%~fCKZX~SgI=OVn!0h2U@%6B>Ajm^>1zsEhUpC4TXgV#{1!F z{x=f34EyqSEaO#m+)kg3wV{2)j!7yz3o{WkmEN`|w;w zsm|CXr!rm1tjwCcX85KLj2?gUlm(kT-svz8mz&3F7Y4hxw?(h;%%5LhNeS*<7D(RB zh}7c~M3t8`ZDsJ&HKla}zYmB(fN%7opfBOfBO)x&n|ybrkIE9<*&CsEsas%YXZ*w! zpgIO{x%0LAsc?fhY@Q!mFI2dLg+0}yRpV)PvWB;khp$p;$Wze4%k?DSWTlwuv6tds zOmIT9=;Fu*kD{su$1IJY0SiS6Rf#Fe=o-M81cXTKdvKpK3mvQSisY`aD?! zY|{Ux0!PE9d;(69rsC06&W`2%NJ>^9x>`*YB3V;jnqR>ZJ4ag62`G`h0n(qDQG{Y% zT&fF%EaD_D_TV7Ng?KrTZ^)7XQcwjBgxhH{T7+Uk?jaOGao9N0jPRN!8&tDlgN?2T zAAeEIO`C-cD8XxxvDTJ>C?UbPq~UH5D7kDE8Eo`jP*WmegMfmKtXeG?orGjuGY)eU zPq28|I(;64qBNKN1zw1vF}D>5GhqCHYA+y}o8ZfIzeaAAL1e>M;lGo=_0iv)t5ZBIL?*4&rBCeJE-EQTI$Z{CQ-DI3QE zDiVkWZHkvxjI`XC!AV(N5n3iQ_vmOGDK|y=@$tJ0LZip=f*Dq5Awkt>? z(f9a9J7t0(3_#=5`0lVZswt_(E{FTW20x?0#qNEzzLbsv`r)6eh_`iR3wFM*!?C$= zolO*8#_q+rY;K+PH|O{=7HK*aj2!&l`bw+q_N;hBaK0;aHr%Q&3!R~U)YMH*%Z7c< zycKc5&K6d`j}S`of*`cE8_w^>hStU+KefizgJIe4m?SfJctd}{15D~po}ESQ*~`BM zO7Uh4T1|aRLy1H{ITeIjkGM*{=$pKI`hO(La@DW(WNU zMqlUuYA>b>4o>IK)6{6Ia@hG}0sLlhze~c3=WD->s{s^MH(%TCCQGzO`wcK)yw~?a zBh~U=`YHR;Ygp?X@|Mmju1h&Gn629^nffIj$I?DL0_OI@SV3YMr@L1=drU=IyjFbj z^NbmIK5x18rh;@QY4`7706?pP>5B(Dkj~vGbIQ+cFuM+=A>ja0Lrcp#0SeE{`G>t9 zNk)cP3k>PKDAW?+sRY>h3Q`kz*gcn@pxtabpP#(8o(c>dWrLf~!dyWuuj*6FNMC^8 zo;@=a_yP_*1v8IdZ~M!Hg-JDej6#t;>Z=XSD!JH~vIJ_>i%_0lqq0I3WV86KUk9r) zHpO!Yu!xEmSQ&k=I0t1joP4lw6_P)mzZ;%fI-8k4&Be~K z2rHyKiViKVA>@K1J@b5>;UMlTr!qEU_hw3idE{r7Lu~+}lha{r$jjBrA|hno`R*4A zTq)cI?+>~ILcx~BRkw+Mu?R3zV|XxuP4`o-n+Exv7V$OmIDBTj*c?&;Qbt;yKAm$$ zR@#LyQNFyiL}JN7Cggi0P08GbW;))XYW)Ku?A{SSe&U?~9S=n#FY8ruv zi3t{hmg?H?6Xg1`t$5XR$|;Zu)+`B;P9GY@$U+ZXtl)f4O59#aD+Q8%;r5d}ek@%4 z^q`O*71?3)GYC;d$oDZ=t>}t-@_lZV-A>YTL{_ixH4&FLQAUT<{LTm?rR@07aV>c%LIe^r3o=^3f?0;le`dz5s4M^QE6=8wi^PthYw3-b(`AstH3-iKcjG#O45Vo>#Kfgw zooQi>C`wQ=c`YK00%*USQuN}?MPiC+HXxCXj~IN03rV0L&7DvD@j&|xPE893P!z64 zae+baB^Z)@CkBRZ6B6}j*=C{ULmU0h5{>C!AWm8W)p(MzW`gX;J4V|nZ-0Gegr%pJ zB0@F#z*p$SQs$g86kL3*Z4n*Y|0%YhS|f_GwxUQBQROHMQ_WHuwYJvi28fNzqhJWC znf*#ojp9!d3Uu42tCihc&0Vy=qgl3gDI1^*B@+X&h~vTy`eN9D>~UEn5VNX(*}daE zZHKq4g98Y;)*b&=DsFT$Jx|Uou70<>{a4cmO?r{BsTH9pW-T1T_V(s&R7p$9A_5|H z^=Av~-xX*FlCO#be#3%AT?{-8Tc0#578R^p9LTd1BwN!}BxSa6;?H>EHq`!Rajy=ezcJN|o(0Jh`ALE*%ET zrOThtrMak!OL>g%_5%rgSEt9{uUrLz2$of<&L_OzTzA27awK0I^Rhhc;D>mKjFFUH zr+j?oi^Hb_KaEYQIP=LbE;MO~|9}YG4Hr+7EbWa**b=e%fKLi8Z;f!$(zGgGz1K4w zZCv~9s4eA93SUuxHf!{^Z3t|+z;mr+`PlQ zTyJ}cMwx2jjaaw0UUskS!t%O6REjFw?m{6?=qBb43NZUwiwd1FAl=uBs67pS~aWAoL!!B&~xDdk-Ap7fN51@ zvbEuNh>uIGX{xO{3E5iJEdCX~I)61cDvTA6)|^Q#RKXrLxA>LMdZTXcnH?ACTvnMe z|2Sk4@PpbtX&#@LzbYhDzS)K)yyb6lzd)3i(cprkhtumHjDX@=Z$b! z!PV%VCjhcH%2G&YTiP3j28@^I=Za4%nk5wN?uWg!fL#l9-*^j`DcZyy2PVfuZwnT{ zLTgLv@X2k#?AiOGt!wk?H?zM8xQ+1_(VyOy9l&XM7>V=|l%#U^^?FRg`&!k)U0!|Z z$cYyyE^R(yt750HjMrxPI)M_GeFk1!^xG~wfQ~0Axf~pWr6V7a#hy8QKl18 z>J_$4e_-`VM%KzuI<*W*-@#%r-aKqw5G#JjFG~*~sa~-{b^dq+`1$qNUsRs|lkJ-k zJ8n8aE&03s8A#@K_LKQD)K5iK)GDz3wbux?)tpDAh#6KW;2_F%N}v!k(bUx2~+Be{{gi?!NvvtP!W3A}VgZ*ZC~l44e|BV>|)<^U3DB=U8Z zNlco90$U9!f??sifA!i(q(xB{3_J*iQWX*g5+iywA0Baw$(*8fqpdg)Wjl~)2B2#y zdB7%xeHDl_7y2S2iy;YvSb}&$cKcvRz{QscOeiWP0WsJk^wEO7KSrp)w3NO=HQrca zGfW_VNzoXPKM9Bo7V^U|GIY3LpN1!H*Z9za%DP}a&r+a zl9plf2L7o!$)6G8MROPY%+%lh5J;U++hr0f?$gCn^{^7fs9sx1q)_bbB~Sm$Uyr~h zB5@X_o*U!df1}3O)Id@k#g&vMsxfAyJ|WF9McS zlvbR=+@8loRim#D*FfI9Us%whasSk504Oylqq1WVE_xseyW>p}C8>ey}e zI$T-8*4RyO;n zo~b77jOJ4HR$krY4ehoNAfbjCkJ*O)$sSnO)K>Wbv=|k&N$|QnkGEW@|1geJjEqmj zh80q~{o75lB=wAuN43#@`6r?2P3W`M^4}ny51r&1427vjmH>;pERhR6apDgVM=$NN zG(;)1?m?rT(~Oh@j>FHowT}S!`VZ-&-JQ0W7&XfhCdYLS#@SdpT=;x_`r4W2_2Swa z^}w9rx5wx|WoMpF3xtBQW4QYltI(nJ7c!y>(JorE-J|45Y6&Y0_rmi5LZ8~+R^Z`NKHeE6Y0myd`3+l$jA6PNAq zNyR~hkmu)!FA6Wmy?Tq^-LDr^5Rvg<^arj*QO|dJGtq*>rUjxgwfnD|&Ez~X`qGTj_f2lIQlr$W6d-AF+k zJbW1Ekus9KplMUxT8j`%CEJ@=_wZkCs{F2>0WhG+Sq+gOwv z1e{0K6@37@r!jV3;98xw!oow_9vUSQ*Pr!cL-~uAg6eQ4OOcoOqM*G}pYwS}r}B46 zWz_fqKmyHLrH~+saAk94MS#L`K6kGyL7fBgFa4qH6Jy)?tAsZ`CfQd+1%izYbE^mi zNu8P_gS`dGvV{%ra|N=zZSuVBaA>&}ZRnYjrguyIy}$U5>-n!P(EC~X!xSFVfqzPI zDzgsnCn9uo))e(n0dmKy`KnKS5_0JR9w{=znFj?G4WE4j100LVA0UBL$F28tMfaf>`gt-**U_@(i+}(`QEspG8qT;aQH*o z0%lfp>&YTw!pBo|uX~+4!9|hFxFL9_6^H#ze$RPh;cDXLwnO(Os4H_bJX-j_%|rgZC51ge`0(K#E zT-9B2cx9~INc2kzGd^-IIB)&*{ES31@#ca88T>D7jmXU9qTFoEh1txje>J-5&%W!@_jB2=xR-RD0KP(_>@7Pov>b`;F`A8zi| z0!7g$PdDu!{`u{fA_LR+4`NhBkvg^fKjMQ(OG;`Dm)dM$y4xkZaZ}QdoFZqLGapeY zo#xvS`b;L3vhMdEOv|Yb#pcF|vf{m8eY({2PF=p)ULgSSv%jF&{NlIn+wb2kXm2d` ze}m8Z?%v_~6o?mZ7`E8_tmqPivKRHd8IQqasIwp24-+~VA40DlOq;B2N@?m+WkEZ? zgNJvO@~9cK4~e&5Kb{(W7igf_k{0owqC|sR$aRkc6aSWDbk)`a^!Oh{)o&UO6At*a zwH$GnMl#td^oJH5+ZypvCvbPF@B8g#)SJ;fr=F-Q>ZSPhyg)PEdh&3rdp3^LHFbr`K`A zV(TjOr07cA_lFXkb+jxD;WtC0CgwMKGEzAYJOu3oEiEiJ?q{z6mea~7%pf4DCf#vKo3`AjwL!?1vzV8N$$#z7ctoB`8Qj@TYhn2 zMw3ZO&gh;#%dMi~qOI~1@| zOAao=Qj$s8M!@>+?jW+cMzHYEOZ|{8lwdu>l!4cGiK%-av211YL058f5f6r-V8}o>#y{pH$}4VpI=?El32yzdR#!Iiv{f0|aouIe zB)Hq#L>A5m?CPrzFPbiIgj1i(LTdo_CT+9~+wc550(?BX%VHrU$>@Xt5H!gZdbvy) zdR?WbhlDbdxY)dE_Ub5O?i{x(Llb=6AxEhqF8c1?{xg!W*xpO5CUD;e*OyR_aDP$r zr*)t67>e&)Gb+`46_L9~u? zcA;>m!AY`B4wPeg_l-&dF&J|6i@id8Nr#5iFSUpW4}@v`>7?#^H!chq6dQMQ0+4QX6H;(DEb6LAs)ilceg7qt?=(tK%iU~Y+ zi3#ZMS@bZ zgQHw(1K`bUGGjo%5HrW!M}*%!l!qYw4L`a%xf8l^F2u4=@}XnW?=!g>w(rICnj4qI zWUaPi_wMdkc15<{bnXn^Puv`Ly$(6sI`7Z>LHP@Wu(Q?LLnEyq$5nRrI8&b@b96)p2KUaf1(HI_=%ih2^@`xXxYT<+ zjOd+v{l)omP>%b>TU>L5Qd$bEEN-ky09dVEm*liW2Ar@rdbR9NctGn{cH0p|B*Lp` z+IkHHIKJ|cu=E?VdEcyP$KUo0YDphLq2(i#GMAU1c)TIrWMX8h*J2Ej`iv1%6CZn{ z*Ri&_xF_jw`M0wDa~Nja7ow+Ay{eBmsS|_ukn8^4@Losiz$gdI!Xr0byd(PK<5EMz zIHI?SV>#4?B;+ZA^|l_P6AzbiIjOP9aiW)C#*hmwv7bRvwt@!F~Mb)U=SvrU{y z=NgYEbtzh?aaW$tZCTQ&bQts*jk9DdnW0YHtZ{mkLdt2{2(Z%XFDr?sQkxt$l6=Y- zy4?T%PUPXLXy4h)lABD^(^D^)Loh)lw64>lrw@&b&G38)MV?~NGLa%?d#>4Pw>h%f zs=29~-R{lg%3n+@j5vO6xtx?JlGo#Rx`&KjmT3ugU6Ybe6h>~Wb)`4`i##@&GlJ!> zCkRWS^i{4k-*{r$);;4+^0B%v9&tR_N=)IvGkV@!Q&=fq(lb`?#{4%Nl}QlGaTHRt zN#Eff;*NVdD>=KNC_;B_RkLR&7Mre-V&gH?Jp45Rodcder3r_Q%V{?8@XTTpRvY7 zwA{9>-W4T(MbccM4{h#+bGC*6fQ-PwIjs%{TU%BoC8O8hT5q-5!>qVxFQA@$s2XHlZ~IJs-PXyZ)-0 z-pJ_fTo#Cp{Id?ftl0hhu2AfTDnPgASnIZ>lg7HD?AXkr-l_iF^G=R4zNSdT@!LS8 z>#Id^CG^%<6JZ^m;uZ`7{2}i-zTv-Krnhv+P10DG(yZO?m#Nsajd}g@$J1H7M9uTv z!$Aja7EL!j(k<7V{!Pj%{g@1$ioDJJ<7LdRF`~B!fmL$_4G*J^oYvay=aw?+NPrZW zUYV_ZBKFaKp3}4P+M!gcHVPMOtGK>Kl970tPM_2&U>UTXhB(mH3oi#e4rC`C(6Yjf)Gr8x5-&;%bRLi;6lSZks!OX1-e< zh=uQa(mKbV4&N^%NUJ1me}wO`fjdx}QP#FDuAF~FY_6{I^g#TVv+Ko#%1ko$DEa>V z&_3Z1S1CD3L9B9==%xNauxw$>^BV>4huqM2=)=kaqWSS;Lf8gExKecdxa2&f(!0UZ zhT@}5_2jIva|F(~pP`OYm#k73pyh8owR4XVy67~c!N7-H)F>ex5srH4^nbTqHyS>n2qjNh|N!?aomV2=w>0;50OPc zHR`vQOfk%sj*xct^__`A*9SsN7A!?w}9GV=flb_Ks>w`vGFu)uO5*ASn)tnrsRO>=;S? z%lN3i0Sp*~Pzv6J)R1=|-xQ}>K2{Gft#!C%Fa}hRpc07{LP!d63ui5aIAHrKQx?wx!p?R_UUX`9KpieJth)K{I)Miic65leUHxS;`v{`i$XcSPjcexPk#TNMhH8% zu>9hLx0XCY0+vKS2|}}RM%r3kRaIAErE`^@tY(E85_)T82(ZHfCoXHR9r*LDa&mGF z5+AJ7c&(M(2dkm{+2SIVQgzT@^5-iC>!SI)r@#B`{$4DZ z!zn7T@Ar@GD`^-ia~XWAu!m*2tp#lAa9sd_J$wOZ!p#;pR~QEgfaf8^EH zvbKKC-7m*{uH5`)T2=)gW|3j81DOR%Pud`p+ESyxPDm(>LOzP-5DV* z!?UC7GH2lMj#-w^t)wNY9@_gnIQQRaA_tT*>M%R((B|@ ze1>uW7=u}MkJimsaB(8IqkNS_F%$x*InDDt--8IT(X)tCm`Q2IR z9Ul~prPZ)=3Va0Md%Pd}D;bXk>(?^OD3h2o+zukPm^B<+O|K? zJx8P4glhs_o)=bJI8YDK_NT=!O&c#}V8g-Tby|RA*_yA(OV{b*aHW4tTie z&E0%2Lr_u*9}g2Vkk!@hTs*2lB>29nOOVg>wG{eip+(NKww^$|v*NDzkzpR~LxJAb z|9-XHtWYUrlpez!G*(3D@jklGv`!N^WaljuYO>YD!oy36;b3DTrKDtRt9?G2tjJOU z7f$KM#B#=`;Hs%7dS8qjhpCslgbYl7e>+61s?>O}gUb4Zz~cLogZt-hBD~I?Q7cy8 zo3A&E|3a$&(E!C|jCxl+W11o!`4|h|VELQUOJh&d1lyG7b;b;6xE)y-7%V3J6Rbq# zq$e3#+&ifcm8egkxxzZLm5#ij{k`|ZQy)@!*U(P4YHgQV1q^6DzzU_R#_zwVp3oy$ zgwQKanAahILVOV}abg|~8;ld#nm{_9Y%Sw1v~zax);K@nd_kmiQd=rXPd~qCy4phSdaxhx$uk28?PrsnpN>s6Xt7H?fXhPl2S?p2DS zj80{6;H5fVnuKfC%MxR)*;N=%J)J{iaQaFst>q=Vs~?k*<6L7`C&RMUYY(Z)c{88E zUyxF@dM2N%)2ZoA0cD!r%h;)c;CUyv(@tNIr@dBJ%AH{QALgmlwbjUq7tj5ppk;d* ziJ=*00T|!rajPh0q0R(Si~%`j!7XJKDCcUj6`#sS#UN0VS8}l)X3Vrrn@`H468;zG<&wOEj zz%zeIQ8NiUlg-|FmI1x^`;xq&^5>T?8^h-A8}uGZm!^$Y`p45ErsIlfEq8S@P87)iGO+`=z&c0azC4Lg!U?(kn~ShvI`6fi5U93M#& zFqv`ilC?5=Xy`cavMes)t#dY7+~vP3f+OueU@aY^o=J?z%n}XUKNC+=*KK}D5o`L zJ0OM=QvBJUEGDzVRws9Az4u_sbh5FqxmO59{R%Uw4l;z zb*0VO-1MN^Ky!X9(*s0Ubr$~Xrha2nRX34Mj_3H_WWA)MdM2SVvxNcb$iuuHs*R(R zHY9+$^P#l$uc7?rHECSoBO;<6pX1|rBC1Q7^PS+P?oH6aci1Pzu|p$j0<9|yjDbu4 zI!%@Ds5YaQ3NS*3lXk9wDQJ0e%&gEX=r_GZi6L0umb?v{2AU`2NbeiXo=I!K?(V7z zGT2}Hi%?EZ`X>TsT}hj(@6xLS^y}s>xa->84m#8-A<9BfT>duhn@HjwjG~t+S%0x4 z#9Uwm8!x1$$M`3UN+>w_f=3igLkc2|hOa{}zzzl<#}sSx8)Xg?;7ff4l?dp6)0>RV zj_==z$*(3L9=yci4ugVXG6V?s$~QR*GD?On2Mm(#SlN$lqK`~e3>hGJVJLpgUoe9< zaScmWDooxY-sc7fXDrhKQ;r}baSIrrcUWzfjT%<`G#4_uP8)I|M%xQQUxw!k?jB~( zr9sY>L@JQ1L`dn|jeZw5YziW!K+at-ECBp<0Azw8BM6Apr7Z*1i{VKW8$%o~(=_)x zAz`6>T!6Ag6OvYhIIZcpeQVK4UBTb z@h{`{1p5>+@;qLm@t-|{$sjxs^j-#D_*q*B#hsfHHh?~LfotSXE1sTiTX-c7&9HL* zfQLx+*yGw07--qow&E9%Oned?mh>cu=y>D4YijQiQPX z^F$uBr>fxflTg4TPUpz;n>;^o(!5OmR7WmX8{5Ajh87MpGkPWK5?3w-!2t#JrM0`e z7aNT4(7b7=qt4&?LS0NnC1g|&S5q&shFmzfS{x86vGesIj1vodzbvnPYsa=t#sbhjkuveqcZ%v zKtM=QF}TJjKd`kYVGIFkSZ6de6&@mo92KnOV1IkR zzx;22=}i-ECw&<+jePYcx=wci9!e}gx>8s11JqoSlO0-(Lp{G3kI$#I;D;3#q$vHd zbkWuSOA*?5aznbZ`{g~+T^)7Q>10|Bf1GPx`~oMiMvV!}e1;A=FLMgObS(N?%` zP+0a}VXo`04Cz2-4S8&pDZcTex@&XQ$TEUqT^mzfN;w(uZ$sH%*$9qUH}#MA^G$=g zJGlFC1>bZv9P>-~fuf;Pcc?j%5nErT$Ip4&O~z)mV^utRjMg05$KAia$sir4VkTN% z-ya{xG$W(_A^OrMRPyPxfn}TD;?Tk+Lr~#;)w`M*cpa^mH`uU#`P8zF?e$iZpaPJ0 z=G-4xPu1TwG-Ll-A%g{&edZ;OoI%1xV#T)h3&qta`K2@IpAPc6r~LfIU9~btwo9*e zbpubDl>-+d_VaL33nPO)pCi-T4m6QNwV4u{4se>BlHKV-;;{*%KjDbd5-43XiGrcr zs1`qu&0?}y6ny!LQLbr}eS%b_4O`d!O2MMM`kETCFKg>Tp(=21VH=?1bPP-`yO+DH z%tMy#Hqz~D+T>dVUfrV}TTAb@IwlY7lpXfvP;9HJ%2sPH`Z`0GdU~{6&J$6I8yk4$ zS4}2$W0K=%h)?K&>BDE3ZVP8TbbtSA=%(ZN&yNv75)i;(LX840^xEqk#S?wYsm;9) z$*O9#sfIE{HTE0M@XPRR)?<%oT^rDHpzpChLeT@p7R6PyYdYq&@8e^kNN>IED(!DF zyl^$Nr$=kD5?yg6gV$SzDIBZ_8CfoeR@Y)8Rn)8vps1tyys5454&j)b%m_i4oqZvB zqVn$fd1p!B?Vcm)m%`iNFJ&D^m5iZSR=l+?t*iY(=W_}10Sk655l4}>(lF;=t*NzL zo!4c<#m&LPxNSPnfebPRj2OO-paAUi>My4^TTh3u{=aUlE8cO^?yyEdqII^sTU-xX zhl`iHNxVF?!*W_OSA0wVTxbE!p0sb!3vIU{YHR&2)t5YQ-K*uOk;JLUR1Y|mdcQ>!LSyV7!c_2SVPq9A#7g<@uH4mIEB|T1!kNkn4-QA2k#KTpTv}2CgrJmXj#pZhHtYsPcfnpg zE?x&4?^ct?#_QK(kv=jI=}B*8Dh<$nb7Z@Y=7P7j=zY65===tX3PySVo(*pe|ETm` ziMrRjhlpS3y%+75iIbf^Iuy$~&6<}2hW%LP`_odQVP3X%Do0c1Zpf>@TKSZVbxD-U zRO@U%2s7R6Yv&`6W8(ov0D3v+=2Tq`7l2zzPd^21K7ZExAKS(RbunZo4^Mi1Ru8Qc zhh_?A%n!5pFPd9ADz?Gi`=V3g^5P;_)1T{11^ zv7Ci_j`i-1JVd;7E)w$pkUxHWFF-4hw1$4&mUkcRCJlV#D8#GJmczxhLB@`NmvCt*M2Nig_a#M_ zio6n5ZZ>JcT-nm=_PL`d};xHte`fk7#xsz>FVndxwJ2QNg)sr%if zs1&}{ubuxxa286s{)Xdz6u#tGrMTpxuMVm;Y0`=zaN5MqF1zX zX~_Bo!YOZ&W5Um9Fp&1q=e&((3^cJ&faD93wrTSrbcf|jhf5NvO-aws>ID21gBOafatYa2og;a~2|p;#sy z0}KO*-^y;ySi+?dHkUNK5`Z!92rJt+N~%#Yy&tT~k-Q@+%_~P$w;+o|8SgvpsGO{; z>cW$+s`UvIzQ>9a3+$G8z|k&Vh5{t@5Y96gO%74)m8C0yMWnl$&Zh<`{Zxmp zHrXXov#Rkd_Dm4;*u{S!?$j>>(mMzw@g)A}iD_tHT=XEf#aG$_Nbu2~W}+n+eGp{C z(*|^Tg1+d9MC%|>@(D{Lk%Y4JhMyypXCr|@jv(OIciQmpP>bz?am?InPzZS- zzyiBH?o0Mzg+BTq24uh>DAAYH99wz}ucXRL1go!X$52zu-7}bW{ZhEkEhB&c5`QpJzAW+T0PbPj` zRJX=Z!8pMbmTjRZtw6B$E!rp9zI1g>yLINiq^x4O@d4}2H~aT*#frr#t21`?C69G$ z6kss2(W|ZN;%Y7c%FH>vn#9!%OlN1(yFl0*Pgh?lhwT0QNIBCu82FEF+k9rf;o(AI z9x-n<0x+2=V0U{Ba|bkV>=CKAA(84-_(N;=Y*+4;^!4rRByqt|qmBhLt1H~vH0Nst zLHB{Z;024#E>oyiG+%F@5j$SQ%<^QS+mQu*C{yO)1C*z$^t>H87RpGhMUx3f zoPk;s^#?y#G;CR7#SLTKwkf!P-1bTd{*VuG*^-VhzBzp^mH9X7u4ozj42C!U^+kfw zbYD3*|2>VdIVclk>7P*`$p~}9L1#!9o=s16V*E5dE+`D(Fi2EBevbq{Z z`vZcN2jdig{x=hs9WmDAiq5Cbj8-e|T`Ic*akMdXK=s%$7Xs8wQZkcj_^eLL$W;v)Evwr# z68F9VSUb7k7mGATzK!~!bz#tpr^0}O%|yGU&E;#|%@U>63%;Ly^*(c}rwmmLZFNyktR3W(rAbxE;>4Vt-=M#DQGq#-fklk>+-1j5q_qNuxSQYGn*(vnQ-?t?@)ARaU7 z$)eqV!lL5p+qNsZ4p_`YxzVe(#6$`EV`BVRQh+;W8sVSMOUNZub~+?t5-a6ohWH8_ zIKBzy_Co}0!`fc71*3d8U=jt#Iw=Y24My-~lkL~KA1}ScFSeeyicz1Lmpc=b@h}PF z1Qx%IPMNYNCc!{y14wOY4?6BA`!(WMvnDM#k*|`MY<763{U7D)`=^`li|fN5W6LU> zD}Tvb%H8bcLBr?vL{kf{k0@0^csgH~{!pVzTIWL(x&9569+dhiYX4onvRreXcW3Ky z+0wdApM-Xb=xZ;N7&OpU+IUZp)KGUdKj;jw821|gDEQtJ?mPDgo=14^?_I zPmOpvyNstm16#mBU~l0Lo$7jt#Y@{zC~B)_)g0)nws3HFt!O2UeB=39Da5lAjj+E?}HrfzyI!1QY)#{%_%kFj1YuNPFq^z8v zRrvTau?$zLsuYV@EDsS5KgDrmg4B@;4MCF1{SnMk!qry$bhmT@HUD%HsZG zQp9$R@;<%g(L+z*0h*ZPX|t~5%ZerCCUY3i-8&*T`otvlIROP&1(q_JI~N=Vo25{f zr0JQlL7ezi&g>_py^gsXf#}lsUnci3hs+$uPN6Zlc4(&X4%e6Mx{>+V-~SmFwwy}E z!-$+*KSfI$mE&8x8vU}>Hyq~hbVsbV_Pi1d0GxrOq0rF#QyJS1RU)053Zm z$Tr4fSIv+A>y1w)i& z0RwnnQ7}Lnxr4hT{c4pstivC~DoH#W9wJ6-AWIbx4o;r`wDVUV9)zX8OJ#C5=m{5+ zE^l%n&J&q8JH#@^MkE|e4uQ~R+ zE9fH+4DiYbfXI9vPQa~*Ym-i6dwd=D(N;eYYSiYf^&2WmeoLcY&aaO`)aWwB$NbS! z5-{#BiReG35UdFestjTlK9`-8I&!eD%<8D_J7>E~}czB2x9U-6O1i$5I;2$WDc1rMCwBDr)?fmJ%LVEQH zoQKdPkZ#l8AW50xh`kR;*#eXtG&~oVyptddmE=`c!;Ep#^7dUq#gK=1cn|) zQ&ZdN;%?#f(YhQwumHd2_Kt|K>Q1X8r<|NPY@Av*+df`|Zbgtpt|a!iQ-eijUB7#X z#EaMA;mZ;jNs>eM4w4p`FEbX0?grhkoQ>+lMk}V<*tOo0YH22N>6b}&d@#dz=+Wgx zF^X>mkivh|w3qd`Y(q9}W| zqe=vQPBDU*pK5CQkIctd>J0okVvaXH| zxuG>~`}wb<{cQDieRVu}_i@9q%WsFgh>KaI*ATjp*I5fUrvd**(9{ym*jmjDq|Q&T zg(~z^=x_iX>QX#;RDyl>e(<``Mkwi?{7Z5R8{t5*#I5f8vhPi?j!#szZFf;~1|noU zgOYH5);$?~J=fg9A})6i{)7JAjayJ$=|S68#UFD8G@EE>h$Q2PvbyvM3*A}ExNGOs zdiJy7Nc8I9C!@Up`IETHw43OsnFL4B16epk*dQ{eb9q?+sk!8A#+yRQ0rij*?9|eA z;MdDZnTm@~0ApL|m2II2*xVVsZaklvgO&bwmS^L0Q6oJ%+|mZikqqgw3m%K4t(yC|X-YBv}+o~jSDLOi$`;QnCV00>?t1>pmhQ57adafrx+eioj_-!@O z>GjoES)GC+%zfsrSO!3haq*dYzWDIZb%f~xasr@8V`S>>t1s6puQy1t4=P!L#h)Ie z5KE=LZZ4&TV?fMS0}${FqU3kzohhU&2(cvaozn`EkRffIuoV5y_<#na0~V`K$}{du ziEf)%f<*$gA7G9|G33Tsl*9r0Xx0hQSdz0xY5H+6udcE4^2wm*m%EKBXw>VGCJze- zY3VDFKhr?FuEHo_LVuuuMg-G;hsFZT6cA1N2^ElV2&xojx(9Xh3DqHdg#a^_gmiw6 z;FtaM5IjM~I)Ap}1V8K{2>)D5j*M>-7#P?oqFb@cP56Pryk!+m{R?k@+P1glZ&{2W z`tM2>-}fPOG*VHekA=d=OqRIDF`aKhUUuaZ+FB5_3}=e{W#Grd15bz=i$CCxMhW2HnFL zA*sM%V$aIBtjvMQ72o8ytU686Mtj(!E?hpvN2v&^-U<+E3mlE9pOvm)kY%k1u`z6Iw2gn(uqj zVYxZu3u&u>bjBL+_|K_IFcUb7>y&5V!xKlOu^5Kh>+@1U`ZnL{ewnX2)1kpv6_0U$ zDA3~zsC#@E*h6nNeBS&{aXmOxJ*;@}5n4O&=eRWt5FM{F25Dqv*MlUxH?zDGx(+cz z!jlX{jMQ^H5Xj)1PX4xl^C_jtNmv^N(39_lG}V%|Q|;q9?KACucB%ycnbNkp$%m*P zRk#Yh8?lPuE6-n5x$tyS-j>X_qzVLYCqFn-9LLn4iq!PYn5)zzB#^pVv4M+&CrINd~-ZRrwWUQf!mBCRoKr=5W*c98YHi`>nQF_~eVIxmGn_*YXnA zsCp)eI!{hPrXU3Pb}ZOm$Jls=hGNwFA7^CZt~*~>p;JY7uhkd7FX@nLlr`!beo+H+ zxMV12i}ybLB=3w`)}Bza$QYiMfjnjVqz2HlFr0L|L3+ymht<=nU#;YS)mCakYxIB9 z+CBPQifGOdOz(bDYmUllBU-^(+QF^2a&(j>#ymO8E*)UAzQ#XtGI@AkY4kiK%B7WJ z{I}b;|0MIXDSx*W0w%1X+E4w8tPoo%8m{oJX?5k_ag(Py; z3$N&A>zsm9Ev-k2QBXm%*3ZdRGemz6971P~#_$a6iX1)>iW=TE9v1AgE(q3O-ck6> zGWo+7H5QcB{c5Z4tgdd#tA@~20Y9quA5;{!MR6eIPtx2E_MCCgvw5jznj4~#JvNOt z6{%reW}KYD1F`uUv+os%x*~IU6oqw_*nsJba0-P~aUn-%#FO0sBvdGAQf8fEdd4R6 zQIKmy@D7Z1=&CZxa6HSG?hQ1E0%0VkY+ib~>C0GbdKb~P{T^tnj<_gKku)=|Q`U=f&SR5D_e~65+ z*z-TJve<+JK0SUmkZi^qEo<9!3s_Ckc?1M#HGt( z8N#}PBO#MWhn%y><)}&jn81=FQ%WZdeb+#h04J7eYwn3sNNJIc0odwNY$=A@7-~xR ztFYKnl2X0#@={uYi5T<-rD;z|{UR`7yC)-UGjgUgY}$lsVbmgoMM)Uy7*f$BHw^h; z6)5r#W6?a842WUVV;Env`pd8&7ocH|Z!Do71TV|h=Wlx(QHQBXz#${1sqjF0N}&g{ zWD4p~u%3}IzI-r?rtgKE0ul_EX|Sm>1--<$u<9nf!N0-kTP+m*Nx$$%!r9(sBVO}` zBJ+mDorxpZhF)Ox@+n);fnG({8)&U?lEF`rA2aUyzpRl1OZW2*sooUEWdN+h(5;bvb2Zj~lZ_7>$?{8^@tv z_<&aZ-4#|D3%*m9%h`Vr+9tsaT4e1|tu!Ay2AgM+h>Qr=Z(9XEX8Z#JP@u=A2OD>7 zF#V-oAn^-i+(4Usg=j#X_hVxi~LO1Ec5Gss#<4RX;*@=L*QG)+?F2K(F=l zvprbPfQARq^xa;dJWqwlLKozQ?_CBOQ2x-bUtm4RFb@x-y;YnjWQeKwt zHR&bvkn-O4_~mEmhz-rBXHH*rJ0-htR*}U`D?lYe&mizK-z3O`0pZ}m!W#*==xqjh zE-ZF88$B;-Pc~cAed0E*J{nd*HR5JE+$OPj%^Zb7pfKNWF^(S1);DyoiWp52`E7p0 z=I#Lt3r|N~Y|Jofg;2q$=o0<|;>2d^o?Ji$8xdAiyo;Z4{F}-Y8d@@%!@%xg7>Rgj zUNcoo8~ff4gm7sXjA43W-LQK4x(6XR#ZgT$HfTzb5!rPR4*8x#9X8ypbSc8TQVm)$ zYO!0t*8YW&+hM$;ljDT=Us02Jt}szi;d@O7cG@M+x{n#lIFtd~<-) z&&D$#);~T1el`?YOhU>C?({3##`otkJx2~*mem0V4I8fsU`k+TXB?a;obbf>iFO4W z3uk`*Ebg56-N<44eOd4v;Q!9_-mSC7*(AQV0K z^!oA4YGd;{yUrhf)pPGekoW_Fy?r7lzIg~(f>J?Fg5OSOMq!26s<>kPJXS|*jgzP` z0}ZRS3%+A@b`7W9qx?x@1CRP68aH>js;26r<+M>`v-TUQ zHdp?08dM@tu6xPFf;JpV+>}($XNcn?KTwF3efs0anthZCWiMB_TkWKHU`+U1crO%`Q&*^G?SwRyVK>NpF>Gp+LCNsbm@rbS6Dm}ft7>2N? z+^A*Y+N_{N$!^J@!ED~QT~ybA-Nwb&tN;}R#9i)|ci8rA1|S>+j*~gY9<{^f!;-`* zP11dN@YG3F~*~wfC7dV2N+Rbz2q`+F$*^$4w*FE*l-Q3X*YtxTai(! zMRf`bLG*~Q$P_}8vyMxp+XocT^yIJ@h-ddn1NG z8dXq}yoMMxzR&ho8+;K~A8(q^KGTLutQZ7zY+@KnY-8D7kU+x8(a_(=151&I8zSFo5!b(q)j4;sqLr(96)^cf zK8?K|4VA=v8uPteTgeq}e*8N2-|LEFS=%o9r!y-IjQou!Phv=n-CiN%WoriDb(=p7 z>7cGI+mYl5HM|@(3~G^Czqc6I*x1hQg*4D56LS^=K=b^;M6O)f!o*Lu$y_#pz*C+d z@PlSsh3UJ%lm=UGr#lJc%EgeRm)&zGjzT$CpxstC=DzoiHgmG;_)OHP{ncszv)fe~ z-GA48FV$mVEYj}0f0`<6G8-Bs;KWl&V;hIotYXQ=`zfNb| z>lA`UoV7Gm4BgZn9NZOMB_Vd1H|Z#Mi`rCMC;W5}7rZvq5Z(Q6goP(lHLRmV?8xKrS=`zF#5ZMHnV6wPwC|F*=da-cT{zNNlOc-;=aHvZDEM; zX+M)l-R&taq_uZF;3aRi<~gg=@zsu%Ze^vzYvN>J-y;6^I`?^Btky)@?b)pA$#QFT zLz5OmQ{Z#+>uO6?z~!&R>ZhH**Q|tbnjz-Uz;_vl^NgoBYl(%upXk&4y9@W}YKhW8 zu>WdvIr+f|6jOVn+!6P#(I@_Tft6?Yt!U{egAb&o73)n_+dh=#%eB=Wt0{_am&Sui z!X9xm#2F=6Ky&Bwf@}8!Sy2*Mtg6W7&Ud6l1*Qt*u`xwPnYGvX%*XjF%*D9*L0K)~ z=Bv_a&-d32(o1d9QFg|t>F{(QU~=(vMEJ)NnU=-0k+~^v!J?UAWEuiM9a|{=G$q7P zE$hxCbyD{4u9X-}&!X3I)&Dru{n}5J?NH^*>wxcjf(r5DJ2C|5Nd&74O*I#<8{QnR z)8Aig&ZWhsl>ue^1c5(idY=gOpa9~K+G-yiUk$U}8@&J_5ywGiK&{hpyf4;p9ps4t zykvRlh@5=wh9TbFU|cQ(>tRb%3}LTrhN?$c{kS04vqW|alL&?uA3`}nHnygRb;B3` z{)hMRO&sHENY0S9EHvPzCNwY{4_7Jytr+wLUYY?KBw&<7DLty|;vH?`95ekzM=8MK z3uUw(CI&?uC0aw80LP$Cf4G*w8PN(~#0dt??F8dSi}P+HNs^d&-?b2S-vTN7LV*b` z`M<2=@1R1&$|`PrU1Viy5ykniIAUbw4w}Rfb4F<~_6@uoau9u(*rqo$W?@pWW}EO2 z5&{Nf$#eBa{gb;-jhe*dwaH0I3BtepH)01&6&Ros6zXi!EQghbW?0hJMO)`W!Y-y@ z#DPLN`LeW$j}p>%Nd(s8wRQqS$lo>#y~cmzH#ld1b%aBvOi18^&c`S{uQ1SmMh{!J z$uq$7wLqG@4vUcTn2va48c3#GLj0a)DiJ;bh#|%TK}*jHQjClEnkE@d`e0sp95(B3 zKdI0Ypf`iX#=`Q%iqx*vi$%$y5P7T`e2-CuhG|X0ka6xka1NCHi9gTi2HU`aTq4ji z$NRl^d>YWq=64T0U5>O^93JvLUWI&gz)zJ92BHwvjWRVn^PiN&Sy}n0$zLvW2j#`Z zPgXfklCoi4ZJQ|XE2od$oyW~5SmjPCT^DCvtcL8n35i1|-?Pz9RFr=m$mYVE~F;~dO2Eo>fzhIZoH#-{zDATc_eKNu)6LXY_(g9*}E0Yw2EeZ znq-|Y?5rxQW?;{!-fxwsv1{hW-5tsg#*6$nAeZN1$cV7a&Th+|N0klN9N2ax*MEY6Mg@h2*tJzRA_KFO8{ z%R>6{a68JhtJLA(#Y`J<`U?F+SEI|j-nGoz@A=tJf)4h#Z!z^-4>y+s=k}F!`5%i@ zEu1GMM;A6@KWIg$cB(gcLAr3kCZg{{-zu898r?_PExb8tv7vhG&dHW)1+(^8jUf!q zwyghk8-anH{&7a)f8Pvp;)L&dMJD;!N&2hud!N3-XfUDRjT2m!?0c5>zF%n>Wx1X~ zXwH9UR?VK7EBl`^9_lm(p?gZYu4O2TI7HSO+jn2b(OgSVyYD(KyS@H;vs%>L+HK^p zyP8VI(+_;}x|=!TdxI_U3f{4hV64AN?d5qvK09%G6|WtD9GxsgiB4cm07 zuH{sfH6QaRP6!46HCn)2KZ1KDDVi7#D4U3hSxD&!>8qw|Bz`!~P_&vh`UUsxC3|>~ zd<+AVn~V<;_$9qIcQI93=dsZv!XP|yTk2SpWLqVu%axxg7c-9V0YY#NAuBw$m#^k( zeJ0P~grF_Vf;JMZ566OH3*4fxTWqHGhE(of1vwmt z7Zis2yQ5S-Q;8qn&S|lseiNY1SEwnVMXW-WuadPaabHHBHoTHlrL$($8jyS?WtmZ5kOw8l2?R zkBJJk6qPwbCV@>F9`u384T(j@wXZbhguL3DdoR@>r{)|jhngmCvx@5F>Sdd6MPjNvcm^R2|8 zXtHE13aE5{2f9KQ@ZH)A`W7c=B5(;1Vy3PVg*Kg)yRmac5{nb_7A2M$Q z>`xILe;vP08Vemh*c8!C&NWXdJCv1dlzP83HHx|4GcV_S{1~+toyA|r7k6_##FNYJ zNey%~J-K_&5qdd! z#8K_g?kqXGpi~jifl4wBg^Bx7jmiq|P#@3GYt{c=wSy>_2(XtD?Y!^sAg`pA6za3QsH>-QkzdC%L1&tqf(KbyK#5YM-|-=9WlRGswSo_r^TxNSBg z|E#0Q=~K}v0YT*H_T_6j9JV)`dur}wEqgFcd*7sLSPQA_b~``>F~ih!>%ui1xBjvVZmC+VKMXNa01tb=SlFWk=(K9t0(&e2Lr^q3RXK z7@tYGht1|96#dDT-I!3~4VmssI-g1dV$>s2Atxu#z~E}J zM4YrQ(j<|HkNs=T(bJLPTFz8sw{~#?pk~Bv(!=4Cw({DW@g~IJpL(n=Tvl!A*>ZuQ zBR4&aN#LAOuO@2XJrnX#TjY7}F8Ms`?QoLkq|9c;7zIegbwmF`5`WGUYWRO>Dhnl6 zUm!fa-sQVS2;lQ-+`l+;S~=?8t*nm|WuTJ+p|-b$jpqQK(N#}Xi`z5FKkGMbh9X#r z$&aP4nOsUZG$NJ48eRmDkZhWw;Z#=e3%h@jTu8baqcotfAq(KUMXHe_LxWK1kYbfX z!Z5%gh)D@j|GfLCk$6Z=!Mfl0Fr1B&6BHO=FN9b*HqlzB^QO!RYy-)s+EdcjDb0>x z;?ts@y0LFJph;qspJfX$4)T&dMg$B zPGr8Zqa%H5b~FVe1L~NRZ0``RxDcBG`@mNOkRzZ6y>M!Xf#rfAW(&}9Nl4NqndoxQ zS$adPp;uoqQPt^Mhr9;G*yDng6q={8B)oFa0dWlaH@msaYo>m-D3X@r)5TCqY7i`lfPUSuE;i8k!u3btG;Q&LC5fy#4qMjM70T&jKz zQo{a{HG_YKB3KGncLGYH=)B>;bVgMGWf8@2F$jsb$rj0b6}v7~Ui}7xq5U!F+2TN$ z^5n17meKes|62f{*6wt#5&K?!d|8=Y-Dc}#xSzZ+Q`Zx4e{v^lTvkn-o~l$Pj3Bu3 zajlklOq8$HbgehC07U`WwCc2XLAVNp2?$;KC=aGjb~l`V^SuATFiB*DuUb6U)i$wr zBWF8Z$mur5x$K*t*+0jz=Jv_U>;! z>y)!DP|nOsM{9d5*iLBNc`?z2x4yi1yMmB%=JUm71y-5S=U{g&woBhoJ;OjB|6Fc# z?RhoPurk5%Y1&|I?*)DG^nlPV7LnB3;y!WAb}(rlXYcWuPyn5W7J!(k>N`z7p6y#r zX6XJs71rB$7$|4qt^&TAq03v9mI!n-E0U1fE4^H(9!KmxB~x8(u}{xsl#5KQyDJw7 zQv^O;6z7U|6?O2f&yZ5X-2R90!}eTFMIx8yWBIZ^5dVpJjoDqSw!V!zCk|>U=lK7Xx6`iq z7b@6XwNdBbznECz=~T7e>2A&We`w03ThIDhaI7-@joApVNmKhq{}n#}9*3#nE~A;u zrKdht&T@XjQrT8}9{ z@c3Jib6paqr^~^>`v3*hDVprB%+yZGon)pN9$qPHQPLG_-`RAvz#`n_;&j?%L-juO zj5y_a$d3H4cChq>%jE3kH;KdOV9d4a7I5)qoO9|UznznDw$QMTYz}JX95M87nG}s$@^sI7@|(tVx%(MHiL7 zHS)|k1)h@trD=S>-sNu^lId9ZpaA{j;}0i)2QLv&Mn`3$bC*s>d>YluMK>Hi=s==X zJ)yDR3JNb?!~o&_!pU+6Ma$2het%)#N?iu+fzr1x%8F}H0KEeG9z;D6gh}Q5^x>+$f*BwnqEMPMaFA=r)k z?aQ=%?>(%YS1BO+`RC+ylFPSrVlI zEOrj!WOR5g?1gF9zVF|RzK?w$50EY}grz30{Wh-sNe0q}g-}AA5dRNCWi`i7%iIMs zTIL!(6pib^UsiJ#?s>TF%N^r82VJN_GGIvTTDTon))K^x{afdjGW0u}oaa+yXd@s@ zl7!>xY+HbpE2{~@^QSWF$=(g8_0X3#g*%OEMOoQV(-E^-1ZiN1id+bkA5@z>nNw&KJ~jwj-H5( zTd&yeX^mQT_Nk(=R}vUEr`7B1Wj4mmBkO-FT*c?OP!GC^Lr`;8yH@(C+DX*MBU}(y zY5}b`6y`+vDxzkWS?+9L%0 z!ZS)xM!RK9S6Y9a??y`)`B>9t**lObEeaB!s%?P>Mj6}dOh+Yt4{56ix=)8M8U^e} z4$)2+q+!DB{y=zZe0sEsVv;d@ekHrtjFR4^0s!!x{fe4^$7izH@w4(Srel{8^R3;D z_YClNCK;BF8)RUZiCN%QW3lt$*!T%w<1{xHZYFfS4rBl0Zmn4Z&J2_5w zG=`KiNjq(?4V;AD#{{7+6E~hs4$~BTg}NK(CL<9dcdF;lRrxoueLok0&R-wpUmH%G zWzc{DDhM@)ak|!cnYOKZvis-l{s(!w-hUuIl zoUg3^2VtzF5Z2HE?KZor>KELmpAy5bmptFc{htjjsY(8-{}0DBC6^286G@kW5B&8O zi=(e(P*2q&Kh%NTmsm3CAqa-~{aKQX<)LD#?tJ|qxUz$d{m01fZPY4v<(JRy-TitF z-@BJ@SAxrO=>19!EC)`%%Ts!Be4-V5LgmqBKr)To80v;^rk1m=af#GJ%7fl0pa|p`08Xp5?>Um85FqigX|3h><05wQV+^ z`QZq&6aR}U?fv&u0U{bDYz7Rc$ugoC6cP#mMNjFgDrRoLxR*R!&w}d?ZT<-X)4MZ> zyl>Q6!wy7YJ_tso(n|@v!hn+%rFQrfUMN>g4fWWCKyDsK3Cbb67DC5RA4N39+mlP> z**QdHH?t9A)eh?>!eYXWLQ)+TQ($laOCHp7qhV4Fnh|Dw%%M~IESJezgs6V`E!vxb zM(bxE>Tw`WW|4C)`PyiBF^9GZm|lpB0#BY{>ms!c{mW9BTf06C+wYxk@efjAL9^XK zh9D>ma8I=*7+Q{jL7f$y!Lp=pDLwuSzSwnneayXN88UhWL|+yZl$mxu#N|Ogcu*Rbg31mEXNYE&q#&m(&E_dhDzXMX-|%RlfzExBIir;3vmVxjMm&CNxg@5T^O zIx>5}L`Sf~S^t;_>Db7jwL`#x;CtKYS__DT1TukYq3tE_SzGj-86ftYcOSFBcL$7x~AIUWy2HRbx79Sbr& zG#Ac&A0j25gF7JK%J>JFHJSMa37~2o*@q^+@cu07ew5Cy`hgA^sUdv3O~!SyHs+-I zk%R;WGG9m77Cb~>k$0lLTy{>C>1a{(p(6QN6q-0?FDLMlVzBhE;YroFPNn1JNHUsd z-zbiK@%6aoWTP2UTW2}I>N_%%Obju*X@BjDNg@3-By`j0!Pg#KqvTK`!HCyXfDfkpb~1w9 zdzX|yOc~h>(!idv`7CQPF}ol)e5WdPh9pto0N?oCRP}EWLTO0%p@)Yi>>ae`_{E z8WOFwEXF3bcyqF?LdfYs`L3bI z?S0h9KQu0EF|C&x@YL|`HsP%^v<=fK%xkDnwx250>NzGy4HYiS$_6X!=|nrE-{xzMdwoDy_T2g;|j z-JQ3CKi$9T-kOh!VVY{*HqUs;{A*9p0=u-}HqSr6dcE-s&5 zt`@J5ks})MJ0oWy06-4NONnb9GLq@IAJADi@v<-0PsJap%U%zMgRT7Tu44n<7a({3 zVqBIi+9S5!S*s-A>Iq7|=pCXA+C;K5dQmixgaLN;@S-y~s!|gh@Ex8C^2#KKkMurO zmjb}s@9}CKZAgS(Ub8$NtqC6l2Uxw0E9?0o;BRG|w+pEX(uuouF~DL0aUe@POh8Zw zN|gx--wE1dNE{m<-fgy75>_1JXCy(#S&uD+p`BslJ%8V_~MR6L9l=3#`$R{aPq)83~fcN`duU$}3 z!f6sY;*}bknu|d4wS)gmN@o9j43S3#0Ix)X76kGq5#(M1Dk(MOB#=0x#Ytw*-~<;F zwNz>7aeAiOK^Sfwk4D?dBQwbxD0pT;^|SDkNZZPfkI6uGz8Dnj&q#5#XySb5fAw~Z zZNgRV874It@oq25C`#$1mOicCpDAAzJ^QCBn7RB=)&|^4q}HswS>!zFFoOO_tSsdL zJf%f<-;V1|(1nA02o@}$g2jSz04d556bZ5LI+a^KFruKM%Q9WR#yQ>H zTB;pI8{8P^WtE2!;t6xDGF57ZJ9d`D)g7eAdL9x)U{E>CVGzsOvuEgK(|Z8|=&SL$ zo!3Kx%j;2had3<;$DJVQkkDi-WHZ{fIIeg58!*PxGc$?)x3@0pnBaMSL3kAr=i}4F zJr?X7Sq1k-u8-;_kKl&4y<*Pyy<$nnzm-|+$1_fT73Oo+fVD%ZXsfTz)Uuw4x1`7<7y?oh$O=ap*q3IRmB3tpRIHtaqF&6*G0))sO4wR@v^K z+8ql81i|zviS7Tk#;QAZ7dra#t5bK-S=*l$R%MiPpaGI97UgHVh~y;Zx4(EXg8R@S zqRYLRe6Fn@q!-d>8{>R5MDXY_k@gL83*eS7m=X>3`oezJfH6XLRHBP(8r!!F$ zH)cnxWzjD22MAY4lZ&22{$CdOK~XPSU5_bh+OjXpTgU&ny#UQVFN8dY_rJ=n$o3Nv zi*4MAHBk@b?8qpZyhblEbTup%?~B*QJ^d!Z{Pr?#wecW*)~IBUIGM@!{-El&k6>0Z zNxVhrru9DbyQ`uFGQ-xX$5(S@*yFZIc6C@=sD5kIXhR(Z4PGfxsCrslrsgt*>ULlnAy!f0&*Z=k z4vxh=$rrF)SF8j@npT1WocK?wAqF#!Ig7pFSp`Z{UrS1?oG%;9s$PiJbS=?x6#4s) zFJ*&bJz*^{u+TXp$g2I@&Xf0;)AvFf_fTv&u<)Dpmk4NYeGU533WvJ(5?;e<(Qi7k z$DCr|oF9q|!E%Um>`=;S0;ky6+2};15r|1VzbFS{=4iV}ts$ls$nD+?TejwY;fRGv zWtx!b3St++xv#-Oob&tnaN=>u5EzIXWY4@dUF%ZP5Ba414X)-1wgBW7A|9E94{TEsxF0DpR z6Rs-W`h26Xer!cGx021Ts%og}6poj}QfJ1UjD)n3aH3FJTBY5IT?=idBc{wHwLq77fQdeIHS235la0!vAWeB~pRxzgwzHG=R(Zh>uu<`GC(!Bgw4u)n(rpz-4%>)WAX`sk)qkOw!_u@C(bYPLiFyR;o z3b{fD?(h9JmW}_HnL+g&X*qTLdifUIwu)f4;d7p?1ApZBA2CLT=CILrwp{Y=HR%+1 zvrl*KyPTs&CrsvvVBWVK zI*3R_k70U!y|$#-=6zjPW&L8>?7Qp_(z(UX$h$j;yuqANi>scp+x%hk6QKteFYiee zW{$Cti@A~dz2#zbPkAjBF~ z+04zwb-J-XU^;+P;Bt-PBg)_I5)ZoNp7;JH{aXQkj;%22&SClH;NEFBck(HdsDxEt z$jj#Tz3jwnJP|aGfZjMqGR*pkg+N%KJz(`-d*Xi(z-=yE{(iJQoZ`-O9|+6GYyk;R zsvwfzg{QXS*Ct44v{^9J?*c!q(dKcyC+qmk14L)?KbyU~js2sUQ?*z$f~b-8kI@IW z_-P6TQOWT*$O+>h`4M3~>A;g(w7tWRTji!EBW5FkW|z1lbFcwH_}w!Fsys=3_=(=c zlVA_VqTjjxYoIFqi24PWYC#e-TeY-Q_!Uqb^@qP-{g2S(SmeG}S4rVktuqiL2M*cK zLv1Ce)G$I7Vn_bHH+CYu^9U({2_4SMD-ys$9Uiz-KfV!$P7`SKtKahV=YW;Ee*@lx z`t{A~*!lc}MoihEP;acus;HX9=Z+KRNr*Figi;WvcMRABd2BIF1j+}fXvi}Z?Ry9O zk?j{#uv`Jl!3Xa@UwVCL@EqnoNBT$a4#JF|at5SZnDB_XR0&*JHzU)?KIX)MXt9t8 zhX4Nk>m`(eZ2r?cHK4k)tTA3!PB4Ag9}E;GVfRH1m@2{50qGYolviOFLaI=h48b8_ zuHNG3G`%^Dm4{5Z1`YbKb4Z5>it3ObY&DeFfIm*p-{3;c6D!)HB!&FED8!_^t*He> z!V0#SW4a<(*vXG8c;gr<*vn#8l-~8Hg!&acMcAUBXsKy1F7*>42MENg<%(JM!-5$d z3NU4Rc0Mx{cP4=l51vKnMq-OJ70#+!l(|nw$KrmQDrBoO;9!1jFT`R{`!~d;N3V9k zmI0Dy7*kX@^$+lwosS?*_>b}x!BU`w7*&#zc@%PP{hyerpNlIHt)hGoM$B-n_y4k) z!y3KF!asZosh)_%`3CN8jh4hCk)H34EtQqTfXC?y5@7sz*tt;l+B|8vQU!y1{t+H% zZ|88ez{iAa-0X8KJx0mr3d5G22Jcjk)hiSV+=&lRl|M2U37mY88@?z%utdYzh}?C^ zWBoW4g8KWgA&b@H;&bTPolrJMp_<8NwZ8LFg*4=ak0jgH$@<}Sv0Fj`N=(RU2_m>O z5(x+)i-HmJo`)4B6`dh)b8&g1Klo<+YCn5rA>pO7;bWj@aX%RRKa!q|vg&EqjAtD` z{imaSAr*crwD}Se*y`t>Eqpwx=fJo(Q9w*AI7bXSq_cY1M-VCJDWq6Q&IXJ;{pY(l z!YSwG1K1&$FBi5{vNRY3Dv*HxBQYl<3xd>a1)12nx9ZkX;cMMc1*Oa#VJV@oxHhE8 z!!Ssn8Kt2Kku|L12?QfdlN8d2qah>#K%U$@CLsk;S$>m8D9~~Yg<+(WR=|u9k@BF1 zxoee1gjkP54SmFx_)0Gh>esSu{+w>WKvM)Arprtl_GO#8olWffc*YX>cL^PinKzX- z8#pX=au^y1hA^=_Ff_ph?WZzo7{bPJpx`8_uoDrB<`m4svp(#PE$tU!=e`n%GUM3swK`A-Z)Mm- zQbI@ybWfIH8}oj`(TGM>p5^#PQLab z#eKV6W=kxhcv1@YYreLjU)5%#L|THuk3=m62KgK@lSlzzYW|xglwzV?SOhxTx^TUzCmx0SNu?(3ZmJgP|oZ}GY0ZAMCW_~(1vM7&fzsk4}v(=0*-v9R1k+tK>)mA!5D z{^vcNM42!j>i}uaWJ8Hr@cTkI2JBC{|BtG-3Wy_Gx<(rf&fso?ySu~SZo%CN5}W|R z-CYwbI0O51ef6M?sv}ro$ucN_CwD+b?@ENQ?+VUt*XN8_^NU^Paj*#{u;xs z8{0}40W>h!moxF?SBN%>L@;3D4TMEWXQjk#A;H+u-w{4GAa`5kf?)sD#}9)r9JH8> zcg!4QXAF^!v-&88Dxr&(Q%j4WQ_Vf!atV%c}@gC1&i#?UL}6T{}RfIPfJ!l zND;8LeTZwYO+&m{;2n>M-sT=6R7TcPBDMu11hoTF#YpgbY16Ls@lT-2+61e2UD`6}YiRUxdChz94!w51ttcw0rxCzi85Nw1P{AY1NRY!ITWOD84ebHpF}*Zy)F9ve zPhtZ92gLl}ryD~rD&D$Hf(Q`WBEVtu(Sryh|0pT=zO>%Ykan`7Jrqm%;M(NNBrDCAgxY+UGKM2&Q%qaNzA zslQ@D1G~i1xsJyaln_0WHRMcTIJo}=dx=p301<#hC9**kvYP;=nnHu^?|$lvz(`98 zMMi-a4dyiwCeEOu?EZs_1td+GQDpJ`u{uWz-{?Y;T4v^Qj9+Z(8$zRG;4|P#HP}@f zg2!yo!0kO~(&XYf#byWt!h{?Vk+*amb3@r5@7)cu8~JUjjZCx*w%Df3X%ULfMR|rmk-68O6Qj^r!=v^;b-6;{Df3XCu8%tK zV7wk(dt9bt?J%T$(L^c1zCTW6-Cz)1PcY;9IXRbAdG_%!9cL%DguSk zi!|ESn?K>ED(1*;z9s!cOBEWT^jIyIg-}{kiX`?vFe3g7g5lX53_@$NJr_F4PoFyo zli;G;fkeDb|4Tn`LF@w85%JFHCx7=#cK%R=Uvv`4cUGt*ltedQWDRxeUQd)9#JkA1 zs8=G1NBrrEu5BOt)F9Vk{O}q*U;krT{`U~Ow8$vT_bw+C73(bcQBipMFIW^V{pUBy zms(Q#GR)XC*Tr|1PIx<|_mV$IxVQzFO>5s|tz6&{=MNvU_>(*l`yb;s(={~3j!4TD**!%Tk^PfRc7R~iKri^AZ!HK(olqP8`zVH{ z6{3Sa#;XEkw;s!Rn4AWznW8+)2QQUMx!(QgN|Z}y6{Wlg261aB6Eh}&8Q|rd;2KxK zRADgQ$G9S_+qsPKe8OA`T6$n6I2Bt?k3KhIV7IKLRQ^8OpS6d~h zf0uBcQxch)b@FfZGC>P+aau7FNCddXLO=l_^22V6TG9>r3(km9aofc=f)-GekjSQz zqQatiD~iD~G=xT|hKcj`&8AY#n?-kx!G(o9Lwz=uX651&A)1a_rBa#f<3+CT{&8b1 z&M9sgEg?;KaF&d{7kc8c0mWLa)HteH%v3epkfPEXz%s93*u{{(4rcJJyxDFK`X^vj zWJ|&0+BxX@^rTimfvI9el!`D`&>q0@9}eYzkFwW;u++(p>&i)&<+@vM@6{S@8-|A8 zn=5(k1&6`yIb}K!;EhwYp9<7$nCuBn7)kh3w+y(KYEYhU?Al)IPpc? zb7>`{XY=-Uj%=B)TK|_wx+0oGk*X@u=I0W?Mnw^6&DsG!R6~*I6cZ9xgYu{u(ff|r zv}%94-m^6($5OISQR&UW#e!eoM$b80ZHA4Hgtl#Y4qCA8p^b|5pBUuxpUwXop#s(R z!yM|b2>;nb8B7L}u`4B4OYsms1<$Q;7-H2=0{ailHe6k;82VA6T@ZI}$$wH5`5uKB z-L@KRp)Gb<(el`gDR%LBGesn@Bw9bC>wilyR(#F_Bq9;4n4r#D5>^yq4qp06lpLH7 zfHW=}^eB@W&!&-sZ7iz4rAx?^!ZP*^O-)JUbYcxyGsf4~mE*tbf*Z$x2{GHFlUX`f zK(gwr(PqMvM+Ov`ypm!6-MkY{#;gF3>e_qL!+Qbscx73d)L^eEPG+|KPkT;e%;>Ceu`mf{2vhI$JzHW7l{%*dP=I?h|4J zl&Q4@C1^=Zuwr9wK0db{eM~Q&O$AGYi29JcB%2;g_n8gQ0Z(5Ft z9ke2ttme3+-JtM-voN!-%{&L0-H`0dusI8SQd~55{fTjt5F|7>uNEB|lHCdwVL9=L z0g-qmL?A|=R+qx)4h(F!e#$6f0TpI;VjPG{^!L_Bg_eUnWj5%m%QCbB$x3SjjR!u#_( z4sy3D>6WSKzxbbSUWo-v*1D{l8gly_2nkxtBNeuGX=o~vaBwiSDXA+~z_6e?==Y)Y z;_<|-@eqqqZv7?{{Lbv19#FY>kL-oxz|Rkb*#A8q)%Pzbp80XWfY}#|;{e1cXPqCn zlxA@j(OKeA21$Ctq+TJC!687}v}AYJ?bMatmkDxfe168Kpa~Bl4M!DFCB>?Hh|!etVF=TVVFsrwW2uXfzYC&Fl0urq0pwRn zt}HyHy0|eCq|(JiqfM|`jp;be+AST!Vb37Q*?447|Md&5{wgdggz{hhiL2qy-=Lp* zEcAI>$jS0_IKyET45JwKqxdjLbi0}HhNaL%C#Z{bRtGuCalI(50fcO?OEQD!p#cgy z`xd99;agRR9Qm%`C9Cxy>=7FR*&sqhh*JQi6j9<8bhWRvfARSOgjhkjAD$e`kN6l< zrMRC4o+6)Ewz%x-z|B3>SR+Fce65=cCP-Kk0BG=N%ivd745%kWz)XXt`E-jMsr!q~Z zB+XjFtgi-AmST{ggDreLOfE2rX7J5iof_$#oh44G0#ixSPcUesceDg2=U=p$aaTKt z-%1`ed?6{|um>SN4vnG1OA0o=2^&R}^e9+LkC}_D60GeXP2{5?cdAt?oz?7XbtIVb zj;?FW6do32Hzlrx^drLlQHrgEoVuvDC47{Fw78qgu+%a<5iZgj*AAAFNt%Ic+m3&L z6RBjFdloL6RWmFF3`@2K3g<}sHk|z$&rOt|@`pSxA=oqh*R4e$y9~ZwXj&Q!JQEUd zo#g!H$XHUG_V3Qi_J1w$|M@Ii`?WoJhrspA^J)F=jahI&=Ei|n{Qe|~`SP`kvyP$M*Q?uHcidoz!Ij;Q3!6hH4 z*vFXNPya*xhd|3KTll5mzj;Wg%Z^mVYF6w8tTwe}RDaCT`^O!RddLU%I{hY2O)I~5 z@+R~_K?0(asIz3u=w$lRAjBnBYvYk5v}kbfiperWTnnVB;#2pi*u+-!m!+mi8$_7c znj<~fJ%qzh*Bn<1SP)Q9DNzuX4#Juf&7h3ZSR0M*kqm?s)svw~!o$K+C4ta`WE45S z0vVjKs;Na<#YpW4k|6nt?-8OK3bYDXPk2;BMrb_vK^c-<%i4~wVVY>~LBZP7t%5SU zE)lnqQD%q{#xTaVe5`E9>b~@xWiVkK+#RL>gESr%RtQkITF4SnY>#HVQ-)NlyGT7jt@@*X0(R?T-O{|^AWp% zdXiJIXLXX2q4bjHU9^F2IH3U@i=cfFcQbFDK6=1(CAGfT zSgfBO6GOj_aBA7;sAN^9J>E=q`k4jt0<+pKt9AA_;%k@U);r&9$h>==m^0D6$iIBi zlR`Qdd8+I=C5&u9@c+@NNHidO?ldMT*2^}jVMT^>qH5CnQD$;>lb_Rzm0i)%^XCR^ zeK!sm^~;o}_0)fhiiU>|qzm@F*Z289D89{&t!SrZ{+qw*@poY7nU@pMSU96TwCX!6 zPew|U0=$aATOUf~mz#cgqK88;DG&cyP}N$c%-YH-S`6iRB!#O1AgJD`xB&s==L!>a z_Eex^(RBsEMe0Qgw#bV9SY#d;mACHX`5~VQG8>^Y7K}xBMoI-*AXKhQy4rYQ?)xXl zLzdbURifxYZuNmzo)(}aj~(>SkHW2-f>qigEk%-FA|B6q4Y~Bc(YtOkvTu^x7R z3!PkyXCzAcvq#YDoXjEIIQH* zO3t)V0iTv4cl~AzH8*M2BkHg``nHF3r`@KqFlVw%FrnP`L=jCSy*30T>0Xk1<}+;x zrx};AVyJfM1`8(yIy!FJ{B)|-B>S|e<2R2DA+PLo5J9R%A-ahGZgFB|X@6QxZo_-@ z$)X>bNfOs#K%58Z=Ws3tYF92g7HWtVkGe$`GnfaJ(=neuNal{Ns)EV?D4&Q`>=H$Y`+2E4-X(7#l?;g?0 zgE1cO#_Tv@wLb5%qeJ?DjF(i)0X1V)nQcE47JTX1pGceyn97FF|BGAx^C>h!8>XwL zS1tdGhaXlVAi(@#h;!J=cD4KSFa*4{?IV(xshflna@)8YmlzYP1XIw`qA?kZxd&~1 zbGh~N3smK3#T6Yz&BPRmKI-Bqu(0rvRJ^og(27qZ-Z^z=3B9D;U}42K zA5~TRgK|9)6Vs;7@4qU_Wc>(YFqCASNavGwnTe1OQq2cPf;pLe~fCznAVSqTl`ub?eRfZyT!WB5C5?Sjq0`GLWo_a}dhk786l$Y<% z;!nT5QY)@SCnC{F3PA@))rlXCbGy(xeyczDvSQvM*djx_1E_0ij+8*tXviVB04{zy z5-xNsohD-TjhDcVRNqDkHEOJ4ZtfxR;hmfs32$p)O@Bww1Hu%q+`a2+ehgwA3tGIrP2Y}LUiVaPLdw7ZE zgvV81z97CQdYR&&zV(F4)yGWZxDV)x&U1gDe4Kgf!gh4S zNuoK1022iHSUkMIl{ zcoVK)Mi=*zR|qpF0}kU`gp^N@Wk$H401UF)y%d9{A`=*)P(iy`NZs&If_T?*x=T5d z)9f@_B~CtA@y)?$VoxsI67?|P@7E2G40+8Dak&^`F{5l7RZ=j{A8p3$!=_LCGE<9n z=@Tn4b#%I=j*4>Q)LfWh9SR=9fczlyby!(jr38E$^uY%A)D#g(6jmtA{uKVhzZ1@5 z$8jl6=BBB~?(*UvbSjlYMGX#>iugP~Wg}q~B`fR^d?7QPj+~4YJM&XHxzT~!7&|Eq zwjjuZ+WlNvf-EN~kx;r#-bejM0aiA=21o(1X^Q*LbJ}O5=AQALC}4n&qi05+Wh}+* z))HqoWz=kDUOM;_B3e77fSCdWLdFa80D~!!xdOk3{rtoA*I~auiFn(MNyhF=E6e+L zr7gYG8vCOS1y1CrwFil4-!i}_Y6uG#AkoXu>os0be0230nvLd^Z{dLdKZ%9^IZ@D| zvy)xixU4SD>b>=zy{`6W2HtMZu>Iq0x8i!3h#|-n`K*Rpkj)+VM<@SzvlN{<@M-id zYOOD^|7~Zk4Rq1yvc51q`?0yH`UzF_ z&eBz^&i!eCAVcKGr>&HDQkIK=AVXl{`?7*i=9ibC104ksAufK=wkphjH%GJjmz(0#-SAq~7VW`CYJM8sD|lCRP)o0*b>WlcJYBDeq!plxkZ}s|J;``|lJy8pSV$T-N-a zcJ{}wP-EDex0eL32>Q2#Fv(7wMom6F_V1C~WF5!Vvzz*#>OB9chIUcOapwY_ANSTb zlmi|v|Ot=nD3JYD16Db|{J>B)Te#6({ftb_TIH1@%oghMIotbao=`OS;@sh@P_ zi|xsWPZ6+V6Yn$?!Pvs8sA(?A9l77we1B*%%aj9sJkN3P?-l6rDi?&%gY&F=dR zJ)US+Qkx_+{DNb#Si5eSDC-i&)^NDCRKZv@V{DTwuY}v=KN?+>ZqgHCKq1Jk=Z!Nu z9Bc1;9NL1-4+doLfCVw^?tQ36aoCimqSaDlM{1fT&D3L7_&u?-tW}&z1C@48txANk zPVrihM7Ws}?y=;u8Z@&EL!=s_%xmu`i{zAT!#ola8mGiKEJ+?tFG6YNO@RO?x)Z_5 z6pu_v@$g-huf{2N34_&9!UhoymMmhBq;q*;Av6e3`e`V%o+Qg=VOs zf@v@Eh$P;a^j&iO0oO5{xs1Iw63-%B6r{YGHdmpmxE2(C_GA|F;>wRhw@ZEJNE^Mu zZp(`Nf|Cd@tGVRQFQr&=Mv}E)XYSUkl%&O zMME5w&R#3Iw20+2Vu(76{I21bH_cQ4sf2<-C>R^)p+}UEkyGMw#J$ShkW#u2CPRKO@#^DV zRh$pnHBq7XbB7b&SF~vDsk+NvQjI2A zyUv|}#C5pD#>4MK{B9a<1|-P|n9&MdK zjbS!Qiq2M9T*Vik-tjlDby0696-o-sRT~5>rt{yxaN~wbsS>8Ok zT&HAjrqr?fKL|rZlhonuUG%Dy;R(+4!MJ>ZlZf2To1vG^AKUmv&97JM0$#gPz(R-n z)$a~rsI@C27q(sNk)f80e_143*Jc{`JIG?JhZ*`ev;-Ft-LONdEx=nv(RNt zuAIl4zD_oIJDbYElgxL%0|qDby7pZ3?%1GV*UGfh1x|DVXL@QSo$}6R=hK`L(Xgi> z+k0o{HT1xz?-1K3VHY;&tp)8btKHe|`_@E-C)@V5dLt9{u3j&-xjv1}>i73s>zY25 zJhr|-rK4M@s3@_W_kWj1M&y`jp$~L%*5ikj&%<`b;8*tz-cJwVYNC%MfPlJThxuw7 z5fs}U{Si6-II6>0d3l+*K07_#Z1eXLNe*W7=V(Nzgu-%V{V@T{K zC_?q2&#zaLuo80aGgX1@Pcu#HuEp-#+dN$(tPELhJqjcl9j!J8SNZ_dkU9wZ06llo zX~)No&~G5W%NgH?yUtTbXLA0h=4{)%nc8Y$&oa?mK4?M?6|i9!i<=uet?cCEJzZ|w zEPMj~^;L-p`j2H%fBl+R;CmRkD=gRvmk>~h_=G5m4llo)0_;B3eWrF`wP+dsmxP!^`a-VSr# z4HwiF)uTxtgcVLk52ctVAO4b0XAA#sPm&+s^CfIq9KL8LP@WNP4&;%&%Axs>hyx5? z0oJ0L$kJ5gsvd~O-U6Gkru78*A0_3of*)-MKF1l=rxumuqCSC@QU}YYOa1aKKQ*-h{K0YQRvp|gDVtTkePZ*7E z9i<^Og(%wM7fiQN64?6Xu#_PQhGkORMF~Z6lqJ%T9&AeW2f~A}qqx+=3#q{aX{|z` zE!bob46T9!HVpcDXlu_{>aP(b6qpz^?tev}US-W=RC#sDtdfJIZBZaf1>Zhk@yyv4 zo@$d@$Tuk@2$Z#FfXm z>?}4`ce>0}iwreEpmlYQ)gsRrO!;@tGm@8wfMFVgq1~o;A_QFBog(!ru*nKqY;+o1 zgGrOKTvn*evfvsa67YBo*@;$Q1cDf9z6fLe?EQyjY0F|19rcZFLZHr1N&jMpBx&TR z>dR{=A_j55!)8Tm>mkY449qVnsakT0Ukyy&`~TX$j8|1s=IqDSf}XCMYOmv}`<2c< zU9`N3rFDL7LL(MA)XMjB9QwgI`u;mqH2!e(aS5-A;;GLZZy0$Ca2h?(`mkSBruD5?u`)Qj@b9df% z1`61nmm{azeidjP^jkXMCOGkTd0BQ5vyC(|tbHeTJ(;cl$ySxje`Ar}&@lJjzi68PjjlQqZ|M|G_MEC@M7d)ZISzfnqNINx#enD0Yu zKDT0x>31Ef|F+l+GC*PtcU)MD(OIO;rz2MAPJ8!zHk754mSO-3@ zVk+LmpDtW*i#@0%j(0vZe$O>=b}Sc8>wHmvy%j!v*e@!%JBDsCw^nq<^`{5FX>7(? zz2{67$+~Z_?NS69*~$wWTjC^vuJ*@5+jApj&YS4_ z@Nkds*S%&;qjfAw2nqm@zjJjk?0;rd(x#`)&Ny2i-)<*>5*jXY!W#BOUU8B}nolC3 zGSPD72QY-u@5(5DuDDbpm^@k3`TT3YhW+!4Y*|TFWo>!04+Dk3;k#@6u1a>+o%$Pv zC9y0wDYiSOca|3fHTgA$Zk8moxfeGqLnF2z|7-lF&rGArHu&ey6=l( z-2gL*xKRUeDu>QXgSy{^arwjKTbej z{!W!&>lo(}1b1tbRIOhLV7T8U_kJHuFT2eA=ie$6QQZ z&VNS80~kHJR?TtgsA`A3n7u*+U|Bfyp^r!k2LdTkq>Pe_XKwp8 zJ1%{BY{c)~l7+6aAgw_6Q!~8sb2-y{3Dj0h(eeTYDK)R+Ef8pMc59D+`DaNQQ$a4u zNy$WsLnaC4M|B}%mK5skY{x1FH|683ur@W{#{fO1kCBd=3HAXLMb@sj$@ve!A5!HM zBn50_czBZlxfC?fZ&D^jADy~*|tH?O~ z{yc@r5WL)orJnCh|JOkWZDHOP@QbVSpD$JMIV#9i9 z7$kT04{?3=IbIm9KnbE176c{h6$Vz2)a3{~;}mkidqL8cU=+%aFxr?p6|zitNa{Pf zx}?aE{Pn%Nhv;nWgO5g{Fj6T>r^zTf@{YXaWt<{u#Wc~y=q>7Uy);ztC=iel3WK^H zzFRU56_!3eKW&NwfCC#W5z-*fK~yRz5xUu82?G#B0XE;Sw__YOTeIDGb1ufmQ;yP0 z09WUQRs3{oUL|{fD5*H#BzZIFaevxIsYUm_NOhLnNNEJ$ye<-Ia@*rLI zDyGI_&7XWHl|-}L=(Gy?EJlHa5Gt9VgaozID$=s?`9D9FJh(4CTOVW#5~z_mS3^Zv z+q2hLTV?TIIO0216RO-S=m|_a<7c2`v>XQ0`|UT zO!7PTs04m~-QyP$q!3^=e2`Fm3x-^e#CGn^%m3FWKpn%pwx5?XPZpFkBrw){x^$s< zSjZ$`X?401W*79rT)*>tX(&|x_h6fE1?^hvDBN&cQWlX&nwiV*vAa^DJV3h807wq@?9R*c(iZ2Pq(v~0b>Zv9kcl|_lNh#>EYXhs*9Qa5eeh!_97 z$(-{md;fEX;rq4QkG`G9 zUzgYZyWI~@k5J3LjZW&k%dqZqlbt$vMRNE79V)}ORij|)@D+6FI`5X2tzXxf{~PL` zZqji%@wlh*8wGXZZ0)D{@TH$zLLN3=mq8tL8t$171gYxZ<>Fr6gCyjBG|Qs3^zy-f zdV>;dHD|fphz_)?6N#L$u$<8LJw36Ef)l|R(XB^W;c7^{gUmd^co`@!7(b# zc^4l|b$(Ijc)OX$aPpD%1%EISbKC!CcvQ;P>G>+12=R>mP*b(~GL35Mea0j0d+^{6 z{0Lkf#lc_YdJD!Jq^DnB_~u*i+AFu6K&s;f9po^c+lp>R%P=zHB1Q->QxOOK{cuz5 z^!zn$Vf+^_0p>AW5aZ~3uU2>V#2CiX-#YHbPRm~MLS4GeJ>6hS+M=IXjby6=@Y$2Z zFe!i?QF)a7VVkoFIhL2GCLQybS~^>&BF!(_q+AGs~GcEMj@jrT)q*)7_&=*A%+>Y2H+s6O7g+g)s@CBV-$xdBtN1 zWo`q2RjzeKJxVEjJ7!#|N)Z(Y>4Bzpc@=BBD;3ZrPVhvH+z9^>3mrBkftqC$dxUf7 z7Xme7^!K6_1cmaBGI@d!!!u261vWN01OXg7r2Z&-c6f*fshlEX*!hD%4tWZb^j`}Y zNe%@|A%=SW8gHVYo}4KlK?5l00(M?&jEhvzgF#SV=5Z8`S8-kk=bv4-E-;b5#v|I=hOi3Hf zSFCr4S~pTx_IkU<)_klL$vkH`K zYAc7t-XG3Ap3<#*Z4CJKvsmB~OH3}V(G*ynb1m?JzzXi4Iu>V=(;b;D9Bdegs5Lgac3G%yVH$QSbZ@;FLPmsO^~^^7Q1D5P|+u{OYc?QHD38Jw5AfMY6pvrf)byx0A$oRo1(Lp`5dVBxS)|5Fn=WRo zhdDnFCX4uOp>RMd+WevaFj6l5>ogotRsPT4-Lk`5$+a7S^73J86DP&MFh@wBG4%Ls zt;KvZZ4swz?DJ0l+l82V(|D$azP&kQ;d-ES={jH$507>&{uggLv<+&S<1T$k+Fs9@ zA52%BztlZI$tYOoD6E5d>G{~#9p#TlUOqOI`r=dXFDyA?t&4lvg=R?vq&>r@D;>by^fVn}30#%TKksH@|= z$(A4C54e0u;np}cRT!bp<>UGLxB7XEfa5tm6bGdy@KO#>w}_>QmQn3@Q%Pav=0xBV zaYW}$bDrFdw!o*wk-Aud8dAXpJ>&G0?7uhETR5pO0B8$4)kn$5f(s}B{k{+TEpMp2 zIyHP^ShCeePaB`@clAq*sWj{HJ^lLfbR(I=BTBdg_~v%al@x5aPFQvC>-eX8Dk7~5 zpH7Ohv*>E&*Oh2TT^Tg9=tjC69t}tczclA*Jd*TcX5$cx8%B8dP!e2Cn*<)Y3c6Ax zm!$1V#i2nZJnY3qM!~XW#U5QQ{jNrsNmRKz%&0d5xYkG34ZbQBrLqfk1fXI(#E%j(g z1cqoAnWt-mVawvB0TD?eVRi+LqC~|;BG;aAU__k=7HQacvuLDi%qXepQ@Kl;edb7s z6%a~883Z7Q71x>TOCiOo#D~$U7q}@?SNs(Dhd;(b;Fby%O3;Xr9Zx+4A_a}DH@ol; zqa!h}P-z3acqtQIv_{yDrx2zGD`W|`;&0^Ui$3zwrV)B|Ecp&$60qSAr={Z2cYux` z)p#V~AWbg3Wq?6r zm`o+_XaU*gHA>;guu~wVdSolL%w;fBAl@`a7yz4e{H{L>J=rM|ciftD$>NApPN!4b zcGlRWAjY`-m7;rQ2}ZI&qH!6Fy&dge=`}S2FN8?1G(7#r-=k3Z{LS$wZXm<8(?32e8xn`mD4@OQ zWyB^c;Gtl%#!71y{Qv<7$fuSi&oB>N1<%YBa?a%5%cQC3;{C-PQjM_|nY&_GQ35rw<0fWaClu$!bei2t(XC zR4njQB{?O4v>X~*g74rv+b~XHUV(~rEID6&b^z#Hr>6~pXKEyF?y2ZfF zetUm7JG+ITfF5|?r0Vxe0Od;C$Ok6q(Rw$F6^bKkT3>p(ZCLq$xj6kMpey*Z;qtd| zJ$*qqpa2S|*yz^wt`dp4?Yj!F1Yh3WjE)VTiZif&H=Pw-j({7PAVLC^GS+ibh#&Gi zE*m}pNy*8J88-*otgP`^kqw9j4~vF+U++1+lU|rJCqNo*ZVncjZc3?s^-Gdj)XNyZ zQt!|E;ZCJ$rA}B6E@Dp4_A3cp^B0ld8rRjI4xz-;Q zS$N|!zH2=?z>g14xuO_-L|V$LnYOm9y%5Q!-%^_VN%HC-g zRery{?RrH}Vr4yV#42|6iebMDsQWxG{2V`1Hg;W(7pfd27WG?u3Vd)^vg{qc$POmZ>T1nXMaOfnvhmV*GCt*Ev_&enOsUWGU>*03ZiA0St?PQv5N(%<{!Dp_6 zZ6UhJ;GFJcK9HP&C6d%39*fkLRci*3OiBXJt{^d5>JoRP0y%;f029L3qOr~tNCFQd zK?)gzm1IapCP%Q_FOy;;AhR~%RmPi%*C4D>yFMp%l(ahb;34d3REu~4^}ymaXfP=v zPGO5Ru#8V9ACMfMg+?(wJEHG)Dg@ewe(-g$g+PFqx^8K}mmTDyEbfhmmtNug6f%^NsYCO_8ORsRn zk|l+e&NUOH)EKOisnif2fajx>@8n$C{%*xNyM<`?x|2pOs7_MqK;M0q;2=#dlhR6~ z9P$zS%dUhaZ4@kc0Zqj^r^qPM19>^a7#tX^KCQ1ryS+yRq?!*_mazS%YC0Nk?HQN9%%yTpdSkkvFKvRkDZ4POHqnWxQ4Z zcrYn)uCtyczKBJXni~8tAeyAvTg$b=fiFo&8ke<+hPvgY(aOf<>r58nqLF^BRNv7G zcKJwGaYc7cYr?DrRfig#23_HcCT$;BD2im5+?e%xE}vcsVC59y0jFie|HRx0PVeAY zT`!DpM7$iAF%W9)Q^b%eYuIXQ*gF4I+y_7IYexc{ zP>DzZVX0~uL&o~;zaANH8oG)sCe4w{>5#{z!)|FgPhSCm=D>`Fdygf)Ra#1F9rEFz zRcI)HW8qMsadJ;hRq-lBah{H-!u$KfcA7mZi%J|qXm?5x>H*QB$ykjreS71>VLm@R zfU$FSxVQm@NlKqge>YpDPwsua;=i(A15rfnZ}oq*xz@&#UHSDVYNXyos4!{j%x`HT zwIbRwSZo7lAN^@V{|ssAI0lX)?E4ZTvgQ!x6!XXF*vq!^xl&oGFwXY}dYU5=T9#6Z zm3P?RRpMQv6~0Q9LS~ny{>3KV4GwyXeiD7(borO$7Z2b4*5+r|)qt|KE!^At7|~{R ze@!>I-bY6NojC~etG41s0 zydA&(V)W|1u$B%f><|1@!ZW;VgkG_x(+zzDMym%S{ulM*&#q@rg`{7wM0n z{H*PldS;YH9@LE|${F$16UMIWy4Lv@n4qtGZP`L4O7HIY|3YWL6ql?<(Ja(|d%c~7 zt~)WY$^Z4}BkLdrLargUrdI8ZkIz@RNE?K&EOz;ml z)O8Fcg{8~EBaD(D%7AsJYU3^=$;d9a-}4#R?WHQaJyXg|LaZz8K}RPHrjsOoMSoYiEbG(tv;aI}~g5q^~R` zyRZwo!{hk9A5e5D(Lq?rmgT?BQ$rgG==v8SpTsV9d#ar`3}zvTo1Q!g*oXtcyLd** ziN!rB#hmZvCgs;`=_oO>PTiZjy)*|edI7>&^(lDk^| zDAy04NrhOChrf)C~Zpg!W~OO0$fRM=u}RTqErt{Gq{Sw}jGO+pYG+1v1f#TS|(Sp<#|gC9{E{ zaEyu6_YECZ6=x9uFT0o$YgMm1> z@&Id#HY|N6&`i^<(&G!1<6Gi`QE69H8JC|NiiwSNajdSbZa(}xIy5Y=s=6i4UGMg= z+tgSJrlnooOB@}WKnSX?He$<{_~5Rk70QS*i1GKYPHz3DQFWx`uiPAhw5(H0nkMi2 zn(j3It{%oRmS#a&fYPj23_Jn~_OKm+WPU^ig<)W7Ma!qeuuMfhF60v}UCDW#P2;zk z#>3}DOK8n%KHul=)2}3@>mKz#{L9qH%WG?${hD=I$H%95FYOOTo^)3pL0DuX>j9Vd zzpMH)p;3K_N5*&Gf>;3G^yuY;enSl*b~GwG$dSzw^BRjTYpGtvK8>Dz!R zIwGua<8RlE=ZniKgqs^)$n`5>p`Sm+nCI`NY(Km{;>a@J@-Q+{a>Y`@ha*`#{={n&JPu}hIhSZuw9jt zFG{kfLDVGcLcgv$9_yz2uCHM%2gVJr3LCz>o{%l;8UK2_(PbxJ7$k&f$_|8uE7`2q zm$KrV-?HadvvvqwP52dCp50$jgtCqgzdW+O4Njs%lQ-x0Kkr_z+a6=wMk)9m53gw{ zp0q7;B^m*B*PZEL{&_r7VaIo&KvKp`;7W+hj7uB$(z2rON%SDxxC3@sNg+89w9meN zU+G;|!R-9C*-D@N>aP;ib!^vuemGvcgHut7%Hp+JIBq*5ah*9<#XNRJfiB=_{yrj1n#zn!c@*Z1I3 zE!yF3_`#AIutFyn^6dYPgD)pHufKZ02#6BF_%3(0))Z;c3lIPtP==KR%CK|2!^r-8 z_abb1j{`LD@fZnx5x1FuePzP6QyCvo9Unmqaz!N|0iytJa`8l5pO(_UMFItN=P{Xu z2OApSSw#gZGjse$V|t-o+bgQtk~&?++7XOJnAkY601zh|Rd-uIp@nDlRxUr;TJ!JU zMMg-;oMuyF!e>O>O(!LOb9}xFMZSw##8p+d?Uxo82RJIcyir*x*}Rvfi~Osu-esK1 z(RPFGfdVa-A1oZ0-eNr40}aWR+p&NM<(!n{-1(<(s!r=}Rx`pch#2iR?r&9F+}e2f zj=qPPz>nRx=e>uQw%TQl*S;FI<}(R|K@5tea~o)$P{N%XB{?Tu)Z?&W(fhlCveMDq zr{c8S{8t?vb1Hzv=bl=cUM;>Z(TQTU{bH=$-H6NGL)dX3j{1Q_ELt2NW))hqM!#dC_(~1n$|EMf;TgauTTrfl5v;A znObr7wa#^m{~*TGeM)ii_ZiFX0Md4`2|t;W1_vWT4nnX~B+A=-OTpKE-kuhNuGi_k z$U*0kh_x~q!(v)wq;pA8vwq&g=7dCyR1#Lu@kY{b1#K&RsXnmq`LXZi!S+&#$&JZ> z$feorEc{J}uF@ZawU`al^wIMNKhJS-q`k8H4RBOYDujH4!I*xdl%JODAspxakzg=Y z^posFEOcp!srpcbn5X7l&VfdGjMWw`0XMAip8^oGoCc{T*Hh8&ohn5Ic&Q)UslfON z5ns}fmQAUuJPIgBZw7*0CdZ&1{z)?3#*)s;7e+UdhOxvNSxFBKHYbC6;YgX%?newK zc1NgC*?a<$HoSCU56IUyveKyAIzdRaJm%qD!R8S%E~R$2B4c>O&tiLyrGN3tlJ>cj zTz|uXr6CkR9az@pj4L`W_4tDY{M-ZWmpO!z!tkqxGhqjLkRsE-Q=SvCGM0GIK!swU7T6J+I4T`OkSZVKkVCg9kko=mbiY?Tjp{NhYIM*nr$B+1P?!c4($O$v z;a5G0@cZCxC)-m5kC4U;a&v^H$^tMj-BP1<@Yq=L7*L&h}KQeFfEk|qBB4!AIa0HP@#l}32188-E zKot)zs163MFdn4A?Fk)Fcd*b1W$6c@MBAX%>O43=&LU=*LD=P^cfRyhL>z-a;H3c# z9UEJ~?f=8nTSdjyM$4iLcZVRsCAbII;O+zu1b26LOK^90f(3U7!QCB#yStwC?|b$g z=YfZY(LENuy660=W>wAA-GTuH)*s_ViMY&}i%n)uR^A+q!O*vTM~ips z0_WL$PCM%y?;w?;@6p;?UTOBc(Y`a@4j~#tvesrd(bjJA5}aW=s;j1H@B2LOg7jfc z(7VrlMqotdN28tIfI+f`V2< zqeMZU#bo)VnfqQVx4h1I|L#^jsR)D5%yf4=t;ujR_n)b3Zo}?D+>R&HQYH>n;WjpEd$7e#cIOuKefkNTg*0ybv`U|vnboonxWh1c}uW=M7aY`rCb;^}nbchL;;*RQ%T{$zh7 z+*?o{0ks+QXQ zrL3yJW{RS3$H@`SxyD;Fan(&{@gsSDiQnz7Y@&~5h-M>F=aoo9p+IVoC9kdOhj_!Eo(_| zgNl7*Evd9Kzp}NtW^-}M>3MzsfDL>;SSoK%^%4AP~fWmhxqwVE$zZD%+^$-}HoJaY8 zmlX7Z*CF9rJk;2m0w@sM>hcb8iFF-p{GBc{<3d7KN3zSVHd>3;$||1NeR*(_9ADKX z)aU`|bY5*?1hIyqB9tVYUnsX3*-w8TeY^l5Bv$1s4vzIpPL2jH?pVutkKm|=8;-eo zDHD^kNS?6jOe=|RN!@1MV|jV0!7+)i*Y0ARdd{=qtk&$=E%vy$o238xZ8a!V(A|Ke zX#A@StC(sms4wU|3243r_jz?aMcs|3rItS^@ZlvkGS;6@-SU^G$c&BSbGkh3{(+0J zSz2@f=mlx<0q;wMenKiHR(xO!lQ+z0{dt?6y0HVPwL}dU*Y;_Q*-|Ew+=%q9(&naK z{I<9xF_Y(ZFJYqz%F>=9KeYV6DMaRK=WRB)(Cs}uZYuK2;nlyOfhJo>|Kjv?#;)fv zNxz$GR9D-I^mxPQavqPRazUP9+#Dr6U2|UmUB)UVrk}EMSJa=rO%$|d zkCl?=k14(%o!IU+jBt|Q;_MD^+425%8W7Nbm3aS00d5EZUpmLhYaLAezZb$z>a?sZ z^S!3txaaIrBDKF=O}kZmvw!LRD=YN4WL~I@HkW{*!<*UYDsdu;=DppOzyAAn=v)Kt zl!cH^#jor@>WE69y!5+qhCq0#DcQ9nVcZhVtKbTS$|e-Vp}(g$t50fPa5s{ZhyI+^ zG07kA(uKEmi;pql2}@YFLBV;|s|g9krZ;)ZxCrQzq(~SsR2XOkpXiBKix^FdJ)&7m zM-xOt*gQV?;{izg$gxUl5s8@SlyvU|ug<~Yn0P$XRO4o1ul6RIJV7*~?tD7$-08EPn=j=xl^D4slGnNbaj14UYWHNxp$NZ8R&Zi^oIuXvZtB?9GY9XSxN zy*&`1g$aexu?Gjng}pIO^NpIR^u(EJis7s8&4M>&qDpW^t=71;@SGM zE?l)m6gGZv+Y7e4Q~t^j_5v*-ReP0UbIcH>j*(OUN!JK`)r92T-wd+wi7KHY zWUd5801^fxC^7p7=QoH7P7TP1BEFBSP^%{4Y{#T)vlmrpR}f@5pI@Qgg;t19*pEER zlI}*9M0|rb`EFZft6d<-=wy5*Wa_Ro$8>`SbB5D0mRnM+7JY+`oLkBd$zeY5cfhG> zFE_I_DEOVA4?96JoZI#&^Ng6o_i1%HU$$pnkh4cdMyBO-JjU4A7)sbi-o!}MMny*3 z)bxGoKa~dF)7{hl@o{e^)Q45?m4^s+2vT(OvT_D25o42m#^%RHB^vbGm$fyaa&(8K zVK`W1!moPj^UKSbQ_Os{v>aS^7r)&2>+W_pJbz_-3%;Ma38ZJSqXPsVk1Va|x3{tC zoM5Y3PyfC6=(Oqc0{{~4nxN~8Gf-MZS5Z!P{rmz28#OpQ-u5~!xzO>{_Vh&XdmkK! zfWRJ zqgY%9SL(#quiDT6iVKHL0(M?NQ0PQv$7ej`L~Q-&A2Ac7C+GJAV_99jwW1}8L^o$k z)N>gB|0p`keEek>qi|OKcS_#?H7J8**5@D7IXbokXt?a`4OLWRe~+9grn8ld8D`jK zCUcmsf~ckah|aA}4W89&T?OFwVcU3S@Yq`HOx`QTD4;eq-9;f1Y-}len~iu;V0V8x zSpPe6md@o1L z2ypXqbUgA8h-1ceCzmszKGqb3e+1#X6*V6=kMb&AYXl1{?2 z_m-hYY$VHPxzt_$`}SWZxLSv%kF%!aimz|l(wyvmOWZs~-gVrmTplKD<1!HlxP39S zJSqx;L#@)sMXa~=eOf^CzV0Hwv#l&&y|^Y>=`k?0Tn-E)!TXJOI7PXm9nl!`+7unTbvf?5KkZLHYS?&o1yS^o-=pK6e?Z$e@3Y0d zC@M3>lx(34F3(DyBaydtJ-0grR-adXG#SdpM7#(GfbUy+y|am~Na3Nv zM09%HRpY;97KX*?`s+s_SAnb&w^Oi76N0<6f6lp;?C+`Tw$$IIm6XdyqITXsEqWla z!y=y~VBd+{yva^ze9*Pk(FYYnD_wWH|FtRy;U+Jchuv0Q$eVmW7Y!PQYpsWs<~EPe zw8jx* zZ&lzHs*Rp3d$)>aG}hv>Q}&^uz!TspNU~&DR&c#Nb&>eKJnQ{jZ8{DS%3ABd0*XNm z2?*M4+JX|VqDX|4RaKCIgcR^&<0H`(5cH9bKH7HG{!;1fP;X_%={lcy5z2+l@cn`> z#`|9KG-h#fJe+9p<))hWVb6`+wTh1JAYp@f4)u54N~7pR2kURvquchxXw#fvRFY5p z;H;ZU2M=LltvRoxy=0+jt6!3KtBOc32U8UOvdWxa>Sk#6tUaj5zrE>xI8JJ*oI9OW zC9fTiFwT0kz|r!8h8cSPQ@}ULyzrH`nmMmibnS9va{H=QP+nE@d@<8OLVph0? zas+I?0`?#M0m%MP$q3jd{C^*Q$cm?l*yA$?@x&>GeoN1`SB7m8kyFJyk?-pl&!j8! zC#-kwC|K$2gb@cItn?BJ6)AE}vIXU8m)(5TLwp9e6NNkoeaX9?q#?KbQ z9Fd8w=Sj^tnVBrXi86^jIZfLJsl9fEwD3QjmFehI~l1C9?B_NJH^d>$| zyvauDQh}XscAg~cmc%LSAqRQS$GNa1W%-lwRKXkPvQknPkKT<$K zaD83IGch3<$YlIqExIIs5tlj%>Mfw^hY#WdxmiJ|D|Hka*f#_ z(a?3a01^7jHxvwN#VkIrvn%BSYJJ8Q$Ge+<<-^mr)j}DWnNOgR0hGP!`^`Uaoh;p= z0;}y0(Y4zp`kl_pnJubg>Az2QB3@p-IGsM{fNqYYCc(tyY#yWeE%p+$+vcbLVYLk- z%XAQ7LEi&Y6`FoupK}n0)A%$fZP+DYw@g6g=;ri=Nuv-f87&Yv>*F1F@yrUQ;OcZOC?kt>unuOhi}dE5#zHt%Yh3x^*Y^;rb7}aB;=n4sXMP; zNPJgUD@8V=@P%G`Bn8i}AK#z$bBI>ozu`{IQ(JO9kDTqD*lj%ZHz`_*{0T8HaT@p1wjfBF9#NyOsb5)mNhhu?bWsnY?5ok$ z;b^*xh%m$_?d~YGsj_XSb3gmNtozFxo<9HFW-^pfovY0~R2jcmQ(PzG8*hbl*;cpNBVi3uuoiIN!d}{^4dY-VsA+=zl zfH4g)+Hu~qt;30-tgf5~QDaO~|6GI%kUCAqwsqb#?D)RAKTi(LfZXufOPfAuyC7U| z{=P?a@6K%8ZV%)ZRo(Tzb@+4p{>xWD`kxbng7wO(raBDp`&^6tIh&)M)oXAPgWas_ zvVeLqxokq!-FM?m%Wcic@6$ZYlQ(a#6On)KYh^_zW{ML91ejfF-N(FC7;^B-4LG*%daiq>X( zu;+o)yTu#3+s?t<`&AL{+qp*JcIIlWO^;~IjWnWHC5WD9_!?c*^yzJ{``3@O6fet< zDTF7U7Qm^(nf|jQ^^(NP&V;X#w=;N&$}15v6In!pub<94|C+6uAiC@p>HRYpKUvrE zY6upJ$z-ia=vxghXe}kfqBh&vn@dh2Ua2elq0G$ar+YTY!ZjP5m>8TmZe#bcqM}`Z z%I;=yrR$-ni~sIi*-K_(St3T#`k=nVdKrC6707*!y5xYLl=(#L0(5%8*NIPqrj}pt zx*f3AUr(7Q&emP5NBZ%bHrAfqGN&8)@M|mRytobZqa7z)ce0uaZK#Wj#NS_eeJkm^ z^lkZcTkCB260=Lq!fAr9?EdN4cK)4T#b((GirkJBqX|xlxvDB<$wefw`lj6`NcsJk znfodGyVi2J7UsR3V&jzkw_KJ_z&!*I0`|&gjN|%+=uhLzf<*4SdMDp8SMFlr4Mt8j zYfoUHZv4L~VeUHa3B6e7JCLhEc6LNJ|+v^ zexekwGw~iTmDPFJ`ZpQG%a|TU1?8W%EEb|{v0;cX+#6oV5}cY(3oqRI1*s>qf5ulS z-B1HBd`H5xn-K~zz>=8mjMyJx%AC9mAqxJ=Da#_&8v%DiN!Fo|tq_w*xdek@%ndJc zc!f<)*^1=TPO3#TXyVxOWChS@2N+b6&@`DeQ>HQUa`uS{@adnp9jY zkxQp&6jJowcvb zRn6M=|9Xc+qt_mFilUP;xQquUr+^xp5nfS!2w@M8%eM2E+p}lEv>Ct23yf`MJ^sHd zW}~{$0C)utkK5zGyu)-ZI8+=G5JGbkx4Wj2Zk~>j_%^ic!g<` z0cp+Yn#R|)%fTIs>w%vcAcv5cmY61nX;1`jyrBaRprwWm!HeO zRaQP@G$KJx0SZ|evs2kF3u~+}Ucd7_4(q}5dVAH zHp2GF+lqbj{wEA`s__0rG&BmrAN1Ft?VcYDdps#A*KI7bnGcqpWI~8t zMQP+j*cY{as1xnU;+tpIY1#WH`M%H|QZX#^0~0fTKq2)5GBoJAxh{yDI>dt0*qGyW zyeR~oj9p;r5m)DJ@84_cDyPn3IsL)V25=Pd6GD@94INvG<~^F zml-G9ki!AQ2HCq9LE5IM%T~2>cSK3)YkShhVhz|jOY0RHNH5Iq1r%SKud7I)i%j=N zHGP`gMt-iGX9U%0+mc}27< z7mQhrsQEtsNaZpmw2P3HlaW$@@ZaOTr#@Y5bUUUWhA_A+AmOs3(K6a+CiIxG2DqF5 zMK%7b@XRINuV|}-3V=G+hx5<;PJ!a{S4K`+599`_lo8qCP||$Pq1G8Mhlap4UGy)=iYnU` z?A}lFk`i4vmuXcFM$1S^fA6Y#LTpefZfR_6Eew}m zh*Tiv^5Rtc3J6Qsp1BB?r)b{|`Duf<>j&|pd*2gD)|5>0t3r_ z-mNzdE!-h_-`9Rk&==cTb6TSl`FULkxw^FJeA)yq6@U5#5%Ju%ub9f%HP#m4a zmtCvmc*DvmMwwCxqR|whjYM^#ji*v$j8fyjqW7pG3O&i$q0>X7&~Z}ovzM{wccoV1 zqOUL@4RS@<1Yj^Y#C1u_`#E-d7s&P8PsaMZ(aJ)9rSl4r$&ezn#>F3d8WWWG7E{_( z6*9v|YOA1V!$Zf$TMsl6t=KzSUm5c?Qid&|3se5BC__ZyaUEn(9ejHmnPO%bZVHM?`JB@}FEju(2KjVaW%juwPaU5(t>wk%1C?DFPZ7 z$f26aSYaiz2Q0z&V&dx2M=&QO8BhwxAnp4*@c1f7YhuMRNnnn$L?(9g{OWM&@W$O$ zGa0AAf(H)`6>S8CvGP5j)ygGY7=C2H3B`Q+7oD&h1X~TZA}ze4co<3&L5|}9O+YT; z$m(B%WY7$e7CwpciI9{dl{D2AgYzL392a~GF+sqFB$8ati{0k7Y@Rul)>B4nK!;r~ zJKceF$)ui0MJ}dt+@6BTqm~Bv8Rt(wh%A{%TkyI5_aB3Fag8XMG#!xt2C5R3>T{6Z z5Jyzr48w(|Yl(DXo>5sN4onl;kn<)>U_QgA%yyyjQ({Wn))!Y)C@Z`c*5kJhF*MFl z#3V-Vs0X6nOGW@Oue<}b4?(83` z2ss=))t<`hFY@!MH8qf!YCe9|DKgvpnIp)|NI`$pv^G7cj0FJ>kn2ImQJ+QeB4 zOpx8-%9cKQmX;ExUzq?xzAN9pah2hOfqO~ole0IX(uRgKtnInE3JrjihiA?jpVykf z=m2EDek`_hb{215rB&%qbvWn309#vFPbQ&^MWtm-LOxgiT!P!-aah3S!&HY&PxA~l zDj;mBEwS7XkV(FU3@Lm#2T5EIpDTq^k?OFMmmsUq9N)hmSTYGzNfj0f$AnRab zHr?u?4VYV(KCiudw{=!|_7*Ow7EdTn4ARjvdfy#VM-#3t-PMc3;10_mLF6`HcpuKu z+qi|7ryoV?zwKDT-PtrSY=HBLk}=KHq$~|x_cyez*Q(0{NPm!R5O@zGSy))OnIPf^ zk-L^tik9HJ(}ef?RtOECl*$MO|Y~>?$y^p!wcXnMq6@H)5@mqQsm+djIUkpb8TVN)y(HC{`rJ1g$4}2OP z>U!#T`$8}E#jW{%XSx3Fu1-G&P2tbpH<+gMW1Jf zjGui@<)bzgZ2PTdx*Yxfd8U-V>917s{bnQbhf;iXNN5O=UvbDf4ZjNK1t`j>{*;=r z3t-iQ!(tWJn^0yR0d`sn3PTVRvJtTQnD*V|2$8Y&vWBR8-+h**Ww1JF53%VY;%vtDuj9ftam%|hm1 zgpoLP+a=a|fObX(K$;homb_#L7v$rjW(Q(#O>mD0AUATT@A;-Hs;<8B>XqEPelt9N zblhy_L~@f@6$1#&6jI4b2J2{wCq-Dn0uhIY33gh()+3*QQd-)#5w1>Ni^Hq>lg#1X zK&%zcFm0W7xaFRC)ZYH2Y@z%4314$KH6ljO9it)qtO=?AM!Xf5NVw-dr{a9*{2kXF z78PIbA0MOgZ?UCDhG^UDqyLPq*}IgK0D%4M-{SP6)+@H?KC?s~b9m=32t%~nxNFlv zg~ThZ7+~K@%Snx2J{*@3%OVVkT^DM4xhe`Bc3f9-zoG%;KzH&^v<+2>q7>~TTvKNq zB%tEt=;e!jb5Xip+M!&!XIWcs1HilXlV)!;c@5;`fZB?L;>xEJ++{COE%z6x{{(KU z&I4;UT~V@fM}IDrVipUQ@oUdpW4pM(prWa80i&-Ak|%CbjSiUFaNiD}rs zS&nu)jH%IPDdVkj=f;PUh!jBUaAyN`j1XEEM^n4qLzGS8z6GGi@ad&In@IRP$mXdw59+y@J}ELj;QYBqeXQ7p?FF;Ywn zd`-f*8Ajm!C@AtE`ZZcy=Q1B^4!d!<0B4445tzG;mTqCjH&q>b)bAUPO8 zV8TI(AWSz3gMmS4G)RSP4i&tL6fyWqunB?9UbOHJ>QV1^Ygtx1c+atT2v#CTVTvI0 za-C-mG8(*aodV|`22$W(IzRp!G7w%%EU^mTZ5*r23W=2Xh%X(h!rK@{P?Sj8UB|%0 z654Sy_+?lLl zBZ-2PEyxs%Dl82hy+4hH!oS78q5r&c`i_N2=r5bqo zY$QDUB|e_;)aIZG0cBSIG1thiw(K7BQq~ZNjX2F(G{fg>N3c4DHCXXP~K~B4Z;jF7M*urHc#HgPFSBZvr~x`tNR~ z{ryiV+3$bB9EF6eg#G&gb&Vv+j_-V~#uJwX&#x3ahs_uLGn6%RXt^mkGlfaaF3SER6_4l8Y{L8w4E;vekiiUajW3;_}s?BW-}M# z@>05iW7nie9JmN8>0G(Hn4!K>%o$Xa9|`{<%M#F@^DuAr%&!mf?r+OoRTga>^*dK? zosalA6J~)@{n#@o7$J;Luw)Fcbiu2Sf{g4$czZKvK4zN&M8HL$$hrB-_~5a~x2In) z&F@jJjEadO9S=A_`1-@peLItq4aa_GnCY5}UEg0X$3#gzG@QOF>Ie&q6jUPfXPewI z48T9P@x(I2EnsS4riuD+FmePp@AbYK45vXND@-&=8NVm)KKkC-s(f?ecM6TNt}Ne*ye{9mq5>`ksKwCH z1cb`nWR7!YTno@Yh@EZ<$bPr;G}*sZH*LI;Ry<5F_)bK_$|%6f*wH3A*7p8SHVpOi zyc(3Sstt$NBHrWHHuC-sRTH`MW%rxB;_LL3Q;KTxugqp+i;|R1(C{n_;zXmpb#Ke( zWUQ6-EYP;(S{fp#G@EUxC1`$Ma`9BoClJD6zD0>G!aH8E@fbr(Z%f4g-4R5yoe$C9 z)NUdo6>}FH&V$9#5m+b!+g9$5EzTA(yB)LypHe~331l2Baw zdkq*oZnqBpyVX=l$KX2>0F2R&w=vr8yK3|-I=tApBhYithg_$GAm?4)k<3kzV zKB;s*Wn=hN@l=~TlzbqE%r3-Gss@r<=OyI^<0rdyj-SR?73(iv=%fmzKRz6CkY=~C z?ZA1>=TbtEG%pC-e1Q^+_T7kCmR+2T+QXN5FG8Hx!!PK%WKqinc&iBZ^8DMs>F?z8 zL-zXlZKs&MTjO8)O;bxFR*LSn+^&u`oUUBlR$I$D^NUM<35dZkXB`I^d z8(fU|AJHE9Rko`Bv~aX zQ=wHxlAZnLVhfO(EY>6Bel##3O+hz69deVwFk!?|h6ON@p;M7U@a)7UCY$^n7(kNc zj%HMsR6^?#0jQT@+*Uhtv$tHfcY^B0iOoJFzGhHRLBtsj&CYPJGevJhi;@YBUuk6u zliL%5VG>&y!tf;dq9+7JlLX_;7On$v@zuiV=SEvHDZi+v2wNwR&3gZ2#gYF3>IFU^ z#yn!jm9%&wimHdOVNUmfmm6lu}Y!qIA9^};tLbI?DeBpF@+vowUEvIxZ3 z^7>yrl%u5FSKkOj5)hyjv8B;$;9&oXqY}`@=CmwkpeVJK@nF}T8qoB`q4XgCU7f_s zQP~7-15p+`bPgh==n>)R8Z+2-&FvKQT%zhI2ecnR`Lsp1@ur%K;hbALwdB|nEhL(< zYTnsGJp7*?+E3l}DXoTYiL}{>_!e5pe~;(g(d`MTy=S9ni=(k`YiqX$c>Afm$_fjy zL2d2NJ~z#%C>K)_KuS&q)?YYRT&Co7oRLu;L#Gv_6XW%+p`_&GVEymbL!6HzB?5$x z_vD$GwOsXOWR`;?*s0|*rNz{fG??{yo%UvXgoPhJ;~D*Kx#sgM{i$f~=2^&P2sa%) z7xw?ieDumdLC)3RgQg$fFosI~WtkO`05P@Y@j!^`y1MJoD7^of&xv0S9H|A&?``!C zN-uNL#$}z&;J`oyRP7vimeVhF6(hnzrZ8upZH=Sc5_PQH9%=8;<5{0t>BNHuu|R+&WQSR^6i_r zRJ|yiQ86)lip1)mtP_}2Q~eFDskilGE~lqIEz%RqEsLw*WTZv}GY~|=XDc&XBkPh| znO*~3E02?_m+Mr3nimJ@!?;ei%Gr~H$5VMk3|0<4z9R^Wr6m9zv7U2b-gPr>UK}Nh ze|Ng)H6?}+JZielR<`i&{)Jn2M*%|Rv!bU~B|Tl$?66ZNI~s5octY07s|62f^++J9 zN?xR;{}cE$zP&Ypl8`G~T)~Z1FA~sX#9e!;2MCibL)CzzvG&)NjgMWC(oL1kk8v?B zo@=1cB!hFBkRXN8_c89iHD zE9l3Z=bC&c&YI>=R+{sC`$x|jIk8NET>d>14$iW`S!vZMl~YO7j)oU59gV8+=XLd2 zF5_v7BV0F%s-Tso&dUoZM+HU6fwP7RGscl9#)CPhb|_%j(n^tNoQB{X;~9EGf9&qr z>T){4*DtG{$TNI6K;mQy>z;>uPk1Q5vGVwNV|LVkQ1F3JQYe4wQm0RD{_`gt*IL5A zKL(eB4T1&yf9E@tA_0SGuBUs#fKm?K- z*KDRv8yU(-R^kL*TI)(;Nkd_fpb^aF%AUVu#A)O%ve#WQFa!A7565$VUu( z34E!WRuQv4H%FWC(Y89|Lrtn{FpbJ1IyJE(Axt>{t-Q_I^=7cJ6rbe9DhXwws|d4< z(!^)HXJFJyKeKsYB7QbU*XJ@+Oa2ybgD;{#!~hwH6myXA`xop+{nGC&R0KzU!de@& z0|=35)`Y7vS-i3_0dW~R<^hwp(;62`J_hY&t)PiJ`9doyHT@r z_cF4w18p`oVEa&F2r8@=cBZhm-W|OEa&qg%q7>$mNK%j#&c2uv!OL>lFMhuHSu;;Spci#%r1 zat^!B#hI+wUGR@jztqv8Pc~_4%dRSM#73}uP5KqKM-c9QF=sF8YfKNWe)Se=(l;0! zf;0TQZN|mimavt(4^SCDYstW2ViWepB6X>gfI$>bZf zC}`@uu+nzl(r`|i2D(lCv(*30!RJ^#P%+cb$Q)-z7*%6wIsYu)!MGGlxgDS~Dwutt zuUcww9b3P(6L<{b`^2oNCg5RdW;IgPP$B8|mv0UuPGD9>%JN zcy?V-pdg{`1fP^vKOe7tv}?H#CE>9k?q{DfS7Udv{4=Tr*JQVHv8q~v+Rgiiqb|ILOAOAvWNS^xXXlK!^wOMQ_I<_QT9YtDspS(S1Z2fWNxt|H0X+CK;M!`FXj; zb58aBO@JKn>dN$+z4B{4zIv3ZjFlxF!Kasn6yL5Ar<$UWg|l}YtfcwbBhoq7n#Usj z7vrtf7HUL<;eIIYlCRrBhG=)M>e{Z;c8g?9-aIG2ei;y zq;ALwEO?i%XrrY@VnNSq)v;h!Nz}h^=^l8>c!vCm{MRNwaX{R#Ch$#q5g#9ePX*pb zq0%K86EhqIZ}Z^s_ohFd{9bCjc~H0)Ped)*5;M!2PcImI=~n7acX#%+@rF^>7~#X+ zzdL>@GFUXhqcnyjGCC7R4{HalR{G`7TZ}*RpF&Gr$?3@7^hXkT;)UB=SnfvOaFD!J zV{sd?nw=N9gu)-l!UOP=ot1gM1KW%^OAT!H82ftva<}tV=NQI%Lw^>Sp?mLqiC#&f zm9+nxElnI8fsvLZW`f-)LEGs65zuxbssUx%b8Qm&=uuu_Vk^=N1u&#vUXWGI*`)Al zzDB9Ji$XCIfVl$IzaR&n#ecw)_DWs1puG&TW^+<2Hs# z6d^J<{A6V8tb_>hnI2ZjaA&6<0%ja`<=+>XEuW`O!sD?sKMYdv&?LF)AH-x&q4^~9 zw$b3(XpZ)qRS=Ve`)2fUlomg8brBvOk>A`H%6zyIhPRQLQ$J5BmgooO@FqRuKp@{1 z0gOR-tTZi(d0Xf_s#Mgii}BZF-NYQjcsokxjQOo?Ty|2Hd_%)~rP1IIrE_OT0HA$L zibLv82DN@aLLS%Y`#V&N?2k32*e8IB#|;91X?#NSBLmvg->{_0`K?d|KFsEU4+VVn z7YPwEiy949a8uOgX~GNGTlYUcJ}to%Z5%pR3_T!`nJm_!sq_lolI`} zmc!y=s%7HxuK4kjVs!@ht~~>%?w=iemxSUwq2DDHzda@z@8%0m2l`3RyxrW)q%Az8 zhq{v&si;iQ*%RYqnab3@DJx6+rIgkAKI4UXy&X`w(N^Q-21Df5Tkp6b{}~-W{pe=9 zL9+l_rO%dRnV1+DI!}f(hA!j@R-)z_IcJk3E`$qLdyB+Fes*$Vx(1m>bjNNydg7)NSWrI+ zs~c_@XfO{=5BSfgYc&Q+?4<10pF~PIqZ?~$EpedOvzuR1K@t^8C}C2_azNrFCqW3u z>e~+u2)fAFsVRZ$!A}c_cEi*7q6uOA1M8-zHf;MQI9B7UORWHZIXgwg{mb5X2uI(S z!R`sZ^myw0@#F%qw!R7-aXUf-&arf51nzG%_bUB6&H>Hn4!tKlUJG3?z%ysnMw3Ga zVGg&~SyIkpAb+pse+82vjNxf^SQKwNM@t4#kYSzvTW4#2hMRFJfZl* zQ;Q`t>S!x!G!~Qgx1|z(jH1NW8>}2H_qid_t|+r|Wh7iZpS7OTmAgv6=Z7hZlJV9< zx%qI(#^th^>i2DCb|IHS{G~JE1VK!E7l-75ME~^o$oJx--^{|=>uSvV zb${1`K9s3k=w)<4SWAxE)S~5!4Oo@B=a)0I@PHNggqkOS- z5s>)Pr0@lY+w=n^+DY~C*Lw`*0uhs+2%=EkWop?fsR&VO3D~)iq>h>J{z3eeO-f?A zEv?~Z>z|bA5b;f~3G$4vI}knWCK5Sgb#GTAP;2);jbrF&aZd;Ao$5 z_>=^$302SS&vO%ACG+i~_+w$^>PQ-vGztII)u`36eAiP520vWZ$AnFPCU_$F-5}cn z4R7~&@8;Ur(~VS)2Nre=dJ{>OJ%8io_~LwQa+xSPMd}vc0woA?tT-|?LtoR^74E$o z6DasPj!e;U;vS-9Xdn^;_{pfrN(pBK-XHR!AYpnKJa}fR4_3U5RH9nx%=reptZ9sv z7C++*l{r_b$>~;zyXUYVSLh-l!_)LGzR;S~yM~$1)CpG@r+z6g{PLb(n*yOezq=FP z$R}<@?vXfmPnr_LZ4>1WImm{=+Il6bh8RnW6^j2Xhq;2pT23UD2oC^qc(z(imLsj| zVCl?ud%XQZ$2I*_XC>5ZHPTuDcSm1jMes>JtE1*!Jo@vw&vg+s+hJ$z@LU{)yvuFE zCk_RYiy7%Cc3^Wb&eZGbpQ(|^ub@NrJ-gK!y8RuCnf<+Q-l_XB-@;JOVEnJH%FB!mZYVx@n2#{1u*4fTc3*x1;&cdj3eq8o_ID$BE29G24%45Iv8 zDF5f!DOMtmRgTnkZ?;d`opPo*v&!}%IObdc!o-Whpy*9DI0qWALdi zKO$;oD3#xrZSERoyjv@}@>_>>@h z?E9O?h^EM8H(2`D*t5<(nsw%k??dcRAw;g}a6Q&HD(x+vq4=X_0SynIAmdV#jcmgI z(uGcnmFsktOC1MSr|a#6<-XWzeAVE~4O4ozhb59kZP7Z1@a?tMy1Y6@TUAxwuzxHO zT=1y8T?{Cm9!@`^RV6STCoX)EOt$3bSm)vQ@R@sjBFM;QV?$~2!%0b*lfwrRhC9Ah zVwgU8qMfcX`7J19#px%)nA&(AhREe)VPvZGN0N#5&HRLQ zAAZ%Sh;iQYKn-8@`I)KOe<5Z}PZtCI`^BPju`B(hDkvo-$o5=)NBy*OQL3hlZSIG+ zT&vf&)ux`Fu9dz%)({MArZch=P~EGtRd`R6L`AJP!#%1=3mkxOYe`#mo7YD1Ex_Ut z@M@aYZqT!*p)Xit^P5z4w>FSqLXBd+GwS${vo`JRy3mUXYI@q?>EZENU_fVK`xTg< z@-*_U{!It1!TwCXsU1Y^|8=N~7xo`j#QrgrS)3?9uXF3`WKU!$LczpK#OF7PJM+%2 z&_&cWGz$u=^*TJl(Csk^gNFuI(3gm>l;c^OC>rOG&0F- zX&6mG-RRI}j#U1kTDALdpP`=$7(#x`M^$D;=W~^)qrT&sa>^Gmh9)( zkc;U&wKcdugW*eKho()&0i*lM*8~^XyPIkYv3_qui)uv|RLjl_KRx2XDu}uu= zW2HY}4{B-7Pq*W^U17+i2z98nAZ#=V@OZsghEiE!v)J({=#_kBf5PN-hc-few2$h> zXV%)MMuPQdBjSnBd#)Qr15~kpj=l!?Ym;ex4xMWKEd7QNXEQ1s`w)Se;eZX-G9Lnq zAAz#6Pj2utEX|1YkFfBSpmg$zftU!+%E`9e9$xq$OYJmb5?daEvIQeZS$6jYoBcALX6sq7X9r?qkW=t&}{UaSCA0s@Kw`hgl$liVWc%~v<7JCdr3kEd7=wrB zWM|p@Q+L7Gf$gKOxfe z7KaCA&@fJfjrYHth=sxaNWhRRzz;&H9S%o_uIm^RDYCX;Iu;ZUJ&~LTh6AEDl^XHp zcktv@DpTvTquH5sG@DbmZ)IX%c2J44l2<&NJMBIlfpxq9z!J4DC>r0 z+_hgEtZA%1OsReI9haQh&lK<(M<7a!0W0-sT9{-`0Jl}A({nKl5_4%~c?NirJ=4qB zE}7%{tdRMc2yi`Hq>*GxyUAYDG0Wue8)`}6Jl$BDcm3>pbs7P25JGApIQkA-kip&XJO@-~&Ue{nO7DuX}5q`}xR+%WUG0%l%z*XUi>R zbw`mN*AqTwGe?~#KwLt}sCK=(*34Vh$N68*^Zu@>%CDmfy9I9plK+RMw+xD_ZMwDx zcX!v|PH=|_5G1&}y9aj-F2UU)!QCymYj6t|+yjHod~@B;`%&`)s&>I zq9v#2O91%V(mslXC{@)|Ro8ly?9=L(uA|AjK#fC;_y0tPd7HYz3If=H%KE}b74Ke; zuIBr?-;FCnyHB}ug*#K?0gxohK8T!*kjIGPlul1e0RHp;(uQ|x7D=d;8{7a#H!!DcjP>MZ#XI=#Gfm_MR%T7j2P;{HR%R?O$QRQ* z!^iP+uF3{IUys5;<2hR;LASQiox1I*h_s7(!S2$g#8Rb_2ryGHU zxyX2)Z|4R2I}%=I|LGKbF0hjCEzSF5arq8@ItC73zQb*{ZHVN+Wb}IXG~xmXjr;=- z-eA_6@a!yqj%pkf4*fc>HuJ0L8!f4fSCY9lx##Hj+d0y~I^Rcidj|Em)>S(I!=id26v3Ug2%@W#Md8-zG z^@paR!)p(hE~~js2h8i8hmAmQW#fh)B_@v*Y=++_=jQ%B)CTT1LNAR3>!dcySE`>4 z%kN?rP9?69tzwCqOEi-M($p>Z%#;4UIz-p%1WDsHs!L)EGA!;I`?Bcm;eLxwd+BPrrTHNzT}cv%9nfd>H5~LeiRnaxCAC18E((`KLQEL8O_lea zHitcMN+^kwZxAvw$#T3!F=Gt+WG+~S?Ih2o=&Z}iNu#>vVgBcjAl2D?2Gi)1(4Jk{ zYn@~7DA29!r+qo^>O3~HC-E3t&w{lI5IvOVP@O1sNi6>p_qPq)L)P+i3y`#xHYe; zr(aWjhbATl9$C^DZx(ZSYp?5vXWz~6-&fkOBP8u4k(tvTslVv7-G<1Xw^cyj zYv>w3HL>A==2KP}1A|O7T@;>SxiP7^_mEWC+L8G${C(@UvwUb?J%obxGyGV`!+&4c zLSR+(Qz&}3Rewo~lr-T9Dii}eB5bqyMTke{%}k_&-rVV$-&frKSpQ3h=e8>kqvjg5 zTr7r>FV|#|$H@|3QZ&ob$*OGSi8`E$mZ2j^nXp_u{YbCyTV*@{zZF7_e|i+ZrJv=u zYbW0IiHR9SMvk<4raoTm(8?u}J8!h!=R+$1Bd;Un>5C+lypQjb4$g=na5MgoS376* z4QH)341BZWbDTZ5f9ITcTK=A-SW7zEW{KKdErugKLNgQlaUxW#PBVud3yr}$=PvcN zxjy%`CIL1}xtC70&(8=Nm2=s`PG3Bhu5h**J33nG`Wm50m!#1S+*U^P~%g{RQ($O(DSr4B+|Bds!9P*^)`Pz#ad-x zfGKu2ukw~Qbs-eT*}E@m9kkbJa=p=Lhu-|Zaw7&8!>E~5ajsBjd)Wc-C(L)bnM|?$ zN+PI>H~qhIBnCGjyG3^WQfWB4h!0kh!GheN-0DDBjS0_6DwzmgzoG^%+awJ+e9*L0 zD5%>Nw-DzZjWNh`c#29*;lbP7)q&BAkbv6#$tSbQUHu?Wkz@Dm4$VdUZT?^R@e$Bl z-)+w5yujGlc=zVkC8#o34?{<>uG{P&Ztl^`tM9J5upgoV;koK_g-Xxf#(p>eLPOt~ zkVnRnyDnh>;4hp(d!8pa(q_=(C^L<%>!qu8ifX&r`4XC%lq8M=AUGuVXTAOZYG*A6 zHPI_btuS->T{imckEV5zX=wc}ce*Et%O8XU0;q%B-L%qG&HYz<#m>XxO6jwwbH*rd zJ1>JXsrvx{ufFG(v}PirbiE*0nDDn>d zcVt9)y$&;EfQG9HXqR7s$jBpKeXYlH3Qgiw&D$V1ukBx;K=~coJ_^XmaCN`NN};Nn zaVGmXzh!@tlO^$WE8eDx`}f;az484Toml=@d%d62>_}!|tUW~FA2My4Pz_BP*Qh_sr1zS9jSUgY1#CuP2Km}~! zJ$vhwFs74(BSWVl9Lr(NDmkb)Q}$>2xgZz4XN9%Q0>4M~xeOH7=HR8Muri5!A^QWwa%8B=F`hu;t^t9>oki|7W4|Ps=OI%?oAyWqnk< z2@K>fihZCNf&F_b9n}jpS=YYVmE06fLL7Y@4_tSJ#tMO5uuD9<)^{|MCw?m*OdR-FO(+!51vyQpDzlSC_;r!XMA+G6vS)WY1FBcOf}DeIJHJ8WdDLPPs#zJ(0BX7|@}&o? zK;^1z;lM9;b|aqG5M6(N2OS%KDJeB8EehHwv%kxkR3IB`p3~!kpqt+7?%t{{@Lz-e z`31L{%I@m2mYR+Zbbw!%h)IAr4;LMeNSjlZnD@kY4~|@sYjVxAly5=qJ*5}`FUQ>u zpVJS}ZP@L>`zroj-8ng4y?6UAvKkD=L$!&_8c;t{YUS)5K-<^X)AtjU0o7V1%1op3 z4$^Vwq5YE0!wT&S|5r3EoGw<@4=yVsuG|9C%qT#uxByGhilfB5RP1$yZ3+g~co6%AIaYG`P$_P9Jqs`K{~0^|i= zdX`q!1E~AU4tsK)eUGk0Ku)@l@%H}Kiy^Ao!XRxIo#TS`)t&&*oH9ecj%L6Pk_*Kl zDqm`4hNhNxTU(D8WSam3uZmFx27o$5=MVZlC&+qy2ra3~ue;rb(B>@t{0iQFQ4j^3 zwCNEUY8q+Ea-f}gO|=s!?x$;OqhX)P7yu1yrHIzuBM!>O2{>66N@UZ_u~70 z)mf=OsONbcu6tJ>4$z!wWVpb^9VE`;xzb7G3{~P*((AwEiFrdSDi}!}gYzZGvrGP% zzQ!{`cAs%7iD~KOKFF~D^>SI+V5jpu80`Dz6Qri*YxE9P!ScLE(%%F9WHYKRC7V%d z34B#-zP&B1`?Xk^;IIC4-={Ah8_)=}6e3SJo6GSWeCc{>B7eApL_cim(d zfLshSPtPs>rh_174@g&1waoEv#}3eOhkoy`9_kc3txJ&Y^~JkC0{#4dMr_!`u3seH zN10$m!Kq#rv2IeuM*7*ACIHrd=WrMjJCMX++g)C?^EXBLa#rT z<0dR1u8xHIVq3SIrM}w5X{Y}v9cnwfd;0|TQS<$@TsFb}3PM0Yn8%8RN_=jYy1jQd zS4PxUPxH`ye0#&4XsXP#eph3Vpcx`CQ-23BK-fUP;C&*PT*S4grmgN^+>CpRG?s<& zOV7zrd%rs<|C^Vi!Rr&<@s5wjEXsdJ8mQjr+14U@cj>~>{qRU~Y^+2jvm0A&Z=&*f$slv34;gkHs`)ih(6S+=i80Csv0mn1;ph&@!y;D~B7Nt~RL5sFMYMLCqqma$AU(KK{ivNC$Kx10R^}E= z*R~(@-<0@^XlPlis?}jhg+X=>kx`Rf5>`Cf*isJcsuiLZ!l^WWHHpLSTCYLC&d196 zRtgc)EaZG0zGGoyR>vg2kYu(XX|*>^?L)k#O*UBna5gZHjoRq5bkjego!3~r$WR%?r=W)|)W z`c`0uZ3v4j{9fI>e=7Cn5Cb&{-DeOI8R#>mes)-?S71;i(CxzpwAWE`{?B0zEVT)LWgNtToAJ(m;crK~IyBxUBUb6l5yeX-r_ zIjTp8Vzaxt`kHG3`4<*fmoIJ+D3)Sto?!kc~J3jC0(1L59kxFdwZ9H5;2=vBU zIg_QMt*xi6jRF8#ug=c6^ne|`y~^tiZ#5Z~1iZnW2$3TIRTBw4K+OTgSV6$s6;x!@ z(bCc}ROdGv{Eb8ODHx+#xXr~t!s?6-u-51lF0tlyF}^pX?CF_``SJQxbcax)(`{18 z`tgT$iAHfuY6ZW*rOY+&7zpvzYw_`&BSdF{yE>VWTu?M9qMozAVq zypt~|TX2DI&Xqt%%Lp`P614vcF`2tfWCUM!|In0j`|NV;#@y?hY20{omYNfWt`%3; zd3CZQmTMAtI?%?B6?lHmf-D-8GC3E#OBLMNQ1&(XP?!@^0-coJ>g${71NRWeCi)`ty1s=?*GosdJS2gd<{M-bO00R%yd4v!!#^z z_l~S{cgW_+0DJa%3;l0$O@iNl`I`ja?D%kNs}#6T$VqHVOf(s|Y_@uNc2&MU7lK`n z-uow6S?ndCODQ?tpDNpH10LpQDNc7_{{9W?dHY_K(*`#qH1^unjdi`_=>w`$=9GXG z*9WkV`B>2Z%%XyT`yW-B&Wc~P#l98>U#PrKQOKa<@ps5R8qyK%x0<{SA%XW?URQNy zpewevz!P9**>w%s3bTiLoFDd!Y1I-SBo)Zb?x9{*w#7fKnL}m)@UzLtj0KQ_T~5xm z{#J>vP5I#GL?5xnf6a&N0W0wjSp0yb}FHNi}{d; zmvE5wM~PV{gkyLB;JugP#bM}P1y0h}>HTmoB9+X!>h8tQ zmHWh(ZZ&imEPrx z0Gf~XXf^yCi>8?t9Wy={4$p)iCvE0DyfZ;*>6_lN`nwJBLWE7x^|Q)U=P`pp zEeEhz?34xO6b($${B`@A$c?z;>d@C&!HhIfFJ2Y#pL*h2I^m3$VQW5xM9Vzv&I`} z?e^*-QEm=s=)4g`W&ym|O^iLdrUD29s1)yZ9`Z_ron{gYz#n=6(vqEkoLm0Gd0Jot zhdH`qbcobBz?_#fj8+eJ8VfVJsOBgOh?8DnF%A_1y}Uf5%%r?kuy9^EsaI=jUI`mx zm}DDPldoW$i`x2($UDRIs@eR1ZPk%tknzNY*@pA8#H=&U2sqGwLM0_HuyP=PlCt=u z7TBstxZvchS{GXRs7uw60#Ce2?h?rZYhxyY8AqAc(YOy_{ERbt+Ljv1(GDe(Q0F3x z)pqji$?4xo3scXd9;ahiiI9Iy_H%&e}A>&mdiIyh4YYKVV$vuam%vbt)wlx zN3ijk#LWT@f&B+ia8M;kU1_BJNFQl5f>8oG%=_{(=^SUuy5rE zn6Plxv#_z8US2x8IG_wo$JAL2x^8B)w>$ZY1kEFTxx5}1|94Ln{BJg|#X+aP#p^*4 z&e~#WR6xKfz+)f@S{AMLw$dIKT>$9uU%G)`!+ta_h^n5L%5!NL8nUDvwjd()D+^g~?tFAj4x z`p=GTpGkPVJA2~*t~UcaCcBWKo}M@8r5xX!Fm&-Hp8Fv_C2zYA_rVl5PxI9l*H^XP zkbO+kXbCnPvB#Ua*tn^#F5&&%pWWV0eXm5jGeSZOYtWVR@6Bg9FFQL|CU5`z^BWOU z|5sK43j-nOfDTAxU?2_5037GV>lOwtc=Oe!$8+oqrv3f@;SATp6B|m7dNMdE!&JZZ zQ*+@xSfv1f(cUA3TfuN?M=5^%qtpr1nHV0N%jkb8aE5nlRY0JXmGW3u__eUIUdK~g zeW1fpp!cD>_r``0yC1~60CZtA{rM8ko z{CIy;T>J#Lez^vX^9uof-`8UmVFQE2c5(zjx#rAaXt+|srU$g!^=}0Nb%DLz9h-AX zK^0-$mctja+1}f~kKsrF0P&)jkwu2g@Lg9FR^WpJCuG0>(OH*qBx`c6(0g5rXvfds z3%r1uo7IC{-(%7o_y!3|z@9@>_L6VUj}r5B_V$_Hi^+GgRXE8mM(@=9Vv0>l@S{Y| zSL-V)oi9cmf?Bo$?cCY3D=SX*^|m{AvkSf5&{S5SDE|0Ut%6h~KZ87Dl`r5V81fzm zmHn3fD%bU){xu0&Mxg3qPnQ^AJ3H~89RFAY=7Y_L3Yg0p6?GlQL{RzhNT()_g@w@2 zZ3Ze!nwqXQ1{IrrD}!d53j4h7BJ;svXvQNe2)sL+gZw(3{Zf|Fny^a4=d#@c;U z9o+sR(7*F<|31*j2wH)p9+WThO*y}xOrvq071Gx=&-S|x-OrJ4^=UDCF35?CKV?dH zRr+sE>cE)pX{}4D+K{iWW_OVIF-m?wn zZ2hSu zO+O2xJ({8nCMggBny6{&`m88lj#m#nqG2FpROX5oVHCQoM6c&Y*ojOlSx_Y6SyGeo z1;%xh{|oqiuwT5$^C)3u8;6a5KX&xFMNp=u<83)w_b~w|)W9i0&WL)bu-{0p%`aY5 zfF)_&YtW;Y!7I?z@(r6e>!`qLkIF0b3}4~*=Y}GAwqxqwSa6|7Bs~Jk@h8zg5-(Vy z)M>A%6tLqDXV(wI$ zq1g0?824JS6&#@XcDZEShg2ug+Y*b%10C&}RxRe4jUbPBU@vIlGO&S7D zbSXVOEgp%A6fJczZ7CE@vv(mMQ9>pq|4g4~e)mtE=tpay0agNy1#&F{1q*j{v*&PP zdlRPFMV91jow8X{lPm^^`MIJ%#Lko~zBgPVg`(_8k83qyxG#R47^cAy4wS#E!p2l? zc_%%}W=(Aoy(Y4gQoOTcYAs6aX>43ExIHluin?C^4v10 z0U9DbsHP<=#%94|Xhw$=0f;5HW&@0{)$rX`jLC39F>utd%UaY!BuCrCMQ(IU*$}w7 zIHrn|#Y~Cjaz)r8^4%{(*L68rvF&rR(jU?+B&c~)JqBpM&2@5+V36K@HAj>K$F#@- zF$Uxn#@iePe?M+HlA>p2OPgDp*=LU@)09v{Cv%%I47K^v(lR~U-$iCKEl5^D5wMzj z94%#;gW`(q(tbW1C>;ipa8_E|@FUj8!Yb$~DPhRJy1crY7Bbdy3TE{7^o;-ewoncA zG{_)<9pKSLW`S`W`A#r-(^IFQm-6@{9KuAcs!18A7LaEDqj~*@nk)zvZD+r z0^yvlE&tBW!rY1enXsu~skWDR&gP`qe+Rw&@MY^-7W`4u)6`W#2|z`SJ!Aan<*c|b z%J3gzkWr_rF4Ea{W9z?rw~95MGG-#-x>TM@>VU>+qW-#XAcv^(e|j5kZ(PLe9V!5R z0GE@ct?to_8yOHEqx_G5+K5o)T90+zoM}RIl)wZQCgj8Y+++K0kChlOH6+Mwe9&Ow zchBZG(#;3TTxXfLt^Od8X2#-AbrWyz&0p536KTuKL^_)0S3Uc>RhRR>W>-po_PoVL z#o)%;>YfRE)x6(G&(Lg&fmqyvc2f@R%(_gn4tc|#r zi%!$K4Po%w)^1@1#)@P%3?Z6x;dRM@B(4dDpQ!hQ=E)8_sBMM6LV^r4a=I7 zjX@Ig$#(q8P|9JBHZPk_$Gke0oB$bKcwWDe7}7DQ$^8@)1K*=+ZY6WLfSEM59*bzB znJQyq)gKTuuKKnvHgTNO5+SZR?YNzuh6|S0!=oeQP$+g^fm;3%n+R38&#xSZ&OVd- zayNw$uY{@3FL>w;Sw#M5k(H%IG_8eV2aD1zhVW9X?1>`NMXCtGl96}P_68~L_}Q)e z(x5*D*HRXP^AZ0!0*dZ%Xq{?9dB0dd@leel=^3)LZu>Q#lJ7leGuo}FX?aF@KlH`V zb4O0*GXyRLM??doMpC98NnHfxF0$lk-T5$tk;AAZBY!~q;0kg@#VZPwvGip{f^iLI zh~=tw?CY4y#H7+haA_1|(a{Rs1^YL2XscYGk4*tEprXax8jtj}%{?d? zHEpF&j|J#D8bUs_FtF0*z7rXC8tQ;hCx$nt(6 z-M|BE$fI%B)GEGhImUkwbt;!f|J)G3vQ9!n2G%g#!Dor1aX+N9rGOQ(mnJ@vS|_A^ zZlOyt-xWSGxO0slntqu_Dt`k*QJoeXw@ z9*)MC+nB5CoEIMif@qP|U21);W^y_0Ytc|+5&JcXtzTZ;1qAx4`DT|>zIek)8t;6b zd~P{eoT`_&4x8HC&<}bkz0Ru>4YHyL6RN;@*a@^`Tcx%o}{s zZInNRW|8yX>03ylvU@BbT0DWSU;XJi*w@&}7Yw3Ydl}rYHSBe_+s<^(4{YhZ#_GSX zC|+vdGY^=woJ{)(n0H4UhWq@VaSqmMW_@JkV!4oEkZ7V9sbt0)`r0=5|ba7)t4Rbt}H3@pcDhgJW-7 zvH!yKiCdA-^*JVcNY7TjtN7@!LUs0=5M_%Wu`f~32M!}=T@71Zjp(y4fGcrMOI^#z z-Mlhc>f=5+p^hejjwZ(Y+u--bL81FEexzi=P5wksMcahy56TbC<+4$zgB4n3Ch{!% zoV6S`ly!BL`T4M0riocul4?UpL(^8Y@W{-}4}Nx!bnAF<_5~chgDhYC1p1-B^4vvq zdwpVgd}GvA1Ean2kcfb9I&YcFW5ty>NiGG;@F`%SSxAb2=23z8PpyyO5!tyu9E;Xva05 zHkP7M9kwps3=eJm^A~I+gNjrFLWnCHKkMUEeje&C822Q1hrd#f%5KGMStKNPqZFk? z#O07D*EpmV>QmoAo@6lNx-h;c_c(ye+01=oo93RDGWqN_KZHOZkvAU%$5;Bas}}ln z;$H`bAF`0s0XFVNp1C554Sx5jQ`v~E#c2tB4;Xr2U*1U_d7aEiHUt`OAQOj%1SU+? z!ob9=CpQk@;H;VE@uL>9>Ug=)tV?}j%Fu~l$(X)EhMh0svnNWNOGhrX3MaO-NuiNZ zicJ@po~=~?D;FejTMhv1puAIUM0ew5!~`*an-Ozu3p=VCXiqo1(Tbs#zdBXeG&&$~ zqYY`2pI8;0-pFW;)KwP`2Znni+TWS{KM&ZCahuOKgxVSYv_l_C8(-ty-(CoW0+k<6&2z_+oEmm0c zkL?N~sObYXnYvVA{^PHttgO~v8t7iWQTs$0E%azqd|KY7$`1$-=_6DjLe)8MKuqG< znJ6jG+YGg^khnouv=ZBNdEk5y9^3HrBDJIcLwNCGCx z*k2|h&g@oLf5DsBoeUVx+TV=uGyqvnR#)mTqz~k*uv}q$!gSbhQZz6GOzJ^?6U36# z@dj0TCSpw=$*8NN9qYI7*9#AA$0qi-?yu7!J?8hl>9@AF0wg_^ zhicp3!HG^}8yos9E9vR2yw)7ZVQJiZWc3mPIZ!J0@sSXa#b@JYG<0Yr!td$nd3a2; zvaFoL^^1@~&IB#^Tz;to);fY7?51VhZX0AaA^SGoN_ih! zJMHFvj;s7f0rgftfYBI#XB=NkEZ*;LuvI-owtjQz47fYo7z7y!?g`ZM71mw+9|{Y! z_>k=hE0Dmzs~KkSjLig=$Al*s7mk=tp3s)>ANwfYdgk(1Cic*BuvssSB5v|p``Z&w zgrd8`B-E|8#Hd+iK3KL=5h$WlpVQ>(2Ep^&*aY>w69PU?=Lt<}9{l8$_!fg(j*4bu z^7V9-s9^nOusLq`HHiF{2mKyP91_Dlv%yRV{Z1gHevYJkhO@un`G{zgQL6+9cP0RN znF}wRUtSS5)gd((am@2CR!8Pv!XS~A9G#I)8x)UOo#y?j4fkALyc)k(BKk|@Tbd&KQ4wNKMzw#zeG5yEd`z*kYl z#K^`zAO}(bs)fob+ZgFOGC&)q3JD>+@#<)T=I7IqB8rQgl7iH1##94*g`4y#O0P6Q}%jX+%^ zMmRywCeBK+phKjVe^SH@RkD?i`T7%EjkUJ*yJAeGXAO-_JF^75u0lMH)U!RFZUV*g zaZjP%XXv#asLbp_5_T3Czy^(i|-><`sqYYYI^ zqrTz)&jOg6jEP@-C{bYEM2zqj+-nXDyEsT!8} zs*r!;lPgb;m(?O`p$^2e&>FTb{+M5DDBzc7p~e<5`8h5!pJ-}oUQM8i26F%BYIGM~j|Nn5KSOaRXY2aBVYg)+fKmaLYuJ?iH&z%MDI@}KVs^J>@g zFtkuPx4EIcvfFNTB~K;W_jQ!-w9mNwVaF-=aPzpOy3=kIFX{bmams~>wLYi+=Iu%D z(utkbSg!!D%;i5$1bUh&Z*M>DL91iqtk-v+Ex%35dAtsIC?DJXWOg@dcwj8PV~c|J`Ww>E#BD;VH@Kt*m_S_nSH%UPb~~O zFg1~XPi6c+>(e!D@#Y2xZ&#Qof>g3X`31iV5O4#7%3U!IX6cKyuprC>WSpt!NqxK? zz0I!g_?FQh-R})KoJi9v@$SVwHVim*0B!f4jvVuf1wvaCbd0d0v# zc_>|O_W3ljeT#oX(+2GELE&Sc{?~_AG83PQgPY=BvK=V6wuoblaGMl#H^n`(`coZ( z9buD`5qvGuy`ygwymDaxd2y%|hQkn_G+LPpUZSkl|qg&a~QRk`(jujmCXIC(Q zO&XGttO7K;t*D(@twGpMC6Twpa7E5*sXVY$g#{%ajhlY#Xrp!AUUq_ef<|X zhTOAGKqmq_*!f8>Vo27w`6Mdh$UQC2l|)(%8A}RCxq6}_8bW9hC&+7p{B989q}0|L z8uvEpJcWULD{UTA78cDtVQm&bN7iuV*z5N=+C4CDc>WLSymaumbMDn82=UoQ{Uz#Gs-3@^^uJ}P3Px3(EN6QeY zj;8tkSk%alFV3b+;H5iQg(pIxJCUqsoZaMY~TYQy2$ZZD5oB& zU>7IkI~etj*FhNfNU-ZE?V2d3z|4b~6@$Tq@S~L-ep<_NFKtA2W9TG?gEmnkm+8~^ z%04n6UHivA9V6rDxx`(5`X7+`u$X*OULJ@bB+iGcC3sz=k|` zQvl}em58Y9r9iv#biub!3z>4E^+nfkF8_hqBrGrY@!e%Fir;O*Yl-)`)X51jv=-6W zHEx;Rs4UNI4X*6e>a)CP3HFUTUyDj#Rhbjy?||xq7jM5qvIkb$!%gVQUtb2f;DNPa zk`6$G>C>;m=rVA{!$0wpyc0kD5S8NlpnyM-y-)v zuVO{uBOxInuZOqyadG%7bhodBX*1P-J@UWG)!vQ<5_Wfb%gYZ?7}<>2%d3sbb|dg& zEk(nv+dFf#UwBrMUDuTo0BxMtHaA-&FDWQaDJo2bQ>T9cQ3|hp9FEh`S|uPLz+1RY zY&#g+RPoVIM`*yttsnl+Nlsep+}YFEBiQN$xfKv-2MqXnRQJ71JOgfKOdS0@JkH5- z4ce|G#Jd~+{hcDa_I18Kopt;_5Bf*`Se0nA0MuD_?Bvu!3Jgn=nqbh>XF?N_SP0%L z0_{JMh4+aILH7P(+(OvLN+}+bjFWan#a(X=Z~x6r753dW`;j&+R_w;24*Jw9v?V*C z;vYTxQJfIa6U%k9MndK68##l5=CYvGexC0Pl!=2}EYTq~;3lL98zf%owG%=eDS?+< z>aA_@)X+c>ZVR26)9Ce7u(ve{Bh*N23Cwdc40BH3H5hTd5a9oJYzChl`&{$%)pEO1 zRY)8q?fd441+|~jkNztWTZPD+Q!`)3?IiKiop?F3uQ0+Wn}OOU-3|^@S<{@!>f>y|7{AVLr`yr zdTbGqNtKi~3@GUFl6(`ypF?*84fe0-6?H-Qyv;E9zYu2 zI4U>*n0&TCL5{!`=K`x&&5uZ@_9N$|lWht{QR`x&>6E46iqJ@X9WMVCjgI4gO@46t z30MvYji+&|mX-t{$Ww}Z#Ta`is_B)*=Cg$dTAy>VgIzP`%{7y^_nf+=+e8yy=VdZ2 z%kp9904Xpr!`~Eqt5hY~T{#ar9b?zrKCd&AVd1=wvaH@;2G?k${O)(?ZER%Ak#fb? z`N!l;pJF|A8?|;lVuIP>Q}IU*AkkaYI!c^BF^rptZA3h&YXA!?O9Wha{sMysm&`kv znsh;j&C5#zx2|nI#-_8xQiWo7MR*!l^V1Lpm`a(Ln=0-gA{{`C-z;Fq2g{{5BrS`` zAOmG>6j&wH@Tl^PFxHq-(flO10+?zm>`kiX`~!)D%+jF*jcJxsKM%C!9<}m6b zthV-6=dA|6<;mlt!ljBiq2nG!#i>a}g-H!&{|!co*YZ5YK+vYiLvSIV$Bwc6uap)1%;&+;sX11GBAX2b?45;_ z2neB*U!-|>=t=vW!G*z4R~=W7@Q}a4XU`d`w-chFFIrk+VVY1EL)~6ba6%CUZHY_) zyuTzBJlFA<_@M;9S9lxRBr&01@Mqm=5x~3)5hn?i|Cl zd8$?#uJN3Hz{n*02hGCR+ARyOsQrsP5C5j}P}J-aX~|!eA^8L(B_2MpL_QKWq`}XQ zf>-eFA7;6~PaK#iaSvnQ#E_)0O~$`lk^7Dewytf`iZu<(xa(O>{-C>*IG34yx;eA zq*TPwKk*e2A?lcBYN)kS_|z;%bV6aR-O>Oac;o@p^tCmdRCAyZRa)za1p~j*p*@OP zF|Y5PkLqLepC2NwMmfC`lw*7Bs~twe!sYmioPa6&&{{k!o{}aI~$%Y*pk)Owu z@Xw)~^rpgE@bD~5+@&s!8pZlE8ZEb*Eo-JKYH~I)J`1q+BTgiPX3ejVy3wieobfqz}?;5*COaK053``o2$v%1}Yb@)&Gzj?%Ua^tE*FD zIH*sXX8s@0oL%9IHoKq?`s(ep+h#U^R~LBAo{(AzCuw5hVz8;kW2kMcW@sqv^m6ez zVTr2edJHMYV_Sox=j05Hvuh*w;PLUXOx^dVW>rs#J$TSVG(<~JPt58}Z)noV+Z*%? z?iCFc4Gk^s{vIvrz2(0T;y;n1BxBxMCX@PgKgX%Q14dz+^S%Rzc1jT&ucOOVrPo^v zkx^d%|M!_)o8(j(S1QfVj=x0D^tkxv?)Wn-8_s$~U(sjKMHrk+QhYW?yE7M3CpA4_mRwZjpr73`k+3YH@f!yu=k{~+4iLwOLREfa!at9 zLoGH24p*sY{_D`3&mKnlm}v<^ z$9x9A$BTnMjAI8!f2@_?QB@&J0YX!UYziO76xM72Z$i#@L?tM?0wffL_U&XH*+cVO zsp^ZPZ0NS_5p<&pvrhOr;(4fUEm3LBMpXMG4FXn(M0vDhf;2l?Z_`1um5pH|7i4B{ zNj}waCNw+R2T7?Wn)xQ0>~E#q70qJrqb>!y4<~m%NvisAwB5=(KzJ!THP6oL_c zOo}s>TW~C7w_~+nZh&Av%5;LfxdWO|5I?lUsBLi(a-NaR=sSD~!ZDa!sdpOtM)cWA zp!Ah5<)V(1)v4R^J8w-W8BLRahQu#UXPS*xLhJSd3ayOc$`}$;+uF1hfIL4imCWM} z_WQXK2hLP%zBGc+%+7Vcx54FQEe1}i!Iw`>#R_GQBVL28p=-9MDKLqA1iMUDZ0Y8i zoLsez$|SV3>Kwx9Y5kb6W_iT`+F?#Z+NB?NKJhepc{xqQrm$=gD88id2xSoM~ud4FD zZG8j>xs2xK3YjU%OC!^xqac@{hlL1YMQbUx3byErtbv42n>S8R&+GeNgg2@#>t`)a zSv9jYCDC~hu(JoDs~x40LnSNxU9LdgpqKZ?sNPwj-CX!jx2N7_OV?sHg<>_mj~nL~ z4?+$!gF51OL@SA{)#k<(D*Jrn@tGyFo~SS~j-QU`Z7vtY@HM&Cgr=tqd$;%5`4LVc zzukNMY^QR%&}&N{AOlWr|NiudgIYiOP@XQuyiQYt0A@b#+q-DC(ZZOFb*3G^#Q7RC z=cx5^ISPKL1v&oKnKd7^^)Xp<;b1#v{s44r)#n~{Zr?ops)UeDV?zsHRcBC}@$Epj zankbH(tf#iM)tCiCkVOBTD^N4ao|hkLCX7#y%qZy@ph21R(R_Q2Iul)t{iHP>88Z8 zhN*rnAs{{>K{>n8)m8f@eK&ZB0u%t!W*r*3{cd`{&yKgF_q&>nWUnWtihKwgK5N9S z4120A8Ww=s^`*D$Hws@i5l&~x zi#|L2iC4GK2lNuAv`=?m0Mx%6I~aJCYVgQIsuk1RW$9F55>kJtIWYeI7+H&2Y7%+KV>)p`B>3(B%D%n5zlsR>S<+ zNY_yl#Di;rhNFH~k*9julU9z04Qrr1ew`*y^CKOJxN{L(a`&aECa|Uk6Hh9n=zDEZ zQ|!1Nr7#eX7LYk$N5xy_Y^|yvj}rzAgZ~ka){B`GRWK&c`0Plz7umK>IyWb&^J-zr;zBMo0o*X$fleJ zO!Z?h;jZ69-2YxCy~S@zvom9AA&_MK+;&cJTtTf~1ZjoRL}4p(@zVk()2P*;_zq3f zJSq($X4oenv06iMRksg3Em^Y0B#mV}47M^mwJbJt$|$WdDUFQ~#vj!Dz0k+7^@)5( z7kPaca{x>#VL}>jc^WW2EXomY#nn=5a+_WwPIS?{GaKBX^+zH>h50BC-VOrKgV^Jmg#o3%I{F(ttimaSdjCyIL6^bj-T0jMhU7!T4)57y-urjg zj>S@edAJvrqyURDL2SS0-t;BuvC`ZP>(BV)dnRTGsQR2ys<$jPgv5|98K!@Hvh#x^ zSy&Y%s^umdcL+TvhpV;DO{O}VO%8$r4NjNm0r?I#oyHy^Pw!9DS>F!B+6(3;OBjh` z&&+EW-t4&$1y!o92Y3^56(=eV$2ssqC=>93WGkxd8pn%ZEpFAtqI$f#<&P{e;14!}PzSw12*vg;HV_aC8O#VcU!8gIDSn^~d0EIvV$Ei1YarH|%oOeLU;GnHy#nUEUs95l# z1h9hGhV;sp!Jm>N^Gwpxjm%{7Mr$8pJpC1^ERgDjhY$czQDCLP#W9Ekx{QHH1^~FM zmV`S5?1TD&&_4^Sj|2s99U^ zxsPLHjw1*-Lxa{lN`Be%u~1>5rX=Zw=`r#5vAvWu^}3%O-@^JJ5fc!M$&P(6P(@7K zw>!|8cqtuKiB)S^tn>FCG!i{NdPOA$D_Rk4vDWAwR3L~%ik1f1Ccoh8w}v0}QmwF= zxg?pz4a^klhgj-7OG`efmc-`}z!>dyTK8pDFaBwWc|c1!hg?Di_YDIr0c=IT0*@yQ=c1mcY_n@Y)~ z%}&}FYLwbdHl08raA9Z@Os{!#Jv=|X7@MOQP_6rKPqG%lAppEbUm?z*p>0^DZ90df zSL4VtG=W3$1q4whf*B%=XnD>Z%ySn>3-H$E7dv9;;Z2jgwcz&uQ!a_8dkZQA22lm2`24p+N%HOHdkuZ%6ryyvY!}R2?zL z9ZTi+^4v6F8A)NoL>t7o{m5TQlU?x)q1UQVV-qxq5qge+OD7YYmHS`_R0SyNNm3X% zvXM-jS}cfPP)U%=4Ad>wP26P>Kt;R}PD-V|J?$MTXn@F$lzxX@%<)DHRNzP^0%=l> z9ul1PSKS0TsTf75?f4M_GN^`hex;C^0URY$L~d)*TwxOUziE+Dz;`Ji+wr~d{zv*e z>KB%=Lj-3kZ0l4?4LR(Y9FoK%DfT#59n7z2SDLuz?w#{C@)^veC3Er+1HfE;D5T7K zJ5te>Sc>GK-w=s<9B?iYfD>0Wb0C)!G*bU>!1bT9Ew!+yasnAA71LE+FvUT&CY?Vj zXuBkbG!#U3v`7e*nN+9FP}gAo1^k6B_!|{{zW8coIku*0d^?co?Jw5wMkmC zQJv=sIl0y3H0(Q!kZ5^O0}e=*nms|7vSl*@*U|rigBve_~wC{J%FL7h%w*GVM@&8aP_3^V&shl_PzJ-sD=W|$T!liL*bqv_)>2zFg+wMQ? zG!*2S6!hF~DAKgwe1Al}e0=Yb{powsUfaHviz?{)U@36N^3Hs1nQY*>@`OPp*W)+o z#_M4h(DQPQQ2>uY)qB|b?t5_NW%zt%xEXLsIHleU%Lva;6WV6?R8bt7CvRGb9DyBqs8PS{lDeWd zM7FcUcn4YDjw+>4BI0_`{9M#V;?!F-DM;wVy~O`etlk8j4CV>nq{j}nT7U#f5kt~< zl)zIQ)p#@*AMGjHd%z&aH(v-|K(G2{!3+P~>I-`Zx{es^utDX*8h3GlF@+vN9=7c) zADKH96n}`hqpQYda*m(v)Tzt(S~CvSE_^{c z)b}fHp{}r*3KK_$^s2#Mjl>I_r#925S*hnrF3}>$2D@UxQg2_O>D6=kPdK5EFq217 z(~9U53K?xEbBlv&hfV(Ge((Oo+Db(l1n5RZA|3Jdjg7-Od|jZEaVU{cC?dnxLjhv=0Q%8$!D#T*tQ0_PB(GcoauA8Q#)o!G%Dv* z>!THmQDzup`D`Y*)c&qcG(fEgii=Q&nqq-^=k*MiO*86|3hB z?r_|uaP{+K`)%{1AEtxGH&$8DqE>@&5liQ+n_?E8SuP4ZxnvyLA^hmjg%iBN3yLRo z(5M5-zC!I_AFhbTY2SA;98!Sr7(6RZL{zQ~P6DLJ_un}A4F#2Im4(T5>N{c-rE-WQ za!#HE-0=D6W{hU;E?A*hXlS75;v-!QGw9fQIA|p9@e|u&xQGNcAC(Zq&sp`KA!1%Z zlA;{<0d*{R^MyRZ^ELlgI$LNw2P-G%Lq3)Ve^or3rqeZz$hEZNXw5!^oBqi1zEyvc zAFkN1S*afT`Bye~WoV#Nt{Ps^z|Lm!DXSmX?VYSFX{J7T)?Ylye%uJ4AwELrq;622 z_G3!fSPzL|Gd#;PLn`n9EYS+oK9%dCHSEhU60I}gKCEK&TJ-wR6bg0V+_&@egQ*HE z_fr|+g=0-lx0dHZ)b&N}F0ud2VFm_vtUG`s;dB_{!YFGIGVQnexZ71^v{SXGY1m(t z#49GjUnXMG=Ex?#n-EZ9iHb8|K8Qyc8aBI$QRw6ioBp*j3AEXH78kQ=|3U5aVwMd= zO7e-1pdd3vs@Bp7-bq3OG2d8JXLGbIBAfm)|{jPOmH3FJfrz@hNnLN2`Ll-=s1pN&NYIfj{82q|eN@t84WDvwE zV04;oe^3}&mw~v2IP?#YR8>YF7tiEZ3il8)F#MIJQNn;^PJ)tT!>>&Ni_0M+utQt) z0-7X0r85u>QdAmhF59`#VHr*WBtCJM>jWp%B0N|8Ob1-=embhs!O#MvYa1uxk_s#<# zBzCRTc2m4|@>kC-##kiG*5{$4Ug0t7H1_V)O;|~Vgy15+=v1e{_$KM43?y_S1!iCp zFx4xIZqfTkeIG*;jX+bo-iO8qM4(G%BESi8n`;ybaRY`lvNzEH)3%U>V=I~lVM`*a z<9zNyTdzS@#9zM?X0ravL`D|@XONPcRIVdXw+a0OLOdl1-2)|_F!pnt!K7hJQHdrN z0N!X$G;`4yFwffmc>&4_zcC(o!gL3d@?grRkScRhj?f%BAQWJV9=U%SGDdoEUBK%K zn(9z>GH}&c(GoJa5vBYqY4W~>zgf1a!$D+up+_u149xAS&a1mq_u8`B zTwGcJt#G0itMA|801ln|-tj&EANvTreL0%uPB!peJ98*x(z_c8O8IzIkI!+QIGc^j z_8WDJcUa@N#<8n0L2 zH|xK9+&3tMtDO&54ESd|uOTSBM+wjX&xxqyJW;?xkgQ1ZFBFvSw{>E^vwxKC`+KTW z{4ZUc{uhP<_X7))Q|hQMw=SYA5@R$a4&YBfeN!5EKmz~>q*2N57#~ALmO+F6eEF6Y zOn4gd%rr?jE|yw$=M23L?BYK~T*9o}BsRRK*LK-{Y*eVMIEbi7oHu&cuM6>U2|n%> zc1-LT5sFXl_cs6I%3p=db;`omnZ37`#(%Mr!ymRW4s9d_82C-S7)S7(4Qb-;b11Wi z1g%)PKW-l_je%u?7tl>50#%x61+Gp9-+Cl(N6SVEBXA%QXl`>4WIrQWauKgp{V|9& zmyeVXf0B&(`wFtaY4RZJ&e?phYj$xVV!gU8p8(POJ#se`r#@`NslSy>#rT5%FpTY? znzsk$WA)Wl2ldfTc!(1^D&rxdVqE#K`Q-lQz4t5e>&~5dJ}rpDM${!~oX2dRj$PAO z)OXNV`OL~xG6Y&6As;}NA(Y8n@t1^b1RXpqzys@~E`|AA-p#Ia)2T(JDuV|Zm=gvd zj5B;QchmH&K9NvIZHGG%fAGY;1`0;>yNr=U3sTs@(&skX$PlGo6PKk`u`T~Dq^?EM zgPyMg$=_|c!KQ!V>|*aXLWBt|^vpUl9$hkFDMP3f>K?Yb7KN#~)~D^Nln69>rR)5+ zTtC$bPsWsPN096!!$Yign_5*55&=Ucs8rZnl#P9-gutTEgNlK=9#}q z`Uor6anSv#FmVVzXt_#W2YcRvmx&H0L@QC)3d#ENk8g#sghrlmyM4xx;QXffNxKWv7`QJYGpf{9HlvMYPXy2~C2i#<1UMubn>})4V~VJ4Vk7cyil{qzT>w-V4)OMiN?~WoD>$bf$efoV~r$4J(DUeTARA2k&IW>Y(a{4 z!DvnKc$z(jlI+BBR7}CV!#Jl!4kotpbsvO@655^Hiq?}U!vK0xEP_c7y-YmTb%#iU zV^RO9cH=5t*j%!6aE^(cF!fk_-*OOuB%jS&IymQZ*cr)qgw;Woe{N7{j$l2yErRQg zU)q!Nx?dV4&OHn=tsI2a#Q}&kQQZ9>Z3V5&M|7TAwh<@@s=IGy^&2viB^>PSUx(z^N&~lxq?RkOJ<#2pl z?R~y<@3=i8N7Z{c|Hxste7{@NdwzAFI9l`xz!_i ziQBZA_*>j!qqKX%;!Vs1%CrwwS+hegKL}V!l=~M;rVdnDEv5@}q6SitHIYlHV;-Cf z@#p>mb^R&7*qaNRj2?XlUcMX_$S6iA^$;M>({l_eTjqo~bI>B)SmyiE3~jYV%(Ho1 zm24DRHslPc?l45bTTaX~qjZ4cdIo=X+KVL0z8Yo@(BlRgXq&B+Y0Y+MB> zDh(l!${7=kNIJ++pWfIfj6^lS_#;LotPH}MC7j1<0m~lv4IQT3G5cj|l!KmT3g@! zWJzGPFnwf?x|U>#7kSz`z|xRa{fFq*t~UhrLhavJLy`7K-iqDx#=^+WEcU$-z2IfD zC0)#ZGc`|2J1q|OJ=jGI)wHegdj^$-QSh=9w~t!KfWeG|i%iv4*!ZlmAI9CUD@PN! zM2Z$_L82UGDhE$8P-y5&kI*n;p@S$g;yt)y(`mbt64#2#dWYmC&STb(m+Bw$u z3Q~`md-+!7mG45(%`ocp7E)+G?Xrm+6;w!RA>pJ1N$PaeFy=HXk z&_XeB`3sGd+H;!BnAXgq*Z}9TdnOx!-h3o+28JORbLq)pNz92Q2hPJ3)eBeNm^{e3 z%rDX4%VHo4sR}q^$)*`VVXDultMZSRRgk7m``=hf1VA+j6&FXPm?McAiq232x12~K z2ypW9V|z&&xqX6(84v^knK)IWOK#UR6$jYTo)ItJk1g=kbn{{b! zi^yUXG=}fYVmL~rjK1O zI&RYZ(sTGN-)F`(3B8Zd*eoXSGMJr+DPdttui{Hv9euz&E1y8(lLg}e@LW&#t4mHU ztx6j{FN8q`oJ4P~d>?{$QQ)%~`YQ@cyyTjXYxHuPGfii3)1u+?JJ)0FU+UCbtbaDF zVB5J5XLZjtfA8Dj%>l9diS=Q?gCz{;COLl+pZNK#^kea6Jz4;WrvDVn#JAZ^-Sjwu z8P24a)Cm zVr5QsBhUdPrf+==OsarF{s873XCF2!L)v&&bitN*t^1hxVz`$qV{~rZPG;=(7pi_E z-dhRr>qFje+IXmVg>g$u_RFolFyy@0*;WdNXw@IGP=;vY)B~(p*9IZYJyAf@F{WHM z<=PYy^x^Rhv=^)s7b~C&sI_clE|&ZTpDflNeAy$=4%*dFBmH_`q;~NOzrxvgai+t} zL6B3YHObrkQ1L+2|j<3A7+bjAqXBMB+NmwD^?CLP8qiAEIhrjE&X#3XzyZTUF z!imLt0}4AQWGoW%NSOa|w3$vrB|vS#!G-k2_<3`o{y>Y5DsqI5T!qs&_NMq_uFk_pyS*5!PpmX5Rp(=3|0&R9flCA zsQAYdWel}4PIv9fJ)wQB&?m1C6^MR@Ft${Ygz{CSr1&0YPI-*96T~u*)Fc1fh<^GU$k&?aYH4wcMhyNEFQTH!>g^J!+Vou_I3 zNcArBa1{%6i_p1f1YSt|BSY|fh^oE{9qPcxF-2vacs?x{fiOPEeb8k!Iw$>UDD?iP z;oE1_eP#v2Kp+;P3&FxNDt@|g=cw^y^{W58Cx4M(AKhIAAtIg*nyVu)nXD-D}eLj8&?@aK{HV25Eftw^hMeIX$7F@?s~5N+QmzVK^Cqc9Jo z{Nai?5k#|8rm+~sG@5aa9hFoPS5h84Of=b6o6rzJq%RCLP)K;}`+H-G%cuGa2?=Du zH0mDuE~7u#Dhw{PfEFvE8=3M1M>@s8c+?ZB%YWO=@n!k~5f)*BLINEFNN^4gof(6L z0?*@%!euy%%={G+0w&}HH+wbF{}m#rm#G#V08!hnQ4b|Z7gK;vMgBekrFY@PAjWB7 zM8zeS5Py8t)97D7QN!x35QJC!r8xuANh{P*a|%nrFqdwlpSFKf305P%A`1t>1)BPo zr0oA8qo#{iZYYFO1*bqO#|5cjVIIh5l7M8y6m%K-=!&lUMU_(~c)(NC)mLpGG&b{- z13BErcp3Tr-^0r)`yWhg^!o%r^For~(mt~ksDMZ`H~KyFGrEM86-ta&h%!6YP*HKX zsOl;s-!V$B4&-HcqNpkhKNTb)OjC<&dtx=9)3Xai?YK(o>bbjVO!d+)IiH8PFc8dF z`M6J|5duU4zrt;vFO=HX`oE|7!|XI-A9MiUZQuF}qx*9vlcC#R>#9D|spY*-DR}ZY$eDmDk_m@?7xJzkdz`-yeUIQ^^zgzSc{A>fh3IY(C(A zmqX$P4_C9@Fxa7?6LuW=OrCF_0u9MZhuiMbh75g8K|vW`kxjpCb_M42BcSiE}6tY2WnLEn~!bX9u9rs} zGscz14;Q&KZrN@q3fTf48wEv0McJGJd#mf=q2J2ae=>Vre}Oo{{TE}&u;1jf821EA zDDXKq>nafz*KhC}E35B^pGVFoT!JNR$VcrvQH{-Vsy;hge=+H6H+2TDJETYGoJlsF zaS-*Hsgnd?>mqk66=jVVYlu#rHpht!x+yE(&oqi~Ke}urt|<9UmXRO_@sI|$mE`^* zw~T+8X0sO7k~$@c3%V9&XkCh?84})fth@Feuxku0A@m8Baf|EUpfUBZH89mgwc_{3 z8X0R_Rvs>Nc{#?l=brNLbx`ogMecDsjHl<~(y%t?bX+(9 zFy~9wbF&{_qr&~Nm;{}Y1<&4$pBcX5RV+s#N9=qW<7sb}SMD@3#T_*)I-Rgnudc|3>?CH2s@YNMaH( zWUxDIixt{wg62S6ekI3dzb3L%X}%WRKqfKs`kT3i`-?%r}9|#xk7&ZV^dluLBJkeOPF;aKEW8(9VZkil^fn@PkBQ zQ<{;LiY2g=6{$5p)G_x>S2hkBy%t^CN>?7x(Y`Si zqypDfySnD_s`Z-$?Ue*VN!jmF4OjhJxizx*$LBOc#cymh=F1YsP`DJ*?>pCQ{*)tk z4Q1lhjv-Wt#I{SpNd*?yH*q0F-bqqoys4<({Yi}`2+DWyq&F~6-QPEj7U(!GTC>=` zfj)#~=-#rJsWV-%YWooUqC!Sy8#oWC&kiEy0j||aQ*Nu#O`80UGH5R)cP|R+oGxSm zn{rUe@pzrN6eIUSP|!=o8Hm&$!#a51KInzOfp9oB)EGf5F4)jfPy~BX5diq0WM0TA zk!i6%^6p1O!?CN6BbT$qEMI3R!dtr=$d%m4)n;a=O9VhDx(3=+n2~~^-2X(xp?@5v zz~RKH*R@>7#em?@ASG>zCvX*G(sf0whBQEt5oz zS+!klu2q1RY$1iJ{BIKY_+NhurX}0FnomL-_TML89Bb=-Hu>00DTwOeuxGL=>zOD= zW0ndtns+pqxHvPawEmUaz1A!&F zrvvQ=Erwi#H&5*XQ;w}s{|Al5s0_}Hk%z^j}jM zZX*SVz^x4*hgHe?UCp1~JBSLffiD+t{S2J?y3w|G@0%}H)xM={Fo0KFum9B}N+mwS zFKv$tLVP4TKK##zEMLwRYu7z5q;KN+T>n8!PIc_}l=`EupQ{9RUE}HTE zt^EcC7??B5u4#CEPS?w0Z*{<=f6E&kuV>7z=RMlH;eYDZ9EQT}dNpq7GLuv?e3i#t z+UfuA&GG%v(&NGx4nb#L^ z;dxL#{=RE?@njs?IjZkxbWZrODfscD*Ljs;(f?(vcHw9DZIa@q&ti46KatzSSbFcX z<^ge2;K$nY+B-G2E`xDt7k9G6rq~U7cng5n&%`54bmzmk)(7dMa z;aDy1-0|?`w&VMSA-Sz63qWSD zn*W0gc%}ig9q6X(y-hM{Bj-J4qY6Bay!C+N1J2$`f4(=U8n_z3U2TVdo-PD^LrXn3 z(f=m@LY{o={yW`t`dKy3mzan;OIG??a>9Qj4q zYl$*kpc4g^Cs&+kw)B|Td)eDHPUgK^QOJg(~`|8}22 zR(<6!P97Mv`M0MM$+H1z1eYj?g(7UCZ1(V@$&2(UT%q#OLru+Qy*|=ifw7xs!{pne zvZ^MIWeoRGpt-t0O8-;mPU-gn21o!+1Qe#H$}U^LeeCs2`y=E;q!bo|6v0?%-}3(4 zA@CwHFc8EH5aKMATaJ!J9{X-e8cI(b=_Bay!;7R)*U9;mp~2~&_YQ#i%&|_2nK2wq z8IrkR&7%gjoYS&U=!^%#R1Q9+M4V1jYKF}m01?4L0TT9eBT4yK5=T0VsIImYgBlT5 z;eZJt1tl^%{zIIFO?37rbnYz)JTcQXWQSIx!16_6fDqXk;4G95-bPU>O?KTSJ@lZw zGmpH@Qm8AZ5iob-d)ZbJwwe2)vCUV(+b9?E)U0+^5}%syv?Gdbr?0(5a3;)}p#Ju@ zuU#d_Uv8>K5!xpkM<@19L*2;m!le1rSwdbSL@bg@pZ|isEcM*rfqYJhXk{t~eW}bg zYQ_Hrd9yT+92sh#TyUB1n>xP_lx?=#xH3P9^sn_CEz>gpr-S@@N0m=-Hg?%|Cnns1i)Md-gCa`u< z2j8KG9G3WWVgxIfzRy{71dp#lw^+_qn^tM6nRn{X3F&G7sM*W?=47MbEzSxIq&=`| z7QaBp*GtpKt9YfS>`y%^*NrH%Y0Res*wCh*_t3U((Q{ri!A2-Ooy0{s3Ef*1*sshM z^9Iyp8Q-Uhs9Q{b1mwc4Q)bH!ani7vchY^NRTo@mblbD{klpehBBEo(0n~0n5R%Ok zTS$|8rf_id+U)Roac3vPgrN`-)xIV;U%0DAn2$))|Lv%!nou@M5|RUnMvzkP!PVnP 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

                                              !26i&sMXR;DTYq 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 z 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ý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 r@W(H&x7I&dC3UdzjWpY)s_y dict[str, Any]: # Port range for discovering running MCP servers -MCP_DISCOVERY_PORTS = range(9001, 9011) # 9001-9010 inclusive +MCP_DISCOVERY_PORTS = range(9001, 9012) # 9001-9011 inclusive class MCPToolAggregator: diff --git a/src/backend/mcp_servers/__init__.py b/src/backend/mcp_servers/__init__.py index 36e0d6e5..0f00dfe8 100644 --- a/src/backend/mcp_servers/__init__.py +++ b/src/backend/mcp_servers/__init__.py @@ -33,6 +33,7 @@ "monarch_server", "notes_server", "pdf_server", + "playwright_server", "shell_control_server", "spotify_server", ] @@ -81,6 +82,11 @@ "module": "backend.mcp_servers.spotify_server", "http_port": 9010, }, + { + "id": "playwright", + "module": "backend.mcp_servers.playwright_server", + "http_port": 9011, + }, ) _SUBMODULES: dict[str, str] = {name: f"{__name__}.{name}" for name in __all__} diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py new file mode 100644 index 00000000..304ef340 --- /dev/null +++ b/src/backend/mcp_servers/playwright_server.py @@ -0,0 +1,839 @@ +"""MCP server exposing Playwright-based browser automation tools. + +Connects to an existing browser via Chrome DevTools Protocol (CDP), +enabling browser control without screenshots in the LLM loop. +""" + +from __future__ import annotations + +import argparse +import asyncio +import json +import subprocess +import tempfile +import time +from pathlib import Path +from typing import Any + +from fastmcp import FastMCP + +# Default port for HTTP transport +DEFAULT_HTTP_PORT = 9011 +DEFAULT_CDP_ENDPOINT = "http://localhost:9222" +DEFAULT_CDP_PORT = 9222 + +# URLs that should never be auto-selected as the working page +# These are typically chat interfaces or important apps +_PROTECTED_URL_PATTERNS = [ + "localhost:5173", # Dev server (Svelte frontend) + "127.0.0.1:5173", + "chat.openai.com", # ChatGPT + "gemini.google.com", # Gemini + "claude.ai", # Claude + "mail.google.com", # Gmail + "calendar.google.com", # Calendar +] + +# Waybar bookmark presets (brave --app mode minimal windows) +_WAYBAR_PRESETS: dict[str, str] = { + "chatgpt": "https://chat.openai.com", + "gemini": "https://gemini.google.com/app", + "google": "https://www.google.com/", + "dev": "http://localhost:5173/", + "calendar": "https://calendar.google.com/calendar/u/0/r?pli=1", + "gmail": "https://mail.google.com/mail/u/0/#inbox", + "github": "https://github.com/jck411?tab=repositories", +} + +mcp = FastMCP("playwright") + +# ============================================================================= +# Global Browser State +# ============================================================================= + +# Lazy import playwright to avoid startup cost when not using browser tools +_playwright: Any = None +_browser: Any = None +_context: Any = None +_page: Any = None +_connected: bool = False + + +async def _ensure_playwright() -> Any: + """Lazy-load playwright module.""" + global _playwright + if _playwright is None: + try: + from playwright.async_api import async_playwright + _playwright = await async_playwright().start() + except ImportError: + raise RuntimeError( + "Playwright not installed. Run: pip install playwright && playwright install chromium" + ) + return _playwright + + +async def _get_page() -> Any: + """Get the current page, raising if not connected.""" + if not _connected or _page is None: + raise RuntimeError("Not connected to browser. Call browser_connect first.") + return _page + + +def _is_protected_url(url: str) -> bool: + """Check if a URL is protected (should not be auto-selected for automation). + + Protected URLs are typically chat interfaces or important apps that + should not be hijacked when connecting to the browser. + """ + if not url: + return False + url_lower = url.lower() + return any(pattern in url_lower for pattern in _PROTECTED_URL_PATTERNS) + + +# ============================================================================= +# Browser Tools +# ============================================================================= + + +async def _browser_connect_impl( + endpoint: str = DEFAULT_CDP_ENDPOINT, + timeout_ms: int = 30000, +) -> str: + """Internal implementation of browser_connect that can be called directly.""" + global _browser, _context, _page, _connected + + try: + pw = await _ensure_playwright() + + # Connect to existing browser via CDP + _browser = await pw.chromium.connect_over_cdp( + endpoint, + timeout=timeout_ms, + ) + + # Gather all pages across all contexts + all_pages: list[Any] = [] + for ctx in _browser.contexts: + all_pages.extend(ctx.pages) + + # Find the first non-protected page to use + selected_page = None + protected_skipped = [] + for p in all_pages: + if _is_protected_url(p.url): + protected_skipped.append(p.url) + elif selected_page is None: + selected_page = p + + # If all pages are protected, create a new tab + if selected_page is None: + if _browser.contexts: + _context = _browser.contexts[0] + else: + _context = await _browser.new_context() + _page = await _context.new_page() + created_new_tab = True + else: + _page = selected_page + _context = _page.context + created_new_tab = False + + _connected = True + + # Gather info about open tabs + tabs = [] + for ctx in _browser.contexts: + for p in ctx.pages: + page_title = await p.title() + tabs.append({ + "title": page_title[:50] if page_title else "(untitled)", + "url": p.url, + "protected": _is_protected_url(p.url), + "active": p == _page, + }) + + return json.dumps({ + "status": "ok", + "endpoint": endpoint, + "tabs_count": len(tabs), + "tabs": tabs[:10], # Limit to first 10 for token efficiency + "current_url": _page.url if _page else None, + "created_new_tab": created_new_tab, + "protected_skipped": protected_skipped[:5] if protected_skipped else None, + }) + + except Exception as exc: + _connected = False + return json.dumps({ + "status": "error", + "message": str(exc), + "hint": "Ensure browser is running with: brave --remote-debugging-port=9222", + }) + + +@mcp.tool("browser_connect") # type: ignore[misc] +async def browser_connect( + endpoint: str = DEFAULT_CDP_ENDPOINT, + timeout_ms: int = 30000, +) -> str: + """Connect to a running browser via Chrome DevTools Protocol. + + The browser must be started with remote debugging enabled, e.g.: + brave --remote-debugging-port=9222 + + IMPORTANT: This will NOT hijack protected pages like localhost:5173, + chat.openai.com, or other chat interfaces. If all open pages are + protected, a new blank tab will be created for automation work. + + Args: + endpoint: CDP endpoint URL (default: http://localhost:9222) + timeout_ms: Connection timeout in milliseconds (default: 30000) + + Returns: + JSON with status, browser info, and available pages. + """ + return await _browser_connect_impl(endpoint, timeout_ms) + + +@mcp.tool("browser_open") # type: ignore[misc] +async def browser_open( + url: str | None = None, + preset: str | None = None, + wait_for_ready: bool = True, + timeout_ms: int = 10000, +) -> str: + """Launch a new minimal browser window (Brave 'app mode') with CDP enabled. + + Opens a clean, chromeless window like the waybar bookmarks. + Automatically connects via CDP when ready. + + Use this when: + - No browser is running with CDP enabled + - You want a fresh window that won't interfere with existing tabs + - You want to use a waybar bookmark preset + + Args: + url: URL to open (ignored if preset is provided) + preset: Waybar bookmark preset name. Options: + - "chatgpt", "gemini", "google", "dev", "calendar", "gmail", "github" + wait_for_ready: Wait for CDP connection after launch (default: True) + timeout_ms: CDP connection timeout (default: 10000) + + Returns: + JSON with status and connection info. + """ + global _browser, _context, _page, _connected + + # Resolve URL from preset or direct URL + if preset: + preset_lower = preset.lower() + if preset_lower not in _WAYBAR_PRESETS: + return json.dumps({ + "status": "error", + "message": f"Unknown preset: {preset}", + "available_presets": list(_WAYBAR_PRESETS.keys()), + }) + target_url = _WAYBAR_PRESETS[preset_lower] + elif url: + target_url = url + else: + target_url = "about:blank" + + try: + # First, check if CDP is already available (browser already running) + # This prevents launching orphaned windows when a browser exists + try: + import httpx + async with httpx.AsyncClient(timeout=1.0) as client: + resp = await client.get(f"http://localhost:{DEFAULT_CDP_PORT}/json/version") + if resp.status_code == 200: + # Browser already running! Just connect, don't navigate + result = await _browser_connect_impl(timeout_ms=5000) + result_data = json.loads(result) + + if result_data.get("status") == "ok": + # Return connection info; LLM can use browser_navigate if needed + return json.dumps({ + "status": "ok", + "reused_existing": True, + "intended_url": target_url, + "preset": preset, + "current_url": result_data.get("current_url"), + "tabs_count": result_data.get("tabs_count"), + "hint": f"Browser already running. Use browser_navigate to go to {target_url}", + }) + except Exception: + # CDP not available, proceed with launching new browser + pass + + # No existing browser, launch Brave in app mode with CDP enabled + cdp_flags = f"--remote-debugging-port={DEFAULT_CDP_PORT} --force-dark-mode --disable-session-restore" + cmd = f'brave --app="{target_url}" {cdp_flags}' + + # Launch in background + subprocess.Popen( + cmd, + shell=True, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + start_new_session=True, + ) + + if not wait_for_ready: + return json.dumps({ + "status": "launched", + "url": target_url, + "preset": preset, + "message": "Browser launched. Call browser_connect to connect.", + }) + + # Wait for CDP to become available + start_time = time.time() + last_error = None + + while (time.time() - start_time) * 1000 < timeout_ms: + await asyncio.sleep(0.5) # Check every 500ms + + try: + result = await _browser_connect_impl(timeout_ms=2000) + result_data = json.loads(result) + + if result_data.get("status") == "ok": + # Successfully connected + return json.dumps({ + "status": "ok", + "launched_url": target_url, + "preset": preset, + "current_url": result_data.get("current_url"), + "tabs_count": result_data.get("tabs_count"), + }) + else: + last_error = result_data.get("message") + except Exception as e: + last_error = str(e) + + return json.dumps({ + "status": "error", + "message": f"Browser launched but CDP connection timed out: {last_error}", + "hint": "The browser may still be starting. Try browser_connect in a few seconds.", + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_new_tab") # type: ignore[misc] +async def browser_new_tab( + url: str = "about:blank", + switch_to: bool = True, +) -> str: + """Create a new tab for automation work. + + Use this when you're connected to a browser but want to work in a + fresh tab without disturbing existing pages. + + Args: + url: URL to open in the new tab (default: about:blank) + switch_to: Make this the active page for automation (default: True) + + Returns: + JSON with status and new tab info. + """ + global _page + + try: + if not _connected or _context is None: + return json.dumps({ + "status": "error", + "message": "Not connected to browser. Call browser_connect or browser_open first.", + }) + + # Create new page in current context + new_page = await _context.new_page() + + # Navigate if URL provided + if url and url != "about:blank": + await new_page.goto(url, wait_until="domcontentloaded") + + # Switch to new page if requested + if switch_to: + _page = new_page + await new_page.bring_to_front() + + page_title = await new_page.title() + return json.dumps({ + "status": "ok", + "url": new_page.url, + "title": page_title[:50] if page_title else None, + "active": switch_to, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_navigate") # type: ignore[misc] +async def browser_navigate( + url: str, + wait_until: str = "domcontentloaded", + timeout_ms: int = 30000, +) -> str: + """Navigate to a URL in the current tab. + + Args: + url: The URL to navigate to + wait_until: When to consider navigation complete: + - "domcontentloaded" (default): DOM is ready + - "load": Full page load including resources + - "networkidle": No network activity for 500ms + timeout_ms: Navigation timeout in milliseconds + + Returns: + JSON with status, final URL, and page title. + """ + try: + page = await _get_page() + + response = await page.goto( + url, + wait_until=wait_until, + timeout=timeout_ms, + ) + + page_title = await page.title() + return json.dumps({ + "status": "ok", + "url": page.url, + "title": page_title[:100] if page_title else None, + "http_status": response.status if response else None, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_click") # type: ignore[misc] +async def browser_click( + selector: str, + button: str = "left", + click_count: int = 1, + timeout_ms: int = 10000, +) -> str: + """Click an element on the page. + + Args: + selector: CSS selector, text selector ("text=Click me"), or XPath + button: Mouse button - "left", "right", or "middle" + click_count: Number of clicks (2 for double-click) + timeout_ms: Timeout waiting for element + + Returns: + JSON with status and clicked element info. + """ + try: + page = await _get_page() + + await page.click( + selector, + button=button, + click_count=click_count, + timeout=timeout_ms, + ) + + return json.dumps({ + "status": "ok", + "selector": selector, + "clicked": True, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "selector": selector, + "message": str(exc), + }) + + +@mcp.tool("browser_type") # type: ignore[misc] +async def browser_type( + selector: str, + text: str, + clear_first: bool = True, + delay_ms: int = 0, + timeout_ms: int = 10000, +) -> str: + """Type text into an input element. + + Args: + selector: CSS selector for the input element + text: Text to type + clear_first: Clear existing content before typing (default: True) + delay_ms: Delay between keystrokes in milliseconds + timeout_ms: Timeout waiting for element + + Returns: + JSON with status. + """ + try: + page = await _get_page() + + if clear_first: + await page.fill(selector, text, timeout=timeout_ms) + else: + await page.type(selector, text, delay=delay_ms, timeout=timeout_ms) + + return json.dumps({ + "status": "ok", + "selector": selector, + "typed_length": len(text), + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "selector": selector, + "message": str(exc), + }) + + +@mcp.tool("browser_extract") # type: ignore[misc] +async def browser_extract( + selector: str | None = None, + content_type: str = "text", + limit: int = 5000, +) -> str: + """Extract content from the page. + + Args: + selector: CSS selector to extract from (None = entire page) + content_type: What to extract: + - "text": Visible text content (default) + - "html": Inner HTML + - "value": Input value + - "attribute:name": Specific attribute + limit: Maximum characters to return (default: 5000) + + Returns: + JSON with status and extracted content. + """ + try: + page = await _get_page() + + if selector: + element = await page.query_selector(selector) + if not element: + return json.dumps({ + "status": "error", + "message": f"Element not found: {selector}", + }) + + if content_type == "text": + content = await element.inner_text() + elif content_type == "html": + content = await element.inner_html() + elif content_type == "value": + content = await element.input_value() + elif content_type.startswith("attribute:"): + attr_name = content_type.split(":", 1)[1] + content = await element.get_attribute(attr_name) or "" + else: + content = await element.inner_text() + else: + # Full page text + if content_type == "text": + content = await page.inner_text("body") + elif content_type == "html": + content = await page.content() + else: + content = await page.inner_text("body") + + # Truncate if needed + truncated = len(content) > limit + content = content[:limit] + + return json.dumps({ + "status": "ok", + "selector": selector or "body", + "content_type": content_type, + "content": content, + "truncated": truncated, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_wait") # type: ignore[misc] +async def browser_wait( + selector: str | None = None, + state: str = "visible", + timeout_ms: int = 10000, +) -> str: + """Wait for a condition on the page. + + Args: + selector: CSS selector to wait for (None = just wait timeout_ms) + state: Element state to wait for: + - "visible": Element is visible (default) + - "hidden": Element is hidden or removed + - "attached": Element exists in DOM + timeout_ms: Maximum wait time + + Returns: + JSON with status and elapsed time. + """ + try: + page = await _get_page() + start = time.time() + + if selector: + await page.wait_for_selector( + selector, + state=state, + timeout=timeout_ms, + ) + else: + await asyncio.sleep(timeout_ms / 1000) + + elapsed_ms = int((time.time() - start) * 1000) + + return json.dumps({ + "status": "ok", + "selector": selector, + "state": state, + "elapsed_ms": elapsed_ms, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "selector": selector, + "message": str(exc), + }) + + +@mcp.tool("browser_tabs") # type: ignore[misc] +async def browser_tabs( + switch_to: int | None = None, +) -> str: + """List browser tabs or switch to a specific tab. + + Args: + switch_to: Tab index to switch to (0-based). If None, just list tabs. + + Returns: + JSON with tabs list and current tab info. + """ + global _page + + try: + if not _connected or _browser is None: + raise RuntimeError("Not connected to browser") + + # Gather all tabs + tabs = [] + all_pages = [] + for ctx in _browser.contexts: + for p in ctx.pages: + all_pages.append(p) + page_title = await p.title() + tabs.append({ + "index": len(tabs), + "title": page_title[:50] if page_title else "(untitled)", + "url": p.url, + "active": p == _page, + }) + + # Switch if requested + if switch_to is not None: + if 0 <= switch_to < len(all_pages): + _page = all_pages[switch_to] + await _page.bring_to_front() + # Update active flag + for i, tab in enumerate(tabs): + tab["active"] = (i == switch_to) + else: + return json.dumps({ + "status": "error", + "message": f"Invalid tab index: {switch_to}. Valid: 0-{len(all_pages)-1}", + }) + + return json.dumps({ + "status": "ok", + "tabs_count": len(tabs), + "tabs": tabs, + "current_index": next( + (i for i, t in enumerate(tabs) if t["active"]), 0 + ), + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_screenshot") # type: ignore[misc] +async def browser_screenshot( + selector: str | None = None, + full_page: bool = False, + path: str | None = None, +) -> str: + """Take a screenshot of the page or a specific element. + + Args: + selector: CSS selector for element to screenshot (None = viewport) + full_page: Capture entire scrollable page (ignored if selector provided) + path: Save path. If None, saves to temp file. + + Returns: + JSON with status and file path. + """ + try: + page = await _get_page() + + # Determine save path + if path: + save_path = Path(path) + else: + save_path = Path(tempfile.gettempdir()) / f"screenshot_{int(time.time())}.png" + + # Take screenshot + if selector: + element = await page.query_selector(selector) + if not element: + return json.dumps({ + "status": "error", + "message": f"Element not found: {selector}", + }) + await element.screenshot(path=str(save_path)) + else: + await page.screenshot(path=str(save_path), full_page=full_page) + + return json.dumps({ + "status": "ok", + "path": str(save_path), + "selector": selector, + "full_page": full_page if not selector else False, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +@mcp.tool("browser_close") # type: ignore[misc] +async def browser_close() -> str: + """Close the Playwright connection (does NOT close the browser itself). + + Use this to cleanly disconnect when done with automation. + The browser window remains open for manual use. + + Returns: + JSON with status. + """ + global _browser, _context, _page, _connected, _playwright + + try: + if _browser: + await _browser.close() + if _playwright: + await _playwright.stop() + + _browser = None + _context = None + _page = None + _playwright = None + _connected = False + + return json.dumps({ + "status": "ok", + "message": "Disconnected from browser", + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + + +# ============================================================================= +# Server Entry Point +# ============================================================================= + + +def run( + transport: str = "stdio", + host: str = "127.0.0.1", + port: int = DEFAULT_HTTP_PORT, +) -> None: # pragma: no cover - integration entrypoint + """Run the MCP server with the specified transport.""" + if transport == "streamable-http": + mcp.run( + transport="streamable-http", + host=host, + port=port, + json_response=True, + stateless_http=True, + uvicorn_config={"access_log": False}, + ) + else: + mcp.run(transport="stdio") + + +if __name__ == "__main__": # pragma: no cover - CLI helper + parser = argparse.ArgumentParser(description="Playwright MCP Server") + parser.add_argument( + "--transport", + choices=["stdio", "streamable-http"], + default="stdio", + help="Transport protocol to use", + ) + parser.add_argument( + "--host", + default="127.0.0.1", + help="Host to bind HTTP server to", + ) + parser.add_argument( + "--port", + type=int, + default=DEFAULT_HTTP_PORT, + help="Port for HTTP server", + ) + args = parser.parse_args() + run(args.transport, args.host, args.port) + + +__all__ = [ + "mcp", + "run", + "browser_connect", + "browser_open", + "browser_new_tab", + "browser_navigate", + "browser_click", + "browser_type", + "browser_extract", + "browser_wait", + "browser_tabs", + "browser_screenshot", + "browser_close", +] diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index fb39ec6f..c27b99ed 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1158,9 +1158,24 @@ def _build_shell_env() -> dict[str, str]: env["PATH"] = ":".join(path_parts) - # Ensure DISPLAY is set for GUI apps + # Ensure display variables are set for GUI apps + # For Wayland sessions, WAYLAND_DISPLAY is required + if "WAYLAND_DISPLAY" not in env: + # Check common Wayland display socket names + uid = os.getuid() + xdg_runtime = f"/run/user/{uid}" + for wayland_name in ["wayland-1", "wayland-0"]: + if os.path.exists(f"{xdg_runtime}/{wayland_name}"): + env["WAYLAND_DISPLAY"] = wayland_name + break + + # Ensure DISPLAY is set for X11/XWayland apps if "DISPLAY" not in env: - env["DISPLAY"] = ":0" + # Probe for the actual display - :1 is common for Wayland sessions + for display_num in [":1", ":0", ":2"]: + # Just pick :1 as default for Wayland (most common) + env["DISPLAY"] = ":1" + break # Ensure XDG runtime dir for Wayland/desktop integration if "XDG_RUNTIME_DIR" not in env: diff --git a/tests/test_playwright_server.py b/tests/test_playwright_server.py new file mode 100644 index 00000000..3405ed2b --- /dev/null +++ b/tests/test_playwright_server.py @@ -0,0 +1,246 @@ +"""Tests for the playwright MCP server.""" + +from __future__ import annotations + +import json +from unittest.mock import AsyncMock, MagicMock, patch + +import pytest + +from backend.mcp_servers import playwright_server + +pytestmark = pytest.mark.asyncio + + +@pytest.fixture(autouse=True) +def reset_global_state(): + """Reset global browser state between tests.""" + playwright_server._playwright = None + playwright_server._browser = None + playwright_server._context = None + playwright_server._page = None + playwright_server._connected = False + yield + playwright_server._playwright = None + playwright_server._browser = None + playwright_server._context = None + playwright_server._page = None + playwright_server._connected = False + + +# Helper to get the underlying function from FunctionTool wrapper +def _get_fn(tool): + """Get the underlying async function from a FunctionTool.""" + return tool.fn if hasattr(tool, "fn") else tool + + +async def test_browser_navigate_not_connected(): + """Test error when trying to navigate without connecting first.""" + fn = _get_fn(playwright_server.browser_navigate) + result = json.loads(await fn("https://example.com")) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_click_not_connected(): + """Test error when trying to click without connecting first.""" + fn = _get_fn(playwright_server.browser_click) + result = json.loads(await fn("button")) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_type_not_connected(): + """Test error when trying to type without connecting first.""" + fn = _get_fn(playwright_server.browser_type) + result = json.loads(await fn("input", "hello")) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_extract_not_connected(): + """Test error when trying to extract without connecting first.""" + fn = _get_fn(playwright_server.browser_extract) + result = json.loads(await fn()) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_wait_not_connected(): + """Test error when trying to wait without connecting first.""" + fn = _get_fn(playwright_server.browser_wait) + result = json.loads(await fn("#element")) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_tabs_not_connected(): + """Test error when trying to list tabs without connecting first.""" + fn = _get_fn(playwright_server.browser_tabs) + result = json.loads(await fn()) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_screenshot_not_connected(): + """Test error when trying to screenshot without connecting first.""" + fn = _get_fn(playwright_server.browser_screenshot) + result = json.loads(await fn()) + + assert result["status"] == "error" + assert "connect" in result["message"].lower() + + +async def test_browser_close_when_not_connected(): + """Test close succeeds even when not connected.""" + fn = _get_fn(playwright_server.browser_close) + result = json.loads(await fn()) + + assert result["status"] == "ok" + assert "disconnect" in result["message"].lower() + + +async def test_browser_navigate_success(): + """Test successful navigation with mocked page.""" + mock_response = MagicMock() + mock_response.status = 200 + + mock_page = MagicMock() + mock_page.goto = AsyncMock(return_value=mock_response) + mock_page.url = "https://example.com" + mock_page.title = AsyncMock(return_value="Example Domain") + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_navigate) + result = json.loads(await fn("https://example.com")) + + assert result["status"] == "ok" + assert result["http_status"] == 200 + mock_page.goto.assert_called_once() + + +async def test_browser_click_success(): + """Test successful click with mocked page.""" + mock_page = MagicMock() + mock_page.click = AsyncMock() + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_click) + result = json.loads(await fn("button.submit")) + + assert result["status"] == "ok" + assert result["clicked"] is True + mock_page.click.assert_called_once() + + +async def test_browser_type_success(): + """Test successful typing with mocked page.""" + mock_page = MagicMock() + mock_page.fill = AsyncMock() + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_type) + result = json.loads(await fn("input#email", "test@example.com")) + + assert result["status"] == "ok" + assert result["typed_length"] == len("test@example.com") + mock_page.fill.assert_called_once() + + +async def test_browser_extract_text_success(): + """Test successful text extraction with mocked page.""" + mock_element = MagicMock() + mock_element.inner_text = AsyncMock(return_value="Hello World") + + mock_page = MagicMock() + mock_page.query_selector = AsyncMock(return_value=mock_element) + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_extract) + result = json.loads(await fn(selector="h1")) + + assert result["status"] == "ok" + assert result["content"] == "Hello World" + assert result["truncated"] is False + + +async def test_browser_extract_truncation(): + """Test that long content is truncated.""" + long_content = "A" * 10000 + + mock_element = MagicMock() + mock_element.inner_text = AsyncMock(return_value=long_content) + + mock_page = MagicMock() + mock_page.query_selector = AsyncMock(return_value=mock_element) + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_extract) + result = json.loads(await fn(selector="body", limit=5000)) + + assert result["status"] == "ok" + assert len(result["content"]) == 5000 + assert result["truncated"] is True + + +async def test_browser_tabs_list(): + """Test listing tabs with mocked browser.""" + mock_page1 = MagicMock() + mock_page1.title = AsyncMock(return_value="Page 1") + mock_page1.url = "https://example1.com" + + mock_page2 = MagicMock() + mock_page2.title = AsyncMock(return_value="Page 2") + mock_page2.url = "https://example2.com" + + mock_context = MagicMock() + mock_context.pages = [mock_page1, mock_page2] + + mock_browser = MagicMock() + mock_browser.contexts = [mock_context] + + playwright_server._browser = mock_browser + playwright_server._page = mock_page1 + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_tabs) + result = json.loads(await fn()) + + assert result["status"] == "ok" + assert result["tabs_count"] == 2 + assert len(result["tabs"]) == 2 + + +def test_module_exports(): + """Test that all expected functions are exported.""" + expected = [ + "mcp", + "run", + "browser_connect", + "browser_navigate", + "browser_click", + "browser_type", + "browser_extract", + "browser_wait", + "browser_tabs", + "browser_screenshot", + "browser_close", + ] + for name in expected: + assert hasattr(playwright_server, name), f"Missing export: {name}" From 68344c23a725de2bec962a18a4ad76f12c08816c Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 28 Dec 2025 19:06:17 -0500 Subject: [PATCH 70/78] feat: Introduce Playwright tool support, update LLM browser automation prompt, and remove ydotool UI controls. --- data/client_profiles/cli-default.json | 1 + src/backend/data/clients/cli/llm.json | 4 +- .../mcp_servers/shell_control_server.py | 693 +----------------- 3 files changed, 4 insertions(+), 694 deletions(-) diff --git a/data/client_profiles/cli-default.json b/data/client_profiles/cli-default.json index ffb0c724..8febc1ef 100644 --- a/data/client_profiles/cli-default.json +++ b/data/client_profiles/cli-default.json @@ -9,6 +9,7 @@ "local-calculator", "monarch-money", "notes", + "playwright", "shell-control", "spotify" ], diff --git a/src/backend/data/clients/cli/llm.json b/src/backend/data/clients/cli/llm.json index 50d8d103..dee28b54 100644 --- a/src/backend/data/clients/cli/llm.json +++ b/src/backend/data/clients/cli/llm.json @@ -1,9 +1,9 @@ { "model": "minimax/minimax-m2", - "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.\n", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- For web tasks: use xdg-open or brave with URL, e.g.: xdg-open 'https://google.com/search?q=query'\n- For browser automation: use playwright tools (browser_open, browser_navigate, etc.)\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don't describe internal reasoning.\n", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, "conversation_mode": false, "conversation_timeout_seconds": 10.0 -} \ No newline at end of file +} diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index c27b99ed..957d4a59 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -1122,7 +1122,7 @@ def _build_shell_env() -> dict[str, str]: "/opt/bin", "/opt/local/bin", # Common application-specific paths - "/opt/brave.com/brave", + "/opt/brave-bin", "/opt/google/chrome", "/opt/microsoft/msedge", "/opt/vivaldi", @@ -1652,688 +1652,6 @@ async def shell_get_full_output( return json.dumps(response) -# ============================================================================= -# UI Automation Tools (ydotool + hyprctl) -# ============================================================================= - -# ydotool key codes for common modifiers and keys -_YDOTOOL_KEYCODES: dict[str, int] = { - # Modifiers - "ctrl": 29, "control": 29, "lctrl": 29, - "shift": 42, "lshift": 42, - "alt": 56, "lalt": 56, - "super": 125, "meta": 125, "win": 125, - "rctrl": 97, "rshift": 54, "ralt": 100, - # Function keys - "f1": 59, "f2": 60, "f3": 61, "f4": 62, "f5": 63, "f6": 64, - "f7": 65, "f8": 66, "f9": 67, "f10": 68, "f11": 87, "f12": 88, - # Navigation - "escape": 1, "esc": 1, "tab": 15, "enter": 28, "return": 28, - "backspace": 14, "delete": 111, "del": 111, "insert": 110, - "home": 102, "end": 107, "pageup": 104, "pagedown": 109, - "up": 103, "down": 108, "left": 105, "right": 106, - "space": 57, "capslock": 58, "numlock": 69, "scrolllock": 70, - "printscreen": 99, "pause": 119, - # Letters (a-z) - "a": 30, "b": 48, "c": 46, "d": 32, "e": 18, "f": 33, "g": 34, - "h": 35, "i": 23, "j": 36, "k": 37, "l": 38, "m": 50, "n": 49, - "o": 24, "p": 25, "q": 16, "r": 19, "s": 31, "t": 20, "u": 22, - "v": 47, "w": 17, "x": 45, "y": 21, "z": 44, - # Numbers - "0": 11, "1": 2, "2": 3, "3": 4, "4": 5, "5": 6, - "6": 7, "7": 8, "8": 9, "9": 10, - # Symbols - "minus": 12, "-": 12, "equal": 13, "=": 13, "plus": 13, - "leftbracket": 26, "[": 26, "rightbracket": 27, "]": 27, - "semicolon": 39, ";": 39, "apostrophe": 40, "'": 40, - "grave": 41, "`": 41, "backslash": 43, "\\": 43, - "comma": 51, ",": 51, "dot": 52, ".": 52, "period": 52, - "slash": 53, "/": 53, -} - - -def _parse_key_combo(combo: str) -> list[int]: - """Parse a key combo string like 'ctrl+shift+a' into keycodes.""" - keys = [k.strip().lower() for k in combo.replace("+", " ").split()] - codes = [] - for key in keys: - if key in _YDOTOOL_KEYCODES: - codes.append(_YDOTOOL_KEYCODES[key]) - else: - raise ValueError(f"Unknown key: {key}") - return codes - - -async def _ui_type_impl(text: str, delay_ms: int = 0) -> dict[str, Any]: - """Internal: type text into focused window using ydotool.""" - if not text: - return {"status": "error", "message": "No text provided"} - - escaped = text.replace("'", "'\\''") - delay_arg = f"--key-delay {delay_ms}" if delay_ms > 0 else "" - - try: - process = await asyncio.create_subprocess_shell( - f"ydotool type {delay_arg} '{escaped}'", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - _, stderr = await asyncio.wait_for(process.communicate(), timeout=10.0) - - if process.returncode != 0: - return { - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - } - - return {"status": "ok", "typed": len(text)} - - except asyncio.TimeoutError: - return {"status": "error", "message": "Timeout typing text"} - except Exception as exc: - return {"status": "error", "message": str(exc)} - - -async def _ui_key_impl(combo: str) -> dict[str, Any]: - """Internal: send a key combination using ydotool.""" - if not combo: - return {"status": "error", "message": "No key combo provided"} - - try: - codes = _parse_key_combo(combo) - except ValueError as exc: - return {"status": "error", "message": str(exc)} - - key_args = " ".join(f"{code}:1" for code in codes) - key_args += " " + " ".join(f"{code}:0" for code in reversed(codes)) - - try: - process = await asyncio.create_subprocess_shell( - f"ydotool key {key_args}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - if process.returncode != 0: - return { - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - } - - return {"status": "ok", "combo": combo} - - except asyncio.TimeoutError: - return {"status": "error", "message": "Timeout sending keys"} - except Exception as exc: - return {"status": "error", "message": str(exc)} - - -async def _ui_click_impl( - x: int | None = None, - y: int | None = None, - button: str = "left", - clicks: int = 1, -) -> dict[str, Any]: - """Internal: click using ydotool.""" - button_map = {"left": "0xC0", "right": "0xC1", "middle": "0xC2"} - if button.lower() not in button_map: - return { - "status": "error", - "message": f"Unknown button: {button}. Use 'left', 'right', or 'middle'", - } - - button_code = button_map[button.lower()] - clicks = max(1, min(clicks, 5)) - - try: - if x is not None and y is not None: - move_proc = await asyncio.create_subprocess_shell( - f"ydotool mousemove --absolute {x} {y}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - await asyncio.wait_for(move_proc.communicate(), timeout=5.0) - - click_cmd = f"ydotool click {button_code}" - for _ in range(clicks): - process = await asyncio.create_subprocess_shell( - click_cmd, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - if process.returncode != 0: - return { - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - } - - return { - "status": "ok", - "button": button, - "clicks": clicks, - "position": {"x": x, "y": y} if x is not None else "current", - } - - except asyncio.TimeoutError: - return {"status": "error", "message": "Timeout clicking"} - except Exception as exc: - return {"status": "error", "message": str(exc)} - - -async def _ui_focus_window_impl(match: str) -> dict[str, Any]: - """Internal: focus a window by class or title.""" - if not match: - return {"status": "error", "message": "No match pattern provided"} - - try: - process = await asyncio.create_subprocess_shell( - f"hyprctl dispatch focuswindow class:{shlex.quote(match)}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - output = stdout.decode("utf-8", errors="replace").strip() - - if "ok" in output.lower() or process.returncode == 0: - return {"status": "ok", "focused": match, "by": "class"} - - process = await asyncio.create_subprocess_shell( - f"hyprctl dispatch focuswindow title:{shlex.quote(match)}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, _ = await asyncio.wait_for(process.communicate(), timeout=5.0) - output = stdout.decode("utf-8", errors="replace").strip() - - if "ok" in output.lower() or process.returncode == 0: - return {"status": "ok", "focused": match, "by": "title"} - - return { - "status": "error", - "message": f"No window matching '{match}' found", - } - - except asyncio.TimeoutError: - return {"status": "error", "message": "Timeout focusing window"} - except Exception as exc: - return {"status": "error", "message": str(exc)} - - -@mcp.tool("ui_type") # type: ignore -async def ui_type(text: str, delay_ms: int = 0) -> str: - """Type text into the currently focused window. - - Uses ydotool to simulate keyboard input. Works in any window. - - Args: - text: The text to type - delay_ms: Delay between keystrokes in milliseconds (0 = fastest) - - Example: ui_type("Hello world") - """ - result = await _ui_type_impl(text, delay_ms=delay_ms) - return json.dumps(result) - - -@mcp.tool("ui_key") # type: ignore -async def ui_key(combo: str) -> str: - """Send a key combination to the currently focused window. - - Uses ydotool to simulate key presses. Supports modifiers. - - Args: - combo: Key combination like "ctrl+c", "alt+f4", "ctrl+shift+s", "enter" - - Examples: - ui_key("ctrl+l") - Focus browser address bar - ui_key("ctrl+v") - Paste - ui_key("alt+f4") - Close window - ui_key("enter") - Press Enter - ui_key("ctrl+shift+t") - Reopen closed tab - """ - result = await _ui_key_impl(combo) - return json.dumps(result) - - -@mcp.tool("ui_click") # type: ignore -async def ui_click( - x: int | None = None, - y: int | None = None, - button: str = "left", - clicks: int = 1, -) -> str: - """Click at screen coordinates or at current cursor position. - - Uses ydotool for kernel-level mouse input. - - Args: - x: X coordinate (absolute). If None, click at current position. - y: Y coordinate (absolute). If None, click at current position. - button: "left", "right", or "middle" - clicks: Number of clicks (1 = single, 2 = double) - - Examples: - ui_click() - Left click at current position - ui_click(x=100, y=200) - Left click at coordinates - ui_click(button="right") - Right click at current position - ui_click(x=500, y=300, clicks=2) - Double-click at coordinates - """ - result = await _ui_click_impl(x=x, y=y, button=button, clicks=clicks) - return json.dumps(result) - - -@mcp.tool("ui_scroll") # type: ignore -async def ui_scroll(amount: int, direction: str = "down") -> str: - """Scroll in the currently focused window. - - Uses ydotool for kernel-level scroll input. - - Args: - amount: Scroll amount (positive integer, roughly corresponds to "clicks") - direction: "up", "down", "left", or "right" - - Examples: - ui_scroll(3) - Scroll down 3 units - ui_scroll(5, "up") - Scroll up 5 units - ui_scroll(2, "right") - Scroll right 2 units - """ - amount = max(1, min(abs(amount), 100)) # Clamp to 1-100 - - # ydotool scroll uses wheel events - # Vertical: positive = down, negative = up - # Horizontal: positive = right, negative = left - direction = direction.lower() - if direction == "down": - scroll_arg = f"-- 0 -{amount}" - elif direction == "up": - scroll_arg = f"-- 0 {amount}" - elif direction == "right": - scroll_arg = f"-- {amount} 0" - elif direction == "left": - scroll_arg = f"-- -{amount} 0" - else: - return json.dumps({ - "status": "error", - "message": f"Unknown direction: {direction}. Use 'up', 'down', 'left', 'right'", - }) - - try: - # ydotool mousemove with wheel option - process = await asyncio.create_subprocess_shell( - f"ydotool mousemove --wheel {scroll_arg}", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - _, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - if process.returncode != 0: - return json.dumps({ - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - }) - - return json.dumps({"status": "ok", "direction": direction, "amount": amount}) - - except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout scrolling"}) - except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - -@mcp.tool("ui_list_windows") # type: ignore -async def ui_list_windows() -> str: - """List all open windows with their properties. - - Returns window class, title, workspace, position, and size. - Use this to find windows before focusing or closing them. - """ - try: - process = await asyncio.create_subprocess_shell( - "hyprctl clients -j", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - if process.returncode != 0: - return json.dumps({ - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - }) - - clients = json.loads(stdout.decode("utf-8", errors="replace")) - - # Simplify output to reduce tokens - windows = [] - for client in clients: - windows.append({ - "class": client.get("class", ""), - "title": client.get("title", "")[:50], # Truncate long titles - "workspace": client.get("workspace", {}).get("name", ""), - "address": client.get("address", ""), - "focused": client.get("focusHistoryID", -1) == 0, - }) - - return json.dumps({"status": "ok", "windows": windows}) - - except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout listing windows"}) - except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - -@mcp.tool("ui_focus_window") # type: ignore -async def ui_focus_window(match: str) -> str: - """Focus a window by class name or title. - - Args: - match: Window class (e.g., "brave-browser", "foot", "code-insiders") - or partial title match - - Examples: - ui_focus_window("brave-browser") - ui_focus_window("foot") - ui_focus_window("code-insiders") - """ - result = await _ui_focus_window_impl(match) - return json.dumps(result) - - -@mcp.tool("ui_close_window") # type: ignore -async def ui_close_window(match: str | None = None) -> str: - """Close a window by class name, or close the currently focused window. - - Args: - match: Optional window class (e.g., "brave-browser"). If None, closes focused window. - - Examples: - ui_close_window() - Close currently focused window - ui_close_window("brave-browser") - Close Brave browser - """ - if match: - cmd = f"hyprctl dispatch closewindow class:{shlex.quote(match)}" - else: - cmd = "hyprctl dispatch killactive" - - try: - process = await asyncio.create_subprocess_shell( - cmd, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - output = stdout.decode("utf-8", errors="replace").strip() - if "ok" in output.lower() or process.returncode == 0: - return json.dumps({ - "status": "ok", - "closed": match if match else "focused", - }) - - return json.dumps({ - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip() or output, - }) - - except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout closing window"}) - except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - -@mcp.tool("ui_get_monitors") # type: ignore -async def ui_get_monitors() -> str: - """Get information about connected monitors. - - Returns monitor name, resolution, position, scale, and active workspace. - Useful for coordinate-based operations. - """ - try: - process = await asyncio.create_subprocess_shell( - "hyprctl monitors -j", - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - env=_build_shell_env(), - ) - stdout, stderr = await asyncio.wait_for(process.communicate(), timeout=5.0) - - if process.returncode != 0: - return json.dumps({ - "status": "error", - "message": stderr.decode("utf-8", errors="replace").strip(), - }) - - monitors = json.loads(stdout.decode("utf-8", errors="replace")) - - # Simplify output - result = [] - for mon in monitors: - result.append({ - "name": mon.get("name", ""), - "width": mon.get("width", 0), - "height": mon.get("height", 0), - "x": mon.get("x", 0), - "y": mon.get("y", 0), - "scale": mon.get("scale", 1.0), - "focused": mon.get("focused", False), - "activeWorkspace": mon.get("activeWorkspace", {}).get("name", ""), - }) - - return json.dumps({"status": "ok", "monitors": result}) - - except asyncio.TimeoutError: - return json.dumps({"status": "error", "message": "Timeout getting monitors"}) - except Exception as exc: - return json.dumps({"status": "error", "message": str(exc)}) - - -@mcp.tool("ui_batch") # type: ignore -async def ui_batch(actions: list[dict[str, Any]]) -> str: - """Run multiple UI actions in order with a single tool call. - - Each action must include "action" (or "type"). Supported actions: - - focus: match/window/title/class/app - - key: combo/keys - - type: text (optional delay_ms) - - click: x, y, button, clicks - - wait: seconds or ms (default 0.2s) - - paste: optional combo (default ctrl+v) - - Example: - ui_batch([ - {"action": "focus", "match": "brave-browser"}, - {"action": "key", "combo": "ctrl+l"}, - {"action": "type", "text": "https://example.com"}, - {"action": "key", "combo": "enter"}, - ]) - """ - if not actions: - return json.dumps({"status": "error", "message": "No actions provided"}) - - for idx, action in enumerate(actions): - if not isinstance(action, dict): - return json.dumps( - {"status": "error", "index": idx, "message": "Action must be an object"} - ) - - action_type = ( - action.get("action") or action.get("type") or action.get("op") or "" - ) - action_type = str(action_type).strip().lower().replace(" ", "_").replace("-", "_") - - if action_type in ("focus", "focus_window", "window_focus"): - match = ( - action.get("match") - or action.get("window") - or action.get("title") - or action.get("class") - or action.get("app") - ) - if not match: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Focus action requires match", - } - ) - result = await _ui_focus_window_impl(str(match)) - - elif action_type in ("key", "keys", "combo", "key_combo", "keycombo"): - combo = action.get("combo") or action.get("keys") or action.get("key") - if not combo: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Key action requires combo", - } - ) - result = await _ui_key_impl(str(combo)) - - elif action_type in ("type", "text", "input"): - text = ( - action.get("text") - if "text" in action - else action.get("value") or action.get("input") - ) - if text is None: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Type action requires text", - } - ) - delay_ms = action.get("delay_ms") if "delay_ms" in action else None - if delay_ms is None: - delay_ms = action.get("delay") if "delay" in action else None - if delay_ms is None: - delay_ms = action.get("ms") if "ms" in action else None - if delay_ms is None: - delay_ms = 0 - try: - delay_ms = int(delay_ms) - except (TypeError, ValueError): - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "delay_ms must be an integer", - } - ) - result = await _ui_type_impl(str(text), delay_ms=delay_ms) - - elif action_type in ("click", "mouse", "mouse_click"): - x = action.get("x") - y = action.get("y") - if (x is None or y is None) and isinstance(action.get("position"), dict): - pos = action.get("position") - x = pos.get("x", x) - y = pos.get("y", y) - if (x is None) != (y is None): - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Click action requires both x and y", - } - ) - button = action.get("button", "left") - clicks = action.get("clicks", 1) - try: - x = int(x) if x is not None else None - y = int(y) if y is not None else None - clicks = int(clicks) - except (TypeError, ValueError): - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Click action has invalid coordinates or clicks", - } - ) - result = await _ui_click_impl(x=x, y=y, button=str(button), clicks=clicks) - - elif action_type in ("wait", "sleep", "pause"): - seconds = action.get("seconds") - ms = action.get("ms") if "ms" in action else None - if ms is None: - ms = action.get("duration_ms") if "duration_ms" in action else None - if seconds is None and ms is None: - seconds = 0.2 - try: - if ms is not None: - seconds = float(ms) / 1000.0 - else: - seconds = float(seconds) - except (TypeError, ValueError): - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Wait action requires numeric seconds or ms", - } - ) - if seconds < 0: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": "Wait duration must be non-negative", - } - ) - await asyncio.sleep(seconds) - result = {"status": "ok", "waited_seconds": seconds} - - elif action_type in ("paste", "paste_clipboard", "clipboard_paste"): - combo = action.get("combo") or action.get("keys") or "ctrl+v" - result = await _ui_key_impl(str(combo)) - - else: - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": f"Unknown action: {action_type}", - } - ) - - if result.get("status") != "ok": - message = result.get("message") or result.get("error") or "Action failed" - return json.dumps( - { - "status": "error", - "index": idx, - "action": action_type, - "message": message, - } - ) - - return json.dumps({"status": "ok", "performed": len(actions)}) - - # ============================================================================= # Host Profile Tools # ============================================================================= @@ -2626,14 +1944,5 @@ def run( "host_get_profile", "system_update", "system_backup", - # UI Automation - "ui_type", - "ui_key", - "ui_click", - "ui_scroll", - "ui_list_windows", - "ui_focus_window", - "ui_close_window", - "ui_get_monitors", "run", ] From b7291ac20d5229daa5a79f110410e1927a9afa2b Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 28 Dec 2025 19:21:55 -0500 Subject: [PATCH 71/78] feat: Add playwright and its greenlet dependency to the project. --- =1.57.0 | 0 pyproject.toml | 1 + uv.lock | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 =1.57.0 diff --git a/=1.57.0 b/=1.57.0 new file mode 100644 index 00000000..e69de29b diff --git a/pyproject.toml b/pyproject.toml index 44f01a27..2e1251f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ dependencies = [ "python-toon>=0.1.3", "deepgram-sdk>=5.3.0", "openai>=2.14.0", + "playwright>=1.57.0", ] [project.scripts] diff --git a/uv.lock b/uv.lock index edc3dcf4..15e68b04 100644 --- a/uv.lock +++ b/uv.lock @@ -180,6 +180,7 @@ dependencies = [ { name = "mcp" }, { name = "monarchmoney" }, { name = "openai" }, + { name = "playwright" }, { name = "psutil" }, { name = "pydantic-settings" }, { name = "pytest" }, @@ -211,6 +212,7 @@ requires-dist = [ { name = "mcp", specifier = ">=1.25.0" }, { name = "monarchmoney", specifier = ">=0.1.12" }, { name = "openai", specifier = ">=2.14.0" }, + { name = "playwright", specifier = ">=1.57.0" }, { name = "psutil", specifier = ">=7.1.0" }, { name = "pydantic-settings", specifier = ">=2.4.0" }, { name = "pytest", specifier = ">=8.4.2" }, @@ -1207,6 +1209,37 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/14/933037032608787fb92e365883ad6a741c235e0ff992865ec5d904a38f1e/graphql_core-3.2.7-py3-none-any.whl", hash = "sha256:17fc8f3ca4a42913d8e24d9ac9f08deddf0a0b2483076575757f6c412ead2ec0", size = 207262, upload-time = "2025-11-01T22:30:38.912Z" }, ] +[[package]] +name = "greenlet" +version = "3.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/e5/40dbda2736893e3e53d25838e0f19a2b417dfc122b9989c91918db30b5d3/greenlet-3.3.0.tar.gz", hash = "sha256:a82bb225a4e9e4d653dd2fb7b8b2d36e4fb25bc0165422a11e48b88e9e6f78fb", size = 190651, upload-time = "2025-12-04T14:49:44.05Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/2f/28592176381b9ab2cafa12829ba7b472d177f3acc35d8fbcf3673d966fff/greenlet-3.3.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:a1e41a81c7e2825822f4e068c48cb2196002362619e2d70b148f20a831c00739", size = 275140, upload-time = "2025-12-04T14:23:01.282Z" }, + { url = "https://files.pythonhosted.org/packages/2c/80/fbe937bf81e9fca98c981fe499e59a3f45df2a04da0baa5c2be0dca0d329/greenlet-3.3.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f515a47d02da4d30caaa85b69474cec77b7929b2e936ff7fb853d42f4bf8808", size = 599219, upload-time = "2025-12-04T14:50:08.309Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ff/7c985128f0514271b8268476af89aee6866df5eec04ac17dcfbc676213df/greenlet-3.3.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7d2d9fd66bfadf230b385fdc90426fcd6eb64db54b40c495b72ac0feb5766c54", size = 610211, upload-time = "2025-12-04T14:57:43.968Z" }, + { url = "https://files.pythonhosted.org/packages/79/07/c47a82d881319ec18a4510bb30463ed6891f2ad2c1901ed5ec23d3de351f/greenlet-3.3.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30a6e28487a790417d036088b3bcb3f3ac7d8babaa7d0139edbaddebf3af9492", size = 624311, upload-time = "2025-12-04T15:07:14.697Z" }, + { url = "https://files.pythonhosted.org/packages/fd/8e/424b8c6e78bd9837d14ff7df01a9829fc883ba2ab4ea787d4f848435f23f/greenlet-3.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:087ea5e004437321508a8d6f20efc4cfec5e3c30118e1417ea96ed1d93950527", size = 612833, upload-time = "2025-12-04T14:26:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/56699ff9b7c76ca12f1cdc27a886d0f81f2189c3455ff9f65246780f713d/greenlet-3.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ab97cf74045343f6c60a39913fa59710e4bd26a536ce7ab2397adf8b27e67c39", size = 1567256, upload-time = "2025-12-04T15:04:25.276Z" }, + { url = "https://files.pythonhosted.org/packages/1e/37/f31136132967982d698c71a281a8901daf1a8fbab935dce7c0cf15f942cc/greenlet-3.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5375d2e23184629112ca1ea89a53389dddbffcf417dad40125713d88eb5f96e8", size = 1636483, upload-time = "2025-12-04T14:27:30.804Z" }, + { url = "https://files.pythonhosted.org/packages/7e/71/ba21c3fb8c5dce83b8c01f458a42e99ffdb1963aeec08fff5a18588d8fd7/greenlet-3.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:9ee1942ea19550094033c35d25d20726e4f1c40d59545815e1128ac58d416d38", size = 301833, upload-time = "2025-12-04T14:32:23.929Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7c/f0a6d0ede2c7bf092d00bc83ad5bafb7e6ec9b4aab2fbdfa6f134dc73327/greenlet-3.3.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:60c2ef0f578afb3c8d92ea07ad327f9a062547137afe91f38408f08aacab667f", size = 275671, upload-time = "2025-12-04T14:23:05.267Z" }, + { url = "https://files.pythonhosted.org/packages/44/06/dac639ae1a50f5969d82d2e3dd9767d30d6dbdbab0e1a54010c8fe90263c/greenlet-3.3.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a5d554d0712ba1de0a6c94c640f7aeba3f85b3a6e1f2899c11c2c0428da9365", size = 646360, upload-time = "2025-12-04T14:50:10.026Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/0fb76fe6c5369fba9bf98529ada6f4c3a1adf19e406a47332245ef0eb357/greenlet-3.3.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3a898b1e9c5f7307ebbde4102908e6cbfcb9ea16284a3abe15cab996bee8b9b3", size = 658160, upload-time = "2025-12-04T14:57:45.41Z" }, + { url = "https://files.pythonhosted.org/packages/93/79/d2c70cae6e823fac36c3bbc9077962105052b7ef81db2f01ec3b9bf17e2b/greenlet-3.3.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dcd2bdbd444ff340e8d6bdf54d2f206ccddbb3ccfdcd3c25bf4afaa7b8f0cf45", size = 671388, upload-time = "2025-12-04T15:07:15.789Z" }, + { url = "https://files.pythonhosted.org/packages/b8/14/bab308fc2c1b5228c3224ec2bf928ce2e4d21d8046c161e44a2012b5203e/greenlet-3.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5773edda4dc00e173820722711d043799d3adb4f01731f40619e07ea2750b955", size = 660166, upload-time = "2025-12-04T14:26:05.099Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d2/91465d39164eaa0085177f61983d80ffe746c5a1860f009811d498e7259c/greenlet-3.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ac0549373982b36d5fd5d30beb8a7a33ee541ff98d2b502714a09f1169f31b55", size = 1615193, upload-time = "2025-12-04T15:04:27.041Z" }, + { url = "https://files.pythonhosted.org/packages/42/1b/83d110a37044b92423084d52d5d5a3b3a73cafb51b547e6d7366ff62eff1/greenlet-3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d198d2d977460358c3b3a4dc844f875d1adb33817f0613f663a656f463764ccc", size = 1683653, upload-time = "2025-12-04T14:27:32.366Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/9030e6f9aa8fd7808e9c31ba4c38f87c4f8ec324ee67431d181fe396d705/greenlet-3.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:73f51dd0e0bdb596fb0417e475fa3c5e32d4c83638296e560086b8d7da7c4170", size = 305387, upload-time = "2025-12-04T14:26:51.063Z" }, + { url = "https://files.pythonhosted.org/packages/a0/66/bd6317bc5932accf351fc19f177ffba53712a202f9df10587da8df257c7e/greenlet-3.3.0-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:d6ed6f85fae6cdfdb9ce04c9bf7a08d666cfcfb914e7d006f44f840b46741931", size = 282638, upload-time = "2025-12-04T14:25:20.941Z" }, + { url = "https://files.pythonhosted.org/packages/30/cf/cc81cb030b40e738d6e69502ccbd0dd1bced0588e958f9e757945de24404/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9125050fcf24554e69c4cacb086b87b3b55dc395a8b3ebe6487b045b2614388", size = 651145, upload-time = "2025-12-04T14:50:11.039Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ea/1020037b5ecfe95ca7df8d8549959baceb8186031da83d5ecceff8b08cd2/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:87e63ccfa13c0a0f6234ed0add552af24cc67dd886731f2261e46e241608bee3", size = 654236, upload-time = "2025-12-04T14:57:47.007Z" }, + { url = "https://files.pythonhosted.org/packages/69/cc/1e4bae2e45ca2fa55299f4e85854606a78ecc37fead20d69322f96000504/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2662433acbca297c9153a4023fe2161c8dcfdcc91f10433171cf7e7d94ba2221", size = 662506, upload-time = "2025-12-04T15:07:16.906Z" }, + { url = "https://files.pythonhosted.org/packages/57/b9/f8025d71a6085c441a7eaff0fd928bbb275a6633773667023d19179fe815/greenlet-3.3.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3c6e9b9c1527a78520357de498b0e709fb9e2f49c3a513afd5a249007261911b", size = 653783, upload-time = "2025-12-04T14:26:06.225Z" }, + { url = "https://files.pythonhosted.org/packages/f6/c7/876a8c7a7485d5d6b5c6821201d542ef28be645aa024cfe1145b35c120c1/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:286d093f95ec98fdd92fcb955003b8a3d054b4e2cab3e2707a5039e7b50520fd", size = 1614857, upload-time = "2025-12-04T15:04:28.484Z" }, + { url = "https://files.pythonhosted.org/packages/4f/dc/041be1dff9f23dac5f48a43323cd0789cb798342011c19a248d9c9335536/greenlet-3.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c10513330af5b8ae16f023e8ddbfb486ab355d04467c4679c5cfe4659975dd9", size = 1676034, upload-time = "2025-12-04T14:27:33.531Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -2672,6 +2705,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/01/56f60c70f2ad08052d9e64a40271cf7a9477662d6eba43391ee2525dc6ed/playa_pdf-0.7.1-py3-none-any.whl", hash = "sha256:c706f0ce9f6a2d0ee539ef43fbe396dd6dc3397ce7519f339dcb7aab811c4b12", size = 5666339, upload-time = "2025-08-17T04:07:08.232Z" }, ] +[[package]] +name = "playwright" +version = "1.57.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet" }, + { name = "pyee" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/b6/e17543cea8290ae4dced10be21d5a43c360096aa2cce0aa7039e60c50df3/playwright-1.57.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:9351c1ac3dfd9b3820fe7fc4340d96c0d3736bb68097b9b7a69bd45d25e9370c", size = 41985039, upload-time = "2025-12-09T08:06:18.408Z" }, + { url = "https://files.pythonhosted.org/packages/8b/04/ef95b67e1ff59c080b2effd1a9a96984d6953f667c91dfe9d77c838fc956/playwright-1.57.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a4a9d65027bce48eeba842408bcc1421502dfd7e41e28d207e94260fa93ca67e", size = 40775575, upload-time = "2025-12-09T08:06:22.105Z" }, + { url = "https://files.pythonhosted.org/packages/60/bd/5563850322a663956c927eefcf1457d12917e8f118c214410e815f2147d1/playwright-1.57.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:99104771abc4eafee48f47dac2369e0015516dc1ce8c409807d2dd440828b9a4", size = 41985042, upload-time = "2025-12-09T08:06:25.357Z" }, + { url = "https://files.pythonhosted.org/packages/56/61/3a803cb5ae0321715bfd5247ea871d25b32c8f372aeb70550a90c5f586df/playwright-1.57.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:284ed5a706b7c389a06caa431b2f0ba9ac4130113c3a779767dda758c2497bb1", size = 45975252, upload-time = "2025-12-09T08:06:29.186Z" }, + { url = "https://files.pythonhosted.org/packages/83/d7/b72eb59dfbea0013a7f9731878df8c670f5f35318cedb010c8a30292c118/playwright-1.57.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a1bae6c0a07839cdeaddbc0756b3b2b85e476c07945f64ece08f1f956a86f1", size = 45706917, upload-time = "2025-12-09T08:06:32.549Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/3fc9ebd7c95ee54ba6a68d5c0bc23e449f7235f4603fc60534a364934c16/playwright-1.57.0-py3-none-win32.whl", hash = "sha256:1dd93b265688da46e91ecb0606d36f777f8eadcf7fbef12f6426b20bf0c9137c", size = 36553860, upload-time = "2025-12-09T08:06:35.864Z" }, + { url = "https://files.pythonhosted.org/packages/58/d4/dcdfd2a33096aeda6ca0d15584800443dd2be64becca8f315634044b135b/playwright-1.57.0-py3-none-win_amd64.whl", hash = "sha256:6caefb08ed2c6f29d33b8088d05d09376946e49a73be19271c8cd5384b82b14c", size = 36553864, upload-time = "2025-12-09T08:06:38.915Z" }, + { url = "https://files.pythonhosted.org/packages/6a/60/fe31d7e6b8907789dcb0584f88be741ba388413e4fbce35f1eba4e3073de/playwright-1.57.0-py3-none-win_arm64.whl", hash = "sha256:5f065f5a133dbc15e6e7c71e7bc04f258195755b1c32a432b792e28338c8335e", size = 32837940, upload-time = "2025-12-09T08:06:42.268Z" }, +] + [[package]] name = "pluggy" version = "1.6.0" @@ -3033,6 +3085,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/ab/0da7d0397112546309709f464bdf65de4e1697e3caba07556751fc4d8bcd/pydocket-0.16.1-py3-none-any.whl", hash = "sha256:bc6ccf7e91164761def854b4014101abf23c3cc2fb7d0fa2c4e07ea3bf6a1826", size = 63208, upload-time = "2025-12-19T19:43:47.309Z" }, ] +[[package]] +name = "pyee" +version = "13.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/03/1fd98d5841cd7964a27d729ccf2199602fe05eb7a405c1462eb7277945ed/pyee-13.0.0.tar.gz", hash = "sha256:b391e3c5a434d1f5118a25615001dbc8f669cf410ab67d04c4d4e07c55481c37", size = 31250, upload-time = "2025-03-17T18:53:15.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/4d/b9add7c84060d4c1906abe9a7e5359f2a60f7a9a4f67268b2766673427d8/pyee-13.0.0-py3-none-any.whl", hash = "sha256:48195a3cddb3b1515ce0695ed76036b5ccc2ef3a9f963ff9f77aec0139845498", size = 15730, upload-time = "2025-03-17T18:53:14.532Z" }, +] + [[package]] name = "pygments" version = "2.19.2" From 2fae40bc33ba4296a55e6b8e1e1bd8be9a0f8f2d Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 28 Dec 2025 23:30:47 -0500 Subject: [PATCH 72/78] feat: Add `browser_press_key` tool and update Playwright server to launch fresh app-mode browsers, with corresponding LLM prompt and test adjustments. --- calendar_screenshot.png | Bin 0 -> 64809 bytes src/backend/data/clients/cli/llm.json | 2 +- src/backend/mcp_servers/playwright_server.py | 427 +++++-------------- tests/test_playwright_server.py | 85 ++-- 4 files changed, 139 insertions(+), 375 deletions(-) create mode 100644 calendar_screenshot.png diff --git a/calendar_screenshot.png b/calendar_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..8047e234f3d8bd2860e309793b20ff67b7d2b2c4 GIT binary patch literal 64809 zcmd?Rby!r<_cuC%2EvmjFRFr%N0^!ocM~6U+`08}9AdvKE2?ThW0I@OfIq(U79|8$d z;kS9}eFyTIHu&}@x}PcdR3=*>23^%-b+GPWg8>~tUu?YF5&WLo-GTW1+S9?x0Kdrj z+n6B`%P;F3L_a|X$Zaps{8XOYUR9pn0>+AaPg4G<5}YIbpKGFTuX%ly5qf(+ zwA*pmFrTx7D{jBuwyf8Pq1Cy$xy6mewY9aC?d^qy%{i2%g$3QWzir0s0lI4W>dVW^ zFJ8Qm`t-@&{fvKdGBGjH3N{oP8cKRQ!0SaLf=7>9$c3Zd5RwxUQ{p3@=Y`bQ3!-KH z?dwyNl@E;yi)wU{E7s(Mlzs3JMn9`3XSSw~Wd!pzpv`>@Cn6`F$~5c#yzgQD&H-6V1So9}Lm1DKw|F=JTM{!<>N=jDU#N;IVR?~HCw^oUM zV_bYvcS|4?s;^i1ez3rWiDfS?CMH>c%zMA>Ejoladj&3~&Pe$dEKNtDLwm7ivEB)4 zGR5^UKP4f-ZM$bOfr1^ohf(NRgLfycn3&i|&cMaapotcXp*h6p>7yDjrPc%53vo$F zdb8Kwt>3v#rhEeEl#*K*BtGJk6O)ftF^#wGj`b#CoY3_A{re8`#O<>l=)`SF=ul`| zUyX)=hac7s)=LJLs_Db^T{JOklF1USv>8`dSH@WD+0;f7R;VfD$@~BGdL$?)$XUo^ z`DZS*(IZqcvoOB&vV1vey2hUKQ9)&8Wp_M_pa7rS#i=sG(63*2q~1W}a^pL}{m6-I zBK0aOM9!lJANMAydG?neWpHU!=n1g{BgRzZ<>gi0z0Gc=risc?63aiM$x@`~i2 zz?*AQ)CdU)cZ7Qf9*+aX@||s19_!V^euWWRyI`_-_xrsea%@}TxR?ZORp@U>%iY`M zcx_^y;?UjM8T>OYEKJVW_?a0qcAZfOCKi@Gw0?VWLn5S5$L(~h?MG(jGjvEC`mHjN zb25eNLG`-_2lvc-dYO}aB}BQpr8c&^vb$$yW}1A6xJypqd?RqkE8PD)*cfpQB_$=i zj@YcYxcTN+%f5cIYlIwBOd+WQ+U$RcZKQL%KI!Zg)o^a`-c3zSAt52^W?1s+?OYh_%3goI_put&2aS*tnZ^{9|=BTy}yg!#Udn9ByC#*k;xc{*-R z)}|I_=H}*QvZx?YJJIqlmEJZ{k$4_-R29ZrI5|7-<2_KP?^-mrUsF8UKX!FG zNJkeg-#_bMDX~*Q)?uJ?Gcz+Ze*5aRwZ1$OV+zziuH)sCCw@9`hT$AIyl#84iXyvM zI#b`Y{+C4X((;N={ka}G#5|i9AKh2WDM~ime1+}umrCOWPTsp9Q676Cht1D3ZDY36 z3T_^l-1r0wT3+RqLAkKCsVjdBn(B&*@f1?0tEs6`!;Rj_9Q_NrwC~CB@fY(8HK!qV z+ti#E&2}~xuw&=L4jj?-K6?|BgSkAJx?_~oq!R2rwHbCHq3Z$^wtc-RDHFl zqqX6tt}Mx~Bzi>p+U8~{+;Si4u9s7W4F%J3$`(G?Bp@#v4CAI!NQTVBywey@6({ zYMc;uiT3JMXG(iP-+y>Re?J%LYg_8r7pY&TIu_bUR$)Hsc&#*$6&1BZI9jY1HFFZ7 zr@pzrf1Htbe8tPebaUTkHlGuz`ZTOd2SJ#xe*U}L$;<1i?r8I1btj1o0@23pj?|+P za4oB-kdv2h`;pYXqFvRrL{$A3mf{S5^wvy|WrO zoaW>h+R^hS=kPK;ATI9e>T0@iHFI!KSti@8VlDB^i4)H_^*$)|_ZNHn_94)USD|K| z#jaCWwkd*6abk-S8z~FKwrHRAj11J>NqOy{%od8WvQv$oCuzRd?yG%N=8g203JGjt zuZZL0<2k#<&O+@

                                              -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%0A1&E<;3Kyo#s?=(nwM;$L~u+Xm8v)eMjt2 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 A@c;k- literal 0 HcmV?d00001 diff --git a/src/backend/data/clients/cli/llm.json b/src/backend/data/clients/cli/llm.json index dee28b54..0b86115f 100644 --- a/src/backend/data/clients/cli/llm.json +++ b/src/backend/data/clients/cli/llm.json @@ -1,6 +1,6 @@ { "model": "minimax/minimax-m2", - "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- For web tasks: use xdg-open or brave with URL, e.g.: xdg-open 'https://google.com/search?q=query'\n- For browser automation: use playwright tools (browser_open, browser_navigate, etc.)\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don't describe internal reasoning.\n", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (controlled via Playwright)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1-3 tool calls).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser automation (CRITICAL):\n- Use browser_* MCP tools for ALL web tasks: browser_open, browser_navigate, browser_type, browser_press_key, browser_extract, browser_click, browser_wait, browser_screenshot, browser_close.\n- browser_open(preset='google') launches a fresh Brave window that you control.\n- browser_type to enter text, then browser_press_key('Enter') to submit forms.\n- Do NOT use xdg-open, shell_execute with URLs, or curl for web tasks - these open in an uncontrolled browser.\n- Do NOT try to use ui_key, ui_type, ui_click - these tools do not exist.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don't describe internal reasoning.\n", "temperature": 0.7, "max_tokens": 1000, "supports_tools": null, diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index 304ef340..6f392917 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -1,7 +1,7 @@ """MCP server exposing Playwright-based browser automation tools. -Connects to an existing browser via Chrome DevTools Protocol (CDP), -enabling browser control without screenshots in the LLM loop. +Always launches fresh app-mode browser windows for each session. +Connects via Chrome DevTools Protocol (CDP) for browser-native automation. """ from __future__ import annotations @@ -17,23 +17,10 @@ from fastmcp import FastMCP -# Default port for HTTP transport +# Default ports DEFAULT_HTTP_PORT = 9011 -DEFAULT_CDP_ENDPOINT = "http://localhost:9222" DEFAULT_CDP_PORT = 9222 -# URLs that should never be auto-selected as the working page -# These are typically chat interfaces or important apps -_PROTECTED_URL_PATTERNS = [ - "localhost:5173", # Dev server (Svelte frontend) - "127.0.0.1:5173", - "chat.openai.com", # ChatGPT - "gemini.google.com", # Gemini - "claude.ai", # Claude - "mail.google.com", # Gmail - "calendar.google.com", # Calendar -] - # Waybar bookmark presets (brave --app mode minimal windows) _WAYBAR_PRESETS: dict[str, str] = { "chatgpt": "https://chat.openai.com", @@ -48,10 +35,9 @@ mcp = FastMCP("playwright") # ============================================================================= -# Global Browser State +# Global Browser State (single app-mode window per session) # ============================================================================= -# Lazy import playwright to avoid startup cost when not using browser tools _playwright: Any = None _browser: Any = None _context: Any = None @@ -76,149 +62,30 @@ async def _ensure_playwright() -> Any: async def _get_page() -> Any: """Get the current page, raising if not connected.""" if not _connected or _page is None: - raise RuntimeError("Not connected to browser. Call browser_connect first.") + raise RuntimeError("Not connected. Call browser_open first.") return _page -def _is_protected_url(url: str) -> bool: - """Check if a URL is protected (should not be auto-selected for automation). - - Protected URLs are typically chat interfaces or important apps that - should not be hijacked when connecting to the browser. - """ - if not url: - return False - url_lower = url.lower() - return any(pattern in url_lower for pattern in _PROTECTED_URL_PATTERNS) - - # ============================================================================= # Browser Tools # ============================================================================= -async def _browser_connect_impl( - endpoint: str = DEFAULT_CDP_ENDPOINT, - timeout_ms: int = 30000, -) -> str: - """Internal implementation of browser_connect that can be called directly.""" - global _browser, _context, _page, _connected - - try: - pw = await _ensure_playwright() - - # Connect to existing browser via CDP - _browser = await pw.chromium.connect_over_cdp( - endpoint, - timeout=timeout_ms, - ) - - # Gather all pages across all contexts - all_pages: list[Any] = [] - for ctx in _browser.contexts: - all_pages.extend(ctx.pages) - - # Find the first non-protected page to use - selected_page = None - protected_skipped = [] - for p in all_pages: - if _is_protected_url(p.url): - protected_skipped.append(p.url) - elif selected_page is None: - selected_page = p - - # If all pages are protected, create a new tab - if selected_page is None: - if _browser.contexts: - _context = _browser.contexts[0] - else: - _context = await _browser.new_context() - _page = await _context.new_page() - created_new_tab = True - else: - _page = selected_page - _context = _page.context - created_new_tab = False - - _connected = True - - # Gather info about open tabs - tabs = [] - for ctx in _browser.contexts: - for p in ctx.pages: - page_title = await p.title() - tabs.append({ - "title": page_title[:50] if page_title else "(untitled)", - "url": p.url, - "protected": _is_protected_url(p.url), - "active": p == _page, - }) - - return json.dumps({ - "status": "ok", - "endpoint": endpoint, - "tabs_count": len(tabs), - "tabs": tabs[:10], # Limit to first 10 for token efficiency - "current_url": _page.url if _page else None, - "created_new_tab": created_new_tab, - "protected_skipped": protected_skipped[:5] if protected_skipped else None, - }) - - except Exception as exc: - _connected = False - return json.dumps({ - "status": "error", - "message": str(exc), - "hint": "Ensure browser is running with: brave --remote-debugging-port=9222", - }) - - -@mcp.tool("browser_connect") # type: ignore[misc] -async def browser_connect( - endpoint: str = DEFAULT_CDP_ENDPOINT, - timeout_ms: int = 30000, -) -> str: - """Connect to a running browser via Chrome DevTools Protocol. - - The browser must be started with remote debugging enabled, e.g.: - brave --remote-debugging-port=9222 - - IMPORTANT: This will NOT hijack protected pages like localhost:5173, - chat.openai.com, or other chat interfaces. If all open pages are - protected, a new blank tab will be created for automation work. - - Args: - endpoint: CDP endpoint URL (default: http://localhost:9222) - timeout_ms: Connection timeout in milliseconds (default: 30000) - - Returns: - JSON with status, browser info, and available pages. - """ - return await _browser_connect_impl(endpoint, timeout_ms) - - @mcp.tool("browser_open") # type: ignore[misc] async def browser_open( url: str | None = None, preset: str | None = None, - wait_for_ready: bool = True, timeout_ms: int = 10000, ) -> str: - """Launch a new minimal browser window (Brave 'app mode') with CDP enabled. - - Opens a clean, chromeless window like the waybar bookmarks. - Automatically connects via CDP when ready. + """Launch a fresh app-mode browser window and connect for automation. - Use this when: - - No browser is running with CDP enabled - - You want a fresh window that won't interfere with existing tabs - - You want to use a waybar bookmark preset + Always starts a NEW window - no session restoration, no existing tabs. + This is the only way to start browser automation. Args: url: URL to open (ignored if preset is provided) preset: Waybar bookmark preset name. Options: - "chatgpt", "gemini", "google", "dev", "calendar", "gmail", "github" - wait_for_ready: Wait for CDP connection after launch (default: True) timeout_ms: CDP connection timeout (default: 10000) Returns: @@ -226,6 +93,10 @@ async def browser_open( """ global _browser, _context, _page, _connected + # Close any existing session first + if _connected: + await browser_close() + # Resolve URL from preset or direct URL if preset: preset_lower = preset.lower() @@ -242,135 +113,65 @@ async def browser_open( target_url = "about:blank" try: - # First, check if CDP is already available (browser already running) - # This prevents launching orphaned windows when a browser exists - try: - import httpx - async with httpx.AsyncClient(timeout=1.0) as client: - resp = await client.get(f"http://localhost:{DEFAULT_CDP_PORT}/json/version") - if resp.status_code == 200: - # Browser already running! Just connect, don't navigate - result = await _browser_connect_impl(timeout_ms=5000) - result_data = json.loads(result) - - if result_data.get("status") == "ok": - # Return connection info; LLM can use browser_navigate if needed - return json.dumps({ - "status": "ok", - "reused_existing": True, - "intended_url": target_url, - "preset": preset, - "current_url": result_data.get("current_url"), - "tabs_count": result_data.get("tabs_count"), - "hint": f"Browser already running. Use browser_navigate to go to {target_url}", - }) - except Exception: - # CDP not available, proceed with launching new browser - pass - - # No existing browser, launch Brave in app mode with CDP enabled - cdp_flags = f"--remote-debugging-port={DEFAULT_CDP_PORT} --force-dark-mode --disable-session-restore" - cmd = f'brave --app="{target_url}" {cdp_flags}' - - # Launch in background + # Launch Brave in app mode with CDP enabled + # --disable-session-restore: No tab restoration + # --no-first-run: Skip first-run dialogs + # --force-dark-mode: Dark theme + cmd = [ + "brave", + f"--app={target_url}", + f"--remote-debugging-port={DEFAULT_CDP_PORT}", + "--disable-session-restore", + "--no-first-run", + "--force-dark-mode", + ] + subprocess.Popen( cmd, - shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, start_new_session=True, ) - if not wait_for_ready: - return json.dumps({ - "status": "launched", - "url": target_url, - "preset": preset, - "message": "Browser launched. Call browser_connect to connect.", - }) - # Wait for CDP to become available + pw = await _ensure_playwright() start_time = time.time() last_error = None while (time.time() - start_time) * 1000 < timeout_ms: - await asyncio.sleep(0.5) # Check every 500ms + await asyncio.sleep(0.3) try: - result = await _browser_connect_impl(timeout_ms=2000) - result_data = json.loads(result) - - if result_data.get("status") == "ok": - # Successfully connected - return json.dumps({ - "status": "ok", - "launched_url": target_url, - "preset": preset, - "current_url": result_data.get("current_url"), - "tabs_count": result_data.get("tabs_count"), - }) + _browser = await pw.chromium.connect_over_cdp( + f"http://localhost:{DEFAULT_CDP_PORT}", + timeout=2000, + ) + + # Get the page from the browser + if _browser.contexts and _browser.contexts[0].pages: + _context = _browser.contexts[0] + _page = _context.pages[0] else: - last_error = result_data.get("message") - except Exception as e: - last_error = str(e) + _context = await _browser.new_context() + _page = await _context.new_page() + await _page.goto(target_url) - return json.dumps({ - "status": "error", - "message": f"Browser launched but CDP connection timed out: {last_error}", - "hint": "The browser may still be starting. Try browser_connect in a few seconds.", - }) + _connected = True - except Exception as exc: - return json.dumps({ - "status": "error", - "message": str(exc), - }) - - -@mcp.tool("browser_new_tab") # type: ignore[misc] -async def browser_new_tab( - url: str = "about:blank", - switch_to: bool = True, -) -> str: - """Create a new tab for automation work. - - Use this when you're connected to a browser but want to work in a - fresh tab without disturbing existing pages. - - Args: - url: URL to open in the new tab (default: about:blank) - switch_to: Make this the active page for automation (default: True) - - Returns: - JSON with status and new tab info. - """ - global _page - - try: - if not _connected or _context is None: - return json.dumps({ - "status": "error", - "message": "Not connected to browser. Call browser_connect or browser_open first.", - }) - - # Create new page in current context - new_page = await _context.new_page() - - # Navigate if URL provided - if url and url != "about:blank": - await new_page.goto(url, wait_until="domcontentloaded") + return json.dumps({ + "status": "ok", + "url": target_url, + "preset": preset, + "current_url": _page.url, + }) - # Switch to new page if requested - if switch_to: - _page = new_page - await new_page.bring_to_front() + except Exception as e: + last_error = str(e) - page_title = await new_page.title() return json.dumps({ - "status": "ok", - "url": new_page.url, - "title": page_title[:50] if page_title else None, - "active": switch_to, + "status": "error", + "message": f"CDP connection timed out: {last_error}", + "hint": "Browser may still be starting. Try again.", }) except Exception as exc: @@ -386,7 +187,7 @@ async def browser_navigate( wait_until: str = "domcontentloaded", timeout_ms: int = 30000, ) -> str: - """Navigate to a URL in the current tab. + """Navigate to a URL in the current page. Args: url: The URL to navigate to @@ -439,7 +240,7 @@ async def browser_click( timeout_ms: Timeout waiting for element Returns: - JSON with status and clicked element info. + JSON with status. """ try: page = await _get_page() @@ -454,7 +255,6 @@ async def browser_click( return json.dumps({ "status": "ok", "selector": selector, - "clicked": True, }) except Exception as exc: @@ -507,6 +307,50 @@ async def browser_type( }) +@mcp.tool("browser_press_key") # type: ignore[misc] +async def browser_press_key( + key: str, + selector: str | None = None, +) -> str: + """Press a keyboard key on the page. + + Use this to submit forms (Enter), navigate (Tab), close dialogs (Escape), etc. + + Args: + key: Key to press. Examples: + - "Enter" - submit form + - "Tab" - next field + - "Escape" - close dialog + - "ArrowDown", "ArrowUp" - navigate lists + - "Backspace", "Delete" - delete text + - Modifiers: "Control+a", "Shift+Tab", "Meta+Enter" + selector: Optional element to focus first before pressing key + + Returns: + JSON with status. + """ + try: + page = await _get_page() + + if selector: + await page.focus(selector) + + await page.keyboard.press(key) + + return json.dumps({ + "status": "ok", + "key": key, + "selector": selector, + }) + + except Exception as exc: + return json.dumps({ + "status": "error", + "key": key, + "message": str(exc), + }) + + @mcp.tool("browser_extract") # type: ignore[misc] async def browser_extract( selector: str | None = None, @@ -550,7 +394,6 @@ async def browser_extract( else: content = await element.inner_text() else: - # Full page text if content_type == "text": content = await page.inner_text("body") elif content_type == "html": @@ -558,7 +401,6 @@ async def browser_extract( else: content = await page.inner_text("body") - # Truncate if needed truncated = len(content) > limit content = content[:limit] @@ -626,68 +468,6 @@ async def browser_wait( }) -@mcp.tool("browser_tabs") # type: ignore[misc] -async def browser_tabs( - switch_to: int | None = None, -) -> str: - """List browser tabs or switch to a specific tab. - - Args: - switch_to: Tab index to switch to (0-based). If None, just list tabs. - - Returns: - JSON with tabs list and current tab info. - """ - global _page - - try: - if not _connected or _browser is None: - raise RuntimeError("Not connected to browser") - - # Gather all tabs - tabs = [] - all_pages = [] - for ctx in _browser.contexts: - for p in ctx.pages: - all_pages.append(p) - page_title = await p.title() - tabs.append({ - "index": len(tabs), - "title": page_title[:50] if page_title else "(untitled)", - "url": p.url, - "active": p == _page, - }) - - # Switch if requested - if switch_to is not None: - if 0 <= switch_to < len(all_pages): - _page = all_pages[switch_to] - await _page.bring_to_front() - # Update active flag - for i, tab in enumerate(tabs): - tab["active"] = (i == switch_to) - else: - return json.dumps({ - "status": "error", - "message": f"Invalid tab index: {switch_to}. Valid: 0-{len(all_pages)-1}", - }) - - return json.dumps({ - "status": "ok", - "tabs_count": len(tabs), - "tabs": tabs, - "current_index": next( - (i for i, t in enumerate(tabs) if t["active"]), 0 - ), - }) - - except Exception as exc: - return json.dumps({ - "status": "error", - "message": str(exc), - }) - - @mcp.tool("browser_screenshot") # type: ignore[misc] async def browser_screenshot( selector: str | None = None, @@ -707,13 +487,11 @@ async def browser_screenshot( try: page = await _get_page() - # Determine save path if path: save_path = Path(path) else: save_path = Path(tempfile.gettempdir()) / f"screenshot_{int(time.time())}.png" - # Take screenshot if selector: element = await page.query_selector(selector) if not element: @@ -741,10 +519,9 @@ async def browser_screenshot( @mcp.tool("browser_close") # type: ignore[misc] async def browser_close() -> str: - """Close the Playwright connection (does NOT close the browser itself). + """Close the browser and disconnect. - Use this to cleanly disconnect when done with automation. - The browser window remains open for manual use. + Closes the app-mode window entirely. Returns: JSON with status. @@ -765,7 +542,7 @@ async def browser_close() -> str: return json.dumps({ "status": "ok", - "message": "Disconnected from browser", + "message": "Browser closed", }) except Exception as exc: @@ -825,15 +602,13 @@ def run( __all__ = [ "mcp", "run", - "browser_connect", "browser_open", - "browser_new_tab", "browser_navigate", "browser_click", "browser_type", + "browser_press_key", "browser_extract", "browser_wait", - "browser_tabs", "browser_screenshot", "browser_close", ] diff --git a/tests/test_playwright_server.py b/tests/test_playwright_server.py index 3405ed2b..69a4583e 100644 --- a/tests/test_playwright_server.py +++ b/tests/test_playwright_server.py @@ -3,7 +3,7 @@ from __future__ import annotations import json -from unittest.mock import AsyncMock, MagicMock, patch +from unittest.mock import AsyncMock, MagicMock import pytest @@ -40,7 +40,7 @@ async def test_browser_navigate_not_connected(): result = json.loads(await fn("https://example.com")) assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_click_not_connected(): @@ -49,7 +49,7 @@ async def test_browser_click_not_connected(): result = json.loads(await fn("button")) assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_type_not_connected(): @@ -58,7 +58,7 @@ async def test_browser_type_not_connected(): result = json.loads(await fn("input", "hello")) assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_extract_not_connected(): @@ -67,7 +67,7 @@ async def test_browser_extract_not_connected(): result = json.loads(await fn()) assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_wait_not_connected(): @@ -76,16 +76,7 @@ async def test_browser_wait_not_connected(): result = json.loads(await fn("#element")) assert result["status"] == "error" - assert "connect" in result["message"].lower() - - -async def test_browser_tabs_not_connected(): - """Test error when trying to list tabs without connecting first.""" - fn = _get_fn(playwright_server.browser_tabs) - result = json.loads(await fn()) - - assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_screenshot_not_connected(): @@ -94,7 +85,7 @@ async def test_browser_screenshot_not_connected(): result = json.loads(await fn()) assert result["status"] == "error" - assert "connect" in result["message"].lower() + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() async def test_browser_close_when_not_connected(): @@ -103,7 +94,7 @@ async def test_browser_close_when_not_connected(): result = json.loads(await fn()) assert result["status"] == "ok" - assert "disconnect" in result["message"].lower() + assert "close" in result["message"].lower() async def test_browser_navigate_success(): @@ -139,7 +130,6 @@ async def test_browser_click_success(): result = json.loads(await fn("button.submit")) assert result["status"] == "ok" - assert result["clicked"] is True mock_page.click.assert_called_once() @@ -199,48 +189,47 @@ async def test_browser_extract_truncation(): assert result["truncated"] is True -async def test_browser_tabs_list(): - """Test listing tabs with mocked browser.""" - mock_page1 = MagicMock() - mock_page1.title = AsyncMock(return_value="Page 1") - mock_page1.url = "https://example1.com" - - mock_page2 = MagicMock() - mock_page2.title = AsyncMock(return_value="Page 2") - mock_page2.url = "https://example2.com" - - mock_context = MagicMock() - mock_context.pages = [mock_page1, mock_page2] - - mock_browser = MagicMock() - mock_browser.contexts = [mock_context] - - playwright_server._browser = mock_browser - playwright_server._page = mock_page1 - playwright_server._connected = True - - fn = _get_fn(playwright_server.browser_tabs) - result = json.loads(await fn()) - - assert result["status"] == "ok" - assert result["tabs_count"] == 2 - assert len(result["tabs"]) == 2 - - def test_module_exports(): """Test that all expected functions are exported.""" expected = [ "mcp", "run", - "browser_connect", + "browser_open", "browser_navigate", "browser_click", "browser_type", + "browser_press_key", "browser_extract", "browser_wait", - "browser_tabs", "browser_screenshot", "browser_close", ] for name in expected: assert hasattr(playwright_server, name), f"Missing export: {name}" + +async def test_browser_press_key_not_connected(): + """Test error when trying to press key without connecting first.""" + fn = _get_fn(playwright_server.browser_press_key) + result = json.loads(await fn("Enter")) + + assert result["status"] == "error" + assert "browser_open" in result["message"].lower() or "connect" in result["message"].lower() + + +async def test_browser_press_key_success(): + """Test successful key press with mocked page.""" + mock_keyboard = MagicMock() + mock_keyboard.press = AsyncMock() + + mock_page = MagicMock() + mock_page.keyboard = mock_keyboard + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_press_key) + result = json.loads(await fn("Enter")) + + assert result["status"] == "ok" + assert result["key"] == "Enter" + mock_keyboard.press.assert_called_once_with("Enter") From 9c25a3d39a78a7c4d8c9ac33b4e58b95b96e8ead Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 28 Dec 2025 23:57:03 -0500 Subject: [PATCH 73/78] feat: add UI for agent invocation limit and improve playwright `type_text` documentation. --- frontend-cli/shell_chat.py | 18 ++++++++++++++++++ src/backend/mcp_servers/playwright_server.py | 9 ++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/frontend-cli/shell_chat.py b/frontend-cli/shell_chat.py index 11a0e02b..5eb0d8d4 100644 --- a/frontend-cli/shell_chat.py +++ b/frontend-cli/shell_chat.py @@ -470,6 +470,24 @@ async def _stream_chat(self, message: str) -> None: tool_panels.append( f"✓ {name}: {result[:100]}" ) + elif status == "hop_limit": + # Show pause message - LLM hit tool call limit + hop_msg = parsed.get("message", "") + hop_count = parsed.get("hop_count", 0) + limit = parsed.get("limit", 20) + live.update( + Text( + f"⏸️ {hop_msg}", + style="bold cyan", + ) + ) + # Also print it permanently so user sees it + self.console.print( + f"\n[bold cyan]⏸️ Completed {hop_count} tool calls (limit: {limit})[/bold cyan]" + ) + self.console.print( + "[cyan]Reply 'continue' or 'yes' to keep going, or ask something else.[/cyan]\n" + ) elif event_type == "metadata": # Could show usage stats here diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index 6f392917..e15432d8 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -276,12 +276,19 @@ async def browser_type( """Type text into an input element. Args: - selector: CSS selector for the input element + selector: CSS selector for the input element. Common selectors: + - Google search: textarea[name="q"] + - YouTube search: input#search + - Generic search: input[type="search"], input[name="search"] + - Generic text input: input[type="text"] text: Text to type clear_first: Clear existing content before typing (default: True) delay_ms: Delay between keystrokes in milliseconds timeout_ms: Timeout waiting for element + Tip: If typing fails, use browser_navigate with URL params instead: + https://www.google.com/search?q=your+search+query + Returns: JSON with status. """ From 5a1b3450959513109da84ee2b9c8a0ab18078d0b Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 29 Dec 2025 22:31:47 -0500 Subject: [PATCH 74/78] feat: Add browser status tool, enable session reuse, and implement protected URL patterns in Playwright server. --- src/backend/mcp_servers/playwright_server.py | 137 +++++++++++++++---- tests/test_playwright_server.py | 28 ++++ 2 files changed, 142 insertions(+), 23 deletions(-) diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index e15432d8..0f577adf 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -21,17 +21,33 @@ DEFAULT_HTTP_PORT = 9011 DEFAULT_CDP_PORT = 9222 +# Protected URLs that Playwright must NEVER navigate to or open +# These are the chat app endpoints that would hijack the user's session +PROTECTED_URL_PATTERNS: tuple[str, ...] = ( + "localhost:5173", + "127.0.0.1:5173", + "192.168.1.223:5173", # User's local network chat app +) + # Waybar bookmark presets (brave --app mode minimal windows) _WAYBAR_PRESETS: dict[str, str] = { "chatgpt": "https://chat.openai.com", "gemini": "https://gemini.google.com/app", "google": "https://www.google.com/", - "dev": "http://localhost:5173/", "calendar": "https://calendar.google.com/calendar/u/0/r?pli=1", "gmail": "https://mail.google.com/mail/u/0/#inbox", "github": "https://github.com/jck411?tab=repositories", } + +def _is_protected_url(url: str) -> bool: + """Check if a URL matches any protected pattern (chat app URLs).""" + url_lower = url.lower() + for pattern in PROTECTED_URL_PATTERNS: + if pattern in url_lower: + return True + return False + mcp = FastMCP("playwright") # ============================================================================= @@ -66,38 +82,85 @@ async def _get_page() -> Any: return _page +async def _close_browser() -> None: + """Internal: Close browser and reset global state.""" + global _browser, _context, _page, _connected, _playwright + + if _browser: + await _browser.close() + if _playwright: + await _playwright.stop() + + _browser = None + _context = None + _page = None + _playwright = None + _connected = False + + # ============================================================================= # Browser Tools # ============================================================================= +@mcp.tool("browser_status") # type: ignore[misc] +async def browser_status() -> str: + """Check current browser connection status. + + Call this FIRST to see if browser is connected before using other tools. + If not connected, call browser_open to start a new session. + + Returns: + JSON with connection status, current URL, and page title if connected. + """ + if not _connected or _page is None: + return json.dumps({ + "status": "ok", + "connected": False, + "message": "No browser session. Call browser_open to start.", + }) + + try: + current_url = _page.url + page_title = await _page.title() + return json.dumps({ + "status": "ok", + "connected": True, + "url": current_url, + "title": page_title[:100] if page_title else None, + }) + except Exception as exc: + return json.dumps({ + "status": "ok", + "connected": False, + "message": f"Session stale: {exc}. Call browser_open to start fresh.", + }) + @mcp.tool("browser_open") # type: ignore[misc] async def browser_open( url: str | None = None, preset: str | None = None, timeout_ms: int = 10000, + force_new: bool = False, ) -> str: - """Launch a fresh app-mode browser window and connect for automation. + """Open a browser window for automation, reusing existing if available. - Always starts a NEW window - no session restoration, no existing tabs. - This is the only way to start browser automation. + If a browser session is already active, navigates to the new URL. + Only launches a fresh window when no session exists or force_new=True. Args: url: URL to open (ignored if preset is provided) preset: Waybar bookmark preset name. Options: - - "chatgpt", "gemini", "google", "dev", "calendar", "gmail", "github" + - "chatgpt", "gemini", "google", "calendar", "gmail", "github" timeout_ms: CDP connection timeout (default: 10000) + force_new: Force close existing session and start fresh (default: False) Returns: JSON with status and connection info. """ global _browser, _context, _page, _connected - # Close any existing session first - if _connected: - await browser_close() - - # Resolve URL from preset or direct URL + # Resolve URL from preset or direct URL first (needed for reuse path) if preset: preset_lower = preset.lower() if preset_lower not in _WAYBAR_PRESETS: @@ -112,6 +175,33 @@ async def browser_open( else: target_url = "about:blank" + # Block protected URLs (chat app) + if _is_protected_url(target_url): + return json.dumps({ + "status": "error", + "message": "Cannot open chat app URL - this would hijack your session", + "url": target_url, + }) + + # Reuse existing session if connected (unless force_new) + if _connected and _page is not None and not force_new: + try: + await _page.goto(target_url, wait_until="domcontentloaded", timeout=timeout_ms) + return json.dumps({ + "status": "ok", + "url": target_url, + "preset": preset, + "current_url": _page.url, + "reused": True, + }) + except Exception as exc: + # Session is stale, fall through to launch new browser + await _close_browser() + + # Close any existing session if force_new requested + if _connected and force_new: + await _close_browser() + try: # Launch Brave in app mode with CDP enabled # --disable-session-restore: No tab restoration @@ -134,7 +224,9 @@ async def browser_open( ) # Wait for CDP to become available + # Give browser a moment to start before polling pw = await _ensure_playwright() + await asyncio.sleep(1.0) # Initial wait for browser startup start_time = time.time() last_error = None @@ -142,8 +234,9 @@ async def browser_open( await asyncio.sleep(0.3) try: + # Use 127.0.0.1 explicitly to avoid IPv6 issues (::1) _browser = await pw.chromium.connect_over_cdp( - f"http://localhost:{DEFAULT_CDP_PORT}", + f"http://127.0.0.1:{DEFAULT_CDP_PORT}", timeout=2000, ) @@ -201,6 +294,14 @@ async def browser_navigate( JSON with status, final URL, and page title. """ try: + # Block protected URLs (chat app) + if _is_protected_url(url): + return json.dumps({ + "status": "error", + "message": "Cannot navigate to chat app URL - this would hijack your session", + "url": url, + }) + page = await _get_page() response = await page.goto( @@ -533,19 +634,8 @@ async def browser_close() -> str: Returns: JSON with status. """ - global _browser, _context, _page, _connected, _playwright - try: - if _browser: - await _browser.close() - if _playwright: - await _playwright.stop() - - _browser = None - _context = None - _page = None - _playwright = None - _connected = False + await _close_browser() return json.dumps({ "status": "ok", @@ -609,6 +699,7 @@ def run( __all__ = [ "mcp", "run", + "browser_status", "browser_open", "browser_navigate", "browser_click", diff --git a/tests/test_playwright_server.py b/tests/test_playwright_server.py index 69a4583e..71f783a0 100644 --- a/tests/test_playwright_server.py +++ b/tests/test_playwright_server.py @@ -34,6 +34,34 @@ def _get_fn(tool): return tool.fn if hasattr(tool, "fn") else tool +async def test_browser_status_not_connected(): + """Test browser_status returns correct state when not connected.""" + fn = _get_fn(playwright_server.browser_status) + result = json.loads(await fn()) + + assert result["status"] == "ok" + assert result["connected"] is False + assert "browser_open" in result["message"].lower() + + +async def test_browser_status_when_connected(): + """Test browser_status returns URL and title when connected.""" + mock_page = MagicMock() + mock_page.url = "https://example.com/page" + mock_page.title = AsyncMock(return_value="Example Page") + + playwright_server._page = mock_page + playwright_server._connected = True + + fn = _get_fn(playwright_server.browser_status) + result = json.loads(await fn()) + + assert result["status"] == "ok" + assert result["connected"] is True + assert result["url"] == "https://example.com/page" + assert result["title"] == "Example Page" + + async def test_browser_navigate_not_connected(): """Test error when trying to navigate without connecting first.""" fn = _get_fn(playwright_server.browser_navigate) From eeb6538cb8d5721940f37d3591574b8194c5cb48 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 29 Dec 2025 23:05:27 -0500 Subject: [PATCH 75/78] fix: Improve error handling in browser closure and session management functions --- src/backend/mcp_servers/playwright_server.py | 14 +++++++--- .../mcp_servers/shell_control_server.py | 28 +++++++++++++++---- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index 0f577adf..24c4d2a2 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -86,10 +86,16 @@ async def _close_browser() -> None: """Internal: Close browser and reset global state.""" global _browser, _context, _page, _connected, _playwright - if _browser: - await _browser.close() - if _playwright: - await _playwright.stop() + try: + if _browser: + await _browser.close() + except Exception: + pass + try: + if _playwright: + await _playwright.stop() + except Exception: + pass _browser = None _context = None diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index 957d4a59..e5aac289 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -985,6 +985,14 @@ async def _auto_snapshot_software(triggers: set[str]) -> dict[str, object]: - "defaults": Snapshot XDG default applications """ + if not os.environ.get(HOST_PROFILE_ENV) or not os.environ.get(HOST_ROOT_ENV): + return {} + + try: + _get_host_dir() + except (RuntimeError, ValueError): + return {} + snapshot: dict[str, object] = {} # Package changes -> snapshot tracked packages + defaults (install may change defaults) @@ -1319,7 +1327,10 @@ async def _find_path(name: str) -> str | None: safe_name = shlex.quote(f"*{name}*") try: proc = await asyncio.create_subprocess_shell( - f"find {shlex.quote(home)} -maxdepth 4 -iname {safe_name} -type d 2>/dev/null | head -1", + ( + f"find {shlex.quote(home)} -maxdepth 4 " + f"\\( -type d -o -type f \\) -iname {safe_name} 2>/dev/null | head -1" + ), stdout=asyncio.subprocess.PIPE, ) stdout, _ = await asyncio.wait_for(proc.communicate(), timeout=3.0) @@ -1337,7 +1348,10 @@ async def _launch_gui_app( ) -> dict[str, object]: """Launch a GUI application in background. Searches for path if not found.""" shell_env = _build_shell_env() - parts = command.split() + try: + parts = shlex.split(command) + except ValueError: + parts = command.split() base_cmd = parts[0] if parts else command # For xdg-open: if path doesn't exist, search for it @@ -1459,8 +1473,8 @@ async def shell_session( """ # Validate inputs timeout_seconds = _validate_timeout(timeout_seconds) - start = time.perf_counter() + sess: ShellSession | None = None try: sess = await _get_or_create_session(session_id) @@ -1481,11 +1495,13 @@ async def shell_session( except TimeoutError as e: duration_ms = (time.perf_counter() - start) * 1000 + if sess: + await _close_session(sess.session_id) return json.dumps( { "status": "timeout", "error": str(e), - "session_id": session_id, + "session_id": sess.session_id if sess else session_id, "duration_ms": duration_ms, } ) @@ -1494,11 +1510,13 @@ async def shell_session( raise except Exception as e: duration_ms = (time.perf_counter() - start) * 1000 + if sess: + await _close_session(sess.session_id) return json.dumps( { "status": "error", "error": str(e), - "session_id": session_id, + "session_id": sess.session_id if sess else session_id, "duration_ms": duration_ms, } ) From e1c078c50ac3faa843e74f0d22d47c28b8864af8 Mon Sep 17 00:00:00 2001 From: jack Date: Mon, 29 Dec 2025 23:35:32 -0500 Subject: [PATCH 76/78] feat: Enhance Playwright server with CDP port resolution and browser process management --- src/backend/mcp_servers/playwright_server.py | 188 ++++++++++++++++-- .../mcp_servers/shell_control_server.py | 28 ++- tests/test_playwright_server.py | 2 + 3 files changed, 205 insertions(+), 13 deletions(-) diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index 24c4d2a2..892f2a22 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -9,17 +9,22 @@ import argparse import asyncio import json +import os +import socket import subprocess import tempfile import time from pathlib import Path from typing import Any +from urllib.parse import urlparse from fastmcp import FastMCP # Default ports DEFAULT_HTTP_PORT = 9011 DEFAULT_CDP_PORT = 9222 +CDP_PORT_ENV = "MCP_PLAYWRIGHT_CDP_PORT" +CDP_PORT_ENV_FALLBACK = "PLAYWRIGHT_CDP_PORT" # Protected URLs that Playwright must NEVER navigate to or open # These are the chat app endpoints that would hijack the user's session @@ -59,6 +64,7 @@ def _is_protected_url(url: str) -> bool: _context: Any = None _page: Any = None _connected: bool = False +_browser_process: subprocess.Popen[str] | None = None async def _ensure_playwright() -> Any: @@ -84,7 +90,7 @@ async def _get_page() -> Any: async def _close_browser() -> None: """Internal: Close browser and reset global state.""" - global _browser, _context, _page, _connected, _playwright + global _browser, _context, _page, _connected, _playwright, _browser_process try: if _browser: @@ -96,6 +102,7 @@ async def _close_browser() -> None: await _playwright.stop() except Exception: pass + await _terminate_browser_process() _browser = None _context = None @@ -104,6 +111,137 @@ async def _close_browser() -> None: _connected = False +def _parse_cdp_port(value: str | int | None) -> int | None: + if value is None: + return None + if isinstance(value, int): + return value + raw = value.strip().lower() + if raw in ("auto", "0"): + return 0 + try: + return int(raw) + except ValueError: + return None + + +def _port_is_listening(port: int) -> bool: + if port <= 0: + return False + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + sock.settimeout(0.2) + return sock.connect_ex(("127.0.0.1", port)) == 0 + + +def _pick_free_port() -> int: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + sock.bind(("127.0.0.1", 0)) + return sock.getsockname()[1] + + +def _resolve_cdp_port(requested: int | str | None) -> tuple[int, int | None, bool]: + parsed_requested = _parse_cdp_port(requested) + if requested is not None and parsed_requested is None: + raise ValueError(f"Invalid CDP port: {requested}") + + env_value = _parse_cdp_port(os.environ.get(CDP_PORT_ENV, "")) + if env_value is None: + env_value = _parse_cdp_port(os.environ.get(CDP_PORT_ENV_FALLBACK, "")) + + if parsed_requested is None: + requested = env_value if env_value is not None else DEFAULT_CDP_PORT + else: + requested = parsed_requested + + if requested == 0: + return _pick_free_port(), requested, True + + if not (1 <= requested <= 65535): + raise ValueError(f"Invalid CDP port: {requested}") + + if _port_is_listening(requested): + return _pick_free_port(), requested, True + + return requested, requested, False + + +def _is_utility_page(url: str) -> bool: + return url.startswith(("chrome-extension://", "devtools://", "chrome://")) + + +def _urls_match(page_url: str, target_url: str) -> bool: + if not page_url or not target_url: + return False + if page_url == target_url: + return True + if page_url.rstrip("/") == target_url.rstrip("/"): + return True + if page_url.startswith(target_url) or target_url.startswith(page_url): + return True + + try: + page = urlparse(page_url) + target = urlparse(target_url) + except Exception: + return False + + if page.scheme and target.scheme and page.scheme != target.scheme: + return False + if page.netloc and target.netloc and page.netloc != target.netloc: + return False + if page.netloc and target.netloc: + return True + return False + + +async def _select_page_for_target( + browser: Any, + target_url: str, + timeout_ms: int, +) -> tuple[Any | None, Any | None]: + wait_seconds = max(0.2, min(2.0, timeout_ms / 1000)) + deadline = time.time() + wait_seconds + while True: + pages: list[Any] = [] + for context in browser.contexts: + pages.extend(context.pages) + + for page in pages: + if _urls_match(page.url, target_url): + return page.context, page + + non_utility = [page for page in pages if not _is_utility_page(page.url)] + if len(non_utility) == 1: + page = non_utility[0] + return page.context, page + + if time.time() >= deadline: + return None, None + + await asyncio.sleep(0.2) + + +async def _terminate_browser_process() -> None: + global _browser_process + process = _browser_process + _browser_process = None + if not process: + return + try: + if process.poll() is None: + process.terminate() + try: + await asyncio.to_thread(process.wait, timeout=2.0) + except Exception: + process.kill() + try: + await asyncio.to_thread(process.wait, timeout=1.0) + except Exception: + pass + except Exception: + pass + + # ============================================================================= # Browser Tools # ============================================================================= @@ -148,6 +286,7 @@ async def browser_open( preset: str | None = None, timeout_ms: int = 10000, force_new: bool = False, + cdp_port: int | None = None, ) -> str: """Open a browser window for automation, reusing existing if available. @@ -160,11 +299,12 @@ async def browser_open( - "chatgpt", "gemini", "google", "calendar", "gmail", "github" timeout_ms: CDP connection timeout (default: 10000) force_new: Force close existing session and start fresh (default: False) + cdp_port: Override the CDP port (0 = auto-select free port) Returns: JSON with status and connection info. """ - global _browser, _context, _page, _connected + global _browser, _context, _page, _connected, _browser_process # Resolve URL from preset or direct URL first (needed for reuse path) if preset: @@ -200,7 +340,7 @@ async def browser_open( "current_url": _page.url, "reused": True, }) - except Exception as exc: + except Exception: # Session is stale, fall through to launch new browser await _close_browser() @@ -209,6 +349,14 @@ async def browser_open( await _close_browser() try: + try: + resolved_cdp_port, requested_cdp_port, port_changed = _resolve_cdp_port(cdp_port) + except ValueError as exc: + return json.dumps({ + "status": "error", + "message": str(exc), + }) + # Launch Brave in app mode with CDP enabled # --disable-session-restore: No tab restoration # --no-first-run: Skip first-run dialogs @@ -216,16 +364,17 @@ async def browser_open( cmd = [ "brave", f"--app={target_url}", - f"--remote-debugging-port={DEFAULT_CDP_PORT}", + f"--remote-debugging-port={resolved_cdp_port}", "--disable-session-restore", "--no-first-run", "--force-dark-mode", ] - subprocess.Popen( + _browser_process = subprocess.Popen( cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, + text=True, start_new_session=True, ) @@ -242,18 +391,25 @@ async def browser_open( try: # Use 127.0.0.1 explicitly to avoid IPv6 issues (::1) _browser = await pw.chromium.connect_over_cdp( - f"http://127.0.0.1:{DEFAULT_CDP_PORT}", + f"http://127.0.0.1:{resolved_cdp_port}", timeout=2000, ) - # Get the page from the browser - if _browser.contexts and _browser.contexts[0].pages: - _context = _browser.contexts[0] - _page = _context.pages[0] - else: + _context, _page = await _select_page_for_target( + _browser, + target_url, + timeout_ms, + ) + if _context is None or _page is None: _context = await _browser.new_context() _page = await _context.new_page() - await _page.goto(target_url) + + if target_url != "about:blank" and not _urls_match(_page.url, target_url): + await _page.goto( + target_url, + wait_until="domcontentloaded", + timeout=timeout_ms, + ) _connected = True @@ -262,18 +418,26 @@ async def browser_open( "url": target_url, "preset": preset, "current_url": _page.url, + "cdp_port": resolved_cdp_port, + "cdp_port_requested": requested_cdp_port, + "cdp_port_changed": port_changed, }) except Exception as e: last_error = str(e) + await _close_browser() return json.dumps({ "status": "error", "message": f"CDP connection timed out: {last_error}", "hint": "Browser may still be starting. Try again.", + "cdp_port": resolved_cdp_port, + "cdp_port_requested": requested_cdp_port, + "cdp_port_changed": port_changed, }) except Exception as exc: + await _close_browser() return json.dumps({ "status": "error", "message": str(exc), diff --git a/src/backend/mcp_servers/shell_control_server.py b/src/backend/mcp_servers/shell_control_server.py index e5aac289..b9bdf9ff 100644 --- a/src/backend/mcp_servers/shell_control_server.py +++ b/src/backend/mcp_servers/shell_control_server.py @@ -13,7 +13,7 @@ import uuid from dataclasses import dataclass, field from pathlib import Path -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING if TYPE_CHECKING: from asyncio.subprocess import Process @@ -34,6 +34,7 @@ DELTAS_MAX_ENTRIES = 100 HOST_PROFILE_ENV = "HOST_PROFILE_ID" HOST_ROOT_ENV = "HOST_ROOT_PATH" +SETTINGS_PANELS_ENV = "SHELL_CONTROL_SETTINGS_PANELS" # Shell session settings SESSION_IDLE_TIMEOUT = 300 # 5 minutes idle = cleanup @@ -1046,11 +1047,36 @@ def _detect_desktop_environment() -> str: return "generic" +def _has_gui_session() -> bool: + if os.environ.get("WAYLAND_DISPLAY") or os.environ.get("DISPLAY"): + return True + + uid = os.getuid() + runtime_dir = Path(f"/run/user/{uid}") + if runtime_dir.exists(): + if any((runtime_dir / name).exists() for name in ("wayland-0", "wayland-1", "wayland-2")): + return True + + return Path("/tmp/.X11-unix").exists() + + +def _settings_panels_enabled() -> bool: + value = os.environ.get(SETTINGS_PANELS_ENV, "").strip().lower() + if value in {"0", "false", "no", "off", "disable", "disabled"}: + return False + if value in {"1", "true", "yes", "on", "enable", "enabled"}: + return True + return _has_gui_session() + + async def _open_settings_panel(command: str) -> str | None: """Check if command triggers a settings panel and open it. Returns the panel command that was launched, or None. """ + if not _settings_panels_enabled(): + return None + desktop = _detect_desktop_environment() for pattern, panels in _SETTINGS_PANELS.items(): diff --git a/tests/test_playwright_server.py b/tests/test_playwright_server.py index 71f783a0..b1ad5d91 100644 --- a/tests/test_playwright_server.py +++ b/tests/test_playwright_server.py @@ -20,12 +20,14 @@ def reset_global_state(): playwright_server._context = None playwright_server._page = None playwright_server._connected = False + playwright_server._browser_process = None yield playwright_server._playwright = None playwright_server._browser = None playwright_server._context = None playwright_server._page = None playwright_server._connected = False + playwright_server._browser_process = None # Helper to get the underlying function from FunctionTool wrapper From 6941371bdf703aacdf0c01e35a3916f82ee20dad Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 30 Dec 2025 08:29:51 -0500 Subject: [PATCH 77/78] feat: Implement tool error handling and policy enforcement in StreamingHandler --- src/backend/chat/streaming/handler.py | 115 +++++++++++++++---- src/backend/chat/streaming/tooling.py | 77 +++++++++++++ src/backend/data/clients/svelte/llm.json | 2 +- src/backend/data/clients/svelte/presets.json | 4 +- 4 files changed, 171 insertions(+), 27 deletions(-) diff --git a/src/backend/chat/streaming/handler.py b/src/backend/chat/streaming/handler.py index e5fed325..8d8f2170 100644 --- a/src/backend/chat/streaming/handler.py +++ b/src/backend/chat/streaming/handler.py @@ -35,6 +35,9 @@ from .tooling import ( classify_tool_followup as _classify_tool_followup, ) +from .tooling import ( + enforce_tool_policy as _enforce_tool_policy, +) from .tooling import ( finalize_tool_calls as _finalize_tool_calls, ) @@ -63,6 +66,7 @@ def __init__( *, default_model: str, tool_hop_limit: int = 20, + tool_error_limit: int = 2, model_settings: ModelSettingsService | None = None, attachment_service: AttachmentService | None = None, conversation_logger: ConversationLogWriter | None = None, @@ -72,6 +76,7 @@ def __init__( self._tool_client = tool_client self._default_model = default_model self._tool_hop_limit = tool_hop_limit + self._tool_error_limit = max(1, tool_error_limit) self._model_settings = model_settings self._attachment_service = attachment_service self._conversation_logger = conversation_logger @@ -143,6 +148,13 @@ async def stream_conversation( if isinstance(candidate, str): assistant_client_message_id = candidate active_tools_payload = list(tools_payload) + available_tool_names = { + tool.get("function", {}).get("name") + for tool in active_tools_payload + if isinstance(tool, dict) + and isinstance(tool.get("function"), dict) + and isinstance(tool.get("function", {}).get("name"), str) + } tool_choice_value = request.tool_choice requested_tool_choice = ( tool_choice_value if isinstance(tool_choice_value, str) else None @@ -157,6 +169,7 @@ async def stream_conversation( total_tool_calls = 0 # Track tool attachments to inject into next assistant response pending_tool_attachments: list[dict[str, Any]] = [] + consecutive_tool_errors = 0 while True: tools_available = bool(active_tools_payload) @@ -699,6 +712,7 @@ async def stream_conversation( break processed_tool_calls = 0 + stop_due_to_errors = False for call_index, tool_call in enumerate(assistant_turn.tool_calls): function = tool_call.get("function") or {} @@ -804,32 +818,42 @@ async def stream_conversation( working_arguments = dict(arguments) if session_id and _tool_requires_session_id(tool_name): working_arguments.setdefault("session_id", session_id) - try: - # DEBUG: Log the arguments being sent to the tool - logger.info( - "[TOOL-DEBUG] Calling tool '%s' with arguments: %s", - tool_name, - json.dumps(working_arguments, indent=2), - ) - result_obj = await self._tool_client.call_tool( - tool_name, working_arguments - ) - result_text = self._tool_client.format_tool_result( - result_obj - ) - # DEBUG: Log the result from the tool - logger.info( - "[TOOL-DEBUG] Tool '%s' returned: %s", - tool_name, - result_text[:500] if len(result_text) > 500 else result_text, - ) - tool_error_flag = getattr(result_obj, "isError", False) - status = "error" if tool_error_flag else "finished" - except Exception as exc: # pragma: no cover - MCP errors - logger.exception("Tool '%s' raised an exception", tool_name) - result_text = f"Tool error: {exc}" + policy_violation = _enforce_tool_policy( + tool_name, + working_arguments, + available_tools=available_tool_names, + ) + if policy_violation: + result_text = policy_violation status = "error" tool_error_flag = True + else: + try: + # DEBUG: Log the arguments being sent to the tool + logger.info( + "[TOOL-DEBUG] Calling tool '%s' with arguments: %s", + tool_name, + json.dumps(working_arguments, indent=2), + ) + result_obj = await self._tool_client.call_tool( + tool_name, working_arguments + ) + result_text = self._tool_client.format_tool_result( + result_obj + ) + # DEBUG: Log the result from the tool + logger.info( + "[TOOL-DEBUG] Tool '%s' returned: %s", + tool_name, + result_text[:500] if len(result_text) > 500 else result_text, + ) + tool_error_flag = getattr(result_obj, "isError", False) + status = "error" if tool_error_flag else "finished" + except Exception as exc: # pragma: no cover - MCP errors + logger.exception("Tool '%s' raised an exception", tool_name) + result_text = f"Tool error: {exc}" + status = "error" + tool_error_flag = True tool_metadata = { "tool_name": tool_name, @@ -975,8 +999,51 @@ async def stream_conversation( } processed_tool_calls += 1 + if status == "error": + consecutive_tool_errors += 1 + else: + consecutive_tool_errors = 0 + if consecutive_tool_errors >= self._tool_error_limit: + stop_due_to_errors = True + break total_tool_calls += processed_tool_calls + if stop_due_to_errors: + pause_message = ( + "Tool calls are failing repeatedly. " + "I paused to avoid excessive retries. " + "Would you like me to keep trying?" + ) + logger.info( + "Tool error limit (%d) reached for session %s, pausing for user", + self._tool_error_limit, + session_id, + ) + await self._repo.add_message( + session_id, + role="assistant", + content=pause_message, + metadata={ + "tool_error_pause": True, + "tool_error_count": consecutive_tool_errors, + "tool_error_limit": self._tool_error_limit, + }, + client_message_id=assistant_client_message_id, + parent_client_message_id=assistant_parent_message_id, + ) + yield { + "event": "tool", + "data": json.dumps( + { + "status": "tool_error_limit", + "name": "system", + "message": pause_message, + "tool_error_count": consecutive_tool_errors, + "limit": self._tool_error_limit, + } + ), + } + break hop_count += 1 diff --git a/src/backend/chat/streaming/tooling.py b/src/backend/chat/streaming/tooling.py index e148cbc6..0f30a8f4 100644 --- a/src/backend/chat/streaming/tooling.py +++ b/src/backend/chat/streaming/tooling.py @@ -2,7 +2,10 @@ from __future__ import annotations +import re +import shlex from typing import Any, Mapping, Sequence +from urllib.parse import urlparse from ...openrouter import OpenRouterError @@ -19,6 +22,79 @@ "gdrive_display_image", } +_WEB_URL_RE = re.compile(r"https?://[^\s\"'<>]+", re.IGNORECASE) +_LOCAL_HOSTS = {"localhost", "127.0.0.1", "0.0.0.0", "::1"} +_WEB_FETCH_COMMANDS = {"curl", "wget", "http", "httpie", "lynx", "w3m", "links"} + + +def _extract_command_name(command: str) -> str | None: + try: + parts = shlex.split(command) + except ValueError: + parts = command.split() + + if not parts: + return None + + idx = 0 + while idx < len(parts): + token = parts[idx] + if token in {"sudo", "env"}: + idx += 1 + continue + if "=" in token and not token.startswith("-"): + idx += 1 + continue + return token + return None + + +def _extract_remote_urls(text: str) -> list[str]: + urls = _WEB_URL_RE.findall(text) + remote: list[str] = [] + for url in urls: + try: + parsed = urlparse(url) + except Exception: + remote.append(url) + continue + host = (parsed.hostname or "").lower() + if host and host not in _LOCAL_HOSTS: + remote.append(url) + return remote + + +def _browser_tools_available(available_tools: set[str]) -> bool: + return any(name.startswith("browser_") for name in available_tools) + + +def enforce_tool_policy( + tool_name: str, + arguments: Mapping[str, Any] | None, + *, + available_tools: set[str], +) -> str | None: + if tool_name not in {"shell_execute", "shell_session"}: + return None + + if not _browser_tools_available(available_tools): + return None + + command = arguments.get("command") if isinstance(arguments, Mapping) else None + if not isinstance(command, str) or not command.strip(): + return None + + command_name = _extract_command_name(command) + if command_name not in _WEB_FETCH_COMMANDS: + return None + + if not _extract_remote_urls(command): + return None + + return ( + "Blocked web fetch in shell command. Use browser_* tools for web access." + ) + def summarize_tool_parameters(parameters: Mapping[str, Any] | None) -> str: if not isinstance(parameters, Mapping): @@ -228,6 +304,7 @@ def finalize_tool_calls( "SESSION_AWARE_TOOL_SUFFIX", "SESSION_AWARE_TOOLS", "classify_tool_followup", + "enforce_tool_policy", "finalize_tool_calls", "is_tool_support_error", "looks_like_no_result", diff --git a/src/backend/data/clients/svelte/llm.json b/src/backend/data/clients/svelte/llm.json index 7da39bb6..c6dda5d4 100644 --- a/src/backend/data/clients/svelte/llm.json +++ b/src/backend/data/clients/svelte/llm.json @@ -1,6 +1,6 @@ { "model": "minimax/minimax-m2", - "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser automation (CRITICAL):\n- Use browser_* MCP tools for ALL web tasks: browser_open, browser_navigate, browser_type, browser_press_key, browser_extract, browser_click, browser_wait, browser_screenshot, browser_close.\n- browser_open(preset='google') launches a fresh Brave window that you control.\n- browser_type to enter text, then browser_press_key('Enter') to submit forms.\n- Do NOT use xdg-open, shell_execute with URLs, or curl for web tasks - these open in an uncontrolled browser.\n- Do NOT try to use ui_key, ui_type, ui_click - these tools do not exist.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, diff --git a/src/backend/data/clients/svelte/presets.json b/src/backend/data/clients/svelte/presets.json index 7cce9e39..f680b5a4 100644 --- a/src/backend/data/clients/svelte/presets.json +++ b/src/backend/data/clients/svelte/presets.json @@ -32,7 +32,7 @@ "name": "shell", "llm": { "model": "minimax/minimax-m2", - "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser behavior:\n- Use Brave for web tasks.\n- Prefer direct URL open or search without extra steps.\n- Only do UI interaction (click/type) when required; otherwise use CLI or browser automation tools if available.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", + "system_prompt": "You are a fast, minimal-token desktop control agent operating a Linux workstation via MCP tools.\n\nEnvironment (assume true unless tools report otherwise):\n- OS: EndeavourOS (Arch-based)\n- Desktop: Hyprland on Wayland\n- Browser: Brave (window class: brave-browser)\n- Clipboard: wl-copy / wl-paste\n- Window control via hyprctl\n- Sudo is passwordless\n\nPrimary goal:\n- Execute simple user requests quickly (usually 1 tool call).\n- Avoid unnecessary tool calls, avoid verbose outputs, avoid long explanations.\n\nTool usage rules:\n1) Prefer ONE tool call per user request. Combine steps into a single call when safe.\n2) Use shell_session for multi-step tasks; reuse the same session_id across related steps.\n3) Use shell_execute for one-off commands or launching GUI apps (background=true for GUI).\n4) Do NOT call host_get_profile unless you truly lack needed environment details.\n5) Do NOT take screenshots unless the user asks OR the task cannot be verified otherwise.\n6) If a tool returns truncated output, only call shell_get_full_output if the missing details are required to proceed.\n\nCommand style:\n- Choose the simplest, non-interactive commands.\n- Use quiet/no-pager/json flags when available to reduce output.\n- If you only need success/failure, do not generate chatty commands.\n\nBrowser automation (CRITICAL):\n- Use browser_* MCP tools for ALL web tasks: browser_open, browser_navigate, browser_type, browser_press_key, browser_extract, browser_click, browser_wait, browser_screenshot, browser_close.\n- browser_open(preset='google') launches a fresh Brave window that you control.\n- browser_type to enter text, then browser_press_key('Enter') to submit forms.\n- Do NOT use xdg-open, shell_execute with URLs, or curl for web tasks - these open in an uncontrolled browser.\n- Do NOT try to use ui_key, ui_type, ui_click - these tools do not exist.\n\nError handling:\n- If a command fails, run at most ONE quick diagnostic command, then either fix or report the minimal actionable error.\n- Avoid loops and repeated retries.\n\nResponse style:\n- Be brief. State what you did and the outcome.\n- Don\u2019t describe internal reasoning.", "temperature": 0.7, "max_tokens": 4096, "supports_tools": true, @@ -139,4 +139,4 @@ } ], "active_index": 1 -} \ No newline at end of file +} From 3db429d87fa059f2b5462285f9f2666353b0c112 Mon Sep 17 00:00:00 2001 From: jck411 <81551487+jck411@users.noreply.github.com> Date: Tue, 6 Jan 2026 22:04:16 -0500 Subject: [PATCH 78/78] Isolate Playwright browser profile for CDP --- src/backend/mcp_servers/playwright_server.py | 25 ++++++++++++++++++++ tests/test_playwright_server.py | 2 ++ 2 files changed, 27 insertions(+) diff --git a/src/backend/mcp_servers/playwright_server.py b/src/backend/mcp_servers/playwright_server.py index 892f2a22..35197664 100644 --- a/src/backend/mcp_servers/playwright_server.py +++ b/src/backend/mcp_servers/playwright_server.py @@ -10,6 +10,7 @@ import asyncio import json import os +import shutil import socket import subprocess import tempfile @@ -65,6 +66,7 @@ def _is_protected_url(url: str) -> bool: _page: Any = None _connected: bool = False _browser_process: subprocess.Popen[str] | None = None +_profile_dir: Path | None = None async def _ensure_playwright() -> Any: @@ -103,6 +105,7 @@ async def _close_browser() -> None: except Exception: pass await _terminate_browser_process() + _cleanup_profile_dir() _browser = None _context = None @@ -242,6 +245,20 @@ async def _terminate_browser_process() -> None: pass +def _cleanup_profile_dir() -> None: + global _profile_dir + + profile_dir = _profile_dir + _profile_dir = None + if not profile_dir: + return + + try: + shutil.rmtree(profile_dir, ignore_errors=True) + except Exception: + pass + + # ============================================================================= # Browser Tools # ============================================================================= @@ -361,10 +378,14 @@ async def browser_open( # --disable-session-restore: No tab restoration # --no-first-run: Skip first-run dialogs # --force-dark-mode: Dark theme + _cleanup_profile_dir() + profile_dir = Path(tempfile.mkdtemp(prefix="mcp-playwright-")) + _profile_dir = profile_dir cmd = [ "brave", f"--app={target_url}", f"--remote-debugging-port={resolved_cdp_port}", + f"--user-data-dir={profile_dir}", "--disable-session-restore", "--no-first-run", "--force-dark-mode", @@ -386,6 +407,10 @@ async def browser_open( last_error = None while (time.time() - start_time) * 1000 < timeout_ms: + if _browser_process and _browser_process.poll() is not None: + last_error = f"Browser process exited with code {_browser_process.returncode}" + break + await asyncio.sleep(0.3) try: diff --git a/tests/test_playwright_server.py b/tests/test_playwright_server.py index b1ad5d91..966f17e8 100644 --- a/tests/test_playwright_server.py +++ b/tests/test_playwright_server.py @@ -21,6 +21,7 @@ def reset_global_state(): playwright_server._page = None playwright_server._connected = False playwright_server._browser_process = None + playwright_server._profile_dir = None yield playwright_server._playwright = None playwright_server._browser = None @@ -28,6 +29,7 @@ def reset_global_state(): playwright_server._page = None playwright_server._connected = False playwright_server._browser_process = None + playwright_server._cleanup_profile_dir() # Helper to get the underlying function from FunctionTool wrapper

                                              D|m->!W3~Fm@e@=Zy@h9 zvI)GXZH55s9W3GrnUDqoZb}(NT8Wqedghc|_kjD)!WQ~`qR*Fzk=glw^nS}V(Q;lF z@XEx+O9}d%3-JxtDeA)D#y5|G+4Abp0sN9C6Gh1_w4u{_g|oUMb2pV)71Q^}Ic{VIT^prAUq84qV{^`O zyk)ZW>Y(+x6-y4@=LNx7;weyHB3jB(JMUlUW)7W{Nq})m3EvuoCi@H2ZR3>w9v^5VGkU zGZDdB8?zs5qs+4TcOn)SzFJ|!u(f4GXOkS{f*ilpL&!vds?nI|&Rv6xHasN&J${nO z5ZW)A*0VEwk5{-L9cp+Fb=WxE?xul^aqAMLM4(m)g(-4VcO$ zJQ}ng+e2(MHQii{3-Rl?{PL93eTWcL9r8^&w=!}nctjQw*iXL*(rp6m8`8;tMK4D_ zafWFd)XwFWdccDM@%Q{q;CsmcqKSHGvtA_aVC+yxTeBtRU@$g@$t~gN(sjRMamP}9?^e3`a zRJs<2e2mVZ59TzceSxBi>?QB$xPjPz@#u-CytNTevHzuLdGr%#kK%az)fXlHs^uq6 zQS|rHXb>B~O5r2b!XA|u^Mzl5~wA*u@Kf4_u$x0*STJ9z*Nv$>4I4Zw?|$e~JqSkYa5tY13<$|C zG8qGQeZ`02g?EF2-)p~zLeG5M+WZKU|(?jpHN4)Wn*-iRn-tV z(DANbq|xpzm%60eNK)nSbWz-!gCS#e@IitT;96RT+sapU?`r(N*Q<0SBOfXN3!z9W z$%3&4N2=e;S!?>dzQuQ?daGUP=xcDud~gt>vSKombV*$oXy_ZSg&qOhXigj?%e;!6 zjKOmxRoL?k77z-r7pRQr>R^Q&5?Nmx2Jn`bq>siXQoMDiT!Ol;|9N?+cYR4hG)umx|Ni)BLu0*_Vr5b+mlvRkFsYK`5E?0YOI1X* zt{?E;94_Pknq8@2)l;Z_B;BIOBu%LUlyPu!Y1>`L^%iQF>2Yv|0I^nEM3ng>c3jtx zp?XhdjJ_y;bBiUhh|cXFAK9LNz8x5_EGejD>F2OlK6I+!j}4St@mSA#$|T`>TGf5wX&xQ?fb^frO2>Ai}xP$ zNgAiS+d^D7)5L>W@XOSM!F~bi{g<~T5#Pyw4W-d33p7e}gyxh2jqMdx#eMc z1Fow9V->v6d>dDV0X-;{bavN)3OfF zhjJvkvbG1?SHmsxNCiw={4@_nXu?pG{s48O^`< z;6NDFxI_r{D6k%+UWSdWCOJGEEt{T9znKhZvLs|7UR(~xyYfTGhHNn_VwX*OMH0i_ zbxvEsQ^B&~4F+z9f;f@1V9$_c5v6+jrDwPC6%{qG!4&b(-a}!^M7;j-DU(d=4VxGo zOE!M)U(NJU`A`{o6sYb257G1nsB2%T|{zEs6!_Sylj4UZ{Y@31LH1u4j&R46- zK{HI?R!6X`|K($|x;_`|3MUt8_0imDu>4ARpz4$QJ<#n+?YVFC1g)b00IP6<5R?)W z59kZ334LKv7E2+^-z2+p5PJi>NL7T3+8uDohthLzLSg4TrR08fJw~|HGGp8yWcW`SgZ@5Oku5^ z6S7~{2#jETQGcYXB`PpF0VvHJQCJc_HVsvDDdpE4Vr08|y7sqoD&8RG4 z6eNeq-BLO21obL^!v5!E@5(eQNf|5yw_uk+EgJI~fU}nuWk?ZvV2@K%NpXIOWBW?3 z*siK{g>w+bw*A~wff?mwSNJI#HgJGU@<|ho!QPU|$Ck^X=NQXVW3$(l8J>8|RF$X< zX#Ts7zl7l=DzcdZJc~)Ny7$vW^*V{xg8Wx((q@QcL-_!EDNQjIv(|C{puPmP1f^}tgOO~fl3!zE!WUt< zFo6c{e5O3x%HNs^XVjH~;%UPM1mtG$J;tUt&VW*UJA*N5J_Kr0PA<&<YN+qRvJv*E_JZQHhO+dlKY-*-;cUC*zXse1lQ_kDF=-L1Yd(uMOaR(D7& zX_MUfv$()yC1!-V5Tr6T=ZQ}L8fk#=^4XEKLo=sflM+y`q5^7HIyLeI1d!wBVZ_kF z4H|p*4nwo`4Gtzzof1ts)!tIpAj}%sfWeGgD@Dpk^GH+%ld_u}q|C#SDj~7To6gCQ zBg)lzWus%J+!dRsqzI`)-u6HQ2rOd!xE4X$5#UyUOT~zdp7tpbgdZe^go%kJ$H~hZ z@FS6!DKXGEPiQW1#6r7wxAFr1lxScQ&5x38G5|f|!U!?eb{4hCz!8s_CdE4m3gDOT z8(KfRKRBl(pU}l#az*q^2 zoM0X5X#Voj^`%-GIK6VbKqiK6py5P`tEWI?sA5UWJt69Z1Rqe84GZA9b%PP^PsEfe zb#TxvbIiQW=l{(jD{p&>U6B~hb@La9nKMizzXUn+FO-(E>3%s$qvdQ*BoEU%YDOd+ zpXnDYupl@HB^#YqkH#?r9bEkH7ciRuVuFA9F+lMEABWe?6DJ)p_ORitSVumdu*$&T zCgrO(5h{gBMFoXdI@Dwv?5}@orv*?IOF7dk{gb1F*h~~lZ6fYuxo=%BCYk0mxs$U< zzl-_^Ch(k}FrAy!@?poKY+B3GgdWEqusVUYLBMX+F>^~p7JVM!@=K0W+h~Sjt_SOI z1~tcJ=bsuZ$fN~urKUMa?k|@()t8{q0BN}zJ<#=+xdZy1)7WWWvDF{%%d|6{EcCqQ zY7aTFI8IPI>l!zQVg4+=NTh`<6} z*7ud9;#C}HuDZ%*xUS3G-Z{D}nA;P`R%N@R%wqtytoAFrdBh%Y{r~6BxMaxQ(wu}^6nn2nqO##XV zE-?JhAfcQD)e#uV{-L-ZX_5-*&%aMeQaWz*3@Iv8n3Ou*La30w0O(Z^Nd!!iM?m00 z)8e@r`Bse}DGB>ghG}tEOWd=Sjxl^n;8Y3iTQu z@9WR1iJ^q7=n&tH7T*uEmRSEsj2qt-@12)#d;gb~&n$kg*9mg+k(SN(Q1+f9ToD&Q zwW!}!%8#I48z1NUpt%28nExUF+c*B_OV7aozUOBhr0P=)_f7W~ygTsgJig!iLe6JZ zN|Chx<1MJa$4<%4Pv6aFUC;9l-`8Tn4A0YR-`<|Cz2Ao{`xe|T`}f!k-^XN5B8t<_ z^VQRQD(Ao2W@X5U=k;e(TUnJ|^VlH*Fd!Re@A`ozq8lvS3i9G5~g zODH9FiW$<8xn{Ij8omv+E{n=&Vdjw9`o zLFK^21~RG@u~dSm5j)1=1S6cI6P;4GUE%PQsni&bT{{t6M28pz9T#H^I|^_t}Tg<(w%R;|;kvDOtKn4)E7#txkz>ru$dHMsCf zMPx|YRJyFLE(ei3l{a%!HSQsRw;>a5Nb}QFB3DnP{8!S<$?+sH0FqFEnhTNtPf0|} zRyD>{v)qxEfNI^vafC)=91w)>*<@t4WmCFbiEiG;`b?y02Sz!6j`gO67YS}YBi-8& z*r={I4An=FA5()0s+tfs_Rk@qMf8Dxa`{8>L{hq4;|rYAqx&L36g}KQ4_x|vOxK_&49|k(2QuN zL0+cwhvR>YFV=e7OYB6y2ax0Gslfsv;Sq^XfmqaCd+9{`jKmG%S0Wlb?WZXJWHPYM zT6(S^l{;!O*75dJKSq3L&I5n;)nPgfSM?LPSi1pox7~^J%}8@vfwZhyO=1Tl>$Mr< z9cWNgp&gQ}*|_>Ay^`UI6YWAr9hzlKcAdOm6o|9x1z|zn&n)1kP_z&89+ANNZL=Ej zer0%kY=kZx7nv9}>%u|#h^>QRmEthZkExo)l^tI1N10fWI?l)LM-)=oVsX;NVxCT^0kf7kJLs`%x+4OeH3x!$^Z3 z{2Qvy7%G&nx5h>kXlJrFF)}x0C=!v>9PTYmsRzdrr`@q2^HXv%V!*^D>>npV9D z1sVPMC5Lewf7on(O{uLk@f_K15J*gAEuE!6P*oyf%4|R<*GeiC>3VLr15{`vgNvI? zLd3cXLYeued=kyZlIMX%Hq?TVaibPq?KB-fYVLWx!fut2D|4u}j>(yls(#U`E^G}x zhppj#Jajr`c~_K8{LQ2zF4p4ntbW4+hKp#@e`2@XqvO4|6ko{#$9&(5)10IlMgKjm$= znZ4^H0@CkisOSC@U}|yX&RvXX7T?t5v;P=l#>%@1y1WY(~Gw&$aWlh5t@I+v9WZ<|EMm1^345rsXpY zaV<=q|LK(6|AgJ|BU%UDET&*vi=m&5A2c4TXi!J8~7pRP|ZT{sVpdSpr7^nH2DyoW*<5~F= zpaQBEW_>T1^>EJ?kAJPX1DghGPrWp$HT(-lsQlJkXAI|4UGSlxt5z&Z2CB*PXwZEBkM|Dn0 z($3okNtEGK}7ZL;`8?k}ruGZ!w@`jX5HxLrpjtv_V zU#xJ@r|Ygyf0n zmo(c46DEF2$*@d2`x?sDFS5!0Se+$d@)3!;*e%6$znTsT(I&4u|_{v%3(b|FqF6I(3E3lWGBJT1E6)dXiTt7hOR zPWfOpX76Y;J%prOL^Q9A;Y*baE+GA%wHEo+X9}TgDf)}+H~&i&0R$zY@zWbribbxS zDouu~E>(DOnaqL-BAiRTc;%poOy%z|?Hq`U!)^~C#xf#sSZz62?q1 zb(m)EoQWFwXzuEvK8p_L#J{LP84~d}7ZuWrueuSo`R%%oB*e&}pmZ#zjnPVL;HG6p zlS(6U)tc)&2elHD07VOrt#z%}Av5RIY&79N7RD;Zu@|^FGLDGXPhil!F?s^q&QT>96gB)LfXxQ9%t-kVO4?v>A(-75%33W`7FRcKTgQZmRL?cyV;T8~X_>Z;TGOG1bQsT;X?D<)G zrPuhAwg>*Fz6ySymE%&~AN(8s z7bQFIlZ~C9=NJE)#`lk&_k@F!i7{4HLjLgAk;W4I@BVtebj0cIkBy&bdOx3v*(D#3 zYi_^8p0wkE8UM!{zW1V(lEu;Pu1B}Gvasn*mkk$(W6^5OW$~1p?{(@WK>lb8Kl)YG zOXmfs|8)nD&%SYwla=wl>+H4P1UCTL3^_w4Oz8aIYCcDRs^nvO?vLm@sQ_PEG4sCQ zy?O7=`C#ZC(6MNe#y)LIYCoz5dkD{EPGX3|r9IrL+RseYzZyXp9j_&`XR%~zr zqH3#mQhxKaF1DVie)(DJtZQcFPPghQ<0l=KWj^?P@jCEoZ>}2gf#~@Mx${rf%`jd5 z!{B9oLOQbAn`us_72T%nh&J_zBK{a`b`akN36*)y4(%rgK*wL#N9Ioeb~ zHcuo9o6MR(i9{9&oZ5}KPBQEuQ#LVdoAu#9*lfgYY3T<&JRBDR!2(%7 ziWPef!P6DH&IKm~tx_(-6qls6M$39Wn7}X1vcC+D;4Ws|l#ADl{TmOf7_CjykQ$4% zA2L%sI4v3mHhI@_pMxr(;5InMAx8qski4W~^aF7X8RlpLt)5-FIP`Ok`V%?As;Wtl zf{FbLttmoI#99?nI3iLDPz6_9+g&Isn*OgysBaLm0^LQEUYfVuRZp#ANu?Ey%_K>v zs}&mqy{t;D$t5J{Fx@gfzAi7}FA(qCwtC}Hkct+uK!bpOA&9c5@0S=%0w>jjh01}n zvv^*y6{jQ?LFpa9i`}H9ZT-NLl2@1&=${sb;=kC{Md1wVUivZHc`R6h z5%YCw$&<_rkOrE`pI#_Nib`kE!vvzJ)GVwc-ExLcod&TO{-(boh_VQ?QWrjnxNF2< z5h<$5gzJ>Pi3?Tn@gj&?u%(4Wv+;md=0X&b>7=j$ipS?hl>a#?9K7eP zE9Kk7z=5mtE$(LZc+EpmGPEan;LNSWuvIJ!pD9$lQ^Kv>)t73=V27VPGXj$it9C77Usgv=%xz?^oyCze0xk zH=KlaGgY#M>5~aayT8xUCE>yvfVuLL#ey@j#rAhxyM;7+IX9^)GMXndmz29|hFee- z$pDznG`#XS&rG8hYdm264^Tb<&74w(R#9QSlm_V=p(oNaiN~bvSbhA-bx6S&i*4${ zW;m+jXKcw$1RKJ8E&tJFOQj38hQQwug#v}h zqmkU)RL~^966!g~PZiEnLNTl&TZ7?{&4QE5VM^qMRd7OmnPh+A(Bv=h$Sx$_1-P$r zTaprXk+>jaD|2B*^&!(K&8mb^g}l79?|*ljAmxbkD{)xE$t?%w8E%6sF7T8VD|e}? z7@Qc|;3&Z`r{H#1M4i@?w3jCYD$@5_JV=!*W&C3+0Az}wn3h~l26;RQ;~lGgsU%|= zGwW21>TPB!s~c^BKq1k)rI!ndeA$3x4DBe93sHuEOqlxQx2s0Ti(*IgIIr6Pr|BoC0cUm`MdQB)_ORh+R%INR zH~Mu7kO1;4+O&!d&Q^N!w;o7Bl0zz^^@CYq0|%AWZw6!Qy+HLNo#1z{`^8YJSLEZ+~c_-p{oB0uNvJ#|)_R*>*>d-Zq^q zsaQc}L!nBC@$>L82{V#5vzx&Fj|6g5PYmv8 zm-j>+*vr7RyL`)?0Z@8wZ;uaCD@Veq*hZ?-x6e7&BYo=T`{RfL?N5Ru;U$cI6O0kLJkf9C0hOfmV` zIB?b1)PgC|nv*P2Gbxn^Oe{E|t6h%;n@1rsEVHQQ#yQhDf{@H#Kk09=xozYD^CVhu zB#Aug(}EsUx@4od)4@-~X-YMsrI!NAcXjRA9;{T0&u({n2W$0ecyCa&qDOtWAO-Fg z3x*@HuAC?~ljGsIb3*A{+BTH)5oYfHhOwG6+pST4NSS#%b9THjIipRB(p-s)6e;K= zK=(RiuH7NEhc9XsvEB4WW75O&IAD{1K-L>hdG4mQWrGT$ZJet6k(8N6vv9+P zhMF5y-hykOgnv1Ekm=>UDuJwK;~ z6^mn2dnAE->#TLK^C2Ii?fSca2NvhwDU_~JHcWI08473WglJZ5ScC#h5n*!@qCsy@ zI&;gK`54!vV}YRoRungj+Bu2Hlm@KUBq*C^AzF5cWFhTD{;X#_~2lZnkpLIUXybfJO~`NP)s3VZy*yCU1=&(aK;TJ zic*hIpI{-Cf+AY*KRfgu=Z&54zlQ0gRr&6g8{KL19sLd1sq{#r zf#H7?2LmDX$)IOv^8FMY?NvM=fF%9!Lk_SGEMSoD8n(#7J!18$mHfw!* zKF)PtGIS&Bnhl$odx>YZIyE2QCIMcBekob2mvUt)u5UYlq+j_}1v&G%2K&@?av|@3 zd#?ZWIF<72o!VZn2J>fs|8v*X*k$3NDl z{O)~{mY1s-aBkTa9dy~>^xB9Q6 z(>W?nE#GVO-^cc!{T1_dzTUD;3tT^l-`79yk!L<>W`7y!^nLc1H*UJ0o;zZz^|!Z6 zM0A()>uEBkhVTA7_z)0{tmM!yM26qAe{6}xySlgxQ8d;6JZ}L8p!Qw!Hyhno|2V1yjnS8>|PZup;TWYd0Bp;fFP( zv1su&D19f6B^Pkc%zHT^HxDv2ON)4m%7! zFq#F>`BtlB9%_lah}flHLf0nq-fEyN6Dq5?#lSJ8q@wNEW##!$;HJeTo)-P&q@H~X z=i%nG+*@>To1e&rt5_z7D3DwZ%7~IX5l)goVf8Bxn<_8kJ;k^0x;f_`xw-Lp`h?N8 zFdON74LRrt3#Jv((Ia;)?xz7kM!gM&rB67L91>D^V184BI%rB1!L++V_^CWta8O0 z5liZYqRwwROh1Vc4@`o%-V50TM&y2rV;u5DL_E%7r$>ad$#5tgG9r!_!?I+iFK%{!*VWbk@C0Z4(6Rmw5$i`qn%R@4jG66NVs_1{v zE1ZMQj>wD?*HuM@@h%e$w500R9p?8ffE8px15s)$JMVfp7lw;9W-HnwC43s0DDrz4;tHg`N_)A5WVb)VI%NL>My`>04t2P2A0qAhS zZjKdl?&b3om0`bBom$hp0&j9biuO!VYhi9>u~6A9O$wv(b1CS4Pi@BsQZ!!Zw71j1 zhO1Se1B9OjLLzQ?R$1jVGSYG)ZT9t+70C}X2YuZhr!~LUhih*<|JOi_wtK50{Ex}E zo`=8+{8k13_aJq@M`eufpbmMU&#&B`_nK?o_fc&28Tv=moUS+Nm2L#|kI9-Z{G0Cw z{?8ahpP#-pSV(jF)iCvJ-^U4n=9%qv>P-K}_Wl<8y)_}v>v0pt=k(m4)w1~{_i3LPJ2IQR;@qgk36s%wxkIZ}x0E#E^zeaZ6ZT-J( z0j?$6mMu>Qk7BxsB;Dp9FmGjJn)Qj@?yk)%?Af=J zI^O%;lY7?VdFR-x&!_t#av&XdB+s3||46V~avPo6~#o%NPM?PxU zR7-->&+<02msXc#byB9FfTjwYY<Zo)x~?5T&d*5Yyc`j|;ss^!b|y8{jT3)6kixr8^soTghWZ1FhGZaNXL z!M4iF6i8_01C{*GFcR$F%xvj6yH0*OdlH#&JDzsgOY5ouzT0-@s81y_-&u6(`UKw%r9xV|zZ3ye77q7kn~I4sNmTUnCk}%7Wo+W# z`<{C7OTdb(*(3>Bzn#FGK~Z5Nq*T_R2ln62Cd-H~%AvHqSmaKyAEO0`sI)lcZV^#H zO^@pvFb2J(u|P%m=H4=+LaF|-e`7!xC^RdsxzThGy0#|vqcX3Uw)yxtHR*8jI8zX1 zOhJ^h0EKq8s6|L}2PR4tTh=|%Xlo?)Jlk)OifJN`k+}PeF&b1fB=#$^&vKymGZ8er zapo#Z3Nt7>v94cAEOH*z+A}K0K&>+BVU?rH1xGS#59@fNYy_IciwEa@AtiyaQsCR1 zk5KVY8lony2}G86$2)C2ITR?0%?2w-^jV5VJ(8X7h=5P6NZ-ppK2ce|eF!fMyB@^O z#Zwbr9NUN@SI?H&T1qq1yYk$mLR4$3*#ReaIavt7^4Cr(~_;M#Aov5=V z-{&B#+EG|*QK zKSm}>AtK%^LV)ae%vQPz9fl5EAzm%@#FH%Fw1E+UkZwq-**3W-0u6MONnQjZQ}qQ* zn?+Q&E%XVDC}eqAC>2dEQs|jyQnn?$ZZpjNm(ylqRbYIw3}k4zqgH|`^+{P6q(JvW zDgmVSp)~72o(81mz{*wI+m4||IT1NI`3#>sG!gkl6PH4icENHbPdy|Hkpy)}Hz`u; zl~TQLrcB%JBheY2>d6o+P{_2Uvl@vAoTgNh>=Vy)?TV^pFy^%mdCDPmkx5<5RJgmP zsD@jDE?}7xeess_u7Q78vS>Iahf1y(3yV|)K@sq;6whK{re@ixedR{GG|EG82}227sjf{*y;Fsu~yX@$hUsc(A zzr6VD#5St=AFO=Wq}1K-E=^$6@cG|;hHPvE7`A_TBh@uArp4Zl3agZNBCB z{50`9D}Mn{)E#%cVB~WqC*!K-rn`){>p182@+~Z;n=c?o>f`?AYhIo2ZQ^9-HaVyP zqmWj7hTqxesV!?F+xzlc|7(N)ZokFrusil=4ujtj0IBBFI|!!$B-O|7a%x-k^}Zvk z((8DXTJ&E77Z$3U()E#c?#PQ$x{qOx>$(~N+SF`=@=XQMVU1PI+cL5KzzAJ+?am(>+nP=?DT8rYM$>VJBL;0Kq$YrAD{&{j&imYC5tlym4duHu++O z4#dK>?V#G7@9y-=Rg+i`^Tuz(TTo@(L`6g4h$*6R>K&>Vd*|~S@JT(N<0NX%F2Fwh zf6sGtQ^Cc^oxbC_5HcFEfp2aV&#pzp(E+X0Y(Fp@Om*Uf_@PJV{6m#u6uM4bUWJ>VqA; z%$WBCHjel|J0und;6+@t)MUhZYm-c;rBrXZEQ~nP_CnL3v3kn82`hPZPq25b-q-}j zEZGHM)@-7z#04n;4BCiHw0_Le%(|Itl@SOkNs=~__d+HMEO)Na^@EB2Yp>&J5==U$ zwzRn!F2csu5%JwJg4noTnw5!EA@b7v@Y~zXD)VO0HZDOL0Adf_kmuIc=?{R)r62F^ z1#bv?sDD-mKj&&~NHN6ET8Si>lVVqc%UBX2#j7JPom$67V~D53brMunSkQ2(sbum- zYpEjWvZ0BF@(&y~qvKtS2@;EO_kUGCRIucQtH-r2iY8KGFZE zNGL~!vL$nLdW%WyG(j*V6*tFG*r7MBtl1W4)J8kCa2+h0?3S&O(2oHkb}wq09u;`I zCR@go7$K0XqVu?yaU0hMrRQf?O&U21rN|FdAyvLnNG8$QMDfjLpmm!CQuc(c*)FUX z8*BH{@7j5gQwR9`jgI4Xa%bh^Ni}}z?@{P8i3^m3#F+7q-)ojI3RwLQ>CQBh!)%Jy zPvGOzV?rVeENdjyD;LXJxu*<7js0kuSP^1jpqKfUDnPVF1(28b22~P^DRAHcUfn$v zztX%$4PfLvH9260<_FRkcZR{r%*(nykJNw|`gvVgbciE|tL1-d_a|fWU~v^9N8H## z(@grgF;%L2X+&zr5d(ix37dyQ&`wpi$gn5Io`(mLG@n0nklG4Icxgy>W3u-}6N+N=v5HqN1+AHC5CnlV0B(Zz}cRrO($}_3w@M+oV96|`X zhqiOGNzrd`^W?@^rj`*(Ejo(AaqZoDlKrXsSE#~z3ue~{F$g5&6*zr%&2qfWiw<%j zIM)W{hjUk0uGX*ZZ9`^9A%@cvCdWx!O<{T9vz(h3UOf{mpxB`jL?j^!e>@4|{H?|i z4fmAKFvv+!8+PjmcLTQ-)_c$rce`6eA;{qnOE7ELPZE-_X;hpUT7nub zO}Sv!P~C)wgOgZhvz(!o@ki~UvbX7C1$gp7M=GtPOiTM05=@E`8K~EyDWkWvT1Mr@ zua!$$csSK-brETLjCS602a9)jJuV`KRj;)?<(#NrY`HXVhUsPB=OC7$m%jzr2b7J) z1dziZ`tqRDkV)5KVq&U!emcu#78*}5rwVpY-1EUS!A3Aw-Q0E;_VPDG8&vjW>E;_U!ysi;`f=mGq`nP4;+nm_Yv~w z1ljPS`48)EDw($SpCtzaJ@#3_RXH{Yi3&H7;ItAZ%D=SS1=PzPdD38=bCpIqFt->L z)#S(&ZpKG75Wh#2DVhp(l~{#LAm{#!mQFZf40q!mA~Z>bcYjVD!9 zu~NxM9kl3>8d0%*OQ(6^z87JevimTF<$bw-I{v?$gExPeIH;k;Hw@Ky z9zM)hgT|n`&MY#azX#Jwvp3~Km)uK?C84Q; zh4BWZu>pohAcV?hBiCpM?|-vsUNs&`1pW|yh*TV*xrC^Pahuea&q!aV+k?W|tqu#H zAjx-`9~TVZ8ZGmP8!6MS&t`&!L#vU6L5XcN*hYI{tzK+N9KL(m@!hY4n{)u%XO2a{ z*(P|ZabU@#O^UrOM28k3G8En&AZ({lm>M7AT75#6tIbKv$;l-bEibFMYO)bUcPc@r zvph4d8ZA!MuR2FtmPItG(e{NZaUK2ZcVY<1inGi;aFRY#Znx#vwMlL;Aj(%tl?D`T z8bc3&oTS6YGJYDi$^d4VWb;y#p~s4<(iXrB^`s(q+-7cPAC>hKHji$1wugdreRO6Ena?5uVz%A{5Uw3tO~d( z5s|3-Pdjag;w?fO!VUh+@5A)hW`Q0|Gpk-lkwSw29>@%Y3W&izCsrdB0hrF-)UaY` zmI%Hf9}m*PQtM-$69ARxe>ZxB6P4 za1BY#s#S}1FbJGPj^~}|{_E%uaj|+a&Ck`JB?=+l$1y@XVUGaJbv7YLsQp%`AdX5k zpMC2dWWqPs$un4y&2_l)G-(8g5oTG%(r`v0*IKl8BM?D5(@5MuZVkJ=d$W+Bu4dqe z3|y4*E!rppj41}m{^{h9MB$~X=q@%aNMIbp|I}Awdg21>Q$1BNMb>fd{11}pL4GB} z8PamScZU77`@5L;_qSxs(eR|Tkw&(mn9Y2rfu_b|p8b}|KWkr*yFXbmiTS6uNN0w% zpu!9_azN0qy}V?%&=mrv2CFXoxKKyJwb4`s;X=`-^2EJdMSE)jUrE%;8 zR*jC=^FhyN!%O##FuQK6Ysn;Oz|+{>GmKOxU+iyjd7Q%&)jRltn*R?4{{;j+ zaoIdmEm>4b7gvvKnKZ!ug~^~g&^QaKBS1xS@^LYB1uQB(q%rCDc-;Y1HokU0&VqNq zg@^GYX`+73CI%`o2@Jqb4tZbxAHD#*CKI;V=0b70c_k=ZUA%Be`yXa3wtq4JL@=rgf$#boi^vN)sUBD?UuESs>8Y)$CrB8c>ftNVfpbJgND+Z%JtgVM7uvb3WA278gi)UWGd#Zv#J3fXfGO2aUVF?-(NUE?IYiqRH>BZJ zdig?#$ovVy>_3;yzL=D*{%U#*&pp!E!pj$l8a(!495I^@{2jJ&LQePu$Od^~-;b;R zw$uL_a^MI}(Bvx*6c)oB^?in=Q9ft>?vq=zQk7rSFd~>}ii#NJqhw^od=6V%U`Zb% zkltJM>nak$0VhIuwX!-Q*|i+JLc@L`o{pg?sKbJSq@PQbnv&$mKlWK=d3%glE7Hu5@X8dl<^ymwj;`;{hS1`(cEtkjxFCMz1= zD?<<-&JhT_D4i5nzO1Fn2v|ds&DMfGMZx%m0?JGoYDL3%-+hlxbuIwu#Da(gC7T4| zZLQC~&V-lpXbCG6k0iCErV0>1>sC;aEvvM~$I!?z%Qk6BlmXH;3eW@3#z|F^R>iC5 zyHYWTLRw@w8K|m-X0!6#;9`6_{StxQ8e{a8(fk|7L0CK&|lf3SJ3- z(;GFi^nuYhZ?vcb0OBnU4h~Yh?8qsdEkqVn+$^qx6d!#9Q#ujWn?I7L>?Ym4in?hq zn$Xu`LZp<*n)ShHULEr)n^3q52af5U^hZb>JmU&4+o<1LeLYPBl_+lhXm*C+ku60g zEI~Y@6xI;vm+(Z-03&=l6@~_NM!{*|uHH&k zJew>j6$v;eC`2za-X7jypaN1cA9EKhUJ?a#bhR42WzYyTC%7>;4Gtj(2vWr@K<|VYowxcUA<^$6G(*K*o=l=an{l;A(7<{m5Mool zI!Hwk2eYZ!agSPlU#Ja=3eI-6UnSCW%UbMt$8rUOR-+Wz5+b^eS?Vky31T!p4gBiB z;oQWEjJLR`5#C|fv2Zmi{o<#+{-HQH@S>5%@5;&^rOTosA<}Bwm&lI{zs-i>0u^CC zT$qQXPX8{}e;=2_I8%y>u-Ph0X--i$Br81SFA@DMHzbH^Ra}xjCRA^iuffk42R-6LC-HH@ z?MXIyXGtl3eE$sjNb-;*00-LwVtmPAvfeA|zer5-B&JoZ0n3nnY{493=tW_ZP`nXk{MT;x(PB;k!85rQqvb^=h$sUYGqn{ygPZH;1n#( zb7LdrzjJETMhxhi!uQaXGFB4!ElP-~n(YP-Pei=+1rSN+xfi8?EN-VAm*Yq|c?Rol zBHS(BjR-q%Q}2NM7s}d6LeY@nBVzg1FK4h$m5Rl6b8ZD~cARzH`FAK`{(*6YQxQfB z)dc6a9OP~&v~`010l2fuaEPRld`|M4G7amrl)*wPJrQ^`{3g>`^q>1ETo@u~L-Z@W zUN`w+F3`A*C6MzMiklI7xbfaG;!?#BOqUh1Kzs{hKuSitv%bp#y2T9V=$}qB*J_s~ znCPX1l#&^ntjC5)V3lENbCe0>DIM$+LE~0gsI7WsinFM+wstiMgR;6eTA*9U4iYk> zj#G`iyY{Y&?Yy@8?77VUrX~Lx4Sf91UQ}Sa^tgk9plt#$S6`4sTQ2WWnm%_wWNz~L z`~OAQWfOjEXX|hKzeHHDJP}6uqOv5{&qX@ODE5YMSeam4x9Q@+Y0LU#d%VHxc4{5g zDqGKuh`(_nNqzQdj`UcKZYDJvwJdD&U{OWeO0J2}TAf+Pyj!MFkkuc#btRq)f8nqk zZ^@vHmbl6=l8f6c!>|K-&OXYIi3xwh?b3L;et)JbG;ax5Ws1*H-&l`Zm6=JpH_;qA zg+xX%sbLk{i6_K9aFvPgz##rKK!S9VEE(*? zqJXIQjBv0>Uao5t_Q$rhN>CfACz&T9B*?MXYY>Kzps{f-&fe#Yo+e{ zHshS7%|)KuLDlDuRfKu4Sa^uy`Y2nt%4sMP4jst^ZT6qiGWN?AaVq0;xD_;g3S<1u z2elw{(v(F`8ks9+)Bb$eUI&?(ZScMs6MSe_P#f-ZsITBAne2pCi;f)LMoZx$0HnKj3~pTrK)&fp)!LK{Xa^Q>O~pIip&&2$I8K1$`rre8~7>l z%FZF4asNhW>(Al^v@59*kA0m8U3hIf+W)@C`^EZmI?~$>;Y%Y1rQ;H_l{#lvDg0Kk zR}^NtZ*Hlrdj9;81u8F!R;4zMSd$=AMwJ<5R$-*EeH@|+?=oh(?Nh9Anz8~zsHqef z{;|+KyjT{zwm=?Ba!Xf;t1BEHca&ZtVMaxfy9Sk_5aZ>gHOg zvr`rJ1pYjsJLo0-ZG$j->m+}Q*w@-gQWIj0oV`2EpmLV zh~0Dh&t%;Kgi%I!Y`j(y#f$-)`5=sRU98ksSyeI8`%Dzx8vR^7leTaqpt}E2a#Ga~ z#+tX-mFTQjrcp0_LG$u=m_E(BnDEpPcw7v2<5Rm9IPeSg_+EPK!&q2}`J0WcRFR%7 zY#(y#Uy=r~Kb3jQ&wmnYw)6}~$DvZv1Z;uh6l1^4R#A zv*{s-qP5%mPYx57$}J!u0Mip8-QURfX>2k95el$!g#Eps-L-y7QV}Rm%%RDGIC%9R ze?cIlia4}lnT1YGBaH1FDzn^EOMDG(h#NXuUT$LCay&6*Bda>Wl4|HJ1_nGsb#uG- zV^eT`_3MobfAEqJgEmqUS#*ORqe2YeJQVt?nzW@gOUo6lc$B!lbj$x&ZSX&`yuT}a ztDn%2oK-|_cAxI6J2v2cLsbiFP?daM&{hScUjM7DW4UK0t$#wIy7d>YmAC6|&&vbX zBUqYkiuWUq&OXOD3G3YsUWf1hUw&fm*lEnwQ(~FQ@)85eQLzi09>dpkZ`6APaLJP2j2105@khELC|yNOrGtmo9|FyWt#9P3(Y%LD?OI z`wA20q=V>la|dU|6?c}1ti*icHU6Etx7=diu%&SW8?vdq41{^i^}-j|O3H|85qtna zN}5yR2q8)mgebO~$Dv&AO8Kn7U%5Q_Un4=r*q`d(299$6NG_*zO~Oc?bfVv5aQRI2 z-6bVJ zP=TF*uXd2SzKtvntTS#Hel#07QYI=H&h~Kr()HU-mh;M4%{|}dwZHRrTIu=*P3?ZP z)KgxO4Oe$!_4Ea3ypzy1y2;J&xa}a{Xv>p!Sxocc@W5jI4Msl{3jYY438b*M;O6_I$<>Uaq5W;LvtJn+a6{gNcGO_UMN zt@Bs37+4A<6KY#2-KAjV6h;me4F)UhFBA3PHXP>Df$Gm7^$KytwdG}UoV1L3W-Hjn zCT#;8Emj$$O)Ve03OfPccNJtG7#pHe788f9ZITA>>!ki%iK5{r!fu&vbNZBfs>9x5 zuJJ~L+#`nX>krZ9l4<8*;yirY8w?G>1*{99-ziGa)l+z=%|9sQ(ag*_ywL>k#;vRs zgy0m5m0yZ!Gd+j_S1=VHpU7iwn+gfJb+%h}(Dqb)SE_tE`ZYe>+ zrVK-rbS;%3I=-$?iovZ8q^!}%CoUJsIk=!e?M)w#%MJou0<3fpZpHN#AgQ=+pfEn+8mmy6LbM_vZati~!UNOTwa zhs)CR+XU9_jjKSqc8*Qagw;}sIJWkMKVjWF3mM1Eu~(v9KHYw+JtI%-qeDA<%iqSG z4Y4C%PRWqI>O*_XH_xQnvl{x7F+mE)s8Io8*|ta!W-ojA`3IShGch%jc-=4&bVnNW zMvb9F%(Gm*A`A<5M7M|9O zWe4@lRZ%0ObF}1#Lg5dzT!^9JGC3cJj$qKrCY`d)@~#A{a)`h+tw#Moj!uSwJ+_r( zs@e4gNNxY?`%v16M3+D8p7e8Df?licHq-t=nc*&V8!QO%~k zQAGv3B+i*uJJnz1iiTiCh`G6p45}-=;$s^dD^BUKh7l*2e9srErB$f<#*SaOGQM1g zoo7I+5!BCEKh#<*!ALn%yksD2@7S=;ZA*yadq3$2EZF5{m%ZnjsGI>pm(awJtC|*w zB1>%<-Sw2XE_cAA|9`sj@43I;3W;~8q*h+wkv)*>zlR087C7|?eE&};mCclqZXR({ zv!UO~G_>Nct!2g9Gcp5BHI&Ncxp4IIJ)hE@ztW1HCC)8v+C#oMso}I+uZw#X@^B6nXCDmNY2^X>nQZH z{3kwlz}MKzM)fPJ^!1g`<%SSBdXG>4qWcDRX*EvSPAi#KJ#`=4-g4rqAHVXKLsr%3JgmR5+`Yd_Q}^4xMAWnT z$aLHNdFMkn#qRwxN$04NaW<|fi?F3tWlM?b`;~Xv@*{cW8byTRBj_q@lu7W)CAcA| zLevl{JyinzCrfhfy(HVnJBy84Wqug&!n;V%q}Kg zmLk&M;*JLjZ|I0juupD+k*~uhCeyHs+G6D|h~NYcmVD-9t}sgP`G{Y`(wvo?{Su*e z0MGkk{b(Dch8MywKgxw{tk3jl*%j<5Ayo`TiViB#JAw(0s59 zs0gV*{SDUJcb`~j<#cUq5a4o15@G67`BcWGu$yE4e(##=jrc}M$!LC}Z!RY&hfH3@ z;m$BX?lfs`g+d)N68WNTFU6f&2&vMha?WRV%uM5>E`qyHTcXrx&}YITG@lZLo-R(>f=Z?Kc(%v2&a_IFLaS zwvL7=qnm8Vz#>GX_|@jw;ibL~?oW(*Nl@-2G#(SwbFzqNe zVI=IJ8BbzVG@~RX`Lr?T&$#MO@ji~)<&Hhk*M%XW1FqC1^X=TId1bhaDf*=O@Vom1HO#U^?fC@qEi!hN!3lA90nmSU4Nkm-EC(qGVy5*dIle za6VI%s7JChn^9uy1=i2TXXR~{sWvk!bn%s!6=rhAydn12#H@Y4B^8&wM1kB(ZSYCX zQL8n?%*uzWT3OhdHa~-=;eeyhpITpe9vqpmv^D4fAhQ&JU>!Sk?PoMuvOa!sTAnlb z;o4u%*;_{I*szrN=$fMbZQf2@=Wrp5nDm37qTGKHU?#% znD(1tsH~kxPd+ZG`ijVYtB2};dn4j*6z5IWGmL1-v22$yL3|-OvFwf!t`p1m^cINP z(+{t8-s`SzxHjv-kaoI1<9j*os;gQuuyXV;ls0g@i-W)aZ0DQ^KL*_92LABA`MU8g z4{mU9P=p=bw8xYaL_rbmwwU7{&-LzIc?V=&6jIvaZSA%6HPxCx4XUrpTRVcB938z` z)9Uui?RiJnQZq=eRXT>o{-KYa&#{a!aXviE59Wx>H-$q!^4v=9bhK9cZ5^qOKV?dN z4IxGNaX&GuTc1KHq${2&uep1I`=ce((lBqO( z3xPf22@Kh;K@g%v7?fp7EyI2v0=qW?11fq#$bcyeSCzNaOS8l&(xeGjr8HwU)3dL} zg{9Pc^FFDzAIN~%k0w%&^@yoi>sE6bj7Jwf1VE@2LJ~JlZBWN)M;v(JLR8L~qI)qH z9XV(lmiBKMqU|`%09rX(Ob|S5s2Dl)4?&9DQ0)tH;a%qwK{z|`im1b&#Xw^ng9d<$ zAcg8O!cL`2<{G%&8>ccM-z1;bi&JvSN2X~y$o}*1d$Nj(<5zyhrdzlGb!=NJ3`Kuc z9j4ZLXpn^n6*a~FZW@k zpV!X&R?2oCq!$KI($hU;N@5(YQ1;1)eegRXOPn4~7P+ihD>8;%hWxs^aSHrO6kA9? z_`$S_a z%LzR-ow*bnD#Bn-)L>6WuJ-$M#P8I8+EWd#>ZBVFhIdTD{=Gj^7jk$032tz7~qI4Pll*ChrNkhplxggj2|13qImOq8g`042^J)Wl#D-i}JO+ zfOD?%&|sU8Z_f8+(Ze&u>x~4m$-{4w2-owz#g#ME4=9~}#M@yu%k3pWh@Cf=>U&J- zLS4)XA($xOH~HZgCRlLrA;@V~u{0yp*@<m_kYm*YVu=olQQXL=SGX^?;i9Qjza`iEffhk1;Gf zwfy%%H!5{?F`z&TT^>387=}kkq-Y^pr%a3_uK*rBG6EJ&jt$85(r@Ym!>2TT7u}Wv zAq?{1gUsZTtTNSD)n=dM)ZQ?v@kCJaRrX3JgEizeCD@Cw(=7E6!#xJFy$C{iCt=r0 z)=6D@;AjhQFBvBYqIpD}fLOEe)^H?Db3-sLy<$2pSxSz6myMo*qsF5z#NTCmRW9;fK(C z13o<9#iR@9&|GMTahv$0D0e)e&B+s=8I&@G!|F_5#9kAS{M}hLh*^+Rm;YcYV3>5* z*Q>vaVQE12E$&)V!_AbHbGwT%6eS6kMl95AER+8C&o62+&@ltHg^I;?_3X&(GT42Z z8rty2RT(ei^s4=`X=2um)@&o31u2-YFgo`79$|Ay-N|RS_^27|y(ZS=zrpd{Y;_@A zPJatH0Sgw3EH$#~?&1{s6jcdK@+E48dMQmUEo5@)Y{i>J-SG3`S!9tsYYk1#jpqmqv&Fz1;Aj*huEIZgDtAq;r8am zD%2yfggFeO6h3nM8Y-3V0SHkyvl1tHa}Gu@rn%(g|uY=YHQ;(p#kA@HBbULb^+L~o5D zaEL4Hh@&AKj(vDEpw>SAzRwg{r0n!H!r=2$8=3N(^^dKUOF!RoPEg{*qr>NZXYI+p z@25DMw8>co^%sV!hy-o7L)Z7djn*+)YsxjQVE8qGM1+M7l^j9$JHj~<0}hVKTJui>PM?eIR}P;hd?kQ zXI| z_%9%~=KBa&=O@OeX^fjPgoR;}zCFq1=tKs7e!5eZ{!hdc`H(STjn7V5G!et)bZfUv zkl4@HVK-Zx^&p=_of+{V)jB?FnL>o4ifun!X@G6q5di_7X4!$0H@}0#GPWEt+G2A2 z_?ztM^tF9>fad?j;V%u=l+I!k{i?te+5R_XgWo z5_NWKsH)SW_P==lpRjL8&FMZ0(_`Lrd&>x1pw@G8*gCP=xOi_ zRyE?MH(7z<(W-+}+Z|E7ZX3B%i?+nXjHJv|K0!`?&eiTYUp@I~dF{-Jy}d!Z6IBUW z-b@8~9pBEb$(x6g(d^&m>?=3~ptQH`(=bM^1GnlQ#UI11!K4x(v&=_uAq*AHgI;VG z0>?t!2Y81(u%@0&FCtOHhbJ71aie+gCFB2o-v9a7x|8tCTee=k+*IjLZ1B1>-!pN# zmPn|Io&A3O$wVZMQhw~4Gt=#*bub6fmvE-B%Y?IQY2ELnIwWD0L>IElTj?#Vrov(} z@-CqK7yV>3j#CaU4x1tYvFP3uV#sotKw_%F4{%Y6E;Da+A^4BIOo&5Wl$4f`6CJ=V zgV#+b+>pU>@o42_q?z)`&mR2 zwo>76^OIFP9V;d?A3Xy89a4TNCF4oQh=W> z7vU-LL2*oY&E*x4kr8_TkR19$dN7N3R5ss z*-h*JIZ8qee-8uS<$)#CP3sh1qmfS%)9oYXR~LdXZP(g>PZE4eqi z-oFfOHRK63v}leZ{`>ZZTZ)38uJOzUP7wgDYr2vh0I--duX7E)1epcRVdGR79G^W3 zQAvJ9pgG3sJzUNc0NjwdtbuZQ@^x*yK$$crG?Rb-Rp3CEl8+$k00adQ}$~+H%rAQg@M5! zj;6froH%^-y`D54(8#ULCf$`5iy*v;LFq2!8fw}Wie(J~;9jR>`Q&CGtP+u@Ed3xk zaBG$KV8~mS^y~KzhaTObrnQCx2)gYqZ>%|d2dW&;!)N0W&^Uad5dSGil)#^mglN)H zMge*NX)KyF?|Tbza6o%9jVT!TTfWHfV`$Ti2(UluLpY!w_6>;ocY|04IV>&^N-ZbG zpn*&D^Sy0@x?$h|z^$Mg2_wl~B-sac*ZK7R97n!3T3mvey)GP}W|jk&heN}e1S+^7 zMNLMNM^OX;YRI+Uqw47T>8vvp@dr-d{;_`(7gCqgqatSl+0%hvnQ)BLUSWYTsVAFDZVsNo`2$3*~e z2T*|M4J06_TeQ9+V8_B_e1s+NNoS)%I5~mCnMhTaE}&S6EcTA;~=&%&k2*e zwE{6JgXedH;`-226cNjLxon7&MK^G`aU|>HtN3nS-av)PtRbavZ%UDyE>^pWS*1>n z$&5o^1TsTbfF^L|&HES%sPq=Gm=bXA;-3!lLlzj>wZbt?W33ucPY$`5q|AUMYL3AW zTN~3Jb{WGaX$I-{IJRo?;xs^{I^$jv)F1o~la6J9I_^HpX1n02rfySXe~f-agnvO{ z(Q+>ZuBTsD^i}{AOH;b5)He9ti2%A1kLx9qe1zffo+^xlwjs6b4TYV)bshD{vv8bH z>eemuVIVV=e%54-Zc|;Qxl%1Kb{b|&i2r(MkVI_k03E^#liyTAOD`lM!azmk{GoP; zgQFSu9@~)F+J6i72PZrQuFEFD-JDoRV;h4Ep>&7~AlD1Vkq9wpNNR(JMjPNaZ}lCa z#~~iZW>gzVWi4m97&+HV`AQR~bv#N{tUTK@!FdTTOyKo()zCUZ2-C?Uby{)BWIW(! zXTPjM3>QL@7hqa`Ng0V)Wb_s7^9CYNV}G&3rLuMx*WLX)o&V*EEPz!Lu?cFw?%|Rh|wvmM0Z#|NF)r!{sXV zTJk5-sX9?1LZYtg+=NW#g`Z~!IJ?Brr!@zC;P+5ij;vV-VJyN`z)oYA?g48cZ@$3X zdnE5wByxneWxat#hZi5LA28?0T{_j#jLMp@wyv#34;5hTrPtEx=dRFaq`(fL&b&M6 zDxpXI7oC~G_KJoQ>iFr#9D|WZ=}Q0TH~G&<%X|FU19k~2;{edD!n_al{y!qD8_$XtCqsu@kd4tc0;azo%aRZ~0+n zY~AJ$(xL)pe}|9Ea>&T#Kw@HIR$?M5fIhV7unCy*W?Pt>KSw7#(kRL+E4)|CbW@6t zzjFT}rt5HXmokSMdwwt+Vn4(2x}x%4QBG-s^x!ndLlK^Yv8oI{T%V}Iw{Fp)jy8Ge z^wv+v$)a&_(MK++(>TF-&t5D*f)h5wt%F`|dkY(;=P<|A;Q`+=dC4gTA)FY8i`YDC zVj%81`X~gO4j!7eR>we4NF;BX$;xpePO~+Fy|L}IUXO(l_a%o{$m8; zn7#Bg;RpD&);_p7_+qx3tE+eb`=F(k7L6RIe&LMD54zgB(|}+K0t>=j4aCIi%9-TP z`aLsT1t!Wme&VfFj8ah{^XvZG@AsywP7 zR5PjzIruxEgteb4i2+kb{=s7p)I_mJJZwJ%RjW~B)Yl-(j%S4EuRx^!y)t3hLB zkJ$_KfbAWtgHFox5>RiCT^*Vi(Xzd7J@~vEdEjZ-D#~EPp#e~QxYW${9#z(J#mmrt zzRA0V`)lx3>BjW7DRbc8(;#AthCC71vxM&FFQlXdd3O`R0q|x|WUm)ApDnKJH=e#M z*#+Kxel_LhYIb~V`nB=o3f#Sj2D>_Vh+%ZUq^THt-D}yXki0x^zkdCy@znPDW$E-X zc;6t8{OC$*b?sKT(fs;b)cKd-*U9}@f!9@&R|S2)lf0nUv#8s3P@pap%xbv&jk`_N z(mdaS4XK;{k)9j;eQ$NT_T1Al`93-C#oE@_%3EiwNc0&!gtiB&Pw?D$>ENutxX%;G z+rR6m={!H06*+xu;fyUY@^@}~8hzVZjRFh~eZnBQyPWnm=9THVzfq}KY28-o4h93& z-Mib`6(m5{ed;@(7Spuk0$calolf_;$wJ2B>GLeX;1FV* zP4;#a3j7$R1c*lJmh8jo-H@k7fjONK84Xi(p~AP=H`>q4LJ+lB1PV$v$p9IK+5KgY zmQN3$st%H!^k17cAi@3jHbWgMA}2&&7xHfSc)5uMb-&w=eKT-QXK8SX$C4WNF$tb{ zTQlLs?LPpCYgxxnPa>LNhN82a#=@i=tqT8RyE^Ksj*|!9Z$uxQocN!bF^`Z%gvK2h z_zeGy@pQUJGC5o@{YrJ-FjJ9tdzaJc$#c+WLn40ci2pw2KS58DuD-qQiO|lu!uMJ0 z#ot`}hK8!A{htln3Iz=R&7jw9p{NALggJtK6JYogD<==MpT-2^J^zu$S#r?xzYcny zit1XYA5H*UTsxESzb-3i&fl=bdw2mk5Z}ut9{(ESCY#fweN{{)>R3W{X)Ul7$SgdR zBcE|I`_{t~wyGjCTuJ_P#At^bF#ymt(e4oNe$#f7%6bU=BU)k)MioG z@|v&@u^Ohla-iD(0H5BuoebveQraQSc?=*XlQ3Bc-(Haz9<}0Ms_^^c_BDKkslQ;` zDf^3rGK^_iHy&(Pf=^C$v%6macb|{c*=T)!Nt<8ao)HZV)3KfMQE2oA28?X@Dteme zs`B@hlczuJaqpH5>^j%WbH2~?7taO$T9+miK3kpzeoim!ocm~3E)P@j&3%Oh?G#K-!*U#96I3p%Fg5(#oBldr7e_)u_`$K- z8Wjqs6vmiDZ+~{b+}?H{Wz8uPuX&!PGig_qro8;_z=(@iL}>^aa|QH?ro=%dyY>tv zj#W)hQx91%Xa2UJ48 z=KS)+E)!!MY~@Ats2J%2slT^=h*no2HgIGY4=1K0JDXxZL;BW4x3REEFMGB}myyv3 z4TzE}w>=c-lN1&bVh~_q5&q1vpc>40r^9HL*IDm*X&Eh=T|uboxg2IHx)In^Z+W_4eE{eipBPu z7@fb1f$pw{N3vuubWVK^yzGN{K4;l@6$@O0?Se$KgG1`-T<#aq&RyF-R-ckebDvyQ zpOWf%j(JbceAm{#PJk7@7f)Cp+mJo%|H+{o{E!dXIbC&6hCJB#cl?i$;uu{N+n2OL zqETvr5JW{wS1RrHSoww5J$FlSF9juK$BLZ}F6GFCrLOc7w z<9*R>$V_8z?@o?T_teV9&)=R(&0mF1h~BO}XHLo0A4;SZ_K2x_#k0Cvq$tOuK7RZ5 zKy)-1wCcI0(`^DSYO+Y-)02;6ImASqD~<(-06Z)V-6%`R`7j0Wo{4$&x8C{X0;)z-F0Nv;9b>a#=)t3T-+dSDYID+D{i_=g`rST!hR21(4H%Q z9kt_Y|FhhZfWp_Jm>37%x4TM?bjniV>mEl_Q@ow-AfT4oN~x3zF7Injf($Er@w51^NbIr%nZ%P z(--eF0dmNe>$?rU`hRTI9ywQOz$gzQAf<)b8&031ZiS`;dAmfFGGALhB(O5W2 z-y`VpyKR=C#))XK2uZ-p;dQQ?G0Z_!bSYz~G{J9EULi zg{FS9K@xS%VW#?ge z#~|=keP+=G9iXR)ySCwV=&BDG5Ht$W(*53RUWYiNeFSv^c*iiRDmw1E`+lGTgA*TB z-pp*G$)}g|*XclllkUx;j+?ch`6jY*;b7)UHTu|dS<&;R=+w7}5ATBS&qRG;t!JQC zYv{SQ7F)NU>nAl8>?S`5m-pH&;9KHf^D=Cb>(6}UAlPxUu3u-@x$^hndg`^Qq9_Wf zTDR%k;x^cEJ8i9Mf~Qo4n0wHq#dYYNbNAh-NiKVP?`m*g=aPW5^8TGg!c&8>7O(S~ z_li;8yix!HUay0SA-Qhua6KvvMKZNqJ+p>9o-_vp66?pfra}%3r>GOxZ;QVFAWb-s zU*6t|$}|UyKc1p{Zm%j|x`tB7{)J;u$myqNpwsQ9$!k(s^nlYw&?z0)=xAe3+0GTp z6fcRdOFhL921bLD}iocQc(oNemp3twXT+o(kwxZ_}nbNr5O>Z*Qx&F{J}K#dSOBP z&tltLW;?rKQkB~|rk3#4V$tLeabVGHXiaYy4{FE?i8mT_tq+Vee9n(_B33H$Tbm*+ zkHgNv(4GmOm)&$ug)xl_lr-+_j|V?&oG@i{d)u!W)^1WEkO$*;N>bAFYRGV($ZH)j zDddso18|h7EGo;OmEa_1s#r|e@H(@bG&LDy8t7sxgL(*d_l7fPW;o(MB1j}(%Ha)y z#RzFOJWxHNwmB>Vy@(%0J(6UZM6EaArtK6lb1xxO&XIH8$9Qudp)S*dfCb$V~cNkGc8NQJ8{P-dIA~x62;g zf9%%GXRcEB)kET6LEfo11*>LN4X+rP82k z1v}vPP90p^eThL$tMy|lAM|#j9&EAKjEP17$ipHq#!* zMw!|G6beIaV`SjEskAA)iH?w_&3E8tv6Uem2Z)Z=fu^9|7~PFQv#B&zsUU?|Y@kfH z4IOBLZlOFOKektKSPZZl81;lANBAjJoxslPLA_w6K8`@6&dO5dge~3;$t6&rH z?PIw;?cAG$dP&~(_cs39Cb@y*VDq|uhoyET;N|Ku4_q+{Mc~6s^lSBwexGwEiT@eg z-oY|mc;blV)}>K9hSfckq`)^&~5g7ut=P;3d%0g^0iC% z>-Or-JfmL3$S2`~(qli-Pjz1;P5qSt|Gn!k^??4orh3aB$0Ya13vgny9jA&{NcKUJ z=WT1$IgW#E$@CP$YXN8eLQ-u9zb=%NSgsfe!l7&qZlwtZ5Quht$$i?b$_9wEWS7}d zXBzNhiSB~f2o5z2R0%l;zbCWKp9a5{5x@={$Nm0>uW`{^6CS^H&Dv-alL7LZrZ-{A z5{Lx~A?tEF+>d>rYP^XTc20cm-gde{Uy8+KYyyu|>6^k!GUCAM-;A5?9hpCHu85`F zD`P_jQq15_)lg`*+6&y(hIXYF;^=XHyvL1LALQWY7vO{itX7)o_IJg_5_tGxoKwf1 z)@Vnm)Nq&U(JlTQoaTb<>=8mnpMT*wuRnFk72a17=s|XQSu28GGYN8$0DtwZ>Zt%@ z9TS+40qc$n91Q(!b3%(Mx{uxytSndo!7NjgUcM4gLd{Yxtri{#=z5=KWfW3E|HdLV z+p;u;5mJbqs)iVu-7Nw1giyeP6$YUM;`QBkr-Y%?TR3Rdb%}bce%#79MOCIP;@bA@ zQ8;E%H|oE%H{fTaYKT>Wk_?Dzuyq9g-z8?mmKEFP#c^$aLkS`Z#u5lrX<y`iH5fx=L~x`V_J32>b7{LA9W!Rznj#DT$P z(nbpVf+V1HZ4(8tv?ds&`@ltEc9jRhO}p$y&%Cr`GUN6 zfs18but2ijr6e8>j>8ctMZl1-Nu^=%{lRcgk?1|NK=Knqud;cjULN3om}C+!7hE|e zd)eF|3D{m*s)qqe@a(HN>Z;{rC+;o8KgW{=8fm4b%#Dv%5!0u*5}2*KlD0g3pKOxc5lu zTbGSrg%AO~U8dO>1qtU?yI0S({YlQjtc0$P`{s97XU)k&#~58!DvHb3zin`9TK3|8 zEys87yLZ5lb1-$7KTal%HBYL=pG2J>{WAGmEpqDJ0nSAx-=uRoRFBL15^5s! z$CY2_WZ9_E%)PImg=jpRr9Ml9-nr(rwYW1} z%frfBRqL~M%{RIER8mt={qoyjyHhwQ0m;l#MRC%&&26IV*^GpQH24Uk?<)yIo3Fv? z%ZCHCsp88XDh#-u!EEOVW+sd{Oz{ym#DU|gpzB@e0X&mp0Mu4i>8Ic8EibLisMx-t z4*B`nZ3J}I6vVS}^?xhIbzJ@K_KOrcrCY{c*sF2#tROr#_O{84cYWjb#F-2!#J=mw zYRQg+)J-KeFYs{S#{z9aUle9N4eef4xnYy{#_GBYzWzlFL!58@@C^U;z71klc9^-g zk$>RH5l_R{{p-9Zj2dL%w|g4^fc?)!yKQ1M>H=*J7aZL!za0+0Lv!xlC3-6jg(jBO zOC2?)&x6p#Rl$_U(nF6A>wy=pK)##MYUrfZz2cnJdH)-$8bcmg z2*UN}+SWAeuP^K$(_pdUYWGci>pEnT^;ESCT!ioc zqOjceb^DGB2sK)tipU>~?7tNIbaEh{ubi~;H8cj~*PY*S1$)HB%hxmb??PC-1NzNd zJ{!A=dr~Pn!?EYB)7I|~=zSn$-4nJGmonrlWM}P*D0_=Sxz%oFSwN-6z0uXWD$kkC zIW`LY;xZlWpOy`tNfQKUY3cX26hs71d1Gu-rwOA97t;FN_U`xFC%+Qam_4%i4B!i11 zHm`GjPh|s6`_Dav&b!!1Fy^spgCUsE?d*5HL|aLl3wnY{b<{di?>ee`JZ5c;@iDugi_+d*!4-xJO|y9tDd)GpCNcYWQg zAx|S0pP)iS0?n#gHUhkqcGI?I=7Vql%Ias^udLV^WJCPh4fgLN$Nm+D+Rg)1Td7B+ z2biFw$w@W7g^#^^)6}uD!jzo6G8x%hW)_n$n)0d=KMzY&bBE$Gk0$EuNJxrKC7c)( zW3{R=DF^-?dFqX>kA}FHZfvH1OYvyr>mQ)2UTH0=EUfRS&`a7W+?oeeoiWw!19F=e z+M%z6J~W0l>X*zL+@m`Lv!6wr?KLJoO>|sbFhQN}#T&*-j+^tkg3uS`jAW>b?cGYv z)bkx-(34|0B+P7E4b)AXg3_^Tu2Tej4qezluFoIQoJm6c%i?#t4!G!DMJ4|w<_Mq2GGvg0zVQ%^kt!YmRCa+vl2Agg@! z-&;(vm@?w%%UI;G?6b^fuFnL$V2W^Eat|2~5i^3sPv_(3VBvY50MWq1=CQtY7ehOJ z8M!4f1&#fs*=(ma5;GRMpkFB#`FW7&jlV&cU-F>MG2X&B&w)d^4}m6<&o_@Ep%R9y zuwua)+nXCt@;uV8JcyOjlVjM6?l zuKRBB*&`w`*0k|Dyim2KS-AY3_#E6z*98;8!MncVe( z0Pz8)=k&bmIwlXT`2&hH>F0*y)upb7_UGW|Ce=KK*t*-GTd7A|Mlax-D^$L;?;<#Hq;R|}8 zGG@*>f9bLazB3Aze8#&CqKw6viX6oRh|o!dE_?Ihl*V}k^`DoS{?e)Zc^Ti|R@b<8 zS#t0~z4C`csV0VC7cv5-^~yC_is2s#j`9}_39+7pIyT57M zr+*(;36lHp-bra*V5JW}=~>#g4h_X&q;GrsTX&LLOcsc5Xx4^Z<|o7N(nW3u`$2XO zus~P5@u4qN-GQqd{HkrQ4+82FdBc8c5XL9g-V8!h2XmJYH6lNgFGfrsHFcA=G-j7o z^6W$&CP&x&C9`wgeacFqStR4F3ExJNpXh3QR7=o#{iY|?)<2hvfR$?2|35Go z%k@!T)t332la$z%Y$1Jj;PrwQoS3#=geB*0rGDT`Dggt-60@3ba(gAH4J>m z-@W(yyN0zCS$G`we)sb}@oqIq>o;Lq+Rt;>j=ujBaQzPB8S58)cEF;0RZ2X}`ln#b zeV+jMYvOp?d-AlGePAF$y_mRL$2K0QZdKc7x`4~&*O%4ZF1Z378+L8i@Rg;r>&J$I zg&W+C;Sv;-0g|UdZz4!uM<|OSp`Zj*Vud_4@h^ywk7W|?5aSodSg8m$eO5uBX6!d) z^3#a@eE>-|7LtBM(w}#RSZw+-vADei?50b@Xie!YSlOxV zowcs}B6M+eS@XDyw$gAF;|ET*Zcbh`s)Hhk^w2h09lVRZ>9<6*VH zsG{e1QeD~hCg+TA4aoh7{I!XO4h`7a7N5ggm?L-mD#ybHP|Af>6jcrClF;t>KwTu# z{J`=v$Rfp;76>@smxAmny4-N&4)DcsqY)I4;?+uytja;P_=$)!C*96TXd0-{3{qsW zywfTSZpcpqtG9aj5_wMBx*gcu>3D9mMhl+l8fsTBYycgCTVbDuN${m9uL>5nkb!Kq z>WVKV>c9!SYe<11Ec$)eXap;QH={wM!pb1R0CWpDGQt26^wV3f*f;j?6Usu@)fXD& znUb^NM4R{qI_SBX(yr7YxL-RO=rpiMP@c0B6v~^hkCx|nlI6s`5OYrb;=x1G(qcJb zhmO=?Cq)MQC6XH{nyOxM?7X`~VV3u)U*Hu;`VsTe>0&4x8hw4WsZq+P(@w)h>zq?u zy*4Vkv#RfU*?3;wrsHgVa`(gY>;0%<^b3i~KfN{$Yugc3>{&$!Y;04Ahe1v8K`BJQ zVQJ>krEYJ&4xf%31<{krT|QsS%Ejs2QoqwGd_Mwic=+}~-~soOx8Wld`RWq?>@bb=CH>aeX<*)9qn! zBYion6s+Z}wQb3}LrD2v|KWr@Xen+sq1c{qW`NkGY_^eKNKp3@{xpSDK?okvx5snV z-rjb6;7gXnHmKcvHJO?D`{Pk*IpaL8mCd(Q!N2e5If_hq!rcdAI%Y#nGaRrkf~UL7 z98EVS#&>>rFcn}mk7NoW?i~SrxldZPmabY#l{1`k+S(Id7rHaEyWgaI9J*H?(%)ES zG;SzQ03F<0%HH6GAFfwDJGb*wkt;Vu(Ew0Z`5p+7ORkhIachMM-99;GJl%UqX4}SD zS`nhmH#zUM%?eeBifFkU%v`ytUwNk6t!LEFTJVAB&nvlXFZf8>RQ$Kt)3m#D4w$20 z0N0WSzfw)$x3(ayHm3T^vX@*Mu?`L<{Gt%=bWlwOE1_ERb#Go?l(TE=b?^#raIghV zi)Mp?ikWRS3DJDGFZ3nmadA zyw3B5UHIQF-|Rhp*;sd7e$*H9=mkjuO92PBf>P(4Y{A+JX$3;jrI3dD&_j3TJS^fn zNfEoWL8c*YrOk_FMp}ao*euaP0c7Upu5xk;Pfs)E=M|BN=&E9) zx0~gSO4;xJkrEELx~9;y+rdmE>VG_=_jT}+VRz_uy`E8F79zb0m&Ew>QabRX)j@5S zc-rChI*b*zne)&L-TE50*WB{NfQCVoB-scbg*xsGjYDajg`0 zX2JkGCXju&slX-6dAZPbmME+=eM0egWDlrBVeAysU1P#95tP zK14ph{wyz#+|mB9iW5s zSw%|*JrGhEcx^^t7#^6cz{_+@PY3+z4UBmP8f|z!Ds%Py^R+TBdQ;WYfy@z2z+)8d z860u%3g}1lS6NL;*@KR51qJl~k^{X-MMX#pCx3Te;TjITn}Slt;`gd)N+Km>q?w8d z$Cvf7Gqmy;wzdNL3ZK#p6Xr6q+;>S}M;I^kACDI-9zK<{nM|7ZxUg?iAwVx_p^6o{;ir4cBLRMpVtc#PDfMl8NJp_w715lJEf%p zC+ESp19Lq=@6{itk!;?W3{TArotiz>N&yj6z9%3vGK}JvG6SJF+RFe z_^Vyb^}+C8`5be;8nU{qSUXuDTyWL;+U@C(?E6wVKF#|S6_EZrG=IJa?R#TZv{@1s zPaoI=Lp+3nTQf);O#?PYG<&#Mi*2Zazv0onXKR6VKmLK4my`No;Gp69y5P@|D2{w_)GrkI z3P>V8Q%#s#>-iv;04fs!V_VmY#m!q)bhNpNag^R?r&kmCq|xM{vJX*|BK?2mFCt+* zMdt@#Df-&V!XSnv+79cvU5vcCrUYol<7KHF)%y^K8sEbF-n@Ib{#C>VQv&$YRd2rv z+rPF&{EY<56`<&TbSV#O>n2Ivg>lOYzA7Ly@F4TMz2L$VD3?fB6I;oCMP1cou(=*N z$QLsei5}8mV@JgILgMzQIKM4HDF}B!FBikYQN7&SV@J_foPzev-@niPukf{+{R62r z#;?UonWcOmwR^u=?VB4rfxkXjj>ewsZky`*{aJpdbi=k|oA;|2N? ze;karjuAZ;Xa*1e8J`oM__VhdXa8<+vQ}3Yg}}yBpA8PscfH8tu*TXUj5CNpS4tl_ z{dHqgU%Y)^nR4Ez=XLCB+k8+Bx{nts4|;$0EvIyotNznjEHHK=ZJtXxFIMW?&!ybl zY+hU}rtEJl%BnjWa)NVAjnq6X)2-M!r_(PzTWQP{AeHA$V56_eD*?jEeC87F>GY*W zI$_rGnj9-^U~(o6OO{87OJH;+CRsNwBSS^GZeDQfaL)$Sk3KQGyq>fD*AS^8bddGj zBY$4|z_fYgES{|4Zoj?l+PK}8&o=f=FsCmn;On(66*s<<;d2q?+1B8>Vl9|1@BFPL zGV-~K7?ZlTh1ST)sDCSN6xJn*h>Z_M0D8laiKB_S5Mamp(~<4NC}zjAF!jGC;rp3u z&#DWY)Cy3#{s%{{v7k04gcg_I=rkR#N5AhyRq}X2i4Th5GEFiJZT7f^pXiOTZfJa* z=1mBDbs)6EI^ClzlAJr=e>Z-}2l0Ku&5U?2Y`dIiuQKq@m|;z7GQz%lUk9_14GOt$|`wtK3LA zdHG=|8n82}sJMw@u7Z_(y$zm-$CAiIDSRC?R^SkwH>(+zp8G(y<`T9jX zf(-R9L-Dv9f=j;>|3b7;0faoZXa@b$6td7F>Hx>-5)9d@zxm`ZFdz;>?8eT$1oGOuEK#*~^-srYb_1Vbz^&OMhn=l{S2@P!&px^!Wy}j0& zqi2&(v}pr#%eMoNVBl?EuuCv{6K0|fk_A+Em#m>h$Rb`IL7ZIod4iumv|qlGs~zey zhIG6`EN1Qu286V?gFjSf$m2pORio+5_slsvkWCcKrtz#^4M=Uz`gr+Cp2=D7A45pp0NAzS%~0xoLC!evR|99jp!m&MmFl>< zE3PJ3Yasnf$Rquia{w>6t2OB3oPkypLP<)6;FKU#pbPwo@rfgKfT7m}I?S9wLiO_H zF{b=hhJ%YU7Z_uTd|XE)h_0!l?})fA}Ke%^6YP_Q(cZvyR86-^GH;qS9bH}6uAiucmXIiqEd9?n=R zixOcnK4_j{?L44wRi}l#i z^OE^iG(feyy!`iPOtBF7SSsnn8!3dmJa{}_I{fV6o1D(#{xmcD4wyAPcH-790ajgj z-bzXOm&N}`jt8Hh#_S1k)+VuPHc{`o?CZM#n6+{&4OkMSi6+BY`fG_&ip(}lfD`$~ zJ2F#puqS&4eEq4S{OsB5Hq_TBk=R1@WPmzsj?81yXv)I20HsP3-u?UA{}uxG+JVzb z%mpgRUVq8izhCTFNxS^--j!{x{_?Xna2#@??lqWxPOQnz!WGWc{Z3%3#}Th@3jmSC zZuPGi=>u!ru+O&Qs)6kkjSt zmhXCA`$S)1&(0{$xHzbj!76rl2)bfKIHP(v#^^Oa~d0~q`uRgQ? z?fDk}6^e+hYk1p)$@#SR<3%f-Fe1=)@SFL&R6!xeW;-h<@Wr+}{+~~x zwlk%YS||iLBWXgs$^EPs>?wc`lj-B#sryi%;z&ae2e_P?$g6fZlYKnqZ@&?KJOO74 zaq^5}gFu0Sy($k=K=Ad>G`}$M6<4GH=rp-Y_jg>| zMHdJ$u2cAJ8_%m7Z)s)v_qG_Peec3oqAGiyw*DSI{e$Yig~e^!6RD5dUuuK`2B?OO z@x%xuln5lI=}H^EhBvcq#<*dwX)*h_Ea4gKE)p63@+8|#Tob-bx)-~n$-ZUGmJ$Pg zym<)_z;vcJLLvMN{SLchb01{Dg9{-a`O}c21fM?`B!EeY7gX>~40>V7>-F5c>_gYr zXn2V!FGxcwo^T)-B)v-e@!Diaa|uxwh}Ls9w=>2;N;uz_`elwXNFMP6lOdtE_h``_vCBEqiY@o0jT?(XY8Ygx^&wrT^65wgEZ>CVs zSaH>z$WX0bmO@T(R9gJ<;8?bwRX?t&uTR`DR!KdG?Q2}y)y894!&fOuO$i5=D5K|k ztsGT1vC$=x!#{iCK!CBZpwA@Uuxt_oaxAS4Gby>bOdr&gT|SGMB!EKA`A|Q|GrLn~ z*PI`k1Me0a_QXo(BAlF&{obU$V6T3~-|hboP0T>uYi0fZuZE!ON3<%irlbJ?;F$r8g>_bIEmTKelK6G&NPNoeEjKyr!jJ z*`;RyWYat?ExCf~Evi>zA@|<8humSb|LKmw^IAxNLCw}xa}mU|=O~Hia*+e{fW1Fm z+Y$};(u-Nr0EZEbS#S>X^noO$r~QkXiCO796GQjI zc>E5c3|u61nyjKg+5-%w)(jaL_FPjU4$1ckZ_{6g_RkgVb0;%Jor<=v$gB2j=zY~b zqy?u1p7tTCy z^IRJ^Co`9QH>3oLf_App{g+SEYN3(GOJEY(#PE-J$?aHB(>$gMg^~ zzPS9s(^78u&yCqvWi8E~dC&@XHOup}pM3#=>{rAP{kRYJMQ}gH#3Z}+EkV4_xP<|~ z>Fs@P2x6lR;rdUetcNuj{A!=DQFzCq%PivnQGk<`-|Hz*YCQmUtF`%2L)sJx6<_bxP&w;^E@u zwPK(w^YGTopCB!_mfcoarVKs@>2jAS#u2V9W^JMh1wnsHki10_VNWihQBUW&ieo#6 zhvy%jF~(L^Mbi8!C%-+i1yg~~AGa%0+fH$+lizX79bz_(ZthAWI#JT|6&RmRgxeRI z7p?DTA9csp*EwXhm)EzcUpMeBj*U>NvqY^pU)9z!pcgQ)-@XJ>>65!H|&r_)`IkLi~5 zrVq@tcL;+&I){9Z53TRSez%(864yqLYkpd4C}3*C%AT%f4#MPOfo4lGJF;AP!oIF1 zD1xf4y}9`!F9lt(m&8nCby=knDF6NOfAbo2sy$5rdmsnxWxI`1+C=MG+PDAYT6#TL zrSO9R*uY?raipwx#N=viZ&dNF5>0Ttr$iL9hWuT|L5*2UOS^z0KQxmPew_gcg-FgY-Ppn-R+uPd{ z6|1e>^qD4;g-m?^Z*)Xx&Lnd#grw88R-F_VUMg;%qzKZ~EXol(~&q zq>c@j7iyaOhhR#i6AcF%CmuT-wtfuB;#i4u^GMr zVS!X;1b=EIM_ai+U#owx5;$M5722^^I08MGX)RxEq(k4&k2^iELJ^X#CuqQwX|%~9 zl$4pLR@PLpEYu-C90K74rONYJ8mYg2;Y~&1fDt0H2{F! zr-+9u?#Im5>*v)QJjW8nO{OEfsprVe0MW;{o#dTqGBK|tP{YAczQYgZ!L@;e%(4>3 z1&!;r9r*o{rLg7|U1|c;pllqy*07?6YY1UN#2SjX!!X4-oZPuO?Avuwn$zU4r#@5kVdLwO6x zp9@@e%zhyd_x6IL_)YJxv|r6|uRL@Xmp40ZSyab3>;Ky6F{Sj`yEXSxyuZ)Kv014* ztzxv%s&Om)v3!~xtmm_K+O|CMim0DJFoU{NENI7Frn&6+ zW&4Z2?l#^BX6&3Ui+&t3Vn3bLY-yp*by}nsWO+vQ3Yj`;;p2$fOJM~C9!JMp!pqC= z=@i)r6qT0hY*TsZP~4wZz67x^6LY>6eo?~(MBH_k#xHl|-H5ZjSn7(PtD0$?>VKqN zBvuPh&Vl4J*2mS>K9}}VfBox0R-KFEW>d&^jJ3Aj-AH|i^qtS31n~^3b)k&~OL1vw zLHXm@$Q>tjz3A_iM+mi5LD@?<{#N*g>d(zcrbKCGQyQ5c1rt zdets{tQp6P?cCgavRc=a=0}3#O*>n}tWD>FrYm-aW0(24TMCrbR*|l3pKC8Z?`X2E zRh!t&gvqfkoo!|tuy{J{TqT6FJoOV#T><>&jhW-IBRPuTPexM!{d+4nu}?)fWTZY9 zx$Q|}RG*14y;Mi&J`8^h9}(V`=Q8o*$i?14ld&W)5URz-t36r-!_WwC;hQes^pli2 ziiMp3zuJ@9-LA|~lTb&S7WXCR8PH_hRILFz8dogK$rozRJ9=l-^(qbSdobJEiQKR$ zvYqx3N|;YLsu}QyfEELVU%(R@MRZXuq?pwqKR`A)d4w%DBt+!9Bs0K!`AbunL5p-o z3nd2D??lSJ_lfW4siaiRtMU0AoYCN-2@!Yqc2xIiWWf!`;tDI}XJY3IJqJ7(o z&v$hQ!{4zquZ^4@GDVqse|9c3j={3ngaWmjV{>p#r@ZNJENFAq02 z#f7cWDa(-=Es9ylkV{diwyH+^&2G$h``8J$`=!S_R(#6G)W=)6$|5RY+j_dLZQH`L zrfuc5wO0s3jGU_lEE&P0ZUXS$;Wi442 zN-E*FRn-Xe`di<}F55q_^b*Hw*xXf*FkEr0lQ|VKf44ozSsSS~<^1}!c&i|Vfg*W} zmlvF)X8Pa5nr1%Odv~u_ofUO{Yg^8EE@;z#_YLN=1%4QNd6UmaQ+OQy_Kl{(6Qh0x zC=S?d(H)#V!64!Z`O7S9pH$3)GyzJ@Tr?)CfN->}F zC-$5e;+18wad4s|A~w(6D*_lKTVABejh37*(0$ud?LqmU<=z2f<~x>2J6jw;dWE&L$R2IN*chNjOw!`-&?d_b zt!fUjVLHq${zYHW3y9$zM&;s^Whg2lCBCHKpXMi)!3l0^_PIsC@RYy>4+e4i#<#Y{ zcwZ%rw-lS(logay?H>zOd6VH+MA?9Y69(Tt^F=*h7>w8(Si}0kLcd}EVVt89>&GjK>#ZbM%`6G)Y!;9KM%LCtqvfqPF@^7TEC~35Kl>G4&=8IaT3SjgY?DjI zLLCZJpRLqJ{tA6!U!J9t!vXxNp7VmhFl=Sm~*7S%4D+7PXP=fEtOaIxFeRSJVJvEKB6pIS**fLfirTO6fZ zeBrGCCkO5rMl=2LgM=c(p_wg8l8ngLkM?_n+-;Y=;RXhZnDL6xE?Y-?HwVaFeTME=RK%@xR7}@|2WUe+OV;N-(p8{yi$V)>}x0F%gOaYM#1B- zD{$splnd~#xKsj9t=y%*YMR*=+r_zv?Z+}+{5IDAc>zLSA%>rGxT#BsqX2-?%4v4E zMmdEqQab@K1WkJ*Km|A$I_fi1tW-;(B0aM|>hm3h8m;I1>u?EkJq1*(40T-|Q28^x z^Q_@@gUi?7I-{a~AKL(5JeE=M^#n3o57}zT6Ntf$N-a=cWj`h&<>?Er#9$>kK3cO| zMz~Ql-#(B!nxCJI%e+KFsu0wlyFBw&+65(d=_T zkI#F9PFO7tK@L2(b+^0@hk_`Bf{c_Y`Ay+%FW4Xvjl~G4}g9GRxN#rkfDg2(iU)q%ctPRut3xRH zw+(A~*URqLeHmVdo{n9e48mkNDrcm+*ZKjq4$Bmg2Z6E7a{qMoCn1R6ZxafB1)TO25c=xCVMRU1Bw zDjbT7W3i0M&E-p^5S%A^j@_uDClLtIOE$LvgB@DE(Gvzg4)z85U%VK?de?duUwoe; zrpKyO*6dkxiA!5DivPQ*jyIk~lqT>;+Ct|w$ME2^W$8_O#z^-EmU=4&-2tJ8m^b%o z{|d_x=bdMCV*Jc@H+Z`M!xL(NiT*vksFu1ONl@cjXNIDivWN1Wm|LWL@%(dZ6hANn z4>}ER+@`YfoSHuHbG^x3X>g;B`J5{Ue%b>cc{+4-Vd8XM`A?xXTw^G z|H)_0=Hb@jAkj{T8Qya}$)c-1vAF1ZIQuZ8CwM)*(90@bZ{y9#Er12!=OqJv;8JS8 zSX{??o{fUAUZ_VB5g*h%-H?L{+77Bj$0)-g-o{6@GsH_0AJYiCP=}8!`Uey;%ZrJ z0FMk$+^smg4|frQ51IKwY!_m#1e=k5mE<+K?2TivW2OKWb{^E?yE>*gV*M=dpr!S&`F>+MNl>K3ndeG28x z%a!1$docXoQ)t-yoP3o^rNJuyvP5%v%AxZ%6}*zg%g$&aA*$6A>6iHuUlakmhMAUY zRHAI)?fuA3#+)6jJi48FXa`BegR=J>vLuzdhQco#94evTLTN<*&U(`!k?;`?6IL?G zg^t2;F3fi99eh)D%QTNUp8wwK>GNOKQOAqV0eMTPjZUM*{hX@#-Z60|U6vugYstLb z6jLT=CXADV=|0)arqXOUg;N7ky|a}V1zWCttkno>a$CEeIkfzuY+UekZteH_sIlX> z_(WU%%UXEPPWjz#Umv96wlWx}t*tPt?LiQ7GpISureaVgK&ZYoxdO>?w$;|o%gQQw z8yf5U)hsuZ;FUDJ(ywWgqyCZ;bb@zJo_z$6KWJaDX?cw2h^7j<^-zR~zZOS)_ufn(>rfRY*8fmvXwRX)RBVCHo(bzeqqkOq|>7ry_Ra0|Y=2^tr@yE3Wua08UR>zC zUDU!{9{#Ia?dxuveJeamYCKy!UMEN0XyK81y?GkGm3vc=AxG~QLnP40_1|j6Gnt;9 zgqG8YgP3m5s=3Pjl)LR*M%>E!{EdF8_P#{*~P`h6|fmu;OA2lh~-S|v0>Ft z8;}GU{MCMPi;kc9DN1bBJ520dZjviu(AwX>e@90ZZEbC(q@+wucRD&cz|YLieql+( z^!F>&-YEJ8n8;&)y=N8Lxe{tB)}<8h>s+_IISh1N#s&<$so-R-SkH*@&JM+f*v| z-A-1Yhkn+_OkNo`f$yfdvV+sQjuZg7r>E({mH%YBR^f28&>@R@zK`!zUFIXxUt^?S z20a6FiRyY_j5ZqurLjwbYW%LWk8*9rz($!{;i$?u%_zqjuKwJUP4k8^X$34P3FISK zJBw~AO*L^LdcK=|MQlTcu$XB?dFxZavb-s;g=-!?O6(*vn5(_)tTT(#l04O7EQJ#o zt#pM-E3g8plQVsolcFcttcafPkb7{)`{=1+mrep4=PBVcEDHZ1hsh#owUj#rvGhoC z%`Z0QJ?7G)Sb8cTs#RBCdQb7lt5%B$Yuvm1zRG%s3;1HcxAjxa z%H*$VTzUH*5x{eE*E@oMhmBDBSf2m;*ZzIzuSFSU!f^?4+Ioa?`~4te@mbiPa{#0g;6$ifS*SGz=}L zHRwmjsPN;a;O>;R(_L|i^eV7txZ-qrpUH=FC``y%Vs4}7Ge!&8*`1StHI;#Hq0JV$ z#?6f)GKfkHZ41hs%I_=!@9KLZ4ByxAxr>JQY}!7+mRQ?)oN4g^za1HRTJx&ZgAaI( zf-Yj{AAifFvK=BPNA+l<cg6U!I+v9X+uFO(Gvj z0&SwNE*qV5Ab1Ox>0t=Zdf~^z?megNk!!D#q9T{No^)vv5B_LD_+JEwJ+7U|(=Xab z41piAi8@|K7iYw#3(?W!Lc0&-yk2&jC!Jmj1g6Dncc}@!7x;TYy>>=!X3(-VZ%&ityf`;&!Py z+LV)K)BP0(mW~WRZ(|xcS%&G1$c?X6Z$q-rZ`$g_wexRmyZ%zO>Xupu*HKz7y%*w9 z{|7YQB+*7u%()-_U7+Z@s->Lu*j!Dh6JMB*KAyY2V)VM|IF3Yfu@&$!(pdOy?Y(53 z-gjM3vFuagOqY3NA-o$!HCufOe$9RJWrud~Rcohd=(|Mu7eAPtp4{G_jCRbL#qMx- zhT7k(EZk@xKGzh7otslz+x1|-OSn%C=qhQ3R}kLeWiFTmZ9AfnyLW!+Au${?L7Ei!Igj zbm7rwE!~y5{U&z2Xn(n`u2ezL#|wHKp9t~MpLk0>8tBuenRT$*d8q$Kl8TH}pvijy zZ<%j#ylOv;(eyE-SItt9+8nWuat*m$Tak`WK<S=HUbp}em+p#fj$~z?&J6u#2UQ@)4?19-K-sl9E}bq#%g| z7r|!7ni4P^nuj<*P^1)+aL&qi)0-!5+qT@`Fja)Df!r~>+A+8SAK4XYPy8I*n3kd= zDz9M(-Ddf(m<4m$9$WJxgWXTH6XKS`{1?6bNF+CGpXOBu(zgW80*e*t$xjG zeaIrxJt=fsYJq&I5*tuljdgsB&0M$Ha_%B{Z3SOmVxVGcHRSqo^FNgilQn++!%b?23EB9m$qeuA$m(*MS0l4UX~WkV z2MP5aTG~i{AFSQaDr+?$&45Y(>pNT|TOB3YZ^)}j;vpa3pq?qKk}xR9ilBEZ20p_T zr3RXg{NBD&Hz2X4H-7u`%9}M^<{XbONE8>qd-l8bEjt`D`7k$B(UQfyO`E1Ot*fWA z=^#Tv;O?Y8=xKPiC6u`;`!&d_%z>s>&pGGfX^5)s%ojaP4gt5SHJ2!%GkoC7oh4OK zt5tW$RcSEn(dFLCd{9%~6=XDZSp^mzE>!*;RPPPN;w)-=cS;Ojd+FbF_#_HexOB%S z_sBCO3Z6vzzO>};LX%5i(!KTcRUEI$xe6=x&~q=mzKm=ww=HSB88@c7DEukPKwitq$|lrB)KR7+lF~~5pceIiGSRV4+hgtm)^V;^fvMG{C(G6nS?*bQ;?RyS$>RO7dBFJF3lV;k_tvs zxND{t^$)}W6Rr%e9Oj-PiO43)<^m%0#-(x)4NV>M|9Pp6O_jAf(gt;{-~bWA*6M4zI$7fxQb-}XCcYK}1v(XJnIgwGI> zEXrHXVAoLLRP!di+nyk#x<3(tYXo^TaU*VmwKF`js(ve33eJv=NTmBNP&hN=Z(b(t zBxJIH=!n(pAa!HQ@jxMS@os`{DHDbWXO&O*^U>p>$8`yDhFGCEK62k5^wrkVJ<8>H z-6{yOLCaTCnaP)y!$cEPS;R}ut_xAtqFnHKU!fDQr^u6)4QgseS{=XkSshI+zpkls z;27zzHgO~dnDm;O>xvvgrL$*o|!w(Y1o;*c|hV)9F32fsQo(%d{X`Emx?w%fh;cbiV?gbotkq{G97?rP?YUB1 zUed{V5V_1N4DE~=gb6rO>&^9Gx>{Pw$e@SJke+*7nwka6!Z;zi2W?G77A6}m)& zJ{+`1TwNde9>s%j^@VUM3v=t5tB>omEv{11|E)IyolQyX?wZJw1@SQVj2%>ig03Ik znx`oQSt1{)N40*&iQoqPR+g1kcm)7>cDqcdT47(;**X%^3?F)D502Nc$50Cgr=YB4);`@v_CLto4DQ#vX~ zG&L5_%}!Y22hMylQnIr4!Xqi+)s0*^Z9v}*M%kARPQJ{xmhw6Aj*-QNt$23z4Yvh6 zkr08(&B!+`F-AFwcYo17ATW2t2YV~9C`|Z+67Q2Y)Yq`RG9?f=jaZqL-g%g&N(qVj zqlQqUhlIS=x@`mhpVNGq(AQu2(w_pk1h#1|7bX4#0ruM}0)jMu)^#z$Z(v;()c(mO z;m@3;diw(M?d|dd;$|MFVO9;-GaF=TN+HHO>ApLrj|WxfbkWWMUz8xea8sdXP-6sE z)ihYsh2TwOHt=j{j;!q4mO}F-Uf4r5l$9UmMMG;ofQ^H%q$z(CB9lUtlQ@l+cLWMP*pW*ntQ_<^0`+k_lj1dW5&QxW-G?&f;$LyRMH5P5V8(WAJnjyD+RQg-VOfs2u`O-ABlVg4oxu{H`N8hN!h*^o#?%& zHIp%(qR2#$_p$wrjKFesHDzEdzaN#F)^!y;DDbk0O?t^OJ`1o_H-q#tQ~TzN2k&W} z9V({+t;LIDDB?Dyxcrjc96)!_e04Uy=V;q@R44rK6N4U^ZaR1=U1hg>?<-C8fO{`i z&8~pqRh4~F?f>8WfLk-&!W!Siu|>_W>i&B~5Fz74ZZ6PKX=f50SS~^Q@ae-&!^x8C zd4uQqSg_RHv${p*`+wvrak-}FIo199_J>^&-<3*3hQxAnJ-%Sh60MruGVqz24s1ev z|GE`Ug1>Qt5X(cOIuOD;K^CT%dvxt{9CMwl;f zKAEWH?CgxN82Gg@mr0!dD%XP>Y;FlHp)P1syYGOw56pOl{%&&LZDG4BXC^#e>yvEN ztTdu{_eB=CbhP^K0!)dm{&xokey7eH-sxL^%sBqPgBlahfaIy@59m(qbjD8Zgn5*G z&j$uV6wpsD0F}#C-gDwh|7MA?u1%oI0Gr^$tD*$)NwGAo`j5qeE&GE4WhU5LnxlYRcuHvd|OiT={z_x zoEF5a3hAmgCQx=)B(Dot8+$b=az`qd8^3ad#;K~c!dM^BG8WhOB7S$-Rb&ftb7`sT zs_1FEcEy}U%>-kTpXW)K`tim@x{q>UHe&BknJQWieYa{+0hhIJ`9Hmnj>yM%xGHGw z_gZJ!bAqa@HWo*V`!)uw;O6Gupx^<^{Q(P01zl`~1IZ3T zKJgWBPlcO8)q(5pY(qQez^Z%3k5^b-UO(vMGr%@I{u!q^^c**E`Xi7LmjR>sN)piM zrAHr#3=hsqE8WU$DPj_2z%c0l9&@V7;^Co-GM<&CmETX7 z5BpZXNn$L~^L)7EUgqGLz3xVPaDQ6QomsnGbpQkWW-@)xX4kwqin~*a2FOx~5b$Gf zizZ$-KtGlsfY5TL^yWwbspFe(`fBUIh*sln9Y3HCPi!kV=LO#JTlN$wAn>T4g2{(e zJ+k>`)5Bf7ln~2ZW!&Q%-v>{FWIAmz|DPXa&SPV92S1;!k4;Zo!7K40+?Jc?;JA1# zb$%SE?0GM7H2?<-k=){D#Y-a2~ zfZ9IrcS~W4*piR)G(uBD0|zKA4Mtk!c)a&pm~dV(6@IySE=xbc`z{x&n=NtheK7-; zc+^c)NLtD0wfC}@^hdpWB#HM0IzA#&$zdv0z1w2=+o~Ved0R!kfsUIEm6mkAA#mx6fQy~nBsdM3@DiKwl8zA5J3%@= z?n9b0k?p6<WEUIrp#R+M4x#52 z&;F|RZemORTpSonMSKi_L4{di24XEbqs`-s0k_^Rt&v$593$)$x5JqRdl@1-M1 zzda35F@ZSyflRT|?L6DfD6wm!&Jc+09pyPju z&VMiOxfzP>fm`z%nQ5V>b7ZzVwgNyPkPQPhgoD3EG872}Yq_uzvt%u$79gSeT^077 z;z@w4*Qx*j2q#I>IhFSZVgN?5CxP@5X_Bp#?D~g%YCj&a)y#Z-cx%1P_R_)bb|#kj z<9k2ee*sRzDOWmp9k{uH!Rza(@@xNt?1j&iZYy&Ars(49rOu<7Pp!`%S$P_4$Zll_ znG2ySVfNimi<2BB>2~U*?C=&kDbnj0LI>c=Hd$PzA&f=9#_E3+qahh>26o%Q+{TjO9OU?WZi=Q z-8WYf9@XKZW@BEQ_J#D@OGXF0Zz~bQY*=x?%xXZm$dOYmA^Y-C?Uz-0F?@khFXzcc7 z*B=GIU=+|Lr65h209m0z%g@09k49@mhnS@r=U{OVJ`j{hDI`QywnG8}bm^?c)CXB9 zgU9LL+p8jl2IM)kP^d>I^B__^pdR`4uiA{Vf4=*)1V`lW+#Szm@X=zJ`PYfr%E$8` z;_3^*FRm%?nm0C#od5l^q1$ND#v<>Z)})3Q&M1`h-u~hHjJHPJ{7!ren=-qr(1-Uy z`*JUWy0kTrW?P+|Ut{U=e-Bwaew?z7r=8&6K0)OB`d!BJ&W`tgcjEtv=HxeGhW~Gs z<%xB2QqWIpdKp$p2`^h`zpK8tZOM=>sNLws@lkOewpjv@eg6y$xB*G$QUeLF&s|{* zK!LGOIWzIh{%(%CudFyR7!=AmQ37s$ zcmMnw)TLPX??PPo)xV70qRoBzelH6yCzenHE zF4bSO$cx41664zB_{ng z&kz^luS?gSDaCC{cFjGz*(uETB(>%^$V3!o+gl7`Hgwef<t~v5ZR|LqE(9nf zia_LD?q7?-I z#PLq)1R>6rEy)46fkFAc{@ZS)zpLp z1o{h&hy5)a6|hm~0mD2HiwPhC5m`P77in+J)JiJ}g2^X?Ofdi@FbY2-T)?Lj$&RV( zabP0@$Ss2>v9lJ!2;3hW4{Id5Sy&~c=R{%Ue4YdnY4e~EFG>Zi2X-Ze-NlbCv+0lf z7V;^ut9@nv!JY=Ii9lkZzk{3K`zicl0#RYE_C* zL_qMkhM%9GgTn?VXYc34yLVYxb@4UIBQv}?M7#??F@05(_B3nXxlZmb^#1tAf7-#N z>1dvHc2Dwt7<^7KG&fAceE+9LSGkThM9OX=LD;Ywvf3GZ`j3MHIIjk0*C%_ZrGzR* z^HVg>=n+8moooK>lmE*H;2;HfrcLuKKSla10B$O*865&bn$bY5Wi0jW!Q> z2$-Y9q?G1Dnebg4Gw{yH=c5MX|90nG=NgLYmz6=tgpiSP)0Y@zky@pKrfEptU$F{e?W~qP{-UvuK{R?o6ph!b|?(9{^MozxY0~ z4w5Nb_{$@w)lPHYOLlFQDOlxpFh&f#vSV7La^qd_U|Sb;;C-@s#c{+>PQ3+U`~;VzC16}9xRi4m?Ne$-IZmS0uXleB^J#4P7uYH3i1Cw>6M^Pv$yCP3y>}`Bc z=`*bfT)M1g==yXN6{-R@=SR7O~A*A^k*pBjqI4qH!; zxCxrjYIKOeYDEFyWgreZ5h?A9QU>V0P;*6b2_r4^1#34Gg&L5|mm!c_EX{IHVJ7Z%zt<;2>D#mjz_K zc)lIJyAm+9_Oua8oqTv*`H27SdN{s;OAeBb>L5FkK{S;qX_5M`6*cogflX6WC+Nzw zBrysCwrTc-e*{F}9*z~^pykp39cYw##~?csx#t2_U2L8IR@?ga16t=)-IQ2_w3 zevhAg^<2BhhpO$2eaBU%Wo{-GADhwjZ#jJBO0BCkD)Di(<>S_$PXP?et-NP#KmerD z_i|{am*i};2m|81GxZV=y2ms-JskKnHNQ7eV5xag^}hnh5ucT=(1Y47gv>21Glw0@ z{tOKZ__XicuKXnfSe&Z|7cjGZzt|5Z4sjLkc+=tyC7?jiVvffB;;cq!1$^At8eY3N*F2pX(qLnhVx+?dohBY{YzB;H!c z^&XzRAIj>uSN}Ed6OG{AVZYp(jAX7|mspIH-jRTt#n-;sWSS4S+n=D2CN=g7PX!cA zbU4-XiKd80`ryBNNK}^vFD7ydoU6Gu8s?>fk`*#6bp?ZBA$Vu@55R7Ka1G9 z7uocU)8iNR-MD9U%Z4aWnT2pb0WVfWjb4hCAcPNxnvT2zv`{6uI_T1;0D8_1z@s;$ zTfbV~`;@X-mM#=KbWYZX(n=$$0;_gdjJTvmO(XVXo~X8D1}c5a++&=n|Bb8HRLl`G z6(>h%X=wqh-F)MA&i39oB^!|iv_;rdNP-PScH3WaFum&IpBXCtS~1WX1xVHoZ0{l>ko)J*$#;`o4-GY8Me%BMm*@*0{IejIigtXp+AdacXfZlS99TRCe z5kptrX|?>-o0@h5He+PFJd69_@k0?QVa~@^eaiwbS^1s8b~Lg}`)PD0uUMWv4P4yT zgHL3*g<_%Occ7nsH$fuG9K=#b>fd2R_{n5!$xJ$@lVN+?jdC#f+stG}fOS<7l8r(d z2!U#vyjAjTodr!Xh}Tyx7%*iu3)ir#=`lrXfWOu$$TN7$axip?JC5}`j1AU{R^fQL zH4fO=FjXdhIh8O~Ei8;WGtFXFuq=v|M+(NE6pL@>ik zLRl&a)<4hFtGuxjG=NRMYBz;CoG~Q(=U{l5r5?upW^NE%SWQ-o|C62{3gI9tSW`>Q zmyj$mj&Zk+>kv+%J$YMyC@rr7%Xu-|0Me~?9DS(F8FfZ8fKWLPu*E9Dn#*j4&2k{9 zn8_POAFF%kP~0C3poY_+^}d}^OZucHrK{(m)Af)GpIzc--v_^g!W8=3N>K+3AAe|1 zX6Hos#kQ6<>n!?A7`6V0mq zYxhyY)+hf$3m<$-9e!nhYKmZg^7L>~S_A|jIJ*0;eH9-NdzF4)3%`GP?6uIUfCi z^=(^)@a?G=KdkvdH-3Ur(iez(t`$T&2fe}|{o?^LZ_EII+1+O)9wxPu_U@+Jn{}@x zwdp;DL4dwow|LGx{bMunWHkRsBz9YKC!mX$9ULGn@?DPaHE*j&tt8MH#Yq08x91QO zDz9YSL~xil%lG1+WGi(D`zJ(A6CJkekQ@=J;Zl7<#uG4Iy%Bp!_k!HCzyW zA!%%^`|kHp$Lx`V-%mA22^WWU9bR{MzO4E>HcQ7dh!R;|$Y2Eo2Esp)W|~(!yy2iAP#duC$7p;(@$-~p>V!PfAFD8KvAfC79|Y7!R}85IVHDC5xhs%egw zzib32&Zo-2??~OZq-1~j(AnmtKy6RnH=Y3nrLBP$GO3oO^9$pU!1>xW6qL9!Uno+XJ9&MML;i_dCNL(RlA>cy#9+E z1wn&x)U&zN$SEfNGS(_1a0)fM+Ol_z4d1i!;%Km7=wRy9i2?`OM#K1|Qwk+988c$S zpx7*q_caxVpwvS@+UontV5f7l~XsDdRP&c=3bT zsuEzWTq!A)S7%^BSJPx7=Nh`A*a6^p0xM}muG$m20t_T#wb{#(c(C~*(&P~Mrj%QNe`_kPmxiKo!1b43v|#(stpkiE^8Vcsh`N+BD0 z|A?10|^lYqpz>^h~_ji|0Pm7P85;9|E6GdaXdF6UHZ4)?I&1-tnE%;7vx%3$6jDoj+37Creq<(<>KgHoVXjYi8As zw&yJZZa_DFGvZjk3;B2(0oQ6)_6W|3+{Z0vjds+zK*oMC$;WZz=e7rMcZQM82=Jxy zXa5ahHcm(E_kQ{qBLErXF~cOomLrgW(yZwBZ5ncf#4Rd|{jIFG&d~5?gUth-O9VUD znQM=aGpQ}!Zh~+V9e1@b!<=%Vi zsQL-B@K-GiP9<$ps}K(hn&MD^1{l7-zLH=&A(g~p_9Xi&r5E|cG#$kUaE&F_I|h=JvwfQqPb6b;`J9-Rq*+Ff50v10{`7ZJ;g?Ryn04ocwVrfeSLD7cyrUw`s$X~Dk|vVc<8g&?qBZT9TfC9 zu6m0f`{(@z&ritMJuvg#?HqbsJ0>XQp^?tIi>L1^;f)!T%MPd)>Q*LqyMQ z3bf)vB4*{k>^4f-Ts3N_Y2J5X!tTzKM$TfqL!pYERGlJyGn{$dzN$sha0L z@Kdz|Uf-nq04o)qa=P&O+btBJkxJn3*MFHRkf_}WsBVXql=(JX?!b|HDmau>W(4CT ztNxe2mQdssoYlmN!m+R32hcd{dk!d_nY<`)5m*+keKdG#-2rZ^`3-9E!rCeTYVWDn zHt140`@D*@snFE+y>u7^5h53goNpA?2RdO2XR;;4W_QHT+h+&L$m)}a=ZV{yP49Rf z6_c5sE^NyeKnM&13xvxia0aF;1ugT;wY4%& zxHtEa;0ewkUu;@Rg=~%m!KWW4TbnLs;|&N=r!3LT)HEJ88K;)@S_Lrn;cZzm60%&j zg4(@~B(=0ULFNjES7BIG+K2wWTEH+<448g4fRe|D#p!l!a(|lVo4)yN96G03b8nzg zg^J7%>glL>V94<$KzB)U(brldS1n;5E=pm^jv4O5ck;Bf4NwT85H374r-cuvGSfvf zdpvpU|6F2!xOtf^96s&s^Zx#&OI(JR4?4fsN;KJ9Ewx4(`RwOnSfrE|s(6*WY3hi% z*>6@ZG73tzJ8JJv3@9cGczcTbV_50S)5~t|+l{k&qPG=j-E*VpcE#wTS4D8-|* zZSwjP18TJdX!*-APm47fnNp>)Yh=_&wGc|-Qb%(-dDKl94wa=k#$Ahb)r5?SXg4rJ z5%xsei$=?QfHub>BPS%zY{LIRdZbFZvMLg-k|}<}+ngzupXfGQ*%uB58-9ILkrx$S_IF`mxwqNH5540g zXs}T#$G|(6gWGE2>`bQ>UoagYS8(>XNhH^tf{#7Zo8UP25eZk3$s<7baVQ>Ae_4%* zzjR?_>Pe|vv&hKOs_Pw;YDI?f^}s>!CZ)-VrqCbXwb&yPr&7Vrl#j4-nF8JZ_mnC$ z$v#!H*fkKkn*P*`7V6G&$Y}4V_ib2u*0-SJnJ1M)7{a&~wL+_77=;INC!L54%^2NI zU8b}mLQ+l%rKQt9 zbxYX?{;o5Tg?5+c*mWkYWq8rxK?ORPIU)=o^F1Fq?Vl#AN(hRXgV~1zO_UcC_+FF8 z?MMA22Gyj`hHR5ky>`+l<9}cUZgC`ni`^p!gUEi1obAx}=c4RBs}&|IsCX%u?Ki}i zE}dI148FR^m4%XWe}D1B%q4lBgBY5Rpp|JfM8PLFtjJkw`8lEATWg4cy zRnuU|WABLbh9*mkzbN=oy$Xv6j&v5J%TlX#8gZVLDy^#X4T!OHUha2(enQHFLos`5 zFVF%!G^OJ%I0vbhR||jImyKZy%zLa~J$s`K7g16ygWz<+^u#YYv|uSa#m3!DqwE^E zUJ?7+tix-CD?G5}%GOSRJJhCw{zXFk_oFFFt3PlEqys*f;H z_9i|!S(Sd)cD4BZ*SVn8cMG#AIfdiBN&h`NC8GbA3-BP&-_PiJdrtlJ(dyq%#YY=D z@yX#NXE(hoUvvfp-r;9$#ptnKe7k-h6Z6PDf5g70xY+Ibh*W$wz8NnFXnyx{gEo6W z?a!^JJ=enPAmx~cT^|o8o_9qTY&|yG-7}F96I;T|xdE`q_OY?Ama+eb7gPOS^-1hp zVYa#?`lnAbPvJE%gV_@R%v~OzuLh?~(Xc)IFRzP~jt`7W!%0R3N|VPq6Ew&;<-~Fl z0&vY_z4*!ZHYF`4g;tB1h8JnkR0*AZf8%6%mL{Fs8ABf5d|tVG>FDMu*jc@Iutq*% zX;-CN??jjG!m3k$)xXkz*uG=JtD#F?oxfr(7nHDPypIEh&#a{i;Hg8pP{aaxPfFFQ zuBwo8X#6egL&PrY`I}eIznRP~^w$$!G(mJOuq~V9pFBv*Xn|Vn^8ti_J^DKPcNJnS zOB6<;-g>1~IM;x+d&phQbijL33$kKO5+%qwA>g-ymBuG7jVUG_J@76Cd`%>2&l)gc zBBIfKr2&7b?p^iFgQ$>Yt?w#bm)4RmI;{FW2#`Z6>U?va_wm#EuO1CY%eyX*g`eam zURFrB6i3JtTfc&xMcc2Hx4mxi*v^8OJF>#Ac%lcrUST+CJRdx8@5nQs?g&r%@bbrd zvKti|0y0E=EEO`9sy7J>B7?_+3wR@v&_f~=jk2RQej$Tuk3|0VR0Ishp+E07>?w}2 zy;^%v&%CbV zt8p|qadYrmE4z4yIfppKZ?fJINTQbBbuF-F5Ng6i!0h0tT6!N{B9v zAgv+H4TTuU4`djz5VNQdEed)t=T+NHY;gPjqEEs`n1N{{&0N**DTDOth^$jkav$#p z9`9j#Jj_JmfK(Pg1C+Iz^d5Y(HFKdJAaud?8Awz=PWf^d+oQu!y!zVaASRhOZuCjZ z$?9J>Y;nb~PILZpGzDpc!rj!lWK-MH(o!1;u}wEwDoG8Obqs$a=N`^Y3=;a4PYRY+ zX|x^|KW}_?sb@t$r(N$M6{d!V?uH+lJChg)=JAu<_$Z-l6Gh)HT=}jwQP`-FsJ(Xm ziuVhan}X>P&LP08e*GpigX`kM((ys#jtQK)@O|@s3TG95KPbyR^6WQ?lq{3|+5Fbo zDr#?KeM^4dV>Jw)TnJGnL*RJt^F*MoSr*r6T=jc@PJ<#}Z!Dfv@2@&id`vNnuJ6J_ z;y}u7+_fs3p{S_8k`kx8%M2#~rmvi?j->O7fJ@@S2CBD z2DQNf;Q|D`tcKjp^jYPL{AybtvQ7?+sx;N%NOP*V!s?e zeK{H59qZ_95~~^FFaj3^iw;I+aFZ{lD5;63Xc2{R?x}*z!5my;#*mBM6 z=lF(fLB}z~8=*|EM^+kTdWm%4Xib#3o;}Xk#7UiyY`Pw*x{dhs|K1J4Pr8+p(Ha@4_t&%0 zCw*|$DGAyMrr2dMBX#f1`?|wHL`+~wgfRk(=l@@CAEi6 zuM{)H5=tdJo`|F<<3|1LSWh^NHH}QOYOEq@sx zSOh^^_DI90{7qgtl7e|gXA&&G#oJ|%3&)SV`UXvs=h8={ecK?fS-kp^xZ-s^dU)~g z@1G|q{On}xO~3iy3&eP!f#Sl2?|~x2u;Rtnf8I}L|6Lg3N4F}T|Gg8T@L_K>xFz-E za^twMRwsKrc5BxZvDP2E*8hUm*cnRI>8-hv0 zdQ;Pda0Ax!7LaifOba401q|z8whLMBz;boU&t7r8o%IW{^Yx9_O6TID{^Y!cEgHmF z>4C4`HM)oBIWde|zjnX4te9hRUT_t-JbXe)aCs1XO-C*Z>NlWabgv>AC4PDP;y6#! zZf)N7=q(xZgno%)PqKYceWBQ^X0>2f`l}?>YmtuGXHzSoU;?qJGu)YxwFTF<<}YpD zaO!y^T1(am#h^a*tiF+|uWkEK3Ab)E1x{TJ7U7nM38jQg96bsv0x__`w|M@Tl&Kbm z0Pbys097iEhdjBy5OCHQ%+np(*E)G>s(<9Z0LC7~)WhmDv~ZzQd7WK{h9&*B?VW)( z53FF0bd$!V`7CO`x7(yfU3;KSG}>-Iiz>8K9d8_k=qc?#nKrvsG21q>`ITDPMPW4% zGcFaOTNA_>O^Odiz+7|;J`3T4lBU;V!MjLjj7EUG%%DqKeB&>7s$&$?K&m{?M{B-K zxrrS*S{1aIA=)a!zm|zBQHl;woX3(5HhkwqVTjW0jjU*9QTR9bG=7Z!aFq0J5!r6 z$_7BRKpLk&CuDh$1~rJ=1p-jT08~?R^Nin;2!mL6v1KhfuO}wE-BXK{#tT|gqh{0e zk0O#=5MW<@SA&#DUyz)c5CE(cbpE04B~>m@%U8)o!*os7q}EN*ZTbzQ&k?vp=hlUBBZz82zqGS5ekS)>%SMl_?p-_E1%y} zL|=nZa+Mnm`K0+5WG^8N5Azu;vqrql@ALEPV=p6i4o!RBOZppS$TzRRF2>+&L#H)e zrbns%GYpIxf)Dn}@X^sgvb43ZX}A~o0jJ!Y(UmIi^26<|4Mg?*agDZ{8@BZ(f`Vgj zup~nIAn5hj@f8AC+>li?pHD`tL^8>v_0xo9r#p+uiRxPketZ~=fnzf*LTC4d$c!g7 z-ObP5c|c)S=p2^KVmYg#N@Qm@{P;kzn2j3KyNWRQo%n0woUBA5Y)iIq4dpx6=m>R{*iseJjtodDdT}$ zB#x0m*+`avf-|mH1Xi5pt);b<-C27mNB2Z1vn(x5jGN4tQ|>UW4}4Mxgev7u~qfqq)3v=9fDVUrl4C~ZV(9FHYR5RFlSbB2jNB1db@iDs@I zWR|vC%FwQ3dN}$roJJv^JLslcIZ4S934mU!Ii%krQ<5Nt5iF$a1my&?eCEo#OamQ> z>QV`<_Pa8Czpj`Ds!HC~*$7FjcXm7{z$Xrx3t6;B<9UW^eH(T5KS60e1@3M*FZ<2Q zx@lU}$|;dG3yHE;%&K4P9{DxdM|5B7TUI2*AxYO1G~hM;B^n8+c+!pqsniGZ@d*+! zkj|VN`%PQ#aZNG3rM%bGYMU-XCxO?>*g-?OILp>qJ|~ms?o3mS*Hd7A+%}))aDwB@ zlFQOc?$?6iyUYYFK$By-m`&hXtd_NjGzynC>OlQX_`!Gke6r0WxGglY1T@Yn^SWcV zqxKL`BuJiF(uJD4OHr5AY2sBo@N>G3C2G|Qg}mk5a-)`9GAhnfH6f+?H0j+dqp!?` z(=p{cH@%G-kgElnSS2|yWPJSB`7y{!A>e#5|KBC$$Fn;1S2JVLhWk$nGx~3=H^^f1 z@`W9v$HwSC9wjICpC(^E3+pob{}WU3QC2vMqiX}~S(mq!c2)a0=5}$zivbuyy;FW9 zlQ4`AHWmqXP=J;s-kf{<gJ+_*!Qfq7$J-CgwH)$h>{J7@TF~7y13N%u@bZcOD)vay! z+n{GhSdt5WJ{d4cjz=A@YNo_Jv9>!ewI29B!1BDb3EUpT(bAT~;e-?5SV%H)Nr{tf z9S8royGLyK*H1*6PzAbZ0y^ho9Kb=Y6`rd7a5%b{*J{nn_RMC-Me1Zf0Op~g|Fg7UmR0#4AK)-OwWCa~R z0WQl=CA0=}F~vNq3pu?6D_w)AgeOOzFC40gDMJBtn#i;y3=Ci}5E^0RFx{p0>MgJ3 zQw(a2MabEo*?2LI-DA);m~H83w&=Os=faRAWm|>8eci_8q$@dqKCz(N-^tLK7sOmh zjcyAvLOvuw@~W2PzXBxBPPF!ak;_J#G8YQYI!V8J0Hz^GG%3+J<+XL;T$&#@H%=lzjn zbhZwGsj*)ik9^gNlM-jJxjvo8Ed+PpSB62*0PzfNfc{xLF zJllaGAlXl_X!K7^BDp=b@(Y=(m=H<0RHd0=wYgsOo^FCY5$6bBnWt9e;Y&*Qk`%=+ z;GyrxEC^6Pt-GAB9}H{NkIXV`xc60X)(RAvIjPOSG@c}^u{T8@ zCSV5bcg*%XuH48ev?!EES1GsXFv?Ycp{Whq(I!`Q&gDMqA>3Ii%Kf2$V(zN^Hu=af z;2$A1h~(d}P$t4aR%X-$ngy+u7RLFd`{B#nwh(^*A+H4wEI)YQh*|2cTiU3Gx{6Kw3iW8a7XK}&TM&!TdvwsWxeW%*g z#wAeD`d!pXP(pB{?6QYD*Z_1B68|voJSYFMoJ0rJbMf7(ZgzGcY4_k$X@lDrGp%YL%CSzGxJOYO3G?KvZkGu}FrP%Z zIXF-GFPWJLr~Xbr3d7NZVkrctBxOax$x*H7rT%@T%^&k}8n(BLyY5icdsXv| zbn~_}=J!G&n*&mubg}&=1Ez|Gk29#DHh1!uWiq_#Ex^MjYW+(bB__w7t#T!G1*GFp zTW-QXq~Y6f`qXd4bU3O?j145BNz3kWz(KFKOFm)MJ^}p6RRCySIu^l-Ga>7{22L#;^4 zP3&`xR1t@=X_M(cL&br{&*YEC(&_sTb@y;|93Ty9`IRm^>=-TP_3sY>hsl0~A!KKThI8Gu z3X7N`lzguUf#){|jxy4^G{)pk5pHE2rX!buA*!vw!5CEy)PR?LM$y>QDB-h)dCipX zU1p4*=F;d7D|(MblBH`5Z=3;)Yz#4Q4=AZzQ!k-S?jc8y4xl7dgj}&$4dhAyQP#dH z2R-hUq38vK;4?y@Mw@9?Uo95~b<`s>K?AXNuW6dz0f{02!Lxj$1TbolNQQ$k$FpCA zM0a16)ZfAbvKQy$6Lm^YFfjIjZwx83k%mqIXM+iGGER!e6@8C8MDK=U*(yDL8n?8L z*-F?;NzwVz$EWlBzCd+Wv5Be{_S2caWxzUzN-_yv5d&4jD@P9Mp7-C|h*sCn;W!0_e;n*K zPVt*)lnhY-m>uB#lcRsD$w(MrGBQF$%OE-gx1|s*$rk-&Ei?r#Sne*XW_taY6-Y}m z>ZVEus*Q`JD+d8NdHjM2B{?k^gj4r^OF+_NOL9VH??6cdwKOX_1iaL5w#7J@(+29!`~_EmAJF16O6{-w>d8G>Ile+ro(kpmgVmIn8V*uTQ} zQVAGYpBqbROR7!SJ8+BfiIX+-=vnN}=(*A|*p4<;bQHZMdXt9BS!y4%u48iHklnX& zR*<_E;z-)qh%t^e{Hdk_`!lh<979HKHDDdc(LeYaP0IjTjb}G zasc=mzekgOvk29Vusr#^Cr&Eu0M;vV9vJMOy~ABGT%s0M#t>@dr!uNZ2q4QO6i9)+ z1x{)1(CS-r2N3O(H1YwR0LKK9wxg;#vYp;OB^u9po3=qVHe7q&2iILNGoj2O_x4G5 zF0BRgg$4PAmvm0`S-ZXN2d2c%(unQU93l?*>E195Mgo@;vq*o+vtw_WOB-sDwL!+1RPx8)gL9i<9u_x=1rlY$*GOwXyR^M0dHjL79S8~8IlGVMtL>plHCEb}Nlr(m6G|44P zSOQ&2(Ku^?Nxt}@^O@>cZ(J>J>uSb&$8Q-bOjc)gNiy~6TxPu>UF?Q!wDV^!KuEUw z{j;@v?10~T66;;$FxTyJ24^VgC~_LC7*- z70Sv~Nmbm=F=TH#kRnFVZK4I8Tm0U(`91ZqWwRmKqW5snbFXWZ!mNYke~yjVI_rb0 zG%@i^ugiYGSEZmu#fz=P%ez(uSDLfajneNApLd<8W>%pKbHlLX|016SZ2ELn?p~c; zjY_{>R}a3hvZytCg~*Ij+-3fF7JRD++*x|}FQWC|YNEx#uj=8gjy#0`M>`+a*LCk6 zC{S-KQub1#$TH*O@7=OS`|kekiRd&g@I2ii5sC`<2~C!|s@V|vcs%WQee&Vmi$R(P zXJ5`={iZntg$TUsSP>CCY};SfQT!mZ+wkAR+bT`yIc|s4M8xi!U&ohuw>=enLVR7j zi;^gJYm1H34JG~xG53=pqU-CI;sU(B@MEG+?hJG^7xxq@{L$*XYe*Kj$L}3c-Ce`u zr1to!-*fH*g=1NRUjJaJ+SU(8h}P4mv3WxRSHwj&X2%c9i#U%M!iigVNB1LbW4q+| zk+k<}g4GEnCv>=?x@eW0oH^R`$;=iZwxVuBK;4Z~of_tFFU5dNA6I_a0aF>K(&&SBV&v^LCBRN_=~7=T%^vWMuWT(o{VED!NSb4^*5vo6%b!Iq#tj(2}*b!l`LjoJ4-q8Oxq z9E(mm^4K^eq8%IIp$#P3Yu$3;(qz||=Pr-_7=|Pm0f?^XcY;-HWeBa< z6=2eWnY`pP!K5Qa{mh)Cn4?UM&T?(d%^nBiS(@dlxx!wKUUvho?FCYt#H<_^kunEY z4-Xq?fN$;pdH7uJ4ACPv0Kxv*CKfaZ=vKgLY7IqQ63#wpp_$K4L`cJs60PP)F zW~nH|4lb(ky+-i)E(A-68GwU57Y;$GMwA@#8PdjPo6C5AMJiXs8(J7$q{4#7U3NYAV&^Q6jl8mG)r?uDRU-*!#cj*Dknt$9Z&5Xj zR&5$npW~xB&P6N5tfP+ouE7Ddx9We5$ZYRpJ{{VHTwOi2>hdSN zGFApaeKfh8x_#XhA54+A=J*#gr8H{>hNi=XL=$OVrp*oc$CR7AaSNt^abJ^lDTiSN240&xRQ@9Mi+j!g0=RW9yn4*8W>M*mSEX2!zad|-e#$uCvz2l13 zie_;0va*h~00CYHAT#T(0MKm7BgUBNoqz+LYQ=81oQZ6#qxR=Uu%XMY2$N{gI?Vk@ z0>+5R>~>pPcJ(5=jn&mLRaQZgxLM>;qbzv9MzC3t1r0{1HPSi z&XubI2F$op2Y`JtTA~%lETeZMRA=FU0%B1)WS^<(tGSXws18iMn!MMO#&$pF_C+9OmE22kLwq2qHmHKCTEf13MQyGBzIe9KeJ3fwa(4W|Ai&UzLRm5wV z)NtQAv&d?%CX<=P{4B2-#<^kV3OUnFXkLnx=9_vOBLJ;$>SKhc96a`kz6b3yWqrL% zPpEH8f^mySYT16R^lG|dVRif`Bp1G%8!|GcnVngGG0HD5R+FxeJlCSgC0K#(3#R{D zU`<_pZx7hH|5e@T$j3_5y78~yuk9;XEb!lP?dexvEjWOL#e2AeXwaH#!&`gBNq{EB z9aitvWA7XJdzz{9lkwYv*_}bJ+s^W*rH#kUH_!HJPiO|wbDmSc*;OwIU{oOR*_^Vg zskO7c+3j)s6Tkm`cSf~hhg6c)!xi19y3SXoV0ge%z{1>ih7pFbP+q~8lw9#ABi1GH zv&ya8@8=zdenxL(;&&~r&%e8$HmB-DZtRRMlF2sj_R7Va8ZtRDuCM~P4HLchZhm|N zNU)clJiWYhpPrgiKKFG}+}+pfvL4jG>{B8Im%q)O>;5(Lf8ux(2V69r7<)h7FCe#h zIR|o$t5Nno){9*)_N*-*wOYNT_v~j)J(QX1JP+Fi9lP>*{NL8#Ki$C`BM2T?nrcei zm#8^h2y)?6o)o;T#}A8uJZOrnjiEN8@vMEjESIM>w1#b;1D@s|xsQCTYpPcd;%^yQ zOH8mBpLOL=tI6?#nbh(5!}9^?YC)FMdeSJChY7+W=M@f}BTheEcYT^X2wcNJz)l34 zgUZ$}5|?y&L{h>3PS(31@|6a;s6%kdycAe17-Y5cvwddSV$quy+Zi{e_CP!tzNpBK zVv^$3u42YP9&Ut!N(tu40&>P7`a*<=>EeUc5bLN5gzLY7cy^7@5Ix9G4DUxyPFVtg z1eFvaHt`4;741qOfpvCY`L%|TV(jp9hi#u&;G>wpqi64@iWSF2j6m6W0J{F@ln^m4 z+1BZicN-TNk_`r^_yhaH!y(zM(#7PYZ_d$8_i`ACKH!09WF>NLQ0)0Cc7Kx@4p)mn z>x6r3cPoGUU<>8X>t?(z*kHuJ)Fiw=X~!ZF_|%C$>0SoWCFB%uu;M;=(C*DaWD8Qw zKHy@KQmKtI00GvTcFb#}#n{+5;%nz%$KGrc2o*q9_0vn$0U=Xqs(fGnAW7;GLNIT8 zNoqqJX1Zc{gc1pfOM9!Ai=UqzU(UONkRbC=t&9hh`4*LxF}Ck~w(i=nydub#5GKWj z(~vq~V1Q??^l$I8>`kyoX6e8+GM#+<{W82YHq50VWnOg62NX8~9CaP2rR1I@+OLmQBB4dFE81h&0t4>|VJ)A-#AERvC# zf{b8Ra7=P26^szyU?gS1j{1x;2ke5k#m5L410C$>3QjkTGU&n+y<$(~aX=`f1Tt?% zw+EOLs{6!a^~XMRdm5b@n;ydtjdX&b;}ILMC{Rfwm|6_`m5aJ?El>jAiai3E%jcg^ zSZT!rqPZWJ70YS;^e1()!$>V0It=&mY=X=ZPPN+%eMDIBG-x@N)J_{4o;n66ydv2Z zo>~ZYWcS6aUNZ(igLOZc05Im6Dsod?IM6pEpMG@fSkw~5{(1V72uuMmgj{I%2U_|j z_lJCfM&xbc=IA@t_)p&z^#$}vhUPggE3LkgthKI5zuB_%06hC#N|dYyAwGgV0OLaNNzw z_q31L73QFL{53JW_x$rCeVLgtJNb;<@abm;idx89SrsNm%d}(yRIfz8uE-XB~AWY9(vSA4;G_$8S2kM zZ~vT$3IKk#_x{U{Dz$H#E=31LGdkE)tSv7K`i(GP-g2zped@VWI_9Ui8OVU`drJCpuYB(nd<_|D7t z-)OJzA+-14@U?#IQ`DG_TPnGj~yL#yYEQuS8i=dWNqlI3PO~!F6CH_syA>->>Cz!*}q`APCZX-ZiGb-p7*DdajZ8ORPeVOK$Si=HK4Q% z;5c)%m}%t0p8{{)>U1UtWRBREp3rZ!F(+P*E7Z4!?dwD-boPB@kx3y1o?an0)FBY5#G0!8=jlAg-j zD$AO~u|@^}f^AUIvaFFQC87kE3yv^@$oYxR2gb)Fi-mV^ylzG0s)S=snzC1E_hRjB z!ZE&2AK^7kB0m=h1VKXOqZ4cKYxMv?XY%<0q}q)O1+8 zI1@`DoVYdyNFc^ic73Vt5TBr+w}Tv~p0-ZEzxNIMuJ462xqUB}>RU%D_;V^j;w~fX z)x-1lwnVetl1DTy4#8AFGz5TI+<u9g$OL^|Csrrn?jSSlBqE1SVDZ#Wn zTlkh$7CwcF3=D0{gG44=E8H^Nbg$#1{E2kX~%=rwZlvwrtjAPDC{zvHZqs<#mQ8=p|>vwXBdYpDmW_{pbn`z zLxShg>2<3hR#@gaBJbCN9!!A37KP>?t8uQpdlYa&QkZPf&`9@FR`@51ql7FmR-%I^ zo6NTj7Jg+{#YK8Il>JkeOC8McIqnzBoySfk2vd+;HAJe(R2ICa#v76Uq?KYXMx8a{D2&sTrZX1FccU|^98kNCv5 zzv){o<|CtkBn^BfI)nSx9)L>@1q-~ouMrXCnAVLcdAczH2lyBQZv|rl%)a?pvTixi z!5T5fnE;8KucUaFid9qb&Fud4Bf!xeP&jc-vkmJlmSR;)JZ}B{+S-E1Z0LpI1bSK1 zw2KOgPB6PunaE1hsSV!<2Dil_ATyO_wsk;E#^6pGL7?MVu_ldx55E5tp*KDAb|Ub2 z5t(gux0rrI0ulN$@eHv%Uv)qLLQhgY#Y}jTl_9k&u_!f#^=0p>Nhtxisv_R#s+hLm zl)Q!Jz4>pRg64|fQekH9``uXqs8?+Us3vEw8J+R*7zeIT4u^zSrfzPZ&nyQ*|63W_ z>qmzV8t}^NJ{_e&QeCn-S44yM_p(mFXP~|Hm7LqV$?8AZ4))NF9T>s8^18OSow9C@ zLHF>HdLN0_b_~GzOSiGjjCR2jmGS)kIKk35A0Ny%+uJ#r-ZjC!P5c;G725vj+WmM{ zxPEcKzy46@<(0GMWh93CeGHsn81QCAc__xz`??D4xk^x@c$gt?r3`p+Gk!g~3&H>d zUTwXh+uV{Jlm||rZQiDf|JzRnNQ~-gH}6%hZ9NSy4dDg;_ImTMNLNc8)$sj0oEUWP z;Pg=Z)WP;&G4?xq&{c}t!8`j-!Y=Z}t-1Y2W{go$E|VepJg3%0xZ>0D zD5Z_BPIojg1uK_vQS|04KV+vBrYW(khmeqEhQPeGw zP18_NkS1=ctP7)@tuFQRn^LDh2LpY>!*iAe?@{!FJGO)>mB}Vz+4d`fl-L%VsvS(? z*X6LiWJFfaTU-~*ydkId1U)|j1Zv&LKfB+;Vps|?NCh0bpOfXBP%MBj+U9?@1%>c5 zWak5yy!f)Zu-WWPCX@&g@o=t-7smF#r{YKqbN#b#a7=B)Pu-3SB}ToLQ<$@0;`NaC z!_pCOBW1F%(cI=uz9juJ>+p~)hlXdXUYW1pNKd5{e}V$hj8oY;<6Z$1VLiq~z0{ib zbLzAhO8kXAF31&HB<;qgTxae86#O9QZUz?3Y$8V$hoKLl%-MeCt8O6C=sLQ1=0uTG)4uPx(y};O9xr0WY9@}&xsr)sFi!R zu`tU@(8QHg;$_h=3n!Q}nJX$tdhGR9-2N1dzUc3NHG9_-4ibuYOzl%mPqiiCE#=IwH{~s#(dXM5oN`%AkNHH(VzV?&y-8!M;3aRk5frT>^q<-dT zSPbB}G=anDkD_gT5Ie~^w(JEL>e%<@&Z#4s-JmTK61mUqLy>!0TU$G!65lhGaRstj zyhBqNNW+C?&d13lj|WSz=GIq+!pEV?_uHB_j>C_1aSIby3E*ot?^IEaBRCVZ>fv`6 zmVA~B=-1-)iGM08wW^k9^D-BqG_|vUnf8wJhXqrWzffrEmS)S7-+hjas_?F2g2z6r z$dq7z9wPnV(Y)?W`gIm$A>9?nS06xyMvV-^xEm4vYLX?!7TUE6l~G>2*?dPx5X74F z?L}uSUUK-_5tk{~!CX`^q2{z}^)IZJQ>8R`!(+JY0VjP7C>e;SlZ_L6A_idCJ<|OC7bE|73NhIEbI6uQO z6Oxm^IGU;gh}(QjO(l64(AR(J&6VdzPLOi4(Z#FbesXC=8}!GpiTpWCHqfm;M}PKY zvg5v66*?2(x}M!9=56c^hptp6+e?T!8gu|~(en20yoZM}G&hOka49A@C5zl!2V`4{*p*X4Obo$%;n z-W4if@s83oQ?ZuS{FJ16AXSc~(DR2%Zj27-G`Y-SIvi(*8H@=)5wtU(W*~58|BQp6 zmaVO;=yHfw=sQ%~hoVekjn#K1kRm&8so)Q* z%$(>%#D4g5f9aWufy6Q-e!GkT(^}9R;-8KlHEJI5riCPPFP(KQ$eSQI5Rh= zIC{tQscVHpsyZH^z7*9L__?s^-u5T+b|op3bEQ~G-FXk>@Ku_R!V;U@l()9K1YwH&tXqCRwX8HqtTVU_)`Z;IJ?_QEVX4?X-Q>{C(DQ7& zuv6Fjf)J;4n&c2O68;nVU z7OmH5LvdtytVn}e>)|Ud;c7@a=`AgxS|FZT_#PS(%4DLOC-%E#Y2rYgv%uQdY{;i6yX5%P<%L|o|F#@Mlp&CxT7l9N4lX$xidLQPvQqU8Q%{&(OjA@I! zJx;=tA?0U}$Vx`mv@NA7Gcee-O8Q)^7}$W>jBInAg-y(J1LxfbS5!nHO@tkR0GQW7 z5(rYyqsO^gFu)^4yDSeGJO_?bG=>Txuof|6S|&Ye#YuQ!FvzX9?eytc5F_K-7=6TM zA}zHpavQHnHW9!NNDMm%E6CcGzyr{T0LsZFWzl7v+yWB>8lxy62{%DDviQORw=iR+Tb_`4Z7 zG{hts>muwA6OP8}a%S29kUN2<1JQ1{yRxeq=9_`XPgdkmQ1Czm%^+PoJ=i8)f*BiR z&3WK-<(z4RljzZ0s;E8qgU5Yg7*q85tb*~0w9pM3{l{#3k9?a!S6i>&?`K1=yp82$ z32YgDJe5!-!ghG*D#UQf!NJKXrX=4QyVxWRPW zcK(#=+@N#h%!p@7OydxhnTZF)&Wcu6n8Rd#LZI<2DpG6~z$se1joF{5)QWYalm1&S1=rFt*qqQ5<42)tlNkyj*^faGZMHb3$%m0EBKF)~XBdE$ z;nrREYbc;xHLv4#)h^Ps?Q~HsU(~N9HH8rmM@i5kN7|}Nk%*d(q9M-k3=;qd9&s^z z{pBj~`RS;eHs5H0T?VO@oP5R--eN4^xGV7euOLAGD+DIEES`JC^C%@JvMOidTa^b( zL`0gb{4b^jeJPMq1RdUa5?aoh88UGOKtjU=H5nt^b<>biRsbRMj1rfK$!Cg^^EJHB|Jx?6 zP-!uj$y$@5Gqh3Zmt#Xrnm4%q&Uwi2aEnD&ox%RohMsRV8&}(D@Je=nj6v2p;Ek3< z1aMAA0xZ;92elQ-pdk?oKiwSPQ3S5$dY`*dC&*~;R>pwer83=CrwXl zOS*>>w|$tw(KcZgnnnfa{F0MQP0%8uT6O2TCZI8!RMd44`>s2e=>h;qq|TSXRzL~` zTuQSdhgmv2 z6Pt?Us+tr;NP>Ep`z0p__+5vcFctymX_(QOAoGr~M*lIas5toFMb|?YYX0d`sHn`7E$%MD_c>3k_B7vu2 z!$bW;YmRybBB-H}ZEpL`YuX0-kwcpf{8L_2hHvB8+e?ycb;|GDcZDv9|Jw#w;qK@R5`ES&k5j0lzAZAwti)p$`x`WfULVb zvHAIRLcgCvtt9m$m1FW)1$G>1Ri@au*8~HP`xBRYPi{B##p);>^Lmc&Unu=lOc{{=TMw zgX4#xtIk&cBGy9|i6$m z5aMq2cs>=euwQaJU(~R+7LBxa7~^#ykfQM-Gn|kF6>x6;c{r(fWQXonu-EElG=GcA z*RrPb?@>=GmwjmrehB{6>z5Wsf1q6{w-_pt2Zl}H6>sWCx)=2FsK0jdl{OIpKf(r& zGz6ZS{`^~BPGnvPoVMQH!1z2jn>`1U?QllegGga8cwpnDEn-4Lh+DCh>CcisgKiDN zkQqz~0|bK+nyS~+bcC0Q7iteZE6@k~2@z=&4JVnt^!8CGE$&&Eu}b;IQK$oJqwY*F z+EUCU0nW1z_JU#X7?tmf<-wv*lm5T=t$*+<+9(00)t>RTOY&sCx!+Tid7998F++5W zHTDhECFTTR-Yae&K5WK7hfJah)o7I!H_68Ko)v(q#f}39>sk_mjMcF$%&DXk4ggOw zg>e$KB#C~bmf<;0iyVTGM|N7S;P4r>a(afT^qX^0DtOWm zF+3OijyL^0ir=iDh(0W%fwAgztNb1~BZiG(Srm!&4q>rk+NDhNEOk zNPWn)nmK`b8!8FIWlE8?>l@y`<0W~BV4vnr6BEC!@7oFC_O&p`!T&`^kOr=KUHq!R zg_7w;DyPeOXikEQTSN-7k$%>L8M%;DQ~;!k*PK6vg#{Rr-32Hz*$MFCn*iL>ELA>o z=~~W6Fhq>?_Z#dcH?E-P;eb5sOCrYw*9g;M$~h%~Qo-rR^7JX>1NgWjs2Fjb+O_j_y%j_vy`Xq`k!*5)nLuo1d0M5C6lz~Md|#SP^& zo+sX&RTNf62RGwpKVFyD^U=UhyLuI7^-i#oNL17Smdq%Wih&3Tbnp(Mf2CPfY1Y91nDPWRa8=DLn<>5eQ3eZb&R|ILReRw8r?XJDdOqe_du;utw-QR@kclW3fV z6gmX*)FtQwo&BkqJ{SCXtwNeUS^R0lqF@0rP};L*{0Qe9j7!9-HcNQbmzm*%F(n_aCBK65SJ zB-r6559>rd*&OOQe+M>rMyAaVh{+e`9e2l3J7Lmg47qZp!vkW6Tt7thoG)N;tulx^ z6fIn!$JLAwUn9rCzo#;-^9B^pm9gV|2qp**`nqqc6Rw^!YcCi6D@l=-Ph(xh+`*X+ z+|PG~7N3|t9ghj1G94(9Gwt&w7z*wx3)(p~jitsn8AaVq&7_97m$j8ME~0k96>B1?K-|`ldQvf3MeGJ{{{FssA<;VVV1g=v%7aet6Yo zpV#w`>1}Vz{)0HLaG>k%edS66p6|=U+Y?7qD;s@wV*!>E?A}46;8e@G{zSx=1U?}?3<7IUR@_1;z7H@ zo9ki@SMvm0kJV0{H=<5KCvPtS9QTDwjAYZ~l)iVAf#>2Kw+(9k!(QDTYpXNouQOO( zUFc&|b*Ce0xsL}so8=Sev$^<9$8BuTzp|yb*YoF?*T9$E{M*@#pe4%Q zOY!ylXfmV6n4p!rkAVBe*4Im?*VU=6ZL*#l!Kt^-j>hZqx69V8i?v?=Hb<<0Wg6&B z7m@f*vT>H148}Xgpr!R~N&Mj}f47)U1Y|bxbFr=@%k!jMmLp*FpNjZv#~fC`-slik&!5)KN4%||X59dLT zlUTiXSzA};J}n3U%KIO07cJ1h1?`s~L4hw@Ptassz<=(^TY@Zp?`u@h&9R*5S*`fx z3+3Atzvx4n_t1tuxX~6lSzfpcI_Q0zVWD*CHu^w>=gL}L$pM&1UT1C%LjGq?Nyodc9UoZL}+z!PqBl`a||Ig9i%>sYOt86fDDNVv-KxUwD+EzvvoC5A!4~UtdI(? zJ3pV)$DPjMzM5n*U7rEbfpjfaWE^ytA1>@mM&+GnrSg6tzx}L<0|yM_rnQyRb6-R= zOL*-LJsE6*#03x^)|j+Iv}pBdM;aj3Bm1}DUshN32&SF>MpPhhc!&mZsb1e2kw?M` zfQjR5k$xuoF)X;DELhVK0>NRk)*?p3ztlVjR9tddU`o-i?bD~E>OD+T%scDhUBgLP z6qM1FaqoBj_LWvt(5xb0iWyPNEAkJ|D%IhJDCB0YT9+(<$do|VAGp$BB-Ddp5LSND zhbw%wfB;poWhyxha?$6uFLgH}%K1u8rLkZ>yFb9;;M4?1l3ruu6y@UL62#We7epfw zupTDM5SK(dd-E{ZMnj^JpYJ`$h@vl2VB56{aOtFAX~#svXk+%xK4XV^!||S#tHar0 zds~yD1gBO5L#2-Tk%*4gjgLu64Pz+M z)&fX7VA|f*)+xNUybT5xk7}_ZGQApP^N5Y8t?aiQAP2>Fet=mF~M%e!vab z63!!l3#Qpil~hy|R6dos#G~raBfU<*;twsb44Y;8YZ?IY*`?;iXhO0!jS=D;)F)3l z3IU_)7;uE}_V-OeQr%PqnF6v)^A%DVbn>!qoYGddIK%B8DH__{Uo<| ztq2gas7cxw)fmFBwq}Gl zD8Yt4i-^G?>DbY_T0}y#g^T65gnUx6N2b~iQ4xJPEiDjQh6h#^vAI43D(hDR7&$3y zx}oMOIabzDIl63hg^z8x*eOy;%Tyn-br&k^n)IfT-FXb{j${`}?FCc1SJT%CH7*ap{ z*5x-p)}%=X*ouLuBp6ZUsjVa|M|rKwb$PH6aFc}=!00I^vgr}g8v(Ek_m_?zA8<>V zzH8foV?lhL`(UjcbL-Q%*_k0sBB{R)n)=FmI z-vxF%D}R{pA>StGV8G${YckkCT&-cC#&?NpnxCa{2`=~(kPoRbznhAZ$)abfqj@l- zz9GfB!1x*qvujgXHx0a0Z~8&(CWy`=aV4;o*+`_*CLf0dV1osEzHt9B!!Qf5`>tWC z%tu&uhfiC6{T-u1UYVx-l$t2eE<3S_<|a5?Ck?Bkx;Uo$7{009egtW-AzsC7!kcq7 z9O6^I6NduM=s7;0yZfWxCSc!|wM-$yredqa?8hl-pvTr?0cVHHC$kOl7meQ+!$ z$w@kGsTy-+`YITjgtEiW&ajC4k5%Rrb=g=+f2aryXq8W;#u>UhQ0c$ED}-<#4|82V zJFT`6-^`Ta-^l5VR2+=tL!bp05A-(fo3-YlVLMYUuY-b8c!BNb7= zmH|qo)8@@AY+@^aVE#f78z;?F8fV$$k%0}o4d4L2{|4tz6B8Jq4^b|xG61k@<3v_4 zz<}a&@c(p;oK)$P_yzE2o5A0^#@akQ?K9(!>ADqOuR`RhL%%x*w)4_iCvv~(ulX+| z0TE-)BS>4#K0D*Xzvg^eDv1&eJvQ)+FMIz}$>4&&8n$H2{nAM zO!OHTdt3OCe>pJkl)5i+L$)OHco}rk&Jp-V`MmmN={A1iJ)itG8v4-M@_Omz|7LHF z2k_*`6%IO^OufotsoPv$_MO#)K3(+QWKss*+!?Iu?>GC-@CQB3K`(CredC>-hX+Vc z?SRJ*!Ltq5FVTzWsplA?9(;gD*!9?ZmuVVw&c*S1>*A8sLBS+?JGAv$_;&qx z#lJZncrq?c`A|U=xb_E0d}n(-kI1RBVe8$T{)#2~&=)0sjudn|6?m}qA-$U6W%oQ_ zp8u5wuTIcR^Y#3@hZcC0fgfDK{Vt&qIeym@-L8htoPT&DyIv3Y#K+g#^OCkz&fV_!d;MKQ zk{5)Exh>eYJPekL92Q~)&8xkxor|(w-P!n@+PyjqD!lESzL5axeCBUDTLXX5sT%&5 z%fZoHBzb#_ieuw#7<;B#o#vj8xmG+zaoduoo_qE9b3wLW~z>njh+s}qVVN+PBGH;v62rz zA6iNlGH6VLiBH7mfbDr(yJhC_8)bP}+=MH7>U6a}Uz0YjHVmO~Nk&!|Qp*IDtQ#{^ zFw~L|0K@mN>?gIAX7K(peOiPObydnQ9!;hvd_x2b4*u0$vv1uD74vWt>cdI+XG8Pb zqf5p@$k^6?;fFG*k<{&kJI^%SN6n(T6RVdv$S^lM(HI>EFEA5dM)noH0?Vtgshng4 zMYZ@FBPo;V$N)ZLLGMM)&V^146Gt_>F*p(5d#Zu~iP?;FVi=wY`6g5HuyQgF*-rt*V^TWC@w zv4FB%Wj%r?)4>_OM1%b1Ufyat2=RFmC)TdDNglE_*C$wj)s#h~;;}h-p|}PP0xK2M z;fg(+$)tg6S^Px&#Doe^k3IeBq2IrO7^xvnFc?`U948o;E9_g7g7Y(j4KX4Nn;xaS zQ0eZ^EC?>$U}35T{pB0!nlyAACn@gY9pHeF7ODJ}cO(=oacl9Ou=_dOknG=*(Z5V6 zw#L@oc+ntk)oa$603m4HFhi3b7>nzBjU!sESiH=uh!(s5&qVB;C^i>2*18P`))Zd8 zWDi(C#B)jm;3VTuL->&d4*k{zd7mxs@9#Hjn0Ng1v>8betovImyuw?+yjTvcyOq4O zN}wqEFDWhrn8yYTEjLE6q@IR&VoVEm(QroK732T*Us4N!PG|Ca8!^0mMDIw6v0>%` zsXwwvA$<7xomH9%TVpY}$eC&XE40fcD9Gz=_J=A|EZ}k{kV$&$j+Gl7P9LNR9~{vD zfq~^w)Q>^h!m$Zuux{v5SsMUHwP&?#RI-}t87Q8<73vjtmPq1m4?aJ<>9e70I!?7L zk@d!YV5;Dd?S}pO^taPDk)`iZ8BKnT%qB&Z$Gr`);62y1_&{t4oat=alrJL zVG?5fJ$_Ty7RYoA!4^@5dGL6Zz1D9cS(I69>Vr87hsTZT`~CxS-JSGe^ec!7GZ>Z; zec)%QynJeCBpRXnry7tjY^ZF`{G+y6UCb2F8nN({E~qP*As3cmUux=;9#S}fgk12T zAU|4~#gU@n4=V(z$*3xHb%F%|6S?y@p@0B&UVFw8nNck@2BUp1$J~m7BwP$W$90E( zte;ZDvKbJ1#3y7W3F$7nB{(Pf`Ln`;hw_KEhqheRPo1K7_yZ4hx~I?+G80|XUk@2W zVRH3Tpe6#WeBt8wP8%K>d+te9TfK{Xd4-~Npd377-30ivH93`Cj1bRs3U#kdk@*IB zoNB^SmDho$irmPo{xE!M85vAJ&*f+gibo_Vx)#vzICX#NI5>Z}uI}?|(CwzkaZ7a- zUY=WB^VCE3TGV=upELuCC_Ib}LO%uD2T1qg9CeIXXL+%Es*dF!=Qv-zslrc|S53zl z&`-yBRZXnw--d8eB~yDakZECNlh)T?H|qtzoHrl%2aQ|RyY+BzG1AKC$;kIKPObRW zTh+B681-(wsu;3=sweCVZ_J)?6xb)-m+r!nW(20OFsnp?73D$4y~|Q!7`WitQdGMS zX<${R%7*rttdL_Q!oKNEhmkMWMz;MzGkG0sW*-b;1910*j*3#P-U(l=mcB@)cld*7DBck;qoy|54`Iz9oQKAz>1B?tZy>p3oWxZpl& zPsmnL69Ie!B$g*~d8SO10a#Qc85!_|+}q(${3I8t;n3Ndu3hXzBh(_eZs-P_ZBXox z4X|h@+n4;xGt43XMbXd+T<+888RxMl+Zq=%rn5)14=YXzQK3w`ZwL70B>@FEBdDxAp8F~F) zKYj7fU?gupUX7oidB+g^J$=)`|HdA$vs-_^IF*>lK=G8y@tV<#4yb?X4LqtNdzYE& zRw5W1H?-d_mQJ=dR)<@=o+o@d0)H$8+=W3O*XJnxmyF*=f&$LcvG#tgR!#*hW?}X6 zPx{{8J@4_Vd1oW{-Yf;(!Uf&CvcmzCu_yu$yk72ajIWCr0w=tTx=s(U-X21KY8vT_ z`=1^@x1PVwZlHZJzNmkj<4t_)8u1_EpQ<-_exdZgd}o*T?vw{z4esWf zSyQjGL_se~lm+vI0$s!XmVdqXrF%PK3mx!fYW*Qw z`(<$}a62zRTy9W0DpB+`8anbsX9OQi6mY6EnJ4-(_Vzk*-Zn8GNpW*T)^l3==Kp?$ z)}Fnnpxd|SLhkW9(Mz%P-sgxQk|3{>oUIGHpdQb?DnIf4suPN!N4WFnuh9F18)>=T zMz#Oz9 zf>P+=8^`lZ&{Kh&*k#t%OZ{2LB{`9pSjsPon^NPad!hg`!1{HE_ALFZ~czqh(sBmZ3^Z9Y7SUz@!=?cqUR)5Ndz<^Md0|8qmC_xTz1 z_T1aM+ZyC@xc;YET8{F0{!q3y@Z8S`yZ;I;=ypF!RrGnWwdYl(_ZhF&Cv{`Lsr*hl z>-6k-|K!a%aiaW-$cd8Cb@P_XLYS)mWk&b?Lj806Q=?)OAFin$wCtg;yiRXxl})Yt zaXrfF5BNv$w!7HLF$uFh{o6cTz;KKB z@nK=4eq&{&W1r@{`!1($w5sO+9wOVNsi7F_hzTX(O(78cFPKT?Y^V!yAE0Y^(|CkC z6)FRg0>q|L9M-cEEo!az3vD6G+u8F}{kws!tj?+u{COT&szK>)XC129^GZxOjYm)4 z{Wv^~71w!M=+{Qgr3Fb_YsnpwU4HoePQBeh<47BBh{(4wRo~i;av57rgqJET$K}gJ z;8FV$g8C6H*)^E8L1}&dGK@2yt6ujjg^PVI9?hyy+*;dXM3MG5n%9hq=c(vIA_^ZF ztKJZJ%Fl^JqPQF1B5(OM{v$xEABZfn7(-tRRkW-aR(9`1$%o0DjK?}}i;AltM+UZd zO(Cb^qsUTx()p0^Sy+oH%2tm6^_9t$CS*A$DaN5Eak!W#22hmCPFwmK@KEeQU6+S$yP!#u`j8?iaav$x+oTsLYzN^cJw z8}7Uh%OVn>&dyF@Vd1oDbZ}v0tK<(RPU?O3^4u@)XFG)zDG2E7OH*ZJ@M@88R^0pFM_;?}!NUll5i#E+7%~^$*BT=$6%W5~QWbbfz?3$EpqS z_~uxP&&gIKdzeU?YUj>4~gGS4lyNLtBgN$Fs&83F7_NLlqS{@bCRxptbKIhrw;@@6V0t!$8%S9P; z0*I|tjIP*Y1a6DT;KB0{Zz6ig3NC13|DxkeQUZ7P*AKbAsY&~eROLkiIB%r=pU*KU z8F3^|3TT(FoXMqA^H45>qkn*{P#50{5@5wvy?iocU46!rl~YAW{vdYs`m^>j*9HYv z64_XmHahAt<%R+z^?$VhQtRK)8)&D5*mIwL9d}}84PH%HS;DvFu{mr)gmBv0bS!>d zI#{W0O>qqtQS$L6;vw;^5Q56TPzrfwcv)BO^;|c=-f{QJvKv%$3E%TM(ns~%%Bk*U zyoS%gD-Wqs%ogvBl(L07L{PMHRWL_>Xsx1duO*(VG40H?y^?5>;@Z@GVwDADLL=Je`2lVfAq!02LYv9Xlj+NE^;ndMaayM-i8 zA=0d%R26Hg_3`!Ep&#gNC_pS}Zar{fWN*nAhfCy3w$ErkXC0mN8jVgzek9d?e8uL` z9vuSKG)~m0ihY25r{SNFKe47&6mX%2!p@}~=eYA#wuhe&k@qDRwg zIZ?78)3%r=aF>RJYBa8E;i5USs=X*J2|YvV1+g=7Yi;@--W(c0I^Rsvg@a;lIzef^!A$vRapiENG>qsvm1KVzmq;1c z{E;0?L5>aV$uu0cY$Q{f@}rvYXks$-j>!4~F?4e2i_*Ysr-si1S2O8vn6n*#NM-NJ zR7k4Fn)I!vUyCh7w-UAM*2+rWlVQ*=j9diN#CbNMurpVg?~3C_ejbkr{nZPO9q#jW zr3FGS`+m`AE`bHM8xuqe2m^wP=R|$eK~bJ!?lWs|!t7x>);Lq!0a~`EZ(OM&9EfzS z*?iA0hqf8RCIVbtx%c1Zj7PZG4!`>mv7YH>ALRO8&@V=V<1^~m`3{$o@@kKDyRBn= zLP>n7&b)!HpBqzj4t3J>*v9yvYpf~pBFDGBJR;R-#;s1kJFgi(DmMsiZag<={-6afy|7&qkE3|7;>^*n6H8 zJQ>;PQr{kk#db~C*09m=-ZPfq7T_J!Q0cE}!bXNiEx&ho7s6gzh`YKf@5)^&bhK}> z`b1Sj_qG=6{{?mx|B~yt&LmHDVnT1m{+Q7EJpNv{eYzc1oNzEn9Y!ab7dL$!^x$$c zQrexKpA9ng=gmz@zThN3Nv;|_IS=CKb5S%{z>vCX+jo2J$$zfMfZg!`V0Wig?g3_x z$Nzx|Pvo7LfQ>7Q(A}r*7wYj7p3dK!-7Xh0i@D!_Q%=7Blf3>YWzhiB{EJ}Wek}ZX z1Ng=GvYod0_W1(v%l+ljpJ(&V6L5QL^1SsQq;@;k_uQq9Vc+EyP^@xxY)*NP+mJY@@A&YCL&0h1mmUAe5HvuDRL6P9=u>b}<7LNn@FXSeYmmse{TWzA<=aZ+q3f*@{QsjulkK4Z=HXh#azNDSqp3((P z%`d*aW1kFNH8Fqj*T0fXxAG6N(7Wy24XL@G^zG{KwMRG@bpO8Ry?+OIzZiCxR^OrH z=dTg=H;*7-<$@qT@OGnNjnr!Ad!FZoeLLEF1b9Y5r9G(6A74ZaQd86P;+KQO z{wUo|)MU^VXV}GaZ=H(gdXtiRMzlVTfdT#p zLFV}-<4r<&Q;Kez$k6@Jm(e{FgD-)%J87Kc521d?<-}*9LpduxMgP4m5nGNr_(FE} zP9*mSl^ZiWDsLwuk7G5kfOvXy{}L5{4$P;4BA7h6voQ_RlsMSE@yQSA&?AxkwISpC zso)BXxH5fqI7bng?w6%-X2?(dl{d{TCWn>RTR|^VI9t|5b*(l*dAFUfeWvu)UY5LX z$f_)sI+Kpj%JC9l$eY*%?|LO2?mQE{<#o~7ibr7_JF6>2+Z98c4HRCjwX4;xjZa5V zCX@HyPLkkZE!{?keRW6KVZ3=;D#9R;CO!(TY2X z3&Q>Js{YckF~Qrhn4U)hRIpxUC9T#nz}1t5$qM)wUJpgfudF6ZKq=A)OSz($+no9> z)Sc+fY5Jz$)XqUTnVH7Em`>giqVxW+mJte%g+YpT;*olKrcFHM(kl3i`+fMnV-dFI zJ%9Q16GDC331>u#i09i@N^=a2K$b;v%;qEpL{GbzQsK(g4HwTPNpxFTl57)V72#Wq zh?NQ<+=(XGIeT73p+C76H8yv31^oSGE6^5vS5H*cn~0?x4Xdo65vO9OQ3DOCFt7mC zdtd-1upJs0EQAuHXFM3{JZ!eOs{xL&qVT{Bqdi3jI@@vr9G=hb+(}XII${fdA^X$G;tf$zXL=6Tg7FWJ z`!Pj}vSxJLY0$b=V5;7apRY{0)N!0^UoxVBY}U*+nJ<_=D z92$YKXQsTWojs5m>>3$BYE;Hf%-I&5g~fiLNT`~~`_)Q}&_!5q3+Nwj>4g zc_cQINcs1nsFx(q0Fe|r06>ORAhSUA7l6824irLm*mC>|US2cTiTnAZGf?!`qwmg+HYmxJLSKQS{ z`QmzQ(_kdu zpdu@M3XUkysa^?{q`FYuv9g54;~#u}m@jr)R|Y|8>~MOLWjC1+SImqEn}el&BY0R~~=T;a$H){ym&F*`QQ zPhJ|zMy0aFM&)p?B-jwY+x7(sTX+s*x9M2z^~+Sh@j3O$Jb$lFj=L=W_4iM3eL$8E zu{wij&LoEc2t_(*tL3oLsyv{h$PDn!NF-Li;O2U!Cqp}=LA(`czm4uX1* zq+K1v6p;HalFK^(P9tAr1Zd5`V;vJ=Iwf3OTs>oPY;d8oeLFV9pXTW32%wea-%`zY z;Uf^PXO#Az^X{1YDR>_NUq0r4r%fqw#sEOuzH}aa?c)n7sJQNdb>B6G>0JL5aB4dZ zctHh>1m8T>JZg?^#(jVA54}Q^3?!G|UVbW-c(Fl5e?IJH5p*iPv<8>{5m~?MYB{8P zv#){j(?NHnIY;vGdH?MhXEJSPprSaHSXj>tizjJ&0k~ z_k2bSU}!d~SVyMCjKX0uL|&h#|e8aCOh4p9SsKNS!-(G1j=6zI-P?RqctNakmIP3VXgA zSh_>vw79_I%^Sa-o?Y2!e~jO}hd;be$&vEfZuoMstN77eJ!JwtcQjEopqlH-vDZjfmQPZaux(=tz@tvtS z6byU@8q#V5I;p0vy1S1pU8fuF?fUBuy|Q3F|u|Ofyy_pl~lphS4rv8cBRu`*9;05&!Rp8!1$N))250E9(Ib z=@)&%1^G;_CT+PGtpg>b{^kK9y4YFa#XCjfy-MSz#qf$yYhhXfm6VU2#P*7@gf#gyIS4WAsm)h!a$NE0O=7Fm!_m(TjvYR| zjzJ-TN(HR+#koY?A4Wwo?+!J;`}-a(H>yA}Wu}!7HCUH7k2`aekwG-~P>4&|>JK*O zxNC0hNZiCFAvWnxeA*mMUUp30sFhRcuNAhq6y$xVay}R%B>#dvT1<}v4U<^7Cs)p~Y*_+Ta>01fw*EUR0It?4v`GvTy~7?fr_%2tZhq_0g+IC#m! zUCEN|l4A5j3cYWA+I6@LOMF`Q2EMR#vpB)f!U6pAL8iI6)oY|Jy~w=mNPM8P7dwlx z05m<#s8}r)Kmv4&MqAz{3u;7|hjcH$~^urV1lnkjc^EV6b;IWdp@@kFW#bu+-k7a#Lh_ zrLqxD{La-^!)+b+hZV^*Z}god!k!=7aP|?H0?8melp;pp@(BPiE4|EsnMO{R2}WV1 zUPP^+?Krf(u{277ar!aW$(z3ft1 zWRKeuOX78>9f>|cK>ZL-K_4*&P~=W7RvipvD(?h{ZNk4WLwVhiJ8l<|pcxBCb$#UM z=%6)o+;%4hR@H15%6$+OpyZf%m{s;G6XH6y zg7qj6!pAj76+-WVL_|8u5Fgbn?hzPY6WI(ijM1@B)xB0!*4x;`ol5yS0J7pQ!QlR**4s+*?H;dlOMnd|a~?78>(rrY2u@0&in+yKq<6kc#^F z>p139R9#u>WZE`7R%4HH`ck^9xnv0W;Zz zb(nEXIe}^NfWmZa%irHv_!HskxkkUfQwghWtHLFmN_?3Sp{SUSDSMs5vVBWhny>Bl zi$Lp^_<)|`(p)EN=SD#pzH7v~t_+Hg&)dEoltopodv}y5sIOALG#S^S?t+^X7qPWt znuWx)TkP8lqc@bY!CZTE03OyfiRTmwx@>MV0hqajX^^{$jI5PBS9kzlGmBNKqJN-+ zFb}30SK0-UB^gIL;+^DbC~cUv8F#hXeQq$*IA!~H-ik~jcP_nF*d<`JmPM5&BMTC! z|6`Qp+%%BEh6HALKVO{?maEDn4Ne_K1*mXSUB)Zzf(ooPV!tr(V6w9PEaA7El-#bz zFG>suYc1;%N}e@ZwOjs>r^3Xs5S=bz^n_@4GEh^g8DeIr!;B4CSj7>U&u4RHC$ls9 zb+|P`kGxgy(~L|6WRfZ56RXM^%=&Fe6`HshF{DVXHT?!mC*Ii4z&l?YDkW9~ z@{GfMW>SbnEw1AijGUhRHfqR8V5bCYSI&UR;vrkRv*=caoa|q;c@<|mSN2+SMiw;a zuC}=!!M{=8d#ADpS8wCTh({VH#AtWjqa``xwkUN>d_jW^x!hPIscTUO+chLjs{+8+ zRw*NuSS%+`$i8&IVa9g|yB|@wc9cYGUBjRZA-hAQ-lewg7B+ZHD=SMrgVg3BNs^K< z97?~;MM^r1Vp%=zEjk!0M6hBlHJB;u$o)}KuJJ%UxZP<@2~6WBZFy!{>yFPfCdOa! zrGn~ntfU?Ez*}4hjX1oGkvgz(uB(ZxdMpl-UE(Hy)N9NMZ|v%l(U`UP9~fekHn~tA z@OSC=S61M+bSueKX3f97WJX?CSoc4m>pN|J_8bsANV~%Yu=(f5AHGD6*b0oBWqgiC zh@!j(-8=6-u1W=-MADu6ZazvZ<_7*eGJhyn&6o%qsnAw!3m(?3-)k@fwEFxB z*0nhZ0w}3_{G0kigB?rnUwk4R(9DRZkA-)u{>j$@pwO|AIlv(>D>2 z*#8(7QCz`5>Ffb$kHbbAl8y6b1o6 z{;yteXD6N)@skhtUYh}Tw~@Z6EF1TyTr>;R>DZAlUQ42YdK6lxtnXM{ zz7NGs9Sc$S0v!|S=2Z=V;lS3by*PlE9b?||!yq_)1j*!4c6S27b~879pSk(|n)yc+ zEEiBh53f+nv|2PqI>8HFCmP~^TJQo6B@jYUCg#+L$LQ1Tc$rlKW$b%?_MySkA)JnW zB0h(>+C|46-)!g-QcX7Bv1&RMqOj;W1zS$RG<(Ypg;!q9hC|VBawhkmzTZ6iwlS*l zH-UwVP!UGO6Q?{NS}`vrKr`ZKX)$^yP%x0kVQ9_*j?|08q`0i|8DPYU3wQno_$1IC zOQ`IXW0OOpSDw@eDIxSy!B)vAI@I~(4VeaAGAVMIwxvV*jo8I@VLBi?_L3eb`5F{L zXev;gqxR9vcm4+o2I7e;>~Y(FGvvlaWVS-Dy6G<;E~s+G;y!qO*R5Ry4Z3{l;^6N< zfv)tqUD?BPjUMHnj%Qr0Lv-hGs<(^pO|~4`_GkoJ`&*Xaw?nROJWlvEbj?SOCLjf&Ce`QSmM#! zYSn}~+{{FDwl@n(tYfdTp8KJmDD0%Ga}{-hskMc_z{YxJjM9%LpD?+5CqEH1zCM0~ z@H#&y(>`Q*Jz6VZxFGedq^K0PKlgK<#so!tLL<6us%FJ_J7f?LQ81FEu;zwHEjSwis!+T;u!NaD)#;w8a_KxCXFidRii+_Cnd9jkCB<|H{`_J6e+3~ zYn7@(bQb2lk+bJvi24&LL~A3_W=9&fhSJc6qfT&e3_6!*N!K_rA!|T=iUp|~P%kdX z`!ybbkZ7e)8PHq}CE~ByQCSA{v(S)~(rAU?(^_ALt3EmE_cc}>_z zmY}%OX8F`c=x6*2j%t*npMpQH6;xVrOR9~^#n0*GIBUq1yrb57s2JI~D-+x82T1qV z+@0#pV@SbCC_L|3DoICI#X*GQ(K8~8k!wdpu!O1u!>0QZm?vjQm|RvW~mQ*{f}s>`QEE65NJ-gWH(K@m4y{P% zM68Rw6%7oCfWT&~S1-_<=-E_Y3K5WKl}k%j=W z62oJcX)d~ehEV#S#+R73b=(H=T(wqfRw;KMNgq5ZI)p*1Q5)qgtRsi|&@$IcK#A{q`@c zC@?*3Y|JeFE_D;@+v)x1+@%W>^V#VyWMl>W8i5OD@NO`J?zaB)DQZ@`(@F*(+lrb= zh3ze1w12#D7W1D?y7_lmTd&8S(GH-OCe2+Q28oOIE@2r~pe^7t%>N(anFC z!RONV(y$@PXLil!@B5O+R>^Pu=Fh)>SZ>e-?<|I1m3BYDrSAVKzP-ok`dcCSg46X+ z;_R_P^!urBOXwqGelN#~xFR0lQaEirud100Fy&@QCw5Q&w7r(484M9^XKmvmT^4`; z_b;n&lcsW(XeEp5gZYx9oRn!lfL*KBsx6HvSOBUq1Xy`{%#8-xAoi##Zhwo__U^z91+UHb_( zz~v+z+$zZX)Wh}n-hbV!+|<_*88G>>wvBjqB*?7`6TtiacT4c)9szRC#Du%p%`x9s@j=A!jVPZ#?4E@7DP4avG+Dh~ zJ;*PkzQ_47Y+>N~#`aH!%-3lX(Kjox;|5I&##iH4+F5i!-9rYgaC_F3<{SpUKFZu| zJ~zW4Z;w}u^i}mD+Dx`+@6XC)={eM+Z}5#CB_aqDn&J-c$m$z*f$@4K|hhILGnbKp%-xI6M9wB8V#O~+z)?G{$JCT?oNX{;S zMpovjEJsrerXn8ZYnR9fh%+f6=+G;}n+$5K!Y+?xi;z&XZ2FmO-VA-D)l*$tTFRW< zk431^+7a8Q`@8R6C+#0&qlDRkg48Qk8n}t`NSIM`BmSt$$ghZXGWAO_nUR6^R_u;S z>`;erBCEe&v4}y~DoO$0-m3|^PNf1xviZ@KR8^Qj4yRqzNVNA;A85sW4t9W36G8v0 z1sK*bF=*y7YbP-`JIeB27~){G?%nALkNiMDmp#6R_}s%|^o0wpux%8q(7{E{-d9V$ zUpIkp=-cmt67g`)FGW8#e)gJHaB8#?H)sH4`*T0Z^K*AY4bKlV_FcXDn>b?o#4rF9bJ81lGvG~(Bew(qp;Ye52N?G7|GHG#j;1zMf9V+j(#i>;)K za^Ez5>Tyfg!9Mb=addmj3?h%=Kbnfe8ae;O=b-(B!$KiEX1c?2jT&O6vrxciP#uej z3@4c%+A=nT%40VevaqO#p%j(rqGU1^ddSaf2gvH;)e$W&Zo|5-;L8J)GfrF&cLA`VXx<;zPdg?>zD6mWm80JCb0Vd0^+ zS6BT#CtN}4pFbdiGkRelibv9Eky+as6ZSjuOSUs_(zhVp|{7V|dtz|z(Qq-kCtWA?C$N_PSB4dXu$~Kl_SAvwnF@I5_ zr?G@razVmuWLotxIc&KCL}I6e*dDu-bZY9{LMsDG93^A_%v)8puW;n|Bm%kRE4c}` zUZE$T$;TlGDi(HTd${wGIx##K@)NBPA?(@5-9|>|!u{a@)G``ztQnC5MRs@d$ob3pNA|FH`n&7mDV*NUe>=W^ z2ja(%iJ8Uu`b$BCB{VvAh?v=K3e5x!NR31D06-dehqmptNrimCroxxQwc^Q3UMQa! zJ>g&PJP_H82SzYdQCJ<-qhijV)>@sl$b=7DRk>ysJlhl`55lDsWj9q2jxBnS_{w_)-sc3Cx}^E&Qpj3pQ<^H(w0D?)OtI44~Mlb?_(s ziWlo)H#OwlLP$nXV=6ehiG;u!F85!!o%teOlj}Tg96s7$FDVHoI7_I!%@S;o*e!bK z_7v}s7ZD#utT3nerRB{QsJb$frA1Tt^9Z+8)GSl~Y zEX1X9PVhszo4Z2SuaXf{x+?kP(@ghM9jnxpn8m+{8mWN8Ld}2`^0&KA79JOhZjWCL zUYh^OKL3U<)ZdyS-%Oz8tCaw>VxCi(r)rO1f=Dy-)fUp}a;2W+54}{K?>bJv-fL&v z^LBmhO?Xc>@6dyjm*vNy1T<|oZzg!ch`!NEt?%N6ooBys>)!2p^cvpdMaV?%X71M4 z^9u7d7Z;@VfysA1`WLk2Lh47ejcw^A#P{jEp$BIB_8$m*IxYh3N?{{!F3Nd_YcyxQ zyI<@ssyLljpH^1x?+3&G_?+YiU$x}5JrH9M&}NPMwY2aqLhKu8s;~SlLM@1S|4$~V zWhatDIRJtW+Y01q2!BFsIN`9oyu7<$o{9MIf%UevBLAts#+S~o+Hm}sLYpltSuxw4 zFd6m32;_N>Zs~Z;EE4*vv3rtlTw*c6;Iy{G2w$ z+jT^n0_7&(=!F8b;X|oV)Dy20b7=rLhDa)FBhY;iassaeccN4kFp;^z96V7r^&2fm^ z-V>(jXs}~JaU*eLDMB40OaOo=*ipMSF7|le*Y8$)}fkJtCX3_KB zBcC#l3M}=VbHXjMgfVti!B_8n8X56QBP;PG#Bc4%*anqt=`elevL$L4R&JiA2&%{B zoX{fpoXZ>L+Pv4sT3=zY0FW_WACL$ze{JOVVzYK?v?s2GBGK&Wa$%5@SHa6N% znwNJ~Gw|soKu|gMa6YGhG@x+-4tOo{7`Z)ptRo`oRy@yz_H`{HDzKwL5I2O-2V6|* zfW1zP@d&e|THzo>c0hlN(Dp+>vLk@EutJ!Ox=DDL9#8q0RRKVy96)-_Z-&IiK^+N* zLxjX9*ZxQ^5Mlu{iArcQ)8)Yq&11F3r({F{r9k3BmhavKQ1+Br4z~SVo$@jJ5b)Sr z+&(_svHFgVpx;~3JAiK9fZrm07+bVbltbhNYaU|nT-cEs#`Z5D@1$^3t4&OD^wX^l zQanDtk*$n1TJ(66cPTp%$5$r)BE5dz_BoX3E>+2uh-%8N7t|(N*{1@#% zK4)lgj-{n7Wkdeq1Lb_z_l?vg6fF$j0PCw2F=3cGslyskS)T?0Hi@`MX!43Oi^3*n z0NlUnWn3zsR0#*>YEJ9QP#mna6m*N*dIuBNI!7`qMl*lN=++-Qnd^1d-?o#HGg!1) zlgyW9ZIPgOlWK~n#366sgH2izrtPxkzB+00qBkD=^K*T$b4gu|i(zRx+_4mXgNaAy zz*9yo5Lj%EtS-QTY-ayAx+k@CL}2t?;nDiU$+n@oAh|$yX-FHPT-iJO3_%bUwb^Ra zj`cX+pbQBf2Y6f^1%vU&SI;=<+|h(GcCTp%v?C6USgaK7-YN#GA`)j&r7PyCH>M9{ z**6Y7TNpn3)f=VpghbjijlSoz23QPau1W^y6X_GtJ1IxCs zgKb)j7{L)T)*|?TbeSbnr70xf9Ix@ehHH7C>8+*>^1{by>|Wnv2Z1fk*1($ucjdRg zZfmyv>H-6q$;YZl{5RM1sT*cmnb@qMnA5|+gHM0T29O@?GEaNGUF8m#43uUhD|?HT zZ>WmQOqfpq-5og8$(mZ~ie=kq6v7>3Ht5i3Wo)wSL*f#)=sY9DgrYz0pZAGF*IonW zHIiuReBe6tZ!1J%C1o94qX2_|#@Q`6k(E5JYW%=tV~l|sV9M3dq4E|G4k{2})S3>d zaC(SiUGOPqfF@uVFaCiX8T~~h9LHukvsa(9u*21aU=USpF)OE?jz*N_VzG5(aKGcf z!}y{7-DW2ovajP&wbtuJbx3$C=~Y~^3Y?1`s!b(?#urJqdU3r!uP;&4jWYnyaB6j~ zsb7>_NAOeJ#D89{yZrU&yy_5t$?saIpH#WcM2AzAw~QZX<7BDzzyL`xu=ju0?q_Wn z3Puew)c6Bu#;N)JyP%^-TUVQlp1Q~n)z233&?Yqtb1sAc5>fDWC~Y|AUcYAnT$*H9 z1^}NEIX7>+LtYr^LQuS)8l>*?x}Pf+&7IhUlLN<6yKXSTu&==n#^9Yi_pt4bjq{SB zx2MCCFQ02d=f1kPo~9(fNQK@ym_Lnd-sXp$W8CPRGV?BN0 z2)X?KvGfy_6EWB(9ybGbh2w8^#adGYr&lF?p8Kc&sQ(XdZyR(|UZLscMr*pcw6?x{ zy5GR*asIeGi-AweW4E;SHWSiSn$_|DvG`d!5Ec45hIfR9i@r?@Rul*+#*%}7rg`!X zGndVoh#hs`z{18x&qVV|ZOGk*imvmYUmG3$S6|b+&?awuZe9~{lT4bBOI=|1NJM{i z6~5$%u@eEQ0bjLXVhAn2x-rK?UgpysZYIkUCp2g{x1<%Vf4V%U!f|9lwPgL$fbR+9 zb}K}7H`+PI5n{sssMXR^AR$Wl`tJfj}}(XjDs(#wDw!(F2*CPkQHJ^!hi^8==F=h9}OtHqykt$Bnt)C$0_xi+P@VXI=$MgfB z*A#c5XxO&Cxr=8E(WZbnmfMi$_zZ3jOG-FmU`@V64hz8BaMXUVXL3x~l<)$8wWUzEp7A89u=Hf_M%`akP%*g5ER(Zlm z4=6szHx@{v39_OhLTnB$aCt2n83oDi@3kuBxqB-Yg!M`Hd5A4@Ln!YC*1;23c51-x zOA%wm26l3-Vl0BFRFS4UbRkQt7zq-FYb&kFcl&ZPXfxVaeEhNr0E3Z#1xQ^!6`a&` zQ7u5w0bt!E>IOn%LwGMid8<%-s`>IDnN5-w`X`8$0wQf#cEaevR9?Ub82gPM7llE6 zffa**M%?EwJ@AWS?&N-4*-=TZA)uT@cBJhq%*aqVe3&>6^d>j%CxV{}T$51U|Mz*m zawU*M9D@hl-;)MuDwJHai4`=`1$ilDrJyhOX{M0NZ_p+NsThfUoNwR~6ULARs8n%% zhI~ppHJ6Orr=M;yU4cATc@5mK zKPHqyi!3h=J^+yt>v7vhiedEJO(fj&#p_ICufCHxE_zZK;>KrvZ6nGl18a9K zjPwFI(s?M_FsEbt1B)~S?at@omA*Bge*4iXqq|F+gA7%2ED{)Pp?*?a`p#pVz~9aD z`qy(fCO8(r5Uq>`@B3K^0M4^5dMC0-YzPc!;XPQd)18UO4@KlBNA;wD=GiPbtiP%< zbsU@Gg+sbm41;fb6{B-vZ@q)prR4~KJkhz4%m9uVEOsZhh}guSEeEr&{Ka%hAQTa( zJ@=rDP>bz?+}?shg1oBeH-<|2Z|9&yo{l|S@MD}zoc_2Ri;2EzlPZXWzN&N~r!Bp_ zOO$tlH(waJedIkz%wzd&qF50P8Fw9{BrvPRbOxQmHP?bF zL5QUD+sE1gBqSni0Ea`#83w?%`iU=7wPlFezWUkUFhy#rr&p&u6B#7xd>26)m?rG) zIv4c4%+9gNQhO2KCFApTK;SD%b!)d8&cr~=*OGWyMk2|n=UjpsJ9Sbr{j@=p^gG`^ zu~~gUzHdD_`@okvB)h=k@kmfIxU_&Q@}?TgEl$vh>;P5 ziQaBXT8YUg0V(Qx#`@xbO?GGrI1VEEr+p32F4IWY)M(W)Fqc;7R_Z>p`~+77LOc?H zzMlE8-QQlyLOswbQS@$EW8*r*H5kF9$Fo}xe#YF>TYE6vp1%AQdugRb%nJe~yVDkS z@6ea;lXs1(JO8LBKf=Gak5DWnGuBo?u78t{GVLRthm9h==!+2Ut=kH4Gw**#3B$l| z`S1GiLZN!P0IU9Psl3Z+|;WIc&PK!%phJF%EzpXY(tQAS0clBWfJ#g$GjL-LIsxN5muemXY=eVYU@H zq-pw~$NSvu-+fWTW8T{RC(y(s1AqwZGWUI4%j!6Nh*L~9>pb%ucY1#}M8#hox(uY}M7@tYh1J`h|5X0_Z(m>KNNGW3O-+Ig3{J9_LRtWYVb=gC zq;bbZ3}{;#Pfgk~EYKI2g0O^CyImM^2iB)<4^X*KE$z71M%h(w-a$XXvwv>11|uCh zDyea&u<^74x{kkHNHmeXnxz$Oqkc7R;b^|(;|Be7?MGyUM`MyAy-f4A7N0>jg^8!C z&T!b1ceTau$26YP$K*G~fT^7_BJvQ*obEa9AgN}?`Wq5YAKBb9B8eIzdYgrG`vzmq z?KgckQomXkU#V-w;rG3Cc8~=!_asM0p7Xk5AYoI<4Di?g*t9ZZc+EbX)Cv74j2*C0A@}8B#hYDm_&igmwtHv9Ut5x9rl~+{J$x z$;Ua(1cdVt196&C-wPE2k2WI-dDDS4(qrs;PzWbq@@xdxKuLgFxR7#tTa5%WsNqg+ zoraQII+K!ScxR-Kk5GH$+i1+Gi@Q6gR(WiM$VTD2v_60^4>I--+PW81BGq(lEhKH5 zZmqwKmG?VkmC)ap!}Z8*GAp+nTm&K{6nf`>pvcD`3-9tp+OPp?EW~`bIkAu`c~pqX zFE7&)*XBCUzrPrOJaUxxh^p=d92Yh-c;CKngaQ)yX;DW-v-C>}nw&dgG~H_$X_dZb zmK7I0EJpru5hbETuMyup-vuoa|F1k!Va|BM2LuEW9_r7s=>v>81lCM{w-%g0O>K7pZg63o)j|?9aTpO z+dqP3iy_#cyw{=D?aj>%4Gm3AdhdqKG*XB8a6_aHh*G_g|Dt9v?AYXLGlAV4nI}|D zpwp2u6l|QJvIzMJvx9)z{nlYI)}liQ|Cq1811m#yRTVs!B~_VnBv^zqyG2_Edj-4) zDZkDBtOM$;K9VK^mN%17ze!c_rVe`dHiCjv9s0Yj05!?-oCLsxY7rrgcIUBEvFiIX zz1>5rP`e!a6@>=7n+$5K9a~ejA3k8t7}3q@CXhcF(^U#%wWmJXwu8Bh64uH&NWr@G*YAsZ^%*Fmps5nKd?U7WK1#%jOm@3%Mdav3`*!l zp%&}N*$;pQZ)$C`)A{B0B9e1DwYbZjc?MP+sMns5r z$t-!V(lPYj@{2bF<}j%I#3 z-G#GQ-`xkXmA>B08V1XaQK0;^Go&GRS$ERpDK2hj8I%R1x_J2p2+O>c#%sp=INTDf zM(tk`_I|?YRT4E4Dw6KGsvZ7nc8@jH_d3^;&)Ygky{JQcLi(Ij%!!a{Q(w3$cng~! z)Z5#SGtDTD*NZFg4_BnEEspJHNKa31F_E2k%t#Z6D8(`%aKCMNb!S>a3$cxOA_+tH z6!gtNJ&hnMnsux;sm2+>n`zAh%nq>odw7Fn+WI0 zHsPRCT(FxE;K(gSf1nv%OdJ??J~ahlTj1F?hCP{8!O!3Vi;xbU{amn1!ZJsLqpY!A zP4QKg>L$-y_5Pwci2M-y{_MLm_qlW;X6#O(u+`!KNB$gJAcWoMje&KU58o7+&PILT zv!3^vL7g~LeUlBi%vhWmRa-&t)wq@+`gGF@Qj}r@0a*)S$H2j-S3+|j%%E#p5`x$W z6x3f%m2yG}Sr1(xGQ7DY=Z}2$;;0Tsvj_XrbO&6NjR2xFb3ur%MCx0WKr z-`A@K>0J_6#SU;cWPpF?Srq~JL^96nF&o3#=ceoCaeTv_?s4kq^Z_pEH~Jy;hP3-0 z<>k0EZYGk>Yh40Z>vLmiV{>t)w;9CQvL4v*d|sxw`FAlN7wO0<`TgZaB>0aNK^O^O zEp&A}|MTHGf!+4fIf_C4iugqwd>dinU<=4J6YmaLXy2{A=|t-~57H48^X(IK4;!M+ z2;FpjHKlVJylL`VN9d@H43PQi_4l)jy(c3DgzbUJb!gCu9PPOi!dcay=G#dw*0?Z{xRNWQM4~R>Xcj~h7>VK0NoTCpx$-~tmtK- zs`r%#`Nph`n(F*=!<*(?9l6I0o+kfN$>+{X$2pMleMFO&hV41&Fr4$j?Ftz@XWq>0 zzAnd^u}a+$dUKf*R34TKLYfepW*}7VPpOW?BmOx_vAWpYDmLI&%xe<4dq;I1^q~S1 zONdc!)+SKiX^??qd2hOv+=ha>=`6MCEHT*+6hz^bKpw?s>gnOx_JR2``akpcyl#iJ zP1@_%&ap~LK0=?$Tl%K8yPu18BW(Il+|N1_**t|Im{28o)P683{(zI-QXPJ!@F}5v z!yN88O+eF^Lj5UN5w_zFE?{H`RdZ5d@Lq;29OCnklX)V4QmwP4*kdpq#$AABS!0<{ z2O66rff56Uv=Xh0e5zj?AaRW%_NJ_4Y`v9_9Tz*Qans<#YiqT;)F`7>MR8 z&&T%@cVk(CEr{l;-O-Ga*`_}}pP@bxrC{(+(=0Su#Sw2W4l!l!F+ve_Yi4}rqQaBx zX^2#LdAdmhK~3ULLQJ5Ypr5HgZgk-ZJ=Lwd-p_>mlXir!Qn1M8^2Wx}8lt@(Hmc?4aAEAcsLnE*7~ABP60d~l zYk@&_1#-qm_|!^M!Aub#QUDvXIw4p@vbMCb+G3d4e#sKd47HRFG+2#Kl+mI9j{iDn z98K)dLf0gUs^+4o)Guw1Q$+QnWm`|=lPxjMiWam3k&yAEMaK~-obpuwA|2wBfN_-c z^j{rQS879P!#57dnZuFaw>P7W?EQP^vTrDOrLb}xtAUwjT13vGZNaBv^^Kj%y~H@8 zbVLtM$9TeJU|-ELXT{%x*%!I{L8O?Dh-rLq?y=xWs9yU!4Xtt}NqXQrIx+`ug@kQg zrwP54F^cwMi%Srqf-h%B9tK9GdZ6GhZt*AltA&b zU?6U|sLjV%C?`HL-@sC@EMQsfJeoIT$~EGsvZYDObog`PrIQ*?L(^AA zwHYm42X}WX5L}8oh2riIT!Xs?cPIpRcQ0PNSb<{2-L<$=th7+z%f0V+XRVxH`SGlr zCu?T*?7e45_L}$$Zl>MGXWqMC#%trb?wscvaO5}&Z-x~03 z>-1zQKCGs*_dP!0^&F_8)5$_mEkrdU(_v4>KTMBdKCVlrb*EzH7lrEA=KPK9p^ zh|D00NtQtrM%d%RY)jvSu-NLB@Xp8-c@Vpj`qy{~t}z<+&#`Vi_;=ETj~jC2CgJqq zkI8hpE1)K$DllA4BFoFWp8x&&R4q;PrAc~TNFzgO-vrTuqm73bFV(z0Ug(GbQDO@J zV^>LKHZwUd<82Kf{8SnPW{1H=G82q#uI`{LdG!B#sKDj)`5DHvhcPd@iaJ;7HtV~7 zZUFP(hx;FThna%^ex~)EK5Gg3&9A&&yFMorx%Nqw&%9J#BMe#Co-cRw{tT=68N^O& z@BM2w#nYBVffm;Ly<8mk?51@YDzz)tQb;~$vSo4Re|VU6R1@brG@fW~dXXNVqWj-HQ^Ef#eYzVsb1nmAtWrld}^X;)-^!R%F>)Ft8@WSKH%~fCKu)$k-<8uR_ z2|}pR>n+Yl5Ya}j+tJA&HRRr6Mf=M4eM*UaSj z94;}p`Xb*ChyLOYTcfvF_(?SbAdw*etI!+rR2Uadt$1?0x9BSnL&a^(0rh`~10zO} zzD2AG$ULe$&-8HPqUkGj+^D(_;wBJ(kowiJ+{+6;^Ib?UEV5m%tdYDJ{9)cZ*wH)y zi{`=^?Ju-XHnQ_pK@P2$6SLpnMA3eZ*59^*@Xz_si3!PXf$gbo>pFYU-S?;HSbAJW z2&x?`&3e^&ywKo)NTr<&~ZQQh}hGt-vAyNAs(^?fEFO7 zpunP8xp)WzJ3Z7Ut$loKZEZW2=OKO~IibI1ap1#cc8iP4eumA*Gk+oDkf2ewhz#gX z!?nB}S%FdQ&zKE-ZEcVDK4Fkd7wvR;RA5S)Ag#0htssscDp8fh-S`eTxRLOCHA4v4U95~KWZA({v!2BM+B0X7w^ISQm zUOEoCYo|B43A+`OJFnPcEu$JFB6pSg47QbV>3Y$YwTuZPQPJ*6xf%r)*b<)cP#t}T z!~E_+`NVf0-S>W^Segj3WWfC5>MNGNQ7aKC#iT!RM|~(GiC^M%DqC*S+>NU#Eb%ifp5>?7Sb(aYcJt{7P;&MZ!LMfih};*fLsv*3&CsS)6I8H0PS|7MTtkkX__% zugdcB_sx7)`?GMW1YZhd@Ro-B0o2r%V(T6b%QZ3&fHnGrIW`<5N9+NQAMq$##hOWJ z%SLx9bRnUIl#@Zns3m!gq0`a$0#;Z9bF$Qa#lXWg)CK=Z4 zB2TFm_j}O5eB}G-Y4cBC-zPV=$lx&-AEP4RViv}5YFkiRhD^X0AQNLv9u-1jUnmMT zSlz4L7GGzivgw_zY^dAdPZmk-zPt@H<l@#hfo@xs5W$;NTVoWI?k-fXX@_TP8c-1WEp-ag)b-mdlMpQ+KZ zf0rDIh{~-`49|^-n$2xaA%(fB*s^igKUY0 z39pK(3er-nC{g0?^KablzTWnnHm!Zrcf9nx3Q(8gSN`(xVm|1x(4t7Ju6NpW=arb@ zTvAs!pRuJ~bXmnB!3R-J-#$Ra@S~I!C1k7KQWoI7O;qx0o9SK7Z;}=N0vW!&DFu8_ zJ{()GlPX%vLF{5s@SSy?W-+MG`J>^R+I|knKN79MN}$0pFs&nfd-t$yCSQ&(4}Mzs zy2nTS4^6&(KreWiJ!OnU@l}=8iChmm&x{1HWYqB!wn5TSA%}Hhe2nq@8J|~KS9O2L zB2KbW{m_Z^7)j6?QBDoMzmC$cv$AJK;buUk?Q89>#(Z(OPW)U*+YB#nIELv5=j(Z+ zR>RaeImeC`LoU7%;WL}}TvQqXMa$tvL~9X_=q|OHBQt3(XF;gnm}AvC7AVdWIP*{o zu(`RLvKW7t#UVgLC4Pjio_c4ht2LN(doNTzoUb$%l2Xg}chy742R+hEev#)j zH9$PzIK^7?;RI9Wd$ulI)ZfZJ9Wf28$V zuG`r@O+@H#I;9@4vWmm=x8zxQF5PE`8wXPc1+D}YJ<|cco;g$dzKXt;TzefpZy(f9 zh~J-6aD>nT0v~J90f1$TPlZ(Sk(`d&A-waYC7 zwkWnA5`EsvE|1MpBh}!{hsXI{eeY)A0h)nMj}hvSQ4^dk48R1F-nYZcYtGopmWu8o zu5piF35~(XfaSWaU&?RyZ{O~3Nqi?Zwl9Bkd^@P==-Gc!hg@~<+$D85_c6cx?O|&S z+7SJS3PAaNE!>7!S1QP%jM#AUHC^|0@#kOHx4#&!fi3k?{WZ=cTlclp5Za-do@36C zkG%-o3qHZmJAhwN6Ahg=A_i=g&oNiDrP%XxG30UZ1awZ#hatU8wzM zy|;?UpRanc0I+WcjiJ2y?3`9yFVxSF8V0?JU5bYc!@%`nv)8um)#?=+$1=fhJs(Ab z3|;?o3$S~jgiq88wQ98K*tqnH+(3}g0f7uMo1d8e7K;?9b!=c+DXI_;8P2B$((QAP z=NWwY5Z5LCqn>7BAtPJ9<$0{g{w2-X5yDo2UyeY$-AW_@Fq(19O3NuagDa|xykz@$ zcr$6g5LhF}(&NdYr2^-_cv+WA!~_y{bSUqt@8U63F$N=jL%XX2MCy_n@@;uH37$XQ z?s(6B7q;@Q&Xi*_AF!2)3#o9!h;JxtXM;0*-@VHkSHxvfV-h{wA8zWqaX5ZojvcE);$V^dkiCOvv zY$JySD53hJ&8(VhM5eH1h}#CnlE_i|I?>ymKtuo(JIw13f@ge_g{b`>v;xOlR`eL9 zGb8Zv?HBuE1_9$(KYCqCW`26DfDLM({x)UX{CZoti4a(&hKV?vS2Lj^9!DQHJ7(-V zyNV9Mr`>?w!fVL6NG51_65lU|8#{Us284+m!|EnH6N5}yO)fWn_VX^a3ld}rM8%b; z)KsalPr`pRnN${F)~lpBPO7Db1gTF z1`i#4%&rwi#+u+}@^DFXWrqF9<;VFVe8jeHUbogC`U{T)A4_V+UpMpbwmpPI@-S1e zoE)mA9KLY*)JE8OX^&v|UE^Au{Ya7T&AV=-#*Vh@a+wxJPE;Z_k39K+Ooqo_7LhKX zq|n$;IrRk&NDpG`uHqKso8BtyCSWlTvDz?7&VfSXO5IM*x@w+02Lh75X?v9mqB4Oz zz~f&$rXgLhH{NKeLSI3~T%wu$e!EIzKfJS+g@-;>$+AK76RXULGA13@=#l2aVk#+? z9EuW&MV?c6g4LcQ`anPCK=&?!NLACu=Z@qxVL5ojl9MF}5@tau-Kn)T{H>aQv$zUd z8W(W3h`BP^g0j2Fn=e&3XMzmOmzF^&S`73RfjAvYK zd;9*wHt`%aM8Qji&s66bg|=2ghIzYZTJTZjdhn#@U1jlw)- zvnhBu2?rSd(XT`XlL>6D?a!DRhfBh0OdKL!WzwDJ(qZ}m0bAhI%L$S8#i zxVK?V7Zt#?%_}s#)65;X$A~`ZxxLjMc(84wv=c5{d&SWvXglZTx6ef(kBxzmi1EtV zN|#j5k%k)*M1Gggw6gX!{SweV*Wme{^h7oFMwfk_kePz3)35rq&``4TAe2UE5Jn2%Gvds3-5Vp{9FN#g2oX9#r(UlWI59TT3 z0_tpna|n2EPtHq4G@aJ%3`@p;gFSZ-jmD0zq$OY)9?Npl9Q{lqN}z&+HZT)2UZg!I zIRf^|QU_}K+8i4rJvCEPrEtQRBFyZ42_qBpYeA)5j5F?@8*AFq zTHhjPBEN*MK3(#hdt5_mAw8RwC**Lgb%!dRHceaHaZEIaV8b1x1XdwTf=ob7av;H# zb6Sz1)+vh^66_{{P>KE+->JzHla7@I15(rhZg<%wb0G<@0yW#8pLlo--KJgp4r04l zsRK@48E}M-|0#F%-pG4zstWU}$&H+jjxXhjZgG2U3tt-pLQ7AaxBWXW`WRxPaX#c$ z{_$8XDqQaXFO9gkg7<~9mO+X-0cL-S7dO^&q&-{Yr`HGbZH)hn3!43Y@=2;U7H#)% zK1mqMf@RF*IMavBfyu>xizRE)>cM}_UjBu*e0#nzE7}aa66X99L(==0RrEG(mc4cd zy&I18oF>todMSEKL;3cr%JxYyk^1h=Q}FG<*6iYt&BhLB6x#~G9%Uxl49DCz11e#m{;YYn{d4Dr8M)z(t^ z_8@5X^{S%Lu-9gABINek_&JpVhiVfAlTEjQL!hWpv(GGxMPUN z!jW^|uedkh^25bu{9`Z}jE{HT^>kkp;&fwR_Iz7q>iyyv@>lP5@aN$3apF{+ahtct zFl%-G$3K5uN4i9Efc4_n^I3tvihP*#elzMpvKsG4gu8!@2%7lr=Z$w-M&!^%oYEx) z-o-us8@?`>OaSbr7=7dF{JZ&|(rG1VcW@N@;#5sV%|)C95c>B&tHE-E|NTsf=zFN> ze!cH#2wr*f+E(vzd7dy0y1$9G1U0M%x^REP1pM9!Io^5A3RyA@>$*aq-u4}i8`W(f zGwK}4vHtp6^e->#ZRX9NE9mP-$VtqG>$ex2*9Gm2%Wr*8`*E)R8_fyF#=oPAzMX(v zbJiY7xsn>!a7B7|LPq)BJT8Nc^*4{tYYbbwr8@)#0-TYdI8A3)E2XCYr4_ELln~n#W1-iOm{%?-?zSj&na2ePg!YI8b1= z!*fT^M5k+eb1riE`NO-;HKx{`ZN{X<|22NAY;MV4Kd>9gJ?oypev_EwqdmcwR@ueO zQn|fMdwuEeDrIgVlLf{0_KhonsbM%n`}$ekedid{@3hr- zG^{Y%t{01ODln#bdwc##3p-Qcj~z2IAoApBwn@{K D_MCCnVW8%RzC(^ zq3;GrdDx3OzX%bd#5^N~_>cX26cXeeB#q|6Kp;sM*D0KE)r0}v{y6rPkD6lB6J3q0;+ z3%5;`;N{}NQ`FI_HO_;kq=fdkxoCai0J*ZgO9M|l4SZ8Knw0Mjv#dgcV^}Eq@b$~A zRjmksOI8g>o_$YZ+YgicR*R9c>67CHoL9Nhj=6-}_82yV>o4D0U}J~6WGkakwY@MO z2R;csQ%16&=>1fvoor|SMTWOQN>y^hCQm8x%~DPMnbLu`@#qpnl?b8OC)mS7R+F&B zv&GZXvsyXe8YN<&tebl6Zit{jjn-1wSDjWt_4{XBn()m!kd%dX&OqvkZ}+pojOW<2 z0fTT1o8pI-g5yZ2tT`G$HbKR|46}e#(yBsXA<#Zi1Ln=;ji(Au`!i0?I}hJ-uSP*M z6}iXfjDErxvNVJHgk92PD7%K4Z%Lb3!WO&R+j#Ep@XE|~s3X0P;orKZ+0I<=WCO0y)lAcfGqv1aMD(b^P?U7m?Tz?CfzP=Eg6fq_(s^+KRE+E9GuK`DrNYoo-HNfoFLE+9WdQ&d2j z*B@WDe{ib@{X}m`l{0#$w13fFKussx|3icSZeX%z331XiK9qSUxk5Anl8U6fh?=m( zR4vbi9`5}SH>y{>P)H9en)a{uo_9rJ3Ub6$1Ivctz7R{a^fS)H!Ab9=DovpgzCO_w z&x7X|3omo!Jf?)`x$88TIKkhsvT}Eor-j{1-xHXj7pas%v=Zlh!tWGir6S9raFRD> z=GFh^k z_UVWeqo=JG$?)C!D?ZH+V2zS*JQVqxXfrI2rHjkSNS*TDIWSHeC+Z?7?uXt7ogPRb zdVL;qh{+%aY03Af*M2T@=1jc^u#-$%DCw;reuC*7) zbI^PfPz5=}Utmp>;}tyGkjaf$}x_Y*T!?F^d42xRzos;#A()I zU1AVBqSX(Z`Z7VMRuBFC2E%J#z&5lZ3Gvb!59U-X5L4t-`bvkTIpI#qVFm7RkX{wD zmD2n3Sk*j}GcIR>_~uJ1uc40I?6eXD2{8JuNP$cF>h)u74Qnhsm3LrOqPu>kd+<9o z-F)D_Jn^}JYxk3NBRPc`G5~rthjMM=)-QZ)5;!$smH;I&4xW1KdwF;X@GknKWn=YE zsAPfa+KXhIM3_3CA*O`{eYoiq0VLcPIQ-<|3M8ZgRK#GSc#c-$U?15|D^$;5>pBU$ zzErHR-yncphtIZSm(q;dIbXRmBRJnCa72q&@H>`3g>e>$w{5W-abd>mVyz}Sd_Wkms$=`qHA_dzvwHwuRC?s9I zqc}FN5j!sl0oR?EBYE3BhxvCwsBF4*nMF29s&Bi`9UOkkbJfy)H`n6#?R}4TS;pQ| zx%?CdBBED)=L;dPJJ=UHo~g2D_4>W1<0PDcZ#-U%nLdn}>MkNa{xdE{iDGC%k9uzx zwhb?xW}Sa3JLWM$HKFvuO1F@`b_Vjp-yi?|2&38wc@+%~9z5hUhBTmuPQBag z-j6H#`W*5PJAn~u>@x>)4~2Bf$P4fPLWF{^M;pr#vzLd+gi>&cLku3gtPN zK;6+KfF#gPAYFMkER1=Cx%N(i&m$JJ9uDB58z(mI)oV4+h^(^42zcTlGAN{Bc_<%E zrIGP(QH2z(vNRJGfQeX+6&$9J9`c*h*bQngzsb}`>2Dfo)uvbvJIvGQqg^VPfaUKo zfN{Uq?D$mAn2&p9+2kFN%UxphkyHPb-($FZ)i)2jBg9eWw|SWL$|AgB*dr}NcDqPn z0JEK60BaU>jB7pQ<)Wib^6$Q_Tyhw-*KM4Skk&SnV@9`(CSpx!rK!WAw#fXzAYO|q zWo8^19c3EneT*3Rwc2C}GEj146ibcDu>1!QfJZOJkDw>6L~1dQ_uOWq2>n!{xx!5b zXH%lBP|9J2JQtSMuHnKAj!yy09QRVU z9Dun1Jwn;4g-b#z#Q5d{W1chFdWI@?ge(r=OMDwO0jq^IJt*fwyW?9GmV*}MxIHc# zFva)smy^4~`LB8E15NrFwX-H!yybeMKJUwQ3xjtbe1DzHmBFlZcVjv!u~8yu0jPH~ zexouVkY+iqlqMp8CU#r{m(FRKaoD4kC-1XaGcDFbs=^on>Ta*kHaEq~_f#5#h!ZYb z8x}MXOmV0?l(0<4SE~|EMmfXoNgtOk=8F}oB!0<=J_V?jn}>&)R3CPqx&yf?Kb(0K zxIeuu2?2RmAXId;rSy50QC$t?D`WfFYmSvNi(f2rmB^*GnZH^qOZsC2V9*nUhz=54 zx^Y=aTJ8oHhfCR|p!p*lQfFy`;Rl7Rdtj$zm#;#>mUI}6a&pwDNis@HR&e-*Up*6{ zFx2=gSJDU_FNS%UAI_IL90%1H#P8`fjY3Tcj(0dLM=p5e#uw>uSgHZl>P7D+O{q|e zd%1nv@xhk}^S(@s8KX+*m6zzi4D2#yrxd6+G30~@`O}EYVrF32p>CqllMXG>3>{+3RX5S`ZkHI zd@TCNX9bD0E+V!PUafa<@4MfIw*wG-9F>R6(RNBw=HqS+5B9!)s0n9B-T5t0kYoEEkf2wyV zK}8Wmn~Gw(5zv{aJ1S6k6ho{qB&U%6`^P?eqSJ$6cZkmQvvADW{2#T+&*dTo8j;)* zjC)cLRhiX4Ay^&AdDvr0c=$}?CBDK({)!+$8+3L=mn`y2J^;<6f)ZAZN?H5k2rI#P z@8cw4%$Gxv5d{axlzvqTxbD-?0Jj6OXY7_|Z9|>AGZ(^1@h|b^l$>6lN#j}$a)s`% z?TA@z>Auzp-ua&`{ga>&lNG7yFYXQmdi!C5SlH$-vP?+lq#{#Im*=?r;!X5Q6Yb*a zES^QmL%(fi`CSd5P#S}tNr8#}UD)uDT63uSFQd|oVGP7;cPfJzjq314&epwE@B3m=j%sKE z%o{EZbY}QewI;S-&wwui7FlTv+}FH&FE(DMd3S`xSf2f-z>br1e%d)P{WV%Y+8eb5 zRW`n&-gONX zkfA0gLE>^fR!a=V2wPrd%O-6z#DKuIqW2`4&z*|)X9?L1+>PO;R%sqBM*k@o3FKnLywLOuysQRqp6koL-rj*OkGQ~n(M#C^k)x&S=y9U z*Hv0e@WTG6zwJ6Fr@#RKMx0;obF=!oUZ$?7KKlN7?Y6N^gzq1^B|0{F`gg|}5d0i^ z9dg`Ay_G{m!&Au1JRuHG*o0Vg^_8l@;dPYk=%6m>W% z;W%EMopa*nt2SMTd)ljUgQw2JzBp?={vm>WJ5-c2KnEz$Qh ztPbCQI|g!Gagi88cz&FGH`9_2>ABf?yNNpPb(<;JdD?4yr34V}Pv| z?d*TNzlRNatSQ>T{FFHlX%eQhZ zxa=rJ1zLrOH6Gti;tSRte;+3TB&u4xJm$4OId4oO!G7|hw01r^I=X$~Fblt~5C2?j zPsu!|a@zpERxOj@`#E2-J}M3*?Y!E)%^F=y8gNM26c!axV2>aIZc%*Rrib%@rD zbNFnl`e8;}>KNb5&`bNllDnECOX1QB{PNST76XqT3}u{-UmdCJ*=tjn9K4t2SgWu(|1G zVW>iFY6vKE*;DT@%}2pi^8cTL)&)oq;c6;pVl2p>4$4)+_ z<&1QqIlU;hl*>PpU_Dj_zi$50Oajr0vu&mno*|4W$@Eb|yUdg3r9F-Ew8u8A~5dkk?Dn-nPXUSE_w8h~HaJ_P5y%*b*x+$LHQX_foVhP%~@ z@k`KB4cG+dK|qVWavxrOj9lhOWDfa5zI96v$x&%sGQ`mz39lvIPp?yM~M@h|t*Q$Cm%*9x3b-WV8+9ziM7GP<&@;&DM`k zi9yXtPQ{PaAVx4`m55PmQxTJrUV`UBhej2&`ta{@Od{5l4%XjtP&Q6!DnlW;$Z6uHEHKwr8>S^olgbYqE6PNM9o47BE#b zv2bIAV{HhLa;{@Fyt+--q3OPi>mT|tAtn@}05T!M;nhDvyrVTPq!dTNtp#ENJaDDj z?HK1Fp<%KVb^KH{NFxj)Ad$&UeAS@OTUytpywJkg$V*LGmq}tYNhL>+vZXc6O>zDz zchWoD$Sx(;?mcX5#HDXez1Bh^z9=@KMO!w|qr2DaVts0dNuB=c~_- zLpiMpc`Tr_anu)cbY|yk#DNPrr!0*knVd++yzT~XEg$Yi1+~EHVQCNgNsFX$SZaaq`+E*br3OV7 zm?_ZOUV`~Ln4OJX0!+No7kPy0th$Mk{;i*pa~yOHA+duRvCeCV{kM3%r3Z5#b$nBwJr+O ziDhyZXeCr`VQp4ErN|Sx@chZ!=DipB1coVLMLJ{UDP>qipYp5y!oorGyt?F(!R3!q zqaP#hrRHcCrYmcTc%mvgKHH_ud9|)M(BhF;qaQ?FV5E9#jC}pT!Hp2J>{O-}J>B%B zNK22)b6f<&-VB~MfOVmwFbP}sLA*`efIV%xb6LHtxkIw10P3(tHp1R*d~k%v>`pl_ zqI6bL9d$X3LAokzMo5KQ2%Ip5LQ&NOSm26J?M^qKy(Hzjvn9C-dey9TyuM?pSCpuK z^Ay&_u`mN_mq~!adIHH@+NhF&miN%oC{iVkJRvyY^ibz?ovQ7x zotGdYRL0sQM(~83R$T#uQOYj!l7Tys9g9D+ip(sT)ZDtFJ04oiTKm(DG`93)H4uf2 zOu3j6n>euLC6%qi%;Rt&pC|wAXUR)^e0&RhsXq1{s+joXyUhS%Kl&;}8TV^~?xgc{ z(tTKGEw7&Lrn|CK$n;LQ$+HOU$i}vimUhzq%3nx;7vf|?t9~vVNjOpa)Dr#f19s+} zxs8Kc<+~5Mhd-mU)Ifnz?(jk4u&nl<#I^_)qAX3ZfIZNIf3l7Vu64mU@fRX{6Yg^7 ztf}xSIKxG>PVG`b3&)>&v*H-@VB>Rhr#-l?AK4tMPxc4P_VphMrdfEupIm-@Xg&Rb zgfl$;=Jo}Za%!w%EqyiDB??M~f}Mn7W_!+@aDo&X+(afLnFRC4 zT}skCRw6X5-m}urP3XBumOnjCu6Dfpu`ixfHH7Di>V8!J;d;7QHBEPk9+MA#cS(Vf zJBU8}FRv!RUGz-ujo#0~{W{$q+333ov94pZdcQA|zjSTC_m}dmLoSn{<)xgQGkwu1 z{4xkKc5iZjLhV}RZMF*qq8{&-<)LMsYWeZ4LK|9up%2Szt19u`VO zR}FH6X~#waL~Q4Jg?qeA=?g8s@KoNBLit>_Y)AFZwesIqhxbDqtg32vD2cOQa{2we zaLZi{(q(*w$rb6BhuG|0eUv(&n^tWajIjooMBH&Qkh+-FfNPoYNLdkR>O~qdoe_kt zA_bre#8=FyxiVv$1#euSNz6Ye65{IT#3f)x%q7Yx0J51eFvWdor4`B)KrQydiy%-Y z1ANr3_A9aGOU&mbU^u!{xOP*e1$*>hi6=*-RHVbA5-vegX`fV|P*kQGiF9rwU2+mi{D^p*Zv`ha z^;PDezx*`vuO)YGChY^Z3{RB}V3{%zn~J6dH7~{xfnv1ZkD9)NDSJK&f|C%^0smxp z3dWBNjh+|zu5imSqCfg$XgZ=*vUQBG;0_LsOAc7t)gXId z=@PT*N6fao&LzMzh39xBUn1tuMAxkNHKs<=I^X3;q0MVh;eh>-fqq!&SV#`+0oCFJ z`bf%1Am$sED3;V}XXvAq^tGb1?BPxam_t+a(?8EHK?+Js`um4YNMWd1Tu@$)`1 zhnau@;&uM{gFp8&R70~b?p}Hj()2fd()TMpDs6@ev3zDvzxgB{|3hx8 zS}k8pF{z*|uNH$}jQ(iuS@ubG2~BBDLv5GbP|VFuMy)QSd+YD(zs1GHKw)O7U(*Ec zb!;}jX^Zium>4tbjk=eG1%tevRwpOjgwk(2dKsN05oSbKa8qWcJ?M|sy_Se zWzZYZN%0)I>1PhQbYK90qlX3KQ588zy^{onkHBJt@jI{W$d||yV#{>=SU$^NVL7$U zvEro_#GrO`g(wE4z?3L7pk5j3_W%u73Ff5j=l;n;RMK!9yYKmvb)Vqaf^R=f3R(id z-qjRgs;mxQiD$(on`wYRGS29Xgc8qaQ|ZsjHhQb!)3*s4=AyDFu)!q9LgT5I)U8SznA%JCz5di%7IRr_;jgLFtK#HT{EeOwXQ8f2#7QYjXNsnPIc=1A z+;o0Z>X)>qQojw41X#X;<4NEGgAQ=<8*$#3w6NcX8(!b5q!sdh-=C0Sw0vraU zMb+K-c=FEHbaWg7Zkz8O#`d)Y5$39nn+NZyQ1F2I%l#uei{~Si)JjE6xZ81_*-|8! z@XPP0b|nP2#`Xx@s18z17huv{;w6d$k`DyfQQyH?)%N|uSLaEq*CE_ ziG-XW4CgV?12IdXN}efQv_A$12KF#Z)mefvARs2kWl|A-r%6?@j!*d9i0U=_=zCPc z8_RSrG);{{nmLkViD1Wp@;NKu@9C098^nCCUVwW&sASso&d^5tDc;jQR^oDeZ^`^uNmN%2D_IL9{;AMUL2BiJi;~uOK030OKsG8^M-}9?HaNrpwAE-Q4?&ItGl%GDB=t7H8qP?*;yY zGASvXISZv`<5P1mhCZbJ+x+(@__;bph2rO^9HA|f7CD7p(J4K7XJR~w^)sxpo$?1O zJCbe_6X$8&^8goqo>n$Fm=CwLlM4C3ynkCRE=`*&L4=*2nrLMfD~qh8ma`HUjfsM^ z->K9o+6EqHd(erUB(a#@au%o+8DQvOy6S+^{uN57IPn9st7LN(UzZ6r6vzh5r!=`0 zAl65pI44*OT92XC2lIaq2BbD~3EgMXTBmC)edzu7L5au#oQ=Qb^w9CsTqDDJ{L^ud zdY^+Rx2KbJr$-{33}sSIh9NDPbGdZaJ{^g#PiI^Ld@0l|FdiPBVy601uD2vl0Rl{E6r zj($QUv+092Va$|64y`3nZo!3j;uP0p@4oopyNgQaTJ1Onw*Ef3$m~48fH^ zO7bz{Af(e;d@q)XE_Sx)hK=*z{w6Y~lLxDQNtp5We}=N7u)v}g`PjxW1OeAnKs->! z$S>%p*Uv40cD@6d&kYZ~D4MUh3Cz?7<1nG(TB>_mwm|4-EOIo`Sx0ioeJZp9*#vqz zcm&+?&w@Zht|aXt&GE{hREG8`<~bRF61$bn@tiQN8d{pZ^o116i?eiuQQx1(d+dzo z^o^k}i~*PgM*O0PRaTDWCj$Omg1W7IMN6yczQ{!jBp_IV5elhzBXJqDuJRuzhbZaL zCcZGEm+<>W%bo~DPo^`X<|xIWfs~R8l5LoOA4jP)tz0U~+W*3V(=c$c`2^`9RW`&F zo%jL?m2%~pn3^t8w6G_@U{hY7D>3AgIsGLEUet-wO_^LQ6oV8xSXE@x+W$t)YD#QM zoD29U+zAd0G%(QyEn(7NUewIfXAF=4BvO)_Rw#_xopOAFg-9o-rcQh3Dc5qRWK6?j zYP*_a>T=-PM8kLys(!zND;O16>xK1Mkf^VenfNe1+=r1SONAcvI~q{pxQ#9M<scx3xOWodSTh`q-aQP%z_Fa>GEF_RR>W#m;cau?{#To+3u`d}VMq3Xc+ioVu7& z;b_d=0t{NOSZ*0g>}YF)WzcZ@AY6vrg~10xbMW_}jtCvfS^$7MGW8&R&DS@fJ%N0Q zl)(oWCb%+CBG0MUa=N;{*!(%^-iu0z)tFUp*V}Ay+&*zdEipcHsQ+kFiyqN?nwF;e z2RX0o1D$M&<`#ZMp6B44*E0M%OViR)Yj+rTJzVIgnd|cV$#^I9@_NZLI4M*x-&u`- z2?G;H<;kp}AVttt^CP9sd-l1A)YH6;GKoAbWoBYUeO2c9JX9Kd=QA(#GF&Um2$m10 zU#w5NP8oDvS+CJ=d0V)BX#R4?@ACZ&K&ACP&SsHQa#6vP!b1nJPo(18zXNEzlb=8x zNhk8j$__1^{ZiAF2w|_)I(k#9D&r-r{!(=JE)0)mstt-tYwie@+=y>=!bS)!|G=ok zIa1#dqZ{n5@fb&%Klq*G=zG{=yQhLsj=^1oMb|xl>s|Ip(0F_$MnCaHKgT6 zfJ0pz(RT$`ysDlA=Uols3x?&eUhuzROQEaoLVB(?iE|7+9nR{rc}#nx5~X+Zg;~kfr3)2hU?;jS^}d(kq8FhUApQN?K`{-fAHpFg*MQPv+{G1F-Z8h zW2nMA$@7IW3Mr=u;vv~{R^8&uG|2#x57(BTc&ctK4d;|wc}>XL1_Av{;mT}ssb|x~ z4G&khp4tIUY!A>(Rr%74#0|e(cA0^$J2HGvXwE^kL4|QKq{Ew_gleP?qZtDXqSv9W zMAi96&M`2Iz3)SjaNERX#>M0h`WJ3{2dq`|PC2?c>*`*>F%A!vD$wYIH z)YRcNoe)ySgz3;oD!d~eNYyC1!&b4+(LM;x0m{a1`%zOO$Ry(X%d{hkkay0*hRi+a zHY`a;zhy2%IWAc``u!ZC@GXZgl3v@~w3;R>cwETTI=nI2pNW^Kuprz}(-fKbSfB>| zIh-nUc03$!3?RvK8i~`34EXab<_xEe;FPA+ zM~zS;{BgPyhJeKM;FvCcFU5@_74oMRk_%+E;D)ul(J zOd3xGMgmZ$Ety4V5p|=YM>@28N%?6>V3p|vjR&{f*s*1+02hU8K@E&!v&?KLU`}5^ z1;WJurKyXU0FGiEfw$8!h`1saELYTf?Wgm)*fsx(oHm4VhxY7>J8mllO>Y95As{gK&lW__YxdeNI9r=XIHwnA820TxnBqKFu zNroLSQo+M`g-449QSq#RTbD8a&Na`g)x}KvhtX^;?nB96BFx=kKbu5C5bCIKv;z1X zz$}MHiN8?%m)S_h$Sx%~{?nZADYgW!7%hD1#h~2^Ok4uZAdCX1R|B;M8Sr7Ad_l?6 zRZwwXrB4>-Ks-~ePM!m(CNI-^YxyQSGFWX-2sSO34u!4v9YE>V=PmR6R>8C`R0$#6 zD^R+ie-!u|Sih3Y7nJ0CYtup=T`zkcmT6lzX_I$%h;Q$pmiO*HFS8lrB;_e748 z3WFQoQMSTVbIh89XXK^EKX`VC&$jg7h=r>$EB(SVxvA-hFhz7+} z!U5eKQKI7%F39B{P?mJkDlHM|;YwEN)515UrmmfAVHcE@PuTbPvBhJP`E~OLvkJ>l z!%HEC?tVZRV&#$d<27fj8H4Do;lX-tSlz6f0*_Cuzu{QHj(BGeLpH`_~-eiakXC6N|QE$}Su zMPCj%hlx={kK=Y@vcX&NX7vGrPnouQ&fASv{jAg-&T^ANJj~j<0`9`cspKw(QK2;r zbc$zUz@-qi6@WX}{3P}yhwru63P1kX2Od()AvbPMn0Uy$JLNMawk5rl1n0h*7|4(6 z*L%H8t#u{k{FUsoR=r4Qq^W(2RSgNR&pHu6WBbtR8nK#=RlLBPb?W&HRI}`-_f?91 zK;xf-_Fw{Gf%LT)Z?X`tH^|1t{#FUaO{y3%paW<785dk$Qv?0srx!_6HK5~Q{68+h z7zW3LGLmD1vwd*MNUpmjz|B+uL(-o*-Ra?-*y?%7qv_@}A6cm4@p^5B|B(!RFbiG= zYy(JJ&y18~bi{Aromr`+M=7_He9x564USw!(c6Ba4=+E=vsO%=xFpA zS7fWnLn!1a77@_9J+%6VhdTDBTd=pyxb8p0;a??!0t1sTon!#il5G8NHOwM|l5eY% zI=qqyULw7v3rL}zYo`p?`~u%Lh4ogJ+>!}8tpA&zt=JRvzMT|^Qg`1GaRzP_UtEi} zc5jgN{X}w2AQUa>zH1U~{Pu_G7@7BN|C|~rG{%~3WQ3`q_iCg7XEO*!_0o=qF{lz_LJG04fwtey)qL%5xUpBQC@c(5g=ss)e|2TsAl8c8`t; zIQjL`_m`ro#_<36Q?QeG|Nn9I)lpHkU$_SWL6Js6O1hCyQo50lE(t-pyF)@+6zLR{ zh8emWX_%4jF6m~-;U2&5``x?Noqt%1Su^L%d){})^E`X+fhxnG|00_$&V#$d?2u~e z$L-VFio(1N9Rlj`vf%U_i(tR6&i48h@8_F55olB0x@S)QNqcjYS}WbJRXt+(Xe ztd!?P=*&-*z4OI6(62Hb^KxwPT+zM%vw-V=8te)w z{-GF3l_?~^Ct9%;xd4V|K)ZYCr>c-fNbS4x+?Bm2Ks_jC-++bN2G>5&A6rrdn^WS~{zdvxkYFAg&AMAEM7WSbSiAKx^bO5gi9M ztcSKbED^>fglN17t}&fx9E5lkAwDuwrKd(!Wa-xC&QZ<}w*IqXF zVxjS_a^-uV-L+F4zbId8^Bj5LV&aP%BxN9nTS*b!&4A1A?XyYy>Bf|x8izY=Y5FJ( z+}F+n)J*@-6)!)gddvrs02D%(>oc5#{j2S;L!GXxt|k?dD#10)m9eGEK$K;KD8hE} zN~oA3K(U6V?J;NDstoSIZO5WW)64_-zRB^|h5ICCp{;&c%U<5$qVp~jK|X;k3`3D=i=A?rV)CQn+GKu*5A?I_m3)% zh_7)<&ZWmS8)+V$C#c-6$V7AzQ2dmpv6=zW2QzjC`uqOBm%ytp6bLMa;SQn-yZ3S@ z@W*S4+NtZt)WM*T%GB_M?zKNcC+` z@W?JVw{33lm+99zAFDQbF1r5d??o}$&j%N|)wBcJa%}#hWqY`8>9%_&^+!SZYZ@XF zV~;Y#%AfI%nTS9rYd8=Tkq&RLxztFjsH zd6NzDjRCt2$)Zk&WkCB7212CPe6D+U(s7|>cM+YfWS7ql)JpuVi4h8e$N#Msb=L0~ zx?hsJKcC_3F6!_UyEue<;PZS&9nzFrn0~%jQnG|J0=zEC12^$r_-H5B4jC=^bcpu`(q>O2?czOw|I5sEevlp|RW5B}H1&-FU3?u!~0gZ6PzW-{D zYpr3W%lW6X4WxgZ!;FV>fpD$q#O!ua$o5Ue@y1{hG#*u@_4Yp_Aogkc>Ky*V73#C) z-P9WRbM7>gJ8&3_zf5;bxVdhL?DU1tFmcrDhWw`88@cs9cM>DM3}KHC2&wIPoo096 zQfn9G!&^3;CB!*=&3W?^?4M08z!t&nvt=4%t_K!}78gh5$~Tw%w5~B(0kzb$kFng! zW_6v?3vlrUCI~A^+~uxHpOjDb$O}drOv%E~O8+~3os`*EXP+GxMk%wswpH)<@}pk} z&UN=+()8^o{(aN;~zmKbYfT9@YM}mq8eiL~dv$Ns4a; z-A$8lA>#prwpw&35w!`vva;kQllIM<8_~J4imL;llAUuh)$_d zo#}aFh%a@zQ1$&fR;|YZF))34DHZ8IkzjM!1+M*Jta3~&M|yU){k@yh{TdcdmZ;C4 z4Etm+YDwmu#s@)H$O4oi2$$pPlypWU+s7>9tUW2ZIM zqazn-HN^blANQ7*w~C_Zv2Lvt&qz5zCKln%;{eiLHjoZZH4_lNSx`l$`nCSqm~w3X zvsz`46=NwjaCK#HzZXXmcpvY1uQalsc`_&Bd?*sHb?>|O%Lx7;P5a< zl;w>>@9durf?5K%(?4+MPxt|@6cLZP0_5#sz~%kxFcM<|rRGzEy1fQO)(?yeHAB@> z-G+@QHfa6!tAdM$08Qu3Iq+`&d95XMB)OldN{_dAG?KvuX$o#5>Ix z_i(A{axmm3OE*4<;m=u*N~!w;B=#Np*{{&oXUUocT!@PJ7~D6 zMc)coF~j|gmO+A^%==FSlof_a^E}8E=4+f}uB8RGrPiDubt8F@bW6`>2;j|*v*||Z znVVSPT})~qOX*ps8cFpyJ1Xit8_$>`d-Npxi3Ki|-)$E4ZN0sBs)&m&>s68E z9HDe+@mT|BNrB)=LeS3T#QpV%R1>wrQoT2fi&fu=CSA;LTeb5p*0B-_P{M(*9Un$tonn z{CF#ao;H+JV%k9FsAGy-+x)576A)YN^o0Wz>?Ot5$3DnfD%M^j659(LQM_&&uTg6)?e=* zq6dYyi#fmGXQq8ehzv#QfitTzi*cPnFncjl_>== zfs!e!Ck}RgrU-~He4y&zjNr8^b0TY~L!B@mpY~Lx0@vdk#qrXYk4$!nXf(pmOP*}Q zWr`l9Ghf9&dK@YL*%?-&J@58@_``O(ZS?4^^{NoH-}=g&=v{wNOJf;!iloM*2-pZ-DPb-}|dmbVt9_2NzEX7fvT$ zEZx*V-;S5rg;OnHgTDmq0obydsMEUXULY;D*U@&jSs@jkbZfoeFlT&}pRMnEaPh5e zFtzuiA#UD)am;YCVZgq@l4ym^c`Cblk9Ft#_;}s@Ixg<(W;Xw-`wk4xfYVK1e*g2? zx)#@ki+xL|72G4#;c#H8ne)!u?J$esQkM*_T`GJS%#keS2=_+_9YO={$W;;h9s#Eo z?~U!7c6OozSFaMg7DR{eR{orh2PWo_5;xCRsXaHL_}(wHDDit`$xk^) zV?MbJAoxDKE>Oe4P(9tFJH(!aE3sO9}E}60;eRACqzVWT(VaV0ebszM>-tprzJX4=9jLxZuX}Ee2>F{)M#L`uz{05;w}yzFtlwQU+w$AZKL&)U z>&*_c7A%_t{ss;OSZc)i8M|&E97p@?FZ1vi;|LE{FU9TWyPH(QVZ>W8j$WAxjp?f-y!Dk=vF-^9Pfzn17C#z)kp> zQs8$g=^=+fK%-;bngKs*d*l9G;A+d^H%CV8G8kH~UYIQ~XeQaj}pr?a3lZSUzQG@j&>p(s9wlB931k{0v5-W4jEYm3}28}g2Yt0IG=D*~5(?DA(d*$h9VejIh4=57G0pT6lKS^x91 zzedDdF!6dBwHueOc{gBlxW+yUU`A&UxN9te6T!ys=vqrz$1G$n_^!%>Py=l<_Yak@ z$5~&_odLvW#mU3M)U*MyGF|b*bK$tG>P8w)HKe3!7_bptYu~nh!e)GFKz%jwlX|`f z8+u(d)r?#)*F$c$-5A6C9+7-!Zglh;yn*=6*sjAnO!x@P!IKyesy6kCkS5nv1&K|A zdC1B@iza`AEqAGj^+?yc@|}2HJmIvLdi1t377tlITc6lA#@9mri^QY>h;t=HsbO8f z77Xs6pCOiLFc!dkap-5#!GE{?W9$Y&t)tyECwkt0$2eW(aC1S@wr_}qKl z%=AP?VUt_nQi6_4qNts+?smBG6gKBEF~M~5^U3T$6yS-4#pgY5+Vh+_vD59` zIpO>6smx;XOz+aR<<4Ai_8aMLQ7<+1#SOr+Q5lkB`|vYH-v?|CyO zH?lI}c-fR}6lgXe=(W6JSa-YF`{@ojOnslpe|H+_Y;&1KMh543zPe7PQ21=OG4PBT z$nYJGhPCg5@lnt0|Ba8vgH4HsT`}5mek-s_Y_F;8;0zDvw>?%S{I81SKYAw0{kQ?SirEy)#3HjicgW-_(uZMunF z8d|KhJMiHcRnYl09K6IYxA;u;YzThQlT>EZ;;aiJk*R}}bcJ7JefIqi)Vd}8c!fnB z_$61?g}VOSU=H4YExrnWGXhOqI;7)!aWP)7bGBXfd$#-Ue%l#@wUd}AZ>A0Q*ZQh6 zXKD3MI%4z5P8RWL0Kz;4qD=CUVMR?gwiHHYG{XpCy@!)9$A$Q5of1Arl%S%PH-mgx zlCK*y&LMopK39tv2jAc~9tU2VXr+{O^S8gtmXhFvCE7;!2(jg0M`|uHk<*YD{%WE> zx{_OWEo&9<)Oa{ceZ|${D91O)FcX%-JO?%ZpI|jaF!&GP3!O zH+#`(gaQ0I(TRqk*BO~unY3fR!(K!k)G)j!{(6 z4_tXu2fz6I%60tDwM8LB@D>rjal1i zx%;8PQzkYnT~6=j@yA2b@;%WySr$@BKQ(o*p#kII(gN*0_y?i;pnkGrnA_Iy0U?u&WvnNGwUCwT&yo#=VXqYgaDR zAo%=Nz{{F!Q?6GW!k(RHoQ}2{cji5-Db(-i$~fE!nVuHpZ!xbJ0e`GY_|dKL(IoKD zBt8w__GY67p>2q3jug0C3qm+B2F}#90rvve~S_^?2H9OIgauryHhg07acbhs| zLqyz`yN;jbJm(%c-#AEtwtL&AZ7U4dr`7u3b+H8#FI$GwNiFx|yxk zyu^J&r}e$6VhoFh_nwAwWT?fa{k&Zv6nO4>l5mA<2WfJm0tD6?i;dziN{G|_k@*uN5LV&(wua_+Q<{KNqXr|Vu4c2(!tdhzq?40q>ca~@ z{z%I%oVs+yJID|QausSOZEY52S2t|bw$kosga$0nk4=9Ov2Sc>pP{7YOEN+WI*SY& z%HqKgxmAAxZSBjv!=Qo%Pu!QkFGF}Vl(y}~N zR^cjR&g~HmP|m>ET?j?-!LOiYWT?lKD=g0OiLtz_OmRhicq`acT zV#W>MI-Kg|FELYs zr4>>8>@fpU|=w=t*WM=N+X`5L8ki+b>Qfx8_u4yuIE5j_Wd}XU%0Q& zubzwhQ|KlS?}476`&Cp*6rFDyT32S*h@UJCX7F>&;3p_~nxS5yL|6h&cn?Yn>4Y$F z)V8(g51+4%&o&xOy8?1+9c(FLizsm6qokz&GHDb zUhF?l;MCi#W|Y4`n=$=n=h2_`{FM#@Xist+dMkPTS;qrUkvE?>3^hPi8O(A6E~BFe zaKeI%to3r0A>5c3wgv}PTrc7Yl+VWTWBulb6D^r%}~Nd+CqhO#;Ibaj;L?h{9E zwD%tFEg~P9Jz0`QlQ=*lARu6-Nl;fFBLZ8)$VgZJQmddD#m9MB9pBAK$C_x4yIClzS#h5PjrBxvBvy0KiOb_S(K3 z#$Dig|M7jG4CZi}P}z^oC_IxIEgf#S@H{vmRXRQVt@r&_0F+<<6!f$P6&j)9wTb#y0cDcs}xIx{ib-)H03aZ|Scfe*6` zgl%y%AF{~^q%^u+nba*Nm=9u{+|5zTG2sf6)HUBIERjW3$J`8Ow1z9_`{r6kT|UYL+fy*s)+kmDEnsfquor>F@>8 zAme-c+`QW!uH(yO!^WGL7ubHRyp=OS_`|n-Htuz`ez%?Q?g9qD3Dy#eoeegR10QMZ z(3Lf2uo2XI2Tk#awa81(>HJ|+BZddjkzP$@&oAHzrSNm*DxJUvsvPx1%shEoHa zRBTzk$-La&$W`~8MJky`bNe_Y94G)0gQoNLFXkJq&K4ubbm3QTk~lhopuLAJK9pz; zdCx-!h}rVuAw`Xl6K=hs*uOSS<@Xp$X!V4Y;-`g!genRbjXW`it^)+C%pgyQXiXCx z`@qk2V$!%g4&svB(6Lchfw7OS(cPN}Pj4ap(@oCDh|9D=SnQ#~f+q9I(T(H%=AiL? zM{b_23dMr4Zypg)s=b>87r_O3MHe)D^M>99z?wI9`9%{G3B4Cff;2S#rv-S1gRV+( zmR z1gY+&_F@8`E1i44hP^$~%$LE>`#6I7D6DGqDRD4pz}61RWAqBSYESH+N|%+sR3;4A zccv)!3M6MU>)Lzw>Ik0xG4RmIfu0Qwc#rvFsH(n*8s8yWzEbu|XG{d{FUZ0Hnc=L0B06RTX;woZ=pz*`?*+}7Lp_c`2KNM&b+7c^~fu9-A0 zUx*#Gk$M}qbUcTK&b(HoB?(ZtviSL0==4$2!5sOIRvyeN-;28)5`$Jm2%1hQi}}U~ zd}xPFq4tlOSt9wTuLALJS7Fi6=m&tKSx64RwVaV1aJVo}#%rchR#tp6O})qkv7E73 zYXl`Sz~$T=qV=c>qwQX54$vvbA3x#aqqytZMRm+DNk;sc1nrHS~7P(3gx>yM?8Gvr|rKg?fK?(o#9QC4pdc174grd$rs8vK##3a zZ<52ttNrk0S}U;J38O4aOlEqa$K#BYOy{jwG41beX?i7dwHG^ea36ixL&UjIr(>m< z&u$>z3IDeuH1&U@o)Nkf8TW#>AAS$V9lAr-{#cO`K$Wu zbK`8KD$b?8!7eP*-TVV=q29W@xGOF8>+mh6&32l{@>CnqPDyaXDHEq|N=nkAo{sPK za;vLwt#XR6V+7 zBSXnyNM{yNuU_#1ILDQ`83XuCQ4O8GCcpv|@LU`*tcmU4)&#cuE zyf}OTf{(0GYk24TOjpGSOcMq557x1e-A_?$1j4KD z&Qt(qns|0={=KuW22qPafw~(qC#`Cuv+us?a2cve8mYEz>52p#HfY>1sj#XH_SG@b z&k_=#1o2LeEb3|)@-Q0Ky_%}msQN`JyYwvhog+a;KO})Yx;vkBWimgCMp2*LBUyMb zYndmQD`xv6Ra{$B=Jq9a&~r=|k(K7Ns@i%vOd3tvT&1HbCnr_Oxkc}1t{cV2M6e+FRK}JOv1ulv!FWCqljz3Wj`h!ima`S=f2GocUPgcdx(PFe|KxFGjopRuzsU*u|wN$=y5 zJ$*lIf$cQ2^M;+-)I8>q0`Xf#fr3s#HlC;vVW;H#=h%1gTJn@ETL^L928W|LMk%TlEt(`sL9CknI)i0#sn{qq}?AZvXCt&Kd?n_tLBu3NYX5oDnu54^6g6GlYM(M*j+UC{+xY`ZRAud<1b-Lt6bpv>_^G?? zdlz#H5H~9>`P__b`T{Rt+eswsoyQe(*{>2h@aoQ#jNpCcUhfV+yp`9{D(O0IH};$2 zda2lWlNF=z>-3smZ_qjFqU_DUCp@1I9GTBFEKUsoGr58>hxMM@vY4%hH|83UmXi zXI-tp_q2*CiXcBw0HZ!^PuxJ)MU}m%nM8+J2Slb!d(xs z#CDI}YNy`yr;3^hXt)~|3j11I_#?jRppx0Gs7(Oa>Wm_@7|w>zVyI;JKi%<^EJ#>X$u&8&?aWyr(Ln*PFH|(7L^E zs8y3a_YXtgw+?&=Nb52H2Gif<4mQ)G4oy$a6N#z z!BQaB?H^qs=bkw@4@1-i*xhuvqfs9*gsQ>Fw%%DP(T3vD8hlVl`k+_am&Em4p5nvq z(ImIfw|EAHNx6cp!Xi#VVt?N4Y0js0?NZQ~#_IpkK?b|(;PV%Vvrc0y zfqFGz=I~9b=n%jR{b-n(-!{J_91H@Lt^f zq9W?4Nh}V5vM}ZdP7vNmQG@OhRhJIi&L?-a6>B@ZTneBsl@ApJ!$itVOm7lx04oS{ zHllsAW5-CSTx@#5yg9)>B<*+Tt^X4A^SZ=_1phcz7(-Z%H91~rx{-ajfEo~j1Y)D@BfnDXC} zIkCWRB@j|4J}obo+)#v`e**GLlNIxXR&QX7SOW%6lUUYDR+Xy1BF8KGDfC; zcE1TleVp^scBgtn_4R_f8V>MzWiX{D`O6Y6z*oS_$eR!8;Vgb0nlgAfs}Ic(1-nl3 zJA77P0%7FL07Q#T1dGhv7+7{|ik>Rv zJ!H{uVT6Kr%6>7u=Qx<{^AN~5s7|>f3;R~Y&aI5#8((_zpme>|PO6Z;T!`WgmG8-q z`%8Wf3Qm!7N3Phu8hB5iMF3ijn^w!^u@N9Y4386JNgr!i|Jv(uzsDp6?}`1Ot8>^_ zc)91KYRLq!d!IQ=3DT!jJE@uVhc%vBzBrf@cAqiiv!p<G^NlYh*CZL4tyY!zW?$1XnNAMe~1BjstmGsx4WrUJ3*^nr>%F6y9Ug zeM(>@#??d!_4oVsQBf^5B0wSjgI*Fn3qea%tttbc5;o^U-z>udU_?3zF-mZ(^U=Se zv((*ql(Ri^RTlf|$DXH^Fq`3+&#j>pk@%N6QeR2+N?|#9sK8cZeqT~fXnee#!Z7pm zP#c@+xfwhhbRYGZmJ!G8k>YX9Rt@oJmO;mWH3YGu~jewMYH?(qggYicLZG7Mt z{dLe0b$eV?Z%YPk*xO-ZgrJTMJpw~_pinfxZeVm{n-B{lNmI(7hCF@nRe5{tulGJ@ znlRw zfzhG6P%sB#@@hmwNv6r?vrqG9gC#jYGg`!l}hqODfu8sHw@#Z zD>Q%i5#S0u4Y5#D^I7>Be1&BT&xi_S%wWs;GJQ5a<=pe6U(!L%S?Tac@7(;a^PGT2 z!FT-^YQ}S`D$Zw)1r2+nAD5a*HF(TM*Kbz(~X{2G+*x8#8_T9=B36~vn!er<3)$jOKABHh^XzOU62DY^` z=V~P?GvYtO>ds70=k=F$mGK_jkl^?O_2;AIRqZRcK&IJvi)`u}4iD2_nH;B`qn7+6 zQBh=L{!>~)z8B-b)z#=DC%d0I27J+e`-KcnQ0X;13m&MNxAjG(Zlk%E7iwLNo5POO zUumgrCqr8^6BH}J@p|MDTa+Xe%MDq>{pna(@1uh{=A*DszeL_Lysa#6ob&Q-@5 ze3MF9gQt?opwvSyS9rO%%?V@yda}M3pkh9{CU})tH-(|jvuA()G2uy*U0xc2_n$GB zJSNBDlAO-u`1h*)<-9#Isb~dC=B%HMUaLO}{U>2h`ARA(Qti4DpXg1P&!OKatC8rr z`U4ZnEDK%}n$vYVFg4BMz*^4MgcGc}-p@p3jw__I~nH2o*FDz@be()W#4 zxW6tjd@P$;k+r6ec4s7%Z=2u$nv{0G6faE;1d>S5nm`eK7)COvrloHRHQs z@u$IpH(69vmcr&7rKEE`?agJwjRaS_o}GIQ+*e}d>fOiwnJ$B3FOIi*w9g^$A#y*e|7NJiZtVWIMIAN@#BbDndQ9Y$k6@o7 z8YQvAa9VHGhu+gED!+va0JTzYW}tDfvb6_oY7|T7KNCGMNqIT`30)@;6@ZK za^oJJ@%j}v2ZueFWd;X#_*uzfZebYRn#U|DJpnxs6+8M?4c*HRX*_%MtF(lLA}kd- zKR+z1$>=t_92{E3m5jrp0Fq`J7BLFOT%*z@8K*&0V-xf9V~Yp7c2F?FM2meV zHv0JS>VazJ+u!fhz|T>auGYY1KWrK*bfsO{7NeU$%;yuy)TZ)CM^BjMUq2{)Z`eW? z#Jg!-h!IqOVhT8IsXk9|=@Hts!5}ojK24*ZfJdYssjOtgx!^z%O)((g^SqDp5x1L8 zjI&KdA*T2^@-ZlgVgfQyBh$>C@d((}5`aiz>ES=*|#?JpbLM*e&ggi>~DjxvN!^%&?afjI6m{(Sv5@Wxs%Tpvv!9)JMw{M z2+>>+N-_?m@_VkK(!N;X2$h#5K0~B8f>alI>)lq*;J3pTx}Q%hLi_UT<~+}Eon17Z zJzrRK;Q@g5QG}(n$Y36~|JW3amoVQxK!K5h+)j^}t)zUe@Wj##{t4pA zWSZ|kEBFm5LuH8FMy1yKUi=||H#FEouT{~ncdniHux%BI($l}T;TNiyh?W8jG z^nDF78!iRW5_l@Oft;R3^G=06?1H=%#hW=OF)W302b<3*vPO3^L&xZK zS*Vm|{0?U_&rnP7^QmkH$0aFqmzrJ_T8W%ov^6U13ol9-Q3=OKJXR|Hzo&`L1i1#E z$P|cA=dFRPmcqw;CQjtUN-=^|m*NbqLAo-=-mnXI%Qml~RbNXhx?5j|@aEgZHj&GE zRy~^y>PJvcL`Vp|Cj~A30THPgZNYauLy7UVC|4DhS4!o-MkT7UY?x7!@X@1fzi>G* z(THQdSF)=8rS>B%Voc*@t;INlWN`P7kCnCr_45?fhDChZx_k*4j?98$uis}MsyeC%&mrV;52 zk+Ln7mqAwBt8&zTAwJ;w^n&~HR7KG$vDk?~;@V4rPXY@EO|3_J827hvD<*gV>t_lo zrJz@vQ=6F0X{I*YYI;E8+I*jss^R3gwWrwWd=c*A?ml#9En_NEY!1YzKek=&+PdC0 zJ_~()=6QekTgLPxIyOeSjvR24(em+)wTssdr)w#PN61HS(G>j4_HB^BsfzFL^;Bcc zjDfd-EAuP&-eInsdh8&d`E!fp=lZ&khQ_ziu_a_U^{1NllrtWmhfP2sQA4@AfAy8L zEZ-?zVYeGLU^VXK@;t#v2H_{%@%$uJ^``_}-%mZ(G5AX2Fd-(UF7V8A&9{Inz;=k{ zFYWi-lS)n470~$7>!wSOO)nkyxQx^+^z9D_eoNFCCrv1UA_E}F07JpdqY#fvGb1}V znA+d_GKXzARjdfdQTq<5Jo|+GPy&xvN(?6=!1-4sD;6!EzBs#fI>7K|8NCf}x`z{6w9Mmnzx8}9h z{K@$7?5>51w>rf5Y-_5SDR?RP6SScb(&4M-&F@5NPPO9Ohs0F>%q_ zw#ho-{Yzv_at7ajxGt;kf=_mRIBnsb+M=GpuC?8fXEpk3D(6GnoTDPdlHT2f7+GVO zt#niYF1hRc)fE6_cur1jC}ne(1D5P~s-4X0oQlM|AV$&vGi%QAzY?Am^S^rq^M=Kw zdio>v(!I}7x10lh#u2XiE5vMJO{{IB0SZZ!{Re6nJe8@`5*+X43O-4#h(CAWg9mM~ z@^9{ka&)kqO?`x2S`G^yZl8(YAAThtdh7YPy?%*>ua|=>9DG3F1NC;oA6j8#(fY7r z*d~t`*%K+q$bjKOkQhJ^8J)~4Io<7_|vVs2VPmrhR_VBcQ zBlq$!=VL(*^6cg?DiFnS%1YJF$*-)eN3TGInG22ZV9$;~Sz$(>%r=JX;MkL2PE)za zn{X&xz%u-P>uLUO=oc~sWGGWFBOxj4mHTXrua5oo0m5R*^Zr~onKZN&`=PP&D+>A9 z&^~LA$qD_viw>j$@gTD;*=%bT3@1>o^kGTSP_rLzz)Stge|CGF^=TUPzF$i0^5!pD zLMLcuX;|vLr>t^OZ7tcM=YOj^|G-{LtC6_ZUFls?>jj8S_a>3g=(x&+L5f31eOoU# zNR=a>;jpx{IMrZ@p5S+*^enfMMsR0~~UM~?-7NS|Ee-4~2%@7U3+b=iq$Bw5f$Elbfmv9oxA=iyh)uy641{Q~s2(DF33F#46rn^kUW*V3%KC z)9eh3En=07m)~3ijwOFdbWQD}FYC=*J;DiZST7ZP14Xt(gZBi0GohH%@=+ovf|QzH zYHD*I>{%ER<*6+^p(X&h_=!m9>P%v;S<@`bjoU(h>pCa(}Q>!-1m+CCCF)5|g0OEp#Z3hsuY7e&YMRRJAV#s(!L-}Q9C z=bgmQ7H_kk6m7&*ug=4$j1u%I{&XcvK)WPabcVXl6j?eGN&wl_k`p8MN^pg+MCCJ^ z@$`|;B)8R|0~G!J#7!cbZ{-X#>yzEx3tI`|zjfD3iXgekMoki^g#?@|%bQAa)*k>r zl~V++Ica&})8&7$C-urIh7xpO0EdcH7gQe2x(Mc~Z(N@z)-2Gk!_!a!j;9-~lLD}b z)iS1p%^~*25xQuC1`T!f)p?ehnkkn8fq1&e5a?K@%PIUnPxox(kGgR=#!%1Bh-nOO z=5{CT0@2Y*E(#TQ-%j`!1BH0B46qf7b=sHrGC~{kzfB}Q6k*0yxXXcviUV)(M@~TA zsebPfBt_9Z)}<|>m7*O)xpM*aM4&w8vx zl?o$hvY0i0_bz_8n=Wv2Z$5W5|4kn7dtp}J<4F8?*1cy0{8wqehJHy2@Ew#$fcycQ zeuI$NNdl;%82xznX+#ZnMrM|>tE@%DZQT+OIG0$Q_Khi4ZcuQ{Qt4fJ-#ahlW;keB z1-F!@5Vxyshdw)4WE%O*Egex^;hdE7OamX3(~}Iw509NBP2;&VPitx^kPB=$I+f0S z2Z}0+s)K1f!?VWUMHt;)@fCNDhq?yJ-GE9ncjagt9+jQO6&~x6)srp^P(%SZ-Inne zNuNepqKX&x23~qXYqhi<1liS*Tx56Qj}LILDh|UDFJA)U`>7i7GFh%mcaI?J7dty} zBJK5{PS$k!}B@>vAlNS^FJ-X04}AH zqUzE~OB=br(!K0OVoDYc&~b3!#AU_1AeT{5MIG?Gw&v(J7zd^7!J$J&EHIC{LMhKIbm*vE%@watRTrpLD!-)zrfXlyoA+pHXl|@Rvl!ImLg}IpIIoUH zA8E5|mn0GtZ|gHtsB0$TnO5k2(0d3dPmwxB(<@Z6=crt+Lx?X+|y%EAD=t*e3(gFR;rz)_$On2fEt|rH|%gpS98DW>}{%rEM1PT zW#3PVl+;zfoD!mh^p9D*iJu?UJnax}<5px{Ir`Y*=s0~lwCBy1Kb$f(JG$(|m}j{T zO0uqZ&g1m#`F{ND+SYG&!^W$0*_UeaZ0<;*f?ED%FYv!wzD+UV?s>S0By41h*eMFd zR77k0K=-icMrl3LTR5MWZfqs!J?Vo|c}0oS9Ir0MP*Ouw8dH|FLgEs?i=M+4W#>v! zXPD>RnOJOceE0Qu+wGi{kWJ*{@(c%0^|Stx)V*!qFyIaLxyShA2bCeuT3qD9<1(%Rp6BJ_(4t_Xp~8AcNZ95 zG#N`;V6bzM)w6|t!T`ag_-Tk}Kw8j@{p_4RWYizJJWCu>CfT=Q?%g5D$8eY-dwa?MthUq$GX{qnS1`Hc4=3!`I&pbf-y5xP@~&kin$_f9 ze>zVTG*5GK6uRC#)Ome}o@4&RtLd}DT?@2~gPWraltn%Y`()LT8lM*bZEgarNkc#q z=5J#XQmj!A+=mfjRemezhU4ZIdkbcz67C-^)Vn*Ly&+4BSTAK>s z9S4A7*5+YVsNF=|?Sx&W*Mh4@dVu{h(dhLRQn)c6 z4D@Eyu>aKKwP;*|fs?0E7F{>x-bvO%D+dejSmrk@KxwQ+ITm$dk=@R%3{{GK9KF1l3fsV^P zXP>>-o@>sz*5(Ga2@n~LiAWS8i+Y!ly;SFe*<%8Y)MS@RQb4H14ABnRz%T!A@qLC_ zK}=&1qvGOI^IXYmP$ys-%Q?6~2C|g1VWObLOTZo6@S5n?(i$3cC1o=~63Y?V{9*)b z#QS1uplF(wBTIsPD<Vj22v#sO~Lqb`parOHsJEFfA5e}?`L#|6JdVi~@(s@d;3E)6iEhs%x+Gh8N zVfZrq+GG10e_K>Rt#fi-18U~*Rtwl6!(R)7yLSW@88pgRkKe-UO#jIJNZok1u+uM< z6U*%}4EsPVc(b}B{D|`sG1&cMtQw!y!#2HEB^|*3^HCMrz zVaDE?jX&)e-$|Er++Of^T-(tTA_5>Jt0>bmEg6yqtN*mQy5qqDBfc9MyX1zp{QQg4 zt(D}*k$Fa~GTQb()@OOujdfTsoh#qH8#!GM?&T?`-Ib7*JOl=z zhQ~g95W(>a-Z6e~4FA6O$BPFWE1u}@1IB=HEFgreae5u^<$D?LL~J8?HQ`$03eMM- zKV9l;+o1#tqcPu-zOS|3ecgH4cFQt#0s2JwS~f&Ba`PFqm@OPc{qxR0W69L}k#EPV z=@MNFWc<8{yXJVs_t#C(v3Z5*qfCcaUPD#Y?dHiP?TnZ2gVLE69r(l@=PIdF+`6E} zq)`dFP_2KKMBeeJ1Dcd}{Ql0z!N`^l;p7T<86Vs2?lolA;@b2$ZwUXHi5&~NxaYtl zaa?-+g4$8Z0*gb*c}YdHm4keM(DH*cC$N3^GX&~90Kri0in%|)Va2jW@#}tyI8B|V ziDY(4fA^EISVb%m8Yb0iS@TM`5PC6G1FnzQrC0e@Z_Ct5IYRhJC1LcP@23)0g_84W z#(E|AwC6sbmOrhcSgpX0$JB8QonOm)Jv-xs4h5!^1-TcOi2QG5!?7OU{Q1*m^Fd(Y zNXiv{M<7$}Z`)*Slu^If22<#~qCFHl`&#w1=FImY6*D99e!{ z5;&9vV+g|1QoRi3#`Kfb4jpzj8N5#SK>gdx5Z0(VW6zbJ1Wt{Bj=u+JErP}TUj5!1 zppysm?wd@m_vP^3Ifzti&ib73Qh2$l5^`HFQ+|yvp!42!D!Rc�I?%W0Bdieisd9 z4Sqk|ixT#lzi<}tx?JAA0BbRnci11 z-?vO&Jb{oy1)s=@!*AqM?$zl4GI{gt5$vp>cs2x*I$5S~8bm@?4 z^~R`j39@N5Q6(ivqqVDCk&5XLT#oIR!r zDTuoVrRe3SW9`>>4{Z_s6B5|Qn&`AZLsgUM^4Md&zthp4^@a1xI#Vu9n2VcBbUXT! z!W3GW&k~Un^d@Nm8!h{mIxf1BaX^3j+>10t9aAQd#vsXL8s`mYSxuo#qL+fznt!Zf z4y`_&e4rQ2kcv?IOvCRluYFQjiv}@Tr`YL)Yk!F6vN*ioI7ZFO7;osVZ_jh|#i#12`} z+$~;QSuFnS2~MuJG(C;(U=@s?S8922*xnwP8&xIhMoH_Xoe;^HeH)37O*kALCDdRf z^^2)!OO&Uf;s1R*#P8+vG=+u?Wyi*n%4QFy(ITC5wsm4{%d^7aR3r;E9?f(Ipmsy*2Hb5tY3ZeIB zOe^CONz_C1I$w&FJfEk5%ud==Aw>(a2y=gH`i1z&0nsfb(wMV2^;Viy3L=0PAqIo? zf5|Rv?k^NIDG645*R4h7-p7qmaL%9jSg}LglEn%p6fC~fQkVeY*g*zljVBJ4l>8+j zzc_2QKYVSLB4|^FI$wGJ#KqYorF`Je6WVz>I!i!!%Rls1S20=8YhO@U%1-3KL=3H< zU^9bZsllPoiIk$Sm{bhy4t|yPdmjEfuvBZe#E(*s>$@VWkczu!zW41H$HyM%G+MDR zPVjY$g$?ffTTJxbGrUjb4iSk6@bzxG@csj{zPvMud4+3}v;!X#j^O+&yf^OF>FCe{e;3AoGEM%yzkVZ!mL6|lI3s6hGAumbAixxEy@|(G{UW7=0KzC+ep)4(ZRZmr zI-sv;h$6`Fj0AoEed}hLsEa0NdeSbXC~Rxk`twEz=B<|6D_u5Tm%=7o^Nt&`|LxcQ(Y{fCzOA(ge(JL5{!p zIL`DDWT!+&n#&KGZJ~IZX$~KO&>73R#ZnlZRdarEarr@9-Y1BxFbICnB%Dow16H~lXM6kTJiSqInAzM^XkEoK^_u5VCesv!!4}*_YnEDq8-Ycsg zLs%sv!1{d<4x|#2tB?S@&9)!8AlP#(%cTg_$Z7#Y2qQwu94UCk3{S2nyaSxOm;mGp z+`Miit6wA@G6o7V&a}N+5SA7v2`OppH_h3E9=~UvWB4%8(4Wq0sm&}pnKAgberT2X zKHdU1jPY-{z;6Su^6>HlvS*@_y=*$7QIW{X#yyq7JA}wFTsiR)_SEHw(o<|}=FdTs z`nw24)J_zNYC7raQ7(93&40$MDf%gcXP(D~Y13!`Ki(XwCa#_ky#!-qSr;wwL%b-3 zY)s)d;~~exb%rph5`6yl$4ylyU;8^d-^mKl03S{KOj1#G#crhodo)as=K0unxnRGu zhZyJl5m?_K#@*}zqrBuK`|sv-f+yV}k|L7XX_ARF1!h8!t%01?0goq|W023u1!K6{x=NioPczL<>g4|2GyCNP?;q-LC<+mDh6%?`1v~ayxdI~PVc=9o zaoV2M-8o$Fn7K?cEG+&_%?^z|gjSOJP*v4hxn zuNVU#G>~cX(!d^tF8NL*3Guu8E$#jZ^Pw6@gOHq{(DT6cLUTQL+po<`c$iqi)LrUW z;Goz|K&SjYpY7MeVR?Ip&I|2_wP9^* zz=pNO$>)^q$>?$k%Q=Kpr73n5CBAmNAGI{eBe~s0IvFp8Y0PBInpckGRq{rb;DE5B z);(z=8o^7jkyM&3Jt2ayGdp@`fV^4u)Ye$5^Zv#Om&?O@Bbn(;3=+>B z8B~BwC=m=HA=O*Gj0*El=5AT@f0xEAj!coOhiK>&Fz7j8K2sQs_bUC{-AsD_ir)2P z)}u#L)p@o%!5`P>tvcJ!T$2xu%sMv52qaDU|9>;ApD;|3q!WVV54lK0W=6?$=?CF9 z2^mjsPFH3-ZUDT9LYfmvkm5TwRpCKgC4aD#Q0AOgQna@g5_4kyk9*ZsRCFqH~b~wRQU&mOzrtPhMvaz)5D!R@Tm%StmC2ZGLg<^WbHF$5g;3>vy&NBE` zXCIC3i^T*d=u3Zy`o6DT_eUXpPjx|6!OisHJTV~l__vQBJYZ(%7}(PUQcvO4XYmDi ztU3+qWnKE?(HOoMfRifN^(>#>BY~B_#NI$o4corF$Uw55LygF(iLP#|VBkjii6Ps3 zjd=rz{TdE+M)_3Ss7cfRCEw!7PGl0%XGq8--GC17!BkZAlzKn&ryGHXss=HC47DAs zm*B&97Y?FIQg4Eww2AS?*u9TgE|=HPyhyBQP*qFxbF9p%=h-}dbyxQC1L*Vt{oqve znq)(#*DtZ2mhk^Bc=8c_Q5D=MN|ZJnq%kgd5<)IaBa2KXDXPy8#T7J8Bc^ZYC9{K& zspzZp4u7yEI)F8s05&P*GjAbjaCQ%VkC@r6TqI=XErKf1U?EWkp=;|h4Ee}0?1}qGxzB{H&_@)aY=V^Nwbbp%gv}tJ8!NqUZlD;D3LseVB6@BLGO1g91b2 zh~e?B6|nS`C0AJSJN zEAEyUzTJ>b^vA5i!IJ+J{4a9-_xO&ivDidGBQ{}Q^9>RUQ+Fb>Zpvm zq|>lu>C07q_GFi>c$2Io^7Ol33CT!+0I0Led?zzL3HQ7}8-CF8Gp&A6UvYpY@2TD#aBW)m_<^yUoKvl?*z z)?-v$`X>g)1zC--tx%&R0~$M`pjYy&gxkSK;bJ1D6PE-#LZOw5WD~g|K~AF!;P&h2 z@+BWTtpC2ZJ?~EV2;omS2w%Vj)HIWo;MmQ5fF|}n^ULs{1afmZ>ll>5p@t{|UVhC- z3=uJ)SL(ga9F2rfXsC_CyI0*@JK@>I#o!gJ-j^+)GbbjG_D_?4x>uHM1pc=|5+k@) ztIBF3!Hg6=888F0$cC9G=O)U>ufw%lQgW-xbA9BALSPwuK-?$E=@++?&Ai>pf#FK& z*rt?fY5RmfS)cAL*6RHfTj+3^==OW3&z%8yYKUoPp}@$WJ{Ds5_%b}v9?M8(*(o;J z2#W~jm)|~ouYpc{DeU4tK4y@U$$2)`Cq!{#DP#H+Y{B~5yW=EcZeu4dHNG=zP=jia z)f-F)bQPZN8EozV_arx@IguOVXhaX70A@1QPC7w(=A!O>P4@41aLn0C^aj)BE;=fS_FSWo8uc<|EK1Eza4*+qLit~SEk{esT%779z!w~odot*44sa$S zPc=c6syN`e?D+gx@{jHW8FR2E*bxEZ$M##qn72=#6h}0YK~5cARm&Ajn1sY7BD)Te z8JpIcSSv|I@c<+&uTl3@rfZ6S-U^R>#WX=#NgQ+=#bs2OFtoa`HdD z1!Pb<1U2GkPs$dU_dU^V6>SV=t?PqX{Sg#8HuN%6X+ty~H9Moa9RX64U#^0eo7r@l zm0b>%fJU%xis*0=Lf|g;U%CG>5l8}?b#@_h#F>{;t$!YaY>X0yKLg0I4V;Jc3BM;4 z7dMwPg9#KhMYRm~PUJyzegt(qR6$s1lgk+FegTFbE!wUysb#oO2NwBEk>cFTI!-{wRYXl-RR9}|HtfK<>=jHAvSfV9Mv#ZqRBvNsG z%Qs9L|5qDWj+hq&Fe_s2H-qr_yD2s*^{Z1X1;!qN2uw0bEK*Sp&9FFwzT9`9pP;#% zHoTiV87f&j?*}oQFp4xtdKHs{85ScJ=%`>;+CB+nPeXp$Sev&h?^{`+xbwYq({xmI z)pe-i<+QWbBo?~KlIsp2+Az^QIRve;0e#PO3*HqNa7|Pk3n3~F@qzPJGy2n_d|4^BkpG{Dw>L%4sX}?Mq zJSc23JOn#X*hxE06tjN{vld^*ca)ym*ehjh0!#~rnX?~p^Ij_a4=OYby+T3ga}>n9 zrCm)9jD@#<2@{2KpEe-AO48^=fvW-wf2s4BKmHEKGK^G^;x-d%gevLGsepe#L9b>3 zx=?KKnv}#@v$;HcR#~OWf9taxyrVQrU*h@pZ6X7x*FQ8G%#gRdoWAxd*F5O2xojU` zWpU!(v3p#5o;l7dDw#@eFqLFRp^>3bYkzR?=+h(qpA*DJuCM)V&?MD^x2Bp^MURPs za5L6q$(Tp}sB{_FKly7~LYk?X@ax1v)`je#^S2d;BnhT6^r%RGGg71gWWnoPZO@n1 zuC@)dRz$H3dcsfbU638mM2ZkvG5Wvs8CGeQB`8*jVrJ8#KgYai$W9n`$gE7UsS=GA zE}3~ZQZ4Tu<{Cv9@{HybS#Z7MIgs{2*Pe(ucZYA?O)NC)ip5x$WYaJwEkd{B_%LJ% zBsvdyD^gwqjg?*l33($scAh`>?IWurAhoMM_H2$FrmPWsRvezI^XuAy1e@Vf#%A~{ zeNb42@9?M^z#j5zwIAtW-lrW?2mco=A?|V3IovA*kGO&Hw?wE`q}Ld1bP~psf2(O< zg=`8z7g+AvUx<~=MVHYJ+YCi{bi@WsXK=fK!m`)BfRUULjW$o^6AcSG8i}dBTk8hD zuu)XFs~YWzy^}oSv}wN##|;sD^{+Iz;HOi?)bE$BccAztQJUb2ek&Z?c;1m+A9-c} zZ|eZJVi7Whx5Aysf9)Oo;W3%;E(lC_6q4ysJHwFSUY#upf?II6LInIA+Y7*12OmaP zRVt5=)0mHP=VlZ}`rs0!OW+Fx~zZK<6z6vJ9 zr)!?Gb<-|tpPtke6-b5{AfHdnQD z0v7O*CQF$z2m~y$_-mDg@~EQoQql8$S5DdC`nyel(7YweF|C6{Z#OzL>=|Z11i&sK z%JDso3kupcB{ggmlL6cLoacN+)=|QE*rov6+;obhoebw>UbypHwOg z_KbbL^cRuM*XFcil8J8+02WlVV~?W|!{n*- z6a{tnx8NJU{)PJ=FmznP3@gFx<_1DzC5$OD+;99AypI2HmERp*x#e3Qx9q+pL4EK4 z{ID%Fn_4j)MmORZmd-U7w&6_W;g|_MzFS@fFV3)y>!^)OR7Lk1!JDg?(ZuhWL5vadvvua~ zF2ZUvo!fFI^(q(fAYQ~yMRkT(JmjxHOskWEOU|nPWn+36sMtf#*IFv@a1yUpQ=Eig z!dddvIH+43`hRa9on8Q#!srnIAPr$gmWE(Tkl8M36v|hb2@;ZgfZOP@ijV2PRtk9! z)8AK8Mhyl(dgK6=go!HXUJsn{0pX(A5cu&kWKxC5JW6B8XM}vHWVm=vHnk%Zn>5ZK zAdQPD%OX^|FqB?38u8SoKKrHNzxm>DU&yqY`6GGc^=q==aY+TO&?r#d^V`#n4Z)=IL-bqNV zShx~a45-KcfIY*^%UO>FJ$i!ArXx4;kuZvK|fJXCtru`O4`V#yp$yo!9pfCj9t8sQVw zt7`w_l~~p&kgfps26`IbOf)88<}U1v^Y%dX zc_aXcEB)lp3@xs}l3210WI~gMM4)6b1Od6~$YCU$-6XwCGD&A79Czdq#%rGXGZVUsjkMOIIwH~ z$Wd!LRet>UtEL?ZW65kO?|DauoOkhUxz12IVAV)o-&$H(?ps(EY#rlVJFe?L<9jN) zv%q@#)$U>cm}MEqsR$+J>NX%|h{N#5Eq=T5Dvpvuq^sN8yM>rwdkD}hz#Fggems02 zqc%}(kn#TGPF3c^ATI|hz!^iCENJ3T|D^0ps8ebf~7gT_s zpuwR_-j4ZYGxX~|v1@rS61^YyB?4D);MNY)5`ISH@oAur$A51r0SQSG1_{EP;Oirk z?Ib}6E&T}}#3YRV3};0Ai@chvl-yD^^)SkG?BVRoYDYBxQX*q+JW|T?jquF(mx0m= zMk z&=Gyk_84BH+gt6GiET- z>G7ol5l_nn9GU11`M_#aQYiAX6O-gmYNrY`Nu`+amAD_!m$n9m9C7G|Fr}lv3|+(% z1%i{Z;B7D02`0?SC~}=2GhG#Cgx4K=lXGj%m0PD?i-!g%muk|3fu&PbRaah%b9(U^ zP@dJ*B*2>);BU3O6B(R2d;&S#rC74d|mpOzft6g_hT7re?U`&X4;d0O~Mpkxw2G z#Y0&~XgiuQZz+~q9(H3qwl=4ZMvgl;r&mz{&3KQcV_(*)uK0=v{5U5SwzA@%C-TQz z5#K{FJP%y~`8^k0S*zEszoo3-ZD@`KJdFEZNLRNR9&ZFk9K@s z#yMNoy^rvda(E|T++^{SYK3&>yD~wUKuj5s^E3DCIU}C7c36}ls$F!s`E`^jwIU-ubywf z!vp^6lnsUo`xEOFQC64y7)tEn%4w%v1%Fr+g0I$a*@++XWr%4lF=Yb z{-D77oN{|dOM@4G&hk3ynTEz7Rv5mBute3M3Lm78$@;GhH1a(R>iSv?Klm9iBi>_2 zv}&kK4FGU|M{ZSCbbqdOfin~xQE#C>4rfH6WYyb!sr}QykvT(m_WCgUfm_OV?$eCu zdfLp4Tl0fUDo4kNu?%kKja%;O4qJz*@Wj-&(Q8+$z63zV;#G@dVoLKCyUPgNuX(Ct zXSX__Grufm3qOHFkJsy{rsr(0yrbf*cfyU+dR0kRfeK0PkQ|;Wx?MU*Ba9knc*crY zQ+aBzx{5*w26b^;;ksI&$_f)Ql$^Z&C3IC#Ah6nWpix7C58U4In7}0|=IPehn$2WW zoVIAedQ;!djrm+kCJa~p3j~;%)jT;v!_R`RhrwseRnQqj_A_gA4i(FZC84;T9NC6})!7Pn3_bk9Ww|dD>X^fuU!t z?FMmZOcMF#@7scp=nW0F55vb_CT07)($t5QQ6hxdW?IA7=EV*;b7#qF)UdMS^#8;Y z--lS)3khrz5%Jum>bUsN{O3&x3dde$d-Qy_o5OJO*PQNWTSbn+8 zj}3v_cw&lGb5bmVmKh%qB9&{`nf}Ia|5A+kqFFm^%gBrq(Kyi#BQ!>0y92qe?@-Y*4H&c>&WTCa+3!| zcX#C;rdA2Cv1Hv_ebg$@>*^05HU#BTl^AQ9;^4kUjTjN%Y=%67sBS2#5fSMl*i7!U zP0k)wY%x0W=6Sl=_;r7ON`^O&%QhGa|3sp*5?ayI$nw;7vRZbP^Zi3>IK!XNKhHb1 zsZVzGK6gFA^{>M9ftIpqu*&|BGKLaUD@(cK^bY;NIGwaZv>vS%J)3iA^A)_<$CUbesp4y3G+&6(KQ!WXQ*>igM# zgH1|WT`;lhDtJi|KZFR_CifgWSvey{P`D|$82P^68z6p|JRp#>Nb_*NI-`uI$3gu} z8CWeLT{0thJ1>ox1J)xLfhUT|*)e^kZ>n>lJw25YaKBPnKNb5g9~d*Brat0v7)(-P z`7z_&F#d0361<*at#(7egV&Is^)R6ZKO+?#EhZtFhOIL>a3z_*hr0(9ORsa7BZw5pe>1}+6;;X?&1}z2 z*QfKn1cbTxX6NEL+s-fnQA*0_j=%APqKBl;8{}S-nlVA%x(mi7xdt@&7+5Q~WLZNW zwx!BAw7xfogxFzv9FBSu0lK7iBi@bmQ<~h+5#LZF2`#5(# zAMY_UlTCu&P^Yu-*j`g{yesEhyTkbKE(%=&7X9}+M7QNFP|RuluDF788yBHJ{Wn$2 z6{p^DyZy(^_?peEka)`(>qW&{=;aOO3t4UNtKUm6%_f>JnpBv>jDKvjU!H^j@(ngE zGvQ-Z{Wf3TMVwHrj}R0?{D z3_7~?*^*{;+;^T}{A+4{yocqDOu8yh&bx#AJcRY2+dBAfN zr{7F0c*;zJg+27&qX(+9Q884*pr3b3*ENtNg`~Q%n8oCD@ml70G8^g@X`UYX$BPM~!rTPAwcyTIUtVxW-~=jivvu~*gaZVJ0pY1^GGU3nR-*7K9kxUgO%*A^F~q|xcIP8-g2MM z{?Nx*_zK!fjpk~2(jCC<8C-BPxmzv4Vq0C`9y=fAkdT_Ouk4nq=k#l@eKO=;w(U9h zK64i9OXPJGFk)Gnwe#G(j&n03qWf<#dQAR(sDS(SbEDZt@?T0J@TiZ805^b*BA%n5 zfP;(r{FUk}Nxa@*6^PL(ww9`u1L1%y2m1^Ht%IbYp|MQ;c#7leFNH;h0ql`Rk8$Ma zTpp>2HBpH65J> zkCJ|Cg5QU&mnRSATnNAh{Qdp+IqBE0cQi`8#bo>`M7uxPa7raJBx79Yve+2vt*a>Xm(DnO!czus1> z)>g#XaD6}EUX%p#A_UQnjZw2hfgy~!{d(1Is70=5ru?ouBG}~uBF&G_nC5pUs}L$4 z*!3m^gMXDF!VE}WrKBQ+h@98jxL$JOMm{5OA~t}95UnL zBylkCUe*xvdU`F&5ml_zveTq4)x`*6-1=kTUyziTspYG)x*Gc}&Yuga&@srUZv#2Cxps;DyAC{r{+^st8U zcVnz7L+d$v-INQ@XythM*1x>d6T>z(TO3V3fLp z(TjE8cwa|%kXG*B4ibFY8HkB}#U2w92S6hUu;$)Zkzhm*cu!j93>tQ9Mg}=ZoQGpF z;zo!{!h)(qBkRCw6v@q;e+;-hv+0|b}S$XKbdMQizclX7@q$Di2Bv}sILkaILMb3>X#!m?B8062~ z?tNmc;GklwtKcA+NY^<$!bn4-g8&Rfx6*=%p}w>8pFaV5f+y#5PL2`7wEMO$4V3J@ z=YN(i;~skXZ=UD%QK-P6M1QZxdenAH;C9poe0&63TWUlBG1W z>`{ux=y&bE-!^)rOfi$h8kEjD(k>lcnDcu0{WI1kX#>wLvxafZITGU~<`5cyqdfNv zC{Wap9_hCQ3r*}lcomyO%N$hYypPfH9il0y(?PkR{QZMne8ai#2;qIh(oSTb09k<0 z<3&l?Kr}4bv*dehD&>J{KhE^5&He3h+_@hJbC-vQ;eS4=k(pQtTstg=+&UGT(9+In zls-660p~hxFzU|z4&OxU1U9y66wlt#!E0ZXHHnq&GGnhja<5PqJYjQivjJgN7D8%qB*K#A6Ko!`w zw?+(c0)=xl+Kz8x9=0-rByun2<8WgHNr_LR7wvR-FaVI$la;bGWuPlvXlw%U`1U6x zST0dqSlG4*F}x6%;3~I(t%3PIOe#rbcRFgY?rQ;fj@krQbw_B7&-`btWs6}-3Vrsa z(9rUL2Lc3j&6+0PJCQIiJi8^`+D0P4eJ0^b&D4q9Xq$(D`E}dLkO5GMgHI*vo~PP! zyXOOzquNbfs4O;Gw|3Yywy8vlW4A#+*w#k~$&z`6Ak0+isPNRaUJ9+#h~6Zlj>Sr-q&f^+VzBTfD=A3UpOsjF;yODQSkG0!`b$z71c6sgH7ZuK3&X=o(&E@P4+Q87 zTqg^T`#Tl+D>0DTOEkSSjWHIrq+^dr$=LI+5#h8csxIk*Xh8W|mIPCwgd4?QOgw>6s_RD7#n-xMu1`&7H7m+uV~ zOyR}9wMB385cQ!@s`I3Or7sz{`@e)95=p^yRK z>Ea4|qTz2|e=Vvu(*4?AF~2Nip5L_gI`hcLrhL>z`)JJo=3VJ~H#V(Ve~M~lQB+gG zXp>4IovaH&R?IMTw_1G0uhW_@mK$G!%qmNr0I%KV=+S9ux%Y6(|MZ4n7#w6^W$J6= zR}bws&;2ESAd`MEOpnH->{mlEAW5@~39b@VJtc*zB}3`LVNg(ML+|;6`h5Hh21R)y z0zmT%^t6+bQ_REvW?}XPH`w8DHw?3c1L05GixMyIfSyl1z>odQ);6m*G_fVB_vRzb z9|ZW)63^B=fV-t>RfzT%Ed|;^!9FD{){d=qMaWW6Ry;qPyu~voehAA z&Az0tanf=`Zjl)Exf0rvBiKjDWInK)t>e^P7X=VkIt?dB4R-AKro30ngFQeCkbpF) z&&I@HuZ@+-tMsnnDvPA{79Danzmqn2VTl~}qG`{h4d$foEd9?ot)oE3U%+a8v7d#2F(_Mh~G=Ri-Y1H zHJ&S+0YdL(e_wneh6j?Mci*EYO-2gJh{qAYRB7YP?!oga^WLQRfqWuf5VVb>|1thJ!`fY3NxGP%y(E@fo16D09G; ziSS82L;U$i0AO>GvfTL%W5`jo8WLyvvZ_eS_G&a6pxrov(&Zh=h~-Sc33X-)Op8oD zhq2UH7uUAt*S4BAvq){pXz~o-qX~y@;n0m3LIx{Su+@j@CY(ARD8ody!A@?2w-Nxa}F`P#3onq$UMZh2d2Uj-Wj$+s0> zP8Eowg38nG^j(S3{wIqqAW=a+gk?+Qs);(|vYMJ{=w@LekYa&dR173x>Pafp;5|4R zzt5sufk}FYF;mi@D|o|^IrOAx5&`ns@5M&fzRr8Hocck?5s>>l3z%n6=ZsnXb{W)s$oMJsq?0XlGZz z-^#skV|r-uyB2I1`q~AdE#ojs--|Xnx{l;^^&`v zj)LY{DfcYP=GIp@I!O7rdjC<1C6^}T~AdS z(Fe?2W{p00GU|kXrjpG%uO}pZO=_yZ+G$l=b4XFs#7w-+#&A3j0V)YAQu@oJtkNxP z93(dsum1edmv-XAM~__De~I)Akmr*vpGP0G7N`IF|8jEqE`JBUJ$(*kOdx5{$}l|9T~+8pEdg@(@+~Mc z*l^6$(ja5s(BHG+{GS)#)9s>CPtGgJTh|`rOVGs$B#Wm;1?8keJRMylPv% z{xpv#Ms@nOqq^iAk~Vh7#V00-HbDELUpo=xe&eOP$k)CNuw%WNuli>RY!Hf+4`80H3ifjkGg$nBDh=u6~Gp6k?Ad;fPPCGP6JzA}}w#(nF3rsLNtN#uP@s7}N>2^7w zMl0>2s{((TKbXx4jlTaCow3Z^2iaXNcWXvU^FVoJ@Qzj4V?qfZU9ci?_Aj-2;o!ne4m%hyU7_8Xl{e2@gwwKoc z7yc&c?cLS>4Mq(o-G2clo(Y*0YzLb?0rKNpT+usR>lM8uy-tK9)mY>4)1M~Homrk| z9qwj)QD{}W}daS_F-7Hlnp=m z@NwrcnUB1~^HznkSb%}i$inPKr57g@Bv#d9XgFKcQBTx3`bQ9k;0saOWJ|D~T8t2)$ zz{uNdgQk((j(oD5e)cSj>f!R(l)-T)9}gf2I(=7i`mV#}B)wr#E|ZXW_qfG1&)Ope z-DE0V+*@%?^rsQ?>*qlFjHdR_*m}J8oHHDfFs9tnqI<&1*p1=FiiZO=x%(?xh*8px zbaF){ZgL7LY8_sL0M$-e$Kz5Z=HM)WDF-KuY54}3gCu1}I2Z2cuQZr?%a!N1T`@gf zzs%LlRaNitUVH?5;>|+g(JnyREu45deR*cBk%B|)fP{O#hCXi zuVVRc#MqIUFS}CDtQYi$WzpeCgCN1-YK7?et$)`Sqmz_0)I^J>Z>x)OfnN?$&UKkl z;*`l~41ZwC??chgKQ`x^4&7?@MeFhML5?+vF)J@c;4Hz~@C-w4oW+8(?1 zeUI|^KS^4EZ-5!uAhL?YA8H_p^&H%fD(R#*6_Je){kOPu3zSMggcd{|XU_IcG$(#s zBW(B`sr0XeUC7W!>Vi>t*fkSeB%D#00j6Q-F6zK6kzvp)VRuIwGO{wvA`YfdKBK6c zakI5IB6oZ7)nJgU-QV+>dBgF&V*&b^H(%!q1-5;YkCD-B8ryhoL^2yl#Jm7Lr!Dts zxh``#f^9A2uTSqfR{pH3VM(W;p{i$4jVIn!=#4bPtPzzp%cMA$j)SL2Q5*Dva3FFI zIxhg3y#gf!Np1?Q5t$h`_5%?RWPS)rAw9J0qVLF=bKYCf=G$FNZ<`M66)M~gR3k2 zg8e8>Nl##4zM$hTcYouzdRveRQ{2z*PpN56qXqRG0)j|syYF!R=3F>05eADWUwuij zVMTE=$XYc$<0b@2!!W?A@`eXUFdlzEWl2{+^Vp*K4_go!$Nm*##p8#qr-s4>`M*aO zMmCU4FdQFLXnj4gKt(s3n!*=e3YP#yhlNt0u%dT=DMd3jltzey8otLARX~U&NHXz= zPWN?z+j^fru;cgeCrs~n8CKlo__^EX!JqLpczz;|C5-iiTV!nqBXcnO78QU>zOKXA z+{RT?W;i-(jdQNebymp6_|f)rWqw{CWS$fpZY4Ao94LUusPFG$w;*rEzSF;>rYm?> ziiGglfSm^$z{)nrG;=oWrV4vz2&wBgXTfKpGpoi67H)^WPwYyNn^uF%oH`)D4W>4P zl+9Y#;#AVveW!Wz_NY}Fe)zS=a~1TSXmnT17pNnr+&7665`)~cyqTsmn&jiOaNjEK ziU;@u0f$yav&!vlHJSv=JSnZY%8T2+n4AfF*UxYO(DXbJy(c{T$AYVPs5lnJiVi2u zC+1}9(SA7TGG_A&JWzq$XzbZ>8L!ee8fPp;1Ulvx{Ag!Zer2f6%8liLP&iu2yjEP| ziv^6jUY9pTosz0!GD+(*v#p(gz?M(IiD)N0AW&gcjoJ_S*6J86WrcjZ;?q#xd&OUf zX!GyQ(E$)?1O-umum|vmhC>@j^kraJj>uJXBd2_yV!^bJL_e~rvC9iR$;5#$l!_R7 zNAUk~^_D?-Ma#PG#5Fhs2*DHF-Q6L$I|O$NE(z`uoDkgIgS)#s1b278Gi&d&&Z%1k zKlx_W$Cy33-}mY6AQA+W=~q>X#9Uk`sOlW-K3qmftcF?AJw$R$!x1Gy8RFhV;W&{i zm$H>i!NaoT~^9lRRj`6zr&f*rkCiJ z>vn1P;C|77TaU#?DEljpLcaVq(+IGn`P_wtvy#M=e_xue~UT~WXC79l$h!93iJHRSq6Y!CD6`y{AGI38|FJlc+lGmh8xBo-9rP4AvCLxgjG(&Hpv*dU^Ab547D$lo7x9p7q z2Vil~rtfKB41&4i|MhcXI;-qaem}Bs)7OMC4E+Qt+GGf5WK1Netb12k*-b%R?wm74-!_8Bzo>&zdU2} z;>Xi+9QSsu9PPSq{j_PH?1C3dlZK^Trzckzt8)z_7vr?`6qDk)85!FDR2D)4P0ewE z`WB6|vr6q>RfP;S^?X9Ta|JG9#7lhlH@wNnUdl$_Kl_aHj;A5g>{QbRO!#s_PNXU!DOJWlj@t=GGv z2PC(2iQyVQDU6(f`D&a=3V$lvn z*iO-4mFa;j5mdA$s%eW2K20cph?BOU?*o{ZC)r_`nhq^KBJvJWriL5S#p&vl94Ju$+sc^mQQX9VOrNc!U;cDH^D*Rz$iq_E z6Ms%VaC~Vio;`ZEtD}2D3JlEpc-(eFAZz693S<5t@0rtPq%}f|W9-8qhE=h&trY+O ze5i`K%OgS>{)aCWT;S$f#I}n{tzm|BMf-;Vg@e95KoGa`&PB%|>U!kS=syywqbu=L zNpf76;k{d&ATqHbEj(nXJ_xFce(c!+IohZ#++TnN$|u2FG$h2haJ2qeJ*tB5lC#Ne zh@aCEBS#ejjnjc;^^L;6?H@FN3Ne2*S zs!Qix`*!KJ*Ek+xHPDsA+!I;Nh|=^qvdAlnX|c&7C?i}WE)`W?%9QBxiJPBKte)+& zvKCqSh-E^*^1E9O{SQPTV&8_;a-}4bm{P#JxYf97;74O2r=mCZ<_^AU6c-#FLO2F;mIhY~9B%_$Muo9EY1=3X^k;CS{UjE2FJe2-` z^Q+(LSNd=rwIpHtt>=rXtZ%zCeiD@6#0fspKG7eCk3g;I&%8fwJ|Zc?V9rePe{<%M zk*p7zzhRhiXrQZ*18`+Dx-g>lkjTI1Zyz#QsMC^z?h7%zMi)Q~5|*ewy+|@YK)oau z{v}l+CCIkIcfE6KY$D!1jJVhAVy4b*Ou=ovleVye-NySkw4nWU<^9`)d8*FN?AkZ? z8Gd*`+m*M@oG-*Q^ zT-Emv4_WQJ1d3s!o_L@DLBSqR9^9tW@!q-Z4Fw-bYOiAVFw&TD>3F`K4iC~5Yp;;6 zye;lfg35^MQkQs zG)1k-4V-%%n^RBE2vXPS+1297y5pB2WNkCR{@gLO{5Np~))-}E>^01UOWPI?aN{$s z`Or%sX(^GVa`cY9byB=#$TnQKX!3(KcdJR?CFM@7;xmvlhd(&`C9UH$DvA$1hbr3I zZ8gV2o-Kig?{+bVV;AtVOVvr-_NE9E?nwF^h{T1NO_OfIE(@x(W!v)YL;&1gUa-+RvzEgtu0kP(8#d&Po3E#zAKnuwSGu_Uca~J0k)IoBHp>U5-j>& zE%aM{Y(F@ds*A=+b5u>spjy9{T|BK&w_8+iJ9!Ap#_u*>FZJHG3Lj9M+D$YYb}{X> zZy*AYaq`wm$vsO0Q-{QnES#J(ODerCXoCg+*%L#nkWgqQSPw}injnOh2on(UNR1yE z2lIV{bJ83O;EV#J%+I3EI983XWK1~X&^nG_KWWPh)2;VscZ8f{*$m2tu)Ek*JDcv4 zvg#EHEA|~#ddJ&5rUTVNwySG%ywhZ4((Tz??vTvq!&H#c0y@@aKZS1EB;{i>SWxQd z2>fGI37cC_?yDX@q7F(Ry`SGxRaaofn!PcRGVd#e zfe$Ij8kZiU+&iRtQV`V)3kPmbw)5$&lvVVG0s@}fl)(+6OS1^TFX>O=v!|$NLnY-0 ztzK0}H7p4wbGVLIaZ&mLxWlrRG;}h{eyvxg>$5a@!->P5jD1P#zVaAi0SYfOcqRkG zB^q`4Pb-T@!6;Z9td_FMzZU3Q@0M?W_TR8C8-qiJLWvTnTgyQoZXN|34A|8emY>k5 z8jfLgqu1#CxcBxB@O-I> zZq1zbAqD+IQa{U+0~PDiQe+ya+2L8*;F-52?(2a6n7q671c6#HMcJqKy-G^iOsPKz z??BZfHjRU1`BpvV;QzI~iAB6h(W=-pMn2=hVZOs5?ja6fLcrV@%)}H=hJYmzWyb!@ z_PbV8AysF9!y@%l-}|!3TAKL9iJcoh&;5Jt=K3Li4d1Ch_bg8uqH%503KZ`@pay3M zcp1HdjyNSv2?X$49SbYoeTC`DCE_9r%Iz#T6kWEm4>j=b?9Dg#DJsqu8s*Cx zU$Tdy>Puh(cfd%b|9F@omJ=Jk7rkoTo?8D^ttsuhyu5ere3~^E3>c=^(as;e^~%&L zrawS*oP7JmdAoL;#_es?u4Y9nCkOq)pP`*Mwg1jE0L;QEqFXb}$;BVM$Pgj>Y2sd4 zDdX`0_+bBR$^jntKxwl|K#+4=z1W%BB~|s$9VhMZaJ2YkxFujP;uC)Fo< zL}3`Z;}%gB&v?rv^p(^?j4*Z}V4lyEb+2fKJIF9@?h6ZYn!bwhFpatu^5vL8$Mm#2 z2^C%X7dtB2vOTv?<1}1fIxi5b+p|4f#BMAbH99!fydGknF-ZEpQdRCG#LoP@^pV0k z?$(9kn~xhSsCCp7a!4l+eJ|k6?2K{uou2?A?v`+sft5F=)5K0b}XUk)83{N^6ojnV_lA{7a;Pd#qp- ze$dg&&>@|zfmRV=&tdV&PWRotu2i5^qBXNN66PK9H9P9<+5lZ4ExlC?ThxZa-=)B4 zaw(nUs=aM>4eL(?72EDG{ZuiR2&7@YC0JSz%_0kcVF&;CLutHSVU(>jE$iTsO$4eR7RY%pPW)PY@g>_%45Se zh!A56!&Sq|*~l!&_3@I%_iT73LiWCTtaCOQ6=5~uGTXg2k*yP zVL!U5#{M5%aK;QZo=tJ4K$DwIxp42c1!r~t7JSN;O6P@;;DDAcR&IIXzv8V?UFvyw z^osZWIDw>!0?0bFg&RdkEeT>|k-~)N^9=X3uMX+MY%W5^>cqo0ha6#dGZOUYy{vUG zhQQa5(+*;k6crH2TZTZ85Sw0xPF6n%pnN>bs4YhMv+~bDw+K&QWwm`>;@F*@l+^Ld zV@tbH)3*HnoXSnw5f=2Bpp_3~@*8ZNW~ZO{k6Wa2*+GszzDy$}S=N5^ih=27^{Oc3)@VqHxBr%TztSzj9d1(EKyiFW1{+&foXvQG zDi)~qF(uhtz`Oe8S}Mr+li_7}#hi7qPAh$QUA&f!kj<*Wa4x#Xx04EZyp@XQChqLT z%V-{f$30(aOKU9QtgN}Y%zn8wO#m%DIXUw8Sv@gqnb+k(_uIwUzX7As?a#`2;yDxM z-cf@$n6p+KXlcKmLLN_0->v;21m};w^`qju@+s9D{DnzEy4Sp+~W?kcPY^%3AeK6Gb=(f9Y z5ZhN*(Csh!H~ji$-_R&u6=d}fw*q>Xzd5J#fC5xB$Qcgb9@AN9k%tA`a`lqo(?EJR9s*2)|+Q zlFFI{1Uq(KkLTOZqoNK=)!L`=5CW?mJz@@42K?^--bv~&6X0@2( zIjqKN5s`oK{ks*BFXzgn9>^NrJzN3Aay0|EBq}R^YPV)W%dgBt^oW4?5y}p&0lYec z|1$SNrk6rRnUR(LfJyxOl_(B&p&JN?WOr(2jqw@xzJ*S`59vP9e#WLA zCW@Tbb?11vO!3f=m5T>iB6+ZJZr#r2@k?P7cN*7k{YJ|Y>9QSnF+Cs9AuI)xL#U03 zp4U5l?J7s7lTB=`GNBSSkXgfTTy!{@df18`An?%-7Vbn{e>>ZeOS3vkEMeo;#4{y2 z5b(Xl+}sj#XB6C44CGX`&Q&OeAf_5m8dQSzBi+bc=89KW>8>OgzPwW`=1kmCvvuR9 z5>%Z3LwAwK)-aQ*jR@qBt%BjnY$BW%^Fog7G6wS(Nl+lP>d!TUl2Y9gr6WJ`V@gwpEWP#piP~zK&9DGt;^!ZPLLt;xpn5c1 zsUze-*Imh%{vLA}^CootNH*=O|Guu*@04HPx2+?lrSxdIK8au12q#TSn*Sc8A1p$g zlmz3cRPR)>6o#;6WUL`>OTw4&Uv79b)QJzlqnVv~@EY1r~_ zYuckwTc7~6?w+>J{zw*1y;yA(a0A|j_Ih(?r6dMO(p=Z1U1A_48dnA|!3K$C6GLgZ3Yyr!ky3fb(}!dllvZ81%@gKc%S- zO4DA(X=r}pF&KoT&2En4kkqb*!pR+^3`R3z#F3&Gf<`7cFU}7S=p}W!fV}deJao-# zxE`U$l_BFW4u!e0vYbvFtoU7fgxk2t^Z_Dq%t*J|c&`o$oaKrZ`j7ji(|>C6Qn4Fe zydAas_;wI2^2)03#FgN0uc`Voa zRIb8bkaM!2Sgl_)O}AS2^t@~b3E~Cq-G&1)x8H{RR)&ga$9X+B8tl;BbvSX!9hrm` zU*dK=iPC%-kRlo@?O($6`N5tGlJ+z3Pk)0zW}Y~iXtt4#gwepL_R}-cw5tAFZxV{n zn|`^^^~P*8zij+JGAE5tKF3z&!@IQhM;;1r!0Yi{hSyCynm-o44LKTdMz(6nyqew0 zFRk#M2b=Z#7czmzjev2_hnGA0_BX-`6@*yEB9np9Ww5D2$tvA#$K=f1k^kNbj-NCG zH-O^p_N>m7Wh8CnamZRHC00m(x2vmHyP<)Ak9omytKsclK=uJ9)?i`}w;Q*@V;AgY zQrJtGF3K5829ZkGuk7@B;x!k&6~DZ0Or)?Xj^F+cy`pX-w40wihN&_^sC^~PWyhVq z)vk8d>@UJ3FDOvT8BDpbTM-^BglWF~k0c7#Bg9Mu0cg1i0=;UxhRL#=lzSCIet;a4 z5k-uo+9uS2MogFxayI}egds^Pj8SHU1{q|?*mgGcM;YfgeZ|=#^gA`uQ%Ul0FoERs zy_J-?dQfm9J<;m<{tDu3<+dbR4mZD0YUO|MAFJ%kN~vd)S7k<8#)<5gOdW9k)9Ai#h++s z4eCgtImRM3*dRlH2#$xJ{a4a~N|=!Wq_G-Pf(Hv5>Dh~xc2VBj z)T&E6R)l1Ma*012B;Ewiz#(M8h8i_>6Cck&&2G(ME7y84Q^hi|)D0K#XfEgM&nK@! z$3X7DF*wGHiCJWc6v_eByEd}%7`+LDq3?}_MHosrW9)ClK!EM7N6rb3$nRf^PAxCB zQc0ND;2eog{xvv&U8FNHzaU!gJ~AM$uQ-xjxs#{ghjV7S$?=Y;A>ADcxRSPEC5RD) zfD#We#Kl2_(&*9<4%tZ1x-;hhbhwXI3z4k|pH3rxRveB5#>V(|apWuD6{ixOwOs$! zDq~G{;;HaO1YXkTO$DI;<5i!M#!8BIUh$6CAiScB+J1r;&PGk79fS<&ExfZs>-#?} zK>qgo)Ul_JN=nKFrrwFGrD#CZhpFLutt#fKRG`WwW{{-mpc7T!po+xuFn4AEB99r-&s3*9le2i z@}$>|knQpDt3qt^(wwetjV^L_U9@P-bvT%-cw1{+ZxOoOhY++inFYK4oUd0%8LG%b zg;nYk<&17v#;ImfZ zdbHyvu7WLS`cM1aQ7i>J>n!dGs#d>!zpGP+0!Y9LS+^!SI7as-NG@@z+UiLF4DKWn zt+TMkTiwmn^QGVrC5baKX?*-UA8;hRcWwLGp-DtlDfL$T&?nTB(&cLJCDwHK1Dkr? z^@nLEyVs>P_n#q(oOzCusV*`^t1`^O`AQ1SZsQr=cSFHv@9OI%vnBcQYE5N8Pd}k# z{)<_y@d(4h)q7u;lMaan`tvyQ(K%95i=PG>3=O&!R6k+>Am&r^~k$c6Mdqg~F3AQdzFl%$flW?VAx1VqwXc(A?;AG}kJ7O5!&> z)#BQ^cWHP*E?ls-^**Whd$T(P&RlSG^+w)0^I~X$h47PZ{`gb*AkUIMiC{PgBa1 zqoE~(f&hNzWw!4}MbVcxSt7?j|uWX4-yVNooj{|Xwn7~l6S}x)2 zK^cH{#V#Z9Bh|9rm)pey38WYN?dDVggXv2O+MpIm))mJiYYRPaN84*u?U`LJDaJIag>F%y9yJd7sVT6H3`Fa zqGaF~(X-~60$+*W;FD9aGw@FvEPTgBTcI^`Evi3^?q64%=~x$rdQ-2TdMo-Lces%P z+>aGUDIF)us)1Z(Ab(yC2`nOp-y5Ub;PfT`?AHD%RL$9QiAZdE^`(ALxLXARr_Zkn z+7G=u2A&{lk02s}c!(z8Yx;Xw!HaH9_s>nIf$!&A&o`f!Q}CP=FT&rBJR9ih_r}}P zYAGtJEqB9c`}tnyeR)J6z*OMyz)YR@HGZ9medEqz6eoQ#EZLg>OZnoTBGaw>kwctW z2KU3W*I?fjJOWn>I-K-bM1VWIuEk>3=7=-^gpsYm4(ZcabSaF;dV+*b`(R5jQ7*No z)~>p&-(fK=zYA9{QsZy6d)Siq=ocsZ?l+c7R*?0}aM#-HBJUkTTl^xPR=7;P@0Iq3 z!2}08HNp>m3N!BRv?uu1+4_sTic;@eq&22ySL^s4?4T9i)=~DfYcCJ&F_E`^B3K>U zcBcqsO1TG^hJ>wsCr5VQlMk_>2~)=P%c!jXi1!pTun&I7iU>g-y6$t$ zm{GdW_3eV|+ipFD090Sg^P-pKXnRFtlokI-9Yas%;kz`PvgLguSJ;&;%ht)5G?`Ns zvFV|({A(f@OMi>oB>K>i-9DW`YaPIVir(iQwH?#B*$V}(Knc(3Dr7<-dVi4jp&M}Fp8Z^eSkb{}O2EA}HD=)>HzZ)-nzxM*>@~14CI46a! zIP1{wOgNunx9Q2V=(F1)Ltq*Up>RwR$t@~F9*aj$H2uo2kfa;Vyn+lDpq}(yBji4R zHPigI+9!b<6e>=38|%)8(H6d{NO>h{H$sxHrq_^;3yB_6x)O=>?Oi@^;?5_j>pww* zzwZw(o*bzxd=%daOMZ({D!TbBvmrXc<9mbMV?xRj!po|~0zg0iWR3+17}{ZZ=vEHx z@!YVqQ1+-aQ*XAOPx>)&Vz%Yv2NsewapVuvR9Yb^F~p)6m}H-`ln$_@-;I2^%%0Vh zWFO%Q)iw2(E>owR0T}t`G78&B1AZ{=*luFem+6dE>X>)A9_@-rb{^r??Ib|?2^UGx z2*;g;bgz-o#F+jai{v{A6(hxD$z{{|TQ!csRZ}2cHq20*Ql1RzPqyx0)cEvcGUbzh z=stxq4!51QMxW(K5_!@3nx3A5z~LdP#1EKyX`u+fua_~!A zV#6&YsEQn=K7+b=jW|p(;#1xd~*q)I&y7mq^lqQKio7@5V_Qby#`jVIqMME-R2+~3hv1uXpz3Il9nam zw15@4#n7j1gtQ=~x*|q5u2P;w{`x>F93lh{)uoZj+Dm$3EDPx1BCTTu3|W>kqzjcNJnXhP!}L*mv5 zOrYy^e4K(M>rnM&;IRY5UlnN?siM4GR{tig8mYv#QH($>8#=l)D+$_uuv*#EI$AR$ z>1Ug7L-W68Pg_geFjE2R1dd(lzAcanz*oj$R$o(OPE$m3`Y+8QDB1IGro23LB|KQ{ zMlI)H>eC?OlE>i6mQFdyCMRGag;9uhV>tAa(!fF(BFKQ9G|0rnorTGYI3WH#^A^VJ z`OhauO}{U2kwXl6xMF$#UL2fzq8BX_Ct9cVwD42^q;Zzrk_gmx?HE;6=_bu@0Q-Zk zP|4e4ahyLqh$j4$s@z7wn5pLvtVYJkuGi=GC7Bm3jS-3$El5@4Ouz}{#`G)Mp zsVd;)p>A}Wx-kP7pxrKPC?NOb>gm^|oIKxQ8WUUE8Y@jwsfK@5m)n**=d@|!Cv%0bGy5p#$SfF{l8bx8?C0-qXLPZ zXk%GCn+Twa)&(>Z$uhvgjqDEC;lpbpP$}r>`P(N{AcVx&A6aVvSI; z_bsu4f;OyyFRy84UtE7hAzaa@mA4%gefVD#>VE`?XyTF+g&%L&eE@tv?F5q~u8be} zPYHeen~W?I5$HXDFC-|1Gr9RTzLxg7kVxQagdV%MrmcE5yPUMP_?5#oG+xq%;QQ3X z6f&*$77XEVW&bkVvR@WzeS5@T)K~Vm?-1U&9gN#d(73qnjLCQ&0h1ccbxyIA^sC2_ zFCM^PxYg_dQv(_aXR8 z?W0A1_qJ)}d%les%;@!8$ZH!XwN^FqK5dVl7tyb~vgw;idIDW0b^tU`FvjZ_@?yyV z<;*LwK{D|R^^Z==+l5k-y1u(G&HCu>9zFlk-7t+^%enu1LdMt}&Wy2N-td6vb{`wr zAdl;Y;>-CxMZ0}c+?g=zO=4kc%xD>=8H3k;&mdBoHU$=3;wOJ~>4W;H4F2K;+xi9G zZy0OLZ<(asiOs=EpUOg+gI629b5LHi^`7fRZ)&to38i=Hsw^DByvMuTZ@b6h%*7f%LA014UU zn^(=#hYbF^85y1m-PI4p&UrlbldaCJh)yT!fP(xlwCoKh0d;yl33a`s(K3qH`?ndR z`3d!hv@HErkAuMm)d#81DPQBHK0jm)8&yqU1vH)IX3~r@7V00GeD?|4`T`!KF?+pkc$-{G3g7A% zcp3J63RcSa-v|8XDgX1RSnL^Oe|T|wdSY7P4pM0NrVq1GTU3$Q#GDwzQcI{*O<0hA zT5zWHdHW>72vc;T47`VsDnri6c5y@qjowdlXFd-N8#o^1O9HOJSE%~rO|~*m%a4+9*28$)~r9(yrwhH!pMHDTj9B< zAx&>TBLnQWmP#Pxxtv}N{TjsC&j^H;ofr!7!O@eR*B9efmz;nG-QDT2PD!0vxoEl? z&$OmZ25&`Ykw`e7!)1$)8xoLcYTN?%6_?a@{i@eayY&M%EaPvClfYgycy=)9C= zk8tWJn$(@U-WwKB8(tMTAs2Lm%Zdyh@?5&5y^AZp^tOF!9bRSeEY6$dUg1JEhC73o z+o3|*fg3r-yVQSKj`n#eI`Vxgpg*NM;`rT$0=!N8K3BDxw6@he4mFfp(+%xrKey_? zPAIsuoj3e$ZuGs4-APZkO8O1sx3m6GcN*IMqc_Ofy0q<@W+#Q>V3sQVg8Zi}^B}n| zpGlR52CSgk=Td6pK?^AVb=`IXCWA5?V-o5s8j|c?(g=Z#$_9MWUW+`8j&C#M{NcFM zyxBdrE4sI9pHsH^Vr==}0^c6nxxPL6|8@hz#Qz+_|DF|k_sE>UWASX?xWF4y(kTB^HauYVEoS|R_r z(mb;JVUNKlpwRwfxsHzyE=oTP%8O&$!r|_RehxN-`J35l^fl-7Sc+LP+qcZYhbR6P zmt&RJ-Gz%u*cfDg>aS?Q1P-c%*Tv;d$WR>*bAl zhC7@*uLG*ZYsmhVz-#z2#n|jpyVn7a`np@zSyGW25tqZEaQo7_6JjA{Vv5~*lSgI8 zPqR}vKSPbxz$7c=)Foh)8TDJ zi)oWKd6=ds=f6)u#ncp@y4<|Fnd~3F%SdF|``-9;%RzWQvUg{z)Bd^%`s+<{;EDKm zEZ`)hsd^Qa>gEh_vHW{SLNu(l)>UzFIA^3qn+$Q&X+tx%)&YZqgr>KISRIm)rsdD| zWqrsY0hA-e!lHhZBcxr#1K%i>o*Soa7uzkW-7kAA!Clwv@&vx}XG@$u&)dD>uI2i0 zJzHjDdS1^t8LxTzzvEE9WKY@H67YEM2J43Z|BeySyP^?M$q>j69WmSvN2oCP@O>Nw z5@-NMwhEs5uJLD$zfleEuN(|djS$YX(ark|AB`It(d1FnJg^~<*3S<{CI!&=&w&>( zVotOB4ZioHd2<`1!{hG|0&70MSo*dtaDRJ7CS{&ao7W$1ALFP8GUu`g2YhZi;|toK z`ngTKpZk3bjh&u6*I(ZfpBfs6p+5NS?U` zd&=$2_LhVK(Xe-XU9K?E!-=Ey@Oq-h%;vuvYj5@IIV*fMX7i)idhYLK zrZLuVQim>u*PMpB8sdFl3o2C6(I^AFO#oui7hamL>u9j=*J#!sJyv+0a@L_tC07V^ zj>?8BT4=D-{@pU*>x~+Z-0i1ZK>1blxakYJvV$`kfh;ygBXsjU*B2aWP8o!9%d$sr zUMbPzG22K!B++eNHOco@VVJC8<7=B8#Z5T8>JSWXC&q>^yR` zy=>3>8qW}X*U}U%M8oe*)e6^B01Wo(N-A2v-7Nb)t8TeqLMY>t{MdvN%fzD2Gu~|@ z()q6GDVn=W{&=b`O+syHDa4aRwKfBQ1E2#fO?D51h|;ldphaiMI$wkQ96rIa=~AUy zs`!@se=?ugMl!V%?b2a$fKvQm%dM6IQH4f=9-?B3hG*kj;NQ#c)8YeUc0(DtK~}OW zi>@kAi2>9#bDiv?=rEP>)s0nEjg1IEb93|XtdhK>l@cP+=R|>7+NE*Hql!8;2r8AB zn37JBW=)Q?Q8fEPRqywZVerIgiVifzIxYoz(9oiExWMb(+k@}m7)6TthhmZaMLA(l z{fe*b`9gfze8?gnVIe3HwLU4u(4xEKF*=!iIl+b~qxgO#cS76bhzpBDC7O4HmN_@X zy{S@#Vj%{E;d|g~k-v-GpI}5ngCKVuyNzsAu8UDZBxO<;JZ?gnkofM0Gc~nBiiV+O zivCf4pz9C^9KLqLPEJmK(z$3Yez=!{UgZn}F;kwLH>cG!<&sVsexnC{J*gr+Pm+y$ zM^=-Z_UTGjXfb3>2pb5YjYe=fd1{*@b`97@?%rrVfMixTr3!2+7s+LWWmDj5Wd$>s zU;)M5fko>%mydqPBC`lGGz4EbM;WxfU0o0yx74V&%`98^Fyl52%>)Qb@rxsLB9)~bv4T#wXEi`fzrD2 zGSj6A5prtF^Sl`R2)!brmL!{r(Y>q1(vrHPFD{^qYgY6fRjYcn|JjK=PC zr75s2F7!dnMwbE}J!RbV>Y>H)M7{Ol$~IrT{Ij&EU&kSLV5s@rXo%!d>6lPQ!NEQ1 zNb5nVtSJ9z;9+eAIYI1FGV{>kJzeiLszHevdem%@mJAP)1~;inMcz+H>?5_ZZzD!b zY4=}gtmIB`Le@n zLGRLX!4Sy+tDSNh-T9l6wz*=(=Xwn~F*8fUISYKia_8?!Bsiy#r63Ih2Jsxg5*%;E52}tw{lpy(zP^AKD6#X$G;rOrosHR581dA1&hY_fe9667(*g>|tt+=jQ2%Fw4F zrYr2CGI<{WX1i_kiFZ;}ko$Ha_2zYin9zW5wo+3$c*p>aCoL=N4AQa_HE^qSNFi#z zFf=8klBS?@;!KfdPwUvdwNvS5@!!6@<+G^!sR1Cb6-W5e;DG5WO_+kf6QG+#|URU!pM{3+pK^9paYsziAQcB ze^Ab{&K>ALWv+)nR@UO#QseTV4C-C+i+JUMMebt>%2P)eeoUETBz98~&tZDcYTic{V`pr7t@s*u7QzAAj@jKXpnZaBn zhpk?F>3Rm&9V5_kIrY<3h+(yP1?KbAC{D)xg+A@7^?uU0z|{>@gYf+5+M>wWSYw{! z#%n+DH*)?rUr5{13b*^=$O|KE1@TnXRsmpOcZNd{gLEg5k7aHb>pO9u`0WfvyWabf z0HD2dJvyfsdCXQu37q3QKc_&CZESm8a(a|Io;ph0N<~WuCVXK6{y3b}iCAPeEqYxo zNV)OI%ADyg*U+*@Q7xTOVo=>1*1iz#oTl)7m^s^5wBMXr7E#WN4?M%CK5c)QMSUAn z*PBf8Yk$Ce|J%c2Zwu8<;AU#fO8qW~x}UviwnN=jDA@{ZXyEcz3ke#3(P_LU&~?{k zZ*W}d9A1C<3_SO&zc4`j?VR?#4Sw4OO`4!+pVQ+aqz|4A!Ri^UE|1D@gn-u-(Hqg3 z8s`6&4cp!^vzB?W9+C^c7hL5&m_R~|oYO7ZvZs}a@os*3@xg_SM5Wr4_Q%=(n~X*$ z@`HPr$jY}UUv62_F2@EE@5bLB^swP#B?g~Wpwu@KT$b?CG)dwebRF| zzS%iBtL01YK-+SYT3bRH%@2$A)6}Gs;3E~Fp`ZIG|L#|hsnxM^QaKc=PXi>2g+M;1 z=lLrVp&Ew+B?{*^8hYG1;!2%jjNpriZx1kKy0YXx(Z7C6F zDecLuve2eaQSd-~SXW_*t--Qns06qY!X9eV{2m-Y6F5L>qlGGQSm+G^Bz^ngAv0PG zM?_6Bw)W*Sn9zQr)}5jf-FY#D7)7wnw)Ks5?w8wxCtJ&T@gF$sS}qgB}MbV;8KhH=J~CA+S$Od}Vz>U#qf7j`(T zA!npHEvL-uffznjw?ZfYStNlS0SN<#wO%Glg+Y(pvnE&z30n|%+71#Di&UXU*Wi}5 z+UnijY*=W}qBVb-OUqKq21!|Guwx$ zed0B-JP@L^whccd-_auRt81YpiV;J6nCm$_&>gdOf+{=&2<+LJI#vfz6>s|II# zMDIEig1D1&UB_wENyLicPB?qMAGnY7vXYpLHm4_@wYu7>uIK)6GcQvnvLl`6oVO6y z_nnIL2Vf-RDlYxqQ)QG99xbltm^_o8s0?bv)8I#PNfRU%a6klMX!sS6gDHrGIxf1= z2r~qNFxLBso;(s4b2531O@S$QYanry_&Zt1W>;~q!(JnjkvF-A;{Ra*EJK!hI7Zox zc8%r`2KtX5JxUh|7o3awsXO4@s6Odo5T~Ol0C?CiyW-+bmp~KcIhG$VBQMM7{)_FMo}?BQ-m4%4P1pBDMs8v@KBKLLi!E?PnXm8L*x1RA zr6$x*@~*HRVJvd=B9R-yeEZ(2$4fCs1Fz$Z^H9+u+Yylwg;y)V@a*P~EO1p`W(GJx zmY+{hV&Kc17U^I`rAN5eCb#YQH*my7wEG>I$)!Fg1P5fNj7lRYJK5CM21CNv7cJt0 z?Wr1!TMr8>3CyHWq)H?KL7l_`-$*S^-VLTyw11;2M?@pA+ks;AN_w^9+3(U(FKN;$ zNBd}%r@q7#;l)5bGVo5(lb`x%)+z`t#QE<#*NF7XPMNj$^+xi_+JJA5Jo64l_CN=> z5I02(Ma6v|Q87Id@g(v=a+o3%@rY^bk|C3E9Hd_mM5r{C2bT1t8zlP{2`QuKi_}MQ zw4*L^RbpDYak9sy1fGvxlPK_%r*6jdg2BgbDF(Opf(kXOY}yDrjP}3I4GkwE5k=nw z&|Yto2zhU!8{20wO?j*xFt0#C@Qz!fdGFcDdlU`tl z`uIU=9hLjaS}p&r$Jj25^t~I50R$uy=EkOiO!EKSq)?x)dgmI$i9S=i?60>xuPCO# ziQL|O`-7s=q!pabWH!>bduw#X39Nj2S%Fig=f4N`z!G}>E;jn*+N(;{>TSmLjj@1pWxejJeZe@NbFWnLsqQI^DvQ4L0h{Z$@`@MM zG&`?rW&H^@L6D%ewq88AyEtM5tgUTn5aHG^{PG4WJ-aupt$zc4caYy}y$@RiHt+FG z=E3J;r``@Bt-s?n>OhqL)pQ<|Q>}B}P4slo+vi~Fv(ebjd+p%5XUVOy)?9Dam=xCf zX45Xw$TOrsS2njnpMv>O&ZPp|6OIaLU8%mo^zDFwucd}Z1qW?GC%#NnHJaVtrhSv~zt#Djgk>2cWSHcHs@t*u ze7%{mdf9N=mg43TeX=d0LvT`ljaNyju{+p1QKmNhLJ zxgMMnTim(Tl1?0tZrdapX(Q-_i(AacQu$HgaT;VpKW;I#4I&n!oLW2%!5k5K&cgQI z!)Mc?7bW<2sAWlP)(V%e;Yf%^a9S}c<=$rptkF&!-Te47FRLRsAtDq;eQt9)Df ztqQ*4S2oiUr@UH{P4&l!Z?E*o))Mu|=wJE_Z=82DSK=By5dQY3-bmKYet{Nk(rl=! zQ?+V!xtepV+tjj2hTVe1kTKcFuF^xgCRfH1>?wCfFN8r-u(%)k02|2wfrh|}Lk}H) zgi1&}^#ctb_J^_cu3EGNlgItEQEjKpU-rp(2H_A5M9~r0Ox<6qVPj~dN+BH<>7v0B z3*|Wb7nM*@U!e<({VTcUmj38^1U6xn`Qx%7OU1$>La4Jrz&MFQYKfgKNF*MMz{g^{ zOfn)g-q>)P>!B~hSguX^#n35m2v;p67o#&fT|uMz1)YWcCW1*-ZchoHg&cJ2Cw*2< zuY!tmZ6L+^M%Bgij>{`#g%#zt9i~ZCR3m=8#6U>up7+E#+E@zOVKv3f<-n!%t)D=J z%LrMtR1S$5gUON2F0)bs;b&0@Wxu~O`vqPUCOQNX$>=WA^T~4Ym9YZ7<|@R5R1oKZ zKr|2$h~!tr4+P0$;H5F;em_v;hA0Gt#TC^32M_+9giP{SIMX~O^sjjT@XLIgIl%A0 z(R3S-B#=m2742ADy_UJ*U3$ZZo*SsVRgaoSTt<}anibhL1U@v#*>|t&M|vG&sd*k_VqNiDN|z7{evs!IdNDN7>iAXT>w?k8p5spgT0Sujrq^ z$rExq28L7u>O~`x3$cWUe_OtM8RnYo{llPfg2DG`qgPGzYwVCUvR)f}{Izrtf*o8I z2pL4ZL4e}FBbOquH27&5M5!s9V@OnVD6mL5u zi^^xJ@ogfoNq>idx#KrKGI~0BG=^@Xk0dOfJVdqr_U)04WXS@ij`ZO2m?EF2{KXd0(->+xBK*I_VLz4(ebV2^`@9s8` zK%A7){MD&7r7@rt9aNcL9(V>)gn~0-2YMk3ZD# zik*#NAmF6VZSL}pMccEHTq??*Dr$S6p>&y8D5DvSmh*7suz)XC5_uEcTc&#YJ;hSm zcINCCPE;4dutEBL^&??->lc+#Lr8*}!TNA<)rED49yjQaON9lbJxTR-VSacI=C)UL zhy*cpY~pj&q~B&p79p3%;u*u;U#SXN{t4!nWW?XwFk(UFm}a$nm>){Sbfa zk}^CR2(uVtUs|=b`{mIS%C!lW`Mn>H{rjUbVE+}JDHN~Uw_~$j!tt z312VvW#D9VRs0(^Q<<_EVKPHKL6U#LIRE)Z^s5RL3xFFmI|knRtZ+&lBU7K!#oLATRue_k41 z57$1NSpRc-Sj2+*i|=h<^e73;1iY|rvif~CXHwuqw-+hizWUnjRjN%4PTzs3X6xPL z1!0}H+^?8p+al_9P`eHXwQCBuY1{RtIDPl(7ARKLT-ufzr;2}ZKn$9Y!&1mh`3GVJra4lY3gBEvp_u>?H zcP;Mj?(PMO1}zRn3KS_6?aBVn-Z#0)7|F%=jWyR=?=$C|^)e9XNbpy4x^Ep>1v$NrsNq`k0oO1rI&k1QG-~hJp>2)XJV$J0By>~VFzk>;1 zm2wF4S-R)WS_Iyy-qz@fxNcTw+d)Y?$OD!2`gz|>$SSb^(k~RT+WZrqeie+VhkvKj z(8fuROZ>CMB@&+AUU(B=qm-FDM4BIGP<-nt(bnph^Nx`uX|-A@=I0Fw-n#MH+i}Ff z@V44@b5i9^U}D*w?adGlRhoYfkBB!O2nKV&$BJ|`Ws-Qa|I}=1J9*oqKfs9eX;-no zsbW-$w1AoKc@v*>xU?6Z%HT~un6=}K&NM)F=XCQow9CLMSPYNXs|p4AfS~`|L(bZA zck~7KIVB~(DoMj70dK2ln~xqwNyr}>b8t`z_r1;S;!epsMc$|-;$HEyTH{|^c$4 z1Y;tI0(boiGvG)L9T?Vc8W*7(LqNPLXXtiyblNEiM?p0l%~zg0;M0Wt8k2)>`)kKF zAlSzw4)(*Qu9|77%wRCjTND#9=P+p>;gm0`IP;ne;BXed#+Hk{_<`0PxNiI0rcw&x z9F%+Di|zaLR&}{{8t)THPA41TX5 zw_W783?n=lkX~cWu^qJR+LeZsi~mnNxEf@QWX)Env^io&#><^i1R z^#C-1JyR1psT+0b@~}no3?}Z^5dI-j08%p*a?BSs@Ep0OrXAB?h4bk)O-iyO3Vdmv zC}jjQGOn!&pJC2)=7Zh?TQ~F{^>aU_J=<5+6jRPB39#GV?+lCb)T1fVg{47^|6(!G zIaRC%P&b2@)J*@uH&=G7kg{~!0?iOWywtRZS2tK*ccycD82)K`lfMBBX%31aj>%~U z=A0kOVXg8c@lsap=|BqQw4y%LQ>G-stL`){u2$`SaA+hMd|OD2%LUdMT-g%2-_tsl z1({SFsz1P(Q*iM89;UO)v-jTMcEq-yRjG*L_yqo@fW`ztv$)sNwZ7aUvVDzg~m?8e!5 zdcAxBqV2LL6L2YUI=`PMs|u_SrKPj!)b{@nF*|!P?tU}U$XxoCp$Z0+l@QW1k%Qe9 zpEl-#+rjyU;y;|5yQkgKm_+L!u2T*@PJ&?80%PilED6lTBGPC%xe*w1fpn+hGtZ1R zAKPcooF$)ETed7nOZTVQx5(YcW0#zN{%vK*a#1gJyDMr`_BU4Kf`L=3l0P?m|D7o7@+IYKz5+o70{^Devg$Lvxi07C=ROib=l6V_ zNlt|#9RZL|69AwKLuc22f5`tfBr^_EI59fQ#8;-azuOb46ffS_+wmUZVnuL@M^N2R z&iAGIH)aUclGjgJ1D=cpCrjKW|Bh@1d2*c${r5@LJ)c(jDrQWDZeP*v;Zzo@; zG8A4CyW#$KwR6RWt>;K~(esqx(1;-wbTtwMSudmbceJbP=;-;QBzLaYnZO|(Q{=r{ zmf~f)*yQ2u-M;%}#rysDg2GPM!{#`mC`xeQ`?Sf_`a%(6SOtI&$ z$8Mb$C#1QPz@lsD&GOso&~IoubSoxwE5TrWm$2bTRruk#!v`?9j!B?L?DqhynDWb?S5e z|0hp-om(XPGwdBjotB5M#Vxr!PGrEJ_wR$YX#Swr+@{;Y`n=S*8@%o7lGd$`d)`fCFhrW)qZW3j<7ZRMoP%Xzv@_$0z)Mu zf${Io<>V{I?-g$su|p95Xdc zM@+Y(xcy|zW;Z$Dr%PWooZ@&}(aDeN_SQAyWS4IpJ4m&GLK%+eo)Ph2Su#MyOeZ$h zBf@IJ2p66auFgbL*k?jo;apkT*N+M$Qs7g;i<+T3>Mu(z6(aY)dtU^rDel6M4aaeT$}#t zVZF_+mWYN=)yM~MGf9(LT}2R+nIUqJxYZ<@jfw0{L(xkeKd%Yx~gk&zr@tL>^e!)biJB6=!D zTrz;UQRLJF{_Ft6!^^QsBwP4p6(@fXAvB7mMDqV3eO#j$yI;u*6?S8y_+kXxC9_{d zd=@F;*NZ3lDeZjv6&%hI?O`M(XJZ?{=+jwY#~s^?*1knjujGZAUPVm zMK9|zu)xg*lE#!3D?7t6A7a|bPIY3eLSp>G+g8O9971AH$0N8J;{<*LgW2zmMgWHI&=Fcn}qR;kH{ZSD*3c(_m)(-5x;$bBkBmaW$vz z{6T8zSyh|{0T;XKgp!O?NL>fks;j50p3&oZ<`bdG6;HN8o1pclU~#+nFTt0Y&i1eo;B}DAWFs?DkJhkp1pqw zk7fVP)0!f#T=|f(!ZW>!nL8uB5%r3F%WE;0L{gu#GGLokETI`Ob(^{-c>mU9c;#O2 z*W1gwjTwf-IM0*wYp0rANKeB>ao%_CN;j-ayjzDuIgT-^HnjvOZbd+V_q{*6AQk9q zFELaSA7(!)SU*v;!0G}XW0Us|L+V~`Vn=HWsC#r(>fZdwR{n?jnozWZj2nm%d$+X) z_KPB>y%lh%v1Rs(9wS7Fb*3JDCW^DXfcI|EvoQXs=;;7!6uyXqkxDlPA&!Yi`N4?) zIl9DFttn*gOFf%V-;UFg)0~zVZs4|11yEsoZLc_*umK-3ly!Ox$CgGFFDOB3+p#(0 zcHR1(?eiYZA2KDhN?8gmanCJw*G|%;i^UubmWawlTf-|TzUVQ%INGa#4>}HEB=hW_ zMw{h5)m;_DS0oc<{qBnezbObAXdWdPrtjZT11%MWn=7j!^0$uG1vrB(VHdZ0rcAiU zm3n+LED@^hNK9=0X@G;v?eXz;t7V!`2L8)@UNGnw4|*J|L>z9}RC^>2r1t;F&xOjy zH`+)_MrvllE5Ew`z)mu-?z>Wyh`~^f$KhTFh^toZN%Z{o16n8k!{_jv^uv9@{#DVh z%bn+Wlh@iP%C{RRxmdC^M`$oZK0e#&V$>b@Cj+WRLgzbv606Zu%e!x*lcG1RP}ug< zM-9OSAtC5ro=rp5?0vm5kOBj?QTT4GQ22eia7)k&B?WJ=oZzX z6RNple((FG%)!yEPZN#pP^b8c8DMv$4nMbvr6^GX}P2GNgFdfoM=joMc(^U(P#4)0dKpp z!oT7j75u{=*t4tnue9qsh#ezpi=XBN{60z~X6;IUfA^Oo{RJTMTe;}m>S)vGK4QC! zR%G~+;crn!Gn)t8034djQ?|v`>n)&pw((wviDyu#bk0W_Hn^0sc!1)$H|_Xq#MjF> ziDXvpCuS4hk>iN}6!Nbhi+{9b1~w%FivZZco+>+AGlo$EGwMioe1)Dygg2%d z(TqTpFzjU8SOSf(C8ehu8+6!HY9DZteK2{P3)3h#JpBIKUP|+2P&2;_k3lK2Vtid^ z@K2l(Gop13!eL#_H2f5YjNjqNs4*BCVMyr}*106^Yy7nH!W_Z2_L$hW;b4-z=0(I{ zaB|^+1V+7KxYSTvmow&rA5$!W<*_1jM6!Lof`%Ct-{+<&pq~yEiey<)a}jFEkE$Oa z&{b+P`X5WX0|^q3>u%>*3x_cx!GdOX-O+mr?;}BnfmMyc1tatAwq-3Z(1#|1-sAiwopYjLi+U%W$=U*=>*@uEXl6#)tL@p zhTV3b^5s=iqlA>#!QNFr%AsO&{gWzw%K)5Kc&TVn4i$QkKmCuG*) zE%m{++qV&7F-g9HQ-U&oJQ(EZj8K+s2%G@kD)6K%I6f?^D76Y^h3c^jM2S?FK z)2cV#goK%JMldn#s-k#(*{QPO&pBRspr#sJIN>?SA&0mwo;hl|C@`N=v zMY@pBN=C$D@nE@GrI~^nV<@~l3}paUjZha@CPh0Y84i>S{rqn2sOh`u0|y7g)xr%2 zFo%Ilm?Q$-Nnj@826-$IRG#`96E5;2VKPloqR2G%8x<)J1>m14 zp)hu6nj?qdD`C3N1w|H=(m=k@I%A$J@;-y!>fl_;)1UkYpbPbZefuWtnNB|i_3tP? zkuj=UQOXTiIZKYRsU1BOrgIM>9>ntf=p_)@UFb3dP|!OYAV#Lk9b5kim@@LQs&tDOm zqj*OeI$G@ePYVL(?8xv?F!Qo$0-lOLrfz8lM|rSboT0G}Fc+x<-U2w%gON~{fASf& zo+vGAUn5-Vxqmq|z^^Zt&lR1fMgNPqrf#9^6bKQs*+pIFkmo3Hl~7t#W;#7&=05bX zyUZ-_ybvTte2Zu70VidC3iU0Q(F?RO$*LP9#uDH#YMgi3MwmcrESU;yryyV?S7R!Z z6Eac~aNK4yO?UG%A{#y~Rhh6LW7X>`RBNV=d#A!~x-}3eZMf@}s7C}tbTs+0crkzJ zb6czaghw2IqE1;KPNU?h`tK3+h3X@e(Y&+8`feoc{KMxBitAXn!e=OlM+H8G(J=1> znKkVGT@Fee^nE{T6!~|*wlgl<_kPaZIQTp()a%{89dK1G_V0b!WNUl#${O{gNB;_X zpc=LQmEwO_`|s6wX3+iRxpUzC1N1=qGmh=VtUHLoP3iw!Az!}jT+O)z9eU$;(ST}? z8|b0Xw@rbr&C%v=@7qt4r@^aodRgSP{in*ohmqEx=5Egt5BG*q`}UvJn7iGMEVm~Q z=m4LmC2wQDv+9KUOG&G*Iqp^4-2rdYE^ot*9lDNWvLmZ**HssVFFS=IkNsjV63kB& z?IPdY{>}G$FT89#_@&q+a;RloK+QGZDny>@#e57@@b(+u7R3S$I=ACq34<=AOr9Va zHpT{<<1_XKb5oP-9oYrML|oDv$MK_W8^G`ZjpTayqZJo|aHlWB-XW7naLZI* zEY?Wq&YlS($R__zT*5BMWr`iRvW@3=+sP7(2a0cYx`ZH~{E1E2^a*bZUf8tw{8}GH zOD)1h*zmIW0KYNp`!X6fGtU`rcEy&s3<@=)J_S;M$J9~y49#2PY@;Hg^pTJtQR7`Z z*gW%dcu?b{*N#4yM5A~3E-jim8Z)qZJ&ZgCyGH343^$TfitLu>E+LMWHQZh^oMo=p ztiXiCe-F#3mJT5DL=?w|0EkjJFv)0zvsJu4iV~p?$c58Tx$P%JQ3uNcY3g_%LJs7E zqLHK72DE#Yc)f-fykwv!B~=G-X9-EjDr12^)^qQz1`tuhFo)srb8CRdK{-|7 zma%eEJP0_1pD1DwW#HR9v`bBY+OCIdv0Q7aogn<-m<4f#OF_VFn?{@yWL6R2WW7&@ z!=(~57=*&8;S8w_EmnmE)|u8*{bRm1&8)~*jrSn z*M*dyO2NmgCoaIm`ud;{Y3Sr?6!Rhq(BXzJ3Y({k>f*9CV7$9=>jlDm@!FrAJc9TV`H!CXSIWf3e>iJ(p$f)(wo@Hd$Kl^Bd9lOg%|O=u^Z^D z*E74$t>-9U)=kUu@pQcQHQgklx-_zL8nU7iiIqPH8{DdVT0n?hqT!aZXH-$Vpp^1{ z%3-sDgM1zLmuhv>se2$rX$m6VF`AfjisNj>yq<(bW%DF~$BGivq=-gVYaK|{FU8%` zLzjj_7CIk^4~uBv9V4Y+>HUo9qcr<|sO_mocYkf)oM*PbJc2f|&&WLABsbDLKdtaN zIl$7qeG#=8pz+);tZ8=CtA9DVoyL5)*41man`@m)Fo7~{VsQM2kH9NB;}k`r*r@K{Fva7DW*jtg4UwvpqzNGt+mj zHMon$!K93{V3(iP?Y2YO=`MT+TBG-%Gqg@CG7>a%ki^%>GCN~?{M`Hq_}S39No}s9 zFf{f97Kx=zsVLGcct6YFPpUI)M4=EfgWBw-t#u_X%qBGouR8%fEzKCpBRU^VIIk>) z9`RsPxiVn}M+5G_egF;udAHlIcV_XTLqWVPsdz;Peg4l_36s6+=AiZ;(c zjIwAShObMK2E#n&HPGtp`LJ_jUBy(2m~o!g+e@Luvui4t9qD^E95B}rS7>krMwu|8dkjtZ$&{`E0X_>2`LTA6H5E;WB+4``De((jC?1dT(L5 z_QN!>1x&Bk*+$^*UWUo@>Dgt%RrMU^^^dN=xAE)2e@X@aMOVD3jMh90+_CcE7{rB~ zTm}fFp!a`_8`)ys20ZKSa847RWRUnSoAhqQ|2u1r+R2%vnUOEXcGvD!{%J*$* zhnbLOEwb`h|MDQ`UEd73Z6)n<-_arD)BC|y*>z0MQc`()RjwuSAZb%wYh9xqAwx?j=GPwkwK#Z!EK)wzsBMhuikuDJxX|M{z$vi#UQ|#PXgabn5<< zRv8vaMZPNZakfUkwmqY(6saLJduo`$0R3WVO>w2Io=Dost@J{f^%nF{cqPtRVx~TI zQtlK()^fT4p`17NrY3W#$b-H3Beo|Z06z;*QHFUXBU z%_4GT0FV-!NB-@n_TQ~A6+f~h(ejI8KP!pXWYhJl8OR(?E;G?QV}qiKw3t9~bzk+7 zup;y%L?{{(zr+|2m$;k$En_q8&t?JxeL<4a)HRu?{C#!%AJZM!s4)Rl)H1qXX`%%I zvmyJujSicgR+2tt6&z%vs^GD-A1RTFi&KFl93ys1n`O8)N!P82NxP7NwF{9oTF=(R zcr3b-*!ni>L1&$bqdi@gp_A%ckBT=dIU0aO?(cr7vhEL~QV0B1jxr90N}RP7ac=Gh z-|N!;B2S>{o(dDsa-jv(Z+pT|U(#CNV~s6}%Sg*)KVosJj{-U@(c7p)Py82@DyS(; zH9H!y4a6$+gb+`+@L1X8Kj@#!$ZF!YhpU>6p0XA{`%~7_-NIK^L^-*;Hd$%epvI># zB0`K@P0#4;h_6Y_MrLaR%T>;zjE9R*Tvv$t&^1dA_T=V#5mE3}OC45mKUq0=5;QiZ z2$Sy}sB0k0qKHz}0pN=)U*da*APlzAK5*6+-Y76kE?tWo9IcuJ>c$Pq*utJfSQ!LF zxG9inT^pmL z%2)_1f7!7!d8kAym=K)wLMVGQmo+plzscnC-s*daHF!@-yeTm6o2rD%I~sa1|(w5&H4ve|=M6HJVr+u_ZyuZ*$`a z`-VPanSEPD(RLpFXhkq@W*c>Eb0!cvZop0jNuZ? zWlA(e)K(jRkiicFREwJ5h{=)z$mcB>NFKM+VVwlIk2mpf^Rk`j0v2*|7K7PNJWg#d z^}vj;7$tXh(l8pfqM{kq49EHm%^wV@F{Zl96CI9CwLeC}jd~v1&TFttQ8`c?UVT9Q zKkwuJeOy=Co(uYP;!Z=&oiiv8=2uo<-;t2mSf82HX>SS{j`#S$n-0^pOH1 zHQ#PNKd=7f`4{wlEme5?Bj`rx<|*iH<`ckmw^C)N=XItR692y&tR(5_GwCu&O$a_Z z%*4sL{$E8gQUJ^4R_DUrFb5R;PTWLt&NX6+H63nPzv+Ba!P~Wx!Bh>t-jX@%5wTB> zYKUf}gTBxwcTW=&2q5;X+O1BP-GKnVcKwjcv(7npxtG3 z9&#ja;h$#0#wU1FkM@jURKLCqtOYm)DAa3tt6iujR9kH$*JIh*c5G`5uQIuka&dCxh3$7so+12S(0GeOWlA zT-bboPah(5QR*YmG+-f{_WQ^m?<%S^-D*o@u7yFUb6%5rvO_K!u>}zHcZR=d9Oh+$ zuY17>Uqr?>TuOTOO8HHY1IxjTWtVjZXfhi{Q<5ey&TVEzUtr@j8?4XEsQ}-GNSa&k z=HxV^6(VLv;0Q7>Dd;^~=o5e(sIamXabZ(vA3ta~92$KdkDSvDUih{+$(TyVlXd2` zf`iqp8k0hSGP}=$`sXY;Ni~G$nUge6zS()J>S0k(bI=kY80w+;ZVg&`e5<(@@M&7{ z7ShAlWrat-NWJZ_gTuz^)^^<_9gCL71=)i%=cwi6G1`d~c$ zk6&P2g){d*)Jct2CRC*26`>f|W8Njj-rX9JGqUDoWJ}2zY+rxO*DHe7RCnR+?6cI;EF3={AAIM5ZKL z<|GCAL@H^~ywF7OnpNb4kNESRIHri&wCp!wks_HA>xZR$;{*{a9ANAITn51?@gf!F zCAtHuGv2;KqyDJ{^~&f%G8pIHmBO_D;JoFU9k-L*G9bCK4ueXPa_NDCvlZbM&8hua z%kX^D=V1!eMF)pnPr^JNrMXUrD0Vb}MQFKTK0J{gwVspu@+7p!^<4rOymyr2RMqy& z&XmAmUp<~Eh(|-X6qD7v>x z|0WmCqZIS~B%X#z@y_C-xN{R+A>*>!#rDNr*QIRVf!a+=o*D)Wt%J69Lz}Wbg4N;} z%_#vDYC8Ar>&s~G^iT;NFmj@E*(jRbTkk#w?4pvkb*8HeifQlP8I^T|B|I<)3BKKd z8Fc|v1Pn5MRa%LxwH69%x+l~nzWFQW`R2`Pzy9)|IMoy6qnY+kT%rHMzM8$9L!1b& z<4i*+EqH9PZ84?}(GN&$omLiN^j&Qa9FmhILNA+ILV=5U^}RaX~jH_zBaRw||5@@BE^! zkZUHgT`(z-7`V3iuPs7SU(ojK%F3LYtpAwXFP^-RY4g#U%Ch=O(L<0Mv~|yXbUFM0 z7WfUEbeVz_wm=+a;~Tshi$C0I7M`8T3GEjJbBLu?h9wB=H2JuRvlY$dFUIWE!qtY= z4rj3np8m24a#t%|%8Iv5SC$*MHcnCdmnfVplw6U-3!7Y)=jB7=BxL&%#~}2-9WgZ3 zLwq_WjSyfO-4B@P6J+ z3i!PqHu;AH+}DFTV)%j&SV;;*dAt(ewHQ1X`xoJM)_psR>+t>gf76Hv%)&a>2xrL4 z^@s3`V@m(0>Bs&b|J9A#2XN_8&nO?76hHPY(#_@%HMNN)4O%N z|5WqCPXY|K;v<$Sm<6Af&CDXC6f~3xGt&>%Uw#a_;*dJdC`7bj5_G~Osl|TvC$eL%PLn6+AWhr#As(?LxPSr?b>f2mU-J*S3Iw>{1 z7t8cbFmJu=zP`l`X7@&_A+QxuVvO&E_blF+qWFNyZ9yGOgawEIpxTw8HOn}{;sGpg z8f;r9VZdZKmgG!u1o{~5pJ+3`-2=^Vh`q5FK-dkim9N2SRCJQw;F)*Jh1ai&u= zFRx6I8>3^>_6OGSbzC#V#9+)l4*o-GDR4=JSu2hh^(*FPwe?%)yyB;ufDSo|#uqAh2rRLfvji=P|%~M!e zmlXV$leluT|G=Afl{}b#7ypa$Cy~q#VDuE4P_O`ID*s!mBpjLUy5tQ}gI2c=*6072 znrrc&1BoI-^d!P*zJF&et7b!0O+zeSx*6h=%2Z5kjgR>KO=T@c^-Li9rzA@p>2H5-fVG`<0ROjov1?Ck;W9w%+Xb+ia=rg6-H!JdQvOxPJ z7V>-}aOHpGmr<}m)k^j(V{VBAuml&us~0iRV5qrAVoV#(&e;<`hE(zI1jI`4w|g2{ zL0Nb_>lMVVzq{0(*nUG)_DIXyPgR_f=Yo#85l63JTY}t(SLIm5Rwm6c@V@eELbaer z4dy%_A@S1P$IOCN<`ylkt@ ziVr$H3>5&5COj(3bd>1}eE%9rT8$ui=#=bF70bE0bCLMs^(vJdZ4yQ{G$wr#R1SVk zoJSm3+zdS?PVd|e`gC;{+!E&7Lw)>v+ z+SDtIX3o~+)dtUCzDy2dDrMU(Z`uaqpE{zcVlc!R*Z$pK1auDNH0H<4exB+v@UnvG z3{@G0=?$4J>#c8A%i8pGM z*iz_f|GfT^sKQq*!jivzy2X{<@}T<^S{%D z!#{+&^k*W=KfE3^{+qacnAZuq_z2wlreY`%U&7+Ro@3JFCWa_s8@zOFb${3jP^|e;j60 znbCWWgl3ObBO8I4oGS84{AX5i0MY@qrBZSDwtoGzC~HTluZ%D`1uCxUSb=PDDW1m? z*zde3Jw^g&TQ$LC5dl&;dr<23L(fMXUfpo=rWCvTX3Px1phYoapX?syu+1C+87Ak@o4h<+MpMGaCG9BY;}{c_Oz;*< zEmc#=pq-MG<#I%Ga*R76ZowuBQGK2kNB1#`A~o1x+7W$TG(%|;`FL$bi?3?9jcgQ0 z0M}n3mHMOxb|fB*S1nB`I^7D}=P-+-?QZo2Jauq}MQ->65%4klk<^OpI0@3+TB!O_ z+0cfo8u}U!o?_i+X=w6=zCuFt=xjSPpmu-KLZPK7=dq$@AwW1*R=1q(vx1v+CaU^= zjNJ*BVu7)YCAm%Yh9L~7M8*;*gBG7v{?&k0feBhCk@?MP_tCIhk}Uxab)-AuQ*<^L z`~@{147J(M1dUyMJbs12RH>_db#>Mstds7=nd&`DKq?lo44muZZ6%ttxZzY*QMSAL zZ`!N6!Ld0CQZ^XENZhHPMbX=9a2<%d`aaDD6z#LEyxG;ZEaCW%Yhs7IdgdQFz_V#& zgrSuvIp>zjt9(E@;Y*S0v58~=DbW5jF2SB={G|wo_32*H*@1Oo)Ue%i7?3Uzau{g0 zM!ETUnt&&zypeROFBcD`ooAgzG+Mw=yo0n$WV4ivNnVR4F@Q#={@AH>#Ia!!>_dhvEGjYE}G z2k;M(r>#wRstTWXE$0>vb;pwBFYOP1GP>GGg*!afueptTnHLKer@8) za&r$SziO=jm6LUnJKC68i`u0w`!cU2vv6w^XsbGqhB_|hwA{bYEP0OEda*IXJEK^TXiv)*7m!sT4;xYp= zhwD@zw*Bk7kU?Y~ta16ljJUrqL<_(s)%TZPW`%F7xoi_BkyW5##MBE7o`U^w|Gxw3 z|2T<4QWNGbpZswvUc=J-O^=?wd9xQ7JG#tMY_ayfcn&tYlJ0ah3xBS=sC9JlBwt)B z=<&L_muy^fFz)JmiHYhg9MIf!d)tQJ*dEyu;=jK?|KxVk7Z`N8)cW>55cs|%tK#C~ zk>yhFl{xxQ5*L)TP4xdGFQ9o&@%I5q10wJ_Cv;YcOa1q(PsWGplBkdqsfWE_{N5oN z-l%jK3NAC5hiLxEm~+#UwJ9fhKJo9#CFNME|E0@9lzM|)@U}} zHd=!pffb%ByVUq%w0LL$6vMc=R3E~t4{(~hC@5mX>U7Fvpo=o)*Sk|+`hxKC$1e0sIfv(~M1b8}CQ z+73p4-WDE5IhrsT{?v-L#A3Qz6Tl6HW@gJ~hqUz~Re6xNo~}r0Vj(8{z`@~u3}{@A zSK`3d(a^_$8-ds($c!!FTZySpI>(^SEv+PwRv_|7r)Muuw_>pL)p21n$D~Cp8#ES6 z!6zq=aW7!guUg*!j|Ipeikv<+2TKBp^pU!)qNU*G~%Ni@ud2)Q9wcbX^Wr6Q) zpkbboEDtvWuc!fG?NQ8`B6xI)dJ~EoSrAgDoe9+ZG+6T)ZQFXevKlfBr4!;S5x>UAB;H>E^8ri1Y9=4TXq9=9Q3^=g`AI3_=laipi=2ZAjRf$)MO z@EC{q%=ZAzO6zExdd>87I#1E91*6mYOX&u{9jsaW-EA%s8n(ys@o3~<7F*pXX+bP@ z)mL^&Cc5dN#WPJb)iquiQ>|tlD=D|ynOS302%^sV@^78!U}T=h%D^?%FlH8{q1gBP zA%VXyL?kp5XqmX__y~Iix>>Qi!E%|SEI9HC0%on@kuz4+{K&MnkyxR^2YYNy zT`h&ljM7BdbHv}SWCgJKB>5a>sa0_?)2h?6(#`RlHduWtW!BFF-41#h@Ry7307y@c zV9;_T%Fhz#$~68zegS+c>i#St|FpG^Wj~lJ)FrpWfq~4k-_SW*bdPK@^nO>XbxLv+ znY!B3w&!v(PldoyqYRNb(d|D4N+KmjNM>mR8ZLSgd4ZmSN7jk)mj*i=bEYVT$3>Dsnm+|TY2jBMUoL#LSk{oI(jgQ zSCK7QqSCGYzD5%$y3{&l98(5$$1c*So$)Sly8Fa-Oclo7W7T8+QEu)2VyInp}-Rq2I{rIV?6v?siOq#k8?Ux z7|UwBq4SJ_CgXB~7D&)VfSRrXOA^WO1yL;ma<406VueT=AhI;})E$+ED8ZUzYlrw@ z<|Mcd;n(;xBQ{P%Pok%hjur!4&BeeOJIgUL8XBB_=VoNiBIM5uqL(R^WV&cqQ1mYb z3GvpFoK2~)!R{K?o<`4_RdqZE^+G33HSIkvrbOjcl#{hkvPo0ldN&dn06%-JhhtZ} z^#?dvv&m@A;xFSl3(VE{u*)OX{d#7W8K#M)&wRdD{s&`@MGbiB2YAUa5j8cET0nQB zH8+wua!C^}Vi!||=0x5m$O*!7*GB0=$5*1NWq6o|R(fm{bH!9I8XR*xLLyyA zf+z)Bk8s6wk8N3MmJU!`uDXzom_u{Dti!4V{FP0`)Bczo$x}v+ZYL*2vXmCyLvz?m z*+mF=5ax$7ML(05_!sCYL`+JJAc;(aYu;A1Nc>%Zk?uV#$ru%oFP;)$Lj)*#Iac}p z^bQ?mH2izhA>2g=SRRwT21Wh%SHIk94DMFO6QwZbI&Bb3U|)oo)6}A9iK9o*qDQTN zb%?Z#@JgnZucutf{~6-+IPpLZ3eG=Q?CC#A!57~>gjHQpOz~I(Rp+3C;6Qt}2KMr; z0rH4-ui6~63F9G1$O5h{GcvKqi{5E6Up;UMoH}(#&;S%FhzrRvE-F7ooP`v3h$7vB znzn_Uoybqt0RTK;n7{H$2i>r};yLeDmkat}UmjNZd%{2sr-tEQK9YM$AuIM`CiwwX zJY7b~m%K&5G0V)QnhSz{c1Kn1G55|U;hY>2X5bX&ZJqya1u|kGVFN&{>59Eb#=Q0dj zu?UB{=)T~6GxLaEw49l*WSMlWlC0cHF_l!P-fh%~4YfBLN-rrFS@@kh@`cLXl1nkh zxhRaYM;hDexf`$G;PZc~oJvoDqF62z9v>(f35Qbe?o&@?`Tn53nKiRW(|8iN4$Vz@P+&%7C*M+nf}*dRU2Ni@=P0tMwc_ zdgMI0zNm~i@^atwwl!esQBP5HQsg5b!l=b4A(F0ttrZ2(U@26!>dW8M=cVD4nXH@D zDd_2Igjv^nc9@qR$TH_^{Gz+QM+V8ab>AkeiHU<3vMX z(C0X8f!erMwBnNHss0Q=)qgm}LZkjxscd8f+j|G`4!Y z=bS|9elY@(bd2raZ@0CauxdzJ(h?F3Owx;DAgt`g=B2=9Je>Qi$?BR=@Ee`K?P$TW zV2ztBJ=IGxl^9+ZjZ!`HSFX8n2v6418|WJ{(FtH7{L>$_;}sIY5iKMdnnNw5x<%D} zAFL13`sR-pQR2n*=9_gn*)Igq0O)FVGoP+Lxa+>1D<51QA%1}%sb_}5n^t%*)FTmR zV(+QEK;)$b5A0(OmIsHUWonUV&wph9R+@hlM$&e z10p$8-Sw@X)Kkpe1y)-~UBd8cRDM%-f06L0Mhw4+@WicB?>#x=#= zyB4^aL9;nEbE_RHnNI?Sf2F4#<@hi#wsFweM)T@6HO(fiIIKpHVq)ZG^XTUB*3ip^ zhEnDxCBIeD)e!SbD;bvAd;niF@Y16AK1TOW^HdwNVu-G*n9|0@bPXuhFb ze`0p4CXNX%S`9%?{Jo@QY8xSWKXZUFluahnqfAg|<Z&g7;2D7FWF4qv|X;!8bW z%gKtq{k-Zq_Ve?ydNAmEF8U$XXYhV9{wcdk^y+Lsam#1&;ftfcRze@I= zt$$a3#3hp|OfDp7i#pI>ChPqu8OM;N!mcOE&E4*FL4M41O8us}G_Yrk-_YlRq=w?%!bzckS9;tJb>fd9rz_-EJ9ubH2yxn^*TpA}Sp6P4jN1 zZkaoC;N{XI#}*IJ9tC0|4EHB-q={hJaA-jQAQh7Q0=38}ZeIbJBB6J^=2wam_&$^3 zLkR?EHP8*Ecx>KFKV&BvP{A7;T~LM05JF{i3;&WsXoW^In#f0y(x`~vwvLy1Rg9al zG%i(+j*Ur6NrC-dJy%p#o|~qCLk=~SLy1oE8}2ZnwO;YF$Q|FOxHZ4m8=nYFec(C%Y&w zQ;8bv^Y;QEkBKaSuxK|yhL3p2dx&9zOah!;}@;-=U6GId)Lm0y(d@QA5sHjEo zqJv_fc31!wetv#I!924nv61PP=_VStfM+(bQ+qPU?MfY%9I;; zSV&4T4c19WP(;8*ZQyu<)Dr+5p5albWE&OKNhEw=g?q^Gs?t#Pc4qhzVQD%kB2fx( zvk@}O4bvn)OhtX=q%;E1R2f^t#~C!!bq)-C5CLL^D0C8)`qXF{>Eiip=0veR#kRaG zMYnKm1_X~92O8xxg@^FqBy=$`U_7j56?9^8NjeLp!66#hYWJ9^Bw7HHO0ybPS}C|) zXbCQN@GzBd6;`*rl;b4;K;Fihpq`J+Jt@kkXXoO=K~r0pRp>T+l>JSxB{l1VbwG>uTw+Gn8hzI$ZWrHJv>ZZx)*< zFFpVPl@!bxSq4`;bz0U`9Ti>Fk@e}kbM+dA%oNbLNOcRxaWFS6>p)Y%hbBP|2+|hB zGL2TXGLV!dd!m(uRBRyiMiLEfgPq2xSUQbBdF?Uky9%{Tp~a-aAyZGa{IT2L%`Dzg zX~n@rO23X6!z5`{aXuc8)>v1>juXOOr^-81s+(&&KNx}wP9`Uks;XI3MW;kdH6uSN z3kefOTvdfne*fn0L|froTQ!;5e}Y=1Q5(w-*?RUig^V+7Bb=O@=`oH&XS*r5Kp;Rr5VJ8oK+hWV%Hcr zJ9AYc#QbIdKoaF?6@emFn4FyK*bbVosb%Q$s;tN3a6GoL6YFr8Z}tKt*0N;OQ4547 z>OYEG)HT*I+(6tP01X;`&m25_S1QJd#W^R$yr~SpWzYy728)SDkDC$(F{O9M_8CRv zRW@!3CCfEn!mPoZB1c2Zu6gLqr3=;z$x&LQwOBRqdSP!yY9Ep#c}GAh8my$|0_^xw+U(G~Kkq|SZNsmHOh!Q7rcqR!dIAr+>6_cBwW zjk%T9rFs^j)e_=8;N^b=g0HWhw(V0|bA@0jaHG^}F(`)cOOP?oGaQpsCJ^AFsV2Sq z$tK3wLfgO8G0UsY#y61UX8v)QkXB_XK7u_8lgLI=aw0zgKb48AyjrD|dTF6xwLGq> z0{l)`5R|A2!Q-lof!&}J3q}rcECSHHvPd?k)5T3Vo48*5s(Yh#jiejU4leCWHzWjg z3kDo;jLW8rl*kkA{svgwq7#*tg&5V3B@OpSqR{9>qaUa7l#Q3wqa=%JYT4&l{{O2b zXw&xUr1Z4ywt3bX2?sd8!S3c5$rke%MlcSTkOnopY%c#&^BDTW!Z!KqSI>!n@RrZv zp2Looq(l>RYRjE-^9-$N_P?go}Z=rD^kAg#eMqzx|%7MX<Y`A_kGDYM&LB3W3~$3)mb&APUXgeLRZx+agC2M28HSL@%*Fa`bOx!(gCgpCki zF0}o87W_OnIT9&S2-4E3#EH4(w?SHD+#6_P9oK3qsZWYQ1E^?{hRHQepMLfh5@uPt z_6UY-nuvcpC2F)pkk79g+}s1=!n;^j|J4nXU1R$mv^*V?E0!eq{oc$vAycBHsw(Q0 z^|+YJVc&{DdZRcEASuQ35k3GhTSo%VI_{Q=8c9UN)3#vGCr+_Cq z=hIc?4HA14olAx}w!k&kaGm@*HpynKiq9Q&MaNP51D=j$=tW7QAfwf&QB3Y|1_$VV ztb#K2YiO-yD}gRcQ=x34N|s|?@#upN>&&>9+1mx5d4Me2W`(&IU~(YK;CVRjb@M0; znpsTEcOf}vS`q^(0-gMHf)Fx^_>GunY`Eezj?9R8P@Uo-b^NJN;8dd)Mv;%IG*&5j zD<8#-ObX8!+dySfC*HBZMFM`R%iV$hCoE32^^(eDSl^0aTP90UEZTy@{XlX z?IpVg#f-1bW(qO@I@}7Zple*=4-~8X{Cu-&>FA6nR7Uya3Rnrmd<1!&-Gk+lJv1?Z zs5GY4>b_9CZL4xckgoE8H&0|^-rOxq+JKo%hO44kJRMbkO7##bJ2=6_?@`xfiL~3d z<{}sCxy&{{nd?^X1q>l*9F_Dk2t^wmb5CDA=U}sv&O9YpaBa2RM%Z4{$Eh?fSV&QL z1F|5hDSLjUa07115Xh$JS-Z)K72TgpgBM3GG!cUYYExRkrI<{!7&E@43N;atgESVY z-U;;&k zha0cPXrwyS=3y#3D$TdgAHaTB@sT!=0D2OEBojC>F;8tELP<)EA4mP{>5U9QPjhAQ zEVE`J3N}UD*~DNh3{D(23{rx1C7~KtZC%%$8IZC^sZ!$?hw3nbDq@%RMqmk*9sDsm zOiNj9RnC0#Cru!QL{wvaGDx>LjokzcK%q1aTRFd1R_GBEuRRTLRnXH!T5$d$6U4ie z8CO-W;a?#M_A_K}>k?ir0IginKnzkru_S4bp?(kjLw(J zgRIgn5924qaeWpVO&Y$L0#$RS16ayf#WE9Zy>(M3wJ&v!G`#oAh5wVT$5+X|SF6-C z^D8+nReG)W1jC*^s*|HB#{5rk6LQ;B;YcSkadP5#)su}t`m7a_=;&X*Bxf8{G6p&J z788VjM6t))_qcO*pGav{yWy{AwM1kE9U0uUrjS|ZsdE@HWPbhQ3g0Ws6XXWTSCxO5 zkF61Dd?UejDnI-{9S3C|Zj9Lz0TA2$S zIjF~s&zAMI7@z?#E9l7tX43kD5{i;k_VBmS39i|LJep`J=i?9@?sBP-@YE__E%z}s zR9W|s$S(Sp|F7ftf6YhmpoM=g>d4m_eeFj6yyfnHo0Ypx=?hZn_v?sa0YuMmFrLp%wB1MHK2qWt^IC@hYVAow|qFe@zW zDU~32HEfNeC)|B+2v9mam5)G)>Pn(my($plRL9S4qz^M+}lRdfvHYun`yM0^1~C4Clg|@DMhB8yVv$vZ6&+{B~V6Tb%I*} z%D4?h#p==WnGfd<08%>(_BLYXPLJVXM zjKHFTQ8vpn>T<^fmBx}_DK;@l@nR(EJ*&d7+M)_7o(@g3x-xZCT%*z#E(E9$mQK@f zo2cq7xioXRrAUmKXURGPA{Hms^30~eT(LE>qO=&qBO#~&hWJrege|%NhrxbC0x?N2 zP=w>LTvSH~E%VX4R~N)8PRm#YQ&ueK9mL7dKK#&dudyc4Pl<(hzk>B0!kHb@Txnr{ z2#_5?-Eq%PMMV#WiV%5Xk-#((T{6IGrNBovieqhko~DLU0_p;;7PbhfI_Q1W8>Ts= zid2JJT(eVQ2`4wLrq!g7Aq8Ef#eU3gf2K$UKux9r{O4+4SI3xKS1O@q?#yQ^LhD10 z{Gr4YSi$$RFx(|0QzN-|h}Rv!W*@=&Zh42YjCFj9k<68lZqgyO4o1l_w<6fiF^e8e z`7>{y89g(5yczbBc+6IY3`3Un2y9<0Iz#QSM>H)($)o{}3!2GzuZ6KMNfgMU zqr?vt$I;^viNaI2{VurgEDu+i5U%vAfOC9uQlx(GIH#7qj<5LuLKbKyA3F>iJkeNR zVJ9<`kwV9%G&Xvlasn?l zEJ6wi1zAR8xdi&>oxqD3VN{~))U^*uZ1AL(VqL}IE4rOD>)_6uu2SKDqteu*4lB&k zg8M#U(Jx_aZ2R)tK+`Z_d<8?{unRSaP5mbxIJPY3UCMF!yb@zHJsg-|4?14`*;Hu9 zF4PYYJ`C(`#{zR>ey(YwWz^OCTgfWcQ+@bOb{%1r_Fqz zEG0*$;V|Zp-vQ7r(=}vE6Is;*_g%XedlVA%`}%Y=9pB=~)eO=oHOt$B64nQ`I%!{d zM~^~_$_c|@;V9Cb7a1Bd0{N<61`nIGNhsxEH^l5qF-m&{RB=Gnu2708$M4w?m zj>69CS)QomEmCecd@!Ji46QbqXF_c-PgAhUB97vHC7cxLbirmsEns7zVV{JE5KQ;T zVHeKJaY(*CqDTF$%jN$XowhQT+c8V_MZJ^q?U6m8HxRA_}uFD z&QB-lNh%YTWCG5a9leU3rT-^M(Dy?-{gi-POkS-BS?9lLk9@>rQ&F@1)JN zS5;A%fwsoXawKS|^uo+Kj=gWk#e$)llp|oU_#^9hiXsw~6Z31LEs7Gm!7D0?9a-PQ zfa-0B5hDrR@8ejGI1aKM)bu%*0WBM;I!7}~J++P7U%#Py1Yto7j^Ev0{f?5OSQ9j{ zH^U6h1*(q*1FN_h6-@}qNHgBIq^M??eMkk9q7{pFRI?`LGPCpb;@z<6P#O-~lrQYd zE(hNkqJ^inbWmZNAgZ)%o4PO^IEs;w;4J7OZTLp9uCZdR42z2AI;lYp)ktM6xyl6A zdTnbj`soC6jk=i|6Mp;NR<(Ui1#kou)UQPXLS z5P)UckZY65R1C9j!ZE$rE>>flK2LGLTg+<6BUufO*O3=}Z}=&c zux5EUzyz3<1pQ@-nOSUmX&Qx4PD!qgT}Dglsrl5-9$0q;t&U2FX(8~1pfs6cC>rtt zA{^x`AkfN_YuTfH=`cE5r8Hc0A9m!W(pXAE#x*npaZ14sR`b>6nO4{-xHG3R`0u6P0 zEOCq@0@-dlP*I;$&d8il?Uazl26$1qlae%_p7nq}PgBT#k+c-50FEOGvtyL7lZmE9 zmgG!C_yNmQ#sD1&t9bFeeM9@!!v4`BqH_<;{q751CkEkyo_R6p;>UFrRHW|kxhlh_ zXb;6dB0A)z-0tGAh-&OKz~UBGD`XL9f|<-v7+tp^6jG^%8b+j9*J}EWd|tlnTG)MF zpP?>@1V&VwVuO}${|OdW3aKd%ks^FKk6(C{rMZeK*`!dJa6yc+r1lAXBjP?ph6=zjdJ-dOrYg4!bXY-i6sEk;+` zTv*RZvW+ORp|a!8erJ`B&K$ogEAGnr&|YFkBqNHTB9YRSMIty5lF4nWMPG!h+gL$Q zw8UH(-nh)#ZTYO3jF~Z+B%$14AO8l+Yd5^f3YLkT`QyPgHj6mvJ1v7z6=Q$(bdJ|3 z23cDSY^^3K<-jK=l|!PP^}bd(wJgyVZ-LS0KT-ZhZ3bZiS4|(K@)DNAY;)6b2BSze z6ke_6qdO^hrq(R>3aNKBg^+WEcs0%r#9~1vr&3Bn5m8^~tz#~=;Q7H(8}jH17)L-4 z{bQvJhYF$yO6VW~6>t6nGMXSIHken%&c#PJo3JO&Q>0Wi8(=nzhMfd?7YU7rHJe7E zLrZ0=9LK7cGPPyjGF&b(o;1E>2G^_ZlB=m%1VC3sEewVQgY+24Xsm}X;%8$M5;D@% ztY1BU@=?RX1YiULztz9ABa+}jC(kz_zJ1YPTTjsSIH%93CGuW(blTUt{dPX^C`%D* zmSy9x0-g%k9vC&iWOl8hfwh^H9rL6ih+hZqO=e;;Q3`zTjbxn{LT1nWL%GLH6+C-^Sb3C~(-7Gd* z!0-@Y$z<65XQeprQZ)P(4qARG(tca@%k$JNcX|>=JHXb%z_=jEaS57Rc#jj(61)YcS`!k9u zYX$2W$ys)X&~KhM6I%+fcKEpzlp-I z$jGcZ;yx7FnVEg2hYL^NcRMd5y)LfX5dRPTkrZ)HNOcokpgbu68k_1SaBTL6E6U*y6n@$PEEt z@#_4=`Uv!+4W}#R>A3IjLB95}dHU8-z#BdHIW5BVJYot*me7uL!mSTv_5OPT+*%DYdtgsE$rOhL&oi2^4A zbh5qF;ryy(1;DV+tbc1m?r_qc;YrxQU$9sj zE(4p3bct*^{JUcs#bsDWFet+jGcjgnXGd`uqvg>g8D?xIbWrb1b~&UGT6k<}8^G=M zz%b#DpdK3j>KzR0@kEv6)e4Q1%Z9=dgv?ext%y^-VzlYXaZff5aNy~&2LTXS*!6U3 z8p(~O>);cHbEe8;NW9J2xAA|4PT;{c!D_R`Xr}c`DIuFj3-pt@P1itO1Crg{VHtqP zwz(7q)mr-&fWJ?^Jw)#On&q38OXc9g829NCR!yHSl@Vm5YOEw&IehC#wziYev62zN zJa+(q2rQ`%fi@YM+bMT26wS>nZ#+^Z@NV}Tzitqcn-q%(E*`iF(9l!Am5KoDZ)wVS$|m_%2oWLfIg*F(x@n zlqHoBlNV(f%^KepF<;@TzdAvdEQA~%O!wRw$6UO7x}?MMgNx5GG<%UfvV#^H5t5Z8 zH4GM&41!$jPi4uxW?Z8a1D&$mr4-A6MfkV0M-J|qqcN>Jg~rms?C}RFoN3TDPUn^= z-2(u2=?q(Z`SBq{$YNp>#~k~+Xv*Fm@ZE}19Fsein(H&kFA3P)sS;J_oTb>zvPCO< zoF7+|j4Zno<+_D;0S>;1;+b56fke z++k5i+KHmZh#OUa){DvF#?jv_i7DQPK$2oh$7ZmprR*HJMf|shEjdTF%yoD@gi*A+ z=XTU6s)AdS`*&86x+Gi@-ZLBk$Vbx}{PPWwgGG#03gaUL-uBFsFHdPKXTS~`jokz= zhj$ha&K}Q(4A){Dg=2oP>Mx<7np1fybKJ3fYMWqw#1_A(ReVO9Hjpa^f za7d9s4D}j&kqeFV<@or<!Pc}xA zAZm8;h(FDTkgrIsLC4~mNaB`;4UgaeZZ(6VnO?BI`8pOi5!n-5v&B4Iuy1YC(j71% zYKy8Y2f-z`R21_AkSIYoavO9UV-V<8hnw>R1~e#N<%56kA*IpEV~(~$DRgJ$^F(v_ zZ65H@jNyay0}lyY%~@c6fRGHkg(^$GTe#=T>VHnN5usXT!XLGx^;1+YlI45Uy$uC; zPmqhMV*-bN&GQ@GP9E?2o|)ge7={12PgXMPxA}3h7ra&Wtv8$fh|CRFdwj2c zV*ys`cG1jxP6poIua&&qJ*}#iPDgd7@^Z~!316o7hDT+ z^m2D_5GZ@T5$`&2*bjk&u4?{&lf~SOc(-Pz*elw%v$&TdaNbV zw?zf9ft{|OAtOsm>Rq0W^wnxwn$~7!pT&}?fCiI=qrvc0fB-u`=rhLgVbgP!5T~G2 zcaab$&~PqG?MyruSG(5M~;(6d8;+YmLlXjwfpOg3A{L3zD!`!Z7bd+-0e7wd@~Eh^61)bZ1nyJaI!lymEikvS!8~A zcm1(Xh%D4FbgkRz@Nkwm(?hT*n2+#L=YONhJ2ORp~tEK-k@{+1(u8CqFR zG(bgFObt`8W&)jfJRHD%Y(3ECdrF3HGC*bL!fBZvkOF1IbpmC+_}u#NaZo;5mm||~ zr2&o=%m<(W=kq3?^-9z4DovC$_2K@|Eb$1(yDo5B>U{6-FSCBzBw`E=Rt-N^I@sf% zD*F~t_s71E%nQYi39+A754gD!BizW|8p6~R|6-$`MdW2W{asF_cq5as8ph1K9LlTX z0_p5qXCge;^@-V7A1mH%RHzIF`caWBKseASgXz|IlY&(*k*}2p+s#iKvZn4lHzW#F z;<;S<#3Ko*Dg~7{$nNYG7dVQ=5U3U(oC68Mb6&7Fls#2)uq~r zi5FOsQM5GB;~W-8JYgC`b_0%gBi?ej0qib@(#SC{kcA$LC8a~=rHRC?v7jg>ZPbY^ zrJBT)0*8*Kmzfp^XRV#~zKAwEDwrr{#cEC20W%|s@u)fvz_hU_ftTKxU;b(O;wPrEX*WlFG-8SNP&uRGq(~cL789dqInlVv%w`1 z3307^VOLr%-9euyEQ50wov?{p+;R>LFXVYKwtI7c_s^#^#l+XBs}h41t(pLc&-=ke zw0zI@#dWlboJrHfTez{CW!I6g!>tJ^5nWk<8JP`HlbUAuSVOVw?5nw{4i!#g9>APa`Tivo zAg%(p))4E57IsOYvo%8DN{nlnd5CZ+wVGVOc_o;QOUl{a5{b`g&xyAaZn*JVA0a5j zN~#^t>szwSf~Da9Myiz;gJdyxOu^z-L5HSd3MLg4lBcHRTecNGgAP98b%$gEW~J>& zDIeMaGoAl^i5E|PtTJ>ZPko;)u3L)vccATkWI*=lU9Mqc_O_Xd9`yHubM{_z9XiHIK zrecvV$U}Vv1{qXW+&hMJxXK+Oo7)BK;SF$pIFraRo&{nIT{r(EZMD?&Iz`RGFLY|K z%o}XQ6r*}(3lu(5#-Qiq^8TkvhfhCdcZN8jI1v26SPkFAXKGa@k}}O)8WuMUrJQL< z(V82l12%q&QCs|%tv&(U3?(R!jT;ROW=3hUDH{PSx+e15#EcRStS{#_*ZCm9w1{4_ znj7R~!+5l~vBx(d&Jt4Ie<_jxfI5gTTXMTVy-SY#l(?IJMUrMPcG;WF+jQzU^#wju zoyEl^ct}eSjsW0x$mt&MeRVe01iT4nwghHH#a{h zFd}`5i;H7--Y)PUU%P(t>8b3zVl;9MdRHt;2{rH8NxL9bP`(5iVn2zi-X7-TGQwoW zgn_z%8{k~QA2DNI|BrWN!e(HW{mS?J%s%I9aojMMWme_DD_iRt9gl{0H&3gx+o|5q zKg@ZC2c%faOul2p0S$HMUOk7HwcF{dpJ&&EEmnu?U-w_e{y=WxqHywGhs-|~suKgx z+$=V$>fXLw7EbyefyzR5tKWprZ2x0auGf3c1+N3x-5`{LWSo4*j2U!Vj&^51=P`d8 z(qLDznAXj$utwd&3WI4H3ByC$NAIOCkTTvFbbS?3;ee} z=RaZj)9>;>D>fNl3M2ocnK|IN*@(w!2fX99zwV8>_r~pK!1?dxtHeGO00ZaGaweXyT&*|byNLFB zU9aE5&$C{EkN}_N=D>H~dc6kcf16)>^(d$Q*DtkiZM)lcqfNk`(qAp^WWv`fD^L5faS)yAE30>_vtF{+WRSI z@+U*S!Q;WtKJO*du}NVs;oo=N%7OQ<_PtAZ)2Yhd|JaoSdPTYbB%`m{)l4t%{UX9XEA)Ck~|8LO{Y1PnWRyfeaSpR#X+?$|BwsHf#J#ir3(+-tLA-Nn6HUTlS;K0}?+7>ZaYI z;!!`LKW;^l6giyuXit4?`TI{oXuCZwbBAzluxgjI5p)f(wzhGDpYV0|?&tbDeo7>OIbgqlA*GGA)N;jZ3(;U{5BR{1S+F=*dvb zgrHH`%D}J4LcWz^5OFNOv-n1$JC%;qpjwh}OTxER*6MM-xq-D3&W2|JQ{M=d*$_Io zQy>MTb&tL=o*I|#aC2IvL=PemuyV>UzjGjH{T|Pvl4`q7MlWTdik^ro4m(~W*{e3l zW+-tikI$VKO$BqN&=7jlQm{h>xQWxkx&c6nScyiEB|Fw|Tcb{K<3(N~z!n;}?3D{B z%Aho1Bz;L!sM>)JuZFfP$8KNPH5G}hCCr9K4)V=9K*7Aq=K+%OEZfhJ3rPsBh>&wGyUH7ezQRoJkVGrbD`&h|U zslz~s@!zLcT1j}!6dUCmwp2-jtv|4tSj#P55LW06yzy`;+0Zk}p^}gU{SWD3=0ysP zL*WLwGKF;PeIV+{Lm!BtgfGqWqK9-V}kra{9B&`M*2 zG#t`S-4sn~oWbXbkKq`?nsFxj8~UtU~Z)85K>oE25-KtSS09^(l!} zPP~0{&N$dfE36?@V$@w7(zOI#- zXk?!Jgq2r6(a?R!<|B5mLJv^=2~Ax#;n~l#rGvDZctl-T*3eb~EF@5xDq%XHn32<2 z&R`5D)7)@OXRP8G&IA{RY!T0ibrg4k4>x4+Eos?Bi-9Ecml4MGuV&zo&a;pZ_q4-r zPdAl!q|h_f@ahPPALOl~d|tDrWkv|bQM{|S>;eB)UnAWYrA%79?C879z zsh0?lyv6@Pi^9JJSN)-=RzOT2v^1*`JsTzkh{tfMh(I8Fn}?wz49B!jGiBU@cr#I+ zwn>vVi3Wq3f*3HbP`wy$UP2&o=u5z)OS2cUkA3emo*!3^udn7WObIOut)%-lM;am6 zvh20+iqgqRriKlBH@fd>Jg#C>iQyFAdgSO_$|c^`V^(@?>!R94G$F+n!`hIx zfpKSeINP`9K5!QI?ltfVnD}}cfA}Ft!su|Qb|>BCs^tbKQgls3-J=(<4=u?}i>n08 zVvDB(kkHfDD^zo}yP*nb3plwLnqDNu0V_#F@sLoylS|Kq=?xC93HY6V2(SZPZT_6K z;)BrCF=R(Ou!e|x^OE|&%PsL0;@-pFF`r4l|FO9Rup2%n4`~S5^rVZkZ&$a0I{{N( zdh}hyTRu>B4A>U`SXXzmt~x(_-Rh9Oa+b0^@Ua=PFP^OHyB-()x7~IhYXhGXw82Gc z*lCW^)Qw-e3j!$tTkRkDmz!5a1)1%RAN$lo=l7s5e(@rHJv=?-b(Q{r5cOAk z=Xq8!(#iA~lr^6Yz<4qm_WC@4*$3`hIvM!yb-D?^tR~)EbUsA(?ay3S@ok@0_U!fn zv$L{#s*w%6`h(Bs{I)meUL&830u{}nlV#?$pLW|le9nq^d&c-3`z(EYd_V(^fXxUN zl;il!1j?iZt#&#NcZjzHG zUH4aoE;ltJ9fh&G^xrE^(7DjtM~vkuE-XaH=OnJX4o*yI6WtU&eFVro z?DTXwb?#5jL=rP6$`D`g2F&Ho1Q_%f{kEB?|9JhjPtwA4bSEC`C*E39G|`R|3FV+r#YJ^=7BdzoUKW{2LII_K4nz&=_#2 zS|6}|jm8JH0QesZ5FW_?CZ5o%C(v=Bz59AKK}m0I^|<3Vq{+GhQ@{QDF=@uhd$S*(JnH`{O71kMf%VKTht9ZesqU2z(#fL3s~| z+-5TPeFOw`D5%SO+ID$E`n(vO(VzAExc2PYhVk4E1dWMS-c>}rG?Cku>^T>~3uruc zKq6CM&?`_3MER7n{g~0K6>B@Sm@|%IbUm5Vnk9CV^4a=3Ib@mC1=XK&sjZYNgG^{W zOK)^$%I;0_;#nklahr;DYi2JsG1&_ii4~kfzwc)*KIcU}#jk&`??lhNHMI#1fhP19 z!g%!!AOFcs)*N^3CU1B}-o(Vq!`RTKh2ocBO!L2ZlPUq#UeQQtwt?re4ktMI+}1eW zpzmvKW!M<3;4_TJqvVSZ2h_OVdHK)rcO1ZYA#3-Frq!;Vry{$(Ix!OgGg%AIb=2w; zsCx98<9mI@lty&bzCH=@u1A)IdcrShjqCv6WL!$VED<$0lBd3d`lek`ucuienJyGS zhKC4n8P{_3Ty(%Aq#r<@o1+=)^@7>Z7NQKrlJ;~X67myVY9K1alXS|L{X|;Rt3{{p zIc#)P-As01Aes~gfl`l38$28Z97?P|lWaBD%#6MbxP$;mSr#Y4b`Ki;mx+!&4uA_q z1w9B!ka-uEsI07bz0q;E-{Y$;x1EeyMW;}iM%gxw8!C&+v7k-a2+n~gUiHrzdV*Z5 zfb-&A;Wh54r0^_HNaW_L%(ivfI(0#Gr=N^F6n?))KN~3?I&0)vxZy~#ZZ=i2JO2735j0` zV43GjxsI7o+;qs`gj8Xp!ORuZgj-j_j3n{};WQX4ZZ+ahX_B>)yZ|->gFfKXn2!HM zihg&)8bw8MZng^2VKA3czy{3IsmcG#Tb zP~iw0GBa7FpV;X{RL!MudjRnZIEC+c#BOip`V}S6oteHZZ|)q3N^}D{FnrGqI%p`h zIy5FZ!`Y6K-#O1!_#kU35hQlcI{i4moH^;JNY>{ z{J`#CG1GW4=K zw?w(|_KXbU26CNvh`5=&#IhwZ!qo8CF||!e4qdotM=LU+6AuxbTx6yNRGey9yPWq% zeGdr(M~S0lb;GQxszOo87!Q-sGBQ{?}cl5fI$YOMctlB+>R;jU3s5E|(R1-0Tb(|LZ z1xB+;`0qOXm4(tODq}%SeKY1HF-igq9M&KT+!l>i{BH$%VqxK5v;DH_E?3O{8rrQA zdw5(Y{MXw8y4%9JVoTLl&f;ojUZo@gwC{h^F^|*VqvDv=?!w5BK`&(;wfCY}*2JT` zf(|q=9Mg^ZD`U%*t%A1cAN$5B)bV&O1%K@ngIL2unwEe1k^yZrw3#ZIB%YFPZE{)% zRmxW8YZUh!MhSp+8{KTr3c91_34v;Ck!NzZm)LSPU;GPHW}yR)IR7|@!L`{R#$gu> zrZz14pR}J1D8QMYzTd&G>+%b1H~XJ1Ar?lG(uT2fK;+v5;@KGo3g6;KKu%>4!v;NV zdFVSGCr|!pwL_>Aw79Eeezvswyy*M91UV0iOiYGtXAe#Rt7j0aJvWr~o7!e2WAf#B zpH(2OvEA&ux*Pbc+~(AU06_V7D(toqYxEi+?ccVV({X$zuk>Ss7IeI)1FC<+b+8$* z2ink|&P)UPpP#$gXWwTW+kHnYu>-Dlh3IIbq@<~5e>^x5cn+)2^4zrx-R!ilJ_uD8 z2{QRS&h=U>?dzA75q+*nf8N*eJ0{2GeA~UPTK&9I&;M-ZHVS+}TAjVTAU%jRejKe@ z>H(Hj3wf`=ls#T0pO=Hs@40|0d1e1kX2ZZ4OW@8tDD}u%g4uoQ0{!;QUc5VyV*~}L zM%H=DxqiOu@g@FT+wCdevVXhs>U9~9AWsC*+V%dYsigu$9@9(w+Y2CXwYp2WfP*vtgx||DCbS-(~3?!nqe3qU*&zL`n zD=~Qj2a377fr(mmdTx_FE z{r`02)=9y?l%HQ4AaBX%%inFNn<$H^_oi9fC}1IhaC1_b_-h#idI@=~yw&%f>ASjs z*m|Qk`#xc=M+rvi)mq_qkm7sOEPu;#6EX;yFnXN&GIyPr%yH_zy-4gcwsS`d$No4t zF9cJ$K_Cd?WM%#OIr|Me>`2`#NqRp-3Zc0_z`-i>J4bfco9*)mF&X z^($vCo0fTQG4Z4u&$?)JL=SUF0U>&3Cf|!j@4n^{rcvYg#+LC4WMa3eKlEsjEN;O9 zU^iHQ8 z8Yhi!w=v9b;hHlV3>tRMi1|nbP?CvqBe0k^3_2Y+h*qD&XbGd~(Su7LWueZw);f<4 zkNwUOFm=jK(Mbv-$YzTm;8*&xKDO5*uA>9R8K1ny~k( z#cf)vQkd&qI58A70^I9fI-m~0eVlSHX>rgd(INBZbz#9F#?MQ!sn~`0U|o#!~=M3MEUYIz3#4A%(VTMJf%zdf>YcnhJhJ z$8ztB1Vnb>_+kmtgRUcsGAnjg_&8$39ZR`GgoX`#0t3WF9eRJGN_>Y6B5N^>f?>(s zJ!Y*Xs~`g|;Y`0MtKbAiK8RxKU?FF;!N_?lt!VIU57@eyO?MZb*_sD zEpGX`ASnyIKvye(_)dnnrXAy#($qF5Ez?Zb*-`FJ2@Y)zt9fUH^~2vIMLS*M)Fpt5 zdr1T12oG5HWdbXxEqJ{-P&nrBJ=0^Z0Ry%K5iK3W`6@XQP7lM^E-d!4$rdKIZcfnfCsqE~Y zhE=isi1ubq+Sa?%6TM_1g`#jnMM#Q>a~Ah&%Akp8JEDI`GMs!+)EVc?5V%6W4&X6s zJDugL`IQ^Bb75`Cz*u{BK5`7|d3a44FwU^T=v z*8SW{TrBwgVvN5SmnynszfPEIZi(>n zb}z!lgHe+E*hehAW*_^1h`Oq%xSB9|aR@HKg1fuB6WrZBxCM822<{#T?(PJ4cXxM} zz|Q}$yZ33%oO7pV`rMwbuBxxTJm#^@RS_`os2Z`xuaVHV=InR~XS`>(jAw*3F4Db` zlgqmAL-RigbnI3=?P89=rJ@u*br9?;H7 znOc#i+XfD#&}k7P%gc`E-t~IiVd8;`q#DmS#_HpQNJ$H6)d?CvOhvhRH4c6@Zv#>8 zqX8vlYPDYTOI{E%K4I?LS)ATj6z+B~hMAy^*{xcK-6t*6_f9C(f( zmY{8;HHtoEkDG&|7WCCbISKe#SkyN~F@BF(FWPB0{D{4Y$I)$Zs6w!MGwJ{TI4cDn zdd(JW0A!lj?s9`Y%u~sEVi9XQ*D-Ls{|cP9_^kC+g9BoG zd@+H^fBRvOK2X5;`-Q#li`Uk_xS`w7|8xvM;5O|K$lT~#yLLg~ajycl9XZxTtda8? zeFWkWe!Mlc|92}C=vG!%uc?pcH_+fcAg&+JV|?!8ZUf98r3|DhpaR~9S;)MvUjR^{ zbXm2}OCsl%dl6$fOho$UE92+&xu56f3ZY+aVKuP53qJ*Mm|VUX9o^J9?L767DJf*Y zPXjujlY^9kL>cu8t>)5>u7lu2U^`N#`vaD*-g&5V?W!{@9H}wVX(K)!#5HssRjt`| z-FTtjVOD8(s#jI(cDnW!jOg1RHeEIE=vsWMZBJ##D{$ z%aK1>AEe&+z~i~cc9_l;)tP(F^Z6VY=+_7y9n%6WcQBm3C(eX#GXggy4dxrgOPwdk zZ5x*!xgS5M_duWA0irrUWZ4Vj=d*yY0T@Ur=}`FW^I5yX0af*#J5utWj)DHS-^L7{ zgRlB@K|Dq~;c`Iu*83oqEADwk)!SCva}-eH^q{@9=Xc7gkj-ho^Pi5>`*Jkw$_bo< zoH~?Ko_^8~#eK1QAQws8pHBsfx>H;aNx5wjky~^CCB7eKR8b~5qsY~r=$~>cmgSoP z00Gd6L6THAlZQhWIf)`7b`pC{hdWd3&%6@@%o5*YOm98E%;~G2lT21xYa78>VOBWa z3SdsyY$DFtLMSefx@FybyH4J7YKMqmC)3ESfX%O@8-GlSBi#YoG z)H^-PT|`qq?N_DAcDu$mI~Qqc@`$KHwJN%&(KYYC+@4377rK|r^;uOCzr7&|qZG?K z=tW`Z=)*|KOkEM6DR0-(z`yB7aexUa4fRIta$7W{2}Mb?URQn`fiacn<_8rSLM zHzs_&g&8aHN6al@>cKNqC%9WzF92nhRPbf==Ggjc1*p>-CHO&12UXvv@k7KecyB6t&%#9cOEkXi%Kd=VPNl3!G5t{_2p zQ#BijH4G)(O3FPf@|ebjg(L+kB5!<9_149RY6UyrhA1g)tTzENh;wp zmn}8o9arSol{Z^HOeF(U#(nXiEK5!H!%A{Tge5-S8i=MEhG2ACQEfiA^m?~aZx5+N zCB4#8lWr$+OTb(ZW=kJV5jShFl>F@>UZEtb3~{<|g+8z6IJo_H(~6c}DEi^} zd!t0$UM6_1CxjR&G6QInE#nkeUysCDI0`stR)YqGT3zy1W`U@~1RQHfIF|YKN*QtobeQi zMP69XZ;O5NX27#_N7yf}4}tC>A&mQ!gJSvCZ=1piInhFWiVu(6Z4*KSn>mOHkhw(= zHVX~kZ4n)si)~!eif>>SDjIJuGip%^lkrLM51 zB3s&~RN$bOjB_PC9i9ehOtumT=@rx(xBIOv@lRpZ+-$;)6FF(&I0xT!vGS4V z&ULCpWk+|>{rVJ`P7X%(!vWgz)tjoAlOSsGzK~Iv2}_M;LjQQMwqw;n>s6o52>4O? zHxgsk^+VWN!^U2a^ccqCAgjcI6`TtLBc@HOCn*N*MBpr2?NtTtf;D8Y zp$qzT%^5LOj^DmeGo$`2L((|pXd$PSb+weWoi;t4(dxKw@HS6xRd?5(a5arxXp~Yb zdb#rkD>xrSK!E#Nc@c&G5?Eb`v#f_AMz3jTTX^-B=M+CcfrVHQyWb$w7}O4p@EH@DmHCd%Md0%$oI zq-A`GV@!<$`9}oqeq&YWHLn!eymdb5de0mYcpmpIjuDdTtMyxun`((kN!utE4d?7yW6(q3CspDJtB9ASZuIpQH zLKHN2I25!LL-nBE6GmpfIjnxXDZ+esh zK-b&@Z+96ZLdr!k#6Orfd1S$fD=Qp5gEXEt4wjZb7SBRg*WbODY7s+9O-@0LcBZB` z_b3Y`Jv%#GWok9yfk+-)snXKQ+?7UHfWYTiqgBPr&3>!Vc`nJ)`G`^AEgt5o!u2VN zO0OPkAjEj8mNb)tFO&D7-{c8oi7j|_HBxM{*W2>h?@6oOJEGToJXb-!>Ggo0qF$WG z=V`GxdPMX#{n)Js+nx!#A{liDFH*LA*n84@A8e-6^}d89HlSo=wP38Mv_3z(@UWZM zYgM7WYWF$tY0iCr+{q8H$Q|V@B-%95)0?~gMM+3fr_)>!kg6oz*JqvUW3$4YN~h;K z6KgB4PET)Q{&SMDPNAypbHCYM^GWROc|^}S#mU0rCqww&-=@kbeD0ryCw1`c=8UWD zUf+Q6oO*1a*~Xh`v0Q8vB5!cp?`Yj&=G+xt`89fWTnr?Ih89z+Sb+7EfvW0xAMO)r ztNq5_;3=Qq_sCNt5-m1g-*Oo+t^Ho=?GMav-a{4%~ebHDd4Z_ne798?IyrTNu2CM+vc$BwnN2(_&eA~ zKCj>2_L0YDVu*53`KSm2W z8}j=3+pVMfCnXdUC-=c&A@gv6P!}Ex&DkCk9uvF?_H2eMq~_^}>~IB^44Lf zMz@z&$V4e%qfz=-{Q)SEf&M(@L_PSQvtDsRb_h#!`+C{{3q|B!xaBufB9!(ahF#c>0Y4l(4$WZZ_$i9MquWjQ?C&o;RvTEdjgHjU}gO;^Y zsSAdN`_7ChTMyk&4Ztbgv#_xMC7L=wjJ~zLcH=rg^j%vE5=w!%g`5&@yrN7uMAJr0 zf)DH!qg9?8`^Uk&C^?ZDP4H^A+a(F)jB&E;qSZ^fe0qcKD*UezSb#&ZOo%;Os)mHa z6a#CCqV%-{Whg@K>2kxmprp7slq@K7RUG|Cjg?;B+Dj|uI8?Q7Sp$kt9d_{Os*Kir z$RWO)e4WlvW01#|GI{@dG|QMxYBf>-%vyC@ z^A*|)qUeW(8&-=)B3fa2$KcIggzl?`1YP)wg3_{UqtsxU2p-lKC|~c4;@>iGc~DV+ z#D+{SWqe@>iOH|wl9HZ-I~OJaYx*Sg#vffe0la6REN^y4(*mk-n;#LgWW*!)5@N8S z-`RA__s$KdsuV)zavkA;pandC?+@W@fjo$@uTC7CVcqw7Gt%onNq1-;GD17jG_#|3 zn?lTU8E2Z>MxD33!vj4+5ZQGwL?FMdA6+n2tNki2C8ad^LhDdwh5#;Bv1)_R$4L*s zrWJ0Sm9_oeZ>QiV2WKPl=aV^iXoHqg;kU-Urp@t=!1zMhL2>@`fW!=<&Wbr=P#6&o zTLZu9Pkwwf$)jvVV2WsnqXcyj+9UgLIb~K|$-z=t4D({K@y~U!N3Fjr3@zfprq@dS z43C0L^uFvj*R)FJ1U5B5&;4(8hh;jpe{~{|XP|a8>ixT{eBdbl5hM`dSy0+1Z7ll8 z0b?O26PaIF8F`MTYQ7QiDF~Ss(Ba{M;pNTwx$KT(e5!38i^TTw+bgMxk&Yo3MF)gAGvFH2L!*Z$WFP@wr99Rw5b z7-^2yf@m?K0Xl&uKJW{s;sT9GB>%rCogrJZ5n(!EP*(Pp6lstc;05&Oo2c3*1qI`^?jP7 z$zT&i&!OBDIB0bWi_Ho6qUG|}_;CXFk9ZRsE+gOU&(oM1--ZM7^8=I$bM?)JY+HXsXKSD9J#?`}lY9%uW&V>sjngl^ zF~uvtU9PbaS4vO+x*;1uE;n^G6oN8pvZYK0BU}QzvXHc}E^LAP&fLz0Sof zJ|EkvGE+b^p8L;ctXr_Q`jp-6{bN=f9hY#`^*nn^TgT(^-x#Iu<0uZ`aJa?qOVxAm zejg+=nKu8kpxw!A&4MAk5cN3~xO$sx^WxM<-J~A-!E)^$am)+?L7|$NoNK_j;>(Tb+Zv&VFLhWj2}rZuhd<*Z%o>dGY>M zU7h)IdESz$e2OofBgj|dbXI%C-}*Uy0`P6zg^jg=s~KhU@n~+=bbnsPNcz5?_wM|T zOkGgM`ivXNxIQMARRK^yS|IpYW1lT{p`)_5xj;QswP97V>r< z^zmS5iMdxIpWw0mpgBO_qSQ$>e^y z>G3Af)S3<=M$sxORYhIUcdE{rLBGZHWy<&cfsGoXXSSX}1l@M^T2^5yK5?tv_af20 z<$j|6kj{K&BC8V{XtL9C+n*KyPBS{61H62{0D8`t5IwI)>PL2jc;{nq-ap*Kw>As8 zkm80M^Fd2@sQ+Ydl_HjawW`t9*!k{QqixA#$ORDkZc=P^^e87bKRvCgvBk9P$5QP? zR%G^*78ef>@Az`EJBRFGHeb|>Qa0;@g%CAmQVX7;?LKsMHMFa14|((HZe8oceXl^q z{)dg#NVay(vo3(mZZ%GAA)Sz<;2^B7w*eiSyKke$&~;u3a#`ityDpIcKdK~%-?bTC zTwFS=D?Fh4_(g$m^8AD?heX6+%|cWZvC0OkBq~y9?#v`?xd}SF)8Z>k?9fhg!8`hmE0r zMV%qHwjB4bEv)i&5=n;U|9Ka%LD?4-n+gPodaIc*OV(c7+@`)&qV*-3w?H}wAngXZ zYAeVGci?DOsu10350u0_T(da zzf;JmU?PbkG1a$D@$?YK0Gu!Zr(w?2?CPHV|acLtYp-JFb0@Zm{KTE zsAl2R^)OR09Dgy*M*|S)1~)!LNHc?f7*@ok8H& zQAMU9$Q|KYM{|k=l1e4cCy0ZY#BY}ra77kkqa=_K7lhBbGlx&>)G9%cY zwRr3+$OjBdYY&)_mrx=;x%cwUzW-Qo4i!lQb@R5vNEgXhWJn!5F#X|BQv|wNi)!;{ zR(~2gIQ(#cMct(f=Fuej&eqGWu%kX$Qu-7{pzzb$g&Ir`KX5Vh^;jjdHkP{qc;*wK zsqOjRvW;hD`W3IFKv%w^Q3>PDz38OouS&GAREVf&lsXM`veN*W{@qg zb}+A3^IS&^Hb;VJMvY0 z7#@XGOc=3_$+7MO25=4_hgB6}Cf6mm7I5R1o12~v`2~G8J>G-pMCZ7e&`5`Mpq?*; zlqZS|WQifj_GhUk2+d*d@s>Tn3W3(`m^-2PAg1wTfc)oY^K^ ztGe_wI<26+FcU%Z)u&n@6j1|WO3|@sgK{Lm@9>aQgN)~Yqb!-Eo{P)@x7T$dLZ)nb zRSh&~bL#SFzd{zUC-2Nh!JC{%g)nEt91$XSICAO|HDvpK!4uW>t8zmlvd*EzTN9tw zeVv3lglAbtwfF+*IFO{>F(?!ouQUPX6=KD213Adu3C3w8ZCn^_o<7xK>R7m(^PK*7 z*c`Kf4yBhWDi$r^*ESESAqrUx5eW+-0UXEJZQFop?RegvpgBoFohEkNS^``?ZC50C zpVsAM{QJ(mYUrR3Dr$g^BR!bJUm4R%x!HNS62tUKDJfehNG(a)^t->Gqq@_oPQUy9 z*oAaSJ0Vvd*otGs3omOqkt}cs#Lbz z34zk_8j#COrYK<`QXM4dkC|aYMg++eAF;?RcNo^c73*t#GZ2hmQ{u(Ba_c zwSCQ6bVS$I9=tb2<&(``*mCo}%DDiwYVLCb>w&`3XSJS8z+dCsd^;ml6KH5`G|B6J zIuiVMm>=W?2B4;9Irh%7GTK-Xuv315{ZJbX@lT}bajmgkpf}&2g-wyi(y~(Sm*X7Fta`GRm-QPH=x{oO! z?3`-gFaYs%Xo+w*VbJ8U$Er}#=H@=^$1c$1!dF;Lp#L%^_bulzh`rH8L(gk0joEf= zvh{b__fOXE=j_@jwI1`&#VL!1g(DYh7}lplF}aTS*Own%G~r*w=9bx-O3kuRiC;$JF~p}={?(CCSXja(S^s@BUm)r&YK5oKp2ol*q=C`<<}o> zA7HhoZ&6dFXk$&2!|5|G$&hwmOKA5#QJe}dSf-jhm{C$ok-=B?c*|`f=>75g$=7Qm z_A*+&i5=7L`ePvS`V3$CG)l?T;iVxZ*YC#&Ojol2Or){dw1pV-P`|mXkI_u<;8PC& z&YQx;XX09Ou$XoAWJ|ZzLAM^C8miY@95V7Bw%S(n(c{(bj8aa;K9iiuU-!3aFYm#M$0Gl$8l4 zZ3{c~^+TNA-8q4V*s~J5pt7%%Z2Z$(8tm^ITU*EgA}A}g+t%d)5n$ruQ}if1?JYYP zQG4pV8Eu}(sBh@1HOs61Q(IbOy$EhS_eY(-2a5>TcUp+OVtiYO5m?}4%SC$sIv;VY zzj}d>{%6x+59W`2Zn-4%YaEDN+y_y2M&!&BCse#mwtU_{49;5MoDb>sn$5ogbo|ax zK!q>g)S#-C>&5!|)*7p)tj<|WY+u-;>x6z!H$w)(Z5mU&jfMZ zw_t-u@vmaeC&`@I-MhF1!a&U;!TRUl8hiW#z{tJn&12q=j3tLAA_8hAVm2|iyR-vg*9vIZ}RqD z4MZ7jZJt0Hhsh-f6PN3&=yj}o>{J+iJm;(;Cd8LI&##S=z|zXy|>Ts zVawWhLJ*Ov@`*n5JiMxKxMAg8_ufo5;_2-LNs^nh-l>hq)!mIz5CcM$MAO9W7%>7n z-5qM9=>)?1S`z$YlW@p;o`jasY&FE=?h=OCi4gE0hp1aNoNyuc>RPzCpaNZZZ;asF zE1wk%(oJo4^!CQ7x3&zA)jWwD029qx0D}_aT2HIyhn^y`-k?xbK%wrfT-{nAk_V%z zsjiN@SXfMRfpFkg&(226gy$KA<1c~46dE!Ts)0;%B|*@pLKaj&m^SMkbpX~-`#?My zNgZZLy)a<_T9V6-W=xI0&9sc5Qq|FoSz0U_#SPZx;6WHz-DtKj5vmW{a1F*2cMF^Z zx~}R_Zv*6PGNN;UuuAxzacx?$WveQPWQ*G4V!$Y%+O?@RwcUr@%h8B11X71&qeo6k&DYiLG80;c%dYas_I1V8w_ zB?qEp)O@E%`nH>4Rm|ToM$HK$E`b<}UgFH1is{(c@K`84V0PX~_t!AwhOh}`oD!;EH-pGUs1^ zvaL#TnS{p{4w+^{7$@2F``RMYVVAy;bSIU&nw`jZ+`y)gJsHHFCgi?sszR4gheauO z(W15R5H>Fcg#2xxi?_HE&3~TtSUZ^Zx1xtxV=W7EJCuY%oG%GG`P4q%Dfv z3p>YB(;>sc(*1IT6)#;B=keL<3*Fb3|Ch#l8ewzH->qCOBF)F6YNAKJ9=IKx5lqg3nFBlg1F`((moY}K8BQ5r2H~70L zE-L9g4_u`Bj_);}c>n4ut}zt?Eau{BG~_eG-knZJ{UEiQYsMHPd)X8XPG_2un3EAx zHlRwOgu!eaDp}34mnO>(D*{TY%vMk&mnM>jXm#~Jqo~Qa1H`Hhi01m4NYZH~nBUYj z;Dn%^qO4Hw%7ro#eruS!`A-AzqX8^J+aa*;UBLb}bXLujS+A3HpBi^44d)SwM!f;b zh_>`B#+ccFIxae@)*nI!INUqKm*k{y6gj+aVNhe&Da54vn#_oEd$4LmCZ-j#F55^% zEUhuG?v@GH51}`S41^?LT=&U5xFm!}__fl%N5i4LVW9LQCVdQ+b6VS&SviT%*$c`W*QuOp;_dml5gVU%f8NV&wKQB8Y0xiwztV=bBYJb?6CO@*jc}~VG zVS$xFj|oV@rPz?Bx%jZ(l~-meMzjAcJQ)nh4?cw`(Go_kxn~UWH2YEB2)_!?d0Ze7 zevB`P@i}~!_M_#uf08ppb9+=rc(#S&ueUmKY@g46p$ITq&D;q(pDjMClWcPMvI`Kc zqHyT`eN#7USqA>|x!`0(OokP;w?#oRWyefw>gSo?@LfGy!SdAEotWC^i{H^O#EY{~ zRxsYNz6TeSQza@b6|I}Yk^sz>Bq*Fv;TkB`FSNMIdW(nJ4qN%uAK&n~##=&Wg}s9K zx&n+Hr_4~+qcqhmMJqXIY(w=xT;q38PfVL~2Dt&vJ z(H#fJUw|63yNqal9yP6(9{lJoaDc?~btD;`(xs_UA&ad@1x)i|k5VCr1s%BTesUc^ z1MBGx^73_FvR&$ac^Yh#%i{2vbRB^%IN)^q6e5-@nw=I!UU!`170{-_pp?7xR&pqq z$js4earf{MoqLWgeS3U`ZivQRTTFY)|tw&P5GHhhZW#?^{1GpsNg7vsM;eD(vSK(yH$Yg)&r*ID1* zzdk#+55JAp#-b{eoYzq~=he)}I2*yomp6UbxT}ki!hkoKlg!V7^sbC$S)0;U)5WxA z20QDrm~Pj*jUcbST^u5z=m$CP;u3J-X zBCFS1IcM{xMbzF@LhqfkxJ&MJgIGj;4zKYo-KB+1)%Vf0L;c5tg?3sVaKO)DEwnNW zhBSEQAq2#7+H;qi%$BTXPGS4CbiZ@Dd70>NUmA3JFnlx({VPi5oWyw>ktqi6>C9{w zd>gA=i$wtMDQSByq^0=mg-V>tUc6l?=lwi?q~CGcT-1CA!8$CG^)=S_6W*L|HyO8t z+4aZQPmh7_pz4r7~i8G`@snL^1fF1AJ|_lOG?Oy#e|_Nws~C?E89h zqJO%+4G!M%(ii8Vrm7E&OjKphSbPuPyVWXg8B9j*tC_G%U8g}Pib&2Xzl3-TK*%&K z^!4l%_w4jrthynHP5cHpIOJU&fb4<(&Z0{T-AVKAE-nv*@52^n-?U?02|f3F4KCMf zUxxGf|NZL(u9y5i|514sZAxee`hF%abvciuV^!(YmznI&KgLo+K=^!HGsm;a5H@zv~F*j(DILidstX|*W!dGRmm|>E9jU2#V<2a~8jIGfH>E^nw18d>O zCkx0`es&98{Jd>(cnut#preri5&$nTebyTQ#s#)nqDfbms`)kN!FVihE*)LAx$QOe zGhFxO597xG6qa76!^o{$*Ha?slqU%1Oy^Wh=y5$cL@;>-w(n%@TAr%&Gw0)t^W##H z{gNNR#y<8TC-}EU|1M>kKo(hHJW9J^RKEynNgqoA1h*HWoSn7Vd55*Pp#%%f%<#2b zInLQ6d^hptLlkngc=&kl;-#7fH}%8XXYOL}X#RFy7_w44JmkhMuiomMdJ>YN>+F=d zg!|B+XIlPXtLg-9>rdg?px(CwDvPT*AQCp{ObbM7%D>ge$bgLDJTtFt#8lj&me|z+ zCD2RIsKK@TwiwSgB(n?l2BX~Cp?8Brd{!(xj|{pW7;+)Ql>|{>WV;o8s2@n=m2G{! z02+Rt6ZcL<#w;l%n+d|}HTPK3yN%#YM-)|TU3zb2A`XI~^%b4f)bvvozRz+V6a zsusd7VxEC2On}-Uq%l+QC_@LWDnMQiKj$xv9YmNDD04h`P6uZ#jxq2mC+JVewKc&s zTSz$P+!6eZbO+b28@h`Gi#Hw&0*m8GdAD86gvr`R*IOw;yR}3wPqPF}d`1<9YtMl+ z0Zcd%U|JC!T`{Et2XI(^kf3V~1r^G|iKY1WBn-^Up{%?uU9BnQ>;CrOQEqOH3-s7k z#DNb8>Oy!G7K#;zfDR7cPG|-b!W&|c?$t)@nWs+SL!ebIrxM*Gz#T>bBOJ(nT0dYEqUzfu(X$Q9%!g!KDV&n(Oq)_6Og7}9#U*BE}s6f44#1Rn@ zQ3V6h4Nk#R^>q6mUyr_|>PxJyM{%haAYtjUG90DWw~nXw6inm%HiXhs!Jr^noj_z- z#dGhFjb>g1Z;l^8 zliE(q9a|Q_K`JkAU@eCpSxr(7@6DT%qb7xqhgZ*FYb;V85mS04hD2ZjLkie;JigsMA-gX|81}xFNV?Yet+F|38I(7 zlZ@UVE0{0taQOa-KMGl=PoAlp!(eO*nJwFs#qWqwC~V$2s}?j7Ut01+eXacmnvX}Lpm-~6zWPW zWI~#M5|8mcNhF#3w|oJ!s^|hLG*a0VCJ_sU9vPkKANyOD*qiairZ`!Hx%?$KSlbni z<8f9964)owXyOtYGA4XY2`~66)*i0duwO&7tVunOmxy3CdQskvnYu@;@eR6;Iv2kkTNp?pf)?wVp$ftzw-lPC+4ID+R5m zQdOGT!}7IH9^mXDfqHMSt7Pov1krsh8xWeKFqfAlKz?XsQiNK(b{ciIzRRl$_}Hw} zS(?b`bYHz+LFgeVIO43xhlZL1%XKd+@q&&&ei%+&+O`J0Jzm&Y z=W1?kiz>469D()3_r1AwUwdEff+(Adl}=j_CpgD@bg(T3VtZiWik=-omaE1_g$n!o zWULxIvj6h}d>P2FG7wK}#A^rl&oPliB3PbV6mT?O3PkZ=;C2QBK&lVbaD-sTW~+&F zc-L;-!^_bm|L3i7tt)7ROb&r;?#3eN(fa%yVSs9J9wZlD{%D2~#J>=5Z+OE<&(T+k z_*a#}CKrphuBEf|^L<%Z4`X;WpsSEWPJ8VSsj*LA$z~1$sQOuDN|wHpKkU^Lxw%O$ zs$j0?;zoxK=1uyHOl57fQu6a8U++rLZP%ju6i*Gy?_c&E*}}EB&XPYr zpHd0ee9s4$#upasX6Ck7AW&V)KZ}Dgf8I+bLLG$|981znoPlLBGps{4*pFoPf82 zKP084@Vli{Lu2Y(cJijuYpzz%sk5?}ddgY<#L^glzJ^LPk1g*uGFn5+>eBfcN0| zVjD7D?(@K#!7(E@@}uBUOLxO92)L5;uzGp=UGbic-ZEd*_U>0-Z3<{M<#w2!@=l#U z`ypQ;Dg7km@l$rT<h0RfOckPf4Rhc&8IFU z6Q1Y@&p1N6AGms#1YZo!^ckz=xi{xJP2L7iK=a&oKhf-SB%@ZH-h6#NR@LF*{=;93 zyFCuC&Qe=NXN$*fH$TXOtbg88516Lk&y!My4y1~V8rZ#dfX49{?Fif0cmp$>-De=| zN@8(Tri|9qQm<~S265|9QIj6``MlgptLSkXnI6+SKIoKgayhfD&3_HDS!^-?b7C0y zgp$!i2P8+^!Sv`wMK;;p~{gN6(Dh1EY#1iTG*_XoEY=lpaAv@?^& zIwsUKG&HC%!oPE3d!R>K)^f>3`ZLp^rmIF4@c%8C5;CHl!JzDzDk5KpoSIVI%piw5 zeCC1bF7ylIgyMu|KMCng`JqTtROq9WqztP%yQ!vc&`8iJ;MTrnS^4YRmoy0#CPfbH z5%F#~B%L&CofcHQkCG&yU<`~B|4&v0Bz@3|R}dTGLNHE~coK<*k-0t3QnF$eDeEz| zNDJ91GD{9m84~+nVS(ls_@p^L2-hX}f9UB#5dW5T$Sm34 zWo4CPlpGPgHF^?Il7RES91V(8M3UW*+aPX%=_**7;l~Awo$UGCin>8e^{3ByUNEF9SzJ@ZR#_8d~ zzsrn=>HZ?l-D78vQieesI~a#D{2iaSk~L&^V3jkpbDEfK+C@+_4?e9~t-*a^zl;w} zV3vu<(FpV-u&Hx(YO+{n+&>}TKRzNNBSHjyMl11ivXrbc!QESsl=hBK$^=qj6r1Rv zdL@sDlI>VnP(?VsLa#*W9T@XJRBSVZ93uj=^C@F+&h&6|Utv|^3)#?*Wid-lsQroB znT!mXSY*D^?8P?fs&O4P7&);YtA-j*(`(6;eia7GE8IeXAc;f+KWB<0`9;-o-IqQr zma!Zjqlq`5)PMLrxSYVhVO|T!Nfs%>ASz$~t#-yxco{2(I)}@BfK@A&1$vS?WW=;F zCAD;0sgv}K`BUR`p~nA_CXpfZ6U+Rv*F5g`WKV#Jh(N4_IRQ5-3LcA!&2Sl3ENl6q zcbyYXCT&}Z=tIJp4T0ypfJVdjiI2@cs31AW>!g0=v>(;$2Altq@IY1XOC#pb^3!og zTgd7$XrcEFTwN6=sY`mz9syvXjf@=e;uqpc>^}}4`hme7yD5PNMkQW=O9I9ZpQaX* z6h@3%6#am~LkDfi{EUW*O$xvJ7XR#Z%AVMVSi@6<#6U_25DiCOVKPR_s#0N08!F3V z`j!~*=i@lW5j#3$5m=~8aT9bHc$5bM zA0K(A)1~!RUPakmZ`@Lmt&j4C%L&sp`$(r1si|`4y2a*XU+W{XVzo4!Z$(n`7r0v;p}j)thtkH*CUWnDr@&8W9P%dA8M$Lpb#c+?IP?^0s?tGZAzPln@d zc7K5OQI|~Nl+$U@luey@7zv#6;@P@#_b}JOlnRnp+uA`PpH4*%53G61!w*GyDPRnPsB5sZpq1MWZ zU}5pn?UA<~6TGLZleb*mDIrXq0Pp+?%3mbEL~=0p4Dj#ta#O7|1^Mm)rY0BfOLxD< z(HDqgk#pLsjK*Wzt7pxFZtKna&FeuB@d)N`Id>HNE`iYVh1o(j{A+p%2;HrB-{7lo zozAh)#Pxl{E&GdJZ$I^z-|H*ZaT)rbqI>XrBs*VLUjIKVg_Jsb-E(6CL*o`22JQ92 zUavTA^57YJ$?JRG^Re;G%L^%i$j2}B3+nq=q1VUjr7gf@_VWT}l6T^!BOWWrVIZp( zxITW&0f7MU9`?JT?9<|0|$`EAW~ZC;ALHD7JkHZ>nj3;9h^+xvB9Jvv=&2!i{wPPUa;Y1h_P?p1g0 zfT$}_amOv^yQt_tom>ML;7H#={BrjOy;v?=AS`^b(kC$P{t5rc{*giE_0EhXs7s42_7>iyZyYvnX&Sg!7Z@P?xL(W;Nyh#C(BMi5fV~55lapgA=%(zoc=_0-*Flut?pOPk zk2sKXa!UVW@Y;|nW_8sQ;Bq(A2=4;-Pp`-7D%b*lz~im+m|HcLle1U?)m2YI`-41# ztbe^Y?L8@|Q;R3kSY2LifaR7=pY$4+F=r`D_tX0o5VQyD2|bdZ_@mZ1KR*xAQ-#&E zA3K%R$>i1##VJYmN9FOgl|2q(x+BDby?G!1<4#={%KvOppsHPSD6W2Te1!U9msLHh zjvU15F`lnO0!LYX9+&g8W>^D``Kxkjqp&_pPNk3lh(K@dzH#g8gHS1+043@+pRPPu z=K^^lGAYi+{WWv~CIbnq3>EfVP-V9VNr+RG(EiSoV`E^zf1bY;=hS{u-!M_hEFZhd?3b_kH{{rX7JO2Q8Z-8o9j(`J= zD(4WwY#3TfzC0&Ms00hf%dNHF^rx@$To-oB{#|YDwuu;*N>p}tSs;OINAIt6yy?@^ zznEm(vGZ|giQ^^a`rxfR5&gbc}k$&OGO#8L?CQp&~tbBJbeL&Nr#mgbT<^=6L!Ot5Ngu1=o3 zBZnwi#VB(@$3d|Iy}?n0Ez(@;Vqi!LyjNm7#zQHEWgS<@z3Ww3BXrbk*v$39y5W1v zFyH;B9m@@wNcdVZh-ctc7ofTHhZn&*JEG+|iw?_{sYm3%_|LQ%h$VpO8V&~%sTs2D zfkC*%IF02eS;cXuo&_{TQ;;zZ=hy_&qKwe!+ukn2J24k-G=g8zFjBIH4Jr>a{1PGWgtF?hS9L@UoA^uYRQPY0JO!?W zsZ}Re83^o_gRaWTQfdiD$YXbEY#Pcka`e<81m@Vij116o9S>I}_QR$5V zbUtR&rAg*4?_{>y8KbVuxDksqFAC_{E}w8qvMx2-Cxe^AhUF6hLszyf(@kQCWZbFJ z{kNlH&RaahRs_jpqe|U&-ZB-Yjri>$&l-4_qu9)ssS{Qlre|Y-F z@JRlk+m5Z>Y_zfMjm?dYP&} zkZhRDU;9d|Acnfh;b>AtAyd@nxH_fg14kM#jh4aUdzDAfM%$3wlc|39__ahb(Ib3k zv8752spiT4N+wfP#1V~^Jg}tN6gt2ZnqMkUsU{Vv%zzOw0XKlCN&K}$kGWWn&aTEd zQo59A!#(=7{%|+7NKhE#CuLJ*(;+F5rP~#Sd3s@(x+$j+jItmVwnI;gamh1MLl_#X^K7JM z$yQL(4z&{Ah@{Z-lr%#3|1>wVMI#*Aw`$Q78B8F!p`$^wvPi@iPqdt-pm>qUt0g5J zOud;LIMI8m|HfGG_y`40725W&L!^b3!;dk>6%FEuHhfH6A!?L9!}yZ|<_pKO1w9*( z2C|1ki5WBCmqd0`Yh5@rOPFz3C(Q485lTw%X8PAJLLN>GdGO2nB1X+}K5-epj*Zzl zk3?w8knDHas_U+=UUaZc-4n~8;te%~AM9HNWx&|Rzb}mAdZY=PUNY#S5+u8VyRalg(Jg{aQzgySh({yj-*206_CY2e59Lg`VKH?f81 zr>CcLL<=s@qr#Ir2W(Ge359JsE83subm)Zr`H5@)C7znt-Ue}G!!I`kY%2Z$&U0e- zLR(TPtD1TDo^X4zrmajI8fINo+4CFlGoIN8ipauTc)3%Hn&Oc8=iKkD&v5XUCr}$W z2m$%Pj_r>=jrWIUtu?#R>6>;L-JGcD>gSzAs#@Hi+DF!F5|m6rOz3^vy+64pIUu;{ z-`!rCHp0K3=)?2H(|&|sw_ziS&}3p?K)T!$enI#zvd6>AfkEYyhhst%)T^WIUgs~Q zRG8sEl!~2i<3Nn~)H%KJ;vcQWvT1DR<(9T(Z^K6w#l`T*HT58h{^s2|!Q%s7%zod7 zo2icX;<~Ndc1g7lXhLOjrpp-4f9cdRt$Dma6P9v%VhjOy&$^3W3Hddt}r z71(lc9=1g=bbee&wu=%4{+K#EZGMkI?Fq^%NVkwhDt7Da7&CtN^9Iap-Jt@q-is2I zG|!Y!cQ?%GfSU@W5GjeIq{C>Z5ZK&iz2rzl`KHSo;1g?|aSrRzvUI}C36XdDs>;7z zhIaFILm&8~7d+h3^y3>v;{wpbu#AVC65jpCUd*faf`j?b=RZb3YsJlCDH$yplob)I zvt0!k&*HrJ`;>>z4^=ba1zek-MphMWB&FYx>7SvB%H6~yq5X1shDl`?mA zJx_K5Q7$oPb-WL5K1li^ROnG`*PFe^?pG5^ra)}EZ7FhAF2~;>0<+UqQD!0>fI6A9 zyv6J$sd_aAigUmW#6L|(JHFs{t8uy9XuNzr26cWlZQg$g8%FTGgVYeI-6tC$!oKVF z^uyjUdlgu&Im=PUZvA(oZu+*9c=pNcb|X?cb+=CjFui9eRa(w@h~{G19FN6^Yy2=( z-7+Z>su1L>)=O?(Fkgr1ZlRLrXzTC)$((0a{#I-9f9o=EoK&};=jMNTe0rPBbdwVQ z2*uRI_c*Bj_}FJLrE5ETd4lA2I*K2+?Ko?5>3$0MENFF`pn1CARtekxQ~cj8xV0uY zBxL-M*;c?jKEa?)jTR${$viz-l1x@ao)&|XM4+~aA&zHDx>4N(xij~#=+FHJ{8k76 zjBWV39(*L(5Ez{kJ1Nd$8i8x|x9*U%p0fIzl`G$55^@_krrDQuKBjYgwYVvOB=pN# z5vz2@qRHeaxU7Th!f<8bCKs;jmFM>BGwg^19vrf`!H=mx-U3^GL#ow0d_)9>*^qDX|z5^%jaN$mwOw^-tVLluho; zZb#9M0sjLK+mU~pE2?nN@;JMShG*VuKXxyozxlgT5*9;?a5A=_BR)3smH+P!=Qcj3 zzG7@Rib(m8B@fsrIJmlDFSx&qSJyW<^N6G!ZdPa#K^6)(!^qf#S{~uu(52SZR8lxF zbcCQk@&fv{l2t*Za3p62NE@H_CqX2CB9(R-p^1OXi+!b|1{Wqk?E5sT`j#mCdoG3} zlv6N6Ltw`@2cihfP7!OW&@g{Q1ns)Bjp&CSD%ow=HEX{?qd1X{xWjI_2w1L`Y&@xQ zjzEAKPRRJuQ3SpzRlL7@1GW%0U4kb0KPz-medS2JFwzkVFX@)Cmv7ZnR`+UOmNaAo z$b7zVs-gaTHHJ3&F+59J8r6&;I{ELsJ!Ga~>eBDH)88 z+$w#G#sO8K{sP?9NBDshwLBG;6CcMx`&0<*q@km&KzDC}`NS6f27{|TF;Vm!&RScI zvt`&Mgq8)XrzYKf~KVeRw`LZ=gj`JmnQV*PMFS&p!Gkt!5XP?e@}jS4qLFTTQMBuQ|HqNLUUoRA>kfGzkZt_Ugnau8(j_kK<=>{e9l zfZ&FGb=FY5IaWGuou`q!r5SYyNT7d9VQ6$0?U)|RZ^C0e-$Zn?{5KvrF<|e>N3Tl( zOD&9NRq&>_`-&cVM=s@hG5|-8LW+VP+Mnu1a|^D#{7XyBZWp{CX}5|reAt;hQxGuw z^}TnuXeJf*XHUA-%d?ym>P|kS&bLa+Hw+>r&P>!^_%J|6P%UPF3=;NDs0qWJP@Z@p zEdtgo^YqDq$G2%z#=svKF*bCxq=7KIA1h~`UQPIl6t1NgDs)T{Pv)C)QA@qET)ksW zlge||kJVg(frb#|4{G|8Bc2<+_PB@o+TqeTie)k{K;dkz=*d_|g)xF)T8V#1NvkUx z2|a?1uy443|B{y2OwmRh>Wl8U_$?F*T$};m8er}(%8Hl)0xT?ZY;B&Umte}xl}9HC z=w&uzMOV((>AB*;-{3RB<2l@#o0@-77fBe9h1Jf-R2qMkl1!$^O@PO7(}&t!CsSas ziKNe!HKZ|V>9B;-2=zraiqHe-;&WhLxPtwp<&|+5RarQ><&6mlQ9Wu`TJ6B3LF%S3 zZ;fAhXB3q;4}W#*E~ZP00&+GW0Qt~UyyY3rh}_c!G#piEIfoBH2YCd0;qALMM*e9orN#}DTo zt-rUK(4Adq^rXF}eprAM5s{{2NeQ8QBXM!$GTgO3PcgQyXNl$w#WESZU51j@+QJ|v zdDTAogs$tOcK1JfZf%TFLbbqH88h znBK$GzOwcD873~F(`w?8xL7QGZSl@h*T=5K&53ILMAyZd`S|wlvGMHp+m@#qkE0^q z{H_yscKLEXY3?={I6dc#5E9C-D=h82jZYoe1=VT%$i5$EQ`WZHbIykwbq#CZZ@#JN zkjthmJKPIct|x+8mjv9fz&uw=S@zPOtS9pMNrPe2NF@gd+~x?MHWu# zE(n|nIBy<&UUUNjycJg3j4wgM+MQRE*th>h$LN3z=bx_ESLL^P3M>WD2VbAA{;kGz zR?B)d3kx?_|1}o*9F75rT4UiO0Sh^Lc>4 zD~{rGh~Q&mZNJRW#cp`iaf>(4_fhuQ;B_9{wN{5Ik!rn9!ef4>RnMzq~%{3ug* zNCpRiW-6UV4u5-iTc%SvKQr&>bGA5bm#64N7FL^bjengFIaM4_=wj%&-Skw0bUH1d zHr*)b2=4}XuvL0k{Acpg@i*ZqJ=FVVv&Qqp(C3HoS|$Jc1iy`k_a;dCJ}{b9wa*oL zG41mf74WJ%6VYO;-C{hSUcDMo)A5*mN8fRD68CPXNwL7r`my)u(|#m#&1uY@mn*U57SlN?hj*e3vY9hy0)O@`}j-O z{Ztk~?=}y@`mR>mgdiD(|JN75Z=`+#Y-cLRr{s0yL-p#kyDGoeoMr<2>bq0X0jvRg zW@8~J=Yxm(z~GwOY}ud)c%gt6Kz>&W`Nc<&+J<(bV&#D8c)! z;5_2nut{1-KoxvtY2^!s^I`8;vj92xaRd^F>^%<22{uyRDTe-^gwmYu0&gSRsw%NU zTpOw*=a2`C>V)%KKUy2b{Hs}s| zegKl#32_-)of#<~j!j;HZ7>+AgkMM~y?-;@Irv}{QJ}B%r#5` z9h)Oth5Hyd@7ObHggz`oI!jZS3 z&{B~q5C)KG0h)dgMyCaSq`BYHLK(k)_Q0lT4nF)q%;CH*g}!!TL`AcX{Tm=YDS`&| zRm;XM!xBSF2*X8X2W3MIze~E2uNLub12zs)G1pJOrju5{F>iB0V*$*m6HF`ui?|D~ z>5Q;c99e149>E+Sx0J71gN(A#lp6X?x$(njTs$k(6bUVYT%4yF!`Vi z@$*+8pAvr3qgr{Qrhs@d>G$AlfZ!Bi2+W=ziBQndANPQN=@~Pm;tmwBGv5(le{LfR z;NYm)L~Gb6Fv0q8T%nk@G9I|>hE<exMsc!lS9dyHidZ#H|Me(}w1}P48s0J7AS~`OCQ-YH z7>kM|D+-{FKojFY;9SDYgs%|k5AG6nR#y?3tmz&}e<#cr6qY6Qjy@@T>{~wQ`vPs! z1O{`VisuZU{7@y(_yyH1(QU0BvQqCK79rvD8lbpnh?ZGBkQUSq-cmBw-(OBkySrx) zXv!qTt%Am zU(%XiAi9Ss1Y#h29yL}4M8Ukqr%J%k5jYxY69xq4sJ}3ngo`n_(ckY84ur%+48%jp z*!ULvTA2M15N{9uOvxkURH&j?1#;J-zlG-){&FM0Pkl4~8+wQ)jc9;A3_bg-UEW1K z6<&7~!jwm;&aWF2yi(&F9^Hzz9N~D zFxrG%Nz$zT$j&{OleQ6jxDj{6`U4GOza%IY)WsxGF^q<#zcIjbyj#Th`xG57@xQYt z=+2|-#>%do_zd=3^mt~ZejF`ic>!s8}hiYi3`O z22Mh-V?!DbV$m#9*srk6;yE%TBmbbuG|IQ1s&|vIJ5PeLYsbx0YKI3@7{lBYN~YWG1;&rF>^G?tU?Fz$7hpWIoJdK&QMrKYZAeEJJ)n77UTg2;zPM0PR=k zHmm1|(hyi==bWwLMfP75Q07)v(7yJqiKNE7e?Xv^!*qK`akEX|z-haSb=E8=0nlu% zO`zj|Gu|VhYp5h;X!sD*&>92*v54IvYq(l}x>~IsK`xW6PP>#iUIeYIEl-xnfKJ#C;P;fe5@8-RD^k(`WrS0trEDAZkAv zlGLq{fZBp~Nt4BSaWtMk7(r@UZ;mB3vOI!Y^W5IHNqL-8 zNfXrK^0!TSWyo+Rjzf=9Bd)pP~I%K>9liariK%=F4j|8*3DOid4~@ zKzyQDOx8#@noM1>x89CxT`~SfGZxG0p79 zvSS@v=X=QK-?yV5nA(4fK@1^w)@H`~Q;-E(1wlJ#D77sE(y{Uhdw1LAOmAn3j@^F} zlzr}EZ~=4If4AaSAB)r7O4P<(1S?%m@9bTV?8{xJotJn@Ox~~Ha zK95x(LSc|9@;$-l8RqA4hV9GD#A<}bung9^B*<6KX;`kyO%fLo({kR{`_c!ri>TwO zKNcV*k7sSk@yM8mt zduT@YQb-R?vvpeE{40Q+GztQDg(n-emY3k~{IH=J>_&WnD~-FS=f1%2cd1E!SO8=c z3rdyVU(dH*{F)ynGFjgL-4<+r3>|B%lOF(TOQ3O?cb{Dkmju~dUN#PQW`_AmPwy88 z6$4ZrUX8Cas(hcOs@k8~WTw^fl)KrRn%8an9-wXF=}3rtend@c-xX`7(6^Vix;cW} zPu@LTJU_X0aZawk_ew$mH~rUMhc|hhH1yu{ffDl+(&@;+`BG&Y2!CsPPUgoMy-aFj zjc*5bs&zeG<`UDgv=MAtACx|Co_yA}eL6s1M?U}Fa&(763xHy~o>`?;>S?PWtu*4x&y*{)up4c1GPBLFMJ z55nL;E@~10E<%_IL1~v1f?#S|#moWKE}eVXg%V7A#3FH;eN)8899%Wg%mJkGlmHut zc2gi&iB?JZ$J8RW7?n^s)xA6;!FxX8V~!=31P|YDanD^6c*_FXctR^>O1C*{t8Q~y z5u?amCgmPM^kK6|BMc?5wwrhrS@4xTno1{-8AS;YUt3&`PNq?_{vv&Lz_LdbDZUn) zkT3*G6#4mV_QT}kJG7)=a~cwmfw?*L=tRR6__LtFhK8raxHo6uwoebeeurjjj$Gik z1X9Bx_7hyr@uB=GPZrd6XdiaC!YgGSq`HxTNsG3Uv=( z2s*CBYW%VLvFqA9(f=A@wE4pqzPH!Xh4R?HNWGx#ZP0*e@&QCeLFKWK0Qx?XMf*SN zUwn5_5eTvDK?7>Q{pNq6aWIAl;9FQALqhxn-<7ncj`Pc1PMZm3g@~IA>~G6;B#}oG ziI3>d6AEA&+F%<7|6=4hTw6kj3Xk7G7!ynyMq)_^S3741sbL9m7f%icw!%tg37V}M zJAcop_%-(Y>tBikQjus`e-7h#S<^*c`A+bV7!X4`=+THgbBc-ptwjWVn28W%%Lh;n z1W|@7W+ac1O^q>Y;mFQ6s?iSFU8pG{;w(4Q?&|1$q0;N06EyX*WBO+`hTj~^g-4jN zKP{R`ZS~cS{u_J_^489)xV-NyTuwxGAN5ZN>hJ^)trZz_f#7?DS$)C$k)mp5`hMh) z7f8ikfSVW(!L(=N00hq;_Ea{+X{v``<6Z@i-X;PVGUnAUeJ8sz?zi<00iws}J2I zj~w=~@L((6IuSA+5gsXe*Ndq?P`BP*Fqi2BxmPC3oYZ7Wl)*2d+>b>F0t9ZmwFiw# z%v7$FkeGx5NWe~`9@~gSL|!_=681oA{2(4`Y?(mQOK!kcm3&$);bNE`YOs4@o+oKi z274sfhFS^(x~b|-$Tx3YQNe(o-xUjS37kA4V->Z60Zb8MGVZv;P7h9>Ih{|@w)-4+ zpE+sT=-_%V9wl6h#-qt}QgLLhEq@BR9=;rZp>Ww=(9N{Rq;N^uIJ~kS9pt2NzTmJk z;I7-p8LeL=8&6&&3rCNjRJcF_5V)L8y?rLG4B&i8fp|jEX>M<-ovVwhi;Ihi3zlh5 z{ESIxKv-BD|die+_KX)jc5e(RXJkKx1LQ`eIx{!$`p?FDse=1 z=eD=9Z?Ncc#*=9#jz>c45xEs-m`x+lmMK_i zQRzd!MwGi$p85!PSSdMO5iVDD4K6ytE$IyYt#RNlVS?sr_bH6&>M^El{ z2M__ds&q0Jv{_ykJyZi$%|^!u?fD`}l9Cl*J)9biAn|*%jzwy>o}1`le)d&!d_46} zo)5jZ`zMzp%*4b*mBEd1`<3nOA2O=TC#N>w@tuv0j8c-PpWMYJOr#i3x;@Jja!hi& zx%s;bOaIuHAj<=mp}p{t&yJnwoJvA7fbpMQcySG2XmO5=;%v4|rH$i>u~D(j+};M$hYNM@{^p zH9+0mKxJ*c&bbBO~B9q+xYo>2Uo41m6;Cx;6yq%BvJKOl$_V<}=qSJdkA25gwhLFFqK7V!R4(x<%KRXJ!9N)Ep?X1Lg z8mb?0tuyf4RuHVru{c}?i6rAe@EW?+apQH$eZ1&O7qe=*AB}`YxRu~-ysq_j)(j?m z6&kt9@>y*;C-czBTTJFW!NGDwI_blu5lIPNKL41X|1_4Grlq7FRy#R2C%|z8dieR@ zd_M$+1*ZFTJAEoEJ`X~C2ap&j;*+ zvl-4hKep(0=k^c~>^!@y<35(HYQ~7AJ>~r%=)9{rKD6h1Y3UX|cNMeOspcSuvO%myu!1 zm=4*@n4cqV+)-7Dck9 z3xl}$6P84q{<4J;KMHbmaA*?TBWiV^{IcYg=Hi8j;0fi+C%R9_yHXW2KTD0(>wHNz zHwr&O*b*vasfOH5c5(Yo+#y-#0))7$nty1;qRk_%t**2>@e54CDI@l+Il{xsaZstx zrL{NluR6-9`39_>_bY|;V9bZmtZ=kMqKTx*2Wed2}9E_seJ88v7aN{l|NkDK@I+fXN*oaMl&OzXe z2Wt?$;#mwbR1se->pL`Eo&6{6v6XBHCDC&t6}aTDYq~(x45(k3aFm47i$_t5#7FK$ z(!yuLQ$fcTsDwX;u!_(@)2877w(g<~nnnEVBfhXWW=_QPEyN6iUNs{F>Po9Pu2Jmh z!lA}c$|4buat#Wwa-T}B1T5z)g`)VrJ8{r-kTIEalRd$*#oZQo%Di~evIisuNnyoM za~842JCK9mQ5Wj$-+(h32u4ZmFjPnZp*&Pgq!=cX_!wHx4C-Mqfd|Jh9itlCEhjvR z$gVEM^CnoYG29Ax?pA8r!f%ya;sb@SVhEN|i^ArcfwbfKrT^C9z%fJvXld+IERLo6 zp~R_*AkndLvXbMbaGVWh7rxBncP^>d7K@`p2G;Fy7o7Vm+v12eh%2EK z)Sn5Cbj%Yw!Svf#wV6VkRawSBP$n(fA(wh(sj%&`XNg`fHbHBME(YsdOr^di5yFC( zeoH*jhHHE&_lOWTR@8l1{N=97Uqx@O9PvYUEoaTVY1;w@t=i&e2KjP#zeR8pU}-^g z0xiLj$#8TU7`mqww9pdT`X1!9N)m#f+iGf_6~z2U@kOb!IX#@km$_PjOEOt(#=bf; z1XUidy^Ol7NGlX|u|cezrhK#MYAcot1KCvLQmaWw*wpLE{#%tYeA)kL`5`E1OB~KN$M$4Ohc=`EQgxfdvhU8 zer*s^D&t{81^On1tH|AFMJ%0~xhZ`rl((&!1~JssWWLZMfBo$tBsvk@!lys<5rzx-(EBhmmvLW z^m&MZ6Z0_8r=_I9fhAg#S3YGeJBz4cg>0rxGnvAcDO=b3`vCl}eNkL_=tsM2=5N z;+Ia0u0`Wj%=$Z9s`eO)x_9>s?kB*APRdm$K)x?tV1t{eA=0$%+xIj|&9A%;yGSAD z)-z^6Q3z?a2wr%`ztxm2x}0*Fd6S4H^9PaD0lIWi7@NM7z@>ni0Q|whmy*P|Xvm*- z+^V#gGPxqa?LF;54u4@8666_uWHChj!$6l5wTr4S@>!X|RPvjGT64VLAyy*lgN0@h zi(_eb>0`JM$3JdmukQOvxN~Mou)su=6tl)^Hg|62ta7y{3fRdQ&KCGvRD|g`=B*IL1E-KYqwLa71FLdgwkKyHm zs5H4c4*O}(2+1kRv?mvTC`0#lb_8^FP479As=vxf!e8wLy%ddCPfd;1RBGVHCHVKv z?Zs0Ae^wOP)1(F@K%cExvaT*w8!-{5*C~w%m2fF5>M}W9%ijz4@2lU+c7CUi_~CUP z_4IJxn8WYFW3tc(n@rzbT<&hSet6VSvOR0N4E~-wGKjAa8i_XvHpg-&Z9)SeqCCnz z{e54Z2-Ph+Q!zX^w?dscuAvKaTaYq+G2qgxqLTW2r$`>;IT$6$f}#II%(m6ViUO>` zyr=(L(nN~(>2?rI2eVaAZRn(@Zac>XC&H?5HT@QZUCf=b+HEHcB{Xx5{PEFQ=5jj# zi*cZiucmqLaxMkz$VZ%y7#Gn^{`|TM*x=goG}Exq1&7Qm1#w2)(P0%>Md(|r4^2im zh=MsGLv_8nJ0NO~vd(wdn%;F~&AY?72y88$bT~;|34b4VUgBPZ?#~x7f%vFFp|2d1 zG4vTb^S^XV0DzBJW<$#soUX1`Z~)(xoAXgIX5GB$ z&~;*6`ts}# zx~YL=+5GJH5{STI-h(hhGjyWd!JFrfOKZ%%31!yS$3D=?D^j{1EkJ_HUd0hTjSQqg z`U>=5!jjg2Q;sXz%E1T>{~OJh>gQ!Xz%P?|X_N3p)#-F50Wvw-D3X?=zDi1%dUV9g zf_1Yq4)q1Y?scF0Zhtq0CZ#&S`pGAqjSm0l*hKE-I>Ao!+yDihFgihc>mJ;h9kwJj z0Y@qkuZ)yfo2FW#Q^T%bCrqhq($kNuHhagL+k$hhvLu#?;5Zzk@uf1ucrJ1x{8Z}) zZaEA8ZmfCEt6O0NK}i4ZZw_2!(A|VLyeSt1=wSl5EYDs1ky%Am7wqeJ8GgjXq4xDn z`31pY0j`@pIrPx47XiDv0$d3nko@nG33j*-mp3pY_sn+_Di3p*6{Z2oU{ ze%W*y=Q@wt(+Z@XB9R{Aotu05h?$Nd3ojp2+F-d57bzr}9I5RK|5-qK=KS zNJ+RrII~`T9nka<$ufamYfH{>4Ec{9>6j&7$uYTIN+`6=Iwzi;Z^TSBK@PJEpPc z=5#GAy7C3~FFc!^^=+*0%{Z^oZGHugXSx4(9 z5?|BGgO1`wf2kR$CwuYfGGd`WSl-4Vzf0&hqM}E&GH1-yMl6;(-R~ofG(w&cA2DHm zv-_V|{(m9;+ay`xud4L55}aIRKIM+05PBG0=mMXz5RO<5HaY>V`n+C2Vtwh1^tH-2 zTL>ZfKvwb)mT*1TECLrM$7#U*$?*c>JH3#UN2K?A+%c-u1 zD=*VmtMhW4Fk(-FYC!-M9t!2cLpk0+x`>@UOS{2Ysk$>3)jp5&5m973s4c02J#{iU zhUW%_ucoBoZf+gsBUxl>+wC>#{+`xDXLc#$>d7^DlcZn8vW<>6;qYze;}3YdG=7a~ zVZ*+G`6^Gr?1lX!(!Gm#38&}pkVU(nEg%2O1xW9$Kf7xa7lWQOk#ZMfo7duL{Cud} zgBJUJw6Ok7Ibv?U!KUldP*_+t#v?Q+OaxX!@#H2CZ=ZlqO7bFn$V{@~SQVU50-g&d z-sk!VTHV5^PT!}nzJP($XZQIfaBAu7ChD+3dHXvjR9EAON?ZaofYlqKifOj4y@d)` zX(n2t+cj#gWcta2h8hn{XzPi?28Ewn6ntl#j4{43n5DUq7JflL!&dc zW&jv{Xd{ydmjTK#vBBK|!L}g!vL)M|>25I0lAh0kvfKN=Ny{%CSJ97HbsEu~EiiyZ za@F{>YM-`~i#DIT(UTe)6FqB|dV}*l=C$Cp06ZnrIQq-Hz%cPQ;E@w?;Cm9nHSrZdv(CTon zX@b7v@Zm+y&W*Z~fhr|*z^aaX6l3z?jKH)gargHADE)})+n3^jmg2hUR|al|q0=pU z&8Vz*J-=h(+O$BKyL#szTupSWd}!I6wCPDW9fHqNKAb23Iw9q(w@a;Y&-eI}KU#9l zD4%-*-$DQHF4R*T_{LVxSvl9A53f|U*qYD=;vdvM+551N)lm3+x~kWa08Pxpw~w#m z7?^7OP1Pr5=ArpmC_h>@+mA?m*!An#z5hiO^Nw<`T4r9_+kR~CYhoN}DaECkviyOt zH_UljTTn{ZS?u7=H*rB<3IVf5`K8jPSV_{pS_llqpncBFRm3_i0HM`kPQGKZ3hmKc{J2%LH{iyXxQL&&FOo~2Pw zrX;h{&o$vutk0$HQIZ6syw>6v)obe6v%qo|?nXFD0t1?gWF%y`9=En$9ERV(a%cxr ziHj2PdFx*%PWw4IpFyU)7k~eR40CESVv&jrsbP(O3!9zad>o6A!-^_yWUUx37$D(x z+S@7n3S(GYQ^T#J>%!ySP8tLXsi%Y6fV4DDbBv7bYdjpsfyAS=+ZPr?W0ULZ?&yR? z*FTQ8Z$-nO)^Du!q*)wo*9*4+*lDXOme53hcXCNg26{?{c$21&IcuL5`(a!T4luA} zj^t>za7z1)zP2@%x0>}N7V@!ndctIlTNNO8r?Q@F-N>}%<}0pFyd`! z7{d7Kccar)8@Av~LVK>y@pM8Yvx^8MorRH4=8B9NhVx|>#=&h?(L9>xZ{w}apJdJm z9tm|5TmDMQc$Bq76c5LZAljq_7f|YU$!xeZcf2xpw9!nwtFlh2$vMA%l9nMH41|65 z{MhYeq%7xI1cicR{KPt5HKJ~E9 znH@JT2|bXTC@*=;(7Lqm%=xkg^yo2;+EdolwzZst13*!po)rw=6z+ajfNh7vO;p;{ zV3MTiYmhkp$Aa`R@nQ%6bvlbB8YCEr2<)s1Jb1$37f6$A11^;pVOXMg($RWacr~Ee zHSX+E|JQ5*vB+&yUwA@dKFPGmk&_vpI!0RxKTG#2@zo5HnN*8Z$nPLIEdD`;rAd+YxwBIRXa*m(k<$)6J?PY_Km3SN7k z{|)nhs~c&uz|*?%dQyo%R5GF5voNUg^lz_KRBCYkJ-;^L^4uemnwimRor%FB@+rfK zF&GI&`J`~F;3mFUdaHyFBw=XAS}%Smzttw5o7-y|&5<`0Fnm1E%**MxKHZQ`v&c9u zWO3i$Cxm2s+ZVI+NnnYu9|jA_9x`Y4GXjmEbLZ4+U3hGthJtI+Ol~OEU2xJO<7e z*qG!wL5lt@?PokGTY0Yq+p#=S>JV8yU)}&1Phy}xmI(COF6))sWhhW5sFG>|+WZ)^1{g!Ek`Ai}cPx7H;5(Sb}K0|7t6lSi=uqmKbX| z=nnD*ck?>kJsz*)vYD>zXN)@)5$R1tojC9CDQS^ z)9c>V7(lYs7W03x@h1yerH_UA^u(@JW6J{*upb+fN}>NwgI(0DiMBu<_@t%}{|qQ?L_Np82&!H31kL*S<9d>r4c zKs4v$EPUc{kPTQ_=DDo9x?%M(#A<7ehyY{r%=gR0xm)oa-Yl6JI5cxq zAzH>c$Ag^zQufTU!Rsdyp!qF^ll8Q*R3M=*KaqKvX7UxDh;&Rug|q?HM1|#{@g+2n z@T)(iQ0lWDSYKQgjd3s=yhW%WAR-tcUTQ7u%h(621fR$_OSAZUScL<;aXGuw^TjBW zUAMzEYzr)+KaKov`BBmW?PX<6zklsn^SUV)cP34Ct44vzr`H23J3B5H<9zGR?<4T! z%F3(YyXa`=S*y15^-m+&mO<$y_q~5Ki(WQQnueEjI$92kyidi)Yf5Qk$fn4-(BBq3bnBelf3fHIv+g=rlPEO`0lrL{ zZ6RWodT6Ibks2qVVpHpTH?7I>h7GFZ&(lGqII-jI<5!VQbZb7P{n|8fvi}w}re$r9B z{@G)K-b^>6;rrqd)wyY*N3T1ZdH$&7{P)P_vA%uw`Ejr}YEk{u)}eKf z^6hbRDq666l60ek<0)?a2%FK~UAUWP27kH?RDI}fcif+ZU@W6+@H@!d+A7h%CF9J= z_%n#4dZhWzzKl(Tuq9h(=O6(d8JThfQJ&)2oJ;RPNJY?(P#7z}7g8_>QTU_r(DA+J7v zfGzut5p2d^z@1^Wv%jySb2N28=HX-X1{h|m=?(d|NtdY%%Jn0Y7?BE9@}8gMP4lMh zIag=?w{7&?ds@NDfy5K zHXwijhjsSx7S7370uC3~FN$;TcH+aFxaM`pP2`Xp)vl`mC-PBA!>(ttrXnMjHRDXB zu%AZAwISr z_*qpuW4wRmdM!`k>19Tfm$qv*G8-Bd)bmYkt$xX;T9pl0jn9N}LZoqAT#~h}v zYI3hX5(1-U>ZPxZOqHBv`lasM6T@e~tZDbV0T)sN6BS58|N21Zhe|W<^EB+it zDHDWY0NpqCvsZb>8fM&qR$9w?d?^ZHQKJvONF&z{?7Tvqbpvs)U+YsqZB@pNH=(QH zn_WX>wbs1QJE?xuJVU|FT*&W_beJZ31wp49-=4zv4xlNQIV{-N{*!%g@l8ZC+wR=~TK78qj zsol)+INt!y=K{tbe}_YT_sh>+Pyh)et9-`JWF($DXyKBCi70_7(9 z8f9`wKb=zay9Fm+kUKIQ!oZm;wTUi<2e z*OC2S22C^!>K@7$l7`sHh3j4WZu#pcT#}G_Rny`hya}zP{2eHUojO+}n=OOap zH^jVSAOEcP51IH*i*Jd&j7Bd8U2=0Lvt#U|AiOUQD6%in3a-8RtZ5xd9frm0OgSi@ z3KMMq2?_tL_RmJ#B6(5dq&D+GR+ZrZZF+4vj_S~XHflm*4>a^a;dMqO&7-0Sy9vxl zcdPfR(MAKGuyEkv+!4$Yne|8$m5saAhs=KGD23K!pH!S>5GkauIvfM8oldsB+}5>s zaIcNJvFZrVPn1s1nlS1%I?AT}Ze3J^91M4Jlul%^x!Fk--$N1hp~nuw(_+~LB)`9> zig}$+Zf5)54US?~G1n3zK-Q4MyHqAAP8{uss+3vF==G z`OCp$_2b80>eOeA7@{9qEui6?h2%Z%cIRKguL3>mqK-8(;d?+a-+}S&@26(*oWHr< z)R+G-bkUT=Gw`9TN@4Q(Sn#1H8a$ec@YBIq@Hw3rslor*--H2 z#^9(Weu(JcV6 ztZZMr1P0Nu&rqJgZ^&o*LR%hs-+Wr6`)7SDoUXEwWPhom1oK3e*zd>>{vnKmL2Y=8 zu_N*ICE2z_s(Yn7@>}m<;)ZPN##a`@5=Oa{zX~pwfIl&9izm&Qk2;cwcX_YE=YYaI zZ)tz#c*;U`A(VHW{{BHf;L(`uW0NMO>sCryv*#($a#}qCc*6uyyJ@0Wp5yfDYDxJi)m#bn*A;Hi|BYsmp3lp@^P^49`UZ9ceeF#?Q zQ%9ouSwMh8?Erf=UjGxrhNM63H-J4Mxn3lS8 za2&_6Z6N?&PkY)=MA6^;1mdL+REFa`O`fJFqb*LVjy%=8r(L>dt|#;|aoYcWgmPcN zJxn@GY$}|$G4#E{DPtz?4?O6oF}>^inksX@P{}h*LOl_Xn;_v>H>l_EXj*kbaiqQP zCxS07z%$v@9tl@8d%mVMh+5*O<{7i2kCv=i!auinIfTpB2@Oz^)U7bm{H2PivAz5f(rjvIQZjQ<3~*j!U61z-dn zQ7c)!BE}$Z^*-)O_!Q{g&Q??JJAdM};^sEg9^X({=sZqO#!_VruXHx5u^AqoSCB4X*p8w)DlAx z@kQQk_RrhbaTH|7r?9}Z?f4re<8~{BwC-fB!NdP2oktUZ@ThRdKzcbwk4AwIt`g=_OZdI8*)OtABGM+*$9t zb-@TD){`JQ{!8}}!b%2yba@{NGF3gR9J3i`V{JIcJ81{fSF9+>#wJ?ru)yAzq8<_T zW+@yy&Q~`WQ(8-pJVALcW$ghZ^!a;&!Z^xycYd}0;@azJVmJa3;CYV({U-0 zUfr6v^@2={ERuAadm~3Et<~1u3Y_78sM;Bv_0f}_aklQ z#M7z6mIvd;<8i$ZaY8!LiU}Tg!0)2z>Ut}>9?{r{H1-i({(zq6CQ@z0@MO)nv3b|O zz2Sv&%>fr9=RP*;L`lf(O2Yen~@Jm=njk1&nO=95a z#93#+Q%YKCyF`Ti<#2B)ot)i));31^)}tbtBB;WI%N=%E|BN>kwV zaS8v3OC^o`QJ736azE4*x9Gex2$4I?bq)=HcP7 zz}>Z0g>#QXYUyv*4Ue~DesXIVL*RR6F{w|s>$*0wJrwW)c^9Xy>FfmTtKQ@k{~211 z{UpC0%{lV&pW=!dLjcV~{}2gW`osgL1Ws4K<-6mNMvX7cS6{d?9u==u6ap}a8aiuY zkm*L5ou=^wJyojJ6bcZASy|i9H#%sZ0~}7fhtg9C>RKAQol8qdqNSWGry`fdHqu`L zeG;AUzF(8@jm)IyU`fFs4H5!0A7z9~KOr>DpJZC3ZUlcvF@N7Y%Dy!&Tlh(n7KzY8 zhJnn&k%LelA-WAOz7N0lUtY^c{OZ?WePnfge@SA%tG3wrGIEQ5#KH;~l@h#*x342|e*jAggRGZHeC(SQtcvXY+gC@t_ zDY%jDD>gsNuX#eQM;1+B03}_|i9M3b^77}?gvoaIiL>r)Pa(+5o}QQgV@F7-w7z`H zK8!@~b}B546XMo2WRVzy3SF#4}JfD z#ZZKAd&Oc^#d7C_bxVhk@YkpNw)~CUcF_)Iy_zr8S7ntXNwf%R840#T^j_L-yv%J5 z=$>9V-X~Uy@}3$O<-(_<%x@s=h)1_4b~U1K063wGtrg-s&BOb_Uem`EIrP_x->KlV zT;TuH0wld1MRU-5OXlvZ4^4P=T~@E8I4IP&cBFN9dur|8e^qVJ<2{Q`bbqhO@oRR@ z`)N1LzyEC{^!yrJ56?y$OghW6?Kt#X2yAc2Q8jy6*$6A+r2tuMBt~OiMVI%Jt*^<( zOcnoN(r!{s*P8F80KmH8|91Q>y@6i|s9MCqDZi?xJ%OIoEYG>!N9o{KEH1g7d~F`v z$2=Bo*uJU9XBldhSHzb7aFatJ0&?cgB_KlWE;4lfo}BBwYX!(pHLvGuCE;7< zv#$>9F9zo0-*Ogfh-tUapWtDcbG~9K3e((Um*JFEo{Pd#lzpYeNvvXTivug+5u%^Y zMh%}6@CBAGS=j79-N`2&xXET(h=C>6-tg}~&;I{KqpkvFk%H0(EgThigXuDCcr*~s z{?xrhd}vDY&F3&2%5<|{EJ&YJ`F<+#XDmik1Hy&Q%oXfBuV1`pnKz66e+!S*{H*4S zdmf)4c`so&Gj7*i^ImKC2`|T!{5$HywsmU{^DeeyIDoy&LGQ<8`#b;)7k#k5aU*t$;^E!4ZFkV;#*L==AG{{mXr=TGG_GP=6-fAapA12X zT{}8Rrt~V`;eHTKV!gjpqOn8SWB(QSC>OEq!J_bw^{A`0bWiT5>N!3f??WN86hoC) zOx6EqF6u<|0sol`FX@sR?Q*vB>O)ZtAsYc8uQauEcQAG8x3#z)i@uJovgm)et;MU6 zF#4zn`+T%VL1djY3YyV?&mCwL=~r6!qdF@pM9O>hyDTaMN2f#N;Cb|1l?EmPqgoYb z|FlH<`C-d01{~wQlV@`9^nB^OKNEW#FG^w{#-u1;u6O#O_|bVW3$zf}-cE;wnzrrJ zbUXU;uGsCxje{eWlCZGDr*JP!Kci5f_NmwqMaZZSQ;XxJ&&-?Xvdzu{T1n!zw);i;|R z{)gk-Gr%b72nQ|FtKI!;*p$-N#?*L<-~PWq4Wy~1HQ;%VDXHKs#(!YL0@3oNedD^y zyHU^NymZC49p?KXj0lx=VVk_BEZ+*7?QN`61qTG=J{_2Tdil;_g`ywASlwzj2fGHI z6Kj`IpT?^C0|KzWfOvyFM+6aIac&c()|c@7aPb43gaqSM{B|Kr%b|0Um2s|EgGe^o zYCV7=aN9;a1@_a!v)@qWL7lbD;##dvkJZQ?iDK#;5ZotX@8mq&;nG2d0qA?3J!kG_ zYBcSYPr5fb*{Cg^tcyZ3kCb&;fOJ*@i+AsS?Yj$;j(eX_kP{!CV51=l;vL%A8+orI zdbSQ7zz4@n4?5V`FaY}X^*m#|G;B0isWpMdD2THKKQL9gcedGM@sgzNloS67Y7ZvvplWC5pg&{)uAl|nG$O#k!iTQyg1jM^6fs;r24(tP`A z?&F5<^=qw^ijf9L=&cj<3>pvn$%4ISY0(V^KzYr^Y~0Rjy+y=yA12>E8FwG3GeL6n zJR`5-m;Q^9Zh_EDz{(={F2j-}MO`>g(Hfdn!1?$%>Xr9gNG~dbM09WlGAu~>yZq~# zU68{M7|OP+nMSDU-Tp-lT~!?younwp5w7?rcJ}c_SW=~y29}1tGBNx-nvdvN5+nmX z?~@QMls{1uSgD_d6@B^v<;q~Oj{iYO1z*mOKmF*)=|NvsD@L$7oLmh^NFcqB!7?91 z$-s|c`OlkQ1%gtFTd5weVs}pN&b+gnB={?W8cc)$(VPhhJ5`g6p%b*blm{9lYD1d7 zmt-lJVEMjx7&i9PYnTGr2QLnjO^d z>SJ9SqS3oM`^bQ|v}@Q{i7KpwvyV^UP3PaMxwTpZfHvq`MZU>$7*;gt{s*C@h*Quj z=-0jog^sLwU4%e>uB*QKt4qQiL(dI(M@GmZB2rhU80aS(nqZ4+iQOm0_3&sa;}mf! zm@nRE8-3Q<*D~U#R~XH8ld=*RDb!4SOMLAE(`%^|xAeZAc?;f6K68bXUXFQ;Loo3` z3yZkM%3aW=S?#?`yr8INv3YAxnmiW(|NQdVSTq(Lrsg$}>b#7iK{!5YDA;|gvwEO4 zWO~m6;ISDs{`sU9JA0s34^g!+6~zB(`cLR$aNd_m(kzoVWMYtFXd)I)ltoK~fPl(x zgbAE9*}$2w|F|pfI3;7bhyhtRTI2m8|DFfmL0|A+m?ftdQv5;;#}mSbXls|dz$x*h zTpz1gnxjV709Bbze-79+^IGiP)rI6Wbg}K+!by1A8SG{@ZBwNG(&uR-_~tl(0>p<% zs0`*TeN))Pp3%vn%Xs#j%PnB%U~Q;tn8(21^x&eN{wUWTTpa{n<&I zO+ac9Pt$J{vEViE5H#Rp7=^h9kHuM$^zq^; zfx+JYsQ?ENsA!cmcRS~;bXede@!;PEzW-<{981bl{qQo}zV7PE~U&DNN7*j+97 zjj_Cj?alm{#qZM9QfV&fQD2Z4HDP$R-g&c;Y2|<`Dk99_a@G7O_ApWtcsy&`a}Rli z63vV=@qO9RO3$>>lDUwfYieY8IPg4QuKRf^PV{b<;-#Pe#eH6fM9X!$qNeM@^yR9p z=W*+nlYm}zB4b@$CD-_4!i-2UHQ#7Gs{#&p5KQoAteFLDuA}r9Q^cz|i!l`5fXeiH z34uWrd3br;Zp|0OFpe2iOO+G|KFvCL+a4jnL13}x-`ax-j2|?Ab>AO@bS{x{!BCTQjtKu*+@Y5b9ovAT*1+FWDq}N4<=)Ql8*9<}^ow>|g^ADo(*{A4%NwbNCX&b(?MBmrO!~FJdue2!qv<>_IbUbiSCGAh z(vZUKtIWbvu_ioJfQjSh8WKn9FZkK$K(r?Xo ziD25XdEzTSV~SNe>Buz`(ZP0;Bhc_&EkD`UXtM9r*((TITiA1QT~?=w(P)ea^qGyb zvMRnw5{->L6M@PpmI|&nUvTI3Z+RC^A=}rC@C2U3w$yz02!Yf#vbKw6i(D+;C&0+? z(btqS@0GbJjgdMzX{FSSG&~I&zEjHuIVYgjwtsLuBqV*rx_k#$s_d$O>OhDB`dE~Z z3E`O5P&Bdt6iY17u*8%6O^}SUl!OP{7Z4vYj=|N z53qrv3x7$>Yuc6GquiZz;nh2_h2ZITR{*3FLgBmjH3JaOxBAK1_bj zUNi=4FkM{{8%yz%rZjSXn0gfUF3Lab^S>eRWZ0d^+Yno{aIoTY@n6MAh^+*YQhx8Z zhSk(uCB}^d(Y)KK!s2ffX7U4S7;K6STLP7Co_1GF?*j}SX6F~3D=JMc zAC%OZO`R7?41%87y!_9(3v5BXT?xiwo-jG|&k_Hc|Bz@N{>L#fewPj#=xN&K+DpkD zcbnTpgyE?_0D!_T=tUvB%$SUO;_vOedta-MDjZn0UD_@@#W~_$tl<3BZnrK*VuCj& zPD)dx@Yl$`BFR|lI=JThRKhktIe$|izk0H6 zHf!le1|;lU+>^{WcJy>GZy}xwc}LFnqii+jaWTV*@WC_gSJw>xFr_{qdF$Cp?%FZc zeUI3AkN88N<2z4JyYKW(R^>A1sn;bPg^k_!Tv|noMDQ5UGX1~v=VXvJPVuXBjZUYn z#!y>B&do;! z8IwWniPyfhhXR0~Hv2jw_FmuJV&A`*;~gt%^|~v_S^(+|yb<=VEs7PzsFH>9vXZ28 z)UN*nMt>Qt<_LjrEo}-|1H+uX93*hPb6;V$Y`CUStsT@nWICCML7E9Z7-7+A_zm-d zOG0RVf6zmK+Bwf_>TLJEM(%6)yi+*_X&kK6-{2EUEGS zx8kX%t^OFnU*=>HCAXAuDFT0w(G^|g`5cNLPLk&wbbe26UMPO$h-qTOz*F6G%TwoqCs{_?kBXT>2N@NLWY(> z6Ffi;ofr3NG?rif=;a)wn)sG&Vqfzt00AK31Knpt$EH~AvkSX;%0tBzCs+zRBdDm5 z2oJChQv$X>PR1RJd>k|sIR~j9i$2zcF&?2cO{P5m`auwK7=h1J(LY)G_ZN+X1QYHL z6!s`faXctXLAw_xMJ3b6UPYw;OOn`4)PG1+snS-K{spt{i46dytZK|WgfIi2za--h zwx==z0No!uAWM|A`+aT6DnFNzKv2FJ2OhH|9dVjd$MlICOt2YOIyW`V+xfNHBGAT=jh@fY0by64c&RE7ttdb^{{ ziJ>r@iHqr2c*s2}@U8HL6tE;9C|b3+WLDQJn#G9OM`8IB@IF|GieTbLdHa7Ny1QjS#wF`3@TI_ zH2o&7|CJtPw|>Lc>NOCQX-4ayBouKjnNL-*97(pmYBgRzK?lq@(qTRcPS7jm$5g_` zt!CsH&de^8qIrX|*LpzWYuDViXGBP#)DEfNzY#`%!m@#)duHrElBS}U2*Cz)#e>P7 zXHMQla}%v{3j9a@ZzlogV^D3)W;5I2i?y?$=2q*IJ*Qh*k300$QyHWj5zpV@HWXHd zEAO(N0;j;k#vC+{xSkev^3BNXwUDTC8L+(roS#YCQTJ4pNyisqGZpd*HZm-D*zQS4 zs!}E``yt`X%lLT%RTQO}=I)NN66+%gfhS&v1&=9Vnh%j$I$`=(ijbgzjPX*Xg z>npRPTChe@H@MdEOk?P?Qoth_!jz@|N%qkGA|;RiNK(|h&`iBIS9H~#*9`FsZFWN{D1?|23(f@}sq?-NB$*P^zZT+^p!*`Yc#Sd$aR_2}|In zMXy0gamh$ZAc=|n9xqAV?t4r|ISDsvf|WP4YDoeK6cB;N04L$4MT0sF3*66NRd+-C z_dLk^0^WfU!0509RCwwoLGxXs?Zrom$FPy&3gqOkH^sFmpq{-6MlK}dJ1AN)H zL)h{aetc?fLWb$@!$UV!8G*%-Mqqhh;K1{7xL4w_?HvTxGq(aExL*HKkAr3#U6Fy% z<@1&$7$BElCAk#d@jK!m>Gu+9eM{CX7|o03mLu-1=(934W55&~nv2?ix{4s1Yj@*-F@xC|K&p-vjvx{XB& zq3Ws4)HLTYh%oA!41Nt9Bk0g473F(E(KZf_`|QW?5U99kF@TH=$oM!ZKp2%cJ~BQ! zF+O_rD4RVQ$b=X3p`cC@$;xWq%6ivZ^t5~9EAlLZFI)70H3wm+WY5(8yi3b67rf;4 zW5B0gMw^b9aZ>o-7wyXD^F<1>a{=U)~ zRt)kYaIk*+{N?q_wNjjo<%fwCY0Rk+rt?QphOeiy6mEMvt1W965+;FP`pl39K<;kQ zSqdqyMmVthbjkSkdHqsnu^Teu68cF(x}GO`-j?Iu|J01bmM1e>i3MHO-M!x~fH)>R zdkvQ0Y4YH2&iM>t=!kipW^lTjifo}E+XOZ4vM3jieaA?0k``EYVKmvD@Tc!D+zqB) z&$?xEy2{>PA>6C;gaj(7o$Hv&rx4Aa&CO*o#eq>; zw#)aPB`iJoiILktV1_EckRXrdCP@3DuON);ihG7kBzAxsTaeBQOkHB$-i~O>{|dLw z(M9xYw;-;G^z{S4WB~WbFEf2S?n~4NUqA2zb9z@{vU(6-94F#9(QunYKD~UKT3jEG zS&Rk%0H5uh_r+4(ixM08KZ&5BSf4N~@JyU!X0A4BDBg=;6AlEYa8cOSh~mEQ%uPsC z6aA1XJDR@SoYj8qobUr07WmYBvKTrm>TGg4Vra>SODX1%m;rUDycCyJCO^B50$*_ zmGCwBK{XgdFote=N9~}H>eNvNsmfVbi3QVJ4d?CXoU`EJYA%`nP1FNTx+T)rypd0J z2(Ov%okmByFzP;gjA}3Wg|_hK1YidV;d&e6 zV78p=lKf1#W&Lk?@A<9T-P3uvXY{@z5TFBCgo~%R3`veKqp3Ben=LKdMkgzn8^UX= z!dx6+?ar9)Ph}C3A(FPXq~{2g@<}xvl9VO>Xbj-0rbmNZZ=9qAdXudJf-Hx2sz|D1_HQemSx5fxVv&qN|j zFjB&LKU_1~E=d$DzI5TVqY5q>Sd(d6FP|S={Qmeu2e`>ju}h{cIWt)CN*9G4c?|xM zg<1RMz?}fSkjW*LNiMOQHWyv(`Pxmd_1m_N(??Rk|BQsf8hZ(x*D`vu>U=LRsUi5t z{ri^O&t=L`I5!$H_GM%%v%Ue77wAluFE^a}mdirkBx$|bwP~12F;MfIv z7P%rD6Yk=FJIxb)vs3pRbU(}9bOP41Z{GL0U=2d=YfL|&dBFARbwemJmLbr`d#}}Z zBn+(J+eI5(J$u+`zgd;G9znjtI0cuT{xc#V3onxf*)zyG*IWf*?sX zkeg&(eR%sFwRX9!92 zdWX-d=vi08(QeO^Z?;ig|36=3(s8lpP~CxS@n2hMR54k*HA%QOf0EgUC;0rW}yeuXLCJ8J)f8<6l+-Dv5C{{8jsDh+y56&LVu zbVa}l7rZVE?eyC>HCwZ(yM)@Db#AW;Om;%Y-}th_`<+qCBrt2AO&p$nh*fedS^nVG zM!Qd&=9y-ccsui^ZX1uEu6d_*xH*c>VBjzuEdRmt!}dcE7OE9Kqd;X%1LQ*}ku_%m zt1!{WC&9nd$v3&r6IZPI0nmQait0|tplRTwHaHm5?2IL#YaQH6IDYxO{0p5u`)V=W zQA)B4PgTM_ghVO5{wK$__lv7R@~RUXAEsv4EdC5+qTg0-?qHB{^Ls6?tyux*D|tbK zb-6kB-c5!8Z3u>D4$QTI~a*3*mqjZ=r%8+V!Fo&5~R}Vn8MAnvlTk@ znsVe3bvR>sn?nXrYE^V?pu+{%m3?U&(-IrwD&X2flBNb2#dpOW+iW(jg1)f%oWEDm z=DG4Y9h`Vr5&&8~&$p>8S~j1kg#AL(F<~SMJYK0~pDxSd63Ik`0qQ;v$!80FU_DKy z{q1RKooA$7dr8^I+9Llwy$XJV{|?oX`$j;39Zz6&&EVj4b&WdCPpv5FBHC~%;9LZ5 zSPFuMbr&N#BFOv`exv4hb+URhhk*5t$-(Q<1Is~OTzua96?#FqpSwFS!A0Qsg`&2i zN<3iaUF;ja1(&^LXeTyl-;*k`=hw_Rmn8#N$RsQIMH0gXrRyR*tY=m_mf1HudTgpe zJ0Tf9T<_}trv;ehLC@9XQPHZ#9(#{0L1+LK(kY0B)I~&3Dei?C>Hs{PDOp9ku838DHY0@5N#6{i3s6SUvE|6P9 zy69NMA@&Dg23n0=b`T%2j48gkxg{DfKNzgStXlQhY%TobA<&Df5dXn)*A?v%p1IrC z^BBq4;`QxVc~b|V?q>+cTRfdh^@fUV9LuRG{m9-K=#AZq25LEiPHgYBX7)Cq=Zje1 z_69Q-_I!&^;3dUwb}1ZJ9%`kTYbxHby%Cz-SSiJfe)?gtxzzbQ%?a7CIBqr2!vK7u zb$y(0lq}urUjq_XQ8@@Q3Y{-@%IQF4n{h21lUXr|B>(>F$)lLw7yX(mi;-2%ThlhU*An_OO~X&l6~ z;stXMAJ$LjGiJ-m>pu(r`ZU)Yf)t`*`q8V2k5}7QaP-oTRhEXD3v$2?m7q;cCNS+Z z&{LiDFp^qnn1YTUl^ezPK+5(5v4~PQIDTpAx|NkbW$M0u8P^N?u5LR>UVS=Auo*q< z=*cg@Msr)i{-Wl)=Rf;P!sj5RJc_zwA~mVw_}&F7ME@qkaO!Pbki$@yTEKlcbRkmZ zQ{8py;DHBMGrjEFfxB+=V~ylje2$clpClz_dAzXm)5cgmDU=ngKTs7eT>2tM!Em#X zCJZ&;ha|Wt5HaW@(MSYiRk(RVgZA)X%0GYpE)#u(`X-HBm{^!!u9yg$Ki?KQq+_GT z(*MKrX$Z5VHa4e;S7kAJ+x=<@FXo~N?$Itv3dzc8N#Ndi+@PZxGUL-RpxGLQ|)@}Ij`n+1_l z(gv8o(#v|<9CkuCTQYMb1vR!LYrxJ0O%D`(*VSb0akBVz_kl3p|8s!F$kUEAi6dOP zmCVp5OG6o-u~?jH3cSpMC=CA}V&ximbc97XqklwR_QfHMJT$Out&iO?_#5Iy)?o%> zmsrPwXWiWoj|?6G;W#V1nSZrVq-?Kkf<4kFZGwAkjuj>~sOZlF5xk1R>cjgu{Q?n^ z$%PLaSApL6WD)1R4;edX-=d?F%6L;hy`+-Rk@50!v_G=6;^*>*(4=oN^-XF>jz@B2 zO>SgFAkzpuC43S4`-SIk9XrfK7^C#(bNxbFpce^iFgTte}}Dd;}i9LYII(F0u^d;OL3%ln8@_JA9?={g1B(*R$d*8*toa^5cn zOi@Z_i#9>eUs{M5l$o1OK^xnj!O!aAQnNO7szQJ6l8v2=Pfpa)35-=x9vg;}2n`Kj zPT`~G>Tc*tP*9s1M+m;0f$jN&I!K6)_(>u?nQQ;H=Rwy?j|GVT{<}}kbl9-fe&V5H zDqHBcTg-0R(fCMQbhW=TPcvL^*)|2fiO~CF$eFj_<$!{w>*iZihTP`g2-ud@0HCx^nD`VeDXon%MlLvJKWdOmVmYB)XpyI9_XUB zpB40sz%8vjfhltN^q_L9x5nt`TuEL9qlc- zrWYg9R9r;!f)8^WH?izrh@EFulhrwqDP9gk}V zZ(oV~hOW~lF_HT|$t1{Yd*AOcP;?Hqx+cl*UVZ4&js4QWIXnWK&+}v5&ypR3#bBTau;rjrqtL1=EC1G^Z{M8g& ztyC}oH`r)+1)$+#re)Q_=hb`y}D9^O9Zx=!+;vZ%oZ`szTuypb(oei5>}7 zL|~NnD_1}}@>UE==D3c7d_rwQ_h~PC(8~s9_t4YhB4+nvUmQ3N6|<*GENIf9?cNf} zs)zmyAAN+6j;{Y-3Db^8$qY{oQ56-frf7peHDomf3lV-J-&?ZC0kRJuh6}nptHJR6 z$eABb%9nNab+6KxebL@FO6a~tk3}_)=jIv+9{W?;<^5;I&ku%@i&s>_DpZJ?+T{@g z;Nat{Z6|v3kI&4)#FnDUa@wn0WsLs}^ZWRee@u;>|MrIKv{JR_rKLIQa_7mPo<#KF zG*dCk?_DMgFnjm#C$!<`4CkX9d5F;d`r_+B+^%jZL?%4Mi)5|`?qK_4n_z6O$giIC zoaY_=Vb;e?*@eYfy^r{7DLA79h$?@B5Ii>Tts0Uby;iSN;^B6pzMNZiemHdoMkdy^jr?ThFoA^p4F z@YvFgeL>&GKDe#wyLT?Nd_7K@Sv-~fL-#7-#@+zw@3cy89HP8AoqM zUIi5zsn$so;3jc-_Vx93H!mR4XK($Ma4~cUwV?i50moiFE9d`g*kjb{O(xSO76`4` z)Zv@-A-VWW-N|v?aJSNPVaFo+N6%o)F?82D8EA-vp%mneoM^DT zH>OT#Y^&S*J>*iSS7B#sHg&qGseSGuO2EEasctW{nkD9c%kBuMWKDE>-JV4tKK`IF z-`jiho;wI^O7mlkLEQg#zB%>b+pV{7Fbvg>TidZ`$Aq;-=X=fsxQwFEn4Hlud;*ep zzfRtK`shF4e$#eKrFIYy+Tw}% zbtgYxuA?Rvuvf)@Oh3E4?m`Xw#nLTuc^pk%@g=d5>Emm#CMoDQ>X6Ax&ru|%vAF+d ztoX_%JrevbvwZ>L!CnQ^y7ro;rtaErkJit1dN0H42@x@y8n2wBj^sd&GYBX{%={D-**@_3Mtz5T531=73{y&n)q55!CTS+VJMyR4~s7l~LywiI;I86p~mx6YvZ_c}@!KGB0{2S1R=_@U&7XkXAoQ%`zg@}i!ow+ux z)|yL_a3wuwg{g6?K>R4W`lZ(E)Z&#Wl5pWuA7(I^Sv!COuyE68wMxf}KNSy_14Dgj z?U|aVdKL3Cv$I6x*cIpSztRnmLj3m}#AhO9h&om`e2(}}s$xGSkB(=uYn4tEe_F}J z;k$VE=V0k>4&mNGEpP4Y=xs&uL%W{2;)7A0^un6<>dJ9ddYi7d^+kPbnO$4<=Glh8 zF=XZ_jeyNSJZL&I;sJ$TqiTV!#L`09lucmZyX8JBj08SE%BzQ16J8?`F98+?aTc4A zNa({D9a4cH^nI)$g`&a~Q>!1m|vj(PGsi{Pk=^^0j1Y9qkG-BlB zImj^N{_IZu0}C0v?7*K@3%UTu7=ZYcQZ++S<-U;QU<*CM#}zJiV?J z26cHj)Tkmg?G-{8mf1pb1h%X)?)tKT4`;=k`K2416}Js<^k{m+$?7JHSYuC9L3S}? z#|S*&R^<$`G$Z#)#cSCmXsD~#Klo9_AHH>!Cvq~PN*5&4DY>^ezIHX=RmGA1R)i@| zoRI3deP{D_eSQ2ZQesSQl4#J-n;t2mB8K0erAlt2tZ_0@HGKB)04&%~dZpmhB}RM_ zQ}4Q`ySkOJ*JK3Ib#bZ!xk)akdgL(Iw+#hmm&Muob^E-=qdTP8M~! zc=7WrO;~pMp_>HMEGPyi+%|+*(eP z9X>9``H!lqqjZV6tWMsob!N%vIk4waaCvHAl+<)8kP$VV2tz@qc0N(S@+K<>d6gC` znp?MW(x~GriL;#%mXs2O@9{5}po98l_G2Hvv6hz{yjGb%RAT>7T~v(?D$2T$J(s7| zc{Rw#&B|B6iVQMcqM*ZqmCKqVS9{QjfYZWs)X@Ikype#5qa&Clb=u_hbFOR%+Mz0S z7yEm}VhMkdjPr{dP*5G>?*0Gal!@^dl=xEZmD0a|#{~~qbg9fof0iX>!~94}96&+f z#^W?_A0i7gcmYYS*&E@3P0|5q1UhjdFECF7`{-BEE!6u&=w{wT&Cvw-NV<-;SW=Y2Km zN%`v{-s1;RD2)jqMj&a4&fS!+u+VGw^Kjtu|IK6kHSm>x1g$xo9$jOPRbEX0Hd1;;SA_E9Q)wmYP4N>5=6Z;(ARz^f`hy^Cu z{{343TZ&yuJB0ZkOCL0CynK=R;;pFXY+K)aPLtBNf*s$BfeJWXmZFP1b}Y~q%ES2M z$n(hkz~Qm^6bG*5V2nsfXtsOnTKIX71zwCi5Zp15UR+B%hC%xm!Hedi5IbrZN9{Qm zexYqnQ-Zn?0y0Fh3V)$Y0W}tV!bpX8I@hhO3Q%JCQ?(|v-HHwH8w4(T-m(1zixuml z{6Dc%cQbl)^kIR9ChmJYM_YRY9sk0Gk5FPRrqSm`10jsSWTC6aE&n|Z%~o?QMHYjqwIx^H;%dNl5nX78JC=>vO-jP8UU+>U6CfX5 z6kKGKIkcO9MAbg#gXLs)d%GCSx7T^R$X6iqb&aZ%|86{|Hu0fiKKG1u`0z_mu$=l) zDNmL~m3~SqB-6{y*!Vc>sqEWVqmuS?oQT=DIOsU5hCtP%{VA}d+mcDkGOD7JDr$DZ zdv}KzM43dP$Nl(J+_1+qll*jNLm+H9zG(l0Q62fbQ`B;#DPUYVp;nh1ue^^c5x%db znwwVODuFOMyl%&91HH;oEKnx`JOIZw9XvYHP zy$@TbB4GJKdXtdAbiu?>Q*`Mge}>C^Rd%;&%K3aE%}C74L+n6E`uj%TvlelTI$tGR z4(%oIoDb-wFvVxUVf=;SYdE@5b%!IB1OBIKDOKz@x2aEFh4PJzLK)V&(}BTq$apce zYPEV{C0Sp_LShxE=$A?G|&lChfsN{ge)!)YrSj zp;cojfWq}n#ZM$xczpjL`o~&|W86kfZ|r~_Y%LyX^R@NjbxC4f^n=<#8Cge zb#bayV8P(hJ%$yOE@xjWM8ZQ!Is{WTHj^#RS z*7-#&Z(Q8Vqj*XB@||g&oxzosq*rTgw-RIW3W)|lP;+CPRs@Zl+m8*s>r4Y^jnZ}} z#4g#v1FaGqI!-|dwNmf^Bt2WYjQ1&wZe8vS8FXV+SNrDUa8}n4{K`vQqX){k*4U|E{l_w6R7pRTzUSN9msE2@nnMZmxa#*)l5l{Y=iqW6=i49e$XyN0)FJ|`-WV+@;@G2nog_;)WwR#}WS^dSJ6*0Aq70D}Tc4(Ktyt6yBl ztay_MLMT;41MvJp2W$wTdpKJo77QOGX1KR%Asnpb{#0SxM^zoKoaLy9^Lw~znJJ#g z=(;l@{d$XToHG8_qhq7gSYg`fe{f)8oRK~BjGzVxpmLVB_zb9%LO6voz7&%3SWG77 zp>Wanp-?Qw$uja#(-L7}f2aSj6Yx-!k@FEu*ue=%W6~-lMDwjkm&4R3;>_Lw-v3Vn zcQ+wM0C!v*IJs^Gy?$1Isf;fx){Ny$KW7LN8?LF@>?j6>D!jD3VSzh=)+858wpmx5 z?>NXpoSWjT8+ttmBoM6g2XxB0cmB(Q!?XV-w021huv{ko;>;!VdfYEzu#|X7i?eK6 zIX57LmJo#*1;_PJ&s#`lV+|e!#EEn#9tnzle6rVGmFV+u{cS8{rRt-s(1ZPjZ5Mx$fcc8CIfJ{yl44DMFwb_It>P zm|^JJ{##+DRN0r3U%#>7?rws{I6q7-oH?&?=0W`ot9agWzGZ^1;Xk|;f4Z5^RgrH~ znZJHyxe*mqBQxZVp<7m})~h@s;=Rm#9>|+zKO}hYVj1r+G$gV=u7(r|e-MQR43-W5 zO)#DM{v!dKhywXSe``-}LpI*L~~H>euSzPT6r zqx`j>Qaew~thg2R#HQqucpc-pOy|16+Nu%r{-c~(diwNHe5Li#mv*m5bN@gFeFT#P z=Zr&eSa393{r04N-Q4YA3hpe!*8QPZ(ZQ0Q2z{wE*;m(iW;3h&eNv{H(GJpX%f#Ca z&8_xfXnI0d9VH$xie@w9hzxH}C6rHqllSYKRUBaJFl>F3;Y%PG?s6QSeKS&1^}N5} zjPfl%Zj7w-6PVd$>hpAVy7seIA>46oJvi@|W|2Hu2)}*l=egX_CYv<%lS{WgFsvTi zf2SHQON%!&&-N(sZKkoIMGt71{MPG0dSqXcd02GWQmYdJh|wlIp%U_i`~Znh%MSIj z1G%9bJMnY>mKAjIqPXa#ae@^Unm2|eza4}W# zmIxWytElP{fv7igTg-^*e>)souIq{1-K{jzfc(4HL!ACPM?XBar&nES0P&xUX zP7}J_#4NFMoa50&7gwbqwmhcW(pFJG&PYo^$+&L90p==uvqk}*ujMG?!l>ccBZO>` zjF-P|jczF%bbhzsY|$I9jfPIBHh%0$ZPHQXY*o$ua(C*t0PbBJLa}6v_-qzu1NIx7Z3KUS&L5%e#3w4Fu-Q^kK>VeZfXMZvTbv~F+26AgH-YDS#MEGNAfA9@iT<})ns~Cs z58)s9PL<|=)5$dE2|J%8$amF;RmP|`$`HbwA`oOY7|AF172OmM?3ax55o=_jJ8#61#s@WN>hdMnfdsEH&JP7gHvZkTG4BeP_!usJg-pEiqG-9I^|@mO_@3=;nP7y z%9UZDk!mze{KbvY7cLHS~XLiPoKtEDqO4{yz(9|kQ&At zc@&$-)2q!o0z^iQLsHLJ&;R%%hFb%Zw%2%;Q6;&}OainFtRnpj9;$YF+q2;6nc5RL zWbLBPsPFE65F^&ta*T-m zab0--2;_;j4_%j0Yo`E4%BH0>h>{9O7&WGX>i*d|X?`fNqn#1G(rMTQp^&UB2w3*t z<+HM|vPsowYfrwL4ZFo0j|f1Mrvu~!^mT=iE4;Ttan8* z#~5lP!ls4^hci=iG>Wm9e@#4JWbgmO1$g_2@!IoW?N$+24*6ds`e}8i_mp*WF&N`x zBTc=Nm&f)&oXwmrR`=bz-_9Oq$){Xvs-&cj_w_0NH%?~BD`~1Yd0lhv3W(_?ph<+? z43B$T@@P?^sBTVl3SdJpOo@O5>Hv)VYv?FzDU8i2cTCtx?(N6k?JYuNXehv-8+K4S zQ2c=IyX+>N(=8@$W@^^Yg|GF~3jRFbGd|oJJIg26mXC3Bv(MOXwZf4js1{8EE z+>_>wXj6&Em_c8P=B@G(RCA^V7wseyM~3h)k!Y|=p#i&jiW#HWHH%-Vv~mG@rJB~1 z2!XS~{ok6@C-kxdw<<^My{aG>2;8d1$_?A=9$VURR}ZzrFNRrfo5Twvg3tFQH6Kdo z)=B3|Wz@2>HJ3Hh;Qf3$dL4c7dCE+jrR!u^aJ5Jh6{T2JrmYGBeamedMrVfm9FxAL z93Suf>K5UC2fX^`-dOD+6tgC{k=^WWTgjZw*gCyly3WL1Wi^SnONsrq`aOchgFYU6 zKhkPZO}U^G0xq8*b=HKFU$MzN#@DBfRf56u__B55q2$PLLEz==@A0|%EKwyuPW{7x zVl-A$G>)t=8L6vYB)4_qR=oC272D)w=j>^5*4F9B>{oG$R5v7-rpG^__vXbGd}s9Z zU9!l^Q$`n?!t}G10upq|Vbk-4*lB-=FOg)F&hzOFB05``UQ*sm?|wnHug;+TNiOG3 zE+-X$fN*`SdNvQsM2MfA6)*DNE*m#WAN`&9{ zj3E7LnyGyLY;;H$ay>~}{_Xdgs9P^1Y)M<$q6sO_^mgJbdnL%O`0vBCS_~#B&?!m2 z*gdX#DCC)7!ITEHCShCsmUhiAAg5)uABtds!&muw02}bB!D>hVpl5nN$8nU2va=RZ zWF7QFj2r_27G&_~oy}wvSr07Xwr9b9;AMrPTHbcpL~3LohMXV6X(bqzGfMp&afHWQU22VkD!AnLAXl1>4T`Sx1GJy%UWVq) zU?(R{JI`;9GbJ4y$t>QfubG#g)t#_f{bMnQd@?_!J+VF#3_cx6;P&&PR$#(?emuLL zh9nqL=x0t1lX?OlKF>YfCf)WKrdKB*c6YM+%EM}PS{wuo9GHDOe{|LF&~RSJsOj4q z5Q~UfyCXg=szbbe*_iM5`?NZgRW7<5uSm(BmU-6==^WhVg>OPze0#~asr7GhGq_h% z$lK^xT;5c1`55yqQyDz*Qs}NM^!t5wHiG&NcqeU`aj(wnb-z2h zu{aTOVO2asfq{^z{7x>On&GR!3BgVPlw-98W}AEHjLZ~k5JI@@{?}!cWrE1D#H5Cn z+|G_RYc0FnNg3<{f9GY6B5W7lyM|;pUOkwsIFxH*(;c;Z6RctR5IBtD7{A0c5yyuz zmeWc;WVUu57aje3QxzX#ifx@O!fwy^$$`k(m3p1R0<=yCJ}P9-e^~|$OXVxQc846F zY|=ptG31I^6I@}FtJjf$xum|2tz{h_7-+mMr=tmWBI@!sWp*@-U-sY4J9IQR+;2a5 z8K63s>?eGJ%oPu+F5O zLg@B*<1u>zt#f5oiv}a2uI?Y7gGWtsv08B~L32pJs{;@g74wcD#z*t(3ZCrE7HlN4M+FxL5b=s@BW?hVRxkb3_YFuJycG zFjzMc(1#6>qQq3>Q9RQp=B ziV0sk_{2@sp9e(|%g5YAE&(f%YE5pMoSuBS1s<)~+BL^nzu}O}$Fr=f%No*^AoYX* zELQC>MqHb#_Vh1r)vvY{mwT-+TN4JP|L4fkMyA9VaInQRin1n>shIj_RlaJt#sSCC zg1=@A3o8+2h7^zjMD`F&aTi&m064*jfpWAQN?s_su+9tNP#93u!PXm}LWG0>z#8!b z6=D!HAcjk2U}sb*01M6BC{sNZgh_4PnCcnzURfCd9llhNB59Z*W#;a*ND9=dBylT& zbV4Yx!fB)+N_{O@;O`A))a9B(eT}h53q1~FC2IyX+{=qh(Y;kzKUVZSc>^jzxMds=0q(^EK^&}b#e7uoMv(Nv z_VTf<3v32w3Hl_WMqWjF3^bH$PNr9L&R{7bV(rpjidF0j$%fl*Z5O#~0+} zR~o;`YN~f#-x1!Od%e7dc6WKtHSsS!j79TM)_&mU8MGlZDciHi+U+6$>8nd^|D2NK zSElCKCqm>=XL6}B}NI^=A;t$D9bArwH>2k;P|VTMy9<5vql91 zi~v1IRBb>o=1E#ml7vAj1YNlzM({<5+ncaIZp13cg6#2^{X1WfD-Hs9rSpG5vILyO zXOOCX^1?92V+q<_36Vm6Cna-O=bBmcCFE0aMFq*RJJ1u0iMy3&! zAxhB}nhozVmiIrOiTa(pq8VB-EjZwZ_cI*wUxpLjH1ZV{W;Y|Srogm!ey60BB^Uoe zeTc{BA=G6Gq@iN|i710LXk(&XI%a|)hF@HG!A}?Dmk1CO!=V1P$+W-OIzu7%e6F(9YK_elj4`eV4a^z`b;-eH$;uDu)O>B! z$+uLak0`5X(Q$vEcDdy=8`oy{+hWYG^?B>!>#&hk9@1&sW=*i(>=b5$=>fUcl=<5~ zmE@Cdv!1fy{D&j*kS)<&6vF%C_sW}SXwB=ASH@$Kxw8GXnfS57e?KVj78D))DDZMZ zR+_o_W)7F4yeI>|V??yHtm?P58W){THhJ_5DyOwH8Pn(iLP5b`x_4B&-A^WR5Aj;L z&~>SmYI8pvNSw8UNaR?T6}1&?P9s`=;$%*eZ+Gq2uXSRulh?Ey88UsU+uxrU(Vd_D z;+t|i2=?lzQ3D6$3~1Em?p9y| zKK*rFZq$K^wvMV5qv!tl?%m@mW&C=GPVtzJ^U+)!w~}cOXSh7Y%rv+8&CRE6ZcgN()>9>P!s*X(x6f{*9PA| z>N_|9L`w$FZrLSW%^!Hq%3oueLIS!-8+j}88rU%qd#v)E6u#~}76wNy@XTtWphlgC zu(OKHVUWTAGz+XT$)QDu@wWJ2`qf76ce95)I6x{E;oSMKkX^mzzEPK?o1j`3uUZH6 z>^b9s{tEX!D^bm5PEM^E{R`u)x~;fCM0M7`vB`y%m*I1R<+kJSj^J|6dOXhXN|tXQ z(a-igMPPtPj|;Z9yX^lcqq9*S#vxWd1XX490{2tt+WZdz4Q42wUIK=%Yj@3O-a>A@ z5u+#4CuifCBCbdGA`af2hvmjP9FXR>L%xk6{TfD4E1-R+3bNVnkCwirpP?7HgW*xo z@#XdGDH}C53@S`cZltstbi@NUd43N&vCXHCCi2Ux8K6+dpF`ika}TVtMz5W&63Iuh z$=HSSL7JPJRx@JI)+Hvn;YcmjspUA)mNS(@2fyR850OG8>6Z1El)&os<7#U6dv=-x z;&avzF`xWH1}JtR5IBDTwcXEBIAhDWTIVb{repK}Lr?x+{pDc3cgG>(vu-pyC5IEd zbwrUB5k(LJY=sjd5OS)})AIGMjF9V=36M%qynzkCkO(6uSixD4?Z+|Jc&VLdBqfFK z_%;_brwNE*-9H(^11SDT@>5J+#_D@#3R_>?l z`;+hFM<=JJ5@BIsQRZC`NCVI_DVD9-bdydR7NPw2^sr%xnaDm>u_!7mYOU_2Hdgdm zP_vjmfdL$7ius5z{;wkW)+L5TpAKEOO0D_hK3{%BJ0-ln{1c2(YdwO`oyML%W>T;7 z%$PtxKWyIo;Bn516HXA0yU?DbSGC%<(qIt+*SD@ZqmoETv_h1SnPj$_DXkW8Ggjx4%&grMcPQ_0o7!vO%kW>Dh>FG5qMfAz_e9}mCV5dAeJ>BNxF;2?M zlfg>&InV8J``dHhe-Epl)@dRSOYe$f&Sws()NL}?9FC8yAOdtvS-mE_P+~)k$asFf z5YS+Z$Qx|N{dCufX%U8lBn_(Z@*jAQPY=Cc*xp$16maElCO>8OIlS}dqPxrHZ}nTX zh;mv6{Fk^dde=2?&%Kn2W8+6~X=jWyKSox6EvsxaZV*Q+2;oo`BKW7J*XsH_T(}cp z2F4rTLtS4pb+pi(;X-Up*33;>&WWLb->?gd^>Pc9dKTaopPV1_%m)r1ZR>~RP^&l2Pn2gJz% z>WiHbB*23bg|o3nhQsi9k=?-<_t&2ln)e}?=!j>sL5filAU@yS-}nDJxR8x2l&R&& zN10)%F`SVL0QP7OaM`gAl7;*vd+Iec`33Z71-0;)4wMQ?z#g(5vr5lI4M+55E~zC` z%f-p!{DRtSh3jF$SFG@#dm4i^$bd1AoH|IMYqQN1G3m|Y0VZd)d~Ro<+Ue}%J!Q_o zWC9C|3uTLAO&_W=dEfc)`7@x^>gnZaVbC`=oG>VIJ%){kXU>8C{{DXKtcn-(kl16< z;`iIKDU?shiqnMT`;WDn+(4pfN4IJ+g>H>?ZDA4!NJ;BKLNQXX=UAKmJJF@nZyqv( z)H=*X`Ppao_Jo+DQy>$M_#4l9E#t29-rAigQ`{fMVI;4p_p8YzvjQ`dJ>jNgHHRFv zL&tpU#Zw`mcg(_JLN+X~M31Y-&9XjL_^1sJ7~Wp0lR2a9Fl)Rt?#ytoF|2axlaC19}$E^T_lYh9M@ljrxHd~sS_ zmMbA%Vj`Gy5q%ElR<@~2L`C1(B^z|gtIKb1U+}VjzymKn0R}{h_wI&@k}yTNPC|L8 zXr9&oTDd6XusoPGSyPZr72^xU$iajgCz#_Cj?zr(@hXyOV4NW0qE0GV0=E)2tT_4a z)CQ}xB6?8K7&Q5nUA$R)>>Vr+1wC^5ZsZgT*`?sbPJ|#CQd>??>}_R*A1oWV@a=zu zuTh-m%&<_)$Ia?$UF28yHJyvWNK2coiINq>m?9*0_$dCY%2k62Ob|by))K_}ihmIs zGjnJbf#oovnc*o6&D?~lNGbh!)s>VK07?n+US#bD0QGfP;73?%xcg2WIjk1Ui!fcR z55fC%*S%@PGw8jevg0Lwg$4mhS49&H=n8<}>ybRa3q(RM8_O+CP1Hbcw#kl~7L5fBkdR*xqra;!2OlVi1XObYvs!Vk0V;-l{jQa1hIga|EW~&osv# zP#TjZ+?asaOyV5YC*V^cIWD6xuvkgU2v`Emu&AA9e2G&wwF|W2Kc1JGaI&#L=b}nU zGJ|aBfG-A7obojA{`pB~cY`2=ZzsD@sW2lK95lz@hv`v-NV`ipFv-o%vrR`AyaIn3 zt`mMPejTYn>un`Y4d^-iC98oydbLO4q}t2RWXw*4;PZGH8e&mE0W|hSfdc{kh(~mI zA7Azh$ov8V*lBzgWZ?kz5R5Y0Kb>+cxIMcD7%op;X3jp@SRn!{!y@k)YHo$Zyc)E) zjaGek(%!EABNX>aU{DXZ_vxb_UB|8ISI#9hEA9@iLn-~xIK%mmy+|RF?)fQ^&dM7f)p<=5imr$JYw~+eGFWbIqUhh|}XkgmYG z!B{7A3-4x$y`Fv!zE%ni0BibPm}bv;T)#145ed+*-|a5$BpdzNpU?RtU9dn)5uT-w zx1$CP7;W6Jc0*UdISsGHPTc73-Y8TS+jbT*t<<9eldF!VnT|dhOaICoX5Wu(T7z9P&U1mX>Srv%_;CX_Y+i)W%d~lL}fvql+=(u0y=6*J#aKL)nwJ+ z0r_lj0G9;Mh+~^^AgbRNF4jKs(tl5Lw;v9Ml%iRpr>$EeY|4@X8eyLcO3zPE?HsDS zxU}}_#2Tpi8G>}z+5NBZE#uelU}0rm-q{r#pmo__yvRNzB*bnz9vz7OYR>mFkCRg^ zr82dY_u^vpR&g%VDtVN+p3K*xJwJ7cPPiMSY=UaAo%F8jxWOP3xiDg`mHp^RGB(AX zqkopVBM#SY-zHg8^eV%DrgORN>@Tqs)n{wF`>cIl)vQiz#)k;J)MjoU>88SS~_X!BV3}3eHsPDF=_Lw9eFL^384qnycDJaj*UGv zuvj5k)a(C6gi#3=+wW^m_Y8-ylf4D(FRFK!N&YSLqXI=&dG3je9`M0dk|E>gMO3)H z10K4`q(F=Y%6XyfpU; z*D3Y?hYLVWsHp;oP2G3L%o^Gt%&u%Kx}xzfY9$+R#}L+>%Sx-bbh8*xwSrJlyYze0 zU6St{k6o76U53|(PXy?Y6E!m7BEvaE4jP|>|H}5#;bHPQ97^QkJ7Z-NXy-SmwBy*E zR%y#mu^V$=aI3ZIg*h21gg^?GRhmOdwa_a>eYU6`oP`^i6VoY#6xw@PEgI7{!1y) z$G2oo41)mEAmOvB4(G>4DktGOE|A-C;cjM0fgnMS!EV8vGSZ(~iGc1aY<;=9MIJe4 zD=&fj?XO$=M;3C-Et=N*-gdFVi!~f6m>^0gPfrK=Wj!A)GkO(e0roc*PEd9}O8ZuQ zKnPlgTVDNj-TDuu_CM~&PxI+eVF2!TK@8pW>j@4P8`Qu4w10(|CtN^-wtnm7{9pLXM{`||ep zJ&N11i)#-=g(laR)y@Z}_Nl`s`vo(2BOnw~vQnI(GZvErT6RSh1^uX}dvi()Ko17# zsVfNd7)<8C=~ zT6tmvT~Fg--SNIYE;*faTffI?Y_2sVQa*wmrW9pxvnausz?7sD;f#uUD?pMjv%mLK z1mwR}v0vlrKP=~KshmR3>-9UBYGBvdV#~!}qniC4sey`Fih+Xqgb27*w7|(bTRyx-~X<60r`pj+mc z8EfUSVr8*rW<_Fmaos1W0wND$Oz;d0q2oSS{=>Vq_0ugk6rRtN3yamfY2}LYrSUZ| zcpO%DuAJv&U)1r1S@VD@Tb&5SHUr<|hSt2dGy>)vWH{1Pun3s2TM!jE1dIT{RMB)m z1vjce6>2c;H)DhM4pxK|Wfjzjtq=G;!iv|B)*u9eziAp?-skoW){lIo18wA>pZ`EQ z%t+~B(4eg{wVuTRFwYP?^HnXKhW4L1WQR1Pqg{iLmaALi-Y#pTifp=7u-e2TTQVk* zsESdT)HaC3U?2pY+DC)3%;>oKEsH&?bWcwKm<=jy^duaFXNQ{v($P;*0$c3x7fZFz zTgl?|i9yoTRDn74#kKiaMFS~ne?V@$2t07Y>!PALbKT5QP!K$lie3qGJG7uNXZ~99g|0A=Bg7Tw7f>w8Lp8Y@rV^Br3a<)lEl;jMAG~oEI)cC1lXx*tGu@vXr-&>2(hq>y}FxG z!B@7qw6IJVyhgRXTxg}Rn@&++KtqFS4C{#WfJ?Q#1sph1$G-+V$iWi4al|%1E|b7d zvqKpPf&xDMT3rMOS~K(dS-KdZ*vst{!#%V)0~$b&;QV&<2<<2Ifyp^R-=?@-7QMnR z)|twKtuyb49WqrE;VmQc8M}6&;SxhWbH9+7GtP%eMn*W8IOf# z`ir1Nx=52nFjP;@*xs=>lOk(8Lb&}Bd=)UVT@bJn`3JdlQuwi`#F_y^#LiNo1{pd1D12OO`cX^*dvoEoY zNEo)E{~ z?)peJt%$?ur&Qq&YwI*lD-&uH4@uotgZKTrm|)W#ae@XqrdA@+ab&t`aoZev0y+{1^= zajiU18>(poE<3#AlnT(Mx6prY^=|8z_9Sk3Z)0b9 zFcn6Qc}NUpcP83(Wc_Y^`_B=j)v#?H%oU@e13&Td!^C z9O_tFOYYW@rrzm|o{W#b-Zp>Vcm?|uBq1lP zC}@gO8-8f4sX+mb95Wp4TQP5v7>YjV)8l|%0cc{{OCCd{0^;!SZJ^2d@NoH#udap& zF#r#bRf#N0s*vJXQc*?`M6&v}>@Fhr9Y#1f*qo-Yo^}MPyt%luq$MxUhSX2uMML&odZvF`BQ-SEDeeK|u?$`DN5abrqFVVD$9iziIr!N0)!QJvz_fvmT%(B!> zA_qRx4(eo-p0m6>KTF*WE+m5_gYKR(I_g#v;socj0|C8Q)&_h_!eN)F_m_Ix8k!bR zJ;BN;QFQ!$I*bP*3=P@*j|m@5eHs~#K$=aw&Y5MkpIVHR+676qx5kW9`QhSLGZbLz zG4@yq|NZiB?i$I&jOCe;0@dJgjgZCZ@5{Di1usBs@(_7sU$OrWAqxEW-c%$rZ5h)U zO$Nl}QbKu#53=9Uak=m%thi;wGne%_Oc@Zjl4j53cdVM(#KI!oZR2X_lCP3fQ+`Ns za$rNpUH>%e@KL6s=r+VlV6TJiTrXHwL!f|a{+Q;JBv`!H5s#adGeHL*k7fflp#6-O zvEnvGO?>zf1$LJjHFA0X6PI{4+Y)BcgVrHQF1(o>Qj0LrS)!S_0fn$zA#b38!YZbXJPem=y>&ZNMfL!8|X(ixed z(G3hVgErP}Xh5q+aDCaqM<1|bmVu52D!?+fpvo_0t$h=reh1al%Jt5x%`tkRqVYih z^sUvv#nqJZF>hLgfE0+iBN|N4craZ3)xcO=BKeBVKhm<1cm502*XZtNe^Ny3 z`(AxeB}oEftC?wGVvr=HxUZVp&+jULZ|t4K=@!0C2V>bgeFUpK-x74kkUi z82H9@=6qo5rsu29@f;7#(DPER66UMk9B6cjMol4Gz8qcki2QdI2`bXTXLA=L@ep#5^23oDK#k*1PaBI^91z2xtDtgrX>4CLCC>}|~v*vy^q5f5AZ zG~W3te?FG}nI%P}F5i1A4-wM%Ry^_aQSV!N^OtHZeZPCLz9}k^Vi<}@NKe3dx=}{=#v$KA;Lk88; zN#-+d!B!&bU9vaIaJT6{WxHf$jhjN`R=fK#ak7knxF#Z|w)5~6b zW7@=Yc)zFCe4g*Rq5QqFJb0TcgpO8(-(Kw%Wl!v^1d~Gyw30W#4_oj!du+wNYKlr;bLZ3H5eys5W_$2=507}Jm;e0p*S4~SP!urL|Azco#_!C_y^YwXYX zY1;Hnt$nk;)0I567tfBxc2`g)r9&8QzAe+X&3?@(tHle4u2i9v6?e2sm&~4Va=O#? z8H;|!#FzM!k)Q?|1qN2GSjgDt5auu8a0`W#%l*{+V-_y|PaeI&W~yMa!k+xplS+FU z(#hKWqA@sEe$5rraW3?9G=lHeUDz^synxI#g_46JH!=uImYF{;rriA_y}533h}l{NDzd3b;u znlNSr!z3pph(W&EB0AHK4Rx9Jg-CZrEjAYlN7*I@0APB9z5-jn{IlwuKg70m;bsEAOT{Aj)Rp=A!XW)E2N%}e{-7? z99l_W;on$u7>&*7A6d9IQgnCEOyMhCrleH7Df$|GZQv8 zHq<}xB5KsBIo)0dfH(K{x&-e=D*6cNIfnx}*IOVjylJe*v*DdbFB@JP`862DCrj6@*Fu3a^xLy!)g+-yCH%f_)P%3@Lc*r7 zE#~M#ne>jOsblro89=xfmVB}2s=msJ`DnPTdb7cs2-DLFHe_MDE%X2c@s^=Bza~&Q z^!L=CQb`(cY~-zUP5QR*GiQ8EdvCa?hX`bMHE)yMahI=Dmkt}~*}(b3@Fi4j3$Q$I zblTr7>>~?#Zb^Pqd3(N+Rm2>C^>F>%>(^0@2le4)y8Fz&-6e%qRCxWS=lL1Ek{)d+ zeBJiQ^hUj^HOpI;6UR1o!ZF|wL-y48m}!U=2@ zzpLdvwL3d+YK#lRc4s0W>uFaL8mimY?Ea(_MkasBid*<`*QJhH&ZJ~(Ah;?f`H+abF#Z=?-FeSqqu8Q|Gov7W@&01nhF!tAc)oReQ;zlsLxU<{ezhT@3u% zCd{Mn!A4P3_|Q@qP&N>-y#>dxv?nGg-@bl~ThH>hRCKUm9^!UYwB%+aUi0yx0x8=G za;J{FE+1q(z4B=3cmJsfeLs7Jsy6-b_lD$Yt$LXaG#B_y5g1-y{Pfq+ud$@sZAdcq z_bt)k@!H)pIt*zuCq+!vcwhJPL*4sWr4z?5e)pTfdn)pnA6*{yrj%cP1lm#mUsQc%SQb&&?tpa2LwC1ycXyXcNk}6l4G&#{q=IyJ zNJuwGOE(BeOLsS%!S8*)bIx@Q{D6UZ_UyG+-0NOz$$glOaJtU(d_|hbV&UU?-{CFsmG8L#H}4um ziAv;(pYk-A{|<`WTUnibphE<86wWkfvl8(;-29yD3eHAPV(u*ucpS0OhB593`$MD` zFRT(fl3nkpO;J&XNWLgzLG%OLioCIz@jXud{oX3>#$_o!rP1?#dv4ZHBZsDvrWp}& z3SGI5!=4IT0q3U&7Q9}jbjro2I)Qx$YtdsPvA0fan363o186?s|SgkOQmwh<6Kdw!k zej8wTPs(la!(BtMJWy&X^r4OpQN6ZqUA(U6jtpXQ1EY9W-wBxKi!6e&yNRq!&X5)#{>% zAzw7D-uR8GSSNb@ZFcXp!2mBJ3aTiO9u$gkIN^5q4fp$Du65cze7>64+1zi0L{<_Z z_f3ii@BL%@2-=9~?xVAYMOCoV`QSkQNTS@!HcX`JSi#%5Nksk(qXsJ#4abmJod}52 z^-6ipT6kyDt6&9{o@4dp6YA!pxdxxN7x&=lWM)`3O4~hjMl6H+>f1ev*=N204zunD<4%~I=2--HPjLsQ$&Sia z7oLFRce{5jVgmCg$x*ndN~MTm?YlRo>7l74K8Ifv`fx1?!3a)7J@sn8q5>hGgUfdO z47>|A)M>a0z9&Hr?{{J%*n|{6R_tso>hSBrmTM}N(@>{J4%NW5WZ_+%7yr_3%hH~K zjx9_Wc?QQxqkF#h;ggrzS%hCD_iU-xMV!*p*5PI@i>gNN8Oo5+AI(~y08+r$rKZ|F zjWeADHcnL7HiB{os9wmpGm!VPk-A8Ox372h_%XUis9S5n^}xLCa&wteK9X=Bh(#eC zD@{0vKT6JIP&IMn!atu(jQ6ax4{cop(<33nLA2k6DV2eC_7{fmU`V>EoY1c-WhSCtx^VhniZD1HEC4pim?CSRmt;|%%Zzdbf?+lF zQMOMJsd5e#pxC~U@5nMny2CQ?w$TQ40Py3?W;qKT_{k-V2GreiL|mkJ@x`;Cg|3Ff zJT=Z5DR`6VkE9Xq93;0wF9L@bO5K`szn}e$@FUpSYppwK)g9C}!;N+%{X)C5;`fj= zpT(5O3_7BnDGuZx+FjSj9+jGxi*%}7T5@ZQ+B|$`Z2;pDkfG_RByq9t-?!*`use+1 zC(Q{FDCva~14Pq!pk&pfa9b>CA3PkU); zan{B8a(DX8;9COb8BkqT9QbIXgs9%H)?@gr4r)aCsP?TI-6t}KBYb!5$&JAuPNi4U zRP%Z0S#&_FttST+YTeVKwrN!R?A1}eLkrj!lFx54p|n$y5oh1dmj7;-$#?cwrO}hq z-LenQZds7UoO}vSxpu=~)ShUe>17EIYMpKE{6QD#0lm?EkWJRp{G(6x+tTn@&oRN! z;*YCk2B29R$RD&|F?v5-k5RW=BIZ3dJv-~TF|px($?QYZ#wH^e6aTtGmr1)mLu|{H zA8|nswZu~HV0R|u49McsAJ|k=eTy4-@`#_|esKZwv&HL>MgIpyb5XaD@YKh@>V4Bp zES72uC@6ULJ`^R12+7)UpFo8=l5yzVY)DJ6mGF(#>%1~;LNl|=^WkS37-;~;;2S%e zS!N=LtY1{4vhu*Po*@Py0W`Sir^k9H`Jq?LdNj!ovjzK(OFz-5!to;%%qEStmXJTFd>VKEUpG zmXMY+E-5CfpEjh)SZ)m3irNejt>*XZ69+N3B8NU=w*d~_jaPEZeDhVjK5KDvAu{+& z9%ZY)zdj~xcGSJSEB%n4h=88u=~Hw7&F2j5Uy7gqA1uM{s_K(rO09|@kDH)26b%q3 zfel3JO^R&NiJHNa=DrhH!=xgRqT&9c7drK*Gu5v6Q1>pKBZ4>gElXsjY9Yw47ED(y zocx@_pnx@c7Dxe+4D6s_lK3?iIIO(ed(Xc0*np_VeQUtz@rSy3`F{9Qln@A$IXR<( z7m(Hb{oq$N-%RNu(L&o}ucrnYi%}y7laLz3g`|&fvBe2=Z`YDaynz)rfu*^JP*-BI zfkCDkooYqJk{WbQg5x9Kb-qDu`_eLf`${uiW?g_HJUcZiaWqo^2POY?rrt`(0$(@; z>3RveK0Elo&$Q0<+i{ zqInA#8)R<{qL&m%_i;{7YV*mBgbL^wDSzDEu4o%NxZJK68dYuIXp0FPHrec9j7(oy z4~5tJWRn8y0av|_KVkjdcSA*g{N{o%OC|=M2Kdbh4RoqG6 zfZ(4oI~^%)$(LKOtr@O6on+Xlgkx8ZV^B>Z#UQ8aAS}=nFKDVUnRKhKn?S3OgBh-f zRW>dGi9|xdrwaaYg&U0SoE!a?TLcd_xIu%BJ?!@)K#9uoTOw?B2OJq#&Y~CU0h5kc?~^hLI z4Wm$mJzH_vU?$JqUvj@aSN>fL@^>D7*XD-d)!6|h=DA8+{tMH-J5&_hUKhKcy=c7* z<76DP)?-8K+2$`P9=Ix6V1e?ss}Xg}&{+=K{$VY?w);ymU7QPxGisyjDy-jj3m+Xo zgW=wGbwusc3aY(P-B#XRh~3sGtoX)+dARX5T5oud61v6U(w5%}AsLaC4NGzH8~1TK z;`uSRRvd5DP`%BA>Jq+(9{T0m%lfqeVXJhhVGq*igvmlYk>f8|n;BY~dW{}C9ht4{ z9^cDWe`U{m9i=v0&b%gPnltR-;h_VkyB~aL{wO*F^Znpn04RFbWLq^L#shXX-`$fU zY1>Vd$A3CSkS*o=D;>ly(z*MW@w@r~?mOI>ZF_}4; zIt&w z?nXqyU+uRCw~2l)p~52Qd{es{BPN^Hymsyz2WD-Q_II(&=5|Vo7@}+nx z#Lrq@e&M2OwB&7Cg6u7{7*(miWj=QP2AhQH0@qekO~hICFuX5Qn#7We0JMbe8;kY% z>Q;-0Zkq{U1FBd#H*PX9MIvlhk+Eu zkMIoklKj5f4e+Vxt#hz%n*ZZ6ZB@1HB3RKU!%_!gyC7`R$9s5S?RPLLHob=qf+2h8 z^qh?!5068fL)Tw!-qu!w8N8@PRxkq4x*N?DNlQ<+~6`0=l;MOup zf}tA=)|z}=-Cr%;e-}ZEYC5+=a(dTmws#+)=3}~+-e3?d_HZIMkQu%D2vX2xYF7ow z05cMU_beyHS?4axP@CBb7ChqNsSP&)k&LfkdNXa_?_oDte2h&gmzBppaXo+eN!)?` zw#D>xEKRiWYCc{oz~3l=Cqc~gkE1-N<8_a!<*~>2v)aLj*}{Gs%RX2kAkB`P@I0F7 zGBkz67c8JR&%{(M^w7;W)g=g^Uwm==Apnu^ttq9zZ0!`44f zwTKqDdi08ABKcd7lj{a7QjZn(U{fp*G=AL#HRvEG-@BjtT>ksJhVA4muD%KR8Z>}u znD?6nv2Cw(dJwk2Rdcx7L6P^(M|_{CW=~xisnF)S&Y7{*L&8%f&Psw|O5`g6Sm1a_ zPVDJ0BT=$dWUelaXRp4FceyA-Yj)n-G^<@dfi|w6Dm**8L#S6P;Thm?=Yuniq_SZ8 zFrpc&Grqh}(pQ`dW3Kx$L~`m2EmEMkNV%DA0Zhcyc=(}G;Usb(I1_kBTcfz9H!|>6 zW1L&3<_`s^T3?GY*v0?R1|ua83?#xKi`IUe(>oC4h z=@6q0{|XXC9}WHV2{696%g`)+`nHS9)Ld?8-R^xd|Jdq0yJY%92QVhGq-Km2sp#*F zO>H(FOgipp8rC1!#RL3D_~|A;eQ&S00JG*gr^nGnRYZ;X`8>qDGvuNk7mMyDMjEAe zE1@tyV^hg%Ta9OIRaYu$gan1A*jl*T}G=G?S!;jde#@Uqz?L zw$8QOK9K)DOLtJp9*YXPOFT*ozA{XSiMM47ZYaTJ+QlHXZFg~;#y--*CnDb6&yvx! zsCdW2XbHZeinc3W;5Dm3_BA>~DRg;~=gJ-yU{=y#B#({1VVL;%5B)_3;v*6#+?`OI zXUmSPi>{jG?x{!m%RG|!L0Do_faGu&7I0RLUSpEtFgF*w4`EZt{=&$FdZ=TOVL^OV zUYfzxVc;p0?A|kQADLLxtquJWh^KM;&##0@U_(>U`^d4Fm(St?Gxq)sb{ER*5#o|!EKXA_=2D~ix)D^GL<2P ziVX`B$ zeqH-<84A;M+rO1TYl9agoLoHh$DaP8S@DbiGO;}Wff54_S_oZsTRgK;SJwl(a5@GL zN^jL9$F>VvK?8ZPx`rcIyyUg7&HX-p7JHeIX0G@cx@dTGz~tFuN3CG;4zWVo&7+Wu z^A8s%i9xo9$!)WP>bUVl3?EJ6LyY4hVc)t&wRQPVU-cm+n zWa=B&5qdbtlbwg9QwJ2i>Al<HD9?r(4;QjdkH+9yA6u9lD4b9lkXgS zx-i?nbji4D`?TtV-X+89~YR&RR0&{xQS;GL!Gd;j~wy{X1olsmXI>D|o*|5zRt!T+ds& zR@3UiDeC~c!=i{_P-T0*!p;UE87!a_E_3zz@3#aQ!VMVzHpO$n-s>YFFQ^srCwTq3 zp2I%T?}F`|z9{B;Cd}2vDSEfs=wkWWX{rPv{`ZV#q{Im zaS@y`eLrRTo});5!N-TK4Cx!zBcp#Iw-X2tthfqFwrva7xHwc6$Gm&tqZ125fkO}% z^{(1h8TG_mR1Cw!3_QeLuZtF1czC}F)Yp7#v)XT+V?XFqtkb?2muTP>f0L%#6=jDO7Mw6W`S zTE6P5?kPkZhEit>xS;ioWG@-R0n5L_yx8ZP(hc6l8tJ;qwP#P|%s~dshItPS=9Yyz z42mT-u~VXibaSwbb|g^rxJB|x_+r}!{=Z`?et;i%eayz#YVAT@){7Owi~faIGp%c= zeZZO^o400hkO-I1%Xz$syJZGg?h;>Wm8elz<19E zLp9L7gAOm{(NNYu=LymvV1AlZZv34GyN{isDsH!nhtYhtuje8_`^Ku9tS?~Cq5CgB zC`jf1j$Rw0s9=R_Uai@QQ%oG6g+uas3I0_9_im8PRX)F|L^myyy*K6OhBse-pM+3T zD*V=EjxA%_g#$Y()nmB2c~H5%(Q~ZGvk&mHD%!i9UX8xIA9xj5Il2k}3x69)=Jvr>kZ~$wjCN1$3trnyLImu-Nj|R-d8_nYlL*rgC@wh}7 zbL$oM2jI$HAkcj0!%C6z|1H3r!iV7)W_%ACU;XCyrsFO1EfbuEVj{jYanX3g3FdAL5jXYYXaS z?H>x|ty<7-8!uKh#^TZUn?@VOWZ4$~WY>CzmoavK$i`!rL(?phRKZ6D0svG~n_Z41 zh?t?TXqR#E`#+rI~D@zBoA+IH%$`Jz|j@L3mBlmeKNZ74A0$-8$JjoqUWulz^pwRjQ^#6 z)S`i%mf&lIAPyF93)3FULl(7?!L7&Fem@x3ryh3)N;Acp*^4uy+l8ke9PS)cru_-r zMV{_ciG@P}aWeheuj^kvY%C!FQFlvgo@Btc5NIB4A@gYjKCAPETfX_qGlRugnP^H_ zCQ5H=Hhe4BPCYysm6E&Ql%v+WSj$2~2@hXF;Uzh4HGh*)*ijPhA?_mv1STIP8*8zM zJJ*3zSgPw>-iMFaGrjx=wC;OF1t_2yy}h9D_%E<1VF6Ve_*N-J{79d+`7cgBqN4%e zz7yJ=DDCQ;uK$jZGGyx@p!(WeNfBMWx!D+s@WMW(%CX6U+OZ~mHZO~dUT^G6o9%H- zgKFD#Gjd9g&*C;2QH$fpr?RuHo)xP=nABErEGh1jpTA#Ne~sFqa!d}L+EgbFTQBwW zbZpOA$QNf{aU!J8t%|QRwcdNv>U7al@8>AMU~5cmW2 zs+Nf4uvK#+&-p~DohHp(^6c@HXD6^Gzl3a@1!>*4vbT34oUrB@M3vQkFuz33PCs+qrqqPk4k3A92L z`ZiMHP+v@*BsYlSc(BfvDt$1s5IK{uRHhVon?6k=>}qs#bXAx5H&xiz`WJ3ZO0e9_ zw|&v+NuF)(`Cw`0e(4oVf8((eO62AGnyl%{h%w1)fQivi_nzqZkZvOVA^x~*7UueWZC1j8^ zW@%qv)y~UB913`O-P>!Q{2?+dWQzW_sataZ6Vn9)v`APEg_m=FLHNN81N5D(r*jV1 zU@oF|#(lcxU;ZS7A`C!;Z(nV^OhQ-LinlNWjgyV9?@gc#Hg^Pix3eKy~CXrx3cEP z+i|0(s=NZ;!n`4&we2S8n*`~g>89P2E42ZQnrvN%JkC(mx<5w36`S*ISGTDS2tJ~L zCm-eRK7x~KDyav_<^-PFhWj&mNEKy2@PJ!?XFF5w9=C6PaZwd?OkLjlOck zQqp^dkV;NZcvL+eapvv}lf!a5pOdb)8+q(7`u?-KD9 zIWOVO39-ErIyUg7C~Y~9iN)@wv-(6Z2uCvn$7bf)7wNm7gHY1bQk5(0w5aBKmzZ6*7_npzwyTw&C(BO>5KT>?rwmI`lOH9$YMnjY zxns`~2GWIak$Me7yNK9IG6sYzCX=h3vFC6THX3G`dO#IuJ}|(TB2rObTzSyh2#RVY zbFEP$98j%YuK4#I*kGX=*1wNK+0`qsmHStV#RRhkQg-0nG)SL<$ttW2NN|St@0@d< z5x#&CH2CbS|5*_Q^eMq$jEQae`VT!4CCDHc$yj=v*{nOW%r`#nOs&{Th{qjHFMOZr zPBNJ_htwFg1c9qvO4=@mOA>#{^Gi66f#*GopzybEcZNIl2{7l_B9*xV4ImzIuwP%#vY1 z2{dq5zPrd^?7H*!YdzCm7`U%_T<}F_4&#fOiPRhrq?-p3zT!a*7CU`S{Yj_IA#s~( zcMk%L~YF6APuK9UKdX$(J$wO-1FdJ>nC)6Ymu_)k z>bHRr`S}gPf}W%(`P%hBK2tAoD#Gc&D?t2Zh;UHQ`$}a1oilR)X_8T+Y-{A*{6oU9 z;g8z~wL96ga&VA}o4vhtF_`|gJ4)oo;t_TMC5vPOmi9Xzo%u^lNl=-B7nqLI`LXf1 zxO`KGgX9Jl?({VdT2Tv!KKKyk&7Gc2L#e&BslI{urNkz^Ij=>ebVzLx16{t%bfl_t z=LarFySS1i`HCS+I+D?43wUtO`vH^AFp=@M;& zoD+&4sKd{y3b}-WcYd9_qhcGA>o-as2Qbm#$4Vk`kc4Z# zL{wXfnf1ivS5nV($q#ggq&GJdwG!I#8Wz5geD~ns`~xN2rNJWIc}i0FJ5h#P`>Gu36qjeNL9-Sdq{v#g-B{L;M6WI&Y}XF;3#=M zLxBDFlBxruF3F@)wQZj2+N=_oon)6OI+g}GFm8seumF5~_0&RC9rJC+5z*&e&anwB zvaM@2#yG*Z;jOO{nKv&4nUzSjS!>h9FaX+Go;czZBTaq!ZLrDR!^&d=`u0V53Iv_A zBAHw1^<91hpkD2$b<&bD_kD(Wp{?4Ys}+8_n%?70T#huYD#|Dhi*u1J{kYhtj+Deq zBMoFgw9t8t13MCI<=6VMuX~s?^O(dWtulqhTYK|wcO#R-V#-SS6vf%Rg{daZs~6)1 zGSf*_)jOdJqKQ#;9|yZ@Ra6}n6rt3uoSBtokI%YF9jO8X`-_yF**|fr&Hi6;BFcb9 zD!@?&^Wzi?h5<6Rk|hY0y|k_b8AQT(yFRqxRFu*cv(&+o*$~R4b^b^W*Po!P7Wf5o zn*AT=78Iw*ZRVu-S{K!kG))_o#K(wZ^`+vR62JSq4?_bG{Wf&1^muDQ`&N$1716#^#9^hdkoh~O_JoP5V+}= zs+Fo*1g5GdqdBQXGRg_&V4a;p4!N|(>t^?;(6s;=*>&99Y%-l-y*c%?LonbRNlC;2 zz@*IpWu?`UFfFe1c#9`6=3YH6#Ek~%C>?x?0>*sSpzfjvUos%-hQ)AL$?uKq|`8cj0*j9rpTo$ zBQyPd2KX6&wR9qoD}pd`1U<;F@G~EEZzIJGvZ-Bw`N_wLbsp7ktjykay~%p3ixTZA zlda3ENq@4J59VExsC-oTb{25pC4YtRxxLqwMPm8gr1B6iAe7ohzT4&~)k>;#dhy`Z zmD!hhnHL>z!q#D2s#8M%fXTC?7GHRvM7x~K!FZm1z7!-2!28dD9JtifoVHfilY1qj zrvdOQ98|5X20=qMbi-IZdl$f%=T457)t9z+-y|soxHX1U!m;9?VbVH*?%4BFzV?%e z*>F2JnK0(CiF)w0Sx zA0auD_49yojkN}kVn#KXUH=?oKBAzvusyu#vKy7GxLIM$W8*(A5fZRA?4*nei*A89;HdrgKb~qkm#(xm!@Z-vuEWlm97Myixr}@j6nwLfLw%2KTXE!m zhjB(XV{%WIkkGcXxhF&B!%SS zx$;DHfUNzmP^%t1h0kIQNs4etK+nY(3h@a*)h5kisVYS?irr&2IKs*bX1&ndmI8kX zA@hKSM^26JVVSV_(~9#;CSp>N#kkY97W=`s9aexp$T92zrJ*(Yeag$fW21)KZH_)5 z-{So5i4IfylC9zSPbpw*VeH2f{U}CFow34Yv%zqoYRlEV-#}~;7ZJY5^~b47?orur z&<-a%JHf21={xX4JI#fD&|uWo%hgV~8CqNHND0BUif&&V-W;~OziXs{4+NpU8`iek zh~Bo@rDnzfD}8=TvM5Zko4(}`s-xDHms^jSqDQ+&g=}x70>q~RYWih&X?$C`bKk$z z>Ne!r`+el=3i90z``9VXimKO-*?ish);xhC!`5C4^0*6h$9EfR=D?WSs_j{EoJ;O9 zPt{Wh`HgH^AlQ8V^m;O5s#0?w9y8|q>c~q08WaT6o4_80k>P{l1@CrRKE%OOFk{^A zXw`0Mg#_fO7wvSP#IZfV0O4CRX85?@o2}wJhx4>@HXT}GX7_IOQkJi0#I))^C$>Gt zKE@l4Q)ez-C0UyAJ??{b1O%v=dE4SU%V3PD=?gN{Gx1 z7i{xbH59T}A15LaSW0?h;}W$rQ2^~FAIq$=D0`Yv{VF9l^%RucO~0Md@W4lT?#=dET69!;;-i%8I zlk_oKF#XfM&(@yfbIm0*!U>($v%uWh*&9ZHVt|^g()p*Fe;8+FGQ3wpKpmmIjg#Bb zuJ|fZ!hg8{ySDvo42%rS>FpmwmbcL1U)a}IR}_+htt!X=!ICgK`*6?v1Wr;7oZ^u1 zTXmU@HrV*kxBE((0d%(XHDr{1jwFTr(i%2I2mOv|ARurNF0DvV;x2urD`Po_lDZ*F z3_!$5DB%W8*KoRmB3$y@q-*Xa995!j#c6qJK~H~5lO*+Q=a|j!a5tu$)$t}>Byo8z z_x|RZug$uDSjE_czSFqQ_WHOl`hIsyCxPwI_iXKuPavR>jdZKrz^L_u>tHe$K=T(P zsj6z4)P~pA$;GucO+;jD{&WeWz2Y1etUy>k|6@eNoKR$Hoe_nz3cq+t8bfxs=l}*$ z4t`rt;JJbe8W$4&rvLWwr==MAv`&|2KB1P|Oz)Pc<8`7K22@zi_X4$>vULvY6k1FJ z(hS^|K1FF5I4LRZ9WFRM{Cq6mn>D->dtxeVp!s{&h=_T5bJ21_6$Y3u0<`>Y*Fj3! zwhG?jvQHaoLx6yA$1C(UOTFjLpoarA$Ie-J#ip8lPZ z0Yw2_1P$`O(#{;uy(0x5VJ@(n4e$h`F(*f48=pp>flrt;T-!RE|7iPnsvHTBFuG-vTGc2BFp;@zim+a3;+@5x!o6zN#HMQ`qOIfovLj!u3$I){(GnY%YfWP|3G-k|x zawV^dkJ{xQdctp|z;UrNX0zn4f3dR8J-QpU-j8I=oLT0HtD_-oBiZoTrnGxTbl658 zDV`aFE8Sz+aHzFRB z3!E+g6FRb6kVMRgOf7kg^LXEl*(f6=P{(g$Gen9bCFC8aWXh;K-?y#`GQf>GehVKG zm}=lmCouGch8OtC#Sb3El*1KC-oz2Le3L$@!CRe35zIIDS?7t~f&_C}6stI%hmqia zhUU$1$*j z=>R>6Y4{WL(4uNti~r}+)pRpc``3{>#`$25RqcX`?p%HCG?p@`pAENu^e3dh(Mf8s z(+0yoc}+0<>mPZqIYln~@o{(-CL80a{fFeSU|L2tjD*84MplLH3ox{cKEK>nF4)g8 ziQb}r&?%0A0IV&Id%YbG1^fH-Z6`5dsq^>-JTTKd_PM85@mr4$ew)q16I z&vp(#OxL!2?Xua zekYZ_ghU`4DKh2A5?Nf&hoJ#Q@8D!LL2lxop-%_RE=rnE>f&Zj*W}Q1#n+p0rFc

                                              {HUre;N8lgA+?@$Y@tpI505sMif2F{7iGWkBacR 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