From 77193e30cce7835d976ff3ce5e751d25496cbf06 Mon Sep 17 00:00:00 2001 From: Max Ritter Date: Thu, 7 May 2026 14:35:41 +0200 Subject: [PATCH 1/6] feat: supply-chain monitoring + credential scanning + console settings Supply-chain monitoring (V1): - installer/upstreams.yaml + installer/manifest.py: declarative manifest pinning every npm/brew/curl/mcp/pypi upstream by exact version + sha256 - installer/steps/dependencies.py + prerequisites.py: every install_* reads the manifest; --ignore-scripts denied by default; sha256-verified curl-pipe helper with soft-pin behavior for vendor-managed endpoints; Homebrew tap verification before brew install - .mcp.json + pilot/.mcp.json: every npx-launched MCP server pinned - install.sh + launcher/build.py: bootstrap surface pinned (uv install sha256-verified; --with rich==/certifi==/PyYAML==/cryptography==) - scripts/check_manifest_drift.py: regex drift checker (PR + nightly CI) - .github/workflows/supply-chain.yml: schema validation + drift gate - .github/renovate.json: bump PRs against manifest - release.yml + release-dev.yml: supply-chain-gate via Checks API - docs/security/AUDIT.md: audit how-to + soft-pin SLA + Renovate gap Credential scanning hooks (concurrent work): - pilot/hooks/credential_scanner.py + secret_scanner.py + allow_tags.py - pilot/rules/security-credentials.md - Hooks registered in pilot/hooks/hooks.json Console settings + spec/fix workflow updates: - console: Settings panel additions, settings routes, useSettings hook - pilot/skills/{fix,spec-plan,spec-verify}: improved review flow - pilot/agents/{changes,spec}-review-codex.md: Codex prompt templates - launcher/model_config.py: model config refresh - pilot/hooks/spec_stop_guard.py: tighter stop-guard Tests: 2163 pass (513 installer including 24 manifest + 14 drift + 9 curl-pipe-verify + 6 brew tap-verification + 11 precache pinning) --- .github/renovate.json | 83 ++ .github/workflows/release-dev.yml | 27 + .github/workflows/release.yml | 36 +- .github/workflows/supply-chain.yml | 53 + .../worker/http/routes/SettingsRoutes.ts | Bin 19924 -> 21288 bytes console/src/ui/viewer/hooks/useSettings.ts | Bin 7311 -> 7799 bytes .../src/ui/viewer/views/Settings/index.tsx | Bin 29790 -> 31629 bytes console/tests/settings-routes.test.ts | Bin 26521 -> 28611 bytes docs/security/AUDIT.md | 88 ++ install.sh | 47 +- installer/manifest.py | 163 +++ installer/steps/dependencies.py | 239 ++++- installer/steps/prerequisites.py | 144 ++- .../tests/unit/steps/test_dependencies.py | 440 +++++++- .../steps/test_dependencies_playwright.py | 18 +- .../tests/unit/steps/test_prerequisites.py | 138 ++- installer/tests/unit/test_drift_check.py | 177 ++++ installer/tests/unit/test_manifest.py | 252 +++++ installer/upstreams.yaml | 363 +++++++ launcher/build.py | Bin 11579 -> 11587 bytes launcher/model_config.py | Bin 14337 -> 15379 bytes launcher/tests/unit/test_model_config.py | Bin 33905 -> 39423 bytes pilot/.mcp.json | 6 +- pilot/agents/changes-review-codex.md | 99 ++ pilot/agents/spec-review-codex.md | 81 ++ pilot/hooks/_lib/allow_tags.py | 143 +++ pilot/hooks/_lib/secret_scanner.py | 223 ++++ pilot/hooks/credential_scanner.py | 913 ++++++++++++++++ pilot/hooks/hooks.json | 26 + pilot/hooks/spec_stop_guard.py | 87 +- pilot/hooks/tests/test_allow_tags.py | 238 +++++ pilot/hooks/tests/test_credential_scanner.py | 971 ++++++++++++++++++ pilot/hooks/tests/test_secret_scanner.py | 256 +++++ pilot/hooks/tests/test_spec_stop_guard.py | 115 +++ pilot/rules/development-practices.md | 4 +- pilot/rules/security-credentials.md | 73 ++ pilot/scripts/mcp-server.cjs | 2 +- pilot/scripts/worker-service.cjs | 120 +-- .../skills/benchmark/tests/test_isolation.py | 2 +- pilot/skills/fix/orchestrator.md | 15 +- pilot/skills/fix/steps/01-investigate.md | 2 +- pilot/skills/fix/steps/03-fix.md | 8 +- pilot/skills/fix/steps/06-finalise.md | 86 +- .../spec-plan/steps/11-plan-verification.md | 118 ++- .../spec-verify/steps/04-launch-review.md | 45 +- .../spec-verify/steps/06-feature-parity.md | 2 +- .../spec-verify/steps/07-collect-results.md | 72 +- pilot/skills/spec-verify/steps/13-e2e.md | 2 +- .../spec-verify/steps/19-update-status.md | 20 + pilot/ui/viewer-bundle.js | 6 +- pyproject.toml | 1 + scripts/check_manifest_drift.py | 295 ++++++ uv.lock | 20 + 53 files changed, 5925 insertions(+), 394 deletions(-) create mode 100644 .github/renovate.json create mode 100644 .github/workflows/supply-chain.yml create mode 100644 docs/security/AUDIT.md create mode 100644 installer/manifest.py create mode 100644 installer/tests/unit/test_drift_check.py create mode 100644 installer/tests/unit/test_manifest.py create mode 100644 installer/upstreams.yaml create mode 100644 pilot/agents/changes-review-codex.md create mode 100644 pilot/agents/spec-review-codex.md create mode 100644 pilot/hooks/_lib/allow_tags.py create mode 100644 pilot/hooks/_lib/secret_scanner.py create mode 100644 pilot/hooks/credential_scanner.py create mode 100644 pilot/hooks/tests/test_allow_tags.py create mode 100644 pilot/hooks/tests/test_credential_scanner.py create mode 100644 pilot/hooks/tests/test_secret_scanner.py create mode 100644 pilot/rules/security-credentials.md create mode 100644 scripts/check_manifest_drift.py diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 000000000..aaa482da9 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,83 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + ":semanticCommits" + ], + "rangeStrategy": "pin", + "automerge": false, + "labels": ["supply-chain"], + "prConcurrentLimit": 3, + "prHourlyLimit": 1, + "schedule": ["before 7am on monday"], + "packageRules": [ + { + "description": "High-risk packages get individual PRs with extra labels (no grouping).", + "matchPackageNames": [ + "@colbymchenry/codegraph", + "agent-browser", + "rtk-installer", + "golangci-lint-installer", + "claude-code-installer" + ], + "addLabels": ["supply-chain:high-risk"], + "groupName": null, + "automerge": false + }, + { + "description": "Lower-risk dev-dep bumps may be grouped into a single weekly PR.", + "matchManagers": ["regex"], + "matchFileNames": ["installer/upstreams.yaml"], + "matchUpdateTypes": ["minor", "patch"], + "groupName": "manifest dev-dep updates", + "groupSlug": "manifest-dev-deps" + }, + { + "description": "Curl entries that do not resolve to a GitHub repo (claude.ai/install.sh, astral.sh/uv/install.sh, bun.sh/install) cannot be auto-updated by Renovate's github-tags datasource. Flag them so the maintainer re-pins manually per the soft-pin SLA in docs/security/AUDIT.md.", + "matchPackageNames": [ + "claude-code-installer", + "uv-installer", + "bun-installer" + ], + "addLabels": ["needs-manual-bump"] + } + ], + "customManagers": [ + { + "customType": "regex", + "fileMatch": ["^installer/upstreams\\.yaml$"], + "matchStrings": [ + "id:\\s+(?[\\w-]+)\\n(?:[^\\n]+\\n){0,8}?\\s+source_type:\\s+npm\\n(?:[^\\n]+\\n){0,8}?\\s+source_url:\\s+(?\"?[^\"\\n]+\"?)\\n(?:[^\\n]+\\n){0,8}?\\s+version:\\s+\"?(?[^\"\\n]+)\"?" + ], + "datasourceTemplate": "npm", + "versioningTemplate": "npm" + }, + { + "customType": "regex", + "fileMatch": ["^installer/upstreams\\.yaml$"], + "matchStrings": [ + "id:\\s+(?[\\w-]+)\\n(?:[^\\n]+\\n){0,8}?\\s+source_type:\\s+pypi\\n(?:[^\\n]+\\n){0,8}?\\s+source_url:\\s+(?[^\\n]+)\\n(?:[^\\n]+\\n){0,8}?\\s+version:\\s+\"?(?[^\"\\n]+)\"?" + ], + "datasourceTemplate": "pypi", + "versioningTemplate": "pep440" + }, + { + "customType": "regex", + "fileMatch": ["^installer/upstreams\\.yaml$"], + "matchStrings": [ + "id:\\s+(?[\\w-]+)\\n(?:[^\\n]+\\n){0,8}?\\s+source_type:\\s+brew\\n(?:[^\\n]+\\n){0,8}?\\s+brew_formula:\\s+\"?(?[^\"\\n]+)\"?\\n(?:[^\\n]+\\n){0,8}?\\s+version:\\s+\"?(?[^\"\\n]+)\"?" + ], + "datasourceTemplate": "homebrew", + "versioningTemplate": "loose" + }, + { + "customType": "regex", + "fileMatch": ["^installer/upstreams\\.yaml$"], + "matchStrings": [ + "id:\\s+(?[\\w-]+)\\n(?:[^\\n]+\\n){0,8}?\\s+source_type:\\s+curl\\n(?:[^\\n]+\\n){0,8}?\\s+source_url:\\s+https:\\/\\/(?:raw\\.)?github(?:usercontent)?\\.com\\/(?[^\\/]+\\/[^\\/]+)\\/[^\\n]+\\n(?:[^\\n]+\\n){0,8}?\\s+version:\\s+\"?(?[^\"\\n]+)\"?" + ], + "datasourceTemplate": "github-tags", + "versioningTemplate": "loose" + } + ] +} diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml index 317ba3d42..5943f72ea 100644 --- a/.github/workflows/release-dev.yml +++ b/.github/workflows/release-dev.yml @@ -12,11 +12,35 @@ concurrency: cancel-in-progress: true jobs: + supply-chain-gate: + # Cross-workflow `needs:` cannot link to supply-chain.yml. Verify via the + # GitHub Checks API that the supply-chain check passed for this SHA. + name: Supply-Chain Gate + permissions: + contents: read + checks: read + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + script: | + const checks = await github.rest.checks.listForRef({ + ...context.repo, ref: context.sha + }); + const sc = checks.data.check_runs.find(r => r.name === 'supply-chain'); + if (!sc || sc.conclusion !== 'success') { + core.setFailed( + `supply-chain check is ${sc?.conclusion ?? 'missing'} for ${context.sha}; ` + + `prerelease blocked.` + ); + } + security-scan: name: Security Scan (Trivy) permissions: contents: read runs-on: ubuntu-latest + needs: supply-chain-gate steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -65,6 +89,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest + needs: supply-chain-gate steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -100,6 +125,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest + needs: supply-chain-gate steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -132,6 +158,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest + needs: supply-chain-gate steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12d199ae1..38bf84bf9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,12 +60,38 @@ jobs: echo "Not a release trigger commit - skipping" echo "should_run=false" >> "$GITHUB_OUTPUT" + supply-chain-gate: + # Cross-workflow `needs:` doesn't link supply-chain.yml to this workflow. + # Instead, query the Checks API for the release SHA and fail if the + # `supply-chain` check did not succeed. See docs/security/AUDIT.md. + name: Supply-Chain Gate + permissions: + contents: read + checks: read + runs-on: ubuntu-latest + needs: check-trigger + if: needs.check-trigger.outputs.should_run == 'true' + steps: + - uses: actions/github-script@v7 + with: + script: | + const checks = await github.rest.checks.listForRef({ + ...context.repo, ref: context.sha + }); + const sc = checks.data.check_runs.find(r => r.name === 'supply-chain'); + if (!sc || sc.conclusion !== 'success') { + core.setFailed( + `supply-chain check is ${sc?.conclusion ?? 'missing'} for ${context.sha}; ` + + `release blocked. Run/await .github/workflows/supply-chain.yml first.` + ); + } + security-scan: name: Security Scan (Trivy) permissions: contents: read runs-on: ubuntu-latest - needs: check-trigger + needs: [check-trigger, supply-chain-gate] if: needs.check-trigger.outputs.should_run == 'true' steps: - name: Checkout code @@ -114,7 +140,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest - needs: check-trigger + needs: [check-trigger, supply-chain-gate] if: needs.check-trigger.outputs.should_run == 'true' steps: - name: Checkout code @@ -149,7 +175,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest - needs: check-trigger + needs: [check-trigger, supply-chain-gate] if: needs.check-trigger.outputs.should_run == 'true' steps: - name: Checkout code @@ -181,7 +207,7 @@ jobs: permissions: contents: read runs-on: ubuntu-latest - needs: check-trigger + needs: [check-trigger, supply-chain-gate] if: needs.check-trigger.outputs.should_run == 'true' steps: - name: Checkout code @@ -227,7 +253,7 @@ jobs: permissions: contents: write runs-on: ubuntu-latest - needs: check-trigger + needs: [check-trigger, supply-chain-gate] if: needs.check-trigger.outputs.should_run == 'true' outputs: should_release: ${{ steps.check.outputs.should_release }} diff --git a/.github/workflows/supply-chain.yml b/.github/workflows/supply-chain.yml new file mode 100644 index 000000000..4cba3f905 --- /dev/null +++ b/.github/workflows/supply-chain.yml @@ -0,0 +1,53 @@ +name: supply-chain + +on: + pull_request: + branches: [main] + schedule: + - cron: '0 3 * * *' + workflow_dispatch: {} + +permissions: + contents: read + issues: write # nightly cron opens GitHub issues on findings + pull-requests: read + checks: write + +jobs: + supply-chain: + name: supply-chain + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install Python deps for the manifest tooling + run: python -m pip install --upgrade pip "PyYAML==6.0.3" + + - name: Manifest schema validation + env: + PYTHONPATH: ${{ github.workspace }} + run: python -c "from installer import manifest; manifest.validate(manifest.load())" + + - name: Drift check + env: + PYTHONPATH: ${{ github.workspace }} + run: python scripts/check_manifest_drift.py + + - name: Open issue on nightly failure + if: failure() && github.event_name == 'schedule' + uses: actions/github-script@v7 + with: + script: | + await github.rest.issues.create({ + ...context.repo, + title: `Supply-chain: nightly scan failed (${new Date().toISOString().slice(0,10)})`, + body: `Nightly supply-chain scan failed for ${context.sha}. See workflow run: ${context.serverUrl}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`, + labels: ['security', 'supply-chain'] + }); diff --git a/console/src/services/worker/http/routes/SettingsRoutes.ts b/console/src/services/worker/http/routes/SettingsRoutes.ts index 2420f61d8fdd53a2441e8e05eb3534677bfa7975..1d670f426a35e9634febcbcd3eff038838e5ec2d 100644 GIT binary patch literal 21288 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 X>X^UGK$Y;zbKnM2JEg>?^}#KKF%<6& diff --git a/console/src/ui/viewer/hooks/useSettings.ts b/console/src/ui/viewer/hooks/useSettings.ts index fd36109003a86b94b6105018225b04ccbddcf6f6..20a4b9a56f06488081b83fb9049ea95adff89664 100644 GIT binary patch literal 7799 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 JA`7&at+r29SL^@) literal 7311 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 diff --git a/console/src/ui/viewer/views/Settings/index.tsx b/console/src/ui/viewer/views/Settings/index.tsx index cf27df96231eef88ddab33b4d4774f2f3850cfab..b70943d49437213ec4a787ff17a18a8fc9c63755 100644 GIT binary patch literal 31629 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�D*BkC2_!tA(PG)~GYCnD=s+XwM$)fNSBP%Yk=k5|2yn@kAmKpy+Yp z4Damr-t(9S3(e1e;d{M{y!DZ*y-#a82#~|D-B3MV+mCS}m9!%H%pqU)4~1cRI#G$^ z^#0sm>&Mlb*MBaSFCVG?SMB}0?p*xl3pOKCwT0t8bIR_j)XMUBfJ!q^2BCqOtj(P- zUx8BjtlSeZui$-46*&Zp*G zjPkfLoWp=-@B&&RJuH`gqA$!KMK?vCGR(bGwJz$<{62IMT z>;i5kBd&dVn_WI!k#U0YPUAKT#Fi>@2Tt`#o}MiBQ{JNpAV5LL4n3MdXK}Pk{Fh>W z;tarinpgIt0rb`IdtEG)R#Wq?hy;JA$mUKew%#Vy$vy*63!FMxxuXYUl_GO}+J8}b zHbnf1n3`ge@;ED*KFowALq6C=XeR?C?zF-Pzc{{0-BzER|u{3N`@z8CaeUS!+1keFrF)Fh>`zm_Bh zV8*@181g~^FB@hPmbZBj&yfL|+aInqqYtF4`$hpnqkDBNun4XDS#J=ZMM~j_{fwA}=7>u!nQo|)f z>0BIeA0EZ6ZqWgTKfEr~oJ$-=qsX~-b`4Hq6IvaRQs2M2uQGhG6f}}5#S5Mz$-Vno zL0*IvrhdZhAt7@5`4A|7n0H*%Q=nF-nP^O0oGa^1IY&*JGNqpJLSDG2*^*WvjT*uo zJG#>fa5!B2Xie3+rY(b^>kOr&F(8d^h7U>48{I%Z=kKCozbL{#9P`^y!|K-b(rVb< z7EVnguUoDDIwYp@bDez8at2wSmee1d<$Gb+ zjatW)|6scp=aU)cv;1*o0qL{j6F%Sx%i{4Bgp3$H0e8V}qDZahaVoLb!-d28|Eq5k z5s+QRLQSOiUAMXqCFHOFbMKUsjA-f4B6wb#%N{{zo@aF;$(SDdH#CK?OmpCRU&J^U z1O7L?$SbHy&{w&X!}^E=DE+^_LlJ>x!NSp)8n6HP;wmfZEN@<4<9Y9*bfe68m^F($ zk>YQGxDv0|Jyn3b)U1#4f6|VXfuSt8XHC_AC&9bhPXk4+$?z+0J7D|NjX3|Y!!+fu zfhGxGbLr^+C_sm~NjKsuqH`(M(U?mSIoj}tq$U}$ak82KMF-)K9ZnV5cQ$MRC8<>y zF{-Zbcun(Q13^edZcG_!`!*WqvtCpg89aW4j;O|1c60Sv)yO7e4rR-gG93JNYBmY; zH)a!`0$@bfHa7eC)3M13Z_E?xgv!!k*wUTKM|M!=mg*?$4-Z8p?Lj`#Dh19Z(ZY1c z+Nlgx(zO_tq&RI-2Vjb8rpbgc?p5(2``Nc@eYD%XM)}J{Lb4^7&7-^UCcdg^QvBH= zmwzO?$aVZ*fx*IF!udYwZT9KUn$`lAm_%0D$J^0R3WOsBaK68*y2~~fK`IuBUd81 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 literal 29790 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 Jxlb(9#{i$=;QRmp diff --git a/console/tests/settings-routes.test.ts b/console/tests/settings-routes.test.ts index bee7ecc9ec445daf5da807ed9e56b342ace68c13..8804068e58ff633fca227d141bfd4af2dc70af43 100644 GIT binary patch literal 28611 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�C2-o~|j;wrZer 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. +4. **Hotfix**: if user-facing, follow the soft-pin SLA below for vendor-managed upstreams or open a regular PR for hard-pinned ones. + +## 4. Renovate coverage gap (non-GitHub curl entries) + +Renovate's `github-tags` datasource only matches curl `source_url`s hosted at `github.com` or `raw.githubusercontent.com`. Three current entries are **outside Renovate automation** and must be re-pinned manually: + +- `claude-code-installer` (`https://claude.ai/install.sh`) +- `uv-installer` (`https://astral.sh/uv/install.sh`) +- `bun-installer` (`https://bun.sh/install`) + +`.github/renovate.json` adds the `needs-manual-bump` label to these entries so they show up in dashboards. Re-pin cadence: same as the soft-pin SLA below for `claude-code-installer`; quarterly audit for the other two unless the upstream publishes a security advisory sooner. Run the one-line `sha256` recompute from §5 against the current bytes, update `version`/`sha256`/`last_audited`, and ship the bump PR yourself. + +## 5. Soft-pin re-pin SLA + +Some upstreams (notably `claude-code-installer` → `https://claude.ai/install.sh`) cannot be hard-pinned: Anthropic redeploys the script at any time. These entries have `soft_pin: true` in the manifest. Behaviour: + +- **Hash mismatch in production** logs a warning *and the new hash* via `_thread_local.last_retry_stderr`, then proceeds (vs hard-pin which refuses to execute). +- **Maintainer audits the new script within 24 h**: read the diff between the cached pinned bytes and the new bytes. Look for new domain calls, sudo escalation, suspicious env vars. +- **Maintainer re-pins within 48 h**: edit the manifest entry, update `version`, `sha256`, `last_audited`, and ship a Pilot Shell patch release. + +Compute the new hash with one of: + +```bash +# Linux: +curl -fsSL https://claude.ai/install.sh | sha256sum + +# macOS: +curl -fsSL https://claude.ai/install.sh | shasum -a 256 +``` + +## 6. V1 explicit non-goals + +The following are intentionally out of scope for V1 and tracked in the PRD's deferred section. Do **not** open issues claiming these as bugs. + +- **OpenSSF Scorecard scoring loop** — adds CI complexity and helps least where the threat is highest (single-author npm packages without public repos). Revisit if attacks materialize. +- **Socket.dev real-time scanning** — requires external account + API key. Optional bolt-on if needed; the GitHub App can be installed independently without this PR. +- **Branch-protection required check** — the release-workflow `supply-chain-gate` job is the gate that matters; an extra merge-time gate is duplicative for a single-maintainer repo. +- **Pull-through artifact proxy** (Verdaccio, S3 mirror) — strongest possible defense, revisit at enterprise scale. +- **Customer-facing security page** + public SBOM publication — separate PRD. +- **Emergency hotfix runbook** / auto-rollback / launcher push notifications — manual hotfix is V1. +- **Replacing `claude.ai/install.sh`** with `@anthropic-ai/claude-code@` (npm hard-pin) — separate PRD, individual replacement decision. +- **Dedicated `docs/security/audit-log.md` written by CI on merge** — V1 uses git history. +- **AST-based drift checker** — V1 regex is sufficient; graduate if false-positives appear. diff --git a/install.sh b/install.sh index 8fb495dd7..1434af32f 100644 --- a/install.sh +++ b/install.sh @@ -125,12 +125,46 @@ check_uv() { } install_uv() { - echo " [..] Installing uv..." + # Pinned via installer/upstreams.yaml (id: uv-installer). Drift checker + # enforces this stays in sync with the manifest. + local UV_INSTALL_URL="https://astral.sh/uv/install.sh" + local UV_INSTALL_SHA256="3a020f8d69019caca567c9038999d130b0ea85866483caf2042c386cb685aef4" + local tmp_uv + tmp_uv="$(mktemp -t pilot-uv-install.XXXXXX.sh)" || tmp_uv=/tmp/pilot-uv-install.sh + # Single cleanup path: trap on EXIT so the temp script is removed on every + # return, including sh-failure paths that lacked explicit rm. + # shellcheck disable=SC2064 + trap "rm -f \"$tmp_uv\"" EXIT + chmod 600 "$tmp_uv" 2>/dev/null || true + + echo " [..] Installing uv (pinned)..." if command -v curl >/dev/null 2>&1; then - curl -LsSf https://astral.sh/uv/install.sh | sh + curl -fsSL "$UV_INSTALL_URL" -o "$tmp_uv" || { echo " [!!] curl failed"; exit 1; } elif command -v wget >/dev/null 2>&1; then - wget -qO- https://astral.sh/uv/install.sh | sh + wget -qO "$tmp_uv" "$UV_INSTALL_URL" || { echo " [!!] wget failed"; exit 1; } + else + echo " [!!] Need curl or wget"; exit 1 + fi + + local actual_sha + if command -v shasum >/dev/null 2>&1; then + actual_sha="$(shasum -a 256 "$tmp_uv" | awk '{print $1}')" + elif command -v sha256sum >/dev/null 2>&1; then + actual_sha="$(sha256sum "$tmp_uv" | awk '{print $1}')" + else + echo " [!!] Neither shasum nor sha256sum available — cannot verify uv installer" + exit 1 + fi + if [ "$actual_sha" != "$UV_INSTALL_SHA256" ]; then + echo " [!!] uv install.sh sha256 mismatch:" + echo " expected: $UV_INSTALL_SHA256" + echo " actual: $actual_sha" + echo " refusing to execute. Audit upstream and update installer/upstreams.yaml." + exit 1 fi + sh "$tmp_uv" + trap - EXIT + rm -f "$tmp_uv" export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" @@ -387,7 +421,12 @@ run_installer() { system_arg="--local-system" fi - uv run --python 3.12 --no-project --with rich --with certifi \ + # Versions pinned via installer/upstreams.yaml (ids: rich, certifi, pyyaml). + # `--no-project` skips the editable project install — every runtime dep the + # installer module imports must be supplied via `--with`. PyYAML loads at + # manifest import (`installer/manifest.py`); omitting it breaks bootstrap. + uv run --python 3.12 --no-project \ + --with rich==14.2.0 --with certifi==2026.4.22 --with PyYAML==6.0.3 \ python -m installer install $system_arg $version_arg $local_arg "$@" } diff --git a/installer/manifest.py b/installer/manifest.py new file mode 100644 index 000000000..37246d239 --- /dev/null +++ b/installer/manifest.py @@ -0,0 +1,163 @@ +"""Upstream manifest loader, validator, and accessor. + +Single source of truth for every upstream Pilot Shell installs: npm globals, +curl-pipe installers, Homebrew formulas, MCP servers, PyPI packages. + +Schema lives in `installer/upstreams.yaml`. This module loads it, validates it, +and exposes typed entries to the installer steps. +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass, field +from pathlib import Path +from typing import Literal + +import yaml + +SourceType = Literal["npm", "brew", "curl", "mcp", "pypi"] +ScriptsPolicy = Literal["deny", "allow"] +PinKind = Literal["hard", "monitor"] + +_SOURCE_TYPES: tuple[str, ...] = ("npm", "brew", "curl", "mcp", "pypi") +_SCRIPTS_POLICIES: tuple[str, ...] = ("deny", "allow") +_PIN_KINDS: tuple[str, ...] = ("hard", "monitor") +_ID_RE = re.compile(r"^[a-z][a-z0-9-]*$") +_DEFAULT_MANIFEST_PATH = Path(__file__).parent / "upstreams.yaml" + + +class ManifestError(ValueError): + """Raised when the upstream manifest fails schema or cross-entry validation.""" + + +@dataclass(frozen=True) +class UpstreamEntry: + id: str + name: str + source_type: SourceType + source_url: str + version: str + last_audited: str + sha256: str | None = None + commit: str | None = None + scripts_policy: ScriptsPolicy = "deny" + scripts_justification: str | None = None + soft_pin: bool = False + soft_pin_reason: str | None = None + pin_kind: PinKind = "hard" + auto_upgrade: bool = True + # Brew-specific (only meaningful when source_type == "brew"): + brew_formula: str | None = None # `brew install ` argument + brew_tap: str | None = None # required tap origin (e.g., "homebrew/core") + + def __post_init__(self) -> None: + if not _ID_RE.match(self.id): + raise ManifestError( + f"invalid id {self.id!r}: must match ^[a-z][a-z0-9-]*$" + ) + if self.source_type not in _SOURCE_TYPES: + raise ManifestError( + f"invalid source_type {self.source_type!r} for {self.id}: " + f"must be one of {_SOURCE_TYPES}" + ) + if self.scripts_policy not in _SCRIPTS_POLICIES: + raise ManifestError( + f"invalid scripts_policy {self.scripts_policy!r} for {self.id}" + ) + if self.pin_kind not in _PIN_KINDS: + raise ManifestError( + f"invalid pin_kind {self.pin_kind!r} for {self.id}: " + f"must be one of {_PIN_KINDS}" + ) + if self.source_type == "brew": + if not (self.brew_formula and self.brew_formula.strip()): + raise ManifestError( + f"brew entry {self.id} requires non-empty brew_formula" + ) + if not (self.brew_tap and self.brew_tap.strip()): + raise ManifestError( + f"brew entry {self.id} requires non-empty brew_tap" + ) + if self.source_type == "curl" and not self.sha256: + raise ManifestError( + f"curl entry {self.id} requires sha256 (commit field is optional metadata)" + ) + if self.source_type == "npm" and self.version.strip().lower() == "latest": + raise ManifestError( + f"npm entry {self.id} cannot pin to 'latest'" + ) + if self.scripts_policy == "allow" and not ( + self.scripts_justification and self.scripts_justification.strip() + ): + raise ManifestError( + f"scripts_policy=allow on {self.id} requires non-empty scripts_justification" + ) + if self.soft_pin and not (self.soft_pin_reason and self.soft_pin_reason.strip()): + raise ManifestError( + f"soft_pin=true on {self.id} requires non-empty soft_pin_reason" + ) + + +@dataclass(frozen=True) +class Manifest: + version: int + entries: list[UpstreamEntry] = field(default_factory=list) + + +def validate(manifest: Manifest) -> None: + """Run cross-entry validation rules. Raises ManifestError on any violation.""" + if manifest.version != 1: + raise ManifestError( + f"unsupported manifest version: {manifest.version} (expected 1)" + ) + seen: set[str] = set() + for entry in manifest.entries: + if entry.id in seen: + raise ManifestError(f"duplicate entry id: {entry.id}") + seen.add(entry.id) + + +def load(path: Path | None = None) -> Manifest: + """Load + validate the upstream manifest from YAML. + + Defaults to `installer/upstreams.yaml` resolved relative to this module. + """ + yaml_path = path or _DEFAULT_MANIFEST_PATH + raw = yaml.safe_load(yaml_path.read_text()) + if not isinstance(raw, dict): + raise ManifestError(f"manifest at {yaml_path} is not a YAML mapping") + version = raw.get("version") + if not isinstance(version, int): + raise ManifestError("manifest is missing integer 'version' field") + raw_entries = raw.get("entries") or [] + if not isinstance(raw_entries, list): + raise ManifestError("'entries' must be a list") + entries: list[UpstreamEntry] = [] + for raw_entry in raw_entries: + if not isinstance(raw_entry, dict): + raise ManifestError(f"entry must be a mapping, got {type(raw_entry).__name__}") + entries.append(UpstreamEntry(**raw_entry)) + manifest = Manifest(version=version, entries=entries) + validate(manifest) + return manifest + + +_cached: Manifest | None = None + + +def cached_load() -> Manifest: + """Cached read of the default manifest. Reads YAML once per process.""" + global _cached + if _cached is None: + _cached = load() + return _cached + + +def get(entry_id: str, *, manifest: Manifest | None = None) -> UpstreamEntry: + """Look up an entry by id. Raises KeyError if missing.""" + m = manifest or cached_load() + for entry in m.entries: + if entry.id == entry_id: + return entry + raise KeyError(entry_id) diff --git a/installer/steps/dependencies.py b/installer/steps/dependencies.py index 9afd5b2a9..b130a1a6c 100644 --- a/installer/steps/dependencies.py +++ b/installer/steps/dependencies.py @@ -9,11 +9,13 @@ import threading import time from concurrent.futures import ThreadPoolExecutor, as_completed -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path from typing import Any, Callable from installer.context import InstallContext +from installer.manifest import UpstreamEntry +from installer.manifest import get as manifest_get from installer.platform_utils import ( command_exists, ensure_sudo_credentials, @@ -116,13 +118,17 @@ def _get_nvm_source_cmd() -> str: def install_claude_code() -> bool: - """Install Claude Code via native installer if not present.""" + """Install Claude Code via native installer if not present. + + Endpoint is vendor-managed (Anthropic redeploys at any time), so the + manifest entry is `soft_pin: true` — hash mismatch logs a re-pin warning + but proceeds. See docs/security/AUDIT.md for the re-pin SLA. + """ if command_exists("claude"): return True - - return _run_bash_with_retry( - "curl -fsSL https://claude.ai/install.sh | bash", - timeout=300, + return _curl_pipe_from_manifest( + "claude-code-installer", + CurlPipeRunOptions(timeout=300), ) @@ -133,10 +139,7 @@ def install_nodejs() -> bool: nvm_dir = Path.home() / ".nvm" if not nvm_dir.exists(): - if not _run_bash_with_retry( - "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash", - timeout=180, - ): + if not _curl_pipe_from_manifest("nvm-curl", CurlPipeRunOptions(timeout=180)): return False nvm_src = _get_nvm_source_cmd() @@ -156,11 +159,13 @@ def install_nodejs() -> bool: def install_uv() -> bool: - """Install uv package manager if not present.""" + """Install uv package manager if not present (manifest-pinned curl).""" if command_exists("uv"): return True - - return _run_bash_with_retry("curl -LsSf https://astral.sh/uv/install.sh | sh") + return _curl_pipe_from_manifest( + "uv-installer", + CurlPipeRunOptions(interpreter="sh", timeout=180), + ) def install_python_tools() -> bool: @@ -174,10 +179,147 @@ def install_python_tools() -> bool: return True +@dataclass +class CurlPipeRunOptions: + """Per-upstream knobs for curl-pipe execution. + + interpreter: shell to invoke (`bash`, `sh`, `/bin/bash`, ...). + script_args: arguments appended after the script path. + env: environment variables prepended to the exec command. + stdin_devnull: redirect stdin from /dev/null (non-interactive installers). + cwd: working directory for the exec phase. + timeout: timeout in seconds for the exec phase. + stream: inherit stdout/stderr (long-running installs). + """ + + interpreter: str = "bash" + script_args: list[str] = field(default_factory=list) + env: dict[str, str] | None = None + stdin_devnull: bool = False + cwd: Path | None = None + timeout: int = 180 + stream: bool = False + + +def _curl_pipe_with_hash_verify( + url: str, + sha256: str, + *, + soft_pin: bool = False, + options: CurlPipeRunOptions | None = None, +) -> bool: + """Download a script to an owner-only temp file, verify sha256, then execute. + + Hard-pin (default): hash mismatch fails loud (returns False, no exec). + Soft-pin: hash mismatch logs the new hash + a re-pin reminder via + `_thread_local.last_retry_stderr`, then proceeds to execute. + + The exec phase still flows through `_run_bash_with_retry` so sudo + keepalive and the `_SudoReauthNeeded` exception path are preserved. + """ + import hashlib + import shlex + import tempfile + + opts = options or CurlPipeRunOptions() + fd, tmp_str = tempfile.mkstemp(suffix=".sh") + tmp_path = Path(tmp_str) + try: + os.fchmod(fd, 0o600) + os.close(fd) + if not _run_bash_with_retry(f'curl -fsSL "{url}" -o "{tmp_path}"', timeout=60): + return False + actual = hashlib.sha256(tmp_path.read_bytes()).hexdigest() + if actual != sha256: + msg = ( + f"sha256 mismatch for {url}: expected {sha256}, got {actual}. " + + ( + "WARNING: soft-pinned upstream changed; proceeding. " + "Audit and re-pin (update manifest sha256 + last_audited)." + if soft_pin + else "Refusing to execute. Audit upstream and update manifest." + ) + ) + _thread_local.last_retry_stderr = msg + if not soft_pin: + return False + cmd_parts = [opts.interpreter, str(tmp_path), *opts.script_args] + quoted = " ".join(shlex.quote(p) for p in cmd_parts) + if opts.env: + env_prefix = " ".join(f"{k}={shlex.quote(v)}" for k, v in opts.env.items()) + quoted = f"{env_prefix} {quoted}" + if opts.stdin_devnull: + quoted = f"{quoted} bool: + """Run `_curl_pipe_with_hash_verify` for a manifest curl entry. + + Raises ManifestError when the entry has no sha256 — the schema validates + this at load time, so this is a defense-in-depth guard rather than a + common-path branch. + """ + from installer.manifest import ManifestError + + entry = manifest_get(entry_id) + if not entry.sha256: + raise ManifestError( + f"curl entry {entry.id} has no sha256; refusing to run curl-pipe" + ) + return _curl_pipe_with_hash_verify( + entry.source_url, + entry.sha256, + soft_pin=entry.soft_pin, + options=options, + ) + + +def _npm_install_cmd( + *entries: UpstreamEntry, + force: bool = False, + extra_flags: tuple[str, ...] = (), +) -> str: + """Build a manifest-pinned `npm install -g` command. + + Every entry contributes `@`. Postinstall scripts are + denied (`--ignore-scripts`) unless ALL entries opt in via `scripts_policy: + allow`; mixing policies in one command is rejected so the security + contract is unambiguous. + """ + if not entries: + raise ValueError("at least one manifest entry required") + policies = {e.scripts_policy for e in entries} + if len(policies) > 1: + raise ValueError( + "cannot mix scripts_policy=allow/deny in a single npm install command: " + f"{[e.id for e in entries]}" + ) + flags: list[str] = [] + if "deny" in policies: + flags.append("--ignore-scripts") + if force: + flags.append("--force") + flags.extend(extra_flags) + pkgs = " ".join(f"{e.source_url}@{e.version}" for e in entries) + flag_str = " ".join(flags) + cmd = f"npm install -g {flag_str} {pkgs}".replace(" ", " ").strip() + return npm_global_cmd(cmd) + + def install_probe() -> bool: - """Install or update Probe code search tool globally via npm.""" + """Install or update Probe code search tool, manifest-pinned via npm.""" if not _run_bash_with_retry( - npm_global_cmd("npm install -g @probelabs/probe"), + _npm_install_cmd(manifest_get("probe")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ): return False @@ -196,9 +338,9 @@ def install_rtk() -> bool: if command_exists("rtk"): _symlink_to_pilot_bin("rtk") return True - if not _run_bash_with_retry( - "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh", - timeout=120, + if not _curl_pipe_from_manifest( + "rtk-installer", + CurlPipeRunOptions(interpreter="sh", timeout=120), ): return False _symlink_to_pilot_bin("rtk") @@ -244,7 +386,7 @@ def _is_in_git_repo(directory: Path) -> bool: def install_codegraph() -> bool: """Install or update CodeGraph for code knowledge graph and structural analysis.""" if not _run_bash_with_retry( - npm_global_cmd("npm install -g @colbymchenry/codegraph --force"), + _npm_install_cmd(manifest_get("codegraph"), force=True), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ): return False @@ -269,9 +411,15 @@ def install_better_sqlite3() -> bool: module resolver walks up from CodeGraph's package directory — eventually hitting the global node_modules dir and finding better-sqlite3 as a sibling of @colbymchenry/codegraph. No nested install, no tree walking. + + Manifest entry has scripts_policy: allow (native build via node-gyp); + --ignore-scripts is intentionally omitted. """ return _run_bash_with_retry( - npm_global_cmd("npm install -g better-sqlite3 --no-audit --no-fund"), + _npm_install_cmd( + manifest_get("better-sqlite3"), + extra_flags=("--no-audit", "--no-fund"), + ), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ) @@ -361,21 +509,21 @@ def codegraph_needs_work(project_dir: Path) -> bool: def install_typescript_lsp() -> bool: - """Install TypeScript language server and compiler globally.""" + """Install TypeScript language server and compiler globally (manifest-pinned).""" if command_exists("vtsls"): return True return _run_bash_with_retry( - npm_global_cmd("npm install -g @vtsls/language-server typescript"), + _npm_install_cmd(manifest_get("vtsls"), manifest_get("typescript")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ) def install_prettier() -> bool: - """Install prettier code formatter globally for TypeScript/JavaScript files.""" + """Install prettier code formatter globally (manifest-pinned).""" if command_exists("prettier"): return True return _run_bash_with_retry( - npm_global_cmd("npm install -g prettier"), + _npm_install_cmd(manifest_get("prettier")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ) @@ -418,11 +566,29 @@ def install_golangci_lint() -> bool: if not command_exists("go"): if not _install_go_via_apt(): return False - install_cmd = ( - "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh" - " | sh -s -- -b $(go env GOPATH)/bin" + # Resolve GOPATH concretely — _curl_pipe_with_hash_verify shell-quotes every + # script_args entry, so passing the literal `$(go env GOPATH)/bin` would + # arrive at the install script as a single-quoted string instead of the + # actual Go bin directory. The install would then drop binaries somewhere + # nonsensical and the symlink fallback in _is_golangci_lint_installed would + # never see them. + try: + gopath_result = subprocess.run( + ["go", "env", "GOPATH"], capture_output=True, text=True, timeout=10 + ) + except (subprocess.SubprocessError, OSError): + return False + gopath = gopath_result.stdout.strip() + if gopath_result.returncode != 0 or not gopath: + return False + return _curl_pipe_from_manifest( + "golangci-lint-installer", + CurlPipeRunOptions( + interpreter="sh", + script_args=["-s", "--", "-b", f"{gopath}/bin"], + timeout=120, + ), ) - return _run_bash_with_retry(install_cmd, timeout=120) def _refresh_marketplace(marketplace: str) -> bool: @@ -519,6 +685,7 @@ def install_pbt_tools() -> bool: ok = False if not command_exists("fast-check"): + fast_check_cmd = _npm_install_cmd(manifest_get("fast-check")) try: result = subprocess.run( ["npm", "list", "-g", "fast-check", "--depth=0"], @@ -527,16 +694,10 @@ def install_pbt_tools() -> bool: timeout=15, ) if result.returncode != 0 or "fast-check" not in result.stdout: - if not _run_bash_with_retry( - npm_global_cmd("npm install -g fast-check"), - timeout=GLOBAL_NPM_INSTALL_TIMEOUT, - ): + if not _run_bash_with_retry(fast_check_cmd, timeout=GLOBAL_NPM_INSTALL_TIMEOUT): ok = False except Exception: - if not _run_bash_with_retry( - npm_global_cmd("npm install -g fast-check"), - timeout=GLOBAL_NPM_INSTALL_TIMEOUT, - ): + if not _run_bash_with_retry(fast_check_cmd, timeout=GLOBAL_NPM_INSTALL_TIMEOUT): ok = False return ok @@ -567,7 +728,7 @@ def install_agent_browser() -> bool: """ had_browser = _is_agent_browser_ready() - if not _run_bash_with_retry(npm_global_cmd("npm install -g agent-browser")): + if not _run_bash_with_retry(_npm_install_cmd(manifest_get("agent-browser"))): return False if had_browser: @@ -623,7 +784,7 @@ def install_playwright_cli() -> bool: only if Chromium is already present in the Playwright cache. """ if not _run_bash_with_retry( - npm_global_cmd("npm install -g @playwright/cli@latest"), + _npm_install_cmd(manifest_get("playwright-cli")), timeout=GLOBAL_NPM_INSTALL_TIMEOUT, ): return False @@ -832,7 +993,7 @@ def _extract_npx_package_name(package: str) -> str: """Extract npm package name without version/tag suffix. Examples: "fetcher-mcp" → "fetcher-mcp", - "open-websearch@latest" → "open-websearch", + "open-websearch@2.1.9" → "open-websearch", "@upstash/context7-mcp" → "@upstash/context7-mcp", "@scope/pkg@1.0" → "@scope/pkg" """ diff --git a/installer/steps/prerequisites.py b/installer/steps/prerequisites.py index 52a6f74b3..b577647cc 100644 --- a/installer/steps/prerequisites.py +++ b/installer/steps/prerequisites.py @@ -2,6 +2,7 @@ from __future__ import annotations +import json import os import subprocess import time @@ -9,6 +10,8 @@ from typing import Any from installer.context import InstallContext +from installer.manifest import UpstreamEntry +from installer.manifest import cached_load as manifest_load from installer.platform_utils import ( command_exists, is_apt_available, @@ -22,23 +25,69 @@ MAX_RETRIES = 3 RETRY_DELAY = 2 -HOMEBREW_PACKAGES = [ - "git", - "gh", - "python@3.12", - "node@22", - "nvm", - "pnpm", - "bun", - "uv", - "go", - "gopls", - "jq", - "ripgrep", - "rtk", -] - -HOMEBREW_NO_UPGRADE_PACKAGES = {"python@3.12", "node@22", "nvm", "git", "gh"} + +def _brew_entries() -> list[UpstreamEntry]: + """Manifest-driven list of every Homebrew formula Pilot installs.""" + return [e for e in manifest_load().entries if e.source_type == "brew"] + + +def _brew_formulas() -> list[str]: + """Formula names ordered by manifest position (replaces HOMEBREW_PACKAGES).""" + seen: set[str] = set() + out: list[str] = [] + for e in _brew_entries(): + f = e.brew_formula or "" + if f and f not in seen: + seen.add(f) + out.append(f) + return out + + +def _brew_no_upgrade_formulas() -> set[str]: + """Formulas opted out of `brew upgrade` (replaces HOMEBREW_NO_UPGRADE_PACKAGES).""" + return {e.brew_formula for e in _brew_entries() if not e.auto_upgrade and e.brew_formula} + + +# Module-level constants kept for backwards compat with any external readers; +# they always reflect the current manifest state. +HOMEBREW_PACKAGES = _brew_formulas() +HOMEBREW_NO_UPGRADE_PACKAGES = _brew_no_upgrade_formulas() + + +def _verify_homebrew_tap(formula: str) -> bool: + """Confirm the formula resolves from the manifest-declared tap. + + Returns False on any mismatch — used as a hard gate before `brew install`. + Default expectation is `homebrew/core`; per-entry overrides (e.g. `bun` + from `oven-sh/bun`) come from the manifest. + """ + expected_tap: str | None = None + for e in _brew_entries(): + if e.brew_formula == formula: + expected_tap = e.brew_tap + break + if not expected_tap: + return False + try: + result = subprocess.run( + ["brew", "info", "--json=v2", formula], + capture_output=True, + check=False, + timeout=30, + ) + except (subprocess.SubprocessError, OSError): + return False + if result.returncode != 0: + return False + try: + data = json.loads(result.stdout) + except json.JSONDecodeError: + return False + formulae = data.get("formulae", []) + if not formulae: + return False + tap = formulae[0].get("tap", "") + return tap == expected_tap def _is_nvm_installed() -> bool: @@ -88,18 +137,24 @@ def _ensure_git_installed() -> bool: def _install_homebrew() -> bool: - """Install Homebrew non-interactively.""" + """Install Homebrew non-interactively (manifest-pinned curl).""" + from installer.steps.dependencies import ( + CurlPipeRunOptions, + _curl_pipe_from_manifest, + ) + try: - env = {**os.environ, "NONINTERACTIVE": "1"} - result = subprocess.run( - '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"', - shell=True, - check=False, - stdin=subprocess.DEVNULL, - env=env, - timeout=300, + ok = _curl_pipe_from_manifest( + "homebrew-installer", + CurlPipeRunOptions( + interpreter="/bin/bash", + env={"NONINTERACTIVE": "1"}, + stdin_devnull=True, + timeout=300, + stream=True, + ), ) - if result.returncode != 0: + if not ok: return False brew_paths = [ @@ -152,7 +207,11 @@ def _ensure_homebrew_in_path() -> None: def _install_homebrew_package(package: str) -> bool: - """Install a single Homebrew package.""" + """Install a single Homebrew package after verifying its tap origin.""" + if not _verify_homebrew_tap(package): + # Refuse to install from an unexpected tap — could be tap pollution + # or a typo. The supply-chain gate considers this a security failure. + return False for attempt in range(MAX_RETRIES): try: result = subprocess.run( @@ -293,21 +352,22 @@ def _install_nodejs_via_pkg() -> bool: def _install_bun_standalone() -> bool: - """Install bun via standalone installer when Homebrew is unavailable.""" + """Install bun via manifest-pinned curl installer.""" + from installer.steps.dependencies import ( + CurlPipeRunOptions, + _curl_pipe_from_manifest, + ) + try: - result = subprocess.run( - ["bash", "-c", "curl -fsSL https://bun.sh/install | bash"], - capture_output=True, - check=False, - stdin=subprocess.DEVNULL, - timeout=120, - ) - if result.returncode == 0: - bun_bin = str(Path.home() / ".bun" / "bin") - if bun_bin not in os.environ.get("PATH", ""): - os.environ["PATH"] = f"{bun_bin}:{os.environ.get('PATH', '')}" - return command_exists("bun") - return False + if not _curl_pipe_from_manifest( + "bun-installer", + CurlPipeRunOptions(stdin_devnull=True, timeout=120), + ): + return False + bun_bin = str(Path.home() / ".bun" / "bin") + if bun_bin not in os.environ.get("PATH", ""): + os.environ["PATH"] = f"{bun_bin}:{os.environ.get('PATH', '')}" + return command_exists("bun") except (subprocess.SubprocessError, OSError): return False diff --git a/installer/tests/unit/steps/test_dependencies.py b/installer/tests/unit/steps/test_dependencies.py index 36224bfb4..8f76760cc 100644 --- a/installer/tests/unit/steps/test_dependencies.py +++ b/installer/tests/unit/steps/test_dependencies.py @@ -6,12 +6,12 @@ import subprocess import tempfile import time - -import pytest -from pathlib import Path from contextlib import contextmanager +from pathlib import Path from unittest.mock import MagicMock, patch +import pytest + class TestDependenciesStep: """Test DependenciesStep class.""" @@ -120,26 +120,24 @@ def test_install_claude_code_skips_if_already_installed(self, _mock_cmd): assert result is True mock_run.assert_not_called() - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) @patch("installer.steps.dependencies.command_exists", return_value=False) - def test_install_claude_code_runs_native_installer(self, _mock_cmd, mock_run): - """install_claude_code runs the native installer when claude is not in PATH.""" + def test_install_claude_code_runs_native_installer(self, _mock_cmd): + """install_claude_code routes through the manifest-pinned soft-pin curl helper.""" from installer.steps.dependencies import install_claude_code - result = install_claude_code() + with patch( + "installer.steps.dependencies._curl_pipe_from_manifest", return_value=True + ) as mock_helper: + result = install_claude_code() assert result is True - mock_run.assert_called_once() - call_args = mock_run.call_args[0][0] - assert "claude.ai/install.sh" in call_args - assert mock_run.call_args[1].get("timeout") == 300 or ( - len(mock_run.call_args[0]) > 1 or "timeout" in str(mock_run.call_args) - ) + mock_helper.assert_called_once() + assert mock_helper.call_args[0][0] == "claude-code-installer" - @patch("installer.steps.dependencies._run_bash_with_retry", return_value=False) + @patch("installer.steps.dependencies._curl_pipe_from_manifest", return_value=False) @patch("installer.steps.dependencies.command_exists", return_value=False) - def test_install_claude_code_returns_false_on_failure(self, _mock_cmd, mock_run): - """install_claude_code returns False when native installer fails.""" + def test_install_claude_code_returns_false_on_failure(self, _mock_cmd, _mock_helper): + """install_claude_code returns False when the manifest-pinned curl install fails.""" from installer.steps.dependencies import install_claude_code result = install_claude_code() @@ -168,6 +166,48 @@ def test_install_python_tools_exists(self): assert callable(install_python_tools) + @patch("installer.steps.dependencies.command_exists", return_value=False) + @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + def test_install_typescript_lsp_pins_vtsls_and_typescript(self, mock_run, _mock_cmd): + """install_typescript_lsp pins both vtsls and typescript with --ignore-scripts.""" + from installer.manifest import get + from installer.steps.dependencies import install_typescript_lsp + + result = install_typescript_lsp() + assert result is True + cmd = mock_run.call_args[0][0] + assert f"@vtsls/language-server@{get('vtsls').version}" in cmd + assert f"typescript@{get('typescript').version}" in cmd + assert "--ignore-scripts" in cmd + + @patch("installer.steps.dependencies._is_agent_browser_ready", return_value=True) + @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + def test_install_agent_browser_pins_version(self, mock_run, _mock_ready): + """install_agent_browser pins manifest version with --ignore-scripts.""" + from installer.manifest import get + from installer.steps.dependencies import install_agent_browser + + result = install_agent_browser() + assert result is True + first_cmd = mock_run.call_args_list[0][0][0] + assert f"agent-browser@{get('agent-browser').version}" in first_cmd + assert "--ignore-scripts" in first_cmd + assert "@latest" not in first_cmd + + @patch("installer.steps.dependencies._is_playwright_cli_ready", return_value=True) + @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) + def test_install_playwright_cli_pins_version(self, mock_run, _mock_ready): + """install_playwright_cli pins manifest version with --ignore-scripts (no @latest).""" + from installer.manifest import get + from installer.steps.dependencies import install_playwright_cli + + result = install_playwright_cli() + assert result is True + first_cmd = mock_run.call_args_list[0][0][0] + assert f"@playwright/cli@{get('playwright-cli').version}" in first_cmd + assert "--ignore-scripts" in first_cmd + assert "@latest" not in first_cmd + class TestSetupPilotMemory: """Test pilot-memory setup.""" @@ -198,7 +238,8 @@ def test_install_probe_exists(self): @patch("installer.steps.dependencies._run_bash_with_retry") def test_install_probe_always_runs_npm_install(self, mock_bash): - """install_probe always runs npm install to update to latest.""" + """install_probe runs npm install pinned to manifest version with --ignore-scripts.""" + from installer.manifest import get from installer.steps.dependencies import install_probe mock_bash.return_value = True @@ -208,7 +249,10 @@ def test_install_probe_always_runs_npm_install(self, mock_bash): assert result is True mock_bash.assert_called_once() call_args = mock_bash.call_args[0][0] - assert "@probelabs/probe" in call_args + expected_version = get("probe").version + assert f"@probelabs/probe@{expected_version}" in call_args + assert "--ignore-scripts" in call_args + assert "@latest" not in call_args @patch("installer.steps.dependencies._run_bash_with_retry", return_value=True) def test_install_probe_uses_longer_timeout(self, mock_bash): @@ -232,6 +276,248 @@ def test_install_probe_returns_false_on_failure(self, mock_bash): assert result is False +class TestCurlPipeHashVerify: + """Tests for _curl_pipe_with_hash_verify — sha256-then-execute flow.""" + + @staticmethod + def _write_script(text: bytes, path: Path) -> None: + path.write_bytes(text) + + def test_runs_when_hash_matches(self, tmp_path: Path): + """Helper executes interpreter command when sha256 matches.""" + import hashlib + + from installer.steps.dependencies import ( + CurlPipeRunOptions, + _curl_pipe_with_hash_verify, + ) + + script_bytes = b"#!/bin/bash\necho ok\n" + digest = hashlib.sha256(script_bytes).hexdigest() + run_calls: list[tuple[str, dict]] = [] + + def _fake_run_bash(command: str, **kwargs): + run_calls.append((command, kwargs)) + if command.startswith("curl -fsSL"): + # Extract output path from command (-o "") + out = command.split('-o "')[1].split('"')[0] + Path(out).write_bytes(script_bytes) + return True + return True + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + ok = _curl_pipe_with_hash_verify( + "https://example.com/x.sh", + digest, + options=CurlPipeRunOptions(interpreter="bash"), + ) + assert ok is True + # Two runs: curl-fetch + bash exec + assert len(run_calls) == 2 + assert run_calls[0][0].startswith('curl -fsSL "https://example.com/x.sh"') + assert run_calls[1][0].startswith("bash ") + + def test_hard_pin_mismatch_returns_false(self, tmp_path: Path): + """Hash mismatch with hard pin returns False and records diagnostic.""" + from installer.steps.dependencies import ( + _clear_last_error, + _curl_pipe_with_hash_verify, + _get_last_error, + ) + + _clear_last_error() + wrong_digest = "0" * 64 + + def _fake_run_bash(command: str, **kwargs): + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + Path(out).write_bytes(b"different bytes\n") + return True + pytest.fail("execute phase must NOT run on hash mismatch") + return False + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + ok = _curl_pipe_with_hash_verify("https://example.com/x.sh", wrong_digest) + assert ok is False + err = _get_last_error() + assert "sha256 mismatch" in err + assert wrong_digest in err + + def test_soft_pin_mismatch_proceeds(self, tmp_path: Path): + """Soft-pin mismatch logs warning but still executes the script.""" + from installer.steps.dependencies import ( + _clear_last_error, + _curl_pipe_with_hash_verify, + _get_last_error, + ) + + _clear_last_error() + wrong_digest = "0" * 64 + executed: list[bool] = [] + + def _fake_run_bash(command: str, **kwargs): + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + Path(out).write_bytes(b"different bytes\n") + return True + executed.append(True) + return True + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + ok = _curl_pipe_with_hash_verify( + "https://example.com/x.sh", + wrong_digest, + soft_pin=True, + ) + assert ok is True + assert executed, "soft-pin must execute script on mismatch" + assert "soft-pinned" in _get_last_error().lower() or "soft" in _get_last_error().lower() + + def test_temp_file_cleaned_up_on_success(self): + """Temp file is removed after successful execution.""" + import hashlib + + from installer.steps.dependencies import _curl_pipe_with_hash_verify + + script_bytes = b"#!/bin/bash\nexit 0\n" + digest = hashlib.sha256(script_bytes).hexdigest() + captured_paths: list[str] = [] + + def _fake_run_bash(command: str, **kwargs): + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + captured_paths.append(out) + Path(out).write_bytes(script_bytes) + return True + return True + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + _curl_pipe_with_hash_verify("https://example.com/x.sh", digest) + assert captured_paths + assert not Path(captured_paths[0]).exists(), "temp file leaked" + + def test_temp_file_cleaned_up_on_mismatch(self): + """Temp file is removed even when sha256 mismatch fails the install.""" + from installer.steps.dependencies import _curl_pipe_with_hash_verify + + captured_paths: list[str] = [] + + def _fake_run_bash(command: str, **kwargs): + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + captured_paths.append(out) + Path(out).write_bytes(b"bad bytes") + return True + return False + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + _curl_pipe_with_hash_verify("https://example.com/x.sh", "0" * 64) + assert captured_paths + assert not Path(captured_paths[0]).exists(), "temp file leaked on mismatch path" + + def test_temp_file_has_owner_only_permissions(self): + """Temp file is created with 0o600 (owner-only) permissions.""" + import hashlib + + from installer.steps.dependencies import _curl_pipe_with_hash_verify + + script_bytes = b"#!/bin/bash\nexit 0\n" + digest = hashlib.sha256(script_bytes).hexdigest() + observed_modes: list[int] = [] + + def _fake_run_bash(command: str, **kwargs): + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + # Mode at this point is what mkstemp + fchmod set. + observed_modes.append(Path(out).stat().st_mode & 0o777) + Path(out).write_bytes(script_bytes) + return True + return True + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + _curl_pipe_with_hash_verify("https://example.com/x.sh", digest) + assert observed_modes == [0o600] + + def test_env_vars_wired_into_exec(self): + """CurlPipeRunOptions.env vars appear as a prefix on the exec command.""" + import hashlib + + from installer.steps.dependencies import ( + CurlPipeRunOptions, + _curl_pipe_with_hash_verify, + ) + + script_bytes = b"#!/bin/bash\nexit 0\n" + digest = hashlib.sha256(script_bytes).hexdigest() + run_calls: list[str] = [] + + def _fake_run_bash(command: str, **kwargs): + run_calls.append(command) + if command.startswith("curl -fsSL"): + out = command.split('-o "')[1].split('"')[0] + Path(out).write_bytes(script_bytes) + return True + + with patch("installer.steps.dependencies._run_bash_with_retry", side_effect=_fake_run_bash): + _curl_pipe_with_hash_verify( + "https://example.com/x.sh", + digest, + options=CurlPipeRunOptions(env={"NONINTERACTIVE": "1"}, stdin_devnull=True), + ) + exec_cmd = run_calls[1] + assert "NONINTERACTIVE=1" in exec_cmd + assert exec_cmd.endswith(" 0 + expected = { + e.brew_formula for e in load().entries + if e.source_type == "brew" and not e.auto_upgrade + } + assert _brew_no_upgrade_formulas() == expected + # Plan locks these specific formulas to manifest-pinned versions: + assert {"python@3.12", "node@22", "nvm", "git", "gh"} <= expected - @patch("installer.steps.prerequisites.is_homebrew_available") @patch("subprocess.run") - def test_install_homebrew_uses_devnull_stdin(self, mock_run, mock_brew_available): - """_install_homebrew passes stdin=DEVNULL to prevent interactive prompts.""" - import subprocess as sp + def test_verify_homebrew_tap_accepts_homebrew_core(self, mock_run): + """_verify_homebrew_tap returns True for formulas from homebrew/core.""" + from installer.steps.prerequisites import _verify_homebrew_tap - from installer.steps.prerequisites import _install_homebrew + mock_run.return_value = MagicMock( + returncode=0, + stdout=b'{"formulae":[{"tap":"homebrew/core"}]}', + ) + assert _verify_homebrew_tap("git") is True - mock_run.return_value = MagicMock(returncode=0) - mock_brew_available.return_value = True + @patch("subprocess.run") + def test_verify_homebrew_tap_rejects_unexpected_tap(self, mock_run): + """_verify_homebrew_tap returns False when formula resolves from a different tap.""" + from installer.steps.prerequisites import _verify_homebrew_tap + + mock_run.return_value = MagicMock( + returncode=0, + stdout=b'{"formulae":[{"tap":"shady/typosquat"}]}', + ) + assert _verify_homebrew_tap("git") is False - _install_homebrew() + @patch("subprocess.run") + def test_verify_homebrew_tap_accepts_oven_sh_for_bun(self, mock_run): + """_verify_homebrew_tap honors per-entry tap override (bun → oven-sh/bun).""" + from installer.steps.prerequisites import _verify_homebrew_tap - call_kwargs = mock_run.call_args[1] - assert call_kwargs.get("stdin") == sp.DEVNULL, "Must use stdin=DEVNULL to prevent hanging on prompts" + mock_run.return_value = MagicMock( + returncode=0, + stdout=b'{"formulae":[{"tap":"oven-sh/bun"}]}', + ) + assert _verify_homebrew_tap("bun") is True - @patch("installer.steps.prerequisites.is_homebrew_available") @patch("subprocess.run") - def test_install_homebrew_returns_false_on_timeout(self, mock_run, _mock_brew_available): - """_install_homebrew returns False when subprocess times out.""" - import subprocess as sp + def test_verify_homebrew_tap_unknown_formula_returns_false(self, mock_run): + """Formulas not in manifest fail verification (no expected tap to compare).""" + from installer.steps.prerequisites import _verify_homebrew_tap + # Subprocess shouldn't even be called for unknown formulas. + assert _verify_homebrew_tap("not-in-manifest") is False + mock_run.assert_not_called() + + +class TestInstallHomebrew: + """Test _install_homebrew function.""" + + @patch("installer.steps.prerequisites.is_homebrew_available", return_value=True) + def test_install_homebrew_routes_through_manifest_pinned_helper(self, _mock_brew_available): + """_install_homebrew uses the manifest-pinned curl helper with NONINTERACTIVE+stdin_devnull.""" from installer.steps.prerequisites import _install_homebrew - mock_run.side_effect = sp.TimeoutExpired(cmd="brew", timeout=300) + with patch( + "installer.steps.dependencies._curl_pipe_from_manifest", return_value=True + ) as mock_helper: + ok = _install_homebrew() + + assert ok is True + mock_helper.assert_called_once() + assert mock_helper.call_args[0][0] == "homebrew-installer" + opts = mock_helper.call_args[0][1] + assert opts.env == {"NONINTERACTIVE": "1"}, "Homebrew install must set NONINTERACTIVE=1" + assert opts.stdin_devnull is True, "Homebrew install must redirect stdin to DEVNULL" + assert opts.interpreter == "/bin/bash" + assert opts.timeout >= 60 + + @patch("installer.steps.prerequisites.is_homebrew_available", return_value=False) + def test_install_homebrew_returns_false_when_helper_fails(self, _mock_brew_available): + """_install_homebrew returns False when the manifest-pinned curl install fails.""" + from installer.steps.prerequisites import _install_homebrew - result = _install_homebrew() - assert result is False + with patch( + "installer.steps.dependencies._curl_pipe_from_manifest", return_value=False + ): + assert _install_homebrew() is False class TestIsHomebrewAvailable: diff --git a/installer/tests/unit/test_drift_check.py b/installer/tests/unit/test_drift_check.py new file mode 100644 index 000000000..b2879f747 --- /dev/null +++ b/installer/tests/unit/test_drift_check.py @@ -0,0 +1,177 @@ +"""Tests for scripts/check_manifest_drift.py.""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + + +# Import the script as a module by adding its directory to sys.path. +@pytest.fixture +def drift_module(): + import importlib.util + import sys + + repo_root = Path(__file__).resolve().parents[3] + script = repo_root / "scripts" / "check_manifest_drift.py" + spec = importlib.util.spec_from_file_location("check_manifest_drift", script) + assert spec is not None and spec.loader is not None + module = importlib.util.module_from_spec(spec) + sys.modules["check_manifest_drift"] = module + spec.loader.exec_module(module) + return module + + +class TestDriftDetection: + """Forbidden patterns are detected on the right files.""" + + def test_at_latest_in_dependencies_fails(self, drift_module, tmp_path: Path) -> None: + py = tmp_path / "dependencies.py" + py.write_text( + 'def install_x():\n' + ' return _run_bash_with_retry("npm install -g something@latest")\n' + ) + findings = drift_module.scan_file(py) + assert any("@latest" in f.message for f in findings) + + def test_master_install_sh_fails(self, drift_module, tmp_path: Path) -> None: + py = tmp_path / "dependencies.py" + py.write_text( + 'cmd = "curl -fsSL https://example.com/master/install.sh | bash"\n' + ) + findings = drift_module.scan_file(py) + assert any("install.sh" in f.message for f in findings) + + def test_head_install_sh_fails(self, drift_module, tmp_path: Path) -> None: + py = tmp_path / "prerequisites.py" + py.write_text('curl https://x/HEAD/install.sh | bash\n') + findings = drift_module.scan_file(py) + assert any("install.sh" in f.message for f in findings) + + def test_unversioned_uv_run_with_in_install_sh_fails(self, drift_module, tmp_path: Path) -> None: + sh = tmp_path / "install.sh" + sh.write_text( + "#!/bin/bash\n" + 'uv run --python 3.12 --no-project --with rich --with certifi python -c "..."\n' + ) + findings = drift_module.scan_file(sh) + # Two unversioned --with calls. + assert any("--with" in f.message for f in findings) + + def test_versioned_uv_run_with_passes(self, drift_module, tmp_path: Path) -> None: + sh = tmp_path / "install.sh" + sh.write_text( + "#!/bin/bash\n" + 'uv run --python 3.12 --no-project --with rich==14.0.0 --with certifi==2026.4.22 python -c "..."\n' + ) + findings = drift_module.scan_file(sh) + assert not any("--with" in f.message for f in findings) + + def test_unversioned_npx_in_mcp_json_fails(self, drift_module, tmp_path: Path) -> None: + mcp = tmp_path / ".mcp.json" + mcp.write_text('{"mcpServers": {"x": {"command": "npx", "args": ["-y", "open-websearch"]}}}') + findings = drift_module.scan_file(mcp) + assert any("npx" in f.message.lower() or "unpinned" in f.message.lower() for f in findings) + + def test_versioned_npx_in_mcp_json_passes_when_in_manifest(self, drift_module, tmp_path: Path) -> None: + mcp = tmp_path / ".mcp.json" + mcp.write_text('{"mcpServers": {"x": {"command": "npx", "args": ["-y", "fetcher-mcp@0.3.9"]}}}') + findings = drift_module.scan_file(mcp) + assert not any("npx" in f.message.lower() or "unpinned" in f.message.lower() for f in findings) + + def test_npx_pinned_but_unmonitored_fails(self, drift_module, tmp_path: Path) -> None: + """Pinned npx package missing from manifest is rejected by the cross-ref check.""" + mcp = tmp_path / ".mcp.json" + mcp.write_text( + '{"mcpServers": {"x": {"command": "npx", "args": ["-y", "totally-not-monitored@1.2.3"]}}}' + ) + findings = drift_module.cross_reference_mcp(mcp) + assert any("not in manifest" in f.message.lower() or "unmonitored" in f.message.lower() for f in findings) + + def test_npx_with_http_url_does_not_trigger(self, drift_module, tmp_path: Path) -> None: + """HTTP URLs in args (e.g. typefully MCP endpoint) shouldn't trigger drift.""" + mcp = tmp_path / ".mcp.json" + mcp.write_text( + '{"mcpServers": {"x": {"command": "npx", "args": ["-y", "mcp-remote@0.1.38", ' + '"https://mcp.typefully.com/mcp?KEY=abc"]}}}' + ) + findings = drift_module.scan_file(mcp) + assert not findings + + def test_noqa_with_justification_skips(self, drift_module, tmp_path: Path) -> None: + py = tmp_path / "dependencies.py" + py.write_text( + "# Some legacy curl that survives this scan only because:\n" + 'cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check # legacy fallback documented in PRD\n' + ) + findings = drift_module.scan_file(py) + assert not findings + + def test_noqa_without_justification_rejected(self, drift_module, tmp_path: Path) -> None: + py = tmp_path / "dependencies.py" + py.write_text( + 'cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n' + ) + findings = drift_module.scan_file(py) + # Bare noqa is treated as a finding (justification required). + assert findings + + def test_bare_noqa_with_forbidden_pattern_yields_one_finding( + self, drift_module, tmp_path: Path + ) -> None: + """Bare-noqa lines must NOT also report the matched forbidden pattern. + + Regression guard for changes-review must_fix #2 (false-positive double-report + when bare-noqa scan was reported to fall through to pattern matching). + Confirms `_scan_python_or_shell` short-circuits via `continue` after the + bare-noqa finding. + """ + py = tmp_path / "dependencies.py" + py.write_text( + 'cmd = "curl https://x/master/install.sh | bash" # noqa: drift-check\n' + ) + findings = drift_module.scan_file(py) + assert len(findings) == 1 + assert "bare" in findings[0].message.lower() + + +class TestManifestSchemaGate: + """Drift checker validates the manifest schema before running pattern checks.""" + + def test_invalid_manifest_emits_finding(self, drift_module, tmp_path: Path) -> None: + bad_manifest = tmp_path / "upstreams.yaml" + bad_manifest.write_text( + "version: 1\n" + "entries:\n" + " - id: bad\n" + " name: bad\n" + " source_type: curl\n" + " source_url: https://example.com/x.sh\n" + " version: v1\n" + " last_audited: 2026-05-07\n" # missing sha256 + ) + finding = drift_module.validate_manifest(bad_manifest) + assert finding is not None + assert "sha256" in finding.message.lower() + + +class TestCleanRepository: + """Running drift check against the current repo state.""" + + def test_installer_steps_clean_after_tasks_2_through_5(self, drift_module) -> None: + """Per Task 6 DoD: installer/steps/ produces zero findings after Tasks 2-5.""" + repo_root = Path(__file__).resolve().parents[3] + for rel in ("installer/steps/dependencies.py", "installer/steps/prerequisites.py"): + findings = drift_module.scan_file(repo_root / rel) + assert not findings, f"{rel} drift: {[f.message for f in findings]}" + + def test_mcp_json_clean(self, drift_module) -> None: + """Per Task 5: both MCP files have only pinned, manifest-monitored npx packages.""" + repo_root = Path(__file__).resolve().parents[3] + for rel in (".mcp.json", "pilot/.mcp.json"): + path = repo_root / rel + scan = drift_module.scan_file(path) + xref = drift_module.cross_reference_mcp(path) + assert not scan, f"{rel} scan: {[f.message for f in scan]}" + assert not xref, f"{rel} xref: {[f.message for f in xref]}" diff --git a/installer/tests/unit/test_manifest.py b/installer/tests/unit/test_manifest.py new file mode 100644 index 000000000..9c105cd88 --- /dev/null +++ b/installer/tests/unit/test_manifest.py @@ -0,0 +1,252 @@ +"""Unit tests for installer.manifest module.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any + +import pytest + +from installer.manifest import ( + Manifest, + ManifestError, + UpstreamEntry, + get, + load, + validate, +) + + +def _valid_npm_entry(**overrides: Any) -> dict[str, Any]: + base: dict[str, Any] = { + "id": "probe", + "name": "@probelabs/probe", + "source_type": "npm", + "source_url": "@probelabs/probe", + "version": "1.2.3", + "last_audited": "2026-05-07", + } + base.update(overrides) + return base + + +def _valid_curl_entry(**overrides: Any) -> dict[str, Any]: + base: dict[str, Any] = { + "id": "nvm-curl", + "name": "nvm install.sh (v0.40.0)", + "source_type": "curl", + "source_url": "https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh", + "version": "v0.40.0", + "sha256": "0" * 64, + "last_audited": "2026-05-07", + } + base.update(overrides) + return base + + +def _valid_brew_entry(**overrides: Any) -> dict[str, Any]: + base: dict[str, Any] = { + "id": "git", + "name": "git", + "source_type": "brew", + "source_url": "https://github.com/git/git", + "version": "2.43.0", + "pin_kind": "monitor", + "auto_upgrade": False, + "brew_formula": "git", + "brew_tap": "homebrew/core", + "last_audited": "2026-05-07", + } + base.update(overrides) + return base + + +class TestUpstreamEntryValidation: + """Validation rules enforced by UpstreamEntry post-init.""" + + def test_valid_npm_entry_constructs(self) -> None: + entry = UpstreamEntry(**_valid_npm_entry()) + assert entry.id == "probe" + assert entry.scripts_policy == "deny" + assert entry.pin_kind == "hard" + assert entry.auto_upgrade is True + + def test_valid_curl_entry_with_sha256(self) -> None: + entry = UpstreamEntry(**_valid_curl_entry()) + assert entry.sha256 == "0" * 64 + + def test_valid_curl_entry_with_commit_and_sha256(self) -> None: + entry = UpstreamEntry(**_valid_curl_entry(commit="abc123")) + assert entry.commit == "abc123" + assert entry.sha256 == "0" * 64 + + def test_id_must_be_kebab_case(self) -> None: + with pytest.raises(ManifestError, match="id"): + UpstreamEntry(**_valid_npm_entry(id="Bad_ID")) + + def test_id_cannot_start_with_number(self) -> None: + with pytest.raises(ManifestError, match="id"): + UpstreamEntry(**_valid_npm_entry(id="1bad")) + + def test_curl_requires_sha256(self) -> None: + with pytest.raises(ManifestError, match="sha256"): + UpstreamEntry(**_valid_curl_entry(sha256=None)) + + def test_curl_with_commit_still_requires_sha256(self) -> None: + with pytest.raises(ManifestError, match="sha256"): + UpstreamEntry(**_valid_curl_entry(sha256=None, commit="abc123")) + + def test_npm_version_cannot_be_latest(self) -> None: + with pytest.raises(ManifestError, match="latest"): + UpstreamEntry(**_valid_npm_entry(version="latest")) + + def test_scripts_policy_allow_requires_justification(self) -> None: + with pytest.raises(ManifestError, match="justification"): + UpstreamEntry(**_valid_npm_entry(scripts_policy="allow")) + + def test_scripts_policy_allow_with_justification_ok(self) -> None: + entry = UpstreamEntry( + **_valid_npm_entry( + scripts_policy="allow", + scripts_justification="native build via node-gyp", + ) + ) + assert entry.scripts_policy == "allow" + + def test_soft_pin_requires_reason(self) -> None: + with pytest.raises(ManifestError, match="soft_pin_reason"): + UpstreamEntry(**_valid_curl_entry(soft_pin=True)) + + def test_soft_pin_with_reason_ok(self) -> None: + entry = UpstreamEntry( + **_valid_curl_entry( + soft_pin=True, + soft_pin_reason="vendor-managed endpoint", + ) + ) + assert entry.soft_pin is True + + def test_invalid_source_type(self) -> None: + with pytest.raises(ManifestError, match="source_type"): + UpstreamEntry(**_valid_npm_entry(source_type="bogus")) + + def test_invalid_pin_kind(self) -> None: + with pytest.raises(ManifestError, match="pin_kind"): + UpstreamEntry(**_valid_npm_entry(pin_kind="soft")) + + +class TestManifestValidate: + """Cross-entry rules enforced by validate(manifest).""" + + def test_unique_ids(self) -> None: + a = UpstreamEntry(**_valid_npm_entry(id="probe")) + b = UpstreamEntry(**_valid_npm_entry(id="probe", source_url="@other/probe")) + m = Manifest(version=1, entries=[a, b]) + with pytest.raises(ManifestError, match="duplicate"): + validate(m) + + def test_unsupported_manifest_version(self) -> None: + m = Manifest(version=2, entries=[]) + with pytest.raises(ManifestError, match="version"): + validate(m) + + def test_empty_manifest_is_valid(self) -> None: + m = Manifest(version=1, entries=[]) + validate(m) + + +class TestLoad: + """YAML load + validate round-trip.""" + + def test_load_minimal_yaml(self, tmp_path: Path) -> None: + yaml = tmp_path / "upstreams.yaml" + yaml.write_text( + "version: 1\n" + "entries:\n" + " - id: nvm-curl\n" + " name: nvm install.sh (v0.40.0)\n" + " source_type: curl\n" + " source_url: https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh\n" + " version: v0.40.0\n" + ' sha256: "' + ("0" * 64) + '"\n' + " last_audited: 2026-05-07\n" + ) + m = load(path=yaml) + assert m.version == 1 + assert len(m.entries) == 1 + assert m.entries[0].id == "nvm-curl" + + def test_load_invalid_yaml_raises(self, tmp_path: Path) -> None: + yaml = tmp_path / "upstreams.yaml" + yaml.write_text( + "version: 1\n" + "entries:\n" + " - id: bad-curl\n" + " name: bad\n" + " source_type: curl\n" + " source_url: https://example.com/x.sh\n" + " version: v1\n" + " last_audited: 2026-05-07\n" + ) + with pytest.raises(ManifestError): + load(path=yaml) + + def test_load_default_path_uses_package_yaml(self) -> None: + m = load() + assert m.version == 1 + assert any(e.id for e in m.entries) + + +class TestGet: + """Lookup by id.""" + + def test_get_returns_entry(self, tmp_path: Path) -> None: + yaml = tmp_path / "upstreams.yaml" + yaml.write_text( + "version: 1\n" + "entries:\n" + " - id: probe\n" + " name: probe\n" + " source_type: npm\n" + " source_url: '@probelabs/probe'\n" + " version: 1.2.3\n" + " last_audited: 2026-05-07\n" + ) + m = load(path=yaml) + e = get("probe", manifest=m) + assert e.version == "1.2.3" + + def test_get_missing_raises_keyerror(self, tmp_path: Path) -> None: + yaml = tmp_path / "upstreams.yaml" + yaml.write_text( + "version: 1\n" + "entries:\n" + " - id: probe\n" + " name: probe\n" + " source_type: npm\n" + " source_url: '@probelabs/probe'\n" + " version: 1.2.3\n" + " last_audited: 2026-05-07\n" + ) + m = load(path=yaml) + with pytest.raises(KeyError): + get("does-not-exist", manifest=m) + + +class TestBrewEntries: + """Brew entries can omit sha256 but require brew_formula + brew_tap.""" + + def test_brew_entry_no_sha256_required(self) -> None: + entry = UpstreamEntry(**_valid_brew_entry()) + assert entry.pin_kind == "monitor" + assert entry.sha256 is None + assert entry.brew_formula == "git" + assert entry.brew_tap == "homebrew/core" + + def test_brew_entry_requires_brew_formula(self) -> None: + with pytest.raises(ManifestError, match="brew_formula"): + UpstreamEntry(**_valid_brew_entry(brew_formula="")) + + def test_brew_entry_requires_brew_tap(self) -> None: + with pytest.raises(ManifestError, match="brew_tap"): + UpstreamEntry(**_valid_brew_entry(brew_tap="")) diff --git a/installer/upstreams.yaml b/installer/upstreams.yaml new file mode 100644 index 000000000..4c3ff019d --- /dev/null +++ b/installer/upstreams.yaml @@ -0,0 +1,363 @@ +# Pilot Shell upstream manifest. +# +# Single source of truth for every upstream the installer touches. Each entry +# pins exact version + sha256 (or commit) + last-audited date. +# CI gates merges on this file via .github/workflows/supply-chain.yml +# (drift checker + manifest schema validation). +# +# Schema: installer/manifest.py:UpstreamEntry +# Audit log: `git log -p installer/upstreams.yaml` +# How to read: docs/security/AUDIT.md + +version: 1 +entries: + - id: nvm-curl + name: nvm install.sh (v0.40.0) + source_type: curl + source_url: https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh + version: v0.40.0 + sha256: "bdea8c52186c4dd12657e77e7515509cda5bf9fa5a2f0046bce749e62645076d" + last_audited: "2026-05-07" + + # ---- npm globals (Task 2) ---- + + - id: probe + name: "@probelabs/probe" + source_type: npm + source_url: "@probelabs/probe" + version: "0.6.0-rc316" + last_audited: "2026-05-07" + + - id: codegraph + name: "@colbymchenry/codegraph" + source_type: npm + source_url: "@colbymchenry/codegraph" + version: "0.7.3" + # Highest-risk entry in this manifest per PRD: single-author npm package + # with no public source repository declared. Manual audit only. + last_audited: "2026-05-07" + + - id: better-sqlite3 + name: better-sqlite3 + source_type: npm + source_url: better-sqlite3 + version: "12.9.0" + # Native build via node-gyp at install time. CodeGraph relies on the + # compiled native module (the WASM fallback corrupts SQLite databases on + # certain filesystems). Postinstall scripts MUST be enabled. + scripts_policy: allow + scripts_justification: "native-build via node-gyp; required for CodeGraph SQLite backend" + last_audited: "2026-05-07" + + - id: vtsls + name: "@vtsls/language-server" + source_type: npm + source_url: "@vtsls/language-server" + version: "0.3.0" + last_audited: "2026-05-07" + + - id: typescript + name: typescript + source_type: npm + source_url: typescript + version: "6.0.3" + last_audited: "2026-05-07" + + - id: prettier + name: prettier + source_type: npm + source_url: prettier + version: "3.8.3" + last_audited: "2026-05-07" + + - id: fast-check + name: fast-check + source_type: npm + source_url: fast-check + version: "4.7.0" + last_audited: "2026-05-07" + + - id: agent-browser + name: agent-browser + source_type: npm + source_url: agent-browser + version: "0.26.0" + # High-risk single-author package per PRD threat model. Manual audit on bumps. + last_audited: "2026-05-07" + + - id: playwright-cli + name: "@playwright/cli" + source_type: npm + source_url: "@playwright/cli" + version: "0.1.12" + last_audited: "2026-05-07" + + # ---- curl-pipe installers (Task 3) ---- + + - id: claude-code-installer + name: claude.ai/install.sh + source_type: curl + source_url: https://claude.ai/install.sh + version: "vendor-managed-2026-05-07" + sha256: "b315b46925a9bfb9422f2503dd5aa649f680832f4c076b22d87c39d578c3d830" + # Anthropic-managed endpoint with no version stability guarantee. Soft-pin + # behavior: hash mismatch logs a warning + new hash for the maintainer to + # re-pin, but proceeds. Re-pin SLA: 24 h audit, 48 h ship (docs/security/AUDIT.md). + soft_pin: true + soft_pin_reason: "vendor-managed endpoint; Anthropic redeploys script at any time" + last_audited: "2026-05-07" + + - id: uv-installer + name: astral.sh/uv/install.sh + source_type: curl + source_url: https://astral.sh/uv/install.sh + version: "live-2026-05-07" + sha256: "3a020f8d69019caca567c9038999d130b0ea85866483caf2042c386cb685aef4" + last_audited: "2026-05-07" + + - id: bun-installer + name: bun.sh/install + source_type: curl + source_url: https://bun.sh/install + version: "live-2026-05-07" + sha256: "bab8acfb046aac8c72407bdcce903957665d655d7acaa3e11c7c4616beae68dd" + last_audited: "2026-05-07" + + - id: homebrew-installer + name: Homebrew/install/install.sh + source_type: curl + # Pinned to a specific commit (HEAD/install.sh would float). + source_url: https://raw.githubusercontent.com/Homebrew/install/540da2ca91271886910572df3a50332540ca84e4/install.sh + version: "commit-540da2c" + commit: "540da2ca91271886910572df3a50332540ca84e4" + sha256: "dfd5145fe2aa5956a600e35848765273f5798ce6def01bd08ecec088a1268d91" + last_audited: "2026-05-07" + + - id: rtk-installer + name: rtk-ai/rtk install.sh + source_type: curl + source_url: https://raw.githubusercontent.com/rtk-ai/rtk/2fbc7514f6964acabcfac65501b8bb6b525e3aa8/install.sh + version: "commit-2fbc751" + commit: "2fbc7514f6964acabcfac65501b8bb6b525e3aa8" + sha256: "0c46611d70d0eee64c43c6398f8b1fe057b7f0b052810bbeec09288898ba9a46" + last_audited: "2026-05-07" + + - id: golangci-lint-installer + name: golangci-lint install.sh + source_type: curl + source_url: https://raw.githubusercontent.com/golangci/golangci-lint/2691aacde61559ce53cfda05513ee7c70677ea31/install.sh + version: "commit-2691aac" + commit: "2691aacde61559ce53cfda05513ee7c70677ea31" + sha256: "9e99d38f3213411a1b6175e5b535c72e37c7ed42ccf251d331385a3f97b695e7" + last_audited: "2026-05-07" + + # ---- Homebrew formulas (Task 4) ---- + # pin_kind: monitor — homebrew/core doesn't expose stable per-version installs; + # the manifest records the version present at audit time and lets the gate + # check tap origin. `brew_formula` is the formula name passed to + # `brew install`; `auto_upgrade: false` opts the formula out of routine + # `brew upgrade` so the manifest version stays the installed version. + + - id: git-brew + name: git + source_type: brew + source_url: https://github.com/git/git + version: "2.51.0" + pin_kind: monitor + auto_upgrade: false + brew_formula: git + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: gh-brew + name: GitHub CLI + source_type: brew + source_url: https://github.com/cli/cli + version: "2.65.0" + pin_kind: monitor + auto_upgrade: false + brew_formula: gh + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: python-3-12-brew + name: Python 3.12 + source_type: brew + source_url: https://github.com/python/cpython + version: "3.12.7" + pin_kind: monitor + auto_upgrade: false + brew_formula: "python@3.12" + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: node-22-brew + name: Node.js 22 + source_type: brew + source_url: https://github.com/nodejs/node + version: "22.11.0" + pin_kind: monitor + auto_upgrade: false + brew_formula: "node@22" + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: nvm-brew + name: nvm (Homebrew install path) + source_type: brew + source_url: https://github.com/nvm-sh/nvm + version: "0.40.0" + pin_kind: monitor + auto_upgrade: false + brew_formula: nvm + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: pnpm-brew + name: pnpm + source_type: brew + source_url: https://github.com/pnpm/pnpm + version: "9.15.0" + pin_kind: monitor + brew_formula: pnpm + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: bun-brew + name: bun + source_type: brew + source_url: https://github.com/oven-sh/bun + version: "1.1.40" + pin_kind: monitor + brew_formula: bun + # bun ships from oven-sh/bun tap (Pilot pre-taps it); intentional non-core origin. + brew_tap: oven-sh/bun + last_audited: "2026-05-07" + + - id: uv-brew + name: uv (Homebrew install path) + source_type: brew + source_url: https://github.com/astral-sh/uv + version: "0.5.10" + pin_kind: monitor + brew_formula: uv + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: go-brew + name: Go + source_type: brew + source_url: https://github.com/golang/go + version: "1.23.4" + pin_kind: monitor + brew_formula: go + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: gopls-brew + name: gopls + source_type: brew + source_url: https://github.com/golang/tools + version: "0.17.0" + pin_kind: monitor + brew_formula: gopls + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: jq-brew + name: jq + source_type: brew + source_url: https://github.com/jqlang/jq + version: "1.7.1" + pin_kind: monitor + brew_formula: jq + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: ripgrep-brew + name: ripgrep + source_type: brew + source_url: https://github.com/BurntSushi/ripgrep + version: "14.1.1" + pin_kind: monitor + brew_formula: ripgrep + brew_tap: homebrew/core + last_audited: "2026-05-07" + + - id: rtk-brew + name: rtk (Homebrew install path) + source_type: brew + source_url: https://github.com/rtk-ai/rtk + version: "0.1.0" + pin_kind: monitor + brew_formula: rtk + brew_tap: homebrew/core + last_audited: "2026-05-07" + + # ---- npx-launched MCP servers (Task 5) ---- + # Every entry MUST also be referenced from .mcp.json or pilot/.mcp.json + # with `args: ["-y", "@"]`. Drift checker enforces this. + + - id: mcp-remote + name: mcp-remote + source_type: npm + source_url: mcp-remote + version: "0.1.38" + last_audited: "2026-05-07" + + - id: context7-mcp + name: "@upstash/context7-mcp" + source_type: npm + source_url: "@upstash/context7-mcp" + version: "2.2.4" + last_audited: "2026-05-07" + + - id: open-websearch + name: open-websearch + source_type: npm + source_url: open-websearch + version: "2.1.9" + # No public source repo declared in npm registry; manual audit only. + last_audited: "2026-05-07" + + - id: fetcher-mcp + name: fetcher-mcp + source_type: npm + source_url: fetcher-mcp + version: "0.3.9" + # No public source repo declared in npm registry; manual audit only. + last_audited: "2026-05-07" + + # ---- PyPI bootstrap (Task 7) ---- + # Used by install.sh and launcher/build.py via `uv run --no-project --with`. + # These run BEFORE the installer can read the manifest, so install.sh and + # launcher/build.py read the version literals directly. CI cross-checks via + # scripts/check_manifest_drift.py. + + - id: rich + name: rich + source_type: pypi + source_url: https://github.com/Textualize/rich + version: "14.2.0" + last_audited: "2026-05-07" + + - id: certifi + name: certifi + source_type: pypi + source_url: https://github.com/certifi/python-certifi + version: "2026.4.22" + last_audited: "2026-05-07" + + - id: cryptography + name: cryptography + source_type: pypi + source_url: https://github.com/pyca/cryptography + version: "46.0.6" + last_audited: "2026-05-07" + + - id: pyyaml + name: PyYAML + source_type: pypi + source_url: https://github.com/yaml/pyyaml + version: "6.0.3" + last_audited: "2026-05-07" diff --git a/launcher/build.py b/launcher/build.py index ebe43a226f595f2f5b2d17130a860241ef28e734..7fa1e42906a23599e43d7183151fe7e5d578a01b 100644 GIT binary patch literal 11587 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 tNTBwjmYz# diff --git a/launcher/model_config.py b/launcher/model_config.py index 7ea84260c623cfc76fa4e8070ea6e422e9b29ec8..ce4d751f29f3b4ddc55437dc06637f4ff7f6b201 100644 GIT binary patch literal 15379 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 diff --git a/launcher/tests/unit/test_model_config.py b/launcher/tests/unit/test_model_config.py index f1306502d3f91f51ac16bc1a2506adae0294d9c4..7f0b732bd200f76cebb7426206a5dcd37e265d18 100644 GIT binary patch literal 39423 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 V){`M6F^lrhivtZTb~c&0!bz+#^3wnS diff --git a/pilot/.mcp.json b/pilot/.mcp.json index c4423eaa2..8ae476aa3 100644 --- a/pilot/.mcp.json +++ b/pilot/.mcp.json @@ -2,7 +2,7 @@ "mcpServers": { "context7": { "command": "npx", - "args": ["-y", "@upstash/context7-mcp"] + "args": ["-y", "@upstash/context7-mcp@2.2.4"] }, "codegraph": { "type": "stdio", @@ -16,7 +16,7 @@ }, "web-search": { "command": "npx", - "args": ["-y", "open-websearch"], + "args": ["-y", "open-websearch@2.1.9"], "env": { "MODE": "stdio", "DEFAULT_SEARCH_ENGINE": "duckduckgo", @@ -29,7 +29,7 @@ }, "web-fetch": { "command": "npx", - "args": ["-y", "fetcher-mcp"] + "args": ["-y", "fetcher-mcp@0.3.9"] } } } diff --git a/pilot/agents/changes-review-codex.md b/pilot/agents/changes-review-codex.md new file mode 100644 index 000000000..f4142c440 --- /dev/null +++ b/pilot/agents/changes-review-codex.md @@ -0,0 +1,99 @@ +# Codex Changes Review (Adversarial) + +> Prompt template for Codex `task --prompt-file` code reviews. Counterpart to the Claude `pilot:changes-review` agent (`pilot/agents/changes-review.md`); this file is what Codex sees, not Claude. Skill steps load this template, substitute `{{PLAN_PATH}}`, `{{PLAN_GOAL}}`, `{{BASE_REF}}`, and `{{CHANGED_FILES}}`, write to a `/tmp/` file, and pass it to `node codex-companion.mjs task --background --prompt-file`. + +You are Codex performing an adversarial review of an implementation change. Your job is to break confidence in the change, not validate it. + +## Inputs + +- **Plan file (source of truth for what was supposed to be done):** `{{PLAN_PATH}}` +- **Plan goal:** {{PLAN_GOAL}} +- **Base ref for the diff:** `{{BASE_REF}}` +- **Files the plan said it would touch (review focus):** + +{{CHANGED_FILES}} + +## How to gather context + +Use your tools — do NOT rely on a pre-bundled diff. The plan is gitignored or otherwise not in the diff; the implementation IS in the working tree. + +1. Read the plan file first. Note the tasks, Definition-of-Done criteria, risk mitigations, and Goal Verification truths. +2. Get the diff with Bash. Take the bare paths from the "Files the plan said it would touch" list above (strip the leading `- ` bullet from each line, one path per line) and pass them to `git diff` as space-separated pathspecs: + ```bash + git diff {{BASE_REF}}..HEAD -- ... + ``` + If that is empty (changes are uncommitted on the base branch), fall back to: + ```bash + git diff HEAD -- ... + ``` + And: + ```bash + git status --short --untracked-files=all + ``` +3. Selectively Read full files for: (a) newly created files not visible in the diff, (b) test files where context is needed to assess test quality, (c) hot-path callers/callees of changed functions. + +## Operating stance + +Default to skepticism. Assume the change can fail in subtle, high-cost, or user-visible ways until the evidence says otherwise. Trace how bad inputs, retries, concurrent actions, or partially completed operations move through the new code. If something only works on the happy path, treat that as a real weakness. + +## Attack surface to prioritize + +- auth, permissions, tenant isolation, trust boundaries +- data loss, corruption, duplication, irreversible state changes +- rollback safety, retries, partial failure, idempotency gaps +- race conditions, ordering assumptions, stale state, re-entrancy +- empty-state, null, timeout, degraded-dependency behavior +- version skew, schema drift, migration hazards, compatibility regressions +- observability gaps that would hide failure or make recovery harder +- chained command sequences (e.g. `git add … && git commit …` in one tool call) where pre-execution checks see stale state +- test parsimony violations: more than 2 new test classes for the same production class without a `Why >2 test classes:` note, per-method test classes, redundant assertions on the same observable path, `Trivial:` claim that does not match the actual diff size or structure +- DoD criteria that are unreachable as implemented, or implemented features that no DoD criterion covers + +## Review method + +Actively try to disprove the change. Compare the diff against the plan's tasks and DoD; flag anything missing, half-implemented, or implemented in a way the plan did not authorise (scope creep). For every plan-listed risk mitigation, confirm it is actually present in the diff and exercised by a test. Look for violated invariants, missing guards, unhandled failure paths, and assumptions that stop being true under stress. + +## Finding bar + +Report only material findings. Skip style feedback, naming feedback, low-value cleanup, and speculative concerns without evidence. A finding should answer: (1) what can go wrong, (2) why this code path is vulnerable, (3) the likely impact, (4) what concrete change reduces the risk. Cite real file paths and line numbers from the diff or your `Read` calls. + +## Output contract + +Return ONLY valid JSON. No prose around it. Schema: + +```json +{ + "verdict": "approve" | "needs-attention" | "reject", + "summary": "", + "findings": [ + { + "severity": "critical" | "high" | "medium" | "low" | "info", + "title": "", + "body": "<2-5 sentence description; cite file path and line numbers>", + "file": "", + "line_start": , + "line_end": , + "confidence": , + "recommendation": "" + } + ], + "next_steps": [""] +} +``` + +Use `needs-attention` if there is any material risk worth blocking on. Use `reject` when a critical-path bug, security flaw, or unreachable DoD criterion makes the change unsafe to ship. Use `approve` only if you cannot defend any substantive adversarial finding from the diff and referenced files. Prefer one strong finding over several weak ones. + +## Calibration + +Be aggressive, but stay grounded. Every finding must be defensible from the diff or the files you Read. Do not invent files, lines, code paths, attack chains, or runtime behavior you cannot support. If a conclusion depends on an inference, state that explicitly in the finding body and keep `confidence` honest. + +## Final check before responding + +Each finding must be: + +- adversarial rather than stylistic +- tied to a concrete code location with real line numbers +- plausible under a real-world scenario +- actionable for the implementer + +Then return only the JSON. Do not wrap it in code fences. Do not add prose before or after. diff --git a/pilot/agents/spec-review-codex.md b/pilot/agents/spec-review-codex.md new file mode 100644 index 000000000..e86a36d85 --- /dev/null +++ b/pilot/agents/spec-review-codex.md @@ -0,0 +1,81 @@ +# Codex Plan Review (Adversarial) + +> Prompt template for Codex `task --prompt-file` plan reviews. Counterpart to the Claude `pilot:spec-review` agent (`pilot/agents/spec-review.md`); this file is what Codex sees, not Claude. Skill steps load this template, substitute `{{PLAN_PATH}}`, `{{PLAN_GOAL}}`, and `{{CONTEXT_FILES}}`, write to a `/tmp/` file, and pass it to `node codex-companion.mjs task --background --prompt-file`. + +You are Codex performing an adversarial review of a planning document — NOT a code diff. Your job is to break confidence in the planned approach, not validate it. + +## Plan to review + +Read this file with your Read tool: `{{PLAN_PATH}}` + +## Context + +Goal: {{PLAN_GOAL}} + +Reference files you should also Read before reasoning about the design (sources the plan ports from, patterns the plan follows, or codebase conventions the plan must respect): + +{{CONTEXT_FILES}} + +## Operating stance + +Default to skepticism. Assume the plan can fail in subtle, high-cost, or user-visible ways until the evidence says otherwise. Do not give credit for good intent, partial fixes, or likely follow-up work. If something only works on the happy path, treat that as a real weakness. + +## Attack surface to prioritize + +- Security / auth / data-integrity bypass routes the plan does not cover (symlinks, `/proc`, named pipes, FIFOs, encoding edge cases like UTF-16 with embedded NUL bytes, race conditions between hook and tool subprocess) +- Edge cases the plan punts to "Out of Scope" that the user implicitly wanted +- Allow-list / config / toggle poisoning vectors (malformed config, type confusion, default fallback inversion) +- Performance and resource exhaustion (regex catastrophic backtracking, large inputs, hung file descriptors) +- Failure modes that fail-OPEN (let bad inputs through) vs fail-CLOSED +- Test parsimony violations or non-falsifiable Definition-of-Done criteria +- Architectural drift from existing project patterns (compare against the reference files) +- Chained command sequences in a single tool call (e.g. `git add … && git commit …`) where a pre-execution scan sees stale state and the post-execution state never gets re-scanned + +## Review method + +Actively try to disprove the plan. Look for violated invariants, missing guards, unhandled failure paths, and assumptions that stop being true under stress. Trace how bad inputs, retries, concurrent actions, or partially completed operations move through the planned design. Cite plan section names and line numbers when you can — real line numbers in the plan file, not invented ones. + +## Finding bar + +Report only material findings. Skip style feedback, naming feedback, low-value cleanup, and speculative concerns without evidence. A finding should answer: (1) what can go wrong, (2) why this design is vulnerable, (3) the likely impact, (4) what concrete change reduces the risk. + +## Output contract + +Return ONLY valid JSON. No prose around it. Schema: + +```json +{ + "verdict": "approve" | "needs-attention" | "reject", + "summary": "", + "findings": [ + { + "severity": "critical" | "high" | "medium" | "low" | "info", + "title": "", + "body": "<2-5 sentence description; cite plan section, line numbers, and referenced source files>", + "file": "{{PLAN_PATH}}", + "line_start": , + "line_end": , + "confidence": , + "recommendation": "" + } + ], + "next_steps": [""] +} +``` + +Use `needs-attention` if there is any material risk worth blocking on. Use `reject` when a chosen design produces a false-positive expectation in the plan (e.g., a Definition-of-Done criterion that is unreachable as designed). Use `approve` only if you cannot defend any substantive adversarial finding from the plan and referenced sources. Prefer one strong finding over several weak ones. + +## Calibration + +Be aggressive, but stay grounded. Every finding must be defensible from the plan text or the referenced source files. Do not invent files, lines, code paths, attack chains, or runtime behavior you cannot support. If a conclusion depends on an inference, state that explicitly in the finding body and keep `confidence` honest. + +## Final check before responding + +Each finding must be: + +- adversarial rather than stylistic +- tied to a concrete plan section or referenced code location (real line numbers in the plan file) +- plausible under a real-world scenario +- actionable for the implementer + +Then return only the JSON. Do not wrap it in code fences. Do not add prose before or after. diff --git a/pilot/hooks/_lib/allow_tags.py b/pilot/hooks/_lib/allow_tags.py new file mode 100644 index 000000000..0394e7732 --- /dev/null +++ b/pilot/hooks/_lib/allow_tags.py @@ -0,0 +1,143 @@ +"""Allow-tag parsing — port of sensitive-canary's user-prompt tag bypass. + +Tags `[allow-secret]` / `[allow-all]` are honoured ONLY from user-role transcript +messages. Tags in assistant messages or in command-string content are ignored +(prompt-injection defense). + +Authoritative reference for transcript tail logic: +sensitive-canary/src/pre-tool-use-hook.ts:75-96. The flag +`tool_result_after_last_text` tracks SUBSEQUENT TOP-LEVEL JSONL RECORDS, not +content blocks within the same record. +""" + +from __future__ import annotations + +import json +import re +from pathlib import Path + +from .secret_scanner import Finding + +MAX_TRANSCRIPT_TAIL_BYTES = 65_536 # 64 KB + +_ALLOW_TAG_RE = re.compile(r"\[allow-([a-z]+)\]", re.IGNORECASE) + + +def parse_allow_tags(text: str) -> set[str]: + """Extract `[allow-]` tags from text. Names are lowercased.""" + if not text: + return set() + return {m.group(1).lower() for m in _ALLOW_TAG_RE.finditer(text)} + + +def _has_text_block(content: object) -> bool: + if isinstance(content, str): + return True + if isinstance(content, list): + return any(isinstance(b, dict) and b.get("type") == "text" for b in content) + return False + + +def _extract_text(content: object) -> str: + """Concatenate text blocks (or return string content as-is).""" + if isinstance(content, str): + return content + if isinstance(content, list): + parts: list[str] = [] + for b in content: + if isinstance(b, dict) and b.get("type") == "text": + t = b.get("text") + if isinstance(t, str): + parts.append(t) + return "\n".join(parts) + return "" + + +def load_from_transcript(transcript_path: str, *, for_post_tool_use: bool = False) -> set[str]: + """Read tail of transcript JSONL and resolve effective allow tags. + + Args: + transcript_path: filesystem path to Claude Code's session transcript JSONL. + for_post_tool_use: when True, treat the LAST tool_result-only user record + as the call that triggered THIS PostToolUse hook (so the tag is NOT + yet consumed by it). Earlier tool_result records still consume the tag. + + Returns set of allow-tag names (lowercased), e.g. {"secret"} or {"all"}. + Returns empty set on missing/unreadable file or when the most recent tag has + been consumed by a subsequent tool call. + """ + try: + path = Path(transcript_path) + size = path.stat().st_size + except OSError: + return set() + + try: + if size <= MAX_TRANSCRIPT_TAIL_BYTES: + raw = path.read_text(errors="replace") + else: + with path.open("rb") as f: + f.seek(size - MAX_TRANSCRIPT_TAIL_BYTES) + raw = f.read().decode("utf-8", errors="replace") + except OSError: + return set() + + last_user_text: str | None = None + tool_result_records_after_text = 0 + for line in raw.split("\n"): + line = line.strip() + if not line: + continue + try: + parsed = json.loads(line) + except json.JSONDecodeError: + continue + msg = parsed.get("message") if isinstance(parsed, dict) else None + if not isinstance(msg, dict): + continue + if msg.get("role") != "user": + continue + content = msg.get("content") + if content is None: + continue + if _has_text_block(content): + last_user_text = _extract_text(content) + tool_result_records_after_text = 0 + else: + tool_result_records_after_text += 1 + + if last_user_text is None: + return set() + + if for_post_tool_use: + # The LAST tool_result record represents the call that triggered THIS + # PostToolUse hook — the tag is NOT yet consumed by it. But any earlier + # tool_result already used it up. + if tool_result_records_after_text > 1: + return set() + else: + if tool_result_records_after_text > 0: + return set() + + return parse_allow_tags(last_user_text) + + +def apply_allow_tags(findings: list[Finding], tags: set[str]) -> list[Finding]: + """Drop findings per tags + dedupe by secret_value. + + All findings in this port are secret-category (PII rules excluded). + `[allow-all]` and `[allow-secret]` both drop everything. + """ + deduped: list[Finding] = [] + seen: set[str] = set() + for f in findings: + if f.secret_value in seen: + continue + seen.add(f.secret_value) + deduped.append(f) + + if not tags: + return deduped + if "all" in tags or "secret" in tags: + return [] + return deduped diff --git a/pilot/hooks/_lib/secret_scanner.py b/pilot/hooks/_lib/secret_scanner.py new file mode 100644 index 000000000..d332f6dd9 --- /dev/null +++ b/pilot/hooks/_lib/secret_scanner.py @@ -0,0 +1,223 @@ +"""Secret detection — port of sensitive-canary's 24 secret rules. + +Pure module. Zero I/O. Importable from any hook script. +PII rules (sensitive-canary's PII_RULES + Luhn validator) are intentionally NOT +ported — out of scope per the credential-leak-prevention plan. + +Source: sensitive-canary/src/lib/rules.ts:58-231 (gitleaks + TruffleHog). +""" + +from __future__ import annotations + +import math +import re +from dataclasses import dataclass + + +@dataclass(frozen=True) +class Finding: + rule_id: str + description: str + match_redacted: str + secret_value: str + + +@dataclass(frozen=True) +class Rule: + id: str + description: str + regex: re.Pattern[str] + secret_group: int = 0 + entropy_threshold: float | None = None + + +def entropy(s: str) -> float: + """Shannon entropy in bits per character (0–8).""" + if not s: + return 0.0 + freq: dict[str, int] = {} + for ch in s: + freq[ch] = freq.get(ch, 0) + 1 + n = len(s) + h = 0.0 + for count in freq.values(): + p = count / n + h -= p * math.log2(p) + return h + + +def redact(s: str) -> str: + """First 4 + **** + last 4; full-mask strings ≤ 8 chars.""" + if len(s) <= 8: + return "****" + return f"{s[:4]}****{s[-4:]}" + + +# ── Secret rules (24) ───────────────────────────────────────────────────────── +RULES: list[Rule] = [ + # Cloud + Rule( + id="aws-access-key", + description="AWS Access Key ID", + regex=re.compile(r"\b(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}\b"), + ), + Rule( + id="gcp-api-key", + description="Google Cloud API Key", + regex=re.compile(r"AIza[0-9A-Za-z_\-]{35}"), + ), + Rule( + id="private-key", + description="PEM Private Key", + regex=re.compile(r"-----BEGIN (RSA |EC |DSA |PGP |OPENSSH )?PRIVATE KEY"), + ), + # Source control + Rule( + id="github-pat", + description="GitHub Personal Access Token", + regex=re.compile(r"gh[pousr]_[A-Za-z0-9]{36,255}"), + ), + Rule( + id="github-fine-grained", + description="GitHub Fine-Grained Token", + regex=re.compile(r"github_pat_[A-Za-z0-9_]{82}"), + ), + Rule( + id="gitlab-pat", + description="GitLab Personal Access Token", + regex=re.compile(r"glpat-[A-Za-z0-9_=\-]{20,22}"), + ), + # Package registries + Rule( + id="npm-token", + description="npm Access Token", + regex=re.compile(r"npm_[A-Za-z0-9]{36}"), + ), + # Communication + Rule( + id="slack-token", + description="Slack Token", + regex=re.compile(r"xox[baprs]-[0-9a-zA-Z\-]{10,72}"), + ), + Rule( + id="slack-webhook", + description="Slack Webhook URL", + regex=re.compile( + r"https://hooks\.slack\.com/services/T[A-Za-z0-9_]{8,10}/B[A-Za-z0-9_]{8,12}/[A-Za-z0-9_]{23,24}" + ), + ), + Rule( + id="discord-webhook", + description="Discord Webhook URL", + regex=re.compile(r"https://discord(?:app)?\.com/api/webhooks/[0-9]{17,20}/[A-Za-z0-9_\-]{68}"), + ), + Rule( + id="telegram-bot-token", + description="Telegram Bot Token", + regex=re.compile(r"[0-9]{8,10}:AA[0-9A-Za-z_\-]{33}"), + ), + Rule( + id="twilio-sid", + description="Twilio Account SID", + regex=re.compile(r"AC[0-9a-f]{32}"), + ), + # Email services + Rule( + id="sendgrid-key", + description="SendGrid API Key", + regex=re.compile(r"SG\.[A-Za-z0-9_\-]{20,24}\.[A-Za-z0-9_\-]{39,50}"), + ), + Rule( + id="mailgun-key", + description="Mailgun API Key", + regex=re.compile(r"key-[0-9a-zA-Z]{32}"), + ), + Rule( + id="mailchimp-key", + description="Mailchimp API Key", + regex=re.compile(r"[0-9a-f]{32}-us[0-9]{1,2}"), + ), + # Payment + Rule( + id="stripe-secret-key", + description="Stripe Secret Key", + regex=re.compile(r"sk_(live|test)_[0-9a-zA-Z]{24}"), + ), + Rule( + id="stripe-restricted-key", + description="Stripe Restricted Key", + regex=re.compile(r"rk_(live|test)_[0-9a-zA-Z]{24}"), + ), + # AI services + Rule( + id="openai-key", + description="OpenAI API Key (legacy)", + regex=re.compile(r"sk-(?!proj-|ant-)[A-Za-z0-9]{48}"), + ), + Rule( + id="openai-project-key", + description="OpenAI Project API Key", + regex=re.compile(r"sk-proj-[A-Za-z0-9_\-]{40,}"), + entropy_threshold=3.5, + ), + Rule( + id="anthropic-key", + description="Anthropic API Key", + regex=re.compile(r"sk-ant-[A-Za-z0-9_\-]{95}"), + ), + # Auth + Rule( + id="jwt", + description="JSON Web Token (JWT)", + regex=re.compile(r"eyJ[A-Za-z0-9_\-]{10,}\.eyJ[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}"), + ), + # Generic / env-based + Rule( + id="generic-secret", + description="Generic API Key / Secret", + regex=re.compile( + r"(api[_\-]?key|secret[_\-]?key|access[_\-]?token|api[_\-]?secret)\s*[:=]\s*['\"]?([A-Za-z0-9\-_.]{20,})", + re.IGNORECASE, + ), + secret_group=2, + entropy_threshold=3.5, + ), + Rule( + id="env-assignment", + description=".env style secret assignment", + regex=re.compile(r"\b[A-Z_]*(SECRET|PASSWORD|PASSWD|TOKEN|API_KEY|PRIVATE_KEY)[A-Z_0-9]*\s*=\s*(\S{8,})"), + secret_group=2, + entropy_threshold=3.0, + ), + Rule( + id="connection-string", + description="Database Connection String with credentials", + regex=re.compile(r"(mongodb|mysql|postgres|postgresql|redis)://[^:\s]+:[^@\s]+@"), + ), +] + + +def scan(text: str) -> list[Finding]: + """Scan text for secrets across all rules. Findings are NOT deduped.""" + findings: list[Finding] = [] + if not text: + return findings + for rule in RULES: + for match in rule.regex.finditer(text): + try: + secret_value = match.group(rule.secret_group) + except IndexError: + continue + if not secret_value: + continue + if rule.entropy_threshold is not None and entropy(secret_value) < rule.entropy_threshold: + continue + findings.append( + Finding( + rule_id=rule.id, + description=rule.description, + match_redacted=redact(secret_value), + secret_value=secret_value, + ) + ) + return findings diff --git a/pilot/hooks/credential_scanner.py b/pilot/hooks/credential_scanner.py new file mode 100644 index 000000000..1aec8a19f --- /dev/null +++ b/pilot/hooks/credential_scanner.py @@ -0,0 +1,913 @@ +#!/usr/bin/env python3 +"""Credential leak prevention hook. + +Handles three Claude Code hook events: + - UserPromptSubmit: scan submitted prompts for secrets. + - PreToolUse(Read): name-block .env / .env.*; content-scan other files. + - PreToolUse(Bash): scan command text, env vars, file-read targets, git commit + staged diff + staged blobs, and chained `git add … && git commit` patterns + with effective-cwd tracking. + - PostToolUse(Bash): scan tool output (stdout+stderr); fail-CLOSED on >1 MB. + +Allow tags `[allow-secret]` / `[allow-all]` are honoured ONLY from user-role +transcript messages (or, for UserPromptSubmit, from the prompt text directly). + +Toggle: gated by PILOT_CREDENTIAL_SCANNER_ENABLED env var (default "true"). +""" + +from __future__ import annotations + +import json +import os +import re +import shlex +import signal +import stat +import subprocess +import sys +from contextlib import contextmanager +from pathlib import Path +from typing import Iterator + +from _lib.allow_tags import ( + apply_allow_tags, + load_from_transcript, + parse_allow_tags, +) +from _lib.secret_scanner import Finding, scan +from _lib.util import post_tool_use_block, pre_tool_use_deny + +# ── Constants ──────────────────────────────────────────────────────────────── + +MAX_SCAN_BYTES = 1_048_576 # 1 MB +MAX_BLOB_TOTAL_BYTES = 5 * MAX_SCAN_BYTES # cap across all staged blobs +GIT_TIMEOUT_SECONDS = 5 +REGEX_TIMEOUT_SECONDS = 2 + +FILE_READ_COMMANDS: frozenset[str] = frozenset({"cat", "head", "tail", "less", "more", "bat", "nl"}) + +# Match shell segment separators (mirrors tool_redirect.py:102 — &&, ||, ;, newline) +SHELL_SEGMENT_SEP_RE = re.compile(r"(?:&&|\|\||;|\n)") + +# Env var reference: $VAR or ${VAR} +ENV_VAR_RE = re.compile(r"\$\{([A-Za-z_][A-Za-z0-9_]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)") + +# Git global options that take a value (consume the next token when stripping). +_GIT_GLOBAL_OPT_VALUE = frozenset({"-C", "-c", "--git-dir", "--work-tree", "--namespace", "--super-prefix"}) + +# Git global flags (no value). +_GIT_GLOBAL_OPT_FLAG = frozenset( + { + "--no-pager", + "-p", + "--paginate", + "--no-replace-objects", + "--bare", + "--no-optional-locks", + "--exec-path", + "--html-path", + "--man-path", + "--info-path", + "--literal-pathspecs", + "--glob-pathspecs", + "--noglob-pathspecs", + "--icase-pathspecs", + } +) + + +def _parse_git_invocation(segment: str) -> tuple[str | None, str | None]: + """Parse a shell segment for `git [global-opts] ...`. + + Returns (subcommand, dash_c_dir). Both are None when the segment is not a + git invocation. `--no-pager`, `-c name=val`, `-C dir`, `--git-dir`, etc. + are skipped before identifying the subcommand. Closes Codex finding #2. + """ + tokens = _tokenize_segment(segment) + if not tokens or tokens[0] != "git": + return None, None + idx = 1 + dash_c: str | None = None + while idx < len(tokens): + tk = tokens[idx] + if tk == "-C" and idx + 1 < len(tokens): + dash_c = tokens[idx + 1] + idx += 2 + continue + if tk in _GIT_GLOBAL_OPT_VALUE and idx + 1 < len(tokens): + idx += 2 + continue + if tk in _GIT_GLOBAL_OPT_FLAG: + idx += 1 + continue + # `--option=value` form (no separate value token) + if tk.startswith("--") and "=" in tk: + opt = tk.split("=", 1)[0] + if opt in _GIT_GLOBAL_OPT_VALUE or opt in _GIT_GLOBAL_OPT_FLAG: + idx += 1 + continue + # Unknown flag — be conservative, skip it (single-token). + if tk.startswith("-"): + idx += 1 + continue + # First non-flag token is the subcommand. + return tk, dash_c + return None, dash_c + + +def _segment_invokes(segment: str, subcommand: str) -> bool: + """True when the segment runs `git ` (with any global options).""" + sub, _ = _parse_git_invocation(segment) + return sub == subcommand + + +def _segment_dash_c(segment: str) -> str | None: + """Return the `-C

` value from a git invocation, if any.""" + _, dash_c = _parse_git_invocation(segment) + return dash_c + + +# ── Allow-tag aware finding pipeline ────────────────────────────────────────── + + +def _scan_and_filter(text: str, tags: set[str]) -> list[Finding]: + """Run scan, apply allow tags, dedupe. Returns final findings list.""" + return apply_allow_tags(scan(text), tags) + + +# ── BOM-aware file reading ──────────────────────────────────────────────────── + + +def _read_file_text(path: Path, max_bytes: int = MAX_SCAN_BYTES) -> str | None: + """Read up to max_bytes and decode with BOM detection. + + Returns None on I/O error or non-regular files. Use _is_regular_file() for + explicit non-regular detection in the caller — this just gracefully returns + None. + """ + try: + with path.open("rb") as f: + head = f.read(4) + rest = f.read(max_bytes - len(head)) + raw = head + rest + except OSError: + return None + + if not raw: + return "" + + if raw.startswith(b"\xff\xfe"): + try: + return raw[2:].decode("utf-16-le", errors="replace") + except UnicodeDecodeError: + return None + if raw.startswith(b"\xfe\xff"): + try: + return raw[2:].decode("utf-16-be", errors="replace") + except UnicodeDecodeError: + return None + if raw.startswith(b"\xef\xbb\xbf"): + body = raw[3:] + nul = body.find(b"\x00") + if nul != -1: + body = body[:nul] + return body.decode("utf-8", errors="replace") + + nul = raw.find(b"\x00") + if nul != -1: + raw = raw[:nul] + return raw.decode("utf-8", errors="replace") + + +def _is_regular_file(path: Path) -> bool: + try: + return stat.S_ISREG(path.lstat().st_mode) + except OSError: + return False + + +def _resolved_target(path: Path) -> Path: + """Resolve symlinks (best-effort, strict=False).""" + try: + return path.resolve(strict=False) + except OSError: + return path + + +# ── Regex-timeout safeguard (POSIX only) ────────────────────────────────────── + + +@contextmanager +def _regex_timeout(seconds: int = REGEX_TIMEOUT_SECONDS) -> Iterator[None]: + """Wrap a scan in signal.alarm guard on POSIX. No-op elsewhere.""" + if not hasattr(signal, "alarm"): + yield + return + + def _on_alarm(_signum: int, _frame: object) -> None: + raise TimeoutError("regex scan timeout") + + prev_handler = signal.signal(signal.SIGALRM, _on_alarm) + signal.alarm(seconds) + try: + yield + finally: + signal.alarm(0) + signal.signal(signal.SIGALRM, prev_handler) + + +# ── Block helpers ───────────────────────────────────────────────────────────── + + +def _format_finding_lines(findings: list[Finding]) -> list[str]: + return [f" [Secret] {f.description} ({f.rule_id}): {f.match_redacted}" for f in findings] + + +def _allow_hint(action_text: str = "this action") -> str: + return ( + f"To allow {action_text}, add an allow tag to the next user prompt:\n" + " [allow-secret] — allow secret findings\n" + " [allow-all] — bypass all credential-scanner checks" + ) + + +def _user_prompt_block(findings: list[Finding]) -> int: + msg_lines = [ + "🚫 Pilot credential-scanner blocked this prompt — it contains sensitive data:", + "", + *_format_finding_lines(findings), + "", + _allow_hint("this prompt"), + ] + sys.stderr.write("\n".join(msg_lines) + "\n") + return 2 + + +def _name_block_dotenv(file_path: str) -> int: + reason = ( + f"Blocked: {file_path} resolves to a .env / .env.* file. These contain secrets and " + "must not be read into the conversation.\n\n" + _allow_hint(f"reading {file_path}") + ) + print(pre_tool_use_deny(reason)) + return 2 + + +def _name_block_non_regular(file_path: str) -> int: + reason = f"Blocked: {file_path} is not a regular file (FIFO, socket, char device, etc.)." + print(pre_tool_use_deny(reason)) + return 2 + + +def _content_block(source: str, findings: list[Finding]) -> int: + reason = "\n".join( + [ + f"Blocked: {source} contains sensitive data:", + "", + *_format_finding_lines(findings), + "", + _allow_hint(f"this {source}"), + ] + ) + print(pre_tool_use_deny(reason)) + return 2 + + +def _post_tool_use_findings_block(findings: list[Finding]) -> int: + reason = "\n".join( + [ + "🚫 Bash tool output dropped — contained sensitive data:", + "", + *_format_finding_lines(findings), + "", + _allow_hint("this output to pass through"), + ] + ) + print(post_tool_use_block(reason)) + return 2 + + +def _post_tool_use_oversize_block() -> int: + reason = ( + "🚫 Bash tool output exceeds 1 MB scan budget — blocked as a precaution. " + "Use [allow-secret] in your next prompt to allow this specific output through." + ) + print(post_tool_use_block(reason)) + return 2 + + +def _bash_unresolvable_repo() -> int: + reason = ( + "Blocked: git chain has unresolvable repo path (cd to non-existent dir or invalid -C). " + "Use [allow-secret] to override." + ) + print(pre_tool_use_deny(reason)) + return 2 + + +# ── Path helpers ────────────────────────────────────────────────────────────── + + +def _is_blocked_env_basename(name: str) -> bool: + return name == ".env" or name.startswith(".env.") + + +def _scan_file_path(file_path: str, tags: set[str]) -> int: + """Scan a file for secrets, applying name-block + content-block rules. + + Returns 2 (block) or 0 (pass). + """ + if not file_path: + return 0 + p = Path(file_path) + requested_basename = p.name + target = _resolved_target(p) + target_basename = target.name + + # Name-block applies to BOTH the requested basename and the resolved target. + if _is_blocked_env_basename(requested_basename) or _is_blocked_env_basename(target_basename): + if "all" in tags or "secret" in tags: + return 0 + return _name_block_dotenv(file_path) + + # Reject non-regular files (FIFOs, sockets, etc.) BEFORE reading. + # If file does not exist, lstat fails — treat as not-a-regular-file → pass through + # (the Read tool will error on its own). + if not target.exists(): + return 0 + if not _is_regular_file(target): + return _name_block_non_regular(file_path) + + text = _read_file_text(target) + if not text: + return 0 + try: + with _regex_timeout(): + findings = _scan_and_filter(text, tags) + except TimeoutError: + return 0 # regex catastrophic-backtrack bailout + if not findings: + return 0 + return _content_block(file_path, findings) + + +# ── Bash command parsing ────────────────────────────────────────────────────── + + +def _split_segments(command: str) -> list[str]: + return [s.strip() for s in SHELL_SEGMENT_SEP_RE.split(command) if s.strip()] + + +def _extract_env_var_names(command: str) -> list[str]: + names: list[str] = [] + for m in ENV_VAR_RE.finditer(command): + name = m.group(1) or m.group(2) + if name and name not in names: + names.append(name) + return names + + +def _tokenize_segment(segment: str) -> list[str]: + """Best-effort shell tokenizer. Returns [] on parse failure (graceful).""" + try: + return shlex.split(segment, posix=True) + except ValueError: + return [] + + +def _extract_file_read_targets(segment: str) -> list[str]: + """If segment is a cat/head/etc. invocation, return positional file args.""" + tokens = _tokenize_segment(segment) + if len(tokens) < 2: + return [] + cmd = Path(tokens[0]).name + if cmd not in FILE_READ_COMMANDS: + return [] + paths: list[str] = [] + skip_next = False + for t in tokens[1:]: + if skip_next: + skip_next = False + continue + if t.startswith("-"): + continue + if t in (">", ">>", "<"): + skip_next = True + continue + paths.append(t) + return paths + + +def _git_add_tail_tokens(segment: str) -> list[str] | None: + """Tokens AFTER `git [global-opts] add` (or None if not a git-add segment). + + Honours the same global-option set as `_parse_git_invocation`, so + `git --no-pager add foo` is parsed correctly. + """ + tokens = _tokenize_segment(segment) + if not tokens or tokens[0] != "git": + return None + idx = 1 + while idx < len(tokens): + tk = tokens[idx] + if tk in _GIT_GLOBAL_OPT_VALUE and idx + 1 < len(tokens): + idx += 2 + continue + if tk in _GIT_GLOBAL_OPT_FLAG: + idx += 1 + continue + if tk.startswith("--") and "=" in tk: + opt = tk.split("=", 1)[0] + if opt in _GIT_GLOBAL_OPT_VALUE or opt in _GIT_GLOBAL_OPT_FLAG: + idx += 1 + continue + if tk.startswith("-"): + idx += 1 + continue + break + if idx >= len(tokens) or tokens[idx] != "add": + return None + return tokens[idx + 1 :] + + +def _extract_git_add_args(segment: str) -> list[str]: + """Return positional path args to `git add` (drops flag tokens).""" + tail = _git_add_tail_tokens(segment) + if tail is None: + return [] + return [t for t in tail if not t.startswith("-")] + + +def _add_segment_is_wildcard(segment: str) -> bool: + """Detect `git add` wildcard forms: -A, --all, -u, --update, ., or no positional args.""" + tail = _git_add_tail_tokens(segment) + if tail is None: + return False + explicit_paths = [t for t in tail if not t.startswith("-")] + if not explicit_paths: + return True + if any(t in ("-A", "--all", "-u", "--update", ".") for t in tail): + return True + return False + + +def _segment_git_dash_c(segment: str) -> str | None: + """Return the directory argument from `git -C ` if present.""" + return _segment_dash_c(segment) + + +def _segment_is_cd(segment: str) -> bool: + """True when the segment's first non-empty token is `cd`.""" + stripped = segment.strip() + if not stripped: + return False + return stripped == "cd" or stripped.startswith("cd ") or stripped.startswith("cd\t") + + +def _extract_cd_target(segment: str) -> str | None: + """Extract the path argument to `cd`. Handles quoted paths and embedded spaces. + + Returns None when the segment cannot be parsed (e.g. unbalanced quotes) — caller + should treat as unresolvable cwd and fail CLOSED. + """ + tokens = _tokenize_segment(segment) + if len(tokens) < 2 or tokens[0] != "cd": + return None + return tokens[1] + + +def _resolve_cwd_chain(segments: list[str], initial_cwd: Path) -> tuple[list[Path | None], Path | None]: + """Compute per-segment effective cwd by tracking `cd ` segments. + + Returns (per_segment_cwd, final_cwd). When a `cd` segment cannot be parsed + or its target does not resolve to a directory, the corresponding entry is + None and final_cwd is None — fail-CLOSED on unresolvable cwd. Closes + Claude reviewer should_fix #1 (CD_RE didn't handle paths with spaces). + """ + cwds: list[Path | None] = [] + cur: Path | None = initial_cwd + for seg in segments: + if _segment_is_cd(seg): + target = _extract_cd_target(seg) + if target is None: + cur = None + cwds.append(cur) + continue + new_cwd = (cur / target).resolve(strict=False) if cur is not None else Path(target).resolve(strict=False) + cur = new_cwd if new_cwd.is_dir() else None + cwds.append(cur) + else: + cwds.append(cur) + return cwds, cur + + +def _git_run(args: list[str], cwd: Path, max_bytes: int = MAX_SCAN_BYTES) -> bytes | None: + """Run a git command; return stdout up to max_bytes, or None on failure.""" + try: + result = subprocess.run( + args, + cwd=cwd, + capture_output=True, + timeout=GIT_TIMEOUT_SECONDS, + check=False, + ) + if result.returncode != 0: + return None + return result.stdout[:max_bytes] + except (OSError, subprocess.TimeoutExpired): + return None + + +def _scan_staged_diff(repo_cwd: Path, tags: set[str]) -> list[Finding]: + out = _git_run(["git", "diff", "--cached", "--no-color", "-U0"], repo_cwd) + if not out: + return [] + nul = out.find(b"\x00") + if nul != -1: + out = out[:nul] + text = out.decode("utf-8", errors="replace") + return _scan_and_filter(text, tags) + + +def _scan_staged_blobs(repo_cwd: Path, tags: set[str]) -> list[Finding]: + """Enumerate staged paths and read each blob via `git show :`. BOM-aware.""" + name_out = _git_run(["git", "diff", "--cached", "--name-only", "-z", "--diff-filter=ACMR"], repo_cwd) + if not name_out: + return [] + paths = [p.decode("utf-8", errors="replace") for p in name_out.split(b"\x00") if p] + findings: list[Finding] = [] + total_bytes = 0 + for rel in paths: + if total_bytes >= MAX_BLOB_TOTAL_BYTES: + break + remaining = MAX_BLOB_TOTAL_BYTES - total_bytes + budget = min(MAX_SCAN_BYTES, remaining) + blob = _git_run(["git", "show", f":{rel}"], repo_cwd, max_bytes=budget) + if blob is None: + continue + total_bytes += len(blob) + text = _decode_blob(blob) + if not text: + continue + findings.extend(_scan_and_filter(text, tags)) + return findings + + +def _decode_blob(raw: bytes) -> str: + """Decode bytes with BOM detection (mirrors _read_file_text).""" + if not raw: + return "" + if raw.startswith(b"\xff\xfe"): + return raw[2:].decode("utf-16-le", errors="replace") + if raw.startswith(b"\xfe\xff"): + return raw[2:].decode("utf-16-be", errors="replace") + if raw.startswith(b"\xef\xbb\xbf"): + body = raw[3:] + nul = body.find(b"\x00") + if nul != -1: + body = body[:nul] + return body.decode("utf-8", errors="replace") + nul = raw.find(b"\x00") + if nul != -1: + raw = raw[:nul] + return raw.decode("utf-8", errors="replace") + + +def _enumerate_working_tree_files(repo_cwd: Path) -> list[str]: + """Enumerate files that `git add -A` / `-u` / `.` would stage. + + `-A` covers modified + untracked + deleted in the working tree. `--cached` + is intentionally OMITTED — clean tracked files have no pending changes and + would otherwise exhaust the 1 MB scan budget before the secret-bearing file + is reached (Codex finding #3). + """ + out = _git_run( + ["git", "ls-files", "--modified", "--others", "--exclude-standard"], + repo_cwd, + ) + if out is None: + return [] + return [line for line in out.decode("utf-8", errors="replace").splitlines() if line] + + +# ── Event handlers ──────────────────────────────────────────────────────────── + + +def _handle_user_prompt_submit(data: dict) -> int: + prompt = data.get("prompt") or "" + if not isinstance(prompt, str) or not prompt: + return 0 + tags = parse_allow_tags(prompt) + try: + with _regex_timeout(): + findings = _scan_and_filter(prompt, tags) + except TimeoutError: + return 0 + if not findings: + return 0 + return _user_prompt_block(findings) + + +def _handle_pre_tool_use_read(data: dict) -> int: + tool_input = data.get("tool_input") or {} + file_path = tool_input.get("file_path") or "" + transcript_path = data.get("transcript_path") or "" + tags = load_from_transcript(transcript_path) if transcript_path else set() + return _scan_file_path(file_path, tags) + + +def _handle_pre_tool_use_bash(data: dict) -> int: + tool_input = data.get("tool_input") or {} + command = tool_input.get("command") or "" + if not isinstance(command, str) or not command: + return 0 + transcript_path = data.get("transcript_path") or "" + tags = load_from_transcript(transcript_path) if transcript_path else set() + initial_cwd = _initial_cwd(data) + + segments = _split_segments(command) + if not segments: + return 0 + seg_cwds, _ = _resolve_cwd_chain(segments, initial_cwd) + + # 1) Env-var scan + for var_name in _extract_env_var_names(command): + value = os.environ.get(var_name) + if not value: + continue + findings = _scan_and_filter(value, tags) + if findings: + return _content_block(f"environment variable ${var_name}", findings) + + # 2) Command-text scan (raw command text — catches inline echo AKIA…) + cmd_findings = _scan_and_filter(command, tags) + if cmd_findings: + return _content_block("bash command", cmd_findings) + + # 3) File-read commands (cat/head/tail/...) + for seg, seg_cwd in zip(segments, seg_cwds): + for raw_path in _extract_file_read_targets(seg): + path = _resolve_path_in_cwd(raw_path, seg_cwd or initial_cwd) + if path is None: + continue + ret = _scan_file_path(str(path), tags) + if ret != 0: + return ret + + # 4) Detect chains and git commit (Codex finding #2 — shlex-based detection + # so global options like --no-pager don't bypass) + has_commit = any(_segment_invokes(s, "commit") for s in segments) + has_add = any(_segment_invokes(s, "add") for s in segments) + + if has_commit: + # Determine the cwd of the commit segment + commit_cwd = _commit_segment_cwd(segments, seg_cwds, initial_cwd) + if commit_cwd is None: + return _bash_unresolvable_repo() + # Patch-text scan + diff_findings = _scan_staged_diff(commit_cwd, tags) + # Staged-blob scan (catches UTF-16 / binary blobs) + blob_findings = _scan_staged_blobs(commit_cwd, tags) + all_findings = diff_findings + blob_findings + + if has_add: + chain_findings = _scan_chain_add_files(segments, seg_cwds, initial_cwd, tags) + if chain_findings is None: + return _bash_unresolvable_repo() + all_findings.extend(chain_findings) + + all_findings = apply_allow_tags(all_findings, tags) + if all_findings: + return _content_block("staged commit", all_findings) + + return 0 + + +def _initial_cwd(data: dict) -> Path: + cwd = data.get("cwd") + if isinstance(cwd, str) and cwd: + return Path(cwd) + return Path.cwd() + + +def _resolve_path_in_cwd(raw_path: str, cwd: Path) -> Path | None: + p = Path(raw_path) + if p.is_absolute(): + return p + try: + return (cwd / raw_path).resolve(strict=False) + except OSError: + return None + + +def _commit_segment_cwd(segments: list[str], seg_cwds: list[Path | None], initial_cwd: Path) -> Path | None: + """Find the effective cwd of the first `git commit` segment.""" + for seg, cwd in zip(segments, seg_cwds): + if not _segment_invokes(seg, "commit"): + continue + # If the segment uses `git -C `, that overrides the cwd. + dash_c = _segment_git_dash_c(seg) + if dash_c: + target = Path(dash_c) + if not target.is_absolute() and cwd is not None: + target = (cwd / dash_c).resolve(strict=False) + elif target.is_absolute(): + target = target.resolve(strict=False) + else: + target = (initial_cwd / dash_c).resolve(strict=False) + return target if target.is_dir() else None + return cwd + return None + + +def _scan_chain_add_files( + segments: list[str], + seg_cwds: list[Path | None], + initial_cwd: Path, + tags: set[str], +) -> list[Finding] | None: + """Scan files referenced by `git add` segments. Returns None on cwd failure.""" + findings: list[Finding] = [] + for seg, seg_cwd in zip(segments, seg_cwds): + if not _segment_invokes(seg, "add"): + continue + dash_c = _segment_git_dash_c(seg) + if dash_c: + target = Path(dash_c) + if not target.is_absolute() and seg_cwd is not None: + target = (seg_cwd / dash_c).resolve(strict=False) + elif target.is_absolute(): + target = target.resolve(strict=False) + else: + target = (initial_cwd / dash_c).resolve(strict=False) + if not target.is_dir(): + return None + effective_cwd = target + else: + effective_cwd = seg_cwd + + if effective_cwd is None: + return None + + if _add_segment_is_wildcard(seg): + # Enumerate files the add form will stage. `-A` and `.` cover + # modified-and-new (NOT clean tracked files); we drop `--cached` + # so clean tracked files can't exhaust the budget before reaching + # the new modified secret-bearing file (Codex finding #3). + files = _enumerate_working_tree_files(effective_cwd) + findings.extend(_scan_files_under_budget(files, effective_cwd, tags)) + else: + for raw_arg in _extract_git_add_args(seg): + p_obj = Path(raw_arg) + if not p_obj.is_absolute(): + p_obj = (effective_cwd / raw_arg).resolve(strict=False) + if not p_obj.exists(): + continue + if p_obj.is_file(): + text = _read_file_text(p_obj) + if text: + findings.extend(_scan_and_filter(text, tags)) + elif p_obj.is_dir(): + # Codex finding #1: `git add ` stages every file under . + # Enumerate via git ls-files restricted to the directory pathspec. + rel_dir = _relative_path(p_obj, effective_cwd) + files_under_dir = _enumerate_pathspec_files(effective_cwd, rel_dir) + findings.extend(_scan_files_under_budget(files_under_dir, effective_cwd, tags)) + return findings + + +def _relative_path(target: Path, cwd: Path) -> str: + """Return target relative to cwd; falls back to absolute if not relative.""" + try: + return str(target.relative_to(cwd)) + except ValueError: + return str(target) + + +def _scan_files_under_budget(rel_paths: list[str], base_cwd: Path, tags: set[str]) -> list[Finding]: + """Scan a list of file paths (relative to base_cwd), within MAX_SCAN_BYTES total.""" + findings: list[Finding] = [] + total = 0 + for rel in rel_paths: + if total >= MAX_SCAN_BYTES: + break + p = (base_cwd / rel).resolve(strict=False) + if not p.is_file(): + continue + text = _read_file_text(p, max_bytes=MAX_SCAN_BYTES - total) + if not text: + continue + total += len(text.encode("utf-8", errors="replace")) + findings.extend(_scan_and_filter(text, tags)) + return findings + + +def _enumerate_pathspec_files(repo_cwd: Path, pathspec: str) -> list[str]: + """Enumerate working-tree files under a directory pathspec via git ls-files. + + Uses `--modified --others --exclude-standard` to capture both newly-added + untracked files and modified-tracked files, restricted to the pathspec. + """ + out = _git_run( + ["git", "ls-files", "--modified", "--others", "--exclude-standard", "--", pathspec], + repo_cwd, + ) + if out is None: + return [] + return [line for line in out.decode("utf-8", errors="replace").splitlines() if line] + + +def _handle_post_tool_use_bash(data: dict) -> int: + tool_response = data.get("tool_response") or {} + if not isinstance(tool_response, dict): + return 0 + stdout_b = tool_response.get("stdout") or "" + stderr_b = tool_response.get("stderr") or "" + if not isinstance(stdout_b, str): + stdout_b = "" + if not isinstance(stderr_b, str): + stderr_b = "" + + # Use UTF-8 BYTE length (not Python str/code-point length). Multi-byte chars + # would otherwise undercount, allowing a secret at byte 1,048,577 to pass + # the oversize check. Closes Claude reviewer should_fix #2. + combined_byte_len = ( + len(stdout_b.encode("utf-8", errors="replace")) + + 1 # the "\n" separator + + len(stderr_b.encode("utf-8", errors="replace")) + ) + + transcript_path = data.get("transcript_path") or "" + tags = load_from_transcript(transcript_path, for_post_tool_use=True) if transcript_path else set() + + # Scan the first MAX_SCAN_BYTES bytes of combined output. Slice by bytes, + # not by characters, so the cap matches combined_byte_len. + combined_bytes = (stdout_b + "\n" + stderr_b).encode("utf-8", errors="replace")[:MAX_SCAN_BYTES] + combined = combined_bytes.decode("utf-8", errors="replace") + try: + with _regex_timeout(): + findings = _scan_and_filter(combined, tags) + except TimeoutError: + findings = [] + + if findings: + return _post_tool_use_findings_block(findings) + + # Fail-CLOSED on oversize output (Codex finding #1 / Claude must_fix #1). + # Compare UTF-8 BYTE length, not character length, so multi-byte output + # cannot undercount and slip past the budget guard. + if combined_byte_len > MAX_SCAN_BYTES: + if "all" in tags or "secret" in tags: + return 0 + return _post_tool_use_oversize_block() + + return 0 + + +# ── Main dispatch ───────────────────────────────────────────────────────────── + + +def _enabled() -> bool: + return os.environ.get("PILOT_CREDENTIAL_SCANNER_ENABLED", "true").lower() != "false" + + +def run_credential_scanner() -> int: + """Main entry — read stdin, dispatch on event, return exit code.""" + if not _enabled(): + return 0 + + try: + raw = sys.stdin.read() + except OSError: + return 0 + if not raw: + return 0 + try: + data = json.loads(raw) + except json.JSONDecodeError: + return 0 + if not isinstance(data, dict): + return 0 + + event = data.get("hook_event_name") or "" + tool_name = data.get("tool_name") or "" + + if event == "UserPromptSubmit": + return _handle_user_prompt_submit(data) + + if event == "PreToolUse": + if tool_name == "Read": + return _handle_pre_tool_use_read(data) + if tool_name == "Bash": + return _handle_pre_tool_use_bash(data) + return 0 + + if event == "PostToolUse": + if tool_name == "Bash": + return _handle_post_tool_use_bash(data) + return 0 + + return 0 + + +if __name__ == "__main__": + sys.exit(run_credential_scanner()) diff --git a/pilot/hooks/hooks.json b/pilot/hooks/hooks.json index 6aa5c159b..c99504cbc 100644 --- a/pilot/hooks/hooks.json +++ b/pilot/hooks/hooks.json @@ -48,6 +48,14 @@ } ] }, + { + "hooks": [ + { + "type": "command", + "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" + } + ] + }, { "hooks": [ { @@ -77,6 +85,15 @@ "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/tool_token_saver.py\"" } ] + }, + { + "matcher": "Read|Bash", + "hooks": [ + { + "type": "command", + "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" + } + ] } ], "PostToolUse": [ @@ -89,6 +106,15 @@ } ] }, + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "command": "uv run --no-project python \"${CLAUDE_PLUGIN_ROOT}/hooks/credential_scanner.py\"" + } + ] + }, { "matcher": "Read|Write|Edit|MultiEdit|Bash|Task|Skill|Grep|Glob", "hooks": [ diff --git a/pilot/hooks/spec_stop_guard.py b/pilot/hooks/spec_stop_guard.py index a345e9b17..f127dbcc4 100644 --- a/pilot/hooks/spec_stop_guard.py +++ b/pilot/hooks/spec_stop_guard.py @@ -6,6 +6,10 @@ 2. Asking user for an important decision (AskUserQuestion tool) 3. No active plan exists (not in /spec mode) 4. User stops again within 60s cooldown (escape hatch) +5. Runaway cap: after MAX_BLOCKS consecutive blocks for the same plan with no + user-question turn in between, emit one escalation block instructing the + agent to AskUserQuestion. The next block-attempt after escalation is + allowed through, breaking pathological infinite verify→implement loops. """ from __future__ import annotations @@ -21,6 +25,7 @@ from _lib.util import _sessions_base, get_session_plan_path, is_waiting_for_user_input, stop_block COOLDOWN_SECONDS = 60 +MAX_BLOCKS = 30 def get_stop_guard_path() -> Path: @@ -66,6 +71,38 @@ def find_active_plan() -> tuple[Path | None, str | None]: return None, None +def _load_state(state_file: Path) -> dict: + """Load stop-guard state. Returns {} on any error or missing file. + + Tolerates the legacy plain-float format from earlier versions. + """ + if not state_file.exists(): + return {} + try: + raw = state_file.read_text().strip() + except OSError: + return {} + if not raw: + return {} + try: + data = json.loads(raw) + if isinstance(data, dict): + return data + except (json.JSONDecodeError, ValueError): + pass + try: + return {"ts": float(raw), "count": 1, "plan": ""} + except ValueError: + return {} + + +def _save_state(state_file: Path, state: dict) -> None: + try: + state_file.write_text(json.dumps(state)) + except OSError: + pass + + def main() -> int: """Check if stopping is allowed based on /spec workflow state.""" try: @@ -80,25 +117,49 @@ def main() -> int: if plan_path is None or status is None: return 0 + state_file = get_stop_guard_path() + state = _load_state(state_file) + + plan_key = str(plan_path) + if state.get("plan") != plan_key: + state = {"ts": 0.0, "count": 0, "plan": plan_key} + transcript_path = input_data.get("transcript_path", "") if transcript_path and is_waiting_for_user_input(transcript_path): + state["count"] = 0 + state["ts"] = 0.0 + _save_state(state_file, state) return 0 now = time.time() - state_file = get_stop_guard_path() - if state_file.exists(): - try: - last_block = float(state_file.read_text().strip()) - if now - last_block < COOLDOWN_SECONDS: - state_file.unlink(missing_ok=True) - return 0 - except (ValueError, OSError): - pass + last_ts = float(state.get("ts") or 0.0) + if last_ts and (now - last_ts) < COOLDOWN_SECONDS: + state_file.unlink(missing_ok=True) + return 0 - try: - state_file.write_text(str(now)) - except OSError: - pass + count = int(state.get("count") or 0) + + if count > MAX_BLOCKS: + state_file.unlink(missing_ok=True) + return 0 + + state["count"] = count + 1 + state["ts"] = now + _save_state(state_file, state) + + if count + 1 > MAX_BLOCKS: + reason = ( + f"RUNAWAY GUARD TRIPPED — {MAX_BLOCKS} consecutive stop-block attempts on plan " + f"{plan_path} (Status: {status}) without a user-question turn in between. " + f"This pattern indicates the agent is stuck in a verify→implement loop and " + f"burning tokens unsupervised. STOP. Your VERY NEXT action MUST be " + f"AskUserQuestion summarising what you were doing, what's blocking, and asking " + f"the user how to proceed (Continue / Pivot / Abandon). Do NOT continue working. " + f"Do NOT make further tool calls before asking. The next stop attempt after this " + f"one will be allowed through to end the runaway." + ) + print(stop_block(reason)) + return 0 reason = ( f"/spec workflow active — cannot stop without user interaction. " diff --git a/pilot/hooks/tests/test_allow_tags.py b/pilot/hooks/tests/test_allow_tags.py new file mode 100644 index 000000000..8784d47ec --- /dev/null +++ b/pilot/hooks/tests/test_allow_tags.py @@ -0,0 +1,238 @@ +"""Tests for _lib.allow_tags — transcript-tail parser + tag application.""" + +from __future__ import annotations + +import json +from pathlib import Path + +import pytest +from _lib.allow_tags import ( + apply_allow_tags, + load_from_transcript, + parse_allow_tags, +) +from _lib.secret_scanner import Finding + + +def _user_text(text: str) -> dict: + return {"type": "user", "message": {"role": "user", "content": text}} + + +def _user_blocks(blocks: list[dict]) -> dict: + return {"type": "user", "message": {"role": "user", "content": blocks}} + + +def _assistant(text: str) -> dict: + return {"type": "assistant", "message": {"role": "assistant", "content": text}} + + +def _tool_result_block(content: str) -> dict: + return {"type": "tool_result", "content": content} + + +def _text_block(text: str) -> dict: + return {"type": "text", "text": text} + + +def _write_jsonl(path: Path, records: list[dict]) -> None: + with path.open("w") as f: + for r in records: + f.write(json.dumps(r) + "\n") + + +def _make_finding(rule_id: str = "aws-access-key", value: str = "AKIAIOSFODNN7EXAMPLE") -> Finding: + return Finding( + rule_id=rule_id, + description="AWS Access Key ID", + match_redacted="AKIA****MPLE", + secret_value=value, + ) + + +class TestParseAllowTags: + def test_no_tag(self): + assert parse_allow_tags("hello") == set() + + def test_allow_secret(self): + assert parse_allow_tags("[allow-secret] my key") == {"secret"} + + def test_allow_all(self): + assert parse_allow_tags("[allow-all] anything") == {"all"} + + def test_case_insensitive(self): + assert parse_allow_tags("[Allow-All]") == {"all"} + assert parse_allow_tags("[ALLOW-SECRET]") == {"secret"} + + def test_multiple_tags(self): + assert parse_allow_tags("[allow-secret] [allow-all] x") == {"secret", "all"} + + def test_lowercase_stored(self): + # Source case is preserved in input but stored lowercased + assert parse_allow_tags("[allow-SECRET]") == {"secret"} + + +class TestLoadFromTranscript: + def test_missing_file(self, tmp_path: Path): + assert load_from_transcript(str(tmp_path / "nope.jsonl")) == set() + + def test_empty_file(self, tmp_path: Path): + p = tmp_path / "empty.jsonl" + p.write_text("") + assert load_from_transcript(str(p)) == set() + + def test_one_user_text_with_tag(self, tmp_path: Path): + p = tmp_path / "t.jsonl" + _write_jsonl(p, [_user_text("[allow-secret] please")]) + assert load_from_transcript(str(p)) == {"secret"} + + def test_consumed_by_subsequent_tool_result_record(self, tmp_path: Path): + """A user-role record with ONLY a tool_result block (no text block) is a + SUBSEQUENT JSONL record and consumes the tag. + + Authoritative reference: sensitive-canary/src/pre-tool-use-hook.ts:75-96. + """ + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("[allow-secret] please"), + _user_blocks([_tool_result_block("ok")]), + ], + ) + assert load_from_transcript(str(p)) == set() + + def test_assistant_record_does_not_consume(self, tmp_path: Path): + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("[allow-secret] please"), + _assistant("ack"), + ], + ) + assert load_from_transcript(str(p)) == {"secret"} + + def test_later_user_text_replaces(self, tmp_path: Path): + """Most recent user text message is the source of truth.""" + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("no tag"), + _user_text("[allow-secret] now I want it"), + ], + ) + assert load_from_transcript(str(p)) == {"secret"} + + def test_later_user_text_without_tag_replaces(self, tmp_path: Path): + """Tag from earlier message is gone if later user text doesn't have it.""" + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("[allow-secret] earlier"), + _user_text("just a follow-up"), + ], + ) + assert load_from_transcript(str(p)) == set() + + def test_malformed_lines_skipped(self, tmp_path: Path): + p = tmp_path / "t.jsonl" + with p.open("w") as f: + f.write("not json\n") + f.write(json.dumps(_user_text("[allow-all] hi")) + "\n") + f.write("garbage{}{}\n") + assert load_from_transcript(str(p)) == {"all"} + + def test_only_last_64kb_read(self, tmp_path: Path): + """File > 64 KB: only the tail is parsed.""" + p = tmp_path / "big.jsonl" + with p.open("w") as f: + # Pad with 100 KB of garbage user-text records (no tag) + for _ in range(2000): + f.write(json.dumps(_user_text("x" * 50)) + "\n") + # Append a tagged user message at the very end + f.write(json.dumps(_user_text("[allow-secret] tail")) + "\n") + # Tag in the tail must be visible; padding records are far past the cutoff + assert load_from_transcript(str(p)) == {"secret"} + + def test_post_tool_use_keeps_last_tool_result_unconsumed(self, tmp_path: Path): + """When for_post_tool_use=True, the LAST tool_result record is treated as + the call that triggered THIS hook — the tag is NOT yet consumed. + + This addresses the timing edge case where Claude Code may have appended + the just-completed tool_result to the transcript before firing PostToolUse. + """ + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("[allow-secret] please"), + _user_blocks([_tool_result_block("output")]), + ], + ) + # PreToolUse semantics: tag consumed + assert load_from_transcript(str(p)) == set() + # PostToolUse semantics: tag still valid + assert load_from_transcript(str(p), for_post_tool_use=True) == {"secret"} + + def test_post_tool_use_with_two_subsequent_tool_results_still_consumed(self, tmp_path: Path): + """Even in PostToolUse mode, MORE than one tool_result after the last text + means earlier tool calls already consumed the tag — only the LAST one is + the call that triggered this hook, but a non-last one already used it up. + """ + p = tmp_path / "t.jsonl" + _write_jsonl( + p, + [ + _user_text("[allow-secret] please"), + _user_blocks([_tool_result_block("call1")]), + _user_blocks([_tool_result_block("call2")]), + ], + ) + assert load_from_transcript(str(p), for_post_tool_use=True) == set() + + def test_text_block_in_content_array(self, tmp_path: Path): + """User content can be a list with a text block — tag must still parse.""" + p = tmp_path / "t.jsonl" + _write_jsonl(p, [_user_blocks([_text_block("[allow-secret] in block")])]) + assert load_from_transcript(str(p)) == {"secret"} + + +class TestApplyAllowTags: + def test_no_tags_pass_through(self): + f = [_make_finding()] + assert apply_allow_tags(f, set()) == f + + def test_all_drops_everything(self): + f = [_make_finding(), _make_finding(rule_id="github-pat", value="ghp_" + "x" * 36)] + assert apply_allow_tags(f, {"all"}) == [] + + def test_secret_drops_everything(self): + """All findings are secret-category in our port (PII out of scope).""" + f = [_make_finding()] + assert apply_allow_tags(f, {"secret"}) == [] + + def test_dedupes_by_secret_value(self): + """Duplicate secret values are deduped on output.""" + f1 = _make_finding() + f2 = _make_finding() # same value + f3 = _make_finding(rule_id="github-pat", value="ghp_unique") + result = apply_allow_tags([f1, f2, f3], set()) + # f2 deduped; f1 and f3 remain + assert len(result) == 2 + values = {x.secret_value for x in result} + assert values == {"AKIAIOSFODNN7EXAMPLE", "ghp_unique"} + + +@pytest.mark.parametrize( + "tag_input,expected", + [ + ("[allow-secret]", {"secret"}), + ("[allow-all]", {"all"}), + ("[Allow-Secret][ALLOW-ALL]", {"secret", "all"}), + ("nothing here", set()), + ], +) +def test_parse_param(tag_input: str, expected: set[str]): + assert parse_allow_tags(tag_input) == expected diff --git a/pilot/hooks/tests/test_credential_scanner.py b/pilot/hooks/tests/test_credential_scanner.py new file mode 100644 index 000000000..9d9e60ddb --- /dev/null +++ b/pilot/hooks/tests/test_credential_scanner.py @@ -0,0 +1,971 @@ +"""Tests for credential_scanner hook — UserPromptSubmit + PreToolUse(Read|Bash) + PostToolUse(Bash).""" + +from __future__ import annotations + +import json +import os +import subprocess +import sys +from io import StringIO +from pathlib import Path +from unittest.mock import patch + +import credential_scanner +import pytest + +HOOK_PATH = Path(__file__).resolve().parent.parent / "credential_scanner.py" + +AKIA = "AKIAIOSFODNN7EXAMPLE" + + +# ── Test helpers ────────────────────────────────────────────────────────────── + + +def _run(payload: dict) -> tuple[int, str, str]: + """Run the hook in-process. Returns (exit_code, stdout, stderr).""" + stdin = StringIO(json.dumps(payload)) + out = StringIO() + err = StringIO() + with patch("sys.stdin", stdin), patch("sys.stdout", out), patch("sys.stderr", err): + code = credential_scanner.run_credential_scanner() + return code, out.getvalue(), err.getvalue() + + +def _is_pre_deny(stdout: str) -> bool: + try: + d = json.loads(stdout.strip()) + return d.get("permissionDecision") == "deny" + except (json.JSONDecodeError, ValueError): + return False + + +def _is_post_block(stdout: str) -> bool: + try: + d = json.loads(stdout.strip()) + return d.get("decision") == "block" + except (json.JSONDecodeError, ValueError): + return False + + +def _deny_reason(stdout: str) -> str: + try: + return json.loads(stdout.strip()).get("reason", "") + except (json.JSONDecodeError, ValueError): + return "" + + +def _make_transcript(tmp_path: Path, user_text: str | None = None) -> str: + """Write a JSONL transcript with one user-text record (or empty file).""" + p = tmp_path / "transcript.jsonl" + if user_text is not None: + rec = {"type": "user", "message": {"role": "user", "content": user_text}} + p.write_text(json.dumps(rec) + "\n") + else: + p.write_text("") + return str(p) + + +# ── Toggle gate ─────────────────────────────────────────────────────────────── + + +class TestToggle: + def test_toggle_off_skips_user_prompt(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") + code, out, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) + assert code == 0 + assert out == "" + + def test_toggle_off_skips_read(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") + f = tmp_path / "secret.yml" + f.write_text(f"key: {AKIA}") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_toggle_off_skips_bash(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": f"echo {AKIA}"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_toggle_default_on(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.delenv("PILOT_CREDENTIAL_SCANNER_ENABLED", raising=False) + code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) + assert code == 2 + + def test_toggle_explicit_true(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) + assert code == 2 + + +# ── UserPromptSubmit ────────────────────────────────────────────────────────── + + +class TestUserPromptSubmit: + def test_secret_blocks(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, err = _run({"hook_event_name": "UserPromptSubmit", "prompt": f"My key {AKIA}"}) + assert code == 2 + assert "aws-access-key" in err + + def test_clean_passes(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": "hello, please help"}) + assert code == 0 + + def test_allow_secret_bypasses(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "UserPromptSubmit", + "prompt": f"[allow-secret] my key {AKIA}", + } + ) + assert code == 0 + + def test_allow_all_bypasses(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "UserPromptSubmit", + "prompt": f"[allow-all] my key {AKIA}", + } + ) + assert code == 0 + + def test_empty_prompt_passes(self, monkeypatch: pytest.MonkeyPatch): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run({"hook_event_name": "UserPromptSubmit", "prompt": ""}) + assert code == 0 + + +# ── PreToolUse(Read) ────────────────────────────────────────────────────────── + + +class TestPreToolUseRead: + def test_dotenv_name_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / ".env" + f.write_text("# innocuous\n") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_pre_deny(out) + assert ".env" in _deny_reason(out) + + def test_dotenv_local_name_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / ".env.local" + f.write_text("# innocuous\n") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_pre_deny(out) + + def test_dotenv_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / ".env" + f.write_text("# innocuous\n") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path, "[allow-secret] read it"), + } + ) + assert code == 0 + + def test_content_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "config.yaml" + f.write_text(f"api_key: {AKIA}\n") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_content_clean_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "ok.yaml" + f.write_text("name: hello\nvalue: world\n") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_missing_file_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Missing file → no findings, hook passes (Read tool will then error on its own).""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(tmp_path / "nope.txt")}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_symlink_to_dotenv_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + target = tmp_path / "actual" / ".env" + target.parent.mkdir() + target.write_text("# innocuous\n") + link = tmp_path / "safe.txt" + link.symlink_to(target) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(link)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_pre_deny(out) + assert ".env" in _deny_reason(out) + + def test_fifo_rejected(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Non-regular files (FIFO) get denied without scanning.""" + if not hasattr(os, "mkfifo"): + pytest.skip("FIFO not supported on this platform") + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + fifo = tmp_path / "pipe" + os.mkfifo(fifo) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(fifo)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "regular file" in _deny_reason(out) + + def test_utf16_le_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "u16.yml" + # UTF-16-LE BOM + content + content = f"api_key: {AKIA}".encode("utf-16-le") + f.write_bytes(b"\xff\xfe" + content) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_utf8_bom_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "u8bom.yml" + f.write_bytes(b"\xef\xbb\xbf" + f"api_key: {AKIA}".encode()) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_oversize_file_passes_quickly(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """File > 1 MB: only 1 MB is scanned. Should pass quickly with no findings.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "big.txt" + f.write_bytes(b"x" * (2 * 1024 * 1024)) # 2 MB of x's + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_binary_with_nul_truncated(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Binary file with NUL byte: scanner reads up to NUL, decodes errors=replace, no crash.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "b.bin" + # No BOM, NUL at byte 5, then bytes — scan only first 5 bytes + f.write_bytes(b"hello\x00\xff\xff\xff" + AKIA.encode()) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Read", + "tool_input": {"file_path": str(f)}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 # AKIA after NUL not scanned + + +# ── PreToolUse(Bash) ────────────────────────────────────────────────────────── + + +class TestPreToolUseBash: + def test_command_text_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": f"echo {AKIA}"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_clean_command_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": "ls -la"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_env_var_with_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + monkeypatch.setenv("AWS_ACCESS_KEY", AKIA) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": "echo $AWS_ACCESS_KEY"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_cat_secrets_file_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "secrets.yaml" + f.write_text(f"api_key: {AKIA}\n") + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": f"cat {f}"}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_allow_tag_in_command_does_not_bypass(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Literal [allow-secret] in command string is NOT honoured (only transcript).""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + f = tmp_path / "secrets.txt" + f.write_text(AKIA) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": f"echo '[allow-secret]' && cat {f}"}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + assert _is_pre_deny(out) + + +class TestPreToolUseBashGitCommit: + """Git commit + chained add+commit detection.""" + + @staticmethod + def _init_repo(repo: Path) -> None: + subprocess.run(["git", "init", "-q"], cwd=repo, check=True) + subprocess.run(["git", "config", "user.email", "test@test"], cwd=repo, check=True) + subprocess.run(["git", "config", "user.name", "test"], cwd=repo, check=True) + subprocess.run(["git", "config", "commit.gpgsign", "false"], cwd=repo, check=True) + + def test_commit_with_clean_diff_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "f.txt").write_text("hello\n") + subprocess.run(["git", "add", "f.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 0 + + def test_commit_with_staged_secret_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(f"key={AKIA}\n") + subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + assert "aws-access-key" in _deny_reason(out) + + def test_commit_no_verify_still_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """--no-verify skips git's own hooks but NOT our PreToolUse hook.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit --no-verify -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_commit_amend_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + # initial commit + (repo / "a.txt").write_text("a\n") + subprocess.run(["git", "add", "a.txt"], cwd=repo, check=True) + subprocess.run(["git", "commit", "-q", "-m", "init"], cwd=repo, check=True) + # stage a secret on top + (repo / "secrets.txt").write_text(AKIA) + subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": "git commit --amend --no-edit"}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_chained_add_commit_blocks_via_file_scan(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """File initially UNSTAGED — chain detection must scan the file directly.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + # Note: NOT staged — chain detection must catch it + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git add secrets.txt && git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + assert _is_pre_deny(out) + + def test_chained_add_dash_a(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """`git add -A`: enumerate via git ls-files.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git add -A && git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_chain_with_cd_redirects_cwd(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """`cd /repo && git add x.txt && git commit -m y` — effective cwd tracking.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + # Hook process cwd is tmp_path (which has no secrets.txt). Effective cwd via cd. + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": { + "command": f'cd {repo} && git add secrets.txt && git commit -m "x"', + }, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + + def test_chained_add_directory_blocks(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Codex finding #1 — `git add ` with secret inside the dir must block.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets_dir").mkdir() + (repo / "secrets_dir" / "key.txt").write_text(AKIA) + # Note: dir is unstaged. Chain detection must walk into the directory. + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git add secrets_dir && git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_no_pager_global_option_does_not_bypass_commit(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Codex finding #2 — `git --no-pager commit` must NOT bypass scanning.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git --no-pager commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_no_pager_chain_does_not_bypass(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """`git add x && git --no-pager commit` — both detection paths must hit.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": { + "command": 'git add secrets.txt && git --no-pager commit -m "x"', + }, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_add_dash_a_does_not_blow_budget_on_clean_tracked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Codex finding #3 — `--cached` was including clean tracked files, + which could exhaust the 1 MB budget before reaching the modified secret-bearing file. + Setup: many large clean tracked files (already committed), plus one small modified + file with the secret. The fix drops `--cached` from enumeration so clean files + are not scanned. + """ + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + # Commit several large, clean files (tracked, no secret) + for i in range(3): + (repo / f"big{i}.txt").write_text("x" * 400_000) # 1.2 MB total + subprocess.run(["git", "add", "."], cwd=repo, check=True) + subprocess.run(["git", "commit", "-q", "-m", "init"], cwd=repo, check=True) + # Now create a modified untracked file containing the secret + (repo / "secrets.txt").write_text(AKIA) + # `git add -A && git commit` should detect the secret — clean tracked files + # MUST NOT exhaust the budget first. + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git add -A && git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_chain_with_spaces_in_cd_path_resolves(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Claude reviewer should_fix #1 — paths with spaces must be tracked.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo_dir = tmp_path / "my repo" + repo_dir.mkdir() + self._init_repo(repo_dir) + (repo_dir / "secrets.txt").write_text(AKIA) + # Quoted path with space → must resolve correctly, not fall back to initial_cwd + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": { + "command": f'cd "{repo_dir}" && git add secrets.txt && git commit -m "x"', + }, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + + def test_chain_with_unresolvable_cd_fails_closed(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """cd to non-existent dir → fail-closed deny.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + bogus = tmp_path / "does_not_exist" + code, out, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": { + "command": f'cd {bogus} && git add secrets.txt && git commit -m "x"', + }, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + assert "unresolvable" in _deny_reason(out).lower() + + def test_git_dash_c_redirects_repo(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """`git -C /repo add file && git -C /repo commit` — -C flag honoured.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": { + "command": f'git -C {repo} add secrets.txt && git -C {repo} commit -m "x"', + }, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 2 + + def test_staged_utf16_blob_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """UTF-16 staged file: patch text doesn't contain raw bytes; blob scan must catch it.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + f = repo / "u16.txt" + f.write_bytes(b"\xff\xfe" + f"key={AKIA}".encode("utf-16-le")) + subprocess.run(["git", "add", "u16.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(repo), + } + ) + assert code == 2 + + def test_commit_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + repo = tmp_path / "repo" + repo.mkdir() + self._init_repo(repo) + (repo / "secrets.txt").write_text(AKIA) + subprocess.run(["git", "add", "secrets.txt"], cwd=repo, check=True) + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path, "[allow-secret] commit it"), + "cwd": str(repo), + } + ) + assert code == 0 + + def test_commit_outside_repo_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Not a git repo → fail open (no commit will happen anyway).""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PreToolUse", + "tool_name": "Bash", + "tool_input": {"command": 'git commit -m "x"'}, + "transcript_path": _make_transcript(tmp_path), + "cwd": str(tmp_path), + } + ) + assert code == 0 + + +# ── Subprocess-mode sanity check ────────────────────────────────────────────── + + +class TestPostToolUseBash: + """Task 8: PostToolUse(Bash) output scanner.""" + + def test_clean_output_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, out, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "ls"}, + "tool_response": {"stdout": "hello world\n", "stderr": "", "interrupted": False}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + assert out == "" + + def test_secret_in_stdout_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, out, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "python -c 'print(...)'"}, + "tool_response": { + "stdout": f'{{"key": "{AKIA}"}}\n', + "stderr": "", + "interrupted": False, + }, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_post_block(out) + assert "aws-access-key" in _deny_reason(out) + + def test_secret_in_stderr_blocked(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, out, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": "", "stderr": f"error: token={AKIA}\n"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_post_block(out) + + def test_allow_tag_in_transcript_bypasses(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": f"key={AKIA}", "stderr": ""}, + "transcript_path": _make_transcript(tmp_path, "[allow-secret] please run it"), + } + ) + assert code == 0 + + def test_oversize_no_secret_blocks_fail_closed(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Codex critical #1 / Claude must_fix #1 — fail-CLOSED on >1 MB.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + big = "x" * (1_500_000) + code, out, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": big, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_post_block(out) + assert "1 MB" in _deny_reason(out) or "scan budget" in _deny_reason(out) + + def test_oversize_byte_count_with_multibyte_chars(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Closes Claude reviewer should_fix #2 — byte length, not char length. + + 700_000 emoji chars = ~2.8 MB of UTF-8 bytes. Should fail-CLOSED on oversize + even though Python str length is well under MAX_SCAN_BYTES. + """ + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + # 700_000 4-byte emojis = 2.8 MB UTF-8, but only 700_000 code points + emoji_blob = "🔐" * 700_000 + code, out, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": emoji_blob, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + assert _is_post_block(out) + # Block should cite the oversize reason (not a finding) + assert "scan budget" in _deny_reason(out) or "1 MB" in _deny_reason(out) + + def test_oversize_with_secret_beyond_window(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + """Secret at byte 1.5M (past the 1 MB scan window) — oversize blocks regardless.""" + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + padding = "x" * 1_500_000 + big = padding + AKIA + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": big, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 2 + + def test_oversize_with_allow_tag_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + big = "x" * 1_500_000 + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": big, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path, "[allow-secret] big output ok"), + } + ) + assert code == 0 + + def test_post_tool_use_non_bash_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Read", + "tool_input": {"file_path": "/tmp/x"}, + "tool_response": {"stdout": AKIA, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_missing_tool_response_passes(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "true") + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + def test_toggle_off_bypasses(self, monkeypatch: pytest.MonkeyPatch, tmp_path: Path): + monkeypatch.setenv("PILOT_CREDENTIAL_SCANNER_ENABLED", "false") + code, _, _ = _run( + { + "hook_event_name": "PostToolUse", + "tool_name": "Bash", + "tool_input": {"command": "x"}, + "tool_response": {"stdout": AKIA, "stderr": ""}, + "transcript_path": _make_transcript(tmp_path), + } + ) + assert code == 0 + + +class TestSubprocess: + def test_subprocess_exits_2_with_deny_json(self, tmp_path: Path): + env = {**os.environ, "PILOT_CREDENTIAL_SCANNER_ENABLED": "true"} + result = subprocess.run( + [sys.executable, str(HOOK_PATH)], + input=json.dumps({"hook_event_name": "UserPromptSubmit", "prompt": f"key {AKIA}"}), + capture_output=True, + text=True, + env=env, + ) + assert result.returncode == 2 + + def test_subprocess_toggle_off_exits_0(self, tmp_path: Path): + env = {**os.environ, "PILOT_CREDENTIAL_SCANNER_ENABLED": "false"} + result = subprocess.run( + [sys.executable, str(HOOK_PATH)], + input=json.dumps({"hook_event_name": "UserPromptSubmit", "prompt": f"key {AKIA}"}), + capture_output=True, + text=True, + env=env, + ) + assert result.returncode == 0 diff --git a/pilot/hooks/tests/test_secret_scanner.py b/pilot/hooks/tests/test_secret_scanner.py new file mode 100644 index 000000000..5cb833a3c --- /dev/null +++ b/pilot/hooks/tests/test_secret_scanner.py @@ -0,0 +1,256 @@ +"""Tests for _lib.secret_scanner — port of sensitive-canary's 24 secret rules.""" + +from __future__ import annotations + +import time + +import pytest +from _lib.secret_scanner import RULES, Finding, entropy, redact, scan + + +class TestEntropy: + def test_repeated_char_zero(self): + assert entropy("aaaaaaaa") == pytest.approx(0.0) + + def test_aws_key_in_band(self): + h = entropy("AKIAIOSFODNN7EXAMPLE") + assert 3.4 <= h <= 4.5 # 20-char near-uniform string + + def test_empty_string(self): + assert entropy("") == pytest.approx(0.0) + + +class TestRedact: + def test_redact_short(self): + assert redact("short") == "****" + + def test_redact_eight(self): + assert redact("12345678") == "****" + + def test_redact_long(self): + assert redact("AKIAIOSFODNN7EXAMPLE") == "AKIA****MPLE" + + def test_redact_nine(self): + # First 4 + **** + last 4 + assert redact("123456789") == "1234****6789" + + +class TestRulesPresent: + """All 24 secret rules must be present (PII rules excluded by design).""" + + EXPECTED_IDS = { + # Cloud + "aws-access-key", + "gcp-api-key", + "private-key", + # SCM + "github-pat", + "github-fine-grained", + "gitlab-pat", + # Package + "npm-token", + # Comm + "slack-token", + "slack-webhook", + "discord-webhook", + "telegram-bot-token", + "twilio-sid", + # Email + "sendgrid-key", + "mailgun-key", + "mailchimp-key", + # Payment + "stripe-secret-key", + "stripe-restricted-key", + # AI + "openai-key", + "openai-project-key", + "anthropic-key", + # Auth + "jwt", + # Generic + "generic-secret", + "env-assignment", + "connection-string", + } + + def test_24_rules(self): + ids = {r.id for r in RULES} + assert ids == self.EXPECTED_IDS, f"missing: {self.EXPECTED_IDS - ids} extra: {ids - self.EXPECTED_IDS}" + + def test_no_pii_rules(self): + """PII rules are intentionally NOT ported (out of scope per plan).""" + ids = {r.id for r in RULES} + forbidden = {"pii-email", "pii-credit-card", "pii-ssn", "pii-phone-us"} + assert ids & forbidden == set() + + +class TestScanPositive: + """Each rule must have at least one positive match.""" + + def test_aws_access_key(self): + f = scan("My AWS key is AKIAIOSFODNN7EXAMPLE") + assert len(f) == 1 + assert f[0].rule_id == "aws-access-key" + assert f[0].match_redacted == "AKIA****MPLE" + assert f[0].secret_value == "AKIAIOSFODNN7EXAMPLE" + + def test_aws_session_token(self): + f = scan("ASIAIOSFODNN7EXAMPLE here") + assert any(x.rule_id == "aws-access-key" for x in f) + + def test_gcp_api_key(self): + f = scan("AIzaSyD-abc123XYZ_qwerty456zxcvbnmasdfg") + assert any(x.rule_id == "gcp-api-key" for x in f) + + def test_pem_private_key(self): + f = scan("-----BEGIN RSA PRIVATE KEY-----") + assert any(x.rule_id == "private-key" for x in f) + f2 = scan("-----BEGIN OPENSSH PRIVATE KEY-----") + assert any(x.rule_id == "private-key" for x in f2) + f3 = scan("-----BEGIN PRIVATE KEY-----") # bare form + assert any(x.rule_id == "private-key" for x in f3) + + def test_github_pat(self): + f = scan("ghp_" + "a" * 36) + assert any(x.rule_id == "github-pat" for x in f) + f2 = scan("ghs_" + "B" * 40) + assert any(x.rule_id == "github-pat" for x in f2) + + def test_github_fine_grained(self): + f = scan("github_pat_" + "a" * 82) + assert any(x.rule_id == "github-fine-grained" for x in f) + + def test_gitlab_pat(self): + f = scan("glpat-AbCdEfGhIjKlMnOpQrSt") # 20 chars + assert any(x.rule_id == "gitlab-pat" for x in f) + + def test_npm_token(self): + f = scan("npm_" + "X" * 36) + assert any(x.rule_id == "npm-token" for x in f) + + def test_slack_token(self): + f = scan("xoxb-1234567890-abcdef") + assert any(x.rule_id == "slack-token" for x in f) + + def test_slack_webhook(self): + url = "https://hooks.slack.com/services/T12345678/B12345678/" + "x" * 24 + f = scan(url) + assert any(x.rule_id == "slack-webhook" for x in f) + + def test_discord_webhook(self): + url = "https://discord.com/api/webhooks/12345678901234567/" + "a" * 68 + f = scan(url) + assert any(x.rule_id == "discord-webhook" for x in f) + + def test_telegram_bot_token(self): + f = scan("123456789:AA" + "x" * 33) + assert any(x.rule_id == "telegram-bot-token" for x in f) + + def test_twilio_sid(self): + f = scan("AC" + "1234567890abcdef" * 2) + assert any(x.rule_id == "twilio-sid" for x in f) + + def test_sendgrid_key(self): + f = scan("SG." + "x" * 22 + "." + "y" * 43) + assert any(x.rule_id == "sendgrid-key" for x in f) + + def test_mailgun_key(self): + f = scan("key-" + "0123456789abcdef" * 2) + assert any(x.rule_id == "mailgun-key" for x in f) + + def test_mailchimp_key(self): + # Source split via string concatenation so GitHub push-protection + # doesn't pattern-match the Mailchimp regex against this synthetic + # fixture; the runtime value is unchanged. + f = scan("0123456789abcdef" * 2 + "-us12") + assert any(x.rule_id == "mailchimp-key" for x in f) + + def test_stripe_secret_key(self): + f = scan("sk_live_" + "abcdefghij" * 2 + "abcd") + assert any(x.rule_id == "stripe-secret-key" for x in f) + f2 = scan("sk_test_" + "1234567890" * 2 + "wxyz") + assert any(x.rule_id == "stripe-secret-key" for x in f2) + + def test_stripe_restricted_key(self): + f = scan("rk_live_" + "abcdefghij" * 2 + "abcd") + assert any(x.rule_id == "stripe-restricted-key" for x in f) + + def test_openai_legacy_key(self): + f = scan("sk-" + "X" * 48) + assert any(x.rule_id == "openai-key" for x in f) + + def test_openai_project_key(self): + # Needs entropy >= 3.5 + f = scan("sk-proj-Abcd1234EfGh5678IjKl9012MnOp3456QrSt7890") + assert any(x.rule_id == "openai-project-key" for x in f) + + def test_anthropic_key(self): + f = scan("sk-ant-" + "AbCdEfGhIjKlMnOpQrStUvWxYz1234567890" * 2 + "ABCDEFGHIJKLMNOPQRSTUVW") + assert any(x.rule_id == "anthropic-key" for x in f) + + def test_jwt(self): + f = scan("eyJhbGciOiJIUzI1NiIs.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c") + assert any(x.rule_id == "jwt" for x in f) + + def test_generic_secret(self): + f = scan("api_key: 'Abcd1234EfGh5678IjKl9012MnOp3456'") + assert any(x.rule_id == "generic-secret" for x in f) + + def test_env_assignment_high_entropy(self): + f = scan("API_KEY=Z9k2p1J4mNqLwR8tH6vBxDcEgFsX5yU0a") + assert any(x.rule_id == "env-assignment" for x in f) + + def test_env_assignment_low_entropy_skipped(self): + f = scan("API_KEY=hunter2") + # entropy < 3.0 OR length < 8 → no env-assignment finding + assert not any(x.rule_id == "env-assignment" for x in f) + + def test_connection_string(self): + f = scan("postgres://user:pass@host:5432/db") + assert any(x.rule_id == "connection-string" for x in f) + f2 = scan("mongodb://u:p@host/db") + assert any(x.rule_id == "connection-string" for x in f2) + + +class TestScanNegative: + """Patterns that must NOT match (false-positive guards).""" + + def test_random_text(self): + assert scan("hello world") == [] + + def test_empty(self): + assert scan("") == [] + + def test_low_entropy_generic_secret(self): + # Below entropy threshold of 3.5 + f = scan("api_key: 'aaaaaaaaaaaaaaaaaaaaaa'") + assert not any(x.rule_id == "generic-secret" for x in f) + + def test_short_aws_prefix_no_false_match(self): + # AKIA prefix without 16 trailing alphanumerics + assert scan("AKIA short") == [] + + +class TestPerformance: + def test_100kb_under_50ms(self): + # Mostly random text, a few real secrets sprinkled in + text = "lorem ipsum dolor sit amet " * 4000 # ~100 KB + text += "AKIAIOSFODNN7EXAMPLE" + start = time.monotonic() + findings = scan(text) + elapsed_ms = (time.monotonic() - start) * 1000 + assert elapsed_ms < 50, f"scan took {elapsed_ms:.1f}ms, budget is 50ms" + assert any(x.rule_id == "aws-access-key" for x in findings) + + +class TestFindingShape: + def test_finding_is_dataclass_with_fields(self): + f = scan("My AWS key is AKIAIOSFODNN7EXAMPLE") + assert len(f) == 1 + finding = f[0] + assert isinstance(finding, Finding) + assert finding.rule_id == "aws-access-key" + assert finding.description == "AWS Access Key ID" + assert finding.match_redacted == "AKIA****MPLE" + assert finding.secret_value == "AKIAIOSFODNN7EXAMPLE" diff --git a/pilot/hooks/tests/test_spec_stop_guard.py b/pilot/hooks/tests/test_spec_stop_guard.py index 13e4c41f0..8cf440cc0 100644 --- a/pilot/hooks/tests/test_spec_stop_guard.py +++ b/pilot/hooks/tests/test_spec_stop_guard.py @@ -349,6 +349,121 @@ def test_cooldown_resets_after_escape(self, tmp_path: Path) -> None: assert _is_blocked(stdout3) +class TestRunawayCap: + """Tests for the MAX_BLOCKS runaway cap — prevents unbounded stop-block loops.""" + + def test_emits_escalation_at_max_blocks(self, tmp_path: Path) -> None: + from spec_stop_guard import MAX_BLOCKS + + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + plan_file = plans_dir / "2026-01-27-runaway.md" + plan_file.write_text("# Runaway Plan\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_file, "PENDING") + + last_stdout = "" + for i in range(MAX_BLOCKS): + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert exit_code == 0 + assert _is_blocked(stdout), f"iteration {i}: should still block before cap" + last_stdout = stdout + _bump_state_timestamp(plan_file) + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert exit_code == 0 + assert _is_blocked(stdout), "MAX_BLOCKS-th call should still block, but with escalation message" + assert "RUNAWAY" in stdout or "runaway" in stdout + assert "AskUserQuestion" in stdout + assert "AskUserQuestion" not in last_stdout, "escalation message must only appear at the cap" + + def test_allows_stop_after_escalation(self, tmp_path: Path) -> None: + from spec_stop_guard import MAX_BLOCKS + + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + plan_file = plans_dir / "2026-01-27-runaway.md" + plan_file.write_text("# Runaway\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_file, "PENDING") + + for _ in range(MAX_BLOCKS + 1): + _run_subprocess({"stop_hook_active": False}, plans_dir) + _bump_state_timestamp(plan_file) + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert exit_code == 0 + assert not _is_blocked(stdout), "after one escalation, next call must allow stop" + + def test_ask_user_question_resets_counter(self, tmp_path: Path) -> None: + from spec_stop_guard import MAX_BLOCKS + + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + plan_file = plans_dir / "2026-01-27-aq.md" + plan_file.write_text("# AQ\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_file, "PENDING") + + for _ in range(MAX_BLOCKS - 1): + _run_subprocess({"stop_hook_active": False}, plans_dir) + _bump_state_timestamp(plan_file) + + transcript_file = tmp_path / "session.jsonl" + assistant_msg = { + "type": "assistant", + "message": {"content": [{"type": "tool_use", "name": "AskUserQuestion", "input": {"question": "?"}}]}, + } + transcript_file.write_text(json.dumps(assistant_msg) + "\n") + exit_code, stdout, _ = _run_subprocess( + {"stop_hook_active": False, "transcript_path": str(transcript_file)}, + plans_dir, + ) + assert exit_code == 0 + assert not _is_blocked(stdout), "AskUserQuestion turn must be allowed (existing rule)" + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert _is_blocked(stdout) + assert "RUNAWAY" not in stdout and "runaway" not in stdout, ( + "counter should reset after AskUserQuestion — no escalation on the next block" + ) + + def test_plan_change_resets_counter(self, tmp_path: Path) -> None: + from spec_stop_guard import MAX_BLOCKS + + plans_dir = tmp_path / "docs" / "plans" + plans_dir.mkdir(parents=True) + + plan_a = plans_dir / "2026-01-27-plan-a.md" + plan_a.write_text("# A\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_a, "PENDING") + + for _ in range(MAX_BLOCKS - 1): + _run_subprocess({"stop_hook_active": False}, plans_dir) + _bump_state_timestamp(plan_a) + + plan_b = plans_dir / "2026-01-27-plan-b.md" + plan_b.write_text("# B\n\nStatus: PENDING\nApproved: Yes\n") + _register_plan_for_session(plan_b, "PENDING") + + exit_code, stdout, _ = _run_subprocess({"stop_hook_active": False}, plans_dir) + assert _is_blocked(stdout) + assert "RUNAWAY" not in stdout and "runaway" not in stdout, ( + "switching to a different plan must reset the counter — no escalation on first block" + ) + + +def _bump_state_timestamp(plan_file: Path) -> None: + """Rewind the stop-guard state's timestamp so the next call doesn't escape via the 60s cooldown.""" + state_file = _test_session_dir() / "spec-stop-guard" + if not state_file.exists(): + return + try: + raw = state_file.read_text().strip() + data = json.loads(raw) + except (json.JSONDecodeError, ValueError): + return + data["ts"] = 0.0 + state_file.write_text(json.dumps(data)) + + class TestSessionScopedPlanDetection: """Tests that find_active_plan() uses session-scoped active_plan.json.""" diff --git a/pilot/rules/development-practices.md b/pilot/rules/development-practices.md index afbffdf0d..c25b5895c 100644 --- a/pilot/rules/development-practices.md +++ b/pilot/rules/development-practices.md @@ -96,5 +96,7 @@ Ghost constraints are the highest-value to find — they lock out options nobody - **⛔ Never `git add -f`** — if gitignored, tell the user. - **⛔ Never selectively unstage** — commit all staged changes as-is. - **⛔ Always `git push -u` on new branches** so the local branch tracks the correct remote. +- **⛔ Respect the active branch. Never auto-branch.** Work on whatever branch the user has checked out. Do NOT run `git checkout -b`, do NOT switch branches, do NOT invent branch names (e.g. `/`, `feat/`, `fix/`) unless the user explicitly asks for a new branch in *this* request. Project conventions in `CLAUDE.md` / `AGENTS.md` that mandate a branch-naming pattern do NOT count as a request to create one now — surface the convention and ask. The exception is `/spec` with `Worktree: Yes`, which manages branches in an isolated worktree. - **Read commands always allowed:** `status`, `diff`, `log`, `show`, `branch`. -- **Exceptions:** explicit override ("checkout branch X"), and worktree during `/spec` (`Worktree: Yes`). +- **Exceptions:** explicit override ("checkout branch X", "create a new branch for this"), and worktree during `/spec` (`Worktree: Yes`). +- **Credential leak prevention:** `git commit` (and chained `git add … && git commit …`) is scanned at PreToolUse for staged secrets. See `security-credentials.md` for the rule set, `[allow-secret]` bypass, and toggle. diff --git a/pilot/rules/security-credentials.md b/pilot/rules/security-credentials.md new file mode 100644 index 000000000..af6396952 --- /dev/null +++ b/pilot/rules/security-credentials.md @@ -0,0 +1,73 @@ +# Credential Leak Prevention + +Pilot scans for credentials at four entry points and blocks the operation when secrets are found. The scanner runs as Claude Code hooks; toggle is ON by default. + +## What gets scanned + +| Event | What is scanned | What happens on a match | +|-------|-----------------|-------------------------| +| `UserPromptSubmit` | The submitted prompt text | Stderr block message; prompt is **not delivered** to Claude. Exit 2. | +| `PreToolUse(Read)` | Requested file path (name) + file content (binary-safe, BOM-aware) | Read tool denied. The denied path's basename and resolved-symlink target are both checked. | +| `PreToolUse(Bash)` | Command text, `$VAR`/`${VAR}` env values, `cat`/`head`/`tail`/etc. file targets, `git commit` staged diff + staged blobs, chained `git add … && git commit` files | Bash tool denied. | +| `PostToolUse(Bash)` | Combined `stdout + stderr` (first 1 MB) | Tool result is **dropped** — Claude sees the block reason instead of the secret-containing output. | + +## What gets detected + +24 secret patterns ported from [gitleaks](https://github.com/gitleaks/gitleaks) and [TruffleHog](https://github.com/trufflesecurity/trufflehog), grouped by category: + +| Category | Rules | +|----------|-------| +| Cloud | `aws-access-key`, `gcp-api-key`, `private-key` (PEM/SSH) | +| Source control | `github-pat`, `github-fine-grained`, `gitlab-pat` | +| Package registry | `npm-token` | +| Communication | `slack-token`, `slack-webhook`, `discord-webhook`, `telegram-bot-token`, `twilio-sid` | +| Email | `sendgrid-key`, `mailgun-key`, `mailchimp-key` | +| Payment | `stripe-secret-key`, `stripe-restricted-key` | +| AI | `openai-key`, `openai-project-key`, `anthropic-key` | +| Auth | `jwt` | +| Generic | `generic-secret`, `env-assignment`, `connection-string` | + +Generic patterns use a Shannon-entropy filter (3.0–3.5 bits per character) to suppress matches like `API_KEY=test12345`. + +## `.env` files are name-blocked unconditionally + +Any file whose basename is `.env` or starts with `.env.` (e.g. `.env.local`, `.env.production`) is denied at `PreToolUse(Read)` regardless of content. Symlinks are resolved before the name check — `safe.txt → /tmp/.env` is also blocked. This is intentional — agents do not need to read raw secrets to understand the schema; ask the user which keys are missing instead. + +## Allow tags (per-call bypass) + +Add a tag to your **next user prompt** to bypass the scan for the current turn: + +| Tag | Effect | +|-----|--------| +| `[allow-secret]` | Allow secret findings to pass through | +| `[allow-all]` | Bypass all scanner checks (equivalent here, since PII rules are out of scope) | + +**One-shot semantics.** The tag is honoured for the *first* tool call after the prompt. Subsequent tool calls in the same agent turn are re-blocked unless you re-tag in a new prompt. Tags in **assistant** messages or in the bash **command string** are NOT honoured (prompt-injection defense). + +The block message always shows the exact tag to add and a sample retry phrasing. + +## Toggle + +Console Settings → Security → Credential Scanner. Default ON. + +Disabling skips all scans across all four entry points. The hook subprocess reads `PILOT_CREDENTIAL_SCANNER_ENABLED`, which is exported by the launcher from `~/.pilot/config.json` (`securityScanner.credentialScanner` field). Restart Claude Code after toggling. + +## Out of scope (Batch 1) + +- **PII detection** (emails, SSN, phones, credit cards, IPs) — sensitive-canary's PII rules and Luhn validator are intentionally NOT ported. +- **`PostToolUse(Grep)`/`(Glob)` output scanning** — Read tool covers underlying file content; deferred follow-up. +- **`Edit`/`Write`/`MultiEdit` pre-flight scanning** — once Claude has the secret in context, blocking the file write doesn't unleak it. +- **`git push` unpushed-range scanning** — commit-time staged-diff scan is the chosen choke point. +- **Subagent / MCP tool outputs** — out of scope; deferred. + +## Why it matters + +Credential leaks via AI agents have two distinct surfaces. **Context leak**: a secret read into the session ends up in transcripts, summaries, search indexes, and any tool calls the agent makes thereafter — scrubbing them after the fact is unreliable. **Commit leak**: a secret committed to git, even briefly, must be treated as compromised — git history is durable, mirrors are everywhere, and rotation is the only fix. + +The scanner closes both surfaces with a single hook entry, fail-closed defaults, and a documented bypass for legitimate cases (e.g., reading your own `.env` to verify content during local dev). False-positive cost is bounded — one tag, one prompt — while the worst-case cost of a real leak is hours of credential rotation, key-rotation cascades, and audit-log review. + +## See also + +- `development-practices.md` § Git Operations — commit-time scanning interacts with the user-approval rules for `git add` / `git commit`. +- `pilot/hooks/_lib/secret_scanner.py` — the 24-rule definition (port of `sensitive-canary/src/lib/rules.ts`). +- `pilot/hooks/credential_scanner.py` — hook entry point. diff --git a/pilot/scripts/mcp-server.cjs b/pilot/scripts/mcp-server.cjs index d61279c53..389f47fc2 100755 --- a/pilot/scripts/mcp-server.cjs +++ b/pilot/scripts/mcp-server.cjs @@ -41,7 +41,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=` path: iss.path ? [${mt(b)}, ...iss.path] : [${mt(b)}] })));`),p.write(`newResult[${mt(b)}] = ${$}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let v=p.compile();return(b,$)=>v(d,b,$)},n,s=Pt,i=!no.jitless,c=i&&jn.value,u=e.catchall,l;t._zod.parse=(d,p)=>{l??(l=r.value);let m=d.value;if(!s(m))return d.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),d;let g=[];if(i&&c&&p?.async===!1&&p.jitless!==!0)n||(n=o(e.shape)),d=n(d,p);else{d.value={};let $=l.shape;for(let E of l.keys){let T=$[E],he=T._zod.run({value:m[E],issues:[]},p),ze=T._zod.optin==="optional"&&T._zod.optout==="optional";he instanceof Promise?g.push(he.then(Tt=>ze?Zc(Tt,d,E,m):po(Tt,d,E))):ze?Zc(he,d,E,m):po(he,d,E)}}if(!u)return g.length?Promise.all(g).then(()=>d):d;let _=[],y=l.keySet,v=u._zod,b=v.def.type;for(let $ of Object.keys(m)){if(y.has($))continue;if(b==="never"){_.push($);continue}let E=v.run({value:m[$],issues:[]},p);E instanceof Promise?g.push(E.then(T=>po(T,d,$))):po(E,d,$)}return _.length&&d.issues.push({code:"unrecognized_keys",keys:_,input:m,inst:t}),g.length?Promise.all(g).then(()=>d):d}});function Mc(t,e,r,o){for(let n of t)if(n.issues.length===0)return e.value=n.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(n=>n.issues.map(s=>Ne(s,o,Ee())))}),e}var Qn=h("$ZodUnion",(t,e)=>{K.init(t,e),H(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),H(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),H(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),H(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${r.map(o=>sr(o.source)).join("|")})$`)}}),t._zod.parse=(r,o)=>{let n=!1,s=[];for(let i of e.options){let a=i._zod.run({value:r.value,issues:[]},o);if(a instanceof Promise)s.push(a),n=!0;else{if(a.issues.length===0)return a;s.push(a)}}return n?Promise.all(s).then(i=>Mc(i,r,t,o)):Mc(s,r,t,o)}}),xu=h("$ZodDiscriminatedUnion",(t,e)=>{Qn.init(t,e);let r=t._zod.parse;H(t._zod,"propValues",()=>{let n={};for(let s of e.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(s)}"`);for(let[a,c]of Object.entries(i)){n[a]||(n[a]=new Set);for(let u of c)n[a].add(u)}}return n});let o=or(()=>{let n=e.options,s=new Map;for(let i of n){let a=i._zod.propValues[e.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let c of a){if(s.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);s.set(c,i)}}return s});t._zod.parse=(n,s)=>{let i=n.value;if(!Pt(i))return n.issues.push({code:"invalid_type",expected:"object",input:i,inst:t}),n;let a=o.value.get(i?.[e.discriminator]);return a?a._zod.run(n,s):e.unionFallback?r(n,s):(n.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:i,path:[e.discriminator],inst:t}),n)}}),zu=h("$ZodIntersection",(t,e)=>{K.init(t,e),t._zod.parse=(r,o)=>{let n=r.value,s=e.left._zod.run({value:n,issues:[]},o),i=e.right._zod.run({value:n,issues:[]},o);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>qc(r,c,u)):qc(r,s,i)}});function Yn(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(Ot(t)&&Ot(e)){let r=Object.keys(e),o=Object.keys(t).filter(s=>r.indexOf(s)!==-1),n={...t,...e};for(let s of o){let i=Yn(t[s],e[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};n[s]=i.data}return{valid:!0,data:n}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let o=0;o{K.init(t,e),t._zod.parse=(r,o)=>{let n=r.value;if(!Ot(n))return r.issues.push({expected:"record",code:"invalid_type",input:n,inst:t}),r;let s=[];if(e.keyType._zod.values){let i=e.keyType._zod.values;r.value={};for(let c of i)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let u=e.valueType._zod.run({value:n[c],issues:[]},o);u instanceof Promise?s.push(u.then(l=>{l.issues.length&&r.issues.push(...qe(c,l.issues)),r.value[c]=l.value})):(u.issues.length&&r.issues.push(...qe(c,u.issues)),r.value[c]=u.value)}let a;for(let c in n)i.has(c)||(a=a??[],a.push(c));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:n,inst:t,keys:a})}else{r.value={};for(let i of Reflect.ownKeys(n)){if(i==="__proto__")continue;let a=e.keyType._zod.run({value:i,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:a.issues.map(u=>Ne(u,o,Ee())),input:i,path:[i],inst:t}),r.value[a.value]=a.value;continue}let c=e.valueType._zod.run({value:n[i],issues:[]},o);c instanceof Promise?s.push(c.then(u=>{u.issues.length&&r.issues.push(...qe(i,u.issues)),r.value[a.value]=u.value})):(c.issues.length&&r.issues.push(...qe(i,c.issues)),r.value[a.value]=c.value)}}return s.length?Promise.all(s).then(()=>r):r}});var ku=h("$ZodEnum",(t,e)=>{K.init(t,e);let r=Cn(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(o=>Zn.has(typeof o)).map(o=>typeof o=="string"?rt(o):o.toString()).join("|")})$`),t._zod.parse=(o,n)=>{let s=o.value;return t._zod.values.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:t}),o}}),Tu=h("$ZodLiteral",(t,e)=>{K.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?rt(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,o)=>{let n=r.value;return t._zod.values.has(n)||r.issues.push({code:"invalid_value",values:e.values,input:n,inst:t}),r}});var Pu=h("$ZodTransform",(t,e)=>{K.init(t,e),t._zod.parse=(r,o)=>{let n=e.transform(r.value,r);if(o.async)return(n instanceof Promise?n:Promise.resolve(n)).then(i=>(r.value=i,r));if(n instanceof Promise)throw new We;return r.value=n,r}}),Ou=h("$ZodOptional",(t,e)=>{K.init(t,e),t._zod.optin="optional",t._zod.optout="optional",H(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),H(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${sr(r.source)})?$`):void 0}),t._zod.parse=(r,o)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,o):r.value===void 0?r:e.innerType._zod.run(r,o)}),Iu=h("$ZodNullable",(t,e)=>{K.init(t,e),H(t._zod,"optin",()=>e.innerType._zod.optin),H(t._zod,"optout",()=>e.innerType._zod.optout),H(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${sr(r.source)}|null)$`):void 0}),H(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,o)=>r.value===null?r:e.innerType._zod.run(r,o)}),Ru=h("$ZodDefault",(t,e)=>{K.init(t,e),t._zod.optin="optional",H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>Uc(s,e)):Uc(n,e)}});function Uc(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var Nu=h("$ZodPrefault",(t,e)=>{K.init(t,e),t._zod.optin="optional",H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,o))}),Cu=h("$ZodNonOptional",(t,e)=>{K.init(t,e),H(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>Fc(s,t)):Fc(n,t)}});function Fc(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var Au=h("$ZodCatch",(t,e)=>{K.init(t,e),t._zod.optin="optional",H(t._zod,"optout",()=>e.innerType._zod.optout),H(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>Ne(i,o,Ee()))},input:r.value}),r.issues=[]),r)):(r.value=n.value,n.issues.length&&(r.value=e.catchValue({...r,error:{issues:n.issues.map(s=>Ne(s,o,Ee()))},input:r.value}),r.issues=[]),r)}});var Du=h("$ZodPipe",(t,e)=>{K.init(t,e),H(t._zod,"values",()=>e.in._zod.values),H(t._zod,"optin",()=>e.in._zod.optin),H(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,o)=>{let n=e.in._zod.run(r,o);return n instanceof Promise?n.then(s=>Vc(s,e,o)):Vc(n,e,o)}});function Vc(t,e,r){return ht(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var Lu=h("$ZodReadonly",(t,e)=>{K.init(t,e),H(t._zod,"propValues",()=>e.innerType._zod.propValues),H(t._zod,"values",()=>e.innerType._zod.values),H(t._zod,"optin",()=>e.innerType._zod.optin),H(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,o)=>{let n=e.innerType._zod.run(r,o);return n instanceof Promise?n.then(Hc):Hc(n)}});function Hc(t){return t.value=Object.freeze(t.value),t}var ju=h("$ZodCustom",(t,e)=>{de.init(t,e),K.init(t,e),t._zod.parse=(r,o)=>r,t._zod.check=r=>{let o=r.value,n=e.fn(o);if(n instanceof Promise)return n.then(s=>Kc(s,r,o,t));Kc(n,r,o,t)}});function Kc(t,e,r,o){if(!t){let n={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(n.params=o._zod.def.params),e.issues.push(Un(n))}}var jm=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Zm=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(o){return t[o]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Invalid input: expected ${o.expected}, received ${jm(o.input)}`;case"invalid_value":return o.values.length===1?`Invalid input: expected ${ao(o.values[0])}`:`Invalid option: expected one of ${so(o.values,"|")}`;case"too_big":{let n=o.inclusive?"<=":"<",s=e(o.origin);return s?`Too big: expected ${o.origin??"value"} to have ${n}${o.maximum.toString()} ${s.unit??"elements"}`:`Too big: expected ${o.origin??"value"} to be ${n}${o.maximum.toString()}`}case"too_small":{let n=o.inclusive?">=":">",s=e(o.origin);return s?`Too small: expected ${o.origin} to have ${n}${o.minimum.toString()} ${s.unit}`:`Too small: expected ${o.origin} to be ${n}${o.minimum.toString()}`}case"invalid_format":{let n=o;return n.format==="starts_with"?`Invalid string: must start with "${n.prefix}"`:n.format==="ends_with"?`Invalid string: must end with "${n.suffix}"`:n.format==="includes"?`Invalid string: must include "${n.includes}"`:n.format==="regex"?`Invalid string: must match pattern ${n.pattern}`:`Invalid ${r[n.format]??o.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${o.divisor}`;case"unrecognized_keys":return`Unrecognized key${o.keys.length>1?"s":""}: ${so(o.keys,", ")}`;case"invalid_key":return`Invalid key in ${o.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${o.origin}`;default:return"Invalid input"}}};function Zu(){return{localeError:Zm()}}var es=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let o=r[0];if(this._map.set(e,o),o&&typeof o=="object"&&"id"in o){if(this._idmap.has(o.id))throw new Error(`ID ${o.id} already exists in the registry`);this._idmap.set(o.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let o={...this.get(r)??{}};return delete o.id,{...o,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function Mm(){return new es}var ur=Mm();function Mu(t,e){return new t({type:"string",...k(e)})}function qu(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...k(e)})}function ts(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...k(e)})}function Uu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...k(e)})}function Fu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...k(e)})}function Vu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...k(e)})}function Hu(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...k(e)})}function Ku(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...k(e)})}function Bu(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...k(e)})}function Gu(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...k(e)})}function Wu(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...k(e)})}function Ju(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...k(e)})}function Yu(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...k(e)})}function Xu(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...k(e)})}function Qu(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...k(e)})}function el(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...k(e)})}function tl(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...k(e)})}function rl(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...k(e)})}function ol(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...k(e)})}function nl(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...k(e)})}function sl(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...k(e)})}function il(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...k(e)})}function al(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...k(e)})}function cl(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...k(e)})}function ul(t,e){return new t({type:"string",format:"date",check:"string_format",...k(e)})}function ll(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...k(e)})}function dl(t,e){return new t({type:"string",format:"duration",check:"string_format",...k(e)})}function pl(t,e){return new t({type:"number",checks:[],...k(e)})}function fl(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...k(e)})}function ml(t,e){return new t({type:"boolean",...k(e)})}function hl(t,e){return new t({type:"null",...k(e)})}function gl(t){return new t({type:"unknown"})}function _l(t,e){return new t({type:"never",...k(e)})}function mo(t,e){return new Wn({check:"less_than",...k(e),value:t,inclusive:!1})}function lr(t,e){return new Wn({check:"less_than",...k(e),value:t,inclusive:!0})}function ho(t,e){return new Jn({check:"greater_than",...k(e),value:t,inclusive:!1})}function dr(t,e){return new Jn({check:"greater_than",...k(e),value:t,inclusive:!0})}function go(t,e){return new xc({check:"multiple_of",...k(e),value:t})}function _o(t,e){return new Ec({check:"max_length",...k(e),maximum:t})}function It(t,e){return new kc({check:"min_length",...k(e),minimum:t})}function yo(t,e){return new Tc({check:"length_equals",...k(e),length:t})}function rs(t,e){return new Pc({check:"string_format",format:"regex",...k(e),pattern:t})}function os(t){return new Oc({check:"string_format",format:"lowercase",...k(t)})}function ns(t){return new Ic({check:"string_format",format:"uppercase",...k(t)})}function ss(t,e){return new Rc({check:"string_format",format:"includes",...k(e),includes:t})}function is(t,e){return new Nc({check:"string_format",format:"starts_with",...k(e),prefix:t})}function as(t,e){return new Cc({check:"string_format",format:"ends_with",...k(e),suffix:t})}function gt(t){return new Ac({check:"overwrite",tx:t})}function cs(t){return gt(e=>e.normalize(t))}function us(){return gt(t=>t.trim())}function ls(){return gt(t=>t.toLowerCase())}function ds(){return gt(t=>t.toUpperCase())}function yl(t,e,r){return new t({type:"array",element:e,...k(r)})}function vl(t,e,r){let o=k(r);return o.abort??(o.abort=!0),new t({type:"custom",check:"custom",fn:e,...o})}function $l(t,e,r){return new t({type:"custom",check:"custom",fn:e,...k(r)})}function Rt(t){return!!t._zod}function ot(t,e){return Rt(t)?ar(t,e):t.safeParse(e)}function vo(t){if(!t)return;let e;if(Rt(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function bl(t){if(Rt(t)){let s=t._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let o=t.value;if(o!==void 0)return o}var fr={};La(fr,{ZodISODate:()=>wl,ZodISODateTime:()=>Sl,ZodISODuration:()=>zl,ZodISOTime:()=>xl,date:()=>fs,datetime:()=>ps,duration:()=>hs,time:()=>ms});var Sl=h("ZodISODateTime",(t,e)=>{nu.init(t,e),X.init(t,e)});function ps(t){return cl(Sl,t)}var wl=h("ZodISODate",(t,e)=>{su.init(t,e),X.init(t,e)});function fs(t){return ul(wl,t)}var xl=h("ZodISOTime",(t,e)=>{iu.init(t,e),X.init(t,e)});function ms(t){return ll(xl,t)}var zl=h("ZodISODuration",(t,e)=>{au.init(t,e),X.init(t,e)});function hs(t){return dl(zl,t)}var El=(t,e)=>{co.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Ha(t,r)},flatten:{value:r=>Va(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},hw=h("ZodError",El),mr=h("ZodError",El,{Parent:Error});var kl=Ka(mr),Tl=Ba(mr),Pl=Vn(mr),Ol=Hn(mr);var te=h("ZodType",(t,e)=>(K.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),t.clone=(r,o)=>Me(t,r,o),t.brand=()=>t,t.register=((r,o)=>(r.add(t,o),t)),t.parse=(r,o)=>kl(t,r,o,{callee:t.parse}),t.safeParse=(r,o)=>Pl(t,r,o),t.parseAsync=async(r,o)=>Tl(t,r,o,{callee:t.parseAsync}),t.safeParseAsync=async(r,o)=>Ol(t,r,o),t.spa=t.safeParseAsync,t.refine=(r,o)=>t.check(Lh(r,o)),t.superRefine=r=>t.check(jh(r)),t.overwrite=r=>t.check(gt(r)),t.optional=()=>ee(t),t.nullable=()=>Nl(t),t.nullish=()=>ee(Nl(t)),t.nonoptional=r=>Oh(t,r),t.array=()=>D(t),t.or=r=>W([t,r]),t.and=r=>bo(t,r),t.transform=r=>_s(t,Zl(r)),t.default=r=>kh(t,r),t.prefault=r=>Ph(t,r),t.catch=r=>Rh(t,r),t.pipe=r=>_s(t,r),t.readonly=()=>Ah(t),t.describe=r=>{let o=t.clone();return ur.add(o,{description:r}),o},Object.defineProperty(t,"description",{get(){return ur.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return ur.get(t);let o=t.clone();return ur.add(o,r[0]),o},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),Cl=h("_ZodString",(t,e)=>{fo.init(t,e),te.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...o)=>t.check(rs(...o)),t.includes=(...o)=>t.check(ss(...o)),t.startsWith=(...o)=>t.check(is(...o)),t.endsWith=(...o)=>t.check(as(...o)),t.min=(...o)=>t.check(It(...o)),t.max=(...o)=>t.check(_o(...o)),t.length=(...o)=>t.check(yo(...o)),t.nonempty=(...o)=>t.check(It(1,...o)),t.lowercase=o=>t.check(os(o)),t.uppercase=o=>t.check(ns(o)),t.trim=()=>t.check(us()),t.normalize=(...o)=>t.check(cs(...o)),t.toLowerCase=()=>t.check(ls()),t.toUpperCase=()=>t.check(ds())}),Wm=h("ZodString",(t,e)=>{fo.init(t,e),Cl.init(t,e),t.email=r=>t.check(qu(Jm,r)),t.url=r=>t.check(Ku(Ym,r)),t.jwt=r=>t.check(al(ph,r)),t.emoji=r=>t.check(Bu(Xm,r)),t.guid=r=>t.check(ts(Il,r)),t.uuid=r=>t.check(Uu($o,r)),t.uuidv4=r=>t.check(Fu($o,r)),t.uuidv6=r=>t.check(Vu($o,r)),t.uuidv7=r=>t.check(Hu($o,r)),t.nanoid=r=>t.check(Gu(Qm,r)),t.guid=r=>t.check(ts(Il,r)),t.cuid=r=>t.check(Wu(eh,r)),t.cuid2=r=>t.check(Ju(th,r)),t.ulid=r=>t.check(Yu(rh,r)),t.base64=r=>t.check(nl(uh,r)),t.base64url=r=>t.check(sl(lh,r)),t.xid=r=>t.check(Xu(oh,r)),t.ksuid=r=>t.check(Qu(nh,r)),t.ipv4=r=>t.check(el(sh,r)),t.ipv6=r=>t.check(tl(ih,r)),t.cidrv4=r=>t.check(rl(ah,r)),t.cidrv6=r=>t.check(ol(ch,r)),t.e164=r=>t.check(il(dh,r)),t.datetime=r=>t.check(ps(r)),t.date=r=>t.check(fs(r)),t.time=r=>t.check(ms(r)),t.duration=r=>t.check(hs(r))});function f(t){return Mu(Wm,t)}var X=h("ZodStringFormat",(t,e)=>{G.init(t,e),Cl.init(t,e)}),Jm=h("ZodEmail",(t,e)=>{Wc.init(t,e),X.init(t,e)});var Il=h("ZodGUID",(t,e)=>{Bc.init(t,e),X.init(t,e)});var $o=h("ZodUUID",(t,e)=>{Gc.init(t,e),X.init(t,e)});var Ym=h("ZodURL",(t,e)=>{Jc.init(t,e),X.init(t,e)});var Xm=h("ZodEmoji",(t,e)=>{Yc.init(t,e),X.init(t,e)});var Qm=h("ZodNanoID",(t,e)=>{Xc.init(t,e),X.init(t,e)});var eh=h("ZodCUID",(t,e)=>{Qc.init(t,e),X.init(t,e)});var th=h("ZodCUID2",(t,e)=>{eu.init(t,e),X.init(t,e)});var rh=h("ZodULID",(t,e)=>{tu.init(t,e),X.init(t,e)});var oh=h("ZodXID",(t,e)=>{ru.init(t,e),X.init(t,e)});var nh=h("ZodKSUID",(t,e)=>{ou.init(t,e),X.init(t,e)});var sh=h("ZodIPv4",(t,e)=>{cu.init(t,e),X.init(t,e)});var ih=h("ZodIPv6",(t,e)=>{uu.init(t,e),X.init(t,e)});var ah=h("ZodCIDRv4",(t,e)=>{lu.init(t,e),X.init(t,e)});var ch=h("ZodCIDRv6",(t,e)=>{du.init(t,e),X.init(t,e)});var uh=h("ZodBase64",(t,e)=>{fu.init(t,e),X.init(t,e)});var lh=h("ZodBase64URL",(t,e)=>{mu.init(t,e),X.init(t,e)});var dh=h("ZodE164",(t,e)=>{hu.init(t,e),X.init(t,e)});var ph=h("ZodJWT",(t,e)=>{gu.init(t,e),X.init(t,e)});var Al=h("ZodNumber",(t,e)=>{Xn.init(t,e),te.init(t,e),t.gt=(o,n)=>t.check(ho(o,n)),t.gte=(o,n)=>t.check(dr(o,n)),t.min=(o,n)=>t.check(dr(o,n)),t.lt=(o,n)=>t.check(mo(o,n)),t.lte=(o,n)=>t.check(lr(o,n)),t.max=(o,n)=>t.check(lr(o,n)),t.int=o=>t.check(Rl(o)),t.safe=o=>t.check(Rl(o)),t.positive=o=>t.check(ho(0,o)),t.nonnegative=o=>t.check(dr(0,o)),t.negative=o=>t.check(mo(0,o)),t.nonpositive=o=>t.check(lr(0,o)),t.multipleOf=(o,n)=>t.check(go(o,n)),t.step=(o,n)=>t.check(go(o,n)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function U(t){return pl(Al,t)}var fh=h("ZodNumberFormat",(t,e)=>{_u.init(t,e),Al.init(t,e)});function Rl(t){return fl(fh,t)}var mh=h("ZodBoolean",(t,e)=>{yu.init(t,e),te.init(t,e)});function ne(t){return ml(mh,t)}var hh=h("ZodNull",(t,e)=>{vu.init(t,e),te.init(t,e)});function Dl(t){return hl(hh,t)}var gh=h("ZodUnknown",(t,e)=>{$u.init(t,e),te.init(t,e)});function Q(){return gl(gh)}var _h=h("ZodNever",(t,e)=>{bu.init(t,e),te.init(t,e)});function yh(t){return _l(_h,t)}var vh=h("ZodArray",(t,e)=>{Su.init(t,e),te.init(t,e),t.element=e.element,t.min=(r,o)=>t.check(It(r,o)),t.nonempty=r=>t.check(It(1,r)),t.max=(r,o)=>t.check(_o(r,o)),t.length=(r,o)=>t.check(yo(r,o)),t.unwrap=()=>t.element});function D(t,e){return yl(vh,t,e)}var Ll=h("ZodObject",(t,e)=>{wu.init(t,e),te.init(t,e),q.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>ve(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:Q()}),t.loose=()=>t.clone({...t._zod.def,catchall:Q()}),t.strict=()=>t.clone({...t._zod.def,catchall:yh()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>q.extend(t,r),t.merge=r=>q.merge(t,r),t.pick=r=>q.pick(t,r),t.omit=r=>q.omit(t,r),t.partial=(...r)=>q.partial(Ml,t,r[0]),t.required=(...r)=>q.required(ql,t,r[0])});function w(t,e){let r={type:"object",get shape(){return q.assignProp(this,"shape",{...t}),this.shape},...q.normalizeParams(e)};return new Ll(r)}function ge(t,e){return new Ll({type:"object",get shape(){return q.assignProp(this,"shape",{...t}),this.shape},catchall:Q(),...q.normalizeParams(e)})}var jl=h("ZodUnion",(t,e)=>{Qn.init(t,e),te.init(t,e),t.options=e.options});function W(t,e){return new jl({type:"union",options:t,...q.normalizeParams(e)})}var $h=h("ZodDiscriminatedUnion",(t,e)=>{jl.init(t,e),xu.init(t,e)});function ys(t,e,r){return new $h({type:"union",options:e,discriminator:t,...q.normalizeParams(r)})}var bh=h("ZodIntersection",(t,e)=>{zu.init(t,e),te.init(t,e)});function bo(t,e){return new bh({type:"intersection",left:t,right:e})}var Sh=h("ZodRecord",(t,e)=>{Eu.init(t,e),te.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function B(t,e,r){return new Sh({type:"record",keyType:t,valueType:e,...q.normalizeParams(r)})}var gs=h("ZodEnum",(t,e)=>{ku.init(t,e),te.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(o,n)=>{let s={};for(let i of o)if(r.has(i))s[i]=e.entries[i];else throw new Error(`Key ${i} not found in enum`);return new gs({...e,checks:[],...q.normalizeParams(n),entries:s})},t.exclude=(o,n)=>{let s={...e.entries};for(let i of o)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new gs({...e,checks:[],...q.normalizeParams(n),entries:s})}});function ve(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new gs({type:"enum",entries:r,...q.normalizeParams(e)})}var wh=h("ZodLiteral",(t,e)=>{Tu.init(t,e),te.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function x(t,e){return new wh({type:"literal",values:Array.isArray(t)?t:[t],...q.normalizeParams(e)})}var xh=h("ZodTransform",(t,e)=>{Pu.init(t,e),te.init(t,e),t._zod.parse=(r,o)=>{r.addIssue=s=>{if(typeof s=="string")r.issues.push(q.issue(s,r.value,e));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=t),i.continue??(i.continue=!0),r.issues.push(q.issue(i))}};let n=e.transform(r.value,r);return n instanceof Promise?n.then(s=>(r.value=s,r)):(r.value=n,r)}});function Zl(t){return new xh({type:"transform",transform:t})}var Ml=h("ZodOptional",(t,e)=>{Ou.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function ee(t){return new Ml({type:"optional",innerType:t})}var zh=h("ZodNullable",(t,e)=>{Iu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Nl(t){return new zh({type:"nullable",innerType:t})}var Eh=h("ZodDefault",(t,e)=>{Ru.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function kh(t,e){return new Eh({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var Th=h("ZodPrefault",(t,e)=>{Nu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Ph(t,e){return new Th({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var ql=h("ZodNonOptional",(t,e)=>{Cu.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Oh(t,e){return new ql({type:"nonoptional",innerType:t,...q.normalizeParams(e)})}var Ih=h("ZodCatch",(t,e)=>{Au.init(t,e),te.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function Rh(t,e){return new Ih({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var Nh=h("ZodPipe",(t,e)=>{Du.init(t,e),te.init(t,e),t.in=e.in,t.out=e.out});function _s(t,e){return new Nh({type:"pipe",in:t,out:e})}var Ch=h("ZodReadonly",(t,e)=>{Lu.init(t,e),te.init(t,e)});function Ah(t){return new Ch({type:"readonly",innerType:t})}var Ul=h("ZodCustom",(t,e)=>{ju.init(t,e),te.init(t,e)});function Dh(t){let e=new de({check:"custom"});return e._zod.check=t,e}function Fl(t,e){return vl(Ul,t??(()=>!0),e)}function Lh(t,e={}){return $l(Ul,t,e)}function jh(t){let e=Dh(r=>(r.addIssue=o=>{if(typeof o=="string")r.issues.push(q.issue(o,r.value,e._zod.def));else{let n=o;n.fatal&&(n.continue=!1),n.code??(n.code="custom"),n.input??(n.input=r.value),n.inst??(n.inst=e),n.continue??(n.continue=!e._zod.def.abort),r.issues.push(q.issue(n))}},t(r.value,r)));return e}function vs(t,e){return _s(Zl(t),e)}Ee(Zu());var bs="2025-11-25";var Vl=[bs,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],nt="io.modelcontextprotocol/related-task",wo="2.0",oe=Fl(t=>t!==null&&(typeof t=="object"||typeof t=="function")),Hl=W([f(),U().int()]),Kl=f(),cx=ge({ttl:U().optional(),pollInterval:U().optional()}),Zh=w({ttl:U().optional()}),Mh=w({taskId:f()}),Ss=ge({progressToken:Hl.optional(),[nt]:Mh.optional()}),xe=w({_meta:Ss.optional()}),hr=xe.extend({task:Zh.optional()}),Bl=t=>hr.safeParse(t).success,ie=w({method:f(),params:xe.loose().optional()}),ke=w({_meta:Ss.optional()}),Te=w({method:f(),params:ke.loose().optional()}),ae=ge({_meta:Ss.optional()}),xo=W([f(),U().int()]),Gl=w({jsonrpc:x(wo),id:xo,...ie.shape}).strict(),ws=t=>Gl.safeParse(t).success,Wl=w({jsonrpc:x(wo),...Te.shape}).strict(),Jl=t=>Wl.safeParse(t).success,xs=w({jsonrpc:x(wo),id:xo,result:ae}).strict(),gr=t=>xs.safeParse(t).success;var A;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(A||(A={}));var zs=w({jsonrpc:x(wo),id:xo.optional(),error:w({code:U().int(),message:f(),data:Q().optional()})}).strict();var Yl=t=>zs.safeParse(t).success;var Xl=W([Gl,Wl,xs,zs]),ux=W([xs,zs]),zo=ae.strict(),qh=ke.extend({requestId:xo.optional(),reason:f().optional()}),Eo=Te.extend({method:x("notifications/cancelled"),params:qh}),Uh=w({src:f(),mimeType:f().optional(),sizes:D(f()).optional(),theme:ve(["light","dark"]).optional()}),_r=w({icons:D(Uh).optional()}),Nt=w({name:f(),title:f().optional()}),Ql=Nt.extend({...Nt.shape,..._r.shape,version:f(),websiteUrl:f().optional(),description:f().optional()}),Fh=bo(w({applyDefaults:ne().optional()}),B(f(),Q())),Vh=vs(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,bo(w({form:Fh.optional(),url:oe.optional()}),B(f(),Q()).optional())),Hh=ge({list:oe.optional(),cancel:oe.optional(),requests:ge({sampling:ge({createMessage:oe.optional()}).optional(),elicitation:ge({create:oe.optional()}).optional()}).optional()}),Kh=ge({list:oe.optional(),cancel:oe.optional(),requests:ge({tools:ge({call:oe.optional()}).optional()}).optional()}),Bh=w({experimental:B(f(),oe).optional(),sampling:w({context:oe.optional(),tools:oe.optional()}).optional(),elicitation:Vh.optional(),roots:w({listChanged:ne().optional()}).optional(),tasks:Hh.optional(),extensions:B(f(),oe).optional()}),Gh=xe.extend({protocolVersion:f(),capabilities:Bh,clientInfo:Ql}),Es=ie.extend({method:x("initialize"),params:Gh});var Wh=w({experimental:B(f(),oe).optional(),logging:oe.optional(),completions:oe.optional(),prompts:w({listChanged:ne().optional()}).optional(),resources:w({subscribe:ne().optional(),listChanged:ne().optional()}).optional(),tools:w({listChanged:ne().optional()}).optional(),tasks:Kh.optional(),extensions:B(f(),oe).optional()}),Jh=ae.extend({protocolVersion:f(),capabilities:Wh,serverInfo:Ql,instructions:f().optional()}),ks=Te.extend({method:x("notifications/initialized"),params:ke.optional()});var ko=ie.extend({method:x("ping"),params:xe.optional()}),Yh=w({progress:U(),total:ee(U()),message:ee(f())}),Xh=w({...ke.shape,...Yh.shape,progressToken:Hl}),To=Te.extend({method:x("notifications/progress"),params:Xh}),Qh=xe.extend({cursor:Kl.optional()}),yr=ie.extend({params:Qh.optional()}),vr=ae.extend({nextCursor:Kl.optional()}),eg=ve(["working","input_required","completed","failed","cancelled"]),$r=w({taskId:f(),status:eg,ttl:W([U(),Dl()]),createdAt:f(),lastUpdatedAt:f(),pollInterval:ee(U()),statusMessage:ee(f())}),Ct=ae.extend({task:$r}),tg=ke.merge($r),br=Te.extend({method:x("notifications/tasks/status"),params:tg}),Po=ie.extend({method:x("tasks/get"),params:xe.extend({taskId:f()})}),Oo=ae.merge($r),Io=ie.extend({method:x("tasks/result"),params:xe.extend({taskId:f()})}),lx=ae.loose(),Ro=yr.extend({method:x("tasks/list")}),No=vr.extend({tasks:D($r)}),Co=ie.extend({method:x("tasks/cancel"),params:xe.extend({taskId:f()})}),ed=ae.merge($r),td=w({uri:f(),mimeType:ee(f()),_meta:B(f(),Q()).optional()}),rd=td.extend({text:f()}),Ts=f().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),od=td.extend({blob:Ts}),Sr=ve(["user","assistant"]),At=w({audience:D(Sr).optional(),priority:U().min(0).max(1).optional(),lastModified:fr.datetime({offset:!0}).optional()}),nd=w({...Nt.shape,..._r.shape,uri:f(),description:ee(f()),mimeType:ee(f()),size:ee(U()),annotations:At.optional(),_meta:ee(ge({}))}),rg=w({...Nt.shape,..._r.shape,uriTemplate:f(),description:ee(f()),mimeType:ee(f()),annotations:At.optional(),_meta:ee(ge({}))}),og=yr.extend({method:x("resources/list")}),ng=vr.extend({resources:D(nd)}),sg=yr.extend({method:x("resources/templates/list")}),ig=vr.extend({resourceTemplates:D(rg)}),Ps=xe.extend({uri:f()}),ag=Ps,cg=ie.extend({method:x("resources/read"),params:ag}),ug=ae.extend({contents:D(W([rd,od]))}),lg=Te.extend({method:x("notifications/resources/list_changed"),params:ke.optional()}),dg=Ps,pg=ie.extend({method:x("resources/subscribe"),params:dg}),fg=Ps,mg=ie.extend({method:x("resources/unsubscribe"),params:fg}),hg=ke.extend({uri:f()}),gg=Te.extend({method:x("notifications/resources/updated"),params:hg}),_g=w({name:f(),description:ee(f()),required:ee(ne())}),yg=w({...Nt.shape,..._r.shape,description:ee(f()),arguments:ee(D(_g)),_meta:ee(ge({}))}),vg=yr.extend({method:x("prompts/list")}),$g=vr.extend({prompts:D(yg)}),bg=xe.extend({name:f(),arguments:B(f(),f()).optional()}),Sg=ie.extend({method:x("prompts/get"),params:bg}),Os=w({type:x("text"),text:f(),annotations:At.optional(),_meta:B(f(),Q()).optional()}),Is=w({type:x("image"),data:Ts,mimeType:f(),annotations:At.optional(),_meta:B(f(),Q()).optional()}),Rs=w({type:x("audio"),data:Ts,mimeType:f(),annotations:At.optional(),_meta:B(f(),Q()).optional()}),wg=w({type:x("tool_use"),name:f(),id:f(),input:B(f(),Q()),_meta:B(f(),Q()).optional()}),xg=w({type:x("resource"),resource:W([rd,od]),annotations:At.optional(),_meta:B(f(),Q()).optional()}),zg=nd.extend({type:x("resource_link")}),Ns=W([Os,Is,Rs,zg,xg]),Eg=w({role:Sr,content:Ns}),kg=ae.extend({description:f().optional(),messages:D(Eg)}),Tg=Te.extend({method:x("notifications/prompts/list_changed"),params:ke.optional()}),Pg=w({title:f().optional(),readOnlyHint:ne().optional(),destructiveHint:ne().optional(),idempotentHint:ne().optional(),openWorldHint:ne().optional()}),Og=w({taskSupport:ve(["required","optional","forbidden"]).optional()}),sd=w({...Nt.shape,..._r.shape,description:f().optional(),inputSchema:w({type:x("object"),properties:B(f(),oe).optional(),required:D(f()).optional()}).catchall(Q()),outputSchema:w({type:x("object"),properties:B(f(),oe).optional(),required:D(f()).optional()}).catchall(Q()).optional(),annotations:Pg.optional(),execution:Og.optional(),_meta:B(f(),Q()).optional()}),Cs=yr.extend({method:x("tools/list")}),Ig=vr.extend({tools:D(sd)}),Ao=ae.extend({content:D(Ns).default([]),structuredContent:B(f(),Q()).optional(),isError:ne().optional()}),dx=Ao.or(ae.extend({toolResult:Q()})),Rg=hr.extend({name:f(),arguments:B(f(),Q()).optional()}),wr=ie.extend({method:x("tools/call"),params:Rg}),Ng=Te.extend({method:x("notifications/tools/list_changed"),params:ke.optional()}),px=w({autoRefresh:ne().default(!0),debounceMs:U().int().nonnegative().default(300)}),xr=ve(["debug","info","notice","warning","error","critical","alert","emergency"]),Cg=xe.extend({level:xr}),As=ie.extend({method:x("logging/setLevel"),params:Cg}),Ag=ke.extend({level:xr,logger:f().optional(),data:Q()}),Dg=Te.extend({method:x("notifications/message"),params:Ag}),Lg=w({name:f().optional()}),jg=w({hints:D(Lg).optional(),costPriority:U().min(0).max(1).optional(),speedPriority:U().min(0).max(1).optional(),intelligencePriority:U().min(0).max(1).optional()}),Zg=w({mode:ve(["auto","required","none"]).optional()}),Mg=w({type:x("tool_result"),toolUseId:f().describe("The unique identifier for the corresponding tool call."),content:D(Ns).default([]),structuredContent:w({}).loose().optional(),isError:ne().optional(),_meta:B(f(),Q()).optional()}),qg=ys("type",[Os,Is,Rs]),So=ys("type",[Os,Is,Rs,wg,Mg]),Ug=w({role:Sr,content:W([So,D(So)]),_meta:B(f(),Q()).optional()}),Fg=hr.extend({messages:D(Ug),modelPreferences:jg.optional(),systemPrompt:f().optional(),includeContext:ve(["none","thisServer","allServers"]).optional(),temperature:U().optional(),maxTokens:U().int(),stopSequences:D(f()).optional(),metadata:oe.optional(),tools:D(sd).optional(),toolChoice:Zg.optional()}),Vg=ie.extend({method:x("sampling/createMessage"),params:Fg}),zr=ae.extend({model:f(),stopReason:ee(ve(["endTurn","stopSequence","maxTokens"]).or(f())),role:Sr,content:qg}),Ds=ae.extend({model:f(),stopReason:ee(ve(["endTurn","stopSequence","maxTokens","toolUse"]).or(f())),role:Sr,content:W([So,D(So)])}),Hg=w({type:x("boolean"),title:f().optional(),description:f().optional(),default:ne().optional()}),Kg=w({type:x("string"),title:f().optional(),description:f().optional(),minLength:U().optional(),maxLength:U().optional(),format:ve(["email","uri","date","date-time"]).optional(),default:f().optional()}),Bg=w({type:ve(["number","integer"]),title:f().optional(),description:f().optional(),minimum:U().optional(),maximum:U().optional(),default:U().optional()}),Gg=w({type:x("string"),title:f().optional(),description:f().optional(),enum:D(f()),default:f().optional()}),Wg=w({type:x("string"),title:f().optional(),description:f().optional(),oneOf:D(w({const:f(),title:f()})),default:f().optional()}),Jg=w({type:x("string"),title:f().optional(),description:f().optional(),enum:D(f()),enumNames:D(f()).optional(),default:f().optional()}),Yg=W([Gg,Wg]),Xg=w({type:x("array"),title:f().optional(),description:f().optional(),minItems:U().optional(),maxItems:U().optional(),items:w({type:x("string"),enum:D(f())}),default:D(f()).optional()}),Qg=w({type:x("array"),title:f().optional(),description:f().optional(),minItems:U().optional(),maxItems:U().optional(),items:w({anyOf:D(w({const:f(),title:f()}))}),default:D(f()).optional()}),e_=W([Xg,Qg]),t_=W([Jg,Yg,e_]),r_=W([t_,Hg,Kg,Bg]),o_=hr.extend({mode:x("form").optional(),message:f(),requestedSchema:w({type:x("object"),properties:B(f(),r_),required:D(f()).optional()})}),n_=hr.extend({mode:x("url"),message:f(),elicitationId:f(),url:f().url()}),s_=W([o_,n_]),i_=ie.extend({method:x("elicitation/create"),params:s_}),a_=ke.extend({elicitationId:f()}),c_=Te.extend({method:x("notifications/elicitation/complete"),params:a_}),Dt=ae.extend({action:ve(["accept","decline","cancel"]),content:vs(t=>t===null?void 0:t,B(f(),W([f(),U(),ne(),D(f())])).optional())}),u_=w({type:x("ref/resource"),uri:f()});var l_=w({type:x("ref/prompt"),name:f()}),d_=xe.extend({ref:W([l_,u_]),argument:w({name:f(),value:f()}),context:w({arguments:B(f(),f()).optional()}).optional()}),p_=ie.extend({method:x("completion/complete"),params:d_});var f_=ae.extend({completion:ge({values:D(f()).max(100),total:ee(U().int()),hasMore:ee(ne())})}),m_=w({uri:f().startsWith("file://"),name:f().optional(),_meta:B(f(),Q()).optional()}),h_=ie.extend({method:x("roots/list"),params:xe.optional()}),Ls=ae.extend({roots:D(m_)}),g_=Te.extend({method:x("notifications/roots/list_changed"),params:ke.optional()}),fx=W([ko,Es,p_,As,Sg,vg,og,sg,cg,pg,mg,wr,Cs,Po,Io,Ro,Co]),mx=W([Eo,To,ks,g_,br]),hx=W([zo,zr,Ds,Dt,Ls,Oo,No,Ct]),gx=W([ko,Vg,i_,h_,Po,Io,Ro,Co]),_x=W([Eo,To,Dg,gg,lg,Ng,Tg,br,c_]),yx=W([zo,Jh,f_,kg,$g,ng,ig,ug,Ao,Ig,Oo,No,Ct]),O=class t extends Error{constructor(e,r,o){super(`MCP error ${e}: ${r}`),this.code=e,this.data=o,this.name="McpError"}static fromError(e,r,o){if(e===A.UrlElicitationRequired&&o){let n=o;if(n.elicitations)return new $s(n.elicitations,r)}return new t(e,r,o)}},$s=class extends O{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(A.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function st(t){return t==="completed"||t==="failed"||t==="cancelled"}var Yx=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function js(t){let r=vo(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let o=bl(r);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function Zs(t,e){let r=ot(t,e);if(!r.success)throw r.error;return r.data}var S_=6e4,Do=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Eo,r=>{this._oncancel(r)}),this.setNotificationHandler(To,r=>{this._onprogress(r)}),this.setRequestHandler(ko,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Po,async(r,o)=>{let n=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!n)throw new O(A.InvalidParams,"Failed to retrieve task: Task not found");return{...n}}),this.setRequestHandler(Io,async(r,o)=>{let n=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,o.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,p=new O(d.error.code,d.error.message,d.error.data);l(p)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:o.requestId})}}let i=await this._taskStore.getTask(s,o.sessionId);if(!i)throw new O(A.InvalidParams,`Task not found: ${s}`);if(!st(i.status))return await this._waitForTaskUpdate(s,o.signal),await n();if(st(i.status)){let a=await this._taskStore.getTaskResult(s,o.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[nt]:{taskId:s}}}}return await n()};return await n()}),this.setRequestHandler(Ro,async(r,o)=>{try{let{tasks:n,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,o.sessionId);return{tasks:n,nextCursor:s,_meta:{}}}catch(n){throw new O(A.InvalidParams,`Failed to list tasks: ${n instanceof Error?n.message:String(n)}`)}}),this.setRequestHandler(Co,async(r,o)=>{try{let n=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!n)throw new O(A.InvalidParams,`Task not found: ${r.params.taskId}`);if(st(n.status))throw new O(A.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,o.sessionId);if(!s)throw new O(A.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(n){throw n instanceof O?n:new O(A.InvalidRequest,`Failed to cancel task: ${n instanceof Error?n.message:String(n)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,o,n,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(n,r),startTime:Date.now(),timeout:r,maxTotalTimeout:o,resetTimeoutOnProgress:s,onTimeout:n})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let o=Date.now()-r.startTime;if(r.maxTotalTimeout&&o>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),O.fromError(A.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:o});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let o=this.transport?.onerror;this._transport.onerror=s=>{o?.(s),this._onerror(s)};let n=this._transport?.onmessage;this._transport.onmessage=(s,i)=>{n?.(s,i),gr(s)||Yl(s)?this._onresponse(s):ws(s)?this._onrequest(s,i):Jl(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let o of this._timeoutInfo.values())clearTimeout(o.timeoutId);this._timeoutInfo.clear();for(let o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();let r=O.fromError(A.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let o of e.values())o(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(e,r){let o=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,n=this._transport,s=e.params?._meta?.[nt]?.taskId;if(o===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:A.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},n?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):n?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let i=new AbortController;this._requestHandlerAbortControllers.set(e.id,i);let a=Bl(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,n?.sessionId):void 0,u={signal:i.signal,sessionId:n?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(i.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(i.signal.aborted)throw new O(A.ConnectionClosed,"Request was cancelled");let m={...p,relatedRequestId:e.id};s&&!m.relatedTask&&(m.relatedTask={taskId:s});let g=m.relatedTask?.taskId??s;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>o(e,u)).then(async l=>{if(i.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)},async l=>{if(i.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:A.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===i&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...o}=e.params,n=Number(r),s=this._progressHandlers.get(n);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let i=this._responseHandlers.get(n),a=this._timeoutInfo.get(n);if(a&&i&&a.resetTimeoutOnProgress)try{this._resetTimeout(n)}catch(c){this._responseHandlers.delete(n),this._progressHandlers.delete(n),this._cleanupTimeout(n),i(c);return}s(o)}_onresponse(e){let r=Number(e.id),o=this._requestResolvers.get(r);if(o){if(this._requestResolvers.delete(r),gr(e))o(e);else{let i=new O(e.error.code,e.error.message,e.error.data);o(i)}return}let n=this._responseHandlers.get(r);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let s=!1;if(gr(e)&&e.result&&typeof e.result=="object"){let i=e.result;if(i.task&&typeof i.task=="object"){let a=i.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),gr(e))n(e);else{let i=O.fromError(e.error.code,e.error.message,e.error.data);n(i)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,o){let{task:n}=o??{};if(!n){try{yield{type:"result",result:await this.request(e,r,o)}}catch(i){yield{type:"error",error:i instanceof O?i:new O(A.InternalError,String(i))}}return}let s;try{let i=await this.request(e,Ct,o);if(i.task)s=i.task.taskId,yield{type:"taskCreated",task:i.task};else throw new O(A.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},o);if(yield{type:"taskStatus",task:a},st(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,o)}:a.status==="failed"?yield{type:"error",error:new O(A.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new O(A.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,o)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),o?.signal?.throwIfAborted()}}catch(i){yield{type:"error",error:i instanceof O?i:new O(A.InternalError,String(i))}}}request(e,r,o){let{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i,task:a,relatedTask:c}=o??{};return new Promise((u,l)=>{let d=b=>{l(b)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(b){d(b);return}o?.signal?.throwIfAborted();let p=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:p};o?.onprogress&&(this._progressHandlers.set(p,o.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),a&&(m.params={...m.params,task:a}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[nt]:c}});let g=b=>{this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(b)}},{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(E=>this._onerror(new Error(`Failed to send cancellation: ${E}`)));let $=b instanceof O?b:new O(A.RequestTimeout,String(b));l($)};this._responseHandlers.set(p,b=>{if(!o?.signal?.aborted){if(b instanceof Error)return l(b);try{let $=ot(r,b.result);$.success?u($.data):l($.error)}catch($){l($)}}}),o?.signal?.addEventListener("abort",()=>{g(o?.signal?.reason)});let _=o?.timeout??S_,y=()=>g(O.fromError(A.RequestTimeout,"Request timed out",{timeout:_}));this._setupTimeout(p,_,o?.maxTotalTimeout,y,o?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let b=$=>{let E=this._responseHandlers.get(p);E?E($):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,b),this._enqueueTaskMessage(v,{type:"request",message:m,timestamp:Date.now()}).catch($=>{this._cleanupTimeout(p),l($)})}else this._transport.send(m,{relatedRequestId:n,resumptionToken:s,onresumptiontoken:i}).catch(b=>{this._cleanupTimeout(p),l(b)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Oo,r)}async getTaskResult(e,r,o){return this.request({method:"tasks/result",params:e},r,o)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},No,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},ed,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let o=r?.relatedTask?.taskId;if(o){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[nt]:r.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[nt]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let i={...e,jsonrpc:"2.0"};r?.relatedTask&&(i={...i,params:{...i.params,_meta:{...i.params?._meta||{},[nt]:r.relatedTask}}}),await this._transport.send(i,r)}setRequestHandler(e,r){let o=js(e);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(n,s)=>{let i=Zs(e,n);return Promise.resolve(r(i,s))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let o=js(e);this._notificationHandlers.set(o,n=>{let s=Zs(e,n);return Promise.resolve(r(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let n=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,o,n)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let o=await this._taskMessageQueue.dequeueAll(e,r);for(let n of o)if(n.type==="request"&&ws(n.message)){let s=n.message.id,i=this._requestResolvers.get(s);i?(i(new O(A.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let o=this._options?.defaultTaskPollInterval??1e3;try{let n=await this._taskStore?.getTask(e);n?.pollInterval&&(o=n.pollInterval)}catch{}return new Promise((n,s)=>{if(r.aborted){s(new O(A.InvalidRequest,"Request cancelled"));return}let i=setTimeout(n,o);r.addEventListener("abort",()=>{clearTimeout(i),s(new O(A.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async n=>{if(!e)throw new Error("No request provided");return await o.createTask(n,e.id,{method:e.method,params:e.params},r)},getTask:async n=>{let s=await o.getTask(n,r);if(!s)throw new O(A.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(n,s,i)=>{await o.storeTaskResult(n,s,i,r);let a=await o.getTask(n,r);if(a){let c=br.parse({method:"notifications/tasks/status",params:a});await this.notification(c),st(a.status)&&this._cleanupTaskProgressHandler(n)}},getTaskResult:n=>o.getTaskResult(n,r),updateTaskStatus:async(n,s,i)=>{let a=await o.getTask(n,r);if(!a)throw new O(A.InvalidParams,`Task "${n}" not found - it may have been cleaned up`);if(st(a.status))throw new O(A.InvalidParams,`Cannot update task "${n}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(n,s,i,r);let c=await o.getTask(n,r);if(c){let u=br.parse({method:"notifications/tasks/status",params:c});await this.notification(u),st(c.status)&&this._cleanupTaskProgressHandler(n)}},listTasks:n=>o.listTasks(n,r)}}};function id(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function ad(t,e){let r={...t};for(let o in e){let n=o,s=e[n];if(s===void 0)continue;let i=r[n];id(i)&&id(s)?r[n]={...i,...s}:r[n]=s}return r}var Gf=oo(xa(),1),Wf=oo(Bf(),1);function fS(){let t=new Gf.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Wf.default)(t),t}var vn=class{constructor(e){this._ajv=e??fS()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return o=>r(o)?{valid:!0,data:o,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var $n=class{constructor(e){this._server=e}requestStream(e,r,o){return this._server.requestStream(e,r,o)}createMessageStream(e,r){let o=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!o?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let n=e.messages[e.messages.length-1],s=Array.isArray(n.content)?n.content:[n.content],i=s.some(l=>l.type==="tool_result"),a=e.messages.length>1?e.messages[e.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],u=c.some(l=>l.type==="tool_use");if(i){if(s.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(p=>p.type==="tool_use").map(p=>p.id)),d=new Set(s.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(l.size!==d.size||![...l].every(p=>d.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:e},zr,r)}elicitInputStream(e,r){let o=this._server.getClientCapabilities(),n=e.mode??"form";switch(n){case"url":{if(!o?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!o?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let s=n==="form"&&e.mode===void 0?{...e,mode:"form"}:e;return this.requestStream({method:"elicitation/create",params:s},Dt,r)}async getTask(e,r){return this._server.getTask({taskId:e},r)}async getTaskResult(e,r,o){return this._server.getTaskResult({taskId:e},r,o)}async listTasks(e,r){return this._server.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._server.cancelTask({taskId:e},r)}};function Jf(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function Yf(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var bn=class extends Do{constructor(e,r){super(r),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(xr.options.map((o,n)=>[o,n])),this.isMessageIgnored=(o,n)=>{let s=this._loggingLevels.get(n);return s?this.LOG_LEVEL_SEVERITY.get(o)this._oninitialize(o)),this.setNotificationHandler(ks,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(As,async(o,n)=>{let s=n.sessionId||n.requestInfo?.headers["mcp-session-id"]||void 0,{level:i}=o.params,a=xr.safeParse(i);return a.success&&this._loggingLevels.set(s,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new $n(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=ad(this._capabilities,e)}setRequestHandler(e,r){let n=vo(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let s;if(Rt(n)){let a=n;s=a._zod?.def?.value??a.value}else{let a=n;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");if(s==="tools/call"){let a=async(c,u)=>{let l=ot(wr,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new O(A.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let g=ot(Ct,p);if(!g.success){let _=g.error instanceof Error?g.error.message:String(g.error);throw new O(A.InvalidParams,`Invalid task creation result: ${_}`)}return g.data}let m=ot(Ao,p);if(!m.success){let g=m.error instanceof Error?m.error.message:String(m.error);throw new O(A.InvalidParams,`Invalid tools/call result: ${g}`)}return m.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){Yf(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&Jf(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let r=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:Vl.includes(r)?r:bs,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},zo)}async createMessage(e,r){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let o=e.messages[e.messages.length-1],n=Array.isArray(o.content)?o.content:[o.content],s=n.some(u=>u.type==="tool_result"),i=e.messages.length>1?e.messages[e.messages.length-2]:void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],c=a.some(u=>u.type==="tool_use");if(s){if(n.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(n.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},Ds,r):this.request({method:"sampling/createMessage",params:e},zr,r)}async elicitInput(e,r){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let n=e;return this.request({method:"elicitation/create",params:n},Dt,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let n=e.mode==="form"?e:{...e,mode:"form"},s=await this.request({method:"elicitation/create",params:n},Dt,r);if(s.action==="accept"&&s.content&&n.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(n.requestedSchema)(s.content);if(!a.valid)throw new O(A.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(i){throw i instanceof O?i:new O(A.InternalError,`Error validating elicitation response: ${i instanceof Error?i.message:String(i)}`)}return s}}}createElicitationCompletionNotifier(e,r){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},r)}async listRoots(e,r){return this.request({method:"roots/list",params:e},Ls,r)}async sendLoggingMessage(e,r){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,r))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var Ra=oo(require("node:process"),1);var Sn=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),mS(r)}clear(){this._buffer=void 0}};function mS(t){return Xl.parse(JSON.parse(t))}function Xf(t){return JSON.stringify(t)+` -`}var wn=class{constructor(e=Ra.default.stdin,r=Ra.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Sn,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let o=Xf(e);this._stdout.write(o)?r():this._stdout.once("drain",r)})}};var Na=oo(require("path"),1);var Ze=require("fs"),xn=require("path"),tm=require("os");var Qf="bugfix,feature,refactor,discovery,decision,change",em="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var kt=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,xn.join)((0,tm.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:Qf,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:em,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,Ze.existsSync)(e)){let c=this.getAllDefaults();try{let u=(0,xn.dirname)(e);(0,Ze.existsSync)(u)||(0,Ze.mkdirSync)(u,{recursive:!0}),(0,Ze.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u)}return c}let r=(0,Ze.readFileSync)(e,"utf-8"),o=JSON.parse(r),n=o;if(o.env&&typeof o.env=="object"){n=o.env;try{(0,Ze.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let s=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],i={...this.DEFAULTS},a=!1;for(let c of Object.keys(this.DEFAULTS))if(n[c]!==void 0)if(s.includes(c)){let u=n[c];typeof u=="string"?(i[c]=u==="true",a=!0):i[c]=u}else i[c]=n[c];if(a)try{(0,Ze.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return i}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}};var zn=null,En=null;function rm(){if(zn!==null)return zn;let t=Na.default.join(kt.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=kt.loadFromFile(t);return zn=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),zn}function om(){if(En!==null)return En;let t=Na.default.join(kt.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return En=kt.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,En}var hS="8.6.0";console.log=(...t)=>{se.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:t})};var gS=rm(),_S=om(),ro=`http://${_S}:${gS}`,nm={search:"/api/search",timeline:"/api/timeline"};async function sm(t,e){se.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:t,params:e});try{let r=new URLSearchParams;for(let[i,a]of Object.entries(e))a!=null&&r.append(i,String(a));let o=`${ro}${t}?${r}`,n=await fetch(o);if(!n.ok){let i=await n.text();throw new Error(`Worker API error (${n.status}): ${i}`)}let s=await n.json();return se.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:t}),s}catch(r){return se.error("SYSTEM","\u2190 Worker API error",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function im(t,e){se.debug("HTTP","Worker API request (POST)",void 0,{endpoint:t});try{let r=`${ro}${t}`,o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){let s=await o.text();throw new Error(`Worker API error (${o.status}): ${s}`)}let n=await o.json();return se.debug("HTTP","Worker API success (POST)",void 0,{endpoint:t}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return se.error("HTTP","Worker API error (POST)",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function yS(){try{return(await fetch(`${ro}/api/health`)).ok}catch(t){return se.debug("SYSTEM","Worker health check failed",{},t),!1}}var am=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): +`}var wn=class{constructor(e=Ra.default.stdin,r=Ra.default.stdout){this._stdin=e,this._stdout=r,this._readBuffer=new Sn,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(r=>{let o=Xf(e);this._stdout.write(o)?r():this._stdout.once("drain",r)})}};var Na=oo(require("path"),1);var Ze=require("fs"),xn=require("path"),tm=require("os");var Qf="bugfix,feature,refactor,discovery,decision,change",em="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off";var kt=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,xn.join)((0,tm.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:Qf,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:em,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,Ze.existsSync)(e)){let c=this.getAllDefaults();try{let u=(0,xn.dirname)(e);(0,Ze.existsSync)(u)||(0,Ze.mkdirSync)(u,{recursive:!0}),(0,Ze.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(u){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,u)}return c}let r=(0,Ze.readFileSync)(e,"utf-8"),o=JSON.parse(r),n=o;if(o.env&&typeof o.env=="object"){n=o.env;try{(0,Ze.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let s=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],i={...this.DEFAULTS},a=!1;for(let c of Object.keys(this.DEFAULTS))if(n[c]!==void 0)if(s.includes(c)){let u=n[c];typeof u=="string"?(i[c]=u==="true",a=!0):i[c]=u}else i[c]=n[c];if(a)try{(0,Ze.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return i}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}};var zn=null,En=null;function rm(){if(zn!==null)return zn;let t=Na.default.join(kt.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=kt.loadFromFile(t);return zn=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),zn}function om(){if(En!==null)return En;let t=Na.default.join(kt.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return En=kt.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,En}var hS="8.6.2";console.log=(...t)=>{se.error("CONSOLE","Intercepted console output (MCP protocol protection)",void 0,{args:t})};var gS=rm(),_S=om(),ro=`http://${_S}:${gS}`,nm={search:"/api/search",timeline:"/api/timeline"};async function sm(t,e){se.debug("SYSTEM","\u2192 Worker API",void 0,{endpoint:t,params:e});try{let r=new URLSearchParams;for(let[i,a]of Object.entries(e))a!=null&&r.append(i,String(a));let o=`${ro}${t}?${r}`,n=await fetch(o);if(!n.ok){let i=await n.text();throw new Error(`Worker API error (${n.status}): ${i}`)}let s=await n.json();return se.debug("SYSTEM","\u2190 Worker API success",void 0,{endpoint:t}),s}catch(r){return se.error("SYSTEM","\u2190 Worker API error",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function im(t,e){se.debug("HTTP","Worker API request (POST)",void 0,{endpoint:t});try{let r=`${ro}${t}`,o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){let s=await o.text();throw new Error(`Worker API error (${o.status}): ${s}`)}let n=await o.json();return se.debug("HTTP","Worker API success (POST)",void 0,{endpoint:t}),{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}catch(r){return se.error("HTTP","Worker API error (POST)",{endpoint:t},r),{content:[{type:"text",text:`Error calling Worker API: ${r instanceof Error?r.message:String(r)}`}],isError:!0}}}async function yS(){try{return(await fetch(`${ro}/api/health`)).ok}catch(t){return se.debug("SYSTEM","Worker health check failed",{},t),!1}}var am=[{name:"__IMPORTANT",description:`3-LAYER WORKFLOW (ALWAYS FOLLOW): 1. search(query) \u2192 Get index with IDs (~50-100 tokens/result) 2. timeline(anchor=ID) \u2192 Get context around interesting results 3. get_observations([IDs]) \u2192 Fetch full details ONLY for filtered IDs diff --git a/pilot/scripts/worker-service.cjs b/pilot/scripts/worker-service.cjs index 4130b105f..f351c9b88 100755 --- a/pilot/scripts/worker-service.cjs +++ b/pilot/scripts/worker-service.cjs @@ -1,12 +1,12 @@ #!/usr/bin/env bun -"use strict";var fG=Object.create;var Rm=Object.defineProperty;var hG=Object.getOwnPropertyDescriptor;var gG=Object.getOwnPropertyNames;var vG=Object.getPrototypeOf,yG=Object.prototype.hasOwnProperty;var xe=(t,e)=>()=>(t&&(e=t(t=0)),e);var P=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ks=(t,e)=>{for(var r in e)Rm(t,r,{get:e[r],enumerable:!0})},oP=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of gG(e))!yG.call(t,s)&&s!==r&&Rm(t,s,{get:()=>e[s],enumerable:!(n=hG(e,s))||n.enumerable});return t};var Y=(t,e,r)=>(r=t!=null?fG(vG(t)):{},oP(e||!t||!t.__esModule?Rm(r,"default",{value:t,enumerable:!0}):r,t)),Dl=t=>oP(Rm({},"__esModule",{value:!0}),t);var cP,lP,uP=xe(()=>{"use strict";cP="bugfix,feature,refactor,discovery,decision,change",lP="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var es,Pm,pP,je,Or=xe(()=>{"use strict";es=require("fs"),Pm=require("path"),pP=require("os");uP();je=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,Pm.join)((0,pP.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:cP,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:lP,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,es.existsSync)(e)){let c=this.getAllDefaults();try{let l=(0,Pm.dirname)(e);(0,es.existsSync)(l)||(0,es.mkdirSync)(l,{recursive:!0}),(0,es.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(l){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,l)}return c}let r=(0,es.readFileSync)(e,"utf-8"),n=JSON.parse(r),s=n;if(n.env&&typeof n.env=="object"){s=n.env;try{(0,es.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let i=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],a={...this.DEFAULTS},o=!1;for(let c of Object.keys(this.DEFAULTS))if(s[c]!==void 0)if(i.includes(c)){let l=s[c];typeof l=="string"?(a[c]=l==="true",o=!0):a[c]=l}else a[c]=s[c];if(o)try{(0,es.writeFileSync)(e,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return a}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}}});var xP={};ks(xP,{ARCHIVES_DIR:()=>Wb,BACKUPS_DIR:()=>vP,CLAUDE_CONFIG_DIR:()=>Ml,CLAUDE_CREDENTIALS_PATH:()=>Zb,CLAUDE_MD_PATH:()=>wG,CLAUDE_SETTINGS_PATH:()=>_G,DATA_DIR:()=>rn,DB_PATH:()=>$l,LOGS_DIR:()=>hP,MARKETPLACE_ROOT:()=>SG,MODES_DIR:()=>yP,PLUGINS_DIR:()=>bP,TRASH_DIR:()=>gP,USER_SETTINGS_PATH:()=>Ht,VECTOR_DB_DIR:()=>Ll,ensureAllDataDirs:()=>EG,ensureDir:()=>ts,getCurrentProjectName:()=>TG,getPackageRoot:()=>Vs,getProjectArchiveDir:()=>kG,getVersion:()=>Im,resolveGitRoot:()=>nn});function bG(){return typeof __dirname<"u"?__dirname:(0,Nt.dirname)((0,fP.fileURLToPath)(RG.url))}function kG(t){return(0,Nt.join)(Wb,t)}function ts(t){(0,bo.mkdirSync)(t,{recursive:!0})}function EG(){ts(rn),ts(Wb),ts(hP),ts(gP),ts(vP),ts(yP)}function nn(t){try{return(0,mP.execSync)("git rev-parse --show-toplevel",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:3e3}).trim()||t}catch{return t}}function TG(){return(0,Nt.basename)(nn(process.cwd()))}function Vs(){return(0,Nt.join)(xG,"..")}function Im(){if(zl)return zl;let t=Vs(),e=[(0,Nt.join)(t,"package.json"),(0,Nt.join)(t,".claude-plugin","plugin.json"),(0,Nt.join)(t,"..","package.json")];for(let r of e)try{if((0,bo.existsSync)(r)){let n=JSON.parse((0,bo.readFileSync)(r,"utf-8"));if(n.version)return zl=n.version,n.version}}catch{}return zl=`0.0.0-${Date.now()}`,zl}var Nt,dP,bo,mP,fP,RG,zl,xG,rn,Ml,Wb,hP,gP,vP,yP,Ht,$l,Ll,_G,wG,Zb,bP,SG,er=xe(()=>{"use strict";Nt=require("path"),dP=require("os"),bo=require("fs"),mP=require("child_process"),fP=require("url");Or();RG={},zl=null;xG=bG(),rn=je.get("CLAUDE_PILOT_DATA_DIR"),Ml=process.env.CLAUDE_CONFIG_DIR||(0,Nt.join)((0,dP.homedir)(),".claude"),Wb=(0,Nt.join)(rn,"archives"),hP=(0,Nt.join)(rn,"logs"),gP=(0,Nt.join)(rn,"trash"),vP=(0,Nt.join)(rn,"backups"),yP=(0,Nt.join)(rn,"modes"),Ht=(0,Nt.join)(rn,"settings.json"),$l=(0,Nt.join)(rn,"pilot-memory.db"),Ll=(0,Nt.join)(rn,"vector-db"),_G=(0,Nt.join)(Ml,"settings.json"),wG=(0,Nt.join)(Ml,"CLAUDE.md"),Zb=(0,Nt.join)(Ml,".credentials.json"),bP=(0,Nt.join)(Ml,"plugins"),SG=(0,Nt.join)(bP,"marketplaces","pilot")});var uu=P(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.regexpCode=Xe.getEsmExportName=Xe.getProperty=Xe.safeStringify=Xe.stringify=Xe.strConcat=Xe.addCodeArg=Xe.str=Xe._=Xe.nil=Xe._Code=Xe.Name=Xe.IDENTIFIER=Xe._CodeOrName=void 0;var cu=class{};Xe._CodeOrName=cu;Xe.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var da=class extends cu{constructor(e){if(super(),!Xe.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Xe.Name=da;var Dn=class extends cu{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof da&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Xe._Code=Dn;Xe.nil=new Dn("");function WO(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.ValueScope=on.ValueScopeName=on.Scope=on.varKinds=on.UsedValueState=void 0;var an=uu(),m_=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},of;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(of||(on.UsedValueState=of={}));on.varKinds={const:new an.Name("const"),let:new an.Name("let"),var:new an.Name("var")};var cf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof an.Name?e:this.name(e)}name(e){return new an.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};on.Scope=cf;var lf=class extends an.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,an._)`.${new an.Name(r)}[${n}]`}};on.ValueScopeName=lf;var zK=(0,an._)`\n`,f_=class extends cf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?zK:an.nil}}get(){return this._scope}name(e){return new lf(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let s=this.toName(e),{prefix:i}=s,a=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[i];if(o){let u=o.get(a);if(u)return u}else o=this._values[i]=new Map;o.set(a,s);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,s.setValue(r,{property:i,itemIndex:l}),s}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,an._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,s=>{if(s.value===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return s.value.code},r,n)}_reduceValues(e,r,n={},s){let i=an.nil;for(let a in e){let o=e[a];if(!o)continue;let c=n[a]=n[a]||new Map;o.forEach(l=>{if(c.has(l))return;c.set(l,of.Started);let u=r(l);if(u){let p=this.opts.es5?on.varKinds.var:on.varKinds.const;i=(0,an._)`${i}${p} ${l} = ${u};${this.opts._n}`}else if(u=s?.(l))i=(0,an._)`${i}${u}${this.opts._n}`;else throw new m_(l);c.set(l,of.Completed)})}return i}};on.ValueScope=f_});var Ae=P(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.or=Ne.and=Ne.not=Ne.CodeGen=Ne.operators=Ne.varKinds=Ne.ValueScopeName=Ne.ValueScope=Ne.Scope=Ne.Name=Ne.regexpCode=Ne.stringify=Ne.getProperty=Ne.nil=Ne.strConcat=Ne.str=Ne._=void 0;var Ge=uu(),ss=h_(),Si=uu();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Si._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Si.str}});Object.defineProperty(Ne,"strConcat",{enumerable:!0,get:function(){return Si.strConcat}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Si.nil}});Object.defineProperty(Ne,"getProperty",{enumerable:!0,get:function(){return Si.getProperty}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Si.stringify}});Object.defineProperty(Ne,"regexpCode",{enumerable:!0,get:function(){return Si.regexpCode}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Si.Name}});var mf=h_();Object.defineProperty(Ne,"Scope",{enumerable:!0,get:function(){return mf.Scope}});Object.defineProperty(Ne,"ValueScope",{enumerable:!0,get:function(){return mf.ValueScope}});Object.defineProperty(Ne,"ValueScopeName",{enumerable:!0,get:function(){return mf.ValueScopeName}});Object.defineProperty(Ne,"varKinds",{enumerable:!0,get:function(){return mf.varKinds}});Ne.operators={GT:new Ge._Code(">"),GTE:new Ge._Code(">="),LT:new Ge._Code("<"),LTE:new Ge._Code("<="),EQ:new Ge._Code("==="),NEQ:new Ge._Code("!=="),NOT:new Ge._Code("!"),OR:new Ge._Code("||"),AND:new Ge._Code("&&"),ADD:new Ge._Code("+")};var Qs=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},g_=class extends Qs{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?ss.varKinds.var:this.varKind,s=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${s};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Po(this.rhs,e,r)),this}get names(){return this.rhs instanceof Ge._CodeOrName?this.rhs.names:{}}},uf=class extends Qs{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof Ge.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Po(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Ge.Name?{}:{...this.lhs.names};return df(e,this.rhs)}},v_=class extends uf{constructor(e,r,n,s){super(e,n,s),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},y_=class extends Qs{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},b_=class extends Qs{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},x_=class extends Qs{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},__=class extends Qs{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Po(this.code,e,r),this}get names(){return this.code instanceof Ge._CodeOrName?this.code.names:{}}},pu=class extends Qs{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,s=n.length;for(;s--;){let i=n[s];i.optimizeNames(e,r)||(MK(e,i.names),n.splice(s,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>ha(e,r.names),{})}},Ys=class extends pu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},w_=class extends pu{},Ro=class extends Ys{};Ro.kind="else";var ma=class t extends Ys{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ro(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(GO(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Po(this.condition,e,r),this}get names(){let e=super.names;return df(e,this.condition),this.else&&ha(e,this.else.names),e}};ma.kind="if";var fa=class extends Ys{};fa.kind="for";var S_=class extends fa{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Po(this.iteration,e,r),this}get names(){return ha(super.names,this.iteration.names)}},k_=class extends fa{constructor(e,r,n,s){super(),this.varKind=e,this.name=r,this.from=n,this.to=s}render(e){let r=e.es5?ss.varKinds.var:this.varKind,{name:n,from:s,to:i}=this;return`for(${r} ${n}=${s}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=df(super.names,this.from);return df(e,this.to)}},pf=class extends fa{constructor(e,r,n,s){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Po(this.iterable,e,r),this}get names(){return ha(super.names,this.iterable.names)}},du=class extends Ys{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};du.kind="func";var mu=class extends pu{render(e){return"return "+super.render(e)}};mu.kind="return";var E_=class extends Ys{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,s;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(s=this.finally)===null||s===void 0||s.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&ha(e,this.catch.names),this.finally&&ha(e,this.finally.names),e}},fu=class extends Ys{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};fu.kind="catch";var hu=class extends Ys{render(e){return"finally"+super.render(e)}};hu.kind="finally";var T_=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=e,this._scope=new ss.Scope({parent:e}),this._nodes=[new w_]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,s){let i=this._scope.toName(r);return n!==void 0&&s&&(this._constants[i.str]=n),this._leafNode(new g_(e,i,n)),i}const(e,r,n){return this._def(ss.varKinds.const,e,r,n)}let(e,r,n){return this._def(ss.varKinds.let,e,r,n)}var(e,r,n){return this._def(ss.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new uf(e,r,n))}add(e,r){return this._leafNode(new v_(e,Ne.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Ge.nil&&this._leafNode(new __(e)),this}object(...e){let r=["{"];for(let[n,s]of e)r.length>1&&r.push(","),r.push(n),(n!==s||this.opts.es5)&&(r.push(":"),(0,Ge.addCodeArg)(r,s));return r.push("}"),new Ge._Code(r)}if(e,r,n){if(this._blockNode(new ma(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new ma(e))}else(){return this._elseNode(new Ro)}endIf(){return this._endBlockNode(ma,Ro)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new S_(e),r)}forRange(e,r,n,s,i=this.opts.es5?ss.varKinds.var:ss.varKinds.let){let a=this._scope.toName(e);return this._for(new k_(i,a,r,n),()=>s(a))}forOf(e,r,n,s=ss.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Ge.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Ge._)`${a}.length`,o=>{this.var(i,(0,Ge._)`${a}[${o}]`),n(i)})}return this._for(new pf("of",s,i,r),()=>n(i))}forIn(e,r,n,s=this.opts.es5?ss.varKinds.var:ss.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Ge._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new pf("in",s,i,r),()=>n(i))}endFor(){return this._endBlockNode(fa)}label(e){return this._leafNode(new y_(e))}break(e){return this._leafNode(new b_(e))}return(e){let r=new mu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(mu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let s=new E_;if(this._blockNode(s),this.code(e),r){let i=this.name("e");this._currNode=s.catch=new fu(i),r(i)}return n&&(this._currNode=s.finally=new hu,this.code(n)),this._endBlockNode(fu,hu)}throw(e){return this._leafNode(new x_(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=Ge.nil,n,s){return this._blockNode(new du(e,r,n)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(du)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof ma))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};Ne.CodeGen=T_;function ha(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function df(t,e){return e instanceof Ge._CodeOrName?ha(t,e.names):t}function Po(t,e,r){if(t instanceof Ge.Name)return n(t);if(!s(t))return t;return new Ge._Code(t._items.reduce((i,a)=>(a instanceof Ge.Name&&(a=n(a)),a instanceof Ge._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||e[i.str]!==1?i:(delete e[i.str],a)}function s(i){return i instanceof Ge._Code&&i._items.some(a=>a instanceof Ge.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function MK(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function GO(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Ge._)`!${R_(t)}`}Ne.not=GO;var $K=VO(Ne.operators.AND);function LK(...t){return t.reduce($K)}Ne.and=LK;var UK=VO(Ne.operators.OR);function qK(...t){return t.reduce(UK)}Ne.or=qK;function VO(t){return(e,r)=>e===Ge.nil?r:r===Ge.nil?e:(0,Ge._)`${R_(e)} ${t} ${R_(r)}`}function R_(t){return t instanceof Ge.Name?t:(0,Ge._)`(${t})`}});var Ke=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.checkStrictMode=Ue.getErrorPath=Ue.Type=Ue.useFunc=Ue.setEvaluated=Ue.evaluatedPropsToName=Ue.mergeEvaluated=Ue.eachItem=Ue.unescapeJsonPointer=Ue.escapeJsonPointer=Ue.escapeFragment=Ue.unescapeFragment=Ue.schemaRefOrVal=Ue.schemaHasRulesButRef=Ue.schemaHasRules=Ue.checkUnknownRules=Ue.alwaysValidSchema=Ue.toHash=void 0;var bt=Ae(),FK=uu();function HK(t){let e={};for(let r of t)e[r]=!0;return e}Ue.toHash=HK;function BK(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(QO(t,e),!YO(e,t.self.RULES.all))}Ue.alwaysValidSchema=BK;function QO(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let s=n.RULES.keywords;for(let i in e)s[i]||tj(t,`unknown keyword: "${i}"`)}Ue.checkUnknownRules=QO;function YO(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ue.schemaHasRules=YO;function WK(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ue.schemaHasRulesButRef=WK;function ZK({topSchemaRef:t,schemaPath:e},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,bt._)`${r}`}return(0,bt._)`${t}${e}${(0,bt.getProperty)(n)}`}Ue.schemaRefOrVal=ZK;function GK(t){return XO(decodeURIComponent(t))}Ue.unescapeFragment=GK;function VK(t){return encodeURIComponent(I_(t))}Ue.escapeFragment=VK;function I_(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ue.escapeJsonPointer=I_;function XO(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ue.unescapeJsonPointer=XO;function KK(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ue.eachItem=KK;function KO({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(s,i,a,o)=>{let c=a===void 0?i:a instanceof bt.Name?(i instanceof bt.Name?t(s,i,a):e(s,i,a),a):i instanceof bt.Name?(e(s,a,i),i):r(i,a);return o===bt.Name&&!(c instanceof bt.Name)?n(s,c):c}}Ue.mergeEvaluated={props:KO({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,bt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,bt._)`${r} || {}`).code((0,bt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,bt._)`${r} || {}`),C_(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:ej}),items:KO({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,bt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,bt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function ej(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,bt._)`{}`);return e!==void 0&&C_(t,r,e),r}Ue.evaluatedPropsToName=ej;function C_(t,e,r){Object.keys(r).forEach(n=>t.assign((0,bt._)`${e}${(0,bt.getProperty)(n)}`,!0))}Ue.setEvaluated=C_;var JO={};function JK(t,e){return t.scopeValue("func",{ref:e,code:JO[e.code]||(JO[e.code]=new FK._Code(e.code))})}Ue.useFunc=JK;var P_;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(P_||(Ue.Type=P_={}));function QK(t,e,r){if(t instanceof bt.Name){let n=e===P_.Num;return r?n?(0,bt._)`"[" + ${t} + "]"`:(0,bt._)`"['" + ${t} + "']"`:n?(0,bt._)`"/" + ${t}`:(0,bt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,bt.getProperty)(t).toString():"/"+I_(t)}Ue.getErrorPath=QK;function tj(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ue.checkStrictMode=tj});var Xs=P(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});var Ar=Ae(),YK={data:new Ar.Name("data"),valCxt:new Ar.Name("valCxt"),instancePath:new Ar.Name("instancePath"),parentData:new Ar.Name("parentData"),parentDataProperty:new Ar.Name("parentDataProperty"),rootData:new Ar.Name("rootData"),dynamicAnchors:new Ar.Name("dynamicAnchors"),vErrors:new Ar.Name("vErrors"),errors:new Ar.Name("errors"),this:new Ar.Name("this"),self:new Ar.Name("self"),scope:new Ar.Name("scope"),json:new Ar.Name("json"),jsonPos:new Ar.Name("jsonPos"),jsonLen:new Ar.Name("jsonLen"),jsonPart:new Ar.Name("jsonPart")};O_.default=YK});var gu=P(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.extendErrors=Nr.resetErrorsCount=Nr.reportExtraError=Nr.reportError=Nr.keyword$DataError=Nr.keywordError=void 0;var Je=Ae(),ff=Ke(),$r=Xs();Nr.keywordError={message:({keyword:t})=>(0,Je.str)`must pass "${t}" keyword validation`};Nr.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Je.str)`"${t}" keyword must be ${e} ($data)`:(0,Je.str)`"${t}" keyword is invalid ($data)`};function XK(t,e=Nr.keywordError,r,n){let{it:s}=t,{gen:i,compositeRule:a,allErrors:o}=s,c=sj(t,e,r);n??(a||o)?rj(i,c):nj(s,(0,Je._)`[${c}]`)}Nr.reportError=XK;function eJ(t,e=Nr.keywordError,r){let{it:n}=t,{gen:s,compositeRule:i,allErrors:a}=n,o=sj(t,e,r);rj(s,o),i||a||nj(n,$r.default.vErrors)}Nr.reportExtraError=eJ;function tJ(t,e){t.assign($r.default.errors,e),t.if((0,Je._)`${$r.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Je._)`${$r.default.vErrors}.length`,e),()=>t.assign($r.default.vErrors,null)))}Nr.resetErrorsCount=tJ;function rJ({gen:t,keyword:e,schemaValue:r,data:n,errsCount:s,it:i}){if(s===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",s,$r.default.errors,o=>{t.const(a,(0,Je._)`${$r.default.vErrors}[${o}]`),t.if((0,Je._)`${a}.instancePath === undefined`,()=>t.assign((0,Je._)`${a}.instancePath`,(0,Je.strConcat)($r.default.instancePath,i.errorPath))),t.assign((0,Je._)`${a}.schemaPath`,(0,Je.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,Je._)`${a}.schema`,r),t.assign((0,Je._)`${a}.data`,n))})}Nr.extendErrors=rJ;function rj(t,e){let r=t.const("err",e);t.if((0,Je._)`${$r.default.vErrors} === null`,()=>t.assign($r.default.vErrors,(0,Je._)`[${r}]`),(0,Je._)`${$r.default.vErrors}.push(${r})`),t.code((0,Je._)`${$r.default.errors}++`)}function nj(t,e){let{gen:r,validateName:n,schemaEnv:s}=t;s.$async?r.throw((0,Je._)`new ${t.ValidationError}(${e})`):(r.assign((0,Je._)`${n}.errors`,e),r.return(!1))}var ga={keyword:new Je.Name("keyword"),schemaPath:new Je.Name("schemaPath"),params:new Je.Name("params"),propertyName:new Je.Name("propertyName"),message:new Je.Name("message"),schema:new Je.Name("schema"),parentSchema:new Je.Name("parentSchema")};function sj(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Je._)`{}`:nJ(t,e,r)}function nJ(t,e,r={}){let{gen:n,it:s}=t,i=[sJ(s,r),iJ(t,r)];return aJ(t,e,i),n.object(...i)}function sJ({errorPath:t},{instancePath:e}){let r=e?(0,Je.str)`${t}${(0,ff.getErrorPath)(e,ff.Type.Str)}`:t;return[$r.default.instancePath,(0,Je.strConcat)($r.default.instancePath,r)]}function iJ({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let s=n?e:(0,Je.str)`${e}/${t}`;return r&&(s=(0,Je.str)`${s}${(0,ff.getErrorPath)(r,ff.Type.Str)}`),[ga.schemaPath,s]}function aJ(t,{params:e,message:r},n){let{keyword:s,data:i,schemaValue:a,it:o}=t,{opts:c,propertyName:l,topSchemaRef:u,schemaPath:p}=o;n.push([ga.keyword,s],[ga.params,typeof e=="function"?e(t):e||(0,Je._)`{}`]),c.messages&&n.push([ga.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([ga.schema,a],[ga.parentSchema,(0,Je._)`${u}${p}`],[$r.default.data,i]),l&&n.push([ga.propertyName,l])}});var aj=P(Io=>{"use strict";Object.defineProperty(Io,"__esModule",{value:!0});Io.boolOrEmptySchema=Io.topBoolOrEmptySchema=void 0;var oJ=gu(),cJ=Ae(),lJ=Xs(),uJ={message:"boolean schema is false"};function pJ(t){let{gen:e,schema:r,validateName:n}=t;r===!1?ij(t,!1):typeof r=="object"&&r.$async===!0?e.return(lJ.default.data):(e.assign((0,cJ._)`${n}.errors`,null),e.return(!0))}Io.topBoolOrEmptySchema=pJ;function dJ(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),ij(t)):r.var(e,!0)}Io.boolOrEmptySchema=dJ;function ij(t,e){let{gen:r,data:n}=t,s={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,oJ.reportError)(s,uJ,void 0,e)}});var j_=P(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.getRules=Co.isJSONType=void 0;var mJ=["string","number","integer","boolean","null","object","array"],fJ=new Set(mJ);function hJ(t){return typeof t=="string"&&fJ.has(t)}Co.isJSONType=hJ;function gJ(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}Co.getRules=gJ});var A_=P(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.shouldUseRule=ki.shouldUseGroup=ki.schemaHasRulesForType=void 0;function vJ({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&oj(t,n)}ki.schemaHasRulesForType=vJ;function oj(t,e){return e.rules.some(r=>cj(t,r))}ki.shouldUseGroup=oj;function cj(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ki.shouldUseRule=cj});var vu=P(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.reportTypeError=Dr.checkDataTypes=Dr.checkDataType=Dr.coerceAndCheckDataType=Dr.getJSONTypes=Dr.getSchemaTypes=Dr.DataType=void 0;var yJ=j_(),bJ=A_(),xJ=gu(),Ce=Ae(),lj=Ke(),Oo;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(Oo||(Dr.DataType=Oo={}));function _J(t){let e=uj(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Dr.getSchemaTypes=_J;function uj(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(yJ.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Dr.getJSONTypes=uj;function wJ(t,e){let{gen:r,data:n,opts:s}=t,i=SJ(e,s.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,bJ.schemaHasRulesForType)(t,e[0]));if(a){let o=D_(e,n,s.strictNumbers,Oo.Wrong);r.if(o,()=>{i.length?kJ(t,e,i):z_(t)})}return a}Dr.coerceAndCheckDataType=wJ;var pj=new Set(["string","number","integer","boolean","null"]);function SJ(t,e){return e?t.filter(r=>pj.has(r)||e==="array"&&r==="array"):[]}function kJ(t,e,r){let{gen:n,data:s,opts:i}=t,a=n.let("dataType",(0,Ce._)`typeof ${s}`),o=n.let("coerced",(0,Ce._)`undefined`);i.coerceTypes==="array"&&n.if((0,Ce._)`${a} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>n.assign(s,(0,Ce._)`${s}[0]`).assign(a,(0,Ce._)`typeof ${s}`).if(D_(e,s,i.strictNumbers),()=>n.assign(o,s))),n.if((0,Ce._)`${o} !== undefined`);for(let l of r)(pj.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),z_(t),n.endIf(),n.if((0,Ce._)`${o} !== undefined`,()=>{n.assign(s,o),EJ(t,o)});function c(l){switch(l){case"string":n.elseIf((0,Ce._)`${a} == "number" || ${a} == "boolean"`).assign(o,(0,Ce._)`"" + ${s}`).elseIf((0,Ce._)`${s} === null`).assign(o,(0,Ce._)`""`);return;case"number":n.elseIf((0,Ce._)`${a} == "boolean" || ${s} === null +"use strict";var fG=Object.create;var Rm=Object.defineProperty;var hG=Object.getOwnPropertyDescriptor;var gG=Object.getOwnPropertyNames;var vG=Object.getPrototypeOf,yG=Object.prototype.hasOwnProperty;var xe=(t,e)=>()=>(t&&(e=t(t=0)),e);var P=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ks=(t,e)=>{for(var r in e)Rm(t,r,{get:e[r],enumerable:!0})},oP=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of gG(e))!yG.call(t,s)&&s!==r&&Rm(t,s,{get:()=>e[s],enumerable:!(n=hG(e,s))||n.enumerable});return t};var Y=(t,e,r)=>(r=t!=null?fG(vG(t)):{},oP(e||!t||!t.__esModule?Rm(r,"default",{value:t,enumerable:!0}):r,t)),Dl=t=>oP(Rm({},"__esModule",{value:!0}),t);var cP,lP,uP=xe(()=>{"use strict";cP="bugfix,feature,refactor,discovery,decision,change",lP="how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off"});var es,Pm,pP,je,Or=xe(()=>{"use strict";es=require("fs"),Pm=require("path"),pP=require("os");uP();je=class{static DEFAULTS={CLAUDE_PILOT_MODEL:"haiku",CLAUDE_PILOT_CONTEXT_OBSERVATIONS:"50",CLAUDE_PILOT_WORKER_PORT:"41777",CLAUDE_PILOT_WORKER_HOST:"127.0.0.1",CLAUDE_PILOT_WORKER_BIND:"127.0.0.1",CLAUDE_PILOT_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_PILOT_DATA_DIR:(0,Pm.join)((0,pP.homedir)(),".pilot/memory"),CLAUDE_PILOT_LOG_LEVEL:"INFO",CLAUDE_PILOT_PYTHON_VERSION:"3.12",CLAUDE_CODE_PATH:"",CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT:!1,CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT:!1,CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES:cP,CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS:lP,CLAUDE_PILOT_CONTEXT_FULL_COUNT:"10",CLAUDE_PILOT_CONTEXT_FULL_FIELD:"facts",CLAUDE_PILOT_CONTEXT_SESSION_COUNT:"10",CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY:!0,CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE:!0,CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED:!1,CLAUDE_PILOT_FOLDER_MD_EXCLUDE:"[]",CLAUDE_PILOT_CHROMA_ENABLED:!0,CLAUDE_PILOT_VECTOR_DB:"chroma",CLAUDE_PILOT_EMBEDDING_MODEL:"Xenova/all-MiniLM-L6-v2",CLAUDE_PILOT_EXCLUDE_PROJECTS:"[]",CLAUDE_PILOT_REMOTE_TOKEN:"",CLAUDE_PILOT_RETENTION_ENABLED:!0,CLAUDE_PILOT_RETENTION_MAX_AGE_DAYS:"31",CLAUDE_PILOT_RETENTION_MAX_COUNT:"5000",CLAUDE_PILOT_RETENTION_EXCLUDE_TYPES:'["summary"]',CLAUDE_PILOT_RETENTION_SOFT_DELETE:!1,CLAUDE_PILOT_BATCH_SIZE:"5",CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB:"2048",CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB:"51200"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){try{if(!(0,es.existsSync)(e)){let c=this.getAllDefaults();try{let l=(0,Pm.dirname)(e);(0,es.existsSync)(l)||(0,es.mkdirSync)(l,{recursive:!0}),(0,es.writeFileSync)(e,JSON.stringify(c,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(l){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,l)}return c}let r=(0,es.readFileSync)(e,"utf-8"),n=JSON.parse(r),s=n;if(n.env&&typeof n.env=="object"){s=n.env;try{(0,es.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,c)}}let i=["CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT","CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT","CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY","CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE","CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED","CLAUDE_PILOT_CHROMA_ENABLED","CLAUDE_PILOT_RETENTION_ENABLED","CLAUDE_PILOT_RETENTION_SOFT_DELETE"],a={...this.DEFAULTS},o=!1;for(let c of Object.keys(this.DEFAULTS))if(s[c]!==void 0)if(i.includes(c)){let l=s[c];typeof l=="string"?(a[c]=l==="true",o=!0):a[c]=l}else a[c]=s[c];if(o)try{(0,es.writeFileSync)(e,JSON.stringify(a,null,2),"utf-8"),console.log("[SETTINGS] Migrated boolean settings from strings to actual booleans:",e)}catch(c){console.warn("[SETTINGS] Failed to auto-migrate boolean settings:",e,c)}return a}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.getAllDefaults()}}}});var xP={};ks(xP,{ARCHIVES_DIR:()=>Wb,BACKUPS_DIR:()=>vP,CLAUDE_CONFIG_DIR:()=>Ml,CLAUDE_CREDENTIALS_PATH:()=>Zb,CLAUDE_MD_PATH:()=>wG,CLAUDE_SETTINGS_PATH:()=>_G,DATA_DIR:()=>rn,DB_PATH:()=>$l,LOGS_DIR:()=>hP,MARKETPLACE_ROOT:()=>SG,MODES_DIR:()=>yP,PLUGINS_DIR:()=>bP,TRASH_DIR:()=>gP,USER_SETTINGS_PATH:()=>Ht,VECTOR_DB_DIR:()=>Ll,ensureAllDataDirs:()=>EG,ensureDir:()=>ts,getCurrentProjectName:()=>TG,getPackageRoot:()=>Vs,getProjectArchiveDir:()=>kG,getVersion:()=>Im,resolveGitRoot:()=>nn});function bG(){return typeof __dirname<"u"?__dirname:(0,Nt.dirname)((0,fP.fileURLToPath)(RG.url))}function kG(t){return(0,Nt.join)(Wb,t)}function ts(t){(0,bo.mkdirSync)(t,{recursive:!0})}function EG(){ts(rn),ts(Wb),ts(hP),ts(gP),ts(vP),ts(yP)}function nn(t){try{return(0,mP.execSync)("git rev-parse --show-toplevel",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0,timeout:3e3}).trim()||t}catch{return t}}function TG(){return(0,Nt.basename)(nn(process.cwd()))}function Vs(){return(0,Nt.join)(xG,"..")}function Im(){if(zl)return zl;let t=Vs(),e=[(0,Nt.join)(t,"package.json"),(0,Nt.join)(t,".claude-plugin","plugin.json"),(0,Nt.join)(t,"..","package.json")];for(let r of e)try{if((0,bo.existsSync)(r)){let n=JSON.parse((0,bo.readFileSync)(r,"utf-8"));if(n.version)return zl=n.version,n.version}}catch{}return zl=`0.0.0-${Date.now()}`,zl}var Nt,dP,bo,mP,fP,RG,zl,xG,rn,Ml,Wb,hP,gP,vP,yP,Ht,$l,Ll,_G,wG,Zb,bP,SG,er=xe(()=>{"use strict";Nt=require("path"),dP=require("os"),bo=require("fs"),mP=require("child_process"),fP=require("url");Or();RG={},zl=null;xG=bG(),rn=je.get("CLAUDE_PILOT_DATA_DIR"),Ml=process.env.CLAUDE_CONFIG_DIR||(0,Nt.join)((0,dP.homedir)(),".claude"),Wb=(0,Nt.join)(rn,"archives"),hP=(0,Nt.join)(rn,"logs"),gP=(0,Nt.join)(rn,"trash"),vP=(0,Nt.join)(rn,"backups"),yP=(0,Nt.join)(rn,"modes"),Ht=(0,Nt.join)(rn,"settings.json"),$l=(0,Nt.join)(rn,"pilot-memory.db"),Ll=(0,Nt.join)(rn,"vector-db"),_G=(0,Nt.join)(Ml,"settings.json"),wG=(0,Nt.join)(Ml,"CLAUDE.md"),Zb=(0,Nt.join)(Ml,".credentials.json"),bP=(0,Nt.join)(Ml,"plugins"),SG=(0,Nt.join)(bP,"marketplaces","pilot")});var uu=P(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});Xe.regexpCode=Xe.getEsmExportName=Xe.getProperty=Xe.safeStringify=Xe.stringify=Xe.strConcat=Xe.addCodeArg=Xe.str=Xe._=Xe.nil=Xe._Code=Xe.Name=Xe.IDENTIFIER=Xe._CodeOrName=void 0;var cu=class{};Xe._CodeOrName=cu;Xe.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var ma=class extends cu{constructor(e){if(super(),!Xe.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};Xe.Name=ma;var Dn=class extends cu{constructor(e){super(),this._items=typeof e=="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce((r,n)=>(n instanceof ma&&(r[n.str]=(r[n.str]||0)+1),r),{})}};Xe._Code=Dn;Xe.nil=new Dn("");function WO(t,...e){let r=[t[0]],n=0;for(;n{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.ValueScope=on.ValueScopeName=on.Scope=on.varKinds=on.UsedValueState=void 0;var an=uu(),m_=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},of;(function(t){t[t.Started=0]="Started",t[t.Completed=1]="Completed"})(of||(on.UsedValueState=of={}));on.varKinds={const:new an.Name("const"),let:new an.Name("let"),var:new an.Name("var")};var cf=class{constructor({prefixes:e,parent:r}={}){this._names={},this._prefixes=e,this._parent=r}toName(e){return e instanceof an.Name?e:this.name(e)}name(e){return new an.Name(this._newName(e))}_newName(e){let r=this._names[e]||this._nameGroup(e);return`${e}${r.index++}`}_nameGroup(e){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(e)||this._prefixes&&!this._prefixes.has(e))throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};on.Scope=cf;var lf=class extends an.Name{constructor(e,r){super(r),this.prefix=e}setValue(e,{property:r,itemIndex:n}){this.value=e,this.scopePath=(0,an._)`.${new an.Name(r)}[${n}]`}};on.ValueScopeName=lf;var zK=(0,an._)`\n`,f_=class extends cf{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?zK:an.nil}}get(){return this._scope}name(e){return new lf(e,this._newName(e))}value(e,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let s=this.toName(e),{prefix:i}=s,a=(n=r.key)!==null&&n!==void 0?n:r.ref,o=this._values[i];if(o){let u=o.get(a);if(u)return u}else o=this._values[i]=new Map;o.set(a,s);let c=this._scope[i]||(this._scope[i]=[]),l=c.length;return c[l]=r.ref,s.setValue(r,{property:i,itemIndex:l}),s}getValue(e,r){let n=this._values[e];if(n)return n.get(r)}scopeRefs(e,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,an._)`${e}${n.scopePath}`})}scopeCode(e=this._values,r,n){return this._reduceValues(e,s=>{if(s.value===void 0)throw new Error(`CodeGen: name "${s}" has no value`);return s.value.code},r,n)}_reduceValues(e,r,n={},s){let i=an.nil;for(let a in e){let o=e[a];if(!o)continue;let c=n[a]=n[a]||new Map;o.forEach(l=>{if(c.has(l))return;c.set(l,of.Started);let u=r(l);if(u){let p=this.opts.es5?on.varKinds.var:on.varKinds.const;i=(0,an._)`${i}${p} ${l} = ${u};${this.opts._n}`}else if(u=s?.(l))i=(0,an._)`${i}${u}${this.opts._n}`;else throw new m_(l);c.set(l,of.Completed)})}return i}};on.ValueScope=f_});var Ae=P(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.or=Ne.and=Ne.not=Ne.CodeGen=Ne.operators=Ne.varKinds=Ne.ValueScopeName=Ne.ValueScope=Ne.Scope=Ne.Name=Ne.regexpCode=Ne.stringify=Ne.getProperty=Ne.nil=Ne.strConcat=Ne.str=Ne._=void 0;var Ge=uu(),ss=h_(),Si=uu();Object.defineProperty(Ne,"_",{enumerable:!0,get:function(){return Si._}});Object.defineProperty(Ne,"str",{enumerable:!0,get:function(){return Si.str}});Object.defineProperty(Ne,"strConcat",{enumerable:!0,get:function(){return Si.strConcat}});Object.defineProperty(Ne,"nil",{enumerable:!0,get:function(){return Si.nil}});Object.defineProperty(Ne,"getProperty",{enumerable:!0,get:function(){return Si.getProperty}});Object.defineProperty(Ne,"stringify",{enumerable:!0,get:function(){return Si.stringify}});Object.defineProperty(Ne,"regexpCode",{enumerable:!0,get:function(){return Si.regexpCode}});Object.defineProperty(Ne,"Name",{enumerable:!0,get:function(){return Si.Name}});var mf=h_();Object.defineProperty(Ne,"Scope",{enumerable:!0,get:function(){return mf.Scope}});Object.defineProperty(Ne,"ValueScope",{enumerable:!0,get:function(){return mf.ValueScope}});Object.defineProperty(Ne,"ValueScopeName",{enumerable:!0,get:function(){return mf.ValueScopeName}});Object.defineProperty(Ne,"varKinds",{enumerable:!0,get:function(){return mf.varKinds}});Ne.operators={GT:new Ge._Code(">"),GTE:new Ge._Code(">="),LT:new Ge._Code("<"),LTE:new Ge._Code("<="),EQ:new Ge._Code("==="),NEQ:new Ge._Code("!=="),NOT:new Ge._Code("!"),OR:new Ge._Code("||"),AND:new Ge._Code("&&"),ADD:new Ge._Code("+")};var Qs=class{optimizeNodes(){return this}optimizeNames(e,r){return this}},g_=class extends Qs{constructor(e,r,n){super(),this.varKind=e,this.name=r,this.rhs=n}render({es5:e,_n:r}){let n=e?ss.varKinds.var:this.varKind,s=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${s};`+r}optimizeNames(e,r){if(e[this.name.str])return this.rhs&&(this.rhs=Po(this.rhs,e,r)),this}get names(){return this.rhs instanceof Ge._CodeOrName?this.rhs.names:{}}},uf=class extends Qs{constructor(e,r,n){super(),this.lhs=e,this.rhs=r,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,r){if(!(this.lhs instanceof Ge.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=Po(this.rhs,e,r),this}get names(){let e=this.lhs instanceof Ge.Name?{}:{...this.lhs.names};return df(e,this.rhs)}},v_=class extends uf{constructor(e,r,n,s){super(e,n,s),this.op=r}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},y_=class extends Qs{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},b_=class extends Qs{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:""};`+e}},x_=class extends Qs{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},__=class extends Qs{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,r){return this.code=Po(this.code,e,r),this}get names(){return this.code instanceof Ge._CodeOrName?this.code.names:{}}},pu=class extends Qs{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((r,n)=>r+n.render(e),"")}optimizeNodes(){let{nodes:e}=this,r=e.length;for(;r--;){let n=e[r].optimizeNodes();Array.isArray(n)?e.splice(r,1,...n):n?e[r]=n:e.splice(r,1)}return e.length>0?this:void 0}optimizeNames(e,r){let{nodes:n}=this,s=n.length;for(;s--;){let i=n[s];i.optimizeNames(e,r)||(MK(e,i.names),n.splice(s,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,r)=>ga(e,r.names),{})}},Ys=class extends pu{render(e){return"{"+e._n+super.render(e)+"}"+e._n}},w_=class extends pu{},Ro=class extends Ys{};Ro.kind="else";var fa=class t extends Ys{constructor(e,r){super(r),this.condition=e}render(e){let r=`if(${this.condition})`+super.render(e);return this.else&&(r+="else "+this.else.render(e)),r}optimizeNodes(){super.optimizeNodes();let e=this.condition;if(e===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new Ro(n):n}if(r)return e===!1?r instanceof t?r:r.nodes:this.nodes.length?this:new t(GO(e),r instanceof t?[r]:r.nodes);if(!(e===!1||!this.nodes.length))return this}optimizeNames(e,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(e,r),!!(super.optimizeNames(e,r)||this.else))return this.condition=Po(this.condition,e,r),this}get names(){let e=super.names;return df(e,this.condition),this.else&&ga(e,this.else.names),e}};fa.kind="if";var ha=class extends Ys{};ha.kind="for";var S_=class extends ha{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iteration=Po(this.iteration,e,r),this}get names(){return ga(super.names,this.iteration.names)}},k_=class extends ha{constructor(e,r,n,s){super(),this.varKind=e,this.name=r,this.from=n,this.to=s}render(e){let r=e.es5?ss.varKinds.var:this.varKind,{name:n,from:s,to:i}=this;return`for(${r} ${n}=${s}; ${n}<${i}; ${n}++)`+super.render(e)}get names(){let e=df(super.names,this.from);return df(e,this.to)}},pf=class extends ha{constructor(e,r,n,s){super(),this.loop=e,this.varKind=r,this.name=n,this.iterable=s}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,r){if(super.optimizeNames(e,r))return this.iterable=Po(this.iterable,e,r),this}get names(){return ga(super.names,this.iterable.names)}},du=class extends Ys{constructor(e,r,n){super(),this.name=e,this.args=r,this.async=n}render(e){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(e)}};du.kind="func";var mu=class extends pu{render(e){return"return "+super.render(e)}};mu.kind="return";var E_=class extends Ys{render(e){let r="try"+super.render(e);return this.catch&&(r+=this.catch.render(e)),this.finally&&(r+=this.finally.render(e)),r}optimizeNodes(){var e,r;return super.optimizeNodes(),(e=this.catch)===null||e===void 0||e.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(e,r){var n,s;return super.optimizeNames(e,r),(n=this.catch)===null||n===void 0||n.optimizeNames(e,r),(s=this.finally)===null||s===void 0||s.optimizeNames(e,r),this}get names(){let e=super.names;return this.catch&&ga(e,this.catch.names),this.finally&&ga(e,this.finally.names),e}},fu=class extends Ys{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};fu.kind="catch";var hu=class extends Ys{render(e){return"finally"+super.render(e)}};hu.kind="finally";var T_=class{constructor(e,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=e,this._scope=new ss.Scope({parent:e}),this._nodes=[new w_]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,r){let n=this._extScope.value(e,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,r){return this._extScope.getValue(e,r)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,r,n,s){let i=this._scope.toName(r);return n!==void 0&&s&&(this._constants[i.str]=n),this._leafNode(new g_(e,i,n)),i}const(e,r,n){return this._def(ss.varKinds.const,e,r,n)}let(e,r,n){return this._def(ss.varKinds.let,e,r,n)}var(e,r,n){return this._def(ss.varKinds.var,e,r,n)}assign(e,r,n){return this._leafNode(new uf(e,r,n))}add(e,r){return this._leafNode(new v_(e,Ne.operators.ADD,r))}code(e){return typeof e=="function"?e():e!==Ge.nil&&this._leafNode(new __(e)),this}object(...e){let r=["{"];for(let[n,s]of e)r.length>1&&r.push(","),r.push(n),(n!==s||this.opts.es5)&&(r.push(":"),(0,Ge.addCodeArg)(r,s));return r.push("}"),new Ge._Code(r)}if(e,r,n){if(this._blockNode(new fa(e)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(e){return this._elseNode(new fa(e))}else(){return this._elseNode(new Ro)}endIf(){return this._endBlockNode(fa,Ro)}_for(e,r){return this._blockNode(e),r&&this.code(r).endFor(),this}for(e,r){return this._for(new S_(e),r)}forRange(e,r,n,s,i=this.opts.es5?ss.varKinds.var:ss.varKinds.let){let a=this._scope.toName(e);return this._for(new k_(i,a,r,n),()=>s(a))}forOf(e,r,n,s=ss.varKinds.const){let i=this._scope.toName(e);if(this.opts.es5){let a=r instanceof Ge.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,Ge._)`${a}.length`,o=>{this.var(i,(0,Ge._)`${a}[${o}]`),n(i)})}return this._for(new pf("of",s,i,r),()=>n(i))}forIn(e,r,n,s=this.opts.es5?ss.varKinds.var:ss.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,Ge._)`Object.keys(${r})`,n);let i=this._scope.toName(e);return this._for(new pf("in",s,i,r),()=>n(i))}endFor(){return this._endBlockNode(ha)}label(e){return this._leafNode(new y_(e))}break(e){return this._leafNode(new b_(e))}return(e){let r=new mu;if(this._blockNode(r),this.code(e),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(mu)}try(e,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let s=new E_;if(this._blockNode(s),this.code(e),r){let i=this.name("e");this._currNode=s.catch=new fu(i),r(i)}return n&&(this._currNode=s.finally=new hu,this.code(n)),this._endBlockNode(fu,hu)}throw(e){return this._leafNode(new x_(e))}block(e,r){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(r),this}endBlock(e){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||e!==void 0&&n!==e)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=r,this}func(e,r=Ge.nil,n,s){return this._blockNode(new du(e,r,n)),s&&this.code(s).endFunc(),this}endFunc(){return this._endBlockNode(du)}optimize(e=1){for(;e-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,r){let n=this._currNode;if(n instanceof e||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${e.kind}/${r.kind}`:e.kind}"`)}_elseNode(e){let r=this._currNode;if(!(r instanceof fa))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let r=this._nodes;r[r.length-1]=e}};Ne.CodeGen=T_;function ga(t,e){for(let r in e)t[r]=(t[r]||0)+(e[r]||0);return t}function df(t,e){return e instanceof Ge._CodeOrName?ga(t,e.names):t}function Po(t,e,r){if(t instanceof Ge.Name)return n(t);if(!s(t))return t;return new Ge._Code(t._items.reduce((i,a)=>(a instanceof Ge.Name&&(a=n(a)),a instanceof Ge._Code?i.push(...a._items):i.push(a),i),[]));function n(i){let a=r[i.str];return a===void 0||e[i.str]!==1?i:(delete e[i.str],a)}function s(i){return i instanceof Ge._Code&&i._items.some(a=>a instanceof Ge.Name&&e[a.str]===1&&r[a.str]!==void 0)}}function MK(t,e){for(let r in e)t[r]=(t[r]||0)-(e[r]||0)}function GO(t){return typeof t=="boolean"||typeof t=="number"||t===null?!t:(0,Ge._)`!${R_(t)}`}Ne.not=GO;var $K=VO(Ne.operators.AND);function LK(...t){return t.reduce($K)}Ne.and=LK;var UK=VO(Ne.operators.OR);function qK(...t){return t.reduce(UK)}Ne.or=qK;function VO(t){return(e,r)=>e===Ge.nil?r:r===Ge.nil?e:(0,Ge._)`${R_(e)} ${t} ${R_(r)}`}function R_(t){return t instanceof Ge.Name?t:(0,Ge._)`(${t})`}});var Ke=P(Ue=>{"use strict";Object.defineProperty(Ue,"__esModule",{value:!0});Ue.checkStrictMode=Ue.getErrorPath=Ue.Type=Ue.useFunc=Ue.setEvaluated=Ue.evaluatedPropsToName=Ue.mergeEvaluated=Ue.eachItem=Ue.unescapeJsonPointer=Ue.escapeJsonPointer=Ue.escapeFragment=Ue.unescapeFragment=Ue.schemaRefOrVal=Ue.schemaHasRulesButRef=Ue.schemaHasRules=Ue.checkUnknownRules=Ue.alwaysValidSchema=Ue.toHash=void 0;var bt=Ae(),FK=uu();function HK(t){let e={};for(let r of t)e[r]=!0;return e}Ue.toHash=HK;function BK(t,e){return typeof e=="boolean"?e:Object.keys(e).length===0?!0:(QO(t,e),!YO(e,t.self.RULES.all))}Ue.alwaysValidSchema=BK;function QO(t,e=t.schema){let{opts:r,self:n}=t;if(!r.strictSchema||typeof e=="boolean")return;let s=n.RULES.keywords;for(let i in e)s[i]||tj(t,`unknown keyword: "${i}"`)}Ue.checkUnknownRules=QO;function YO(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(e[r])return!0;return!1}Ue.schemaHasRules=YO;function WK(t,e){if(typeof t=="boolean")return!t;for(let r in t)if(r!=="$ref"&&e.all[r])return!0;return!1}Ue.schemaHasRulesButRef=WK;function ZK({topSchemaRef:t,schemaPath:e},r,n,s){if(!s){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,bt._)`${r}`}return(0,bt._)`${t}${e}${(0,bt.getProperty)(n)}`}Ue.schemaRefOrVal=ZK;function GK(t){return XO(decodeURIComponent(t))}Ue.unescapeFragment=GK;function VK(t){return encodeURIComponent(I_(t))}Ue.escapeFragment=VK;function I_(t){return typeof t=="number"?`${t}`:t.replace(/~/g,"~0").replace(/\//g,"~1")}Ue.escapeJsonPointer=I_;function XO(t){return t.replace(/~1/g,"/").replace(/~0/g,"~")}Ue.unescapeJsonPointer=XO;function KK(t,e){if(Array.isArray(t))for(let r of t)e(r);else e(t)}Ue.eachItem=KK;function KO({mergeNames:t,mergeToName:e,mergeValues:r,resultToName:n}){return(s,i,a,o)=>{let c=a===void 0?i:a instanceof bt.Name?(i instanceof bt.Name?t(s,i,a):e(s,i,a),a):i instanceof bt.Name?(e(s,a,i),i):r(i,a);return o===bt.Name&&!(c instanceof bt.Name)?n(s,c):c}}Ue.mergeEvaluated={props:KO({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>{t.if((0,bt._)`${e} === true`,()=>t.assign(r,!0),()=>t.assign(r,(0,bt._)`${r} || {}`).code((0,bt._)`Object.assign(${r}, ${e})`))}),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>{e===!0?t.assign(r,!0):(t.assign(r,(0,bt._)`${r} || {}`),C_(t,r,e))}),mergeValues:(t,e)=>t===!0?!0:{...t,...e},resultToName:ej}),items:KO({mergeNames:(t,e,r)=>t.if((0,bt._)`${r} !== true && ${e} !== undefined`,()=>t.assign(r,(0,bt._)`${e} === true ? true : ${r} > ${e} ? ${r} : ${e}`)),mergeToName:(t,e,r)=>t.if((0,bt._)`${r} !== true`,()=>t.assign(r,e===!0?!0:(0,bt._)`${r} > ${e} ? ${r} : ${e}`)),mergeValues:(t,e)=>t===!0?!0:Math.max(t,e),resultToName:(t,e)=>t.var("items",e)})};function ej(t,e){if(e===!0)return t.var("props",!0);let r=t.var("props",(0,bt._)`{}`);return e!==void 0&&C_(t,r,e),r}Ue.evaluatedPropsToName=ej;function C_(t,e,r){Object.keys(r).forEach(n=>t.assign((0,bt._)`${e}${(0,bt.getProperty)(n)}`,!0))}Ue.setEvaluated=C_;var JO={};function JK(t,e){return t.scopeValue("func",{ref:e,code:JO[e.code]||(JO[e.code]=new FK._Code(e.code))})}Ue.useFunc=JK;var P_;(function(t){t[t.Num=0]="Num",t[t.Str=1]="Str"})(P_||(Ue.Type=P_={}));function QK(t,e,r){if(t instanceof bt.Name){let n=e===P_.Num;return r?n?(0,bt._)`"[" + ${t} + "]"`:(0,bt._)`"['" + ${t} + "']"`:n?(0,bt._)`"/" + ${t}`:(0,bt._)`"/" + ${t}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,bt.getProperty)(t).toString():"/"+I_(t)}Ue.getErrorPath=QK;function tj(t,e,r=t.opts.strictSchema){if(r){if(e=`strict mode: ${e}`,r===!0)throw new Error(e);t.self.logger.warn(e)}}Ue.checkStrictMode=tj});var Xs=P(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});var Ar=Ae(),YK={data:new Ar.Name("data"),valCxt:new Ar.Name("valCxt"),instancePath:new Ar.Name("instancePath"),parentData:new Ar.Name("parentData"),parentDataProperty:new Ar.Name("parentDataProperty"),rootData:new Ar.Name("rootData"),dynamicAnchors:new Ar.Name("dynamicAnchors"),vErrors:new Ar.Name("vErrors"),errors:new Ar.Name("errors"),this:new Ar.Name("this"),self:new Ar.Name("self"),scope:new Ar.Name("scope"),json:new Ar.Name("json"),jsonPos:new Ar.Name("jsonPos"),jsonLen:new Ar.Name("jsonLen"),jsonPart:new Ar.Name("jsonPart")};O_.default=YK});var gu=P(Nr=>{"use strict";Object.defineProperty(Nr,"__esModule",{value:!0});Nr.extendErrors=Nr.resetErrorsCount=Nr.reportExtraError=Nr.reportError=Nr.keyword$DataError=Nr.keywordError=void 0;var Je=Ae(),ff=Ke(),$r=Xs();Nr.keywordError={message:({keyword:t})=>(0,Je.str)`must pass "${t}" keyword validation`};Nr.keyword$DataError={message:({keyword:t,schemaType:e})=>e?(0,Je.str)`"${t}" keyword must be ${e} ($data)`:(0,Je.str)`"${t}" keyword is invalid ($data)`};function XK(t,e=Nr.keywordError,r,n){let{it:s}=t,{gen:i,compositeRule:a,allErrors:o}=s,c=sj(t,e,r);n??(a||o)?rj(i,c):nj(s,(0,Je._)`[${c}]`)}Nr.reportError=XK;function eJ(t,e=Nr.keywordError,r){let{it:n}=t,{gen:s,compositeRule:i,allErrors:a}=n,o=sj(t,e,r);rj(s,o),i||a||nj(n,$r.default.vErrors)}Nr.reportExtraError=eJ;function tJ(t,e){t.assign($r.default.errors,e),t.if((0,Je._)`${$r.default.vErrors} !== null`,()=>t.if(e,()=>t.assign((0,Je._)`${$r.default.vErrors}.length`,e),()=>t.assign($r.default.vErrors,null)))}Nr.resetErrorsCount=tJ;function rJ({gen:t,keyword:e,schemaValue:r,data:n,errsCount:s,it:i}){if(s===void 0)throw new Error("ajv implementation error");let a=t.name("err");t.forRange("i",s,$r.default.errors,o=>{t.const(a,(0,Je._)`${$r.default.vErrors}[${o}]`),t.if((0,Je._)`${a}.instancePath === undefined`,()=>t.assign((0,Je._)`${a}.instancePath`,(0,Je.strConcat)($r.default.instancePath,i.errorPath))),t.assign((0,Je._)`${a}.schemaPath`,(0,Je.str)`${i.errSchemaPath}/${e}`),i.opts.verbose&&(t.assign((0,Je._)`${a}.schema`,r),t.assign((0,Je._)`${a}.data`,n))})}Nr.extendErrors=rJ;function rj(t,e){let r=t.const("err",e);t.if((0,Je._)`${$r.default.vErrors} === null`,()=>t.assign($r.default.vErrors,(0,Je._)`[${r}]`),(0,Je._)`${$r.default.vErrors}.push(${r})`),t.code((0,Je._)`${$r.default.errors}++`)}function nj(t,e){let{gen:r,validateName:n,schemaEnv:s}=t;s.$async?r.throw((0,Je._)`new ${t.ValidationError}(${e})`):(r.assign((0,Je._)`${n}.errors`,e),r.return(!1))}var va={keyword:new Je.Name("keyword"),schemaPath:new Je.Name("schemaPath"),params:new Je.Name("params"),propertyName:new Je.Name("propertyName"),message:new Je.Name("message"),schema:new Je.Name("schema"),parentSchema:new Je.Name("parentSchema")};function sj(t,e,r){let{createErrors:n}=t.it;return n===!1?(0,Je._)`{}`:nJ(t,e,r)}function nJ(t,e,r={}){let{gen:n,it:s}=t,i=[sJ(s,r),iJ(t,r)];return aJ(t,e,i),n.object(...i)}function sJ({errorPath:t},{instancePath:e}){let r=e?(0,Je.str)`${t}${(0,ff.getErrorPath)(e,ff.Type.Str)}`:t;return[$r.default.instancePath,(0,Je.strConcat)($r.default.instancePath,r)]}function iJ({keyword:t,it:{errSchemaPath:e}},{schemaPath:r,parentSchema:n}){let s=n?e:(0,Je.str)`${e}/${t}`;return r&&(s=(0,Je.str)`${s}${(0,ff.getErrorPath)(r,ff.Type.Str)}`),[va.schemaPath,s]}function aJ(t,{params:e,message:r},n){let{keyword:s,data:i,schemaValue:a,it:o}=t,{opts:c,propertyName:l,topSchemaRef:u,schemaPath:p}=o;n.push([va.keyword,s],[va.params,typeof e=="function"?e(t):e||(0,Je._)`{}`]),c.messages&&n.push([va.message,typeof r=="function"?r(t):r]),c.verbose&&n.push([va.schema,a],[va.parentSchema,(0,Je._)`${u}${p}`],[$r.default.data,i]),l&&n.push([va.propertyName,l])}});var aj=P(Io=>{"use strict";Object.defineProperty(Io,"__esModule",{value:!0});Io.boolOrEmptySchema=Io.topBoolOrEmptySchema=void 0;var oJ=gu(),cJ=Ae(),lJ=Xs(),uJ={message:"boolean schema is false"};function pJ(t){let{gen:e,schema:r,validateName:n}=t;r===!1?ij(t,!1):typeof r=="object"&&r.$async===!0?e.return(lJ.default.data):(e.assign((0,cJ._)`${n}.errors`,null),e.return(!0))}Io.topBoolOrEmptySchema=pJ;function dJ(t,e){let{gen:r,schema:n}=t;n===!1?(r.var(e,!1),ij(t)):r.var(e,!0)}Io.boolOrEmptySchema=dJ;function ij(t,e){let{gen:r,data:n}=t,s={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:t};(0,oJ.reportError)(s,uJ,void 0,e)}});var j_=P(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.getRules=Co.isJSONType=void 0;var mJ=["string","number","integer","boolean","null","object","array"],fJ=new Set(mJ);function hJ(t){return typeof t=="string"&&fJ.has(t)}Co.isJSONType=hJ;function gJ(){let t={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...t,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},t.number,t.string,t.array,t.object],post:{rules:[]},all:{},keywords:{}}}Co.getRules=gJ});var A_=P(ki=>{"use strict";Object.defineProperty(ki,"__esModule",{value:!0});ki.shouldUseRule=ki.shouldUseGroup=ki.schemaHasRulesForType=void 0;function vJ({schema:t,self:e},r){let n=e.RULES.types[r];return n&&n!==!0&&oj(t,n)}ki.schemaHasRulesForType=vJ;function oj(t,e){return e.rules.some(r=>cj(t,r))}ki.shouldUseGroup=oj;function cj(t,e){var r;return t[e.keyword]!==void 0||((r=e.definition.implements)===null||r===void 0?void 0:r.some(n=>t[n]!==void 0))}ki.shouldUseRule=cj});var vu=P(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.reportTypeError=Dr.checkDataTypes=Dr.checkDataType=Dr.coerceAndCheckDataType=Dr.getJSONTypes=Dr.getSchemaTypes=Dr.DataType=void 0;var yJ=j_(),bJ=A_(),xJ=gu(),Ce=Ae(),lj=Ke(),Oo;(function(t){t[t.Correct=0]="Correct",t[t.Wrong=1]="Wrong"})(Oo||(Dr.DataType=Oo={}));function _J(t){let e=uj(t.type);if(e.includes("null")){if(t.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!e.length&&t.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');t.nullable===!0&&e.push("null")}return e}Dr.getSchemaTypes=_J;function uj(t){let e=Array.isArray(t)?t:t?[t]:[];if(e.every(yJ.isJSONType))return e;throw new Error("type must be JSONType or JSONType[]: "+e.join(","))}Dr.getJSONTypes=uj;function wJ(t,e){let{gen:r,data:n,opts:s}=t,i=SJ(e,s.coerceTypes),a=e.length>0&&!(i.length===0&&e.length===1&&(0,bJ.schemaHasRulesForType)(t,e[0]));if(a){let o=D_(e,n,s.strictNumbers,Oo.Wrong);r.if(o,()=>{i.length?kJ(t,e,i):z_(t)})}return a}Dr.coerceAndCheckDataType=wJ;var pj=new Set(["string","number","integer","boolean","null"]);function SJ(t,e){return e?t.filter(r=>pj.has(r)||e==="array"&&r==="array"):[]}function kJ(t,e,r){let{gen:n,data:s,opts:i}=t,a=n.let("dataType",(0,Ce._)`typeof ${s}`),o=n.let("coerced",(0,Ce._)`undefined`);i.coerceTypes==="array"&&n.if((0,Ce._)`${a} == 'object' && Array.isArray(${s}) && ${s}.length == 1`,()=>n.assign(s,(0,Ce._)`${s}[0]`).assign(a,(0,Ce._)`typeof ${s}`).if(D_(e,s,i.strictNumbers),()=>n.assign(o,s))),n.if((0,Ce._)`${o} !== undefined`);for(let l of r)(pj.has(l)||l==="array"&&i.coerceTypes==="array")&&c(l);n.else(),z_(t),n.endIf(),n.if((0,Ce._)`${o} !== undefined`,()=>{n.assign(s,o),EJ(t,o)});function c(l){switch(l){case"string":n.elseIf((0,Ce._)`${a} == "number" || ${a} == "boolean"`).assign(o,(0,Ce._)`"" + ${s}`).elseIf((0,Ce._)`${s} === null`).assign(o,(0,Ce._)`""`);return;case"number":n.elseIf((0,Ce._)`${a} == "boolean" || ${s} === null || (${a} == "string" && ${s} && ${s} == +${s})`).assign(o,(0,Ce._)`+${s}`);return;case"integer":n.elseIf((0,Ce._)`${a} === "boolean" || ${s} === null || (${a} === "string" && ${s} && ${s} == +${s} && !(${s} % 1))`).assign(o,(0,Ce._)`+${s}`);return;case"boolean":n.elseIf((0,Ce._)`${s} === "false" || ${s} === 0 || ${s} === null`).assign(o,!1).elseIf((0,Ce._)`${s} === "true" || ${s} === 1`).assign(o,!0);return;case"null":n.elseIf((0,Ce._)`${s} === "" || ${s} === 0 || ${s} === false`),n.assign(o,null);return;case"array":n.elseIf((0,Ce._)`${a} === "string" || ${a} === "number" - || ${a} === "boolean" || ${s} === null`).assign(o,(0,Ce._)`[${s}]`)}}}function EJ({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ce._)`${e} !== undefined`,()=>t.assign((0,Ce._)`${e}[${r}]`,n))}function N_(t,e,r,n=Oo.Correct){let s=n===Oo.Correct?Ce.operators.EQ:Ce.operators.NEQ,i;switch(t){case"null":return(0,Ce._)`${e} ${s} null`;case"array":i=(0,Ce._)`Array.isArray(${e})`;break;case"object":i=(0,Ce._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=a((0,Ce._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=a();break;default:return(0,Ce._)`typeof ${e} ${s} ${t}`}return n===Oo.Correct?i:(0,Ce.not)(i);function a(o=Ce.nil){return(0,Ce.and)((0,Ce._)`typeof ${e} == "number"`,o,r?(0,Ce._)`isFinite(${e})`:Ce.nil)}}Dr.checkDataType=N_;function D_(t,e,r,n){if(t.length===1)return N_(t[0],e,r,n);let s,i=(0,lj.toHash)(t);if(i.array&&i.object){let a=(0,Ce._)`typeof ${e} != "object"`;s=i.null?a:(0,Ce._)`!${e} || ${a}`,delete i.null,delete i.array,delete i.object}else s=Ce.nil;i.number&&delete i.integer;for(let a in i)s=(0,Ce.and)(s,N_(a,e,r,n));return s}Dr.checkDataTypes=D_;var TJ={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ce._)`{type: ${t}}`:(0,Ce._)`{type: ${e}}`};function z_(t){let e=RJ(t);(0,xJ.reportError)(e,TJ)}Dr.reportTypeError=z_;function RJ(t){let{gen:e,data:r,schema:n}=t,s=(0,lj.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:s,schemaValue:s,parentSchema:n,params:{},it:t}}});var mj=P(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.assignDefaults=void 0;var jo=Ae(),PJ=Ke();function IJ(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let s in r)dj(t,s,r[s].default);else e==="array"&&Array.isArray(n)&&n.forEach((s,i)=>dj(t,i,s.default))}hf.assignDefaults=IJ;function dj(t,e,r){let{gen:n,compositeRule:s,data:i,opts:a}=t;if(r===void 0)return;let o=(0,jo._)`${i}${(0,jo.getProperty)(e)}`;if(s){(0,PJ.checkStrictMode)(t,`default is ignored for: ${o}`);return}let c=(0,jo._)`${o} === undefined`;a.useDefaults==="empty"&&(c=(0,jo._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,jo._)`${o} = ${(0,jo.stringify)(r)}`)}});var zn=P(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.validateUnion=ht.validateArray=ht.usePattern=ht.callValidateCode=ht.schemaProperties=ht.allSchemaProperties=ht.noPropertyInData=ht.propertyInData=ht.isOwnProperty=ht.hasPropFunc=ht.reportMissingProp=ht.checkMissingProp=ht.checkReportMissingProp=void 0;var It=Ae(),M_=Ke(),Ei=Xs(),CJ=Ke();function OJ(t,e){let{gen:r,data:n,it:s}=t;r.if(L_(r,n,e,s.opts.ownProperties),()=>{t.setParams({missingProperty:(0,It._)`${e}`},!0),t.error()})}ht.checkReportMissingProp=OJ;function jJ({gen:t,data:e,it:{opts:r}},n,s){return(0,It.or)(...n.map(i=>(0,It.and)(L_(t,e,i,r.ownProperties),(0,It._)`${s} = ${i}`)))}ht.checkMissingProp=jJ;function AJ(t,e){t.setParams({missingProperty:e},!0),t.error()}ht.reportMissingProp=AJ;function fj(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,It._)`Object.prototype.hasOwnProperty`})}ht.hasPropFunc=fj;function $_(t,e,r){return(0,It._)`${fj(t)}.call(${e}, ${r})`}ht.isOwnProperty=$_;function NJ(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} !== undefined`;return n?(0,It._)`${s} && ${$_(t,e,r)}`:s}ht.propertyInData=NJ;function L_(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} === undefined`;return n?(0,It.or)(s,(0,It.not)($_(t,e,r))):s}ht.noPropertyInData=L_;function hj(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ht.allSchemaProperties=hj;function DJ(t,e){return hj(e).filter(r=>!(0,M_.alwaysValidSchema)(t,e[r]))}ht.schemaProperties=DJ;function zJ({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:i},it:a},o,c,l){let u=l?(0,It._)`${t}, ${e}, ${n}${s}`:e,p=[[Ei.default.instancePath,(0,It.strConcat)(Ei.default.instancePath,i)],[Ei.default.parentData,a.parentData],[Ei.default.parentDataProperty,a.parentDataProperty],[Ei.default.rootData,Ei.default.rootData]];a.opts.dynamicRef&&p.push([Ei.default.dynamicAnchors,Ei.default.dynamicAnchors]);let d=(0,It._)`${u}, ${r.object(...p)}`;return c!==It.nil?(0,It._)`${o}.call(${c}, ${d})`:(0,It._)`${o}(${d})`}ht.callValidateCode=zJ;var MJ=(0,It._)`new RegExp`;function $J({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:s}=e.code,i=s(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,It._)`${s.code==="new RegExp"?MJ:(0,CJ.useFunc)(t,s)}(${r}, ${n})`})}ht.usePattern=$J;function LJ(t){let{gen:e,data:r,keyword:n,it:s}=t,i=e.name("valid");if(s.allErrors){let o=e.let("valid",!0);return a(()=>e.assign(o,!1)),o}return e.var(i,!0),a(()=>e.break()),i;function a(o){let c=e.const("len",(0,It._)`${r}.length`);e.forRange("i",0,c,l=>{t.subschema({keyword:n,dataProp:l,dataPropType:M_.Type.Num},i),e.if((0,It.not)(i),o)})}}ht.validateArray=LJ;function UJ(t){let{gen:e,schema:r,keyword:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,M_.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;let a=e.let("valid",!1),o=e.name("_valid");e.block(()=>r.forEach((c,l)=>{let u=t.subschema({keyword:n,schemaProp:l,compositeRule:!0},o);e.assign(a,(0,It._)`${a} || ${o}`),t.mergeValidEvaluated(u,o)||e.if((0,It.not)(a))})),t.result(a,()=>t.reset(),()=>t.error(!0))}ht.validateUnion=UJ});var yj=P(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateKeywordUsage=Rs.validSchemaType=Rs.funcKeywordCode=Rs.macroKeywordCode=void 0;var Lr=Ae(),va=Xs(),qJ=zn(),FJ=gu();function HJ(t,e){let{gen:r,keyword:n,schema:s,parentSchema:i,it:a}=t,o=e.macro.call(a.self,s,i,a),c=vj(r,n,o);a.opts.validateSchema!==!1&&a.self.validateSchema(o,!0);let l=r.name("valid");t.subschema({schema:o,schemaPath:Lr.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),t.pass(l,()=>t.error(!0))}Rs.macroKeywordCode=HJ;function BJ(t,e){var r;let{gen:n,keyword:s,schema:i,parentSchema:a,$data:o,it:c}=t;ZJ(c,e);let l=!o&&e.compile?e.compile.call(c.self,i,a,c):e.validate,u=vj(n,s,l),p=n.let("valid");t.block$data(p,d),t.ok((r=e.valid)!==null&&r!==void 0?r:p);function d(){if(e.errors===!1)v(),e.modifying&&gj(t),g(()=>t.error());else{let h=e.async?m():f();e.modifying&&gj(t),g(()=>WJ(t,h))}}function m(){let h=n.let("ruleErrs",null);return n.try(()=>v((0,Lr._)`await `),y=>n.assign(p,!1).if((0,Lr._)`${y} instanceof ${c.ValidationError}`,()=>n.assign(h,(0,Lr._)`${y}.errors`),()=>n.throw(y))),h}function f(){let h=(0,Lr._)`${u}.errors`;return n.assign(h,null),v(Lr.nil),h}function v(h=e.async?(0,Lr._)`await `:Lr.nil){let y=c.opts.passContext?va.default.this:va.default.self,b=!("compile"in e&&!o||e.schema===!1);n.assign(p,(0,Lr._)`${h}${(0,qJ.callValidateCode)(t,u,y,b)}`,e.modifying)}function g(h){var y;n.if((0,Lr.not)((y=e.valid)!==null&&y!==void 0?y:p),h)}}Rs.funcKeywordCode=BJ;function gj(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Lr._)`${n.parentData}[${n.parentDataProperty}]`))}function WJ(t,e){let{gen:r}=t;r.if((0,Lr._)`Array.isArray(${e})`,()=>{r.assign(va.default.vErrors,(0,Lr._)`${va.default.vErrors} === null ? ${e} : ${va.default.vErrors}.concat(${e})`).assign(va.default.errors,(0,Lr._)`${va.default.vErrors}.length`),(0,FJ.extendErrors)(t)},()=>t.error())}function ZJ({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function vj(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Lr.stringify)(r)})}function GJ(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Rs.validSchemaType=GJ;function VJ({schema:t,opts:e,self:r,errSchemaPath:n},s,i){if(Array.isArray(s.keyword)?!s.keyword.includes(i):s.keyword!==i)throw new Error("ajv implementation error");let a=s.dependencies;if(a?.some(o=>!Object.prototype.hasOwnProperty.call(t,o)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(s.validateSchema&&!s.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(s.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rs.validateKeywordUsage=VJ});var xj=P(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.extendSubschemaMode=Ti.extendSubschemaData=Ti.getSubschema=void 0;var Ps=Ae(),bj=Ke();function KJ(t,{keyword:e,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:i,topSchemaRef:a}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=t.schema[e];return r===void 0?{schema:o,schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:o[r],schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}${(0,Ps.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,bj.escapeFragment)(r)}`}}if(n!==void 0){if(s===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:s,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ti.getSubschema=KJ;function JJ(t,e,{dataProp:r,dataPropType:n,data:s,dataTypes:i,propertyName:a}){if(s!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(r!==void 0){let{errorPath:l,dataPathArr:u,opts:p}=e,d=o.let("data",(0,Ps._)`${e.data}${(0,Ps.getProperty)(r)}`,!0);c(d),t.errorPath=(0,Ps.str)`${l}${(0,bj.getErrorPath)(r,n,p.jsPropertySyntax)}`,t.parentDataProperty=(0,Ps._)`${r}`,t.dataPathArr=[...u,t.parentDataProperty]}if(s!==void 0){let l=s instanceof Ps.Name?s:o.let("data",s,!0);c(l),a!==void 0&&(t.propertyName=a)}i&&(t.dataTypes=i);function c(l){t.data=l,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,l]}}Ti.extendSubschemaData=JJ;function QJ(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:s,allErrors:i}){n!==void 0&&(t.compositeRule=n),s!==void 0&&(t.createErrors=s),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Ti.extendSubschemaMode=QJ});var U_=P((ICe,_j)=>{"use strict";_j.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var a=i[s];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}});var Sj=P((CCe,wj)=>{"use strict";var Ri=wj.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};gf(e,n,s,t,"",t)};Ri.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ri.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ri.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ri.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function gf(t,e,r,n,s,i,a,o,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,s,i,a,o,c,l);for(var u in n){var p=n[u];if(Array.isArray(p)){if(u in Ri.arrayKeywords)for(var d=0;d{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getSchemaRefs=cn.resolveUrl=cn.normalizeId=cn._getFullPath=cn.getFullPath=cn.inlineRef=void 0;var XJ=Ke(),eQ=U_(),tQ=Sj(),rQ=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function nQ(t,e=!0){return typeof t=="boolean"?!0:e===!0?!q_(t):e?kj(t)<=e:!1}cn.inlineRef=nQ;var sQ=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function q_(t){for(let e in t){if(sQ.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(q_)||typeof r=="object"&&q_(r))return!0}return!1}function kj(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!rQ.has(r)&&(typeof t[r]=="object"&&(0,XJ.eachItem)(t[r],n=>e+=kj(n)),e===1/0))return 1/0}return e}function Ej(t,e="",r){r!==!1&&(e=Ao(e));let n=t.parse(e);return Tj(t,n)}cn.getFullPath=Ej;function Tj(t,e){return t.serialize(e).split("#")[0]+"#"}cn._getFullPath=Tj;var iQ=/#\/?$/;function Ao(t){return t?t.replace(iQ,""):""}cn.normalizeId=Ao;function aQ(t,e,r){return r=Ao(r),t.resolve(e,r)}cn.resolveUrl=aQ;var oQ=/^[a-z_][-a-z0-9._]*$/i;function cQ(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,s=Ao(t[r]||e),i={"":s},a=Ej(n,s,!1),o={},c=new Set;return tQ(t,{allKeys:!0},(p,d,m,f)=>{if(f===void 0)return;let v=a+d,g=i[f];typeof p[r]=="string"&&(g=h.call(this,p[r])),y.call(this,p.$anchor),y.call(this,p.$dynamicAnchor),i[d]=g;function h(b){let x=this.opts.uriResolver.resolve;if(b=Ao(g?x(g,b):b),c.has(b))throw u(b);c.add(b);let w=this.refs[b];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?l(p,w.schema,b):b!==Ao(v)&&(b[0]==="#"?(l(p,o[b],b),o[b]=p):this.refs[b]=v),b}function y(b){if(typeof b=="string"){if(!oQ.test(b))throw new Error(`invalid anchor "${b}"`);h.call(this,`#${b}`)}}}),o;function l(p,d,m){if(d!==void 0&&!eQ(p,d))throw u(m)}function u(p){return new Error(`reference "${p}" resolves to more than one schema`)}}cn.getSchemaRefs=cQ});var _u=P(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.getData=Pi.KeywordCxt=Pi.validateFunctionCode=void 0;var Oj=aj(),Rj=vu(),H_=A_(),vf=vu(),lQ=mj(),xu=yj(),F_=xj(),fe=Ae(),Te=Xs(),uQ=yu(),ei=Ke(),bu=gu();function pQ(t){if(Nj(t)&&(Dj(t),Aj(t))){fQ(t);return}jj(t,()=>(0,Oj.topBoolOrEmptySchema)(t))}Pi.validateFunctionCode=pQ;function jj({gen:t,validateName:e,schema:r,schemaEnv:n,opts:s},i){s.code.es5?t.func(e,(0,fe._)`${Te.default.data}, ${Te.default.valCxt}`,n.$async,()=>{t.code((0,fe._)`"use strict"; ${Pj(r,s)}`),mQ(t,s),t.code(i)}):t.func(e,(0,fe._)`${Te.default.data}, ${dQ(s)}`,n.$async,()=>t.code(Pj(r,s)).code(i))}function dQ(t){return(0,fe._)`{${Te.default.instancePath}="", ${Te.default.parentData}, ${Te.default.parentDataProperty}, ${Te.default.rootData}=${Te.default.data}${t.dynamicRef?(0,fe._)`, ${Te.default.dynamicAnchors}={}`:fe.nil}}={}`}function mQ(t,e){t.if(Te.default.valCxt,()=>{t.var(Te.default.instancePath,(0,fe._)`${Te.default.valCxt}.${Te.default.instancePath}`),t.var(Te.default.parentData,(0,fe._)`${Te.default.valCxt}.${Te.default.parentData}`),t.var(Te.default.parentDataProperty,(0,fe._)`${Te.default.valCxt}.${Te.default.parentDataProperty}`),t.var(Te.default.rootData,(0,fe._)`${Te.default.valCxt}.${Te.default.rootData}`),e.dynamicRef&&t.var(Te.default.dynamicAnchors,(0,fe._)`${Te.default.valCxt}.${Te.default.dynamicAnchors}`)},()=>{t.var(Te.default.instancePath,(0,fe._)`""`),t.var(Te.default.parentData,(0,fe._)`undefined`),t.var(Te.default.parentDataProperty,(0,fe._)`undefined`),t.var(Te.default.rootData,Te.default.data),e.dynamicRef&&t.var(Te.default.dynamicAnchors,(0,fe._)`{}`)})}function fQ(t){let{schema:e,opts:r,gen:n}=t;jj(t,()=>{r.$comment&&e.$comment&&Mj(t),bQ(t),n.let(Te.default.vErrors,null),n.let(Te.default.errors,0),r.unevaluated&&hQ(t),zj(t),wQ(t)})}function hQ(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,fe._)`${r}.evaluated`),e.if((0,fe._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,fe._)`${t.evaluated}.props`,(0,fe._)`undefined`)),e.if((0,fe._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,fe._)`${t.evaluated}.items`,(0,fe._)`undefined`))}function Pj(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,fe._)`/*# sourceURL=${r} */`:fe.nil}function gQ(t,e){if(Nj(t)&&(Dj(t),Aj(t))){vQ(t,e);return}(0,Oj.boolOrEmptySchema)(t,e)}function Aj({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function Nj(t){return typeof t.schema!="boolean"}function vQ(t,e){let{schema:r,gen:n,opts:s}=t;s.$comment&&r.$comment&&Mj(t),xQ(t),_Q(t);let i=n.const("_errs",Te.default.errors);zj(t,i),n.var(e,(0,fe._)`${i} === ${Te.default.errors}`)}function Dj(t){(0,ei.checkUnknownRules)(t),yQ(t)}function zj(t,e){if(t.opts.jtd)return Ij(t,[],!1,e);let r=(0,Rj.getSchemaTypes)(t.schema),n=(0,Rj.coerceAndCheckDataType)(t,r);Ij(t,r,!n,e)}function yQ(t){let{schema:e,errSchemaPath:r,opts:n,self:s}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,ei.schemaHasRulesButRef)(e,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function bQ(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,ei.checkStrictMode)(t,"default is ignored in the schema root")}function xQ(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,uQ.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function _Q(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Mj({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:s}){let i=r.$comment;if(s.$comment===!0)t.code((0,fe._)`${Te.default.self}.logger.log(${i})`);else if(typeof s.$comment=="function"){let a=(0,fe.str)`${n}/$comment`,o=t.scopeValue("root",{ref:e.root});t.code((0,fe._)`${Te.default.self}.opts.$comment(${i}, ${a}, ${o}.schema)`)}}function wQ(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:s,opts:i}=t;r.$async?e.if((0,fe._)`${Te.default.errors} === 0`,()=>e.return(Te.default.data),()=>e.throw((0,fe._)`new ${s}(${Te.default.vErrors})`)):(e.assign((0,fe._)`${n}.errors`,Te.default.vErrors),i.unevaluated&&SQ(t),e.return((0,fe._)`${Te.default.errors} === 0`))}function SQ({gen:t,evaluated:e,props:r,items:n}){r instanceof fe.Name&&t.assign((0,fe._)`${e}.props`,r),n instanceof fe.Name&&t.assign((0,fe._)`${e}.items`,n)}function Ij(t,e,r,n){let{gen:s,schema:i,data:a,allErrors:o,opts:c,self:l}=t,{RULES:u}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,ei.schemaHasRulesButRef)(i,u))){s.block(()=>Lj(t,"$ref",u.all.$ref.definition));return}c.jtd||kQ(t,e),s.block(()=>{for(let d of u.rules)p(d);p(u.post)});function p(d){(0,H_.shouldUseGroup)(i,d)&&(d.type?(s.if((0,vf.checkDataType)(d.type,a,c.strictNumbers)),Cj(t,d),e.length===1&&e[0]===d.type&&r&&(s.else(),(0,vf.reportTypeError)(t)),s.endIf()):Cj(t,d),o||s.if((0,fe._)`${Te.default.errors} === ${n||0}`))}}function Cj(t,e){let{gen:r,schema:n,opts:{useDefaults:s}}=t;s&&(0,lQ.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,H_.shouldUseRule)(n,i)&&Lj(t,i.keyword,i.definition,e.type)})}function kQ(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(EQ(t,e),t.opts.allowUnionTypes||TQ(t,e),RQ(t,t.dataTypes))}function EQ(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{$j(t.dataTypes,r)||B_(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),IQ(t,e)}}function TQ(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&B_(t,"use allowUnionTypes to allow union type keyword")}function RQ(t,e){let r=t.self.RULES.all;for(let n in r){let s=r[n];if(typeof s=="object"&&(0,H_.shouldUseRule)(t.schema,s)){let{type:i}=s.definition;i.length&&!i.some(a=>PQ(e,a))&&B_(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function PQ(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function $j(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function IQ(t,e){let r=[];for(let n of t.dataTypes)$j(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function B_(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,ei.checkStrictMode)(t,e,t.opts.strictTypes)}var yf=class{constructor(e,r,n){if((0,xu.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,ei.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",Uj(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,xu.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Te.default.errors))}result(e,r,n){this.failResult((0,fe.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,fe.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,fe._)`${r} !== undefined && (${(0,fe.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?bu.reportExtraError:bu.reportError)(this,this.def.error,r)}$dataError(){(0,bu.reportError)(this,this.def.$dataError||bu.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,bu.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=fe.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=fe.nil,r=fe.nil){if(!this.$data)return;let{gen:n,schemaCode:s,schemaType:i,def:a}=this;n.if((0,fe.or)((0,fe._)`${s} === undefined`,r)),e!==fe.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==fe.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:s,it:i}=this;return(0,fe.or)(a(),o());function a(){if(n.length){if(!(r instanceof fe.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,fe._)`${(0,vf.checkDataTypes)(c,r,i.opts.strictNumbers,vf.DataType.Wrong)}`}return fe.nil}function o(){if(s.validateSchema){let c=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,fe._)`!${c}(${r})`}return fe.nil}}subschema(e,r){let n=(0,F_.getSubschema)(this.it,e);(0,F_.extendSubschemaData)(n,this.it,e),(0,F_.extendSubschemaMode)(n,e);let s={...this.it,...n,items:void 0,props:void 0};return gQ(s,r),s}mergeEvaluated(e,r){let{it:n,gen:s}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=ei.mergeEvaluated.props(s,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=ei.mergeEvaluated.items(s,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:s}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return s.if(r,()=>this.mergeEvaluated(e,fe.Name)),!0}};Pi.KeywordCxt=yf;function Lj(t,e,r,n){let s=new yf(t,r,e);"code"in r?r.code(s,n):s.$data&&r.validate?(0,xu.funcKeywordCode)(s,r):"macro"in r?(0,xu.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,xu.funcKeywordCode)(s,r)}var CQ=/^\/(?:[^~]|~0|~1)*$/,OQ=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Uj(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let s,i;if(t==="")return Te.default.rootData;if(t[0]==="/"){if(!CQ.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);s=t,i=Te.default.rootData}else{let l=OQ.exec(t);if(!l)throw new Error(`Invalid JSON-pointer: ${t}`);let u=+l[1];if(s=l[2],s==="#"){if(u>=e)throw new Error(c("property/index",u));return n[e-u]}if(u>e)throw new Error(c("data",u));if(i=r[e-u],!s)return i}let a=i,o=s.split("/");for(let l of o)l&&(i=(0,fe._)`${i}${(0,fe.getProperty)((0,ei.unescapeJsonPointer)(l))}`,a=(0,fe._)`${a} && ${i}`);return a;function c(l,u){return`Cannot access ${l} ${u} levels up, current level is ${e}`}}Pi.getData=Uj});var bf=P(Z_=>{"use strict";Object.defineProperty(Z_,"__esModule",{value:!0});var W_=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Z_.default=W_});var wu=P(K_=>{"use strict";Object.defineProperty(K_,"__esModule",{value:!0});var G_=yu(),V_=class extends Error{constructor(e,r,n,s){super(s||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,G_.resolveUrl)(e,r,n),this.missingSchema=(0,G_.normalizeId)((0,G_.getFullPath)(e,this.missingRef))}};K_.default=V_});var _f=P(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.resolveSchema=Mn.getCompilingSchema=Mn.resolveRef=Mn.compileSchema=Mn.SchemaEnv=void 0;var is=Ae(),jQ=bf(),ya=Xs(),as=yu(),qj=Ke(),AQ=_u(),No=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,as.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Mn.SchemaEnv=No;function Q_(t){let e=Fj.call(this,t);if(e)return e;let r=(0,as.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:s}=this.opts.code,{ownProperties:i}=this.opts,a=new is.CodeGen(this.scope,{es5:n,lines:s,ownProperties:i}),o;t.$async&&(o=a.scopeValue("Error",{ref:jQ.default,code:(0,is._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");t.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:ya.default.data,parentData:ya.default.parentData,parentDataProperty:ya.default.parentDataProperty,dataNames:[ya.default.data],dataPathArr:[is.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,is.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:o,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:is.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,is._)`""`,opts:this.opts,self:this},u;try{this._compilations.add(t),(0,AQ.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();u=`${a.scopeRefs(ya.default.scope)}return ${p}`,this.opts.code.process&&(u=this.opts.code.process(u,t));let m=new Function(`${ya.default.self}`,`${ya.default.scope}`,u)(this,this.scope.get());if(this.scope.value(c,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:f,items:v}=l;m.evaluated={props:f instanceof is.Name?void 0:f,items:v instanceof is.Name?void 0:v,dynamicProps:f instanceof is.Name,dynamicItems:v instanceof is.Name},m.source&&(m.source.evaluated=(0,is.stringify)(m.evaluated))}return t.validate=m,t}catch(p){throw delete t.validate,delete t.validateName,u&&this.logger.error("Error compiling schema, function code:",u),p}finally{this._compilations.delete(t)}}Mn.compileSchema=Q_;function NQ(t,e,r){var n;r=(0,as.resolveUrl)(this.opts.uriResolver,e,r);let s=t.refs[r];if(s)return s;let i=MQ.call(this,t,r);if(i===void 0){let a=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;a&&(i=new No({schema:a,schemaId:o,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=DQ.call(this,i)}Mn.resolveRef=NQ;function DQ(t){return(0,as.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Q_.call(this,t)}function Fj(t){for(let e of this._compilations)if(zQ(e,t))return e}Mn.getCompilingSchema=Fj;function zQ(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function MQ(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||xf.call(this,t,e)}function xf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,as._getFullPath)(this.opts.uriResolver,r),s=(0,as.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===s)return J_.call(this,r,t);let i=(0,as.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let o=xf.call(this,t,a);return typeof o?.schema!="object"?void 0:J_.call(this,r,o)}if(typeof a?.schema=="object"){if(a.validate||Q_.call(this,a),i===(0,as.normalizeId)(e)){let{schema:o}=a,{schemaId:c}=this.opts,l=o[c];return l&&(s=(0,as.resolveUrl)(this.opts.uriResolver,s,l)),new No({schema:o,schemaId:c,root:t,baseId:s})}return J_.call(this,r,a)}}Mn.resolveSchema=xf;var $Q=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function J_(t,{baseId:e,schema:r,root:n}){var s;if(((s=t.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(let o of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,qj.unescapeFragment)(o)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!$Q.has(o)&&l&&(e=(0,as.resolveUrl)(this.opts.uriResolver,e,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,qj.schemaHasRulesButRef)(r,this.RULES)){let o=(0,as.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=xf.call(this,n,o)}let{schemaId:a}=this.opts;if(i=i||new No({schema:r,schemaId:a,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var Hj=P((zCe,LQ)=>{LQ.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var X_=P((MCe,Gj)=>{"use strict";var UQ=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Wj=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Y_(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var qQ=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Bj(t){return t.length=0,!0}function FQ(t,e,r){if(t.length){let n=Y_(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function HQ(t){let e=0,r={error:!1,address:"",zone:""},n=[],s=[],i=!1,a=!1,o=FQ;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!o(s,n,r))break;o=Bj}else{s.push(l);continue}}return s.length&&(o===Bj?r.zone=s.join(""):a?n.push(s.join("")):n.push(Y_(s))),r.address=n.join(""),r}function Zj(t){if(BQ(t,":")<2)return{host:t,isIPV6:!1};let e=HQ(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function BQ(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:VQ}=X_(),KQ=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,JQ=["http","https","ws","wss","urn","urn:uuid"];function QQ(t){return JQ.indexOf(t)!==-1}function e0(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function Vj(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function Kj(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function YQ(t){return t.secure=e0(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function XQ(t){if((t.port===(e0(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function eY(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(KQ);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let s=`${n}:${e.nid||t.nid}`,i=t0(s);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function tY(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),s=`${r}:${e.nid||n}`,i=t0(s);i&&(t=i.serialize(t,e));let a=t,o=t.nss;return a.path=`${n||e.nid}:${o}`,e.skipEscape=!0,a}function rY(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!VQ(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function nY(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Jj={scheme:"http",domainHost:!0,parse:Vj,serialize:Kj},sY={scheme:"https",domainHost:Jj.domainHost,parse:Vj,serialize:Kj},wf={scheme:"ws",domainHost:!0,parse:YQ,serialize:XQ},iY={scheme:"wss",domainHost:wf.domainHost,parse:wf.parse,serialize:wf.serialize},aY={scheme:"urn",parse:eY,serialize:tY,skipNormalize:!0},oY={scheme:"urn:uuid",parse:rY,serialize:nY,skipNormalize:!0},Sf={http:Jj,https:sY,ws:wf,wss:iY,urn:aY,"urn:uuid":oY};Object.setPrototypeOf(Sf,null);function t0(t){return t&&(Sf[t]||Sf[t.toLowerCase()])||void 0}Qj.exports={wsIsSecure:e0,SCHEMES:Sf,isValidSchemeName:QQ,getSchemeHandler:t0}});var tA=P((LCe,Ef)=>{"use strict";var{normalizeIPv6:cY,removeDotSegments:Su,recomposeAuthority:lY,normalizeComponentEncoding:kf,isIPv4:uY,nonSimpleDomain:pY}=X_(),{SCHEMES:dY,getSchemeHandler:Xj}=Yj();function mY(t,e){return typeof t=="string"?t=Is(ti(t,e),e):typeof t=="object"&&(t=ti(Is(t,e),e)),t}function fY(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},s=eA(ti(t,n),ti(e,n),n,!0);return n.skipEscape=!0,Is(s,n)}function eA(t,e,r,n){let s={};return n||(t=ti(Is(t,r),r),e=ti(Is(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(s.scheme=e.scheme,s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Su(e.path||""),s.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Su(e.path||""),s.query=e.query):(e.path?(e.path[0]==="/"?s.path=Su(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?s.path="/"+e.path:t.path?s.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:s.path=e.path,s.path=Su(s.path)),s.query=e.query):(s.path=t.path,e.query!==void 0?s.query=e.query:s.query=t.query),s.userinfo=t.userinfo,s.host=t.host,s.port=t.port),s.scheme=t.scheme),s.fragment=e.fragment,s}function hY(t,e,r){return typeof t=="string"?(t=unescape(t),t=Is(kf(ti(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Is(kf(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=Is(kf(ti(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Is(kf(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function Is(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),s=[],i=Xj(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&s.push(r.scheme,":");let a=lY(r);if(a!==void 0&&(n.reference!=="suffix"&&s.push("//"),s.push(a),r.path&&r.path[0]!=="/"&&s.push("/")),r.path!==void 0){let o=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(o=Su(o)),a===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),s.push(o)}return r.query!==void 0&&s.push("?",r.query),r.fragment!==void 0&&s.push("#",r.fragment),s.join("")}var gY=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ti(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},s=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(gY);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(uY(n.host)===!1){let c=cY(n.host);n.host=c.host.toLowerCase(),s=c.isIPV6}else s=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let a=Xj(r.scheme||n.scheme);if(!r.unicodeSupport&&(!a||!a.unicodeSupport)&&n.host&&(r.domainHost||a&&a.domainHost)&&s===!1&&pY(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(o){n.error=n.error||"Host's domain name can not be converted to ASCII: "+o}(!a||a&&!a.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var r0={SCHEMES:dY,normalize:mY,resolve:fY,resolveComponent:eA,equal:hY,serialize:Is,parse:ti};Ef.exports=r0;Ef.exports.default=r0;Ef.exports.fastUri=r0});var nA=P(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var rA=tA();rA.code='require("ajv/dist/runtime/uri").default';n0.default=rA});var pA=P(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.CodeGen=Sr.Name=Sr.nil=Sr.stringify=Sr.str=Sr._=Sr.KeywordCxt=void 0;var vY=_u();Object.defineProperty(Sr,"KeywordCxt",{enumerable:!0,get:function(){return vY.KeywordCxt}});var Do=Ae();Object.defineProperty(Sr,"_",{enumerable:!0,get:function(){return Do._}});Object.defineProperty(Sr,"str",{enumerable:!0,get:function(){return Do.str}});Object.defineProperty(Sr,"stringify",{enumerable:!0,get:function(){return Do.stringify}});Object.defineProperty(Sr,"nil",{enumerable:!0,get:function(){return Do.nil}});Object.defineProperty(Sr,"Name",{enumerable:!0,get:function(){return Do.Name}});Object.defineProperty(Sr,"CodeGen",{enumerable:!0,get:function(){return Do.CodeGen}});var yY=bf(),cA=wu(),bY=j_(),ku=_f(),xY=Ae(),Eu=yu(),Tf=vu(),i0=Ke(),sA=Hj(),_Y=nA(),lA=(t,e)=>new RegExp(t,e);lA.code="new RegExp";var wY=["removeAdditional","useDefaults","coerceTypes"],SY=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kY={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},EY={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},iA=200;function TY(t){var e,r,n,s,i,a,o,c,l,u,p,d,m,f,v,g,h,y,b,x,w,S,k,E,R;let O=t.strict,C=(e=t.code)===null||e===void 0?void 0:e.optimize,$=C===!0||C===void 0?1:C||0,q=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:lA,B=(s=t.uriResolver)!==null&&s!==void 0?s:_Y.default;return{strictSchema:(a=(i=t.strictSchema)!==null&&i!==void 0?i:O)!==null&&a!==void 0?a:!0,strictNumbers:(c=(o=t.strictNumbers)!==null&&o!==void 0?o:O)!==null&&c!==void 0?c:!0,strictTypes:(u=(l=t.strictTypes)!==null&&l!==void 0?l:O)!==null&&u!==void 0?u:"log",strictTuples:(d=(p=t.strictTuples)!==null&&p!==void 0?p:O)!==null&&d!==void 0?d:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:$,regExp:q}:{optimize:$,regExp:q},loopRequired:(v=t.loopRequired)!==null&&v!==void 0?v:iA,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:iA,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(y=t.messages)!==null&&y!==void 0?y:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(S=t.validateSchema)!==null&&S!==void 0?S:!0,validateFormats:(k=t.validateFormats)!==null&&k!==void 0?k:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:B}}var Tu=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...TY(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new xY.ValueScope({scope:{},prefixes:SY,es5:r,lines:n}),this.logger=jY(e.logger);let s=e.validateFormats;e.validateFormats=!1,this.RULES=(0,bY.getRules)(),aA.call(this,kY,e,"NOT SUPPORTED"),aA.call(this,EY,e,"DEPRECATED","warn"),this._metaOpts=CY.call(this),e.formats&&PY.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&IY.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),RY.call(this),e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,s=sA;n==="id"&&(s={...sA},s.id=s.$id,delete s.$id),r&&e&&this.addMetaSchema(s,s[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let s=n(r);return"$async"in n||(this.errors=n.errors),s}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return s.call(this,e,r);async function s(u,p){await i.call(this,u.$schema);let d=this._addSchema(u,p);return d.validate||a.call(this,d)}async function i(u){u&&!this.getSchema(u)&&await s.call(this,{$ref:u},!0)}async function a(u){try{return this._compileSchemaEnv(u)}catch(p){if(!(p instanceof cA.default))throw p;return o.call(this,p),await c.call(this,p.missingSchema),a.call(this,u)}}function o({missingSchema:u,missingRef:p}){if(this.refs[u])throw new Error(`AnySchema ${u} is loaded but ${p} cannot be resolved`)}async function c(u){let p=await l.call(this,u);this.refs[u]||await i.call(this,p.$schema),this.refs[u]||this.addSchema(p,u,r)}async function l(u){let p=this._loading[u];if(p)return p;try{return await(this._loading[u]=n(u))}finally{delete this._loading[u]}}}addSchema(e,r,n,s=this.opts.validateSchema){if(Array.isArray(e)){for(let a of e)this.addSchema(a,void 0,n,s);return this}let i;if(typeof e=="object"){let{schemaId:a}=this.opts;if(i=e[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Eu.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,s,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let s=this.validate(n,e);if(!s&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return s}getSchema(e){let r;for(;typeof(r=oA.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,s=new ku.SchemaEnv({schema:{},schemaId:n});if(r=ku.resolveSchema.call(this,s,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=oA.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Eu.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(NY.call(this,n,r),!r)return(0,i0.eachItem)(n,i=>s0.call(this,i)),this;zY.call(this,r);let s={...r,type:(0,Tf.getJSONTypes)(r.type),schemaType:(0,Tf.getJSONTypes)(r.schemaType)};return(0,i0.eachItem)(n,s.type.length===0?i=>s0.call(this,i,s):i=>s.type.forEach(a=>s0.call(this,i,s,a))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let s=n.rules.findIndex(i=>i.keyword===e);s>=0&&n.rules.splice(s,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(s=>`${n}${s.instancePath} ${s.message}`).reduce((s,i)=>s+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let s of r){let i=s.split("/").slice(1),a=e;for(let o of i)a=a[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:l}=c.definition,u=a[o];l&&u&&(a[o]=uA(u))}}return e}_removeAllSchemas(e,r){for(let n in e){let s=e[n];(!r||r.test(n))&&(typeof s=="string"?delete e[n]:s&&!s.meta&&(this._cache.delete(s.schema),delete e[n]))}}_addSchema(e,r,n,s=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:o}=this.opts;if(typeof e=="object")a=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Eu.normalizeId)(a||n);let l=Eu.getSchemaRefs.call(this,e,n);return c=new ku.SchemaEnv({schema:e,schemaId:o,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),s&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):ku.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{ku.compileSchema.call(this,e)}finally{this.opts=r}}};Tu.ValidationError=yY.default;Tu.MissingRefError=cA.default;Sr.default=Tu;function aA(t,e,r,n="error"){for(let s in t){let i=s;i in e&&this.logger[n](`${r}: option ${s}. ${t[i]}`)}}function oA(t){return t=(0,Eu.normalizeId)(t),this.schemas[t]||this.refs[t]}function RY(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function PY(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function IY(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function CY(){let t={...this.opts};for(let e of wY)delete t[e];return t}var OY={log(){},warn(){},error(){}};function jY(t){if(t===!1)return OY;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var AY=/^[a-z_$][a-z0-9_$:-]*$/i;function NY(t,e){let{RULES:r}=this;if((0,i0.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!AY.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function s0(t,e,r){var n;let s=e?.post;if(r&&s)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=s?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[t]=!0,!e)return;let o={keyword:t,definition:{...e,type:(0,Tf.getJSONTypes)(e.type),schemaType:(0,Tf.getJSONTypes)(e.schemaType)}};e.before?DY.call(this,a,o,e.before):a.rules.push(o),i.all[t]=o,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function DY(t,e,r){let n=t.rules.findIndex(s=>s.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function zY(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=uA(e)),t.validateSchema=this.compile(e,!0))}var MY={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function uA(t){return{anyOf:[t,MY]}}});var dA=P(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var $Y={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};a0.default=$Y});var gA=P(ba=>{"use strict";Object.defineProperty(ba,"__esModule",{value:!0});ba.callRef=ba.getValidate=void 0;var LY=wu(),mA=zn(),ln=Ae(),zo=Xs(),fA=_f(),Rf=Ke(),UY={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:s,schemaEnv:i,validateName:a,opts:o,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&s===l.baseId)return p();let u=fA.resolveRef.call(c,l,s,r);if(u===void 0)throw new LY.default(n.opts.uriResolver,s,r);if(u instanceof fA.SchemaEnv)return d(u);return m(u);function p(){if(i===l)return Pf(t,a,i,i.$async);let f=e.scopeValue("root",{ref:l});return Pf(t,(0,ln._)`${f}.validate`,l,l.$async)}function d(f){let v=hA(t,f);Pf(t,v,f,f.$async)}function m(f){let v=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,ln.stringify)(f)}:{ref:f}),g=e.name("valid"),h=t.subschema({schema:f,dataTypes:[],schemaPath:ln.nil,topSchemaRef:v,errSchemaPath:r},g);t.mergeEvaluated(h),t.ok(g)}}};function hA(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ln._)`${r.scopeValue("wrapper",{ref:e})}.validate`}ba.getValidate=hA;function Pf(t,e,r,n){let{gen:s,it:i}=t,{allErrors:a,schemaEnv:o,opts:c}=i,l=c.passContext?zo.default.this:ln.nil;n?u():p();function u(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=s.let("valid");s.try(()=>{s.code((0,ln._)`await ${(0,mA.callValidateCode)(t,e,l)}`),m(e),a||s.assign(f,!0)},v=>{s.if((0,ln._)`!(${v} instanceof ${i.ValidationError})`,()=>s.throw(v)),d(v),a||s.assign(f,!1)}),t.ok(f)}function p(){t.result((0,mA.callValidateCode)(t,e,l),()=>m(e),()=>d(e))}function d(f){let v=(0,ln._)`${f}.errors`;s.assign(zo.default.vErrors,(0,ln._)`${zo.default.vErrors} === null ? ${v} : ${zo.default.vErrors}.concat(${v})`),s.assign(zo.default.errors,(0,ln._)`${zo.default.vErrors}.length`)}function m(f){var v;if(!i.opts.unevaluated)return;let g=(v=r?.validate)===null||v===void 0?void 0:v.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Rf.mergeEvaluated.props(s,g.props,i.props));else{let h=s.var("props",(0,ln._)`${f}.evaluated.props`);i.props=Rf.mergeEvaluated.props(s,h,i.props,ln.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Rf.mergeEvaluated.items(s,g.items,i.items));else{let h=s.var("items",(0,ln._)`${f}.evaluated.items`);i.items=Rf.mergeEvaluated.items(s,h,i.items,ln.Name)}}}ba.callRef=Pf;ba.default=UY});var vA=P(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var qY=dA(),FY=gA(),HY=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",qY.default,FY.default];o0.default=HY});var yA=P(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var If=Ae(),Ii=If.operators,Cf={maximum:{okStr:"<=",ok:Ii.LTE,fail:Ii.GT},minimum:{okStr:">=",ok:Ii.GTE,fail:Ii.LT},exclusiveMaximum:{okStr:"<",ok:Ii.LT,fail:Ii.GTE},exclusiveMinimum:{okStr:">",ok:Ii.GT,fail:Ii.LTE}},BY={message:({keyword:t,schemaCode:e})=>(0,If.str)`must be ${Cf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,If._)`{comparison: ${Cf[t].okStr}, limit: ${e}}`},WY={keyword:Object.keys(Cf),type:"number",schemaType:"number",$data:!0,error:BY,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,If._)`${r} ${Cf[e].fail} ${n} || isNaN(${r})`)}};c0.default=WY});var bA=P(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var Ru=Ae(),ZY={message:({schemaCode:t})=>(0,Ru.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Ru._)`{multipleOf: ${t}}`},GY={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:ZY,code(t){let{gen:e,data:r,schemaCode:n,it:s}=t,i=s.opts.multipleOfPrecision,a=e.let("res"),o=i?(0,Ru._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Ru._)`${a} !== parseInt(${a})`;t.fail$data((0,Ru._)`(${n} === 0 || (${a} = ${r}/${n}, ${o}))`)}};l0.default=GY});var _A=P(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});function xA(t){let e=t.length,r=0,n=0,s;for(;n=55296&&s<=56319&&n{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var xa=Ae(),VY=Ke(),KY=_A(),JY={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,xa.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,xa._)`{limit: ${t}}`},QY={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:JY,code(t){let{keyword:e,data:r,schemaCode:n,it:s}=t,i=e==="maxLength"?xa.operators.GT:xa.operators.LT,a=s.opts.unicode===!1?(0,xa._)`${r}.length`:(0,xa._)`${(0,VY.useFunc)(t.gen,KY.default)}(${r})`;t.fail$data((0,xa._)`${a} ${i} ${n}`)}};p0.default=QY});var SA=P(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});var YY=zn(),XY=Ke(),Mo=Ae(),eX={message:({schemaCode:t})=>(0,Mo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Mo._)`{pattern: ${t}}`},tX={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:eX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,Mo._)`new RegExp`:(0,XY.useFunc)(e,c),u=e.let("valid");e.try(()=>e.assign(u,(0,Mo._)`${l}(${i}, ${o}).test(${r})`),()=>e.assign(u,!1)),t.fail$data((0,Mo._)`!${u}`)}else{let c=(0,YY.usePattern)(t,s);t.fail$data((0,Mo._)`!${c}.test(${r})`)}}};d0.default=tX});var kA=P(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var Pu=Ae(),rX={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Pu.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Pu._)`{limit: ${t}}`},nX={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:rX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxProperties"?Pu.operators.GT:Pu.operators.LT;t.fail$data((0,Pu._)`Object.keys(${r}).length ${s} ${n}`)}};m0.default=nX});var EA=P(f0=>{"use strict";Object.defineProperty(f0,"__esModule",{value:!0});var Iu=zn(),Cu=Ae(),sX=Ke(),iX={message:({params:{missingProperty:t}})=>(0,Cu.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Cu._)`{missingProperty: ${t}}`},aX={keyword:"required",type:"object",schemaType:"array",$data:!0,error:iX,code(t){let{gen:e,schema:r,schemaCode:n,data:s,$data:i,it:a}=t,{opts:o}=a;if(!i&&r.length===0)return;let c=r.length>=o.loopRequired;if(a.allErrors?l():u(),o.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let v of r)if(m?.[v]===void 0&&!f.has(v)){let g=a.schemaEnv.baseId+a.errSchemaPath,h=`required property "${v}" is not defined at "${g}" (strictRequired)`;(0,sX.checkStrictMode)(a,h,a.opts.strictRequired)}}function l(){if(c||i)t.block$data(Cu.nil,p);else for(let m of r)(0,Iu.checkReportMissingProp)(t,m)}function u(){let m=e.let("missing");if(c||i){let f=e.let("valid",!0);t.block$data(f,()=>d(m,f)),t.ok(f)}else e.if((0,Iu.checkMissingProp)(t,r,m)),(0,Iu.reportMissingProp)(t,m),e.else()}function p(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Iu.noPropertyInData)(e,s,m,o.ownProperties),()=>t.error())})}function d(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Iu.propertyInData)(e,s,m,o.ownProperties)),e.if((0,Cu.not)(f),()=>{t.error(),e.break()})},Cu.nil)}}};f0.default=aX});var TA=P(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});var Ou=Ae(),oX={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Ou.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Ou._)`{limit: ${t}}`},cX={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:oX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxItems"?Ou.operators.GT:Ou.operators.LT;t.fail$data((0,Ou._)`${r}.length ${s} ${n}`)}};h0.default=cX});var Of=P(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});var RA=U_();RA.code='require("ajv/dist/runtime/equal").default';g0.default=RA});var PA=P(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});var v0=vu(),kr=Ae(),lX=Ke(),uX=Of(),pX={message:({params:{i:t,j:e}})=>(0,kr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,kr._)`{i: ${t}, j: ${e}}`},dX={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:pX,code(t){let{gen:e,data:r,$data:n,schema:s,parentSchema:i,schemaCode:a,it:o}=t;if(!n&&!s)return;let c=e.let("valid"),l=i.items?(0,v0.getSchemaTypes)(i.items):[];t.block$data(c,u,(0,kr._)`${a} === false`),t.ok(c);function u(){let f=e.let("i",(0,kr._)`${r}.length`),v=e.let("j");t.setParams({i:f,j:v}),e.assign(c,!0),e.if((0,kr._)`${f} > 1`,()=>(p()?d:m)(f,v))}function p(){return l.length>0&&!l.some(f=>f==="object"||f==="array")}function d(f,v){let g=e.name("item"),h=(0,v0.checkDataTypes)(l,g,o.opts.strictNumbers,v0.DataType.Wrong),y=e.const("indices",(0,kr._)`{}`);e.for((0,kr._)`;${f}--;`,()=>{e.let(g,(0,kr._)`${r}[${f}]`),e.if(h,(0,kr._)`continue`),l.length>1&&e.if((0,kr._)`typeof ${g} == "string"`,(0,kr._)`${g} += "_"`),e.if((0,kr._)`typeof ${y}[${g}] == "number"`,()=>{e.assign(v,(0,kr._)`${y}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,kr._)`${y}[${g}] = ${f}`)})}function m(f,v){let g=(0,lX.useFunc)(e,uX.default),h=e.name("outer");e.label(h).for((0,kr._)`;${f}--;`,()=>e.for((0,kr._)`${v} = ${f}; ${v}--;`,()=>e.if((0,kr._)`${g}(${r}[${f}], ${r}[${v}])`,()=>{t.error(),e.assign(c,!1).break(h)})))}}};y0.default=dX});var IA=P(x0=>{"use strict";Object.defineProperty(x0,"__esModule",{value:!0});var b0=Ae(),mX=Ke(),fX=Of(),hX={message:"must be equal to constant",params:({schemaCode:t})=>(0,b0._)`{allowedValue: ${t}}`},gX={keyword:"const",$data:!0,error:hX,code(t){let{gen:e,data:r,$data:n,schemaCode:s,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,b0._)`!${(0,mX.useFunc)(e,fX.default)}(${r}, ${s})`):t.fail((0,b0._)`${i} !== ${r}`)}};x0.default=gX});var CA=P(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});var ju=Ae(),vX=Ke(),yX=Of(),bX={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,ju._)`{allowedValues: ${t}}`},xX={keyword:"enum",schemaType:"array",$data:!0,error:bX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t;if(!n&&s.length===0)throw new Error("enum must have non-empty array");let o=s.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,vX.useFunc)(e,yX.default)),u;if(o||n)u=e.let("valid"),t.block$data(u,p);else{if(!Array.isArray(s))throw new Error("ajv implementation error");let m=e.const("vSchema",i);u=(0,ju.or)(...s.map((f,v)=>d(m,v)))}t.pass(u);function p(){e.assign(u,!1),e.forOf("v",i,m=>e.if((0,ju._)`${l()}(${r}, ${m})`,()=>e.assign(u,!0).break()))}function d(m,f){let v=s[f];return typeof v=="object"&&v!==null?(0,ju._)`${l()}(${r}, ${m}[${f}])`:(0,ju._)`${r} === ${v}`}}};_0.default=xX});var OA=P(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});var _X=yA(),wX=bA(),SX=wA(),kX=SA(),EX=kA(),TX=EA(),RX=TA(),PX=PA(),IX=IA(),CX=CA(),OX=[_X.default,wX.default,SX.default,kX.default,EX.default,TX.default,RX.default,PX.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},IX.default,CX.default];w0.default=OX});var k0=P(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.validateAdditionalItems=void 0;var _a=Ae(),S0=Ke(),jX={message:({params:{len:t}})=>(0,_a.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,_a._)`{limit: ${t}}`},AX={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:jX,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,S0.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}jA(t,n)}};function jA(t,e){let{gen:r,schema:n,data:s,keyword:i,it:a}=t;a.items=!0;let o=r.const("len",(0,_a._)`${s}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,_a._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,S0.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,_a._)`${o} <= ${e.length}`);r.if((0,_a.not)(l),()=>c(l)),t.ok(l)}function c(l){r.forRange("i",e.length,o,u=>{t.subschema({keyword:i,dataProp:u,dataPropType:S0.Type.Num},l),a.allErrors||r.if((0,_a.not)(l),()=>r.break())})}}Au.validateAdditionalItems=jA;Au.default=AX});var E0=P(Nu=>{"use strict";Object.defineProperty(Nu,"__esModule",{value:!0});Nu.validateTuple=void 0;var AA=Ae(),jf=Ke(),NX=zn(),DX={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return NA(t,"additionalItems",e);r.items=!0,!(0,jf.alwaysValidSchema)(r,e)&&t.ok((0,NX.validateArray)(t))}};function NA(t,e,r=t.schema){let{gen:n,parentSchema:s,data:i,keyword:a,it:o}=t;u(s),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=jf.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),l=n.const("len",(0,AA._)`${i}.length`);r.forEach((p,d)=>{(0,jf.alwaysValidSchema)(o,p)||(n.if((0,AA._)`${l} > ${d}`,()=>t.subschema({keyword:a,schemaProp:d,dataProp:d},c)),t.ok(c))});function u(p){let{opts:d,errSchemaPath:m}=o,f=r.length,v=f===p.minItems&&(f===p.maxItems||p[e]===!1);if(d.strictTuples&&!v){let g=`"${a}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,jf.checkStrictMode)(o,g,d.strictTuples)}}}Nu.validateTuple=NA;Nu.default=DX});var DA=P(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});var zX=E0(),MX={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,zX.validateTuple)(t,"items")};T0.default=MX});var MA=P(R0=>{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});var zA=Ae(),$X=Ke(),LX=zn(),UX=k0(),qX={message:({params:{len:t}})=>(0,zA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zA._)`{limit: ${t}}`},FX={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:qX,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:s}=r;n.items=!0,!(0,$X.alwaysValidSchema)(n,e)&&(s?(0,UX.validateAdditionalItems)(t,s):t.ok((0,LX.validateArray)(t)))}};R0.default=FX});var $A=P(P0=>{"use strict";Object.defineProperty(P0,"__esModule",{value:!0});var $n=Ae(),Af=Ke(),HX={message:({params:{min:t,max:e}})=>e===void 0?(0,$n.str)`must contain at least ${t} valid item(s)`:(0,$n.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,$n._)`{minContains: ${t}}`:(0,$n._)`{minContains: ${t}, maxContains: ${e}}`},BX={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:HX,code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t,a,o,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,o=l):a=1;let u=e.const("len",(0,$n._)`${s}.length`);if(t.setParams({min:a,max:o}),o===void 0&&a===0){(0,Af.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&a>o){(0,Af.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Af.alwaysValidSchema)(i,r)){let v=(0,$n._)`${u} >= ${a}`;o!==void 0&&(v=(0,$n._)`${v} && ${u} <= ${o}`),t.pass(v);return}i.items=!0;let p=e.name("valid");o===void 0&&a===1?m(p,()=>e.if(p,()=>e.break())):a===0?(e.let(p,!0),o!==void 0&&e.if((0,$n._)`${s}.length > 0`,d)):(e.let(p,!1),d()),t.result(p,()=>t.reset());function d(){let v=e.name("_valid"),g=e.let("count",0);m(v,()=>e.if(v,()=>f(g)))}function m(v,g){e.forRange("i",0,u,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:Af.Type.Num,compositeRule:!0},v),g()})}function f(v){e.code((0,$n._)`${v}++`),o===void 0?e.if((0,$n._)`${v} >= ${a}`,()=>e.assign(p,!0).break()):(e.if((0,$n._)`${v} > ${o}`,()=>e.assign(p,!1).break()),a===1?e.assign(p,!0):e.if((0,$n._)`${v} >= ${a}`,()=>e.assign(p,!0)))}}};P0.default=BX});var qA=P(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.validateSchemaDeps=Cs.validatePropertyDeps=Cs.error=void 0;var I0=Ae(),WX=Ke(),Du=zn();Cs.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,I0.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,I0._)`{property: ${t}, + || ${a} === "boolean" || ${s} === null`).assign(o,(0,Ce._)`[${s}]`)}}}function EJ({gen:t,parentData:e,parentDataProperty:r},n){t.if((0,Ce._)`${e} !== undefined`,()=>t.assign((0,Ce._)`${e}[${r}]`,n))}function N_(t,e,r,n=Oo.Correct){let s=n===Oo.Correct?Ce.operators.EQ:Ce.operators.NEQ,i;switch(t){case"null":return(0,Ce._)`${e} ${s} null`;case"array":i=(0,Ce._)`Array.isArray(${e})`;break;case"object":i=(0,Ce._)`${e} && typeof ${e} == "object" && !Array.isArray(${e})`;break;case"integer":i=a((0,Ce._)`!(${e} % 1) && !isNaN(${e})`);break;case"number":i=a();break;default:return(0,Ce._)`typeof ${e} ${s} ${t}`}return n===Oo.Correct?i:(0,Ce.not)(i);function a(o=Ce.nil){return(0,Ce.and)((0,Ce._)`typeof ${e} == "number"`,o,r?(0,Ce._)`isFinite(${e})`:Ce.nil)}}Dr.checkDataType=N_;function D_(t,e,r,n){if(t.length===1)return N_(t[0],e,r,n);let s,i=(0,lj.toHash)(t);if(i.array&&i.object){let a=(0,Ce._)`typeof ${e} != "object"`;s=i.null?a:(0,Ce._)`!${e} || ${a}`,delete i.null,delete i.array,delete i.object}else s=Ce.nil;i.number&&delete i.integer;for(let a in i)s=(0,Ce.and)(s,N_(a,e,r,n));return s}Dr.checkDataTypes=D_;var TJ={message:({schema:t})=>`must be ${t}`,params:({schema:t,schemaValue:e})=>typeof t=="string"?(0,Ce._)`{type: ${t}}`:(0,Ce._)`{type: ${e}}`};function z_(t){let e=RJ(t);(0,xJ.reportError)(e,TJ)}Dr.reportTypeError=z_;function RJ(t){let{gen:e,data:r,schema:n}=t,s=(0,lj.schemaRefOrVal)(t,n,"type");return{gen:e,keyword:"type",data:r,schema:n.type,schemaCode:s,schemaValue:s,parentSchema:n,params:{},it:t}}});var mj=P(hf=>{"use strict";Object.defineProperty(hf,"__esModule",{value:!0});hf.assignDefaults=void 0;var jo=Ae(),PJ=Ke();function IJ(t,e){let{properties:r,items:n}=t.schema;if(e==="object"&&r)for(let s in r)dj(t,s,r[s].default);else e==="array"&&Array.isArray(n)&&n.forEach((s,i)=>dj(t,i,s.default))}hf.assignDefaults=IJ;function dj(t,e,r){let{gen:n,compositeRule:s,data:i,opts:a}=t;if(r===void 0)return;let o=(0,jo._)`${i}${(0,jo.getProperty)(e)}`;if(s){(0,PJ.checkStrictMode)(t,`default is ignored for: ${o}`);return}let c=(0,jo._)`${o} === undefined`;a.useDefaults==="empty"&&(c=(0,jo._)`${c} || ${o} === null || ${o} === ""`),n.if(c,(0,jo._)`${o} = ${(0,jo.stringify)(r)}`)}});var zn=P(ht=>{"use strict";Object.defineProperty(ht,"__esModule",{value:!0});ht.validateUnion=ht.validateArray=ht.usePattern=ht.callValidateCode=ht.schemaProperties=ht.allSchemaProperties=ht.noPropertyInData=ht.propertyInData=ht.isOwnProperty=ht.hasPropFunc=ht.reportMissingProp=ht.checkMissingProp=ht.checkReportMissingProp=void 0;var It=Ae(),M_=Ke(),Ei=Xs(),CJ=Ke();function OJ(t,e){let{gen:r,data:n,it:s}=t;r.if(L_(r,n,e,s.opts.ownProperties),()=>{t.setParams({missingProperty:(0,It._)`${e}`},!0),t.error()})}ht.checkReportMissingProp=OJ;function jJ({gen:t,data:e,it:{opts:r}},n,s){return(0,It.or)(...n.map(i=>(0,It.and)(L_(t,e,i,r.ownProperties),(0,It._)`${s} = ${i}`)))}ht.checkMissingProp=jJ;function AJ(t,e){t.setParams({missingProperty:e},!0),t.error()}ht.reportMissingProp=AJ;function fj(t){return t.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,It._)`Object.prototype.hasOwnProperty`})}ht.hasPropFunc=fj;function $_(t,e,r){return(0,It._)`${fj(t)}.call(${e}, ${r})`}ht.isOwnProperty=$_;function NJ(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} !== undefined`;return n?(0,It._)`${s} && ${$_(t,e,r)}`:s}ht.propertyInData=NJ;function L_(t,e,r,n){let s=(0,It._)`${e}${(0,It.getProperty)(r)} === undefined`;return n?(0,It.or)(s,(0,It.not)($_(t,e,r))):s}ht.noPropertyInData=L_;function hj(t){return t?Object.keys(t).filter(e=>e!=="__proto__"):[]}ht.allSchemaProperties=hj;function DJ(t,e){return hj(e).filter(r=>!(0,M_.alwaysValidSchema)(t,e[r]))}ht.schemaProperties=DJ;function zJ({schemaCode:t,data:e,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:i},it:a},o,c,l){let u=l?(0,It._)`${t}, ${e}, ${n}${s}`:e,p=[[Ei.default.instancePath,(0,It.strConcat)(Ei.default.instancePath,i)],[Ei.default.parentData,a.parentData],[Ei.default.parentDataProperty,a.parentDataProperty],[Ei.default.rootData,Ei.default.rootData]];a.opts.dynamicRef&&p.push([Ei.default.dynamicAnchors,Ei.default.dynamicAnchors]);let d=(0,It._)`${u}, ${r.object(...p)}`;return c!==It.nil?(0,It._)`${o}.call(${c}, ${d})`:(0,It._)`${o}(${d})`}ht.callValidateCode=zJ;var MJ=(0,It._)`new RegExp`;function $J({gen:t,it:{opts:e}},r){let n=e.unicodeRegExp?"u":"",{regExp:s}=e.code,i=s(r,n);return t.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,It._)`${s.code==="new RegExp"?MJ:(0,CJ.useFunc)(t,s)}(${r}, ${n})`})}ht.usePattern=$J;function LJ(t){let{gen:e,data:r,keyword:n,it:s}=t,i=e.name("valid");if(s.allErrors){let o=e.let("valid",!0);return a(()=>e.assign(o,!1)),o}return e.var(i,!0),a(()=>e.break()),i;function a(o){let c=e.const("len",(0,It._)`${r}.length`);e.forRange("i",0,c,l=>{t.subschema({keyword:n,dataProp:l,dataPropType:M_.Type.Num},i),e.if((0,It.not)(i),o)})}}ht.validateArray=LJ;function UJ(t){let{gen:e,schema:r,keyword:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(c=>(0,M_.alwaysValidSchema)(s,c))&&!s.opts.unevaluated)return;let a=e.let("valid",!1),o=e.name("_valid");e.block(()=>r.forEach((c,l)=>{let u=t.subschema({keyword:n,schemaProp:l,compositeRule:!0},o);e.assign(a,(0,It._)`${a} || ${o}`),t.mergeValidEvaluated(u,o)||e.if((0,It.not)(a))})),t.result(a,()=>t.reset(),()=>t.error(!0))}ht.validateUnion=UJ});var yj=P(Rs=>{"use strict";Object.defineProperty(Rs,"__esModule",{value:!0});Rs.validateKeywordUsage=Rs.validSchemaType=Rs.funcKeywordCode=Rs.macroKeywordCode=void 0;var Lr=Ae(),ya=Xs(),qJ=zn(),FJ=gu();function HJ(t,e){let{gen:r,keyword:n,schema:s,parentSchema:i,it:a}=t,o=e.macro.call(a.self,s,i,a),c=vj(r,n,o);a.opts.validateSchema!==!1&&a.self.validateSchema(o,!0);let l=r.name("valid");t.subschema({schema:o,schemaPath:Lr.nil,errSchemaPath:`${a.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:!0},l),t.pass(l,()=>t.error(!0))}Rs.macroKeywordCode=HJ;function BJ(t,e){var r;let{gen:n,keyword:s,schema:i,parentSchema:a,$data:o,it:c}=t;ZJ(c,e);let l=!o&&e.compile?e.compile.call(c.self,i,a,c):e.validate,u=vj(n,s,l),p=n.let("valid");t.block$data(p,d),t.ok((r=e.valid)!==null&&r!==void 0?r:p);function d(){if(e.errors===!1)v(),e.modifying&&gj(t),g(()=>t.error());else{let h=e.async?m():f();e.modifying&&gj(t),g(()=>WJ(t,h))}}function m(){let h=n.let("ruleErrs",null);return n.try(()=>v((0,Lr._)`await `),y=>n.assign(p,!1).if((0,Lr._)`${y} instanceof ${c.ValidationError}`,()=>n.assign(h,(0,Lr._)`${y}.errors`),()=>n.throw(y))),h}function f(){let h=(0,Lr._)`${u}.errors`;return n.assign(h,null),v(Lr.nil),h}function v(h=e.async?(0,Lr._)`await `:Lr.nil){let y=c.opts.passContext?ya.default.this:ya.default.self,b=!("compile"in e&&!o||e.schema===!1);n.assign(p,(0,Lr._)`${h}${(0,qJ.callValidateCode)(t,u,y,b)}`,e.modifying)}function g(h){var y;n.if((0,Lr.not)((y=e.valid)!==null&&y!==void 0?y:p),h)}}Rs.funcKeywordCode=BJ;function gj(t){let{gen:e,data:r,it:n}=t;e.if(n.parentData,()=>e.assign(r,(0,Lr._)`${n.parentData}[${n.parentDataProperty}]`))}function WJ(t,e){let{gen:r}=t;r.if((0,Lr._)`Array.isArray(${e})`,()=>{r.assign(ya.default.vErrors,(0,Lr._)`${ya.default.vErrors} === null ? ${e} : ${ya.default.vErrors}.concat(${e})`).assign(ya.default.errors,(0,Lr._)`${ya.default.vErrors}.length`),(0,FJ.extendErrors)(t)},()=>t.error())}function ZJ({schemaEnv:t},e){if(e.async&&!t.$async)throw new Error("async keyword in sync schema")}function vj(t,e,r){if(r===void 0)throw new Error(`keyword "${e}" failed to compile`);return t.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,Lr.stringify)(r)})}function GJ(t,e,r=!1){return!e.length||e.some(n=>n==="array"?Array.isArray(t):n==="object"?t&&typeof t=="object"&&!Array.isArray(t):typeof t==n||r&&typeof t>"u")}Rs.validSchemaType=GJ;function VJ({schema:t,opts:e,self:r,errSchemaPath:n},s,i){if(Array.isArray(s.keyword)?!s.keyword.includes(i):s.keyword!==i)throw new Error("ajv implementation error");let a=s.dependencies;if(a?.some(o=>!Object.prototype.hasOwnProperty.call(t,o)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(s.validateSchema&&!s.validateSchema(t[i])){let c=`keyword "${i}" value is invalid at path "${n}": `+r.errorsText(s.validateSchema.errors);if(e.validateSchema==="log")r.logger.error(c);else throw new Error(c)}}Rs.validateKeywordUsage=VJ});var xj=P(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});Ti.extendSubschemaMode=Ti.extendSubschemaData=Ti.getSubschema=void 0;var Ps=Ae(),bj=Ke();function KJ(t,{keyword:e,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:i,topSchemaRef:a}){if(e!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(e!==void 0){let o=t.schema[e];return r===void 0?{schema:o,schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}`,errSchemaPath:`${t.errSchemaPath}/${e}`}:{schema:o[r],schemaPath:(0,Ps._)`${t.schemaPath}${(0,Ps.getProperty)(e)}${(0,Ps.getProperty)(r)}`,errSchemaPath:`${t.errSchemaPath}/${e}/${(0,bj.escapeFragment)(r)}`}}if(n!==void 0){if(s===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:s,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}Ti.getSubschema=KJ;function JJ(t,e,{dataProp:r,dataPropType:n,data:s,dataTypes:i,propertyName:a}){if(s!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:o}=e;if(r!==void 0){let{errorPath:l,dataPathArr:u,opts:p}=e,d=o.let("data",(0,Ps._)`${e.data}${(0,Ps.getProperty)(r)}`,!0);c(d),t.errorPath=(0,Ps.str)`${l}${(0,bj.getErrorPath)(r,n,p.jsPropertySyntax)}`,t.parentDataProperty=(0,Ps._)`${r}`,t.dataPathArr=[...u,t.parentDataProperty]}if(s!==void 0){let l=s instanceof Ps.Name?s:o.let("data",s,!0);c(l),a!==void 0&&(t.propertyName=a)}i&&(t.dataTypes=i);function c(l){t.data=l,t.dataLevel=e.dataLevel+1,t.dataTypes=[],e.definedProperties=new Set,t.parentData=e.data,t.dataNames=[...e.dataNames,l]}}Ti.extendSubschemaData=JJ;function QJ(t,{jtdDiscriminator:e,jtdMetadata:r,compositeRule:n,createErrors:s,allErrors:i}){n!==void 0&&(t.compositeRule=n),s!==void 0&&(t.createErrors=s),i!==void 0&&(t.allErrors=i),t.jtdDiscriminator=e,t.jtdMetadata=r}Ti.extendSubschemaMode=QJ});var U_=P((ICe,_j)=>{"use strict";_j.exports=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,s,i;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(s=n;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=n;s--!==0;){var a=i[s];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}});var Sj=P((CCe,wj)=>{"use strict";var Ri=wj.exports=function(t,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var n=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};gf(e,n,s,t,"",t)};Ri.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};Ri.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Ri.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Ri.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function gf(t,e,r,n,s,i,a,o,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){e(n,s,i,a,o,c,l);for(var u in n){var p=n[u];if(Array.isArray(p)){if(u in Ri.arrayKeywords)for(var d=0;d{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.getSchemaRefs=cn.resolveUrl=cn.normalizeId=cn._getFullPath=cn.getFullPath=cn.inlineRef=void 0;var XJ=Ke(),eQ=U_(),tQ=Sj(),rQ=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function nQ(t,e=!0){return typeof t=="boolean"?!0:e===!0?!q_(t):e?kj(t)<=e:!1}cn.inlineRef=nQ;var sQ=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function q_(t){for(let e in t){if(sQ.has(e))return!0;let r=t[e];if(Array.isArray(r)&&r.some(q_)||typeof r=="object"&&q_(r))return!0}return!1}function kj(t){let e=0;for(let r in t){if(r==="$ref")return 1/0;if(e++,!rQ.has(r)&&(typeof t[r]=="object"&&(0,XJ.eachItem)(t[r],n=>e+=kj(n)),e===1/0))return 1/0}return e}function Ej(t,e="",r){r!==!1&&(e=Ao(e));let n=t.parse(e);return Tj(t,n)}cn.getFullPath=Ej;function Tj(t,e){return t.serialize(e).split("#")[0]+"#"}cn._getFullPath=Tj;var iQ=/#\/?$/;function Ao(t){return t?t.replace(iQ,""):""}cn.normalizeId=Ao;function aQ(t,e,r){return r=Ao(r),t.resolve(e,r)}cn.resolveUrl=aQ;var oQ=/^[a-z_][-a-z0-9._]*$/i;function cQ(t,e){if(typeof t=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,s=Ao(t[r]||e),i={"":s},a=Ej(n,s,!1),o={},c=new Set;return tQ(t,{allKeys:!0},(p,d,m,f)=>{if(f===void 0)return;let v=a+d,g=i[f];typeof p[r]=="string"&&(g=h.call(this,p[r])),y.call(this,p.$anchor),y.call(this,p.$dynamicAnchor),i[d]=g;function h(b){let x=this.opts.uriResolver.resolve;if(b=Ao(g?x(g,b):b),c.has(b))throw u(b);c.add(b);let w=this.refs[b];return typeof w=="string"&&(w=this.refs[w]),typeof w=="object"?l(p,w.schema,b):b!==Ao(v)&&(b[0]==="#"?(l(p,o[b],b),o[b]=p):this.refs[b]=v),b}function y(b){if(typeof b=="string"){if(!oQ.test(b))throw new Error(`invalid anchor "${b}"`);h.call(this,`#${b}`)}}}),o;function l(p,d,m){if(d!==void 0&&!eQ(p,d))throw u(m)}function u(p){return new Error(`reference "${p}" resolves to more than one schema`)}}cn.getSchemaRefs=cQ});var _u=P(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.getData=Pi.KeywordCxt=Pi.validateFunctionCode=void 0;var Oj=aj(),Rj=vu(),H_=A_(),vf=vu(),lQ=mj(),xu=yj(),F_=xj(),fe=Ae(),Te=Xs(),uQ=yu(),ei=Ke(),bu=gu();function pQ(t){if(Nj(t)&&(Dj(t),Aj(t))){fQ(t);return}jj(t,()=>(0,Oj.topBoolOrEmptySchema)(t))}Pi.validateFunctionCode=pQ;function jj({gen:t,validateName:e,schema:r,schemaEnv:n,opts:s},i){s.code.es5?t.func(e,(0,fe._)`${Te.default.data}, ${Te.default.valCxt}`,n.$async,()=>{t.code((0,fe._)`"use strict"; ${Pj(r,s)}`),mQ(t,s),t.code(i)}):t.func(e,(0,fe._)`${Te.default.data}, ${dQ(s)}`,n.$async,()=>t.code(Pj(r,s)).code(i))}function dQ(t){return(0,fe._)`{${Te.default.instancePath}="", ${Te.default.parentData}, ${Te.default.parentDataProperty}, ${Te.default.rootData}=${Te.default.data}${t.dynamicRef?(0,fe._)`, ${Te.default.dynamicAnchors}={}`:fe.nil}}={}`}function mQ(t,e){t.if(Te.default.valCxt,()=>{t.var(Te.default.instancePath,(0,fe._)`${Te.default.valCxt}.${Te.default.instancePath}`),t.var(Te.default.parentData,(0,fe._)`${Te.default.valCxt}.${Te.default.parentData}`),t.var(Te.default.parentDataProperty,(0,fe._)`${Te.default.valCxt}.${Te.default.parentDataProperty}`),t.var(Te.default.rootData,(0,fe._)`${Te.default.valCxt}.${Te.default.rootData}`),e.dynamicRef&&t.var(Te.default.dynamicAnchors,(0,fe._)`${Te.default.valCxt}.${Te.default.dynamicAnchors}`)},()=>{t.var(Te.default.instancePath,(0,fe._)`""`),t.var(Te.default.parentData,(0,fe._)`undefined`),t.var(Te.default.parentDataProperty,(0,fe._)`undefined`),t.var(Te.default.rootData,Te.default.data),e.dynamicRef&&t.var(Te.default.dynamicAnchors,(0,fe._)`{}`)})}function fQ(t){let{schema:e,opts:r,gen:n}=t;jj(t,()=>{r.$comment&&e.$comment&&Mj(t),bQ(t),n.let(Te.default.vErrors,null),n.let(Te.default.errors,0),r.unevaluated&&hQ(t),zj(t),wQ(t)})}function hQ(t){let{gen:e,validateName:r}=t;t.evaluated=e.const("evaluated",(0,fe._)`${r}.evaluated`),e.if((0,fe._)`${t.evaluated}.dynamicProps`,()=>e.assign((0,fe._)`${t.evaluated}.props`,(0,fe._)`undefined`)),e.if((0,fe._)`${t.evaluated}.dynamicItems`,()=>e.assign((0,fe._)`${t.evaluated}.items`,(0,fe._)`undefined`))}function Pj(t,e){let r=typeof t=="object"&&t[e.schemaId];return r&&(e.code.source||e.code.process)?(0,fe._)`/*# sourceURL=${r} */`:fe.nil}function gQ(t,e){if(Nj(t)&&(Dj(t),Aj(t))){vQ(t,e);return}(0,Oj.boolOrEmptySchema)(t,e)}function Aj({schema:t,self:e}){if(typeof t=="boolean")return!t;for(let r in t)if(e.RULES.all[r])return!0;return!1}function Nj(t){return typeof t.schema!="boolean"}function vQ(t,e){let{schema:r,gen:n,opts:s}=t;s.$comment&&r.$comment&&Mj(t),xQ(t),_Q(t);let i=n.const("_errs",Te.default.errors);zj(t,i),n.var(e,(0,fe._)`${i} === ${Te.default.errors}`)}function Dj(t){(0,ei.checkUnknownRules)(t),yQ(t)}function zj(t,e){if(t.opts.jtd)return Ij(t,[],!1,e);let r=(0,Rj.getSchemaTypes)(t.schema),n=(0,Rj.coerceAndCheckDataType)(t,r);Ij(t,r,!n,e)}function yQ(t){let{schema:e,errSchemaPath:r,opts:n,self:s}=t;e.$ref&&n.ignoreKeywordsWithRef&&(0,ei.schemaHasRulesButRef)(e,s.RULES)&&s.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function bQ(t){let{schema:e,opts:r}=t;e.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,ei.checkStrictMode)(t,"default is ignored in the schema root")}function xQ(t){let e=t.schema[t.opts.schemaId];e&&(t.baseId=(0,uQ.resolveUrl)(t.opts.uriResolver,t.baseId,e))}function _Q(t){if(t.schema.$async&&!t.schemaEnv.$async)throw new Error("async schema in sync schema")}function Mj({gen:t,schemaEnv:e,schema:r,errSchemaPath:n,opts:s}){let i=r.$comment;if(s.$comment===!0)t.code((0,fe._)`${Te.default.self}.logger.log(${i})`);else if(typeof s.$comment=="function"){let a=(0,fe.str)`${n}/$comment`,o=t.scopeValue("root",{ref:e.root});t.code((0,fe._)`${Te.default.self}.opts.$comment(${i}, ${a}, ${o}.schema)`)}}function wQ(t){let{gen:e,schemaEnv:r,validateName:n,ValidationError:s,opts:i}=t;r.$async?e.if((0,fe._)`${Te.default.errors} === 0`,()=>e.return(Te.default.data),()=>e.throw((0,fe._)`new ${s}(${Te.default.vErrors})`)):(e.assign((0,fe._)`${n}.errors`,Te.default.vErrors),i.unevaluated&&SQ(t),e.return((0,fe._)`${Te.default.errors} === 0`))}function SQ({gen:t,evaluated:e,props:r,items:n}){r instanceof fe.Name&&t.assign((0,fe._)`${e}.props`,r),n instanceof fe.Name&&t.assign((0,fe._)`${e}.items`,n)}function Ij(t,e,r,n){let{gen:s,schema:i,data:a,allErrors:o,opts:c,self:l}=t,{RULES:u}=l;if(i.$ref&&(c.ignoreKeywordsWithRef||!(0,ei.schemaHasRulesButRef)(i,u))){s.block(()=>Lj(t,"$ref",u.all.$ref.definition));return}c.jtd||kQ(t,e),s.block(()=>{for(let d of u.rules)p(d);p(u.post)});function p(d){(0,H_.shouldUseGroup)(i,d)&&(d.type?(s.if((0,vf.checkDataType)(d.type,a,c.strictNumbers)),Cj(t,d),e.length===1&&e[0]===d.type&&r&&(s.else(),(0,vf.reportTypeError)(t)),s.endIf()):Cj(t,d),o||s.if((0,fe._)`${Te.default.errors} === ${n||0}`))}}function Cj(t,e){let{gen:r,schema:n,opts:{useDefaults:s}}=t;s&&(0,lQ.assignDefaults)(t,e.type),r.block(()=>{for(let i of e.rules)(0,H_.shouldUseRule)(n,i)&&Lj(t,i.keyword,i.definition,e.type)})}function kQ(t,e){t.schemaEnv.meta||!t.opts.strictTypes||(EQ(t,e),t.opts.allowUnionTypes||TQ(t,e),RQ(t,t.dataTypes))}function EQ(t,e){if(e.length){if(!t.dataTypes.length){t.dataTypes=e;return}e.forEach(r=>{$j(t.dataTypes,r)||B_(t,`type "${r}" not allowed by context "${t.dataTypes.join(",")}"`)}),IQ(t,e)}}function TQ(t,e){e.length>1&&!(e.length===2&&e.includes("null"))&&B_(t,"use allowUnionTypes to allow union type keyword")}function RQ(t,e){let r=t.self.RULES.all;for(let n in r){let s=r[n];if(typeof s=="object"&&(0,H_.shouldUseRule)(t.schema,s)){let{type:i}=s.definition;i.length&&!i.some(a=>PQ(e,a))&&B_(t,`missing type "${i.join(",")}" for keyword "${n}"`)}}}function PQ(t,e){return t.includes(e)||e==="number"&&t.includes("integer")}function $j(t,e){return t.includes(e)||e==="integer"&&t.includes("number")}function IQ(t,e){let r=[];for(let n of t.dataTypes)$j(e,n)?r.push(n):e.includes("integer")&&n==="number"&&r.push("integer");t.dataTypes=r}function B_(t,e){let r=t.schemaEnv.baseId+t.errSchemaPath;e+=` at "${r}" (strictTypes)`,(0,ei.checkStrictMode)(t,e,t.opts.strictTypes)}var yf=class{constructor(e,r,n){if((0,xu.validateKeywordUsage)(e,r,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=r.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,ei.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=r,this.$data)this.schemaCode=e.gen.const("vSchema",Uj(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,xu.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=e.gen.const("_errs",Te.default.errors))}result(e,r,n){this.failResult((0,fe.not)(e),r,n)}failResult(e,r,n){this.gen.if(e),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,r){this.failResult((0,fe.not)(e),void 0,r)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:r}=this;this.fail((0,fe._)`${r} !== undefined && (${(0,fe.or)(this.invalid$data(),e)})`)}error(e,r,n){if(r){this.setParams(r),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,r){(e?bu.reportExtraError:bu.reportError)(this,this.def.error,r)}$dataError(){(0,bu.reportError)(this,this.def.$dataError||bu.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,bu.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,r){r?Object.assign(this.params,e):this.params=e}block$data(e,r,n=fe.nil){this.gen.block(()=>{this.check$data(e,n),r()})}check$data(e=fe.nil,r=fe.nil){if(!this.$data)return;let{gen:n,schemaCode:s,schemaType:i,def:a}=this;n.if((0,fe.or)((0,fe._)`${s} === undefined`,r)),e!==fe.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==fe.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:r,schemaType:n,def:s,it:i}=this;return(0,fe.or)(a(),o());function a(){if(n.length){if(!(r instanceof fe.Name))throw new Error("ajv implementation error");let c=Array.isArray(n)?n:[n];return(0,fe._)`${(0,vf.checkDataTypes)(c,r,i.opts.strictNumbers,vf.DataType.Wrong)}`}return fe.nil}function o(){if(s.validateSchema){let c=e.scopeValue("validate$data",{ref:s.validateSchema});return(0,fe._)`!${c}(${r})`}return fe.nil}}subschema(e,r){let n=(0,F_.getSubschema)(this.it,e);(0,F_.extendSubschemaData)(n,this.it,e),(0,F_.extendSubschemaMode)(n,e);let s={...this.it,...n,items:void 0,props:void 0};return gQ(s,r),s}mergeEvaluated(e,r){let{it:n,gen:s}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=ei.mergeEvaluated.props(s,e.props,n.props,r)),n.items!==!0&&e.items!==void 0&&(n.items=ei.mergeEvaluated.items(s,e.items,n.items,r)))}mergeValidEvaluated(e,r){let{it:n,gen:s}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return s.if(r,()=>this.mergeEvaluated(e,fe.Name)),!0}};Pi.KeywordCxt=yf;function Lj(t,e,r,n){let s=new yf(t,r,e);"code"in r?r.code(s,n):s.$data&&r.validate?(0,xu.funcKeywordCode)(s,r):"macro"in r?(0,xu.macroKeywordCode)(s,r):(r.compile||r.validate)&&(0,xu.funcKeywordCode)(s,r)}var CQ=/^\/(?:[^~]|~0|~1)*$/,OQ=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Uj(t,{dataLevel:e,dataNames:r,dataPathArr:n}){let s,i;if(t==="")return Te.default.rootData;if(t[0]==="/"){if(!CQ.test(t))throw new Error(`Invalid JSON-pointer: ${t}`);s=t,i=Te.default.rootData}else{let l=OQ.exec(t);if(!l)throw new Error(`Invalid JSON-pointer: ${t}`);let u=+l[1];if(s=l[2],s==="#"){if(u>=e)throw new Error(c("property/index",u));return n[e-u]}if(u>e)throw new Error(c("data",u));if(i=r[e-u],!s)return i}let a=i,o=s.split("/");for(let l of o)l&&(i=(0,fe._)`${i}${(0,fe.getProperty)((0,ei.unescapeJsonPointer)(l))}`,a=(0,fe._)`${a} && ${i}`);return a;function c(l,u){return`Cannot access ${l} ${u} levels up, current level is ${e}`}}Pi.getData=Uj});var bf=P(Z_=>{"use strict";Object.defineProperty(Z_,"__esModule",{value:!0});var W_=class extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}};Z_.default=W_});var wu=P(K_=>{"use strict";Object.defineProperty(K_,"__esModule",{value:!0});var G_=yu(),V_=class extends Error{constructor(e,r,n,s){super(s||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,G_.resolveUrl)(e,r,n),this.missingSchema=(0,G_.normalizeId)((0,G_.getFullPath)(e,this.missingRef))}};K_.default=V_});var _f=P(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.resolveSchema=Mn.getCompilingSchema=Mn.resolveRef=Mn.compileSchema=Mn.SchemaEnv=void 0;var is=Ae(),jQ=bf(),ba=Xs(),as=yu(),qj=Ke(),AQ=_u(),No=class{constructor(e){var r;this.refs={},this.dynamicAnchors={};let n;typeof e.schema=="object"&&(n=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=(r=e.baseId)!==null&&r!==void 0?r:(0,as.normalizeId)(n?.[e.schemaId||"$id"]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=n?.$async,this.refs={}}};Mn.SchemaEnv=No;function Q_(t){let e=Fj.call(this,t);if(e)return e;let r=(0,as.getFullPath)(this.opts.uriResolver,t.root.baseId),{es5:n,lines:s}=this.opts.code,{ownProperties:i}=this.opts,a=new is.CodeGen(this.scope,{es5:n,lines:s,ownProperties:i}),o;t.$async&&(o=a.scopeValue("Error",{ref:jQ.default,code:(0,is._)`require("ajv/dist/runtime/validation_error").default`}));let c=a.scopeName("validate");t.validateName=c;let l={gen:a,allErrors:this.opts.allErrors,data:ba.default.data,parentData:ba.default.parentData,parentDataProperty:ba.default.parentDataProperty,dataNames:[ba.default.data],dataPathArr:[is.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:t.schema,code:(0,is.stringify)(t.schema)}:{ref:t.schema}),validateName:c,ValidationError:o,schema:t.schema,schemaEnv:t,rootId:r,baseId:t.baseId||r,schemaPath:is.nil,errSchemaPath:t.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,is._)`""`,opts:this.opts,self:this},u;try{this._compilations.add(t),(0,AQ.validateFunctionCode)(l),a.optimize(this.opts.code.optimize);let p=a.toString();u=`${a.scopeRefs(ba.default.scope)}return ${p}`,this.opts.code.process&&(u=this.opts.code.process(u,t));let m=new Function(`${ba.default.self}`,`${ba.default.scope}`,u)(this,this.scope.get());if(this.scope.value(c,{ref:m}),m.errors=null,m.schema=t.schema,m.schemaEnv=t,t.$async&&(m.$async=!0),this.opts.code.source===!0&&(m.source={validateName:c,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:f,items:v}=l;m.evaluated={props:f instanceof is.Name?void 0:f,items:v instanceof is.Name?void 0:v,dynamicProps:f instanceof is.Name,dynamicItems:v instanceof is.Name},m.source&&(m.source.evaluated=(0,is.stringify)(m.evaluated))}return t.validate=m,t}catch(p){throw delete t.validate,delete t.validateName,u&&this.logger.error("Error compiling schema, function code:",u),p}finally{this._compilations.delete(t)}}Mn.compileSchema=Q_;function NQ(t,e,r){var n;r=(0,as.resolveUrl)(this.opts.uriResolver,e,r);let s=t.refs[r];if(s)return s;let i=MQ.call(this,t,r);if(i===void 0){let a=(n=t.localRefs)===null||n===void 0?void 0:n[r],{schemaId:o}=this.opts;a&&(i=new No({schema:a,schemaId:o,root:t,baseId:e}))}if(i!==void 0)return t.refs[r]=DQ.call(this,i)}Mn.resolveRef=NQ;function DQ(t){return(0,as.inlineRef)(t.schema,this.opts.inlineRefs)?t.schema:t.validate?t:Q_.call(this,t)}function Fj(t){for(let e of this._compilations)if(zQ(e,t))return e}Mn.getCompilingSchema=Fj;function zQ(t,e){return t.schema===e.schema&&t.root===e.root&&t.baseId===e.baseId}function MQ(t,e){let r;for(;typeof(r=this.refs[e])=="string";)e=r;return r||this.schemas[e]||xf.call(this,t,e)}function xf(t,e){let r=this.opts.uriResolver.parse(e),n=(0,as._getFullPath)(this.opts.uriResolver,r),s=(0,as.getFullPath)(this.opts.uriResolver,t.baseId,void 0);if(Object.keys(t.schema).length>0&&n===s)return J_.call(this,r,t);let i=(0,as.normalizeId)(n),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let o=xf.call(this,t,a);return typeof o?.schema!="object"?void 0:J_.call(this,r,o)}if(typeof a?.schema=="object"){if(a.validate||Q_.call(this,a),i===(0,as.normalizeId)(e)){let{schema:o}=a,{schemaId:c}=this.opts,l=o[c];return l&&(s=(0,as.resolveUrl)(this.opts.uriResolver,s,l)),new No({schema:o,schemaId:c,root:t,baseId:s})}return J_.call(this,r,a)}}Mn.resolveSchema=xf;var $Q=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function J_(t,{baseId:e,schema:r,root:n}){var s;if(((s=t.fragment)===null||s===void 0?void 0:s[0])!=="/")return;for(let o of t.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let c=r[(0,qj.unescapeFragment)(o)];if(c===void 0)return;r=c;let l=typeof r=="object"&&r[this.opts.schemaId];!$Q.has(o)&&l&&(e=(0,as.resolveUrl)(this.opts.uriResolver,e,l))}let i;if(typeof r!="boolean"&&r.$ref&&!(0,qj.schemaHasRulesButRef)(r,this.RULES)){let o=(0,as.resolveUrl)(this.opts.uriResolver,e,r.$ref);i=xf.call(this,n,o)}let{schemaId:a}=this.opts;if(i=i||new No({schema:r,schemaId:a,root:n,baseId:e}),i.schema!==i.root.schema)return i}});var Hj=P((zCe,LQ)=>{LQ.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var X_=P((MCe,Gj)=>{"use strict";var UQ=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),Wj=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function Y_(t){let e="",r=0,n=0;for(n=0;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n];break}for(n+=1;n=48&&r<=57||r>=65&&r<=70||r>=97&&r<=102))return"";e+=t[n]}return e}var qQ=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function Bj(t){return t.length=0,!0}function FQ(t,e,r){if(t.length){let n=Y_(t);if(n!=="")e.push(n);else return r.error=!0,!1;t.length=0}return!0}function HQ(t){let e=0,r={error:!1,address:"",zone:""},n=[],s=[],i=!1,a=!1,o=FQ;for(let c=0;c7){r.error=!0;break}c>0&&t[c-1]===":"&&(i=!0),n.push(":");continue}else if(l==="%"){if(!o(s,n,r))break;o=Bj}else{s.push(l);continue}}return s.length&&(o===Bj?r.zone=s.join(""):a?n.push(s.join("")):n.push(Y_(s))),r.address=n.join(""),r}function Zj(t){if(BQ(t,":")<2)return{host:t,isIPV6:!1};let e=HQ(t);if(e.error)return{host:t,isIPV6:!1};{let r=e.address,n=e.address;return e.zone&&(r+="%"+e.zone,n+="%25"+e.zone),{host:r,isIPV6:!0,escapedHost:n}}}function BQ(t,e){let r=0;for(let n=0;n{"use strict";var{isUUID:VQ}=X_(),KQ=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,JQ=["http","https","ws","wss","urn","urn:uuid"];function QQ(t){return JQ.indexOf(t)!==-1}function e0(t){return t.secure===!0?!0:t.secure===!1?!1:t.scheme?t.scheme.length===3&&(t.scheme[0]==="w"||t.scheme[0]==="W")&&(t.scheme[1]==="s"||t.scheme[1]==="S")&&(t.scheme[2]==="s"||t.scheme[2]==="S"):!1}function Vj(t){return t.host||(t.error=t.error||"HTTP URIs must have a host."),t}function Kj(t){let e=String(t.scheme).toLowerCase()==="https";return(t.port===(e?443:80)||t.port==="")&&(t.port=void 0),t.path||(t.path="/"),t}function YQ(t){return t.secure=e0(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t}function XQ(t){if((t.port===(e0(t)?443:80)||t.port==="")&&(t.port=void 0),typeof t.secure=="boolean"&&(t.scheme=t.secure?"wss":"ws",t.secure=void 0),t.resourceName){let[e,r]=t.resourceName.split("?");t.path=e&&e!=="/"?e:void 0,t.query=r,t.resourceName=void 0}return t.fragment=void 0,t}function eY(t,e){if(!t.path)return t.error="URN can not be parsed",t;let r=t.path.match(KQ);if(r){let n=e.scheme||t.scheme||"urn";t.nid=r[1].toLowerCase(),t.nss=r[2];let s=`${n}:${e.nid||t.nid}`,i=t0(s);t.path=void 0,i&&(t=i.parse(t,e))}else t.error=t.error||"URN can not be parsed.";return t}function tY(t,e){if(t.nid===void 0)throw new Error("URN without nid cannot be serialized");let r=e.scheme||t.scheme||"urn",n=t.nid.toLowerCase(),s=`${r}:${e.nid||n}`,i=t0(s);i&&(t=i.serialize(t,e));let a=t,o=t.nss;return a.path=`${n||e.nid}:${o}`,e.skipEscape=!0,a}function rY(t,e){let r=t;return r.uuid=r.nss,r.nss=void 0,!e.tolerant&&(!r.uuid||!VQ(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function nY(t){let e=t;return e.nss=(t.uuid||"").toLowerCase(),e}var Jj={scheme:"http",domainHost:!0,parse:Vj,serialize:Kj},sY={scheme:"https",domainHost:Jj.domainHost,parse:Vj,serialize:Kj},wf={scheme:"ws",domainHost:!0,parse:YQ,serialize:XQ},iY={scheme:"wss",domainHost:wf.domainHost,parse:wf.parse,serialize:wf.serialize},aY={scheme:"urn",parse:eY,serialize:tY,skipNormalize:!0},oY={scheme:"urn:uuid",parse:rY,serialize:nY,skipNormalize:!0},Sf={http:Jj,https:sY,ws:wf,wss:iY,urn:aY,"urn:uuid":oY};Object.setPrototypeOf(Sf,null);function t0(t){return t&&(Sf[t]||Sf[t.toLowerCase()])||void 0}Qj.exports={wsIsSecure:e0,SCHEMES:Sf,isValidSchemeName:QQ,getSchemeHandler:t0}});var tA=P((LCe,Ef)=>{"use strict";var{normalizeIPv6:cY,removeDotSegments:Su,recomposeAuthority:lY,normalizeComponentEncoding:kf,isIPv4:uY,nonSimpleDomain:pY}=X_(),{SCHEMES:dY,getSchemeHandler:Xj}=Yj();function mY(t,e){return typeof t=="string"?t=Is(ti(t,e),e):typeof t=="object"&&(t=ti(Is(t,e),e)),t}function fY(t,e,r){let n=r?Object.assign({scheme:"null"},r):{scheme:"null"},s=eA(ti(t,n),ti(e,n),n,!0);return n.skipEscape=!0,Is(s,n)}function eA(t,e,r,n){let s={};return n||(t=ti(Is(t,r),r),e=ti(Is(e,r),r)),r=r||{},!r.tolerant&&e.scheme?(s.scheme=e.scheme,s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Su(e.path||""),s.query=e.query):(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0?(s.userinfo=e.userinfo,s.host=e.host,s.port=e.port,s.path=Su(e.path||""),s.query=e.query):(e.path?(e.path[0]==="/"?s.path=Su(e.path):((t.userinfo!==void 0||t.host!==void 0||t.port!==void 0)&&!t.path?s.path="/"+e.path:t.path?s.path=t.path.slice(0,t.path.lastIndexOf("/")+1)+e.path:s.path=e.path,s.path=Su(s.path)),s.query=e.query):(s.path=t.path,e.query!==void 0?s.query=e.query:s.query=t.query),s.userinfo=t.userinfo,s.host=t.host,s.port=t.port),s.scheme=t.scheme),s.fragment=e.fragment,s}function hY(t,e,r){return typeof t=="string"?(t=unescape(t),t=Is(kf(ti(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Is(kf(t,!0),{...r,skipEscape:!0})),typeof e=="string"?(e=unescape(e),e=Is(kf(ti(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Is(kf(e,!0),{...r,skipEscape:!0})),t.toLowerCase()===e.toLowerCase()}function Is(t,e){let r={host:t.host,scheme:t.scheme,userinfo:t.userinfo,port:t.port,path:t.path,query:t.query,nid:t.nid,nss:t.nss,uuid:t.uuid,fragment:t.fragment,reference:t.reference,resourceName:t.resourceName,secure:t.secure,error:""},n=Object.assign({},e),s=[],i=Xj(n.scheme||r.scheme);i&&i.serialize&&i.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&s.push(r.scheme,":");let a=lY(r);if(a!==void 0&&(n.reference!=="suffix"&&s.push("//"),s.push(a),r.path&&r.path[0]!=="/"&&s.push("/")),r.path!==void 0){let o=r.path;!n.absolutePath&&(!i||!i.absolutePath)&&(o=Su(o)),a===void 0&&o[0]==="/"&&o[1]==="/"&&(o="/%2F"+o.slice(2)),s.push(o)}return r.query!==void 0&&s.push("?",r.query),r.fragment!==void 0&&s.push("#",r.fragment),s.join("")}var gY=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ti(t,e){let r=Object.assign({},e),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},s=!1;r.reference==="suffix"&&(r.scheme?t=r.scheme+":"+t:t="//"+t);let i=t.match(gY);if(i){if(n.scheme=i[1],n.userinfo=i[3],n.host=i[4],n.port=parseInt(i[5],10),n.path=i[6]||"",n.query=i[7],n.fragment=i[8],isNaN(n.port)&&(n.port=i[5]),n.host)if(uY(n.host)===!1){let c=cY(n.host);n.host=c.host.toLowerCase(),s=c.isIPV6}else s=!0;n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&n.query===void 0&&!n.path?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let a=Xj(r.scheme||n.scheme);if(!r.unicodeSupport&&(!a||!a.unicodeSupport)&&n.host&&(r.domainHost||a&&a.domainHost)&&s===!1&&pY(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(o){n.error=n.error||"Host's domain name can not be converted to ASCII: "+o}(!a||a&&!a.skipNormalize)&&(t.indexOf("%")!==-1&&(n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),n.host!==void 0&&(n.host=unescape(n.host))),n.path&&(n.path=escape(unescape(n.path))),n.fragment&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),a&&a.parse&&a.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var r0={SCHEMES:dY,normalize:mY,resolve:fY,resolveComponent:eA,equal:hY,serialize:Is,parse:ti};Ef.exports=r0;Ef.exports.default=r0;Ef.exports.fastUri=r0});var nA=P(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});var rA=tA();rA.code='require("ajv/dist/runtime/uri").default';n0.default=rA});var pA=P(Sr=>{"use strict";Object.defineProperty(Sr,"__esModule",{value:!0});Sr.CodeGen=Sr.Name=Sr.nil=Sr.stringify=Sr.str=Sr._=Sr.KeywordCxt=void 0;var vY=_u();Object.defineProperty(Sr,"KeywordCxt",{enumerable:!0,get:function(){return vY.KeywordCxt}});var Do=Ae();Object.defineProperty(Sr,"_",{enumerable:!0,get:function(){return Do._}});Object.defineProperty(Sr,"str",{enumerable:!0,get:function(){return Do.str}});Object.defineProperty(Sr,"stringify",{enumerable:!0,get:function(){return Do.stringify}});Object.defineProperty(Sr,"nil",{enumerable:!0,get:function(){return Do.nil}});Object.defineProperty(Sr,"Name",{enumerable:!0,get:function(){return Do.Name}});Object.defineProperty(Sr,"CodeGen",{enumerable:!0,get:function(){return Do.CodeGen}});var yY=bf(),cA=wu(),bY=j_(),ku=_f(),xY=Ae(),Eu=yu(),Tf=vu(),i0=Ke(),sA=Hj(),_Y=nA(),lA=(t,e)=>new RegExp(t,e);lA.code="new RegExp";var wY=["removeAdditional","useDefaults","coerceTypes"],SY=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),kY={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},EY={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},iA=200;function TY(t){var e,r,n,s,i,a,o,c,l,u,p,d,m,f,v,g,h,y,b,x,w,S,k,E,R;let O=t.strict,C=(e=t.code)===null||e===void 0?void 0:e.optimize,$=C===!0||C===void 0?1:C||0,q=(n=(r=t.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:lA,B=(s=t.uriResolver)!==null&&s!==void 0?s:_Y.default;return{strictSchema:(a=(i=t.strictSchema)!==null&&i!==void 0?i:O)!==null&&a!==void 0?a:!0,strictNumbers:(c=(o=t.strictNumbers)!==null&&o!==void 0?o:O)!==null&&c!==void 0?c:!0,strictTypes:(u=(l=t.strictTypes)!==null&&l!==void 0?l:O)!==null&&u!==void 0?u:"log",strictTuples:(d=(p=t.strictTuples)!==null&&p!==void 0?p:O)!==null&&d!==void 0?d:"log",strictRequired:(f=(m=t.strictRequired)!==null&&m!==void 0?m:O)!==null&&f!==void 0?f:!1,code:t.code?{...t.code,optimize:$,regExp:q}:{optimize:$,regExp:q},loopRequired:(v=t.loopRequired)!==null&&v!==void 0?v:iA,loopEnum:(g=t.loopEnum)!==null&&g!==void 0?g:iA,meta:(h=t.meta)!==null&&h!==void 0?h:!0,messages:(y=t.messages)!==null&&y!==void 0?y:!0,inlineRefs:(b=t.inlineRefs)!==null&&b!==void 0?b:!0,schemaId:(x=t.schemaId)!==null&&x!==void 0?x:"$id",addUsedSchema:(w=t.addUsedSchema)!==null&&w!==void 0?w:!0,validateSchema:(S=t.validateSchema)!==null&&S!==void 0?S:!0,validateFormats:(k=t.validateFormats)!==null&&k!==void 0?k:!0,unicodeRegExp:(E=t.unicodeRegExp)!==null&&E!==void 0?E:!0,int32range:(R=t.int32range)!==null&&R!==void 0?R:!0,uriResolver:B}}var Tu=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...TY(e)};let{es5:r,lines:n}=this.opts.code;this.scope=new xY.ValueScope({scope:{},prefixes:SY,es5:r,lines:n}),this.logger=jY(e.logger);let s=e.validateFormats;e.validateFormats=!1,this.RULES=(0,bY.getRules)(),aA.call(this,kY,e,"NOT SUPPORTED"),aA.call(this,EY,e,"DEPRECATED","warn"),this._metaOpts=CY.call(this),e.formats&&PY.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&IY.call(this,e.keywords),typeof e.meta=="object"&&this.addMetaSchema(e.meta),RY.call(this),e.validateFormats=s}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:e,meta:r,schemaId:n}=this.opts,s=sA;n==="id"&&(s={...sA},s.id=s.$id,delete s.$id),r&&e&&this.addMetaSchema(s,s[n],!1)}defaultMeta(){let{meta:e,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[r]||e:void 0}validate(e,r){let n;if(typeof e=="string"){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let s=n(r);return"$async"in n||(this.errors=n.errors),s}compile(e,r){let n=this._addSchema(e,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return s.call(this,e,r);async function s(u,p){await i.call(this,u.$schema);let d=this._addSchema(u,p);return d.validate||a.call(this,d)}async function i(u){u&&!this.getSchema(u)&&await s.call(this,{$ref:u},!0)}async function a(u){try{return this._compileSchemaEnv(u)}catch(p){if(!(p instanceof cA.default))throw p;return o.call(this,p),await c.call(this,p.missingSchema),a.call(this,u)}}function o({missingSchema:u,missingRef:p}){if(this.refs[u])throw new Error(`AnySchema ${u} is loaded but ${p} cannot be resolved`)}async function c(u){let p=await l.call(this,u);this.refs[u]||await i.call(this,p.$schema),this.refs[u]||this.addSchema(p,u,r)}async function l(u){let p=this._loading[u];if(p)return p;try{return await(this._loading[u]=n(u))}finally{delete this._loading[u]}}}addSchema(e,r,n,s=this.opts.validateSchema){if(Array.isArray(e)){for(let a of e)this.addSchema(a,void 0,n,s);return this}let i;if(typeof e=="object"){let{schemaId:a}=this.opts;if(i=e[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return r=(0,Eu.normalizeId)(r||i),this._checkUnique(r),this.schemas[r]=this._addSchema(e,n,r,s,!0),this}addMetaSchema(e,r,n=this.opts.validateSchema){return this.addSchema(e,r,!0,n),this}validateSchema(e,r){if(typeof e=="boolean")return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let s=this.validate(n,e);if(!s&&r){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return s}getSchema(e){let r;for(;typeof(r=oA.call(this,e))=="string";)e=r;if(r===void 0){let{schemaId:n}=this.opts,s=new ku.SchemaEnv({schema:{},schemaId:n});if(r=ku.resolveSchema.call(this,s,e),!r)return;this.refs[e]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=oA.call(this,e);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{let r=e;this._cache.delete(r);let n=e[this.opts.schemaId];return n&&(n=(0,Eu.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(let r of e)this.addKeyword(r);return this}addKeyword(e,r){let n;if(typeof e=="string")n=e,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof e=="object"&&r===void 0){if(r=e,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(NY.call(this,n,r),!r)return(0,i0.eachItem)(n,i=>s0.call(this,i)),this;zY.call(this,r);let s={...r,type:(0,Tf.getJSONTypes)(r.type),schemaType:(0,Tf.getJSONTypes)(r.schemaType)};return(0,i0.eachItem)(n,s.type.length===0?i=>s0.call(this,i,s):i=>s.type.forEach(a=>s0.call(this,i,s,a))),this}getKeyword(e){let r=this.RULES.all[e];return typeof r=="object"?r.definition:!!r}removeKeyword(e){let{RULES:r}=this;delete r.keywords[e],delete r.all[e];for(let n of r.rules){let s=n.rules.findIndex(i=>i.keyword===e);s>=0&&n.rules.splice(s,1)}return this}addFormat(e,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[e]=r,this}errorsText(e=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!e||e.length===0?"No errors":e.map(s=>`${n}${s.instancePath} ${s.message}`).reduce((s,i)=>s+r+i)}$dataMetaSchema(e,r){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let s of r){let i=s.split("/").slice(1),a=e;for(let o of i)a=a[o];for(let o in n){let c=n[o];if(typeof c!="object")continue;let{$data:l}=c.definition,u=a[o];l&&u&&(a[o]=uA(u))}}return e}_removeAllSchemas(e,r){for(let n in e){let s=e[n];(!r||r.test(n))&&(typeof s=="string"?delete e[n]:s&&!s.meta&&(this._cache.delete(s.schema),delete e[n]))}}_addSchema(e,r,n,s=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:o}=this.opts;if(typeof e=="object")a=e[o];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let c=this._cache.get(e);if(c!==void 0)return c;n=(0,Eu.normalizeId)(a||n);let l=Eu.getSchemaRefs.call(this,e,n);return c=new ku.SchemaEnv({schema:e,schemaId:o,meta:r,baseId:n,localRefs:l}),this._cache.set(c.schema,c),i&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=c),s&&this.validateSchema(e,!0),c}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):ku.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){let r=this.opts;this.opts=this._metaOpts;try{ku.compileSchema.call(this,e)}finally{this.opts=r}}};Tu.ValidationError=yY.default;Tu.MissingRefError=cA.default;Sr.default=Tu;function aA(t,e,r,n="error"){for(let s in t){let i=s;i in e&&this.logger[n](`${r}: option ${s}. ${t[i]}`)}}function oA(t){return t=(0,Eu.normalizeId)(t),this.schemas[t]||this.refs[t]}function RY(){let t=this.opts.schemas;if(t)if(Array.isArray(t))this.addSchema(t);else for(let e in t)this.addSchema(t[e],e)}function PY(){for(let t in this.opts.formats){let e=this.opts.formats[t];e&&this.addFormat(t,e)}}function IY(t){if(Array.isArray(t)){this.addVocabulary(t);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let e in t){let r=t[e];r.keyword||(r.keyword=e),this.addKeyword(r)}}function CY(){let t={...this.opts};for(let e of wY)delete t[e];return t}var OY={log(){},warn(){},error(){}};function jY(t){if(t===!1)return OY;if(t===void 0)return console;if(t.log&&t.warn&&t.error)return t;throw new Error("logger must implement log, warn and error methods")}var AY=/^[a-z_$][a-z0-9_$:-]*$/i;function NY(t,e){let{RULES:r}=this;if((0,i0.eachItem)(t,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!AY.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!e&&e.$data&&!("code"in e||"validate"in e))throw new Error('$data keyword must have "code" or "validate" function')}function s0(t,e,r){var n;let s=e?.post;if(r&&s)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=s?i.post:i.rules.find(({type:c})=>c===r);if(a||(a={type:r,rules:[]},i.rules.push(a)),i.keywords[t]=!0,!e)return;let o={keyword:t,definition:{...e,type:(0,Tf.getJSONTypes)(e.type),schemaType:(0,Tf.getJSONTypes)(e.schemaType)}};e.before?DY.call(this,a,o,e.before):a.rules.push(o),i.all[t]=o,(n=e.implements)===null||n===void 0||n.forEach(c=>this.addKeyword(c))}function DY(t,e,r){let n=t.rules.findIndex(s=>s.keyword===r);n>=0?t.rules.splice(n,0,e):(t.rules.push(e),this.logger.warn(`rule ${r} is not defined`))}function zY(t){let{metaSchema:e}=t;e!==void 0&&(t.$data&&this.opts.$data&&(e=uA(e)),t.validateSchema=this.compile(e,!0))}var MY={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function uA(t){return{anyOf:[t,MY]}}});var dA=P(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});var $Y={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};a0.default=$Y});var gA=P(xa=>{"use strict";Object.defineProperty(xa,"__esModule",{value:!0});xa.callRef=xa.getValidate=void 0;var LY=wu(),mA=zn(),ln=Ae(),zo=Xs(),fA=_f(),Rf=Ke(),UY={keyword:"$ref",schemaType:"string",code(t){let{gen:e,schema:r,it:n}=t,{baseId:s,schemaEnv:i,validateName:a,opts:o,self:c}=n,{root:l}=i;if((r==="#"||r==="#/")&&s===l.baseId)return p();let u=fA.resolveRef.call(c,l,s,r);if(u===void 0)throw new LY.default(n.opts.uriResolver,s,r);if(u instanceof fA.SchemaEnv)return d(u);return m(u);function p(){if(i===l)return Pf(t,a,i,i.$async);let f=e.scopeValue("root",{ref:l});return Pf(t,(0,ln._)`${f}.validate`,l,l.$async)}function d(f){let v=hA(t,f);Pf(t,v,f,f.$async)}function m(f){let v=e.scopeValue("schema",o.code.source===!0?{ref:f,code:(0,ln.stringify)(f)}:{ref:f}),g=e.name("valid"),h=t.subschema({schema:f,dataTypes:[],schemaPath:ln.nil,topSchemaRef:v,errSchemaPath:r},g);t.mergeEvaluated(h),t.ok(g)}}};function hA(t,e){let{gen:r}=t;return e.validate?r.scopeValue("validate",{ref:e.validate}):(0,ln._)`${r.scopeValue("wrapper",{ref:e})}.validate`}xa.getValidate=hA;function Pf(t,e,r,n){let{gen:s,it:i}=t,{allErrors:a,schemaEnv:o,opts:c}=i,l=c.passContext?zo.default.this:ln.nil;n?u():p();function u(){if(!o.$async)throw new Error("async schema referenced by sync schema");let f=s.let("valid");s.try(()=>{s.code((0,ln._)`await ${(0,mA.callValidateCode)(t,e,l)}`),m(e),a||s.assign(f,!0)},v=>{s.if((0,ln._)`!(${v} instanceof ${i.ValidationError})`,()=>s.throw(v)),d(v),a||s.assign(f,!1)}),t.ok(f)}function p(){t.result((0,mA.callValidateCode)(t,e,l),()=>m(e),()=>d(e))}function d(f){let v=(0,ln._)`${f}.errors`;s.assign(zo.default.vErrors,(0,ln._)`${zo.default.vErrors} === null ? ${v} : ${zo.default.vErrors}.concat(${v})`),s.assign(zo.default.errors,(0,ln._)`${zo.default.vErrors}.length`)}function m(f){var v;if(!i.opts.unevaluated)return;let g=(v=r?.validate)===null||v===void 0?void 0:v.evaluated;if(i.props!==!0)if(g&&!g.dynamicProps)g.props!==void 0&&(i.props=Rf.mergeEvaluated.props(s,g.props,i.props));else{let h=s.var("props",(0,ln._)`${f}.evaluated.props`);i.props=Rf.mergeEvaluated.props(s,h,i.props,ln.Name)}if(i.items!==!0)if(g&&!g.dynamicItems)g.items!==void 0&&(i.items=Rf.mergeEvaluated.items(s,g.items,i.items));else{let h=s.var("items",(0,ln._)`${f}.evaluated.items`);i.items=Rf.mergeEvaluated.items(s,h,i.items,ln.Name)}}}xa.callRef=Pf;xa.default=UY});var vA=P(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var qY=dA(),FY=gA(),HY=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",qY.default,FY.default];o0.default=HY});var yA=P(c0=>{"use strict";Object.defineProperty(c0,"__esModule",{value:!0});var If=Ae(),Ii=If.operators,Cf={maximum:{okStr:"<=",ok:Ii.LTE,fail:Ii.GT},minimum:{okStr:">=",ok:Ii.GTE,fail:Ii.LT},exclusiveMaximum:{okStr:"<",ok:Ii.LT,fail:Ii.GTE},exclusiveMinimum:{okStr:">",ok:Ii.GT,fail:Ii.LTE}},BY={message:({keyword:t,schemaCode:e})=>(0,If.str)`must be ${Cf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,If._)`{comparison: ${Cf[t].okStr}, limit: ${e}}`},WY={keyword:Object.keys(Cf),type:"number",schemaType:"number",$data:!0,error:BY,code(t){let{keyword:e,data:r,schemaCode:n}=t;t.fail$data((0,If._)`${r} ${Cf[e].fail} ${n} || isNaN(${r})`)}};c0.default=WY});var bA=P(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});var Ru=Ae(),ZY={message:({schemaCode:t})=>(0,Ru.str)`must be multiple of ${t}`,params:({schemaCode:t})=>(0,Ru._)`{multipleOf: ${t}}`},GY={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:ZY,code(t){let{gen:e,data:r,schemaCode:n,it:s}=t,i=s.opts.multipleOfPrecision,a=e.let("res"),o=i?(0,Ru._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,Ru._)`${a} !== parseInt(${a})`;t.fail$data((0,Ru._)`(${n} === 0 || (${a} = ${r}/${n}, ${o}))`)}};l0.default=GY});var _A=P(u0=>{"use strict";Object.defineProperty(u0,"__esModule",{value:!0});function xA(t){let e=t.length,r=0,n=0,s;for(;n=55296&&s<=56319&&n{"use strict";Object.defineProperty(p0,"__esModule",{value:!0});var _a=Ae(),VY=Ke(),KY=_A(),JY={message({keyword:t,schemaCode:e}){let r=t==="maxLength"?"more":"fewer";return(0,_a.str)`must NOT have ${r} than ${e} characters`},params:({schemaCode:t})=>(0,_a._)`{limit: ${t}}`},QY={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:JY,code(t){let{keyword:e,data:r,schemaCode:n,it:s}=t,i=e==="maxLength"?_a.operators.GT:_a.operators.LT,a=s.opts.unicode===!1?(0,_a._)`${r}.length`:(0,_a._)`${(0,VY.useFunc)(t.gen,KY.default)}(${r})`;t.fail$data((0,_a._)`${a} ${i} ${n}`)}};p0.default=QY});var SA=P(d0=>{"use strict";Object.defineProperty(d0,"__esModule",{value:!0});var YY=zn(),XY=Ke(),Mo=Ae(),eX={message:({schemaCode:t})=>(0,Mo.str)`must match pattern "${t}"`,params:({schemaCode:t})=>(0,Mo._)`{pattern: ${t}}`},tX={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:eX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t,o=a.opts.unicodeRegExp?"u":"";if(n){let{regExp:c}=a.opts.code,l=c.code==="new RegExp"?(0,Mo._)`new RegExp`:(0,XY.useFunc)(e,c),u=e.let("valid");e.try(()=>e.assign(u,(0,Mo._)`${l}(${i}, ${o}).test(${r})`),()=>e.assign(u,!1)),t.fail$data((0,Mo._)`!${u}`)}else{let c=(0,YY.usePattern)(t,s);t.fail$data((0,Mo._)`!${c}.test(${r})`)}}};d0.default=tX});var kA=P(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var Pu=Ae(),rX={message({keyword:t,schemaCode:e}){let r=t==="maxProperties"?"more":"fewer";return(0,Pu.str)`must NOT have ${r} than ${e} properties`},params:({schemaCode:t})=>(0,Pu._)`{limit: ${t}}`},nX={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:rX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxProperties"?Pu.operators.GT:Pu.operators.LT;t.fail$data((0,Pu._)`Object.keys(${r}).length ${s} ${n}`)}};m0.default=nX});var EA=P(f0=>{"use strict";Object.defineProperty(f0,"__esModule",{value:!0});var Iu=zn(),Cu=Ae(),sX=Ke(),iX={message:({params:{missingProperty:t}})=>(0,Cu.str)`must have required property '${t}'`,params:({params:{missingProperty:t}})=>(0,Cu._)`{missingProperty: ${t}}`},aX={keyword:"required",type:"object",schemaType:"array",$data:!0,error:iX,code(t){let{gen:e,schema:r,schemaCode:n,data:s,$data:i,it:a}=t,{opts:o}=a;if(!i&&r.length===0)return;let c=r.length>=o.loopRequired;if(a.allErrors?l():u(),o.strictRequired){let m=t.parentSchema.properties,{definedProperties:f}=t.it;for(let v of r)if(m?.[v]===void 0&&!f.has(v)){let g=a.schemaEnv.baseId+a.errSchemaPath,h=`required property "${v}" is not defined at "${g}" (strictRequired)`;(0,sX.checkStrictMode)(a,h,a.opts.strictRequired)}}function l(){if(c||i)t.block$data(Cu.nil,p);else for(let m of r)(0,Iu.checkReportMissingProp)(t,m)}function u(){let m=e.let("missing");if(c||i){let f=e.let("valid",!0);t.block$data(f,()=>d(m,f)),t.ok(f)}else e.if((0,Iu.checkMissingProp)(t,r,m)),(0,Iu.reportMissingProp)(t,m),e.else()}function p(){e.forOf("prop",n,m=>{t.setParams({missingProperty:m}),e.if((0,Iu.noPropertyInData)(e,s,m,o.ownProperties),()=>t.error())})}function d(m,f){t.setParams({missingProperty:m}),e.forOf(m,n,()=>{e.assign(f,(0,Iu.propertyInData)(e,s,m,o.ownProperties)),e.if((0,Cu.not)(f),()=>{t.error(),e.break()})},Cu.nil)}}};f0.default=aX});var TA=P(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});var Ou=Ae(),oX={message({keyword:t,schemaCode:e}){let r=t==="maxItems"?"more":"fewer";return(0,Ou.str)`must NOT have ${r} than ${e} items`},params:({schemaCode:t})=>(0,Ou._)`{limit: ${t}}`},cX={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:oX,code(t){let{keyword:e,data:r,schemaCode:n}=t,s=e==="maxItems"?Ou.operators.GT:Ou.operators.LT;t.fail$data((0,Ou._)`${r}.length ${s} ${n}`)}};h0.default=cX});var Of=P(g0=>{"use strict";Object.defineProperty(g0,"__esModule",{value:!0});var RA=U_();RA.code='require("ajv/dist/runtime/equal").default';g0.default=RA});var PA=P(y0=>{"use strict";Object.defineProperty(y0,"__esModule",{value:!0});var v0=vu(),kr=Ae(),lX=Ke(),uX=Of(),pX={message:({params:{i:t,j:e}})=>(0,kr.str)`must NOT have duplicate items (items ## ${e} and ${t} are identical)`,params:({params:{i:t,j:e}})=>(0,kr._)`{i: ${t}, j: ${e}}`},dX={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:pX,code(t){let{gen:e,data:r,$data:n,schema:s,parentSchema:i,schemaCode:a,it:o}=t;if(!n&&!s)return;let c=e.let("valid"),l=i.items?(0,v0.getSchemaTypes)(i.items):[];t.block$data(c,u,(0,kr._)`${a} === false`),t.ok(c);function u(){let f=e.let("i",(0,kr._)`${r}.length`),v=e.let("j");t.setParams({i:f,j:v}),e.assign(c,!0),e.if((0,kr._)`${f} > 1`,()=>(p()?d:m)(f,v))}function p(){return l.length>0&&!l.some(f=>f==="object"||f==="array")}function d(f,v){let g=e.name("item"),h=(0,v0.checkDataTypes)(l,g,o.opts.strictNumbers,v0.DataType.Wrong),y=e.const("indices",(0,kr._)`{}`);e.for((0,kr._)`;${f}--;`,()=>{e.let(g,(0,kr._)`${r}[${f}]`),e.if(h,(0,kr._)`continue`),l.length>1&&e.if((0,kr._)`typeof ${g} == "string"`,(0,kr._)`${g} += "_"`),e.if((0,kr._)`typeof ${y}[${g}] == "number"`,()=>{e.assign(v,(0,kr._)`${y}[${g}]`),t.error(),e.assign(c,!1).break()}).code((0,kr._)`${y}[${g}] = ${f}`)})}function m(f,v){let g=(0,lX.useFunc)(e,uX.default),h=e.name("outer");e.label(h).for((0,kr._)`;${f}--;`,()=>e.for((0,kr._)`${v} = ${f}; ${v}--;`,()=>e.if((0,kr._)`${g}(${r}[${f}], ${r}[${v}])`,()=>{t.error(),e.assign(c,!1).break(h)})))}}};y0.default=dX});var IA=P(x0=>{"use strict";Object.defineProperty(x0,"__esModule",{value:!0});var b0=Ae(),mX=Ke(),fX=Of(),hX={message:"must be equal to constant",params:({schemaCode:t})=>(0,b0._)`{allowedValue: ${t}}`},gX={keyword:"const",$data:!0,error:hX,code(t){let{gen:e,data:r,$data:n,schemaCode:s,schema:i}=t;n||i&&typeof i=="object"?t.fail$data((0,b0._)`!${(0,mX.useFunc)(e,fX.default)}(${r}, ${s})`):t.fail((0,b0._)`${i} !== ${r}`)}};x0.default=gX});var CA=P(_0=>{"use strict";Object.defineProperty(_0,"__esModule",{value:!0});var ju=Ae(),vX=Ke(),yX=Of(),bX={message:"must be equal to one of the allowed values",params:({schemaCode:t})=>(0,ju._)`{allowedValues: ${t}}`},xX={keyword:"enum",schemaType:"array",$data:!0,error:bX,code(t){let{gen:e,data:r,$data:n,schema:s,schemaCode:i,it:a}=t;if(!n&&s.length===0)throw new Error("enum must have non-empty array");let o=s.length>=a.opts.loopEnum,c,l=()=>c??(c=(0,vX.useFunc)(e,yX.default)),u;if(o||n)u=e.let("valid"),t.block$data(u,p);else{if(!Array.isArray(s))throw new Error("ajv implementation error");let m=e.const("vSchema",i);u=(0,ju.or)(...s.map((f,v)=>d(m,v)))}t.pass(u);function p(){e.assign(u,!1),e.forOf("v",i,m=>e.if((0,ju._)`${l()}(${r}, ${m})`,()=>e.assign(u,!0).break()))}function d(m,f){let v=s[f];return typeof v=="object"&&v!==null?(0,ju._)`${l()}(${r}, ${m}[${f}])`:(0,ju._)`${r} === ${v}`}}};_0.default=xX});var OA=P(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});var _X=yA(),wX=bA(),SX=wA(),kX=SA(),EX=kA(),TX=EA(),RX=TA(),PX=PA(),IX=IA(),CX=CA(),OX=[_X.default,wX.default,SX.default,kX.default,EX.default,TX.default,RX.default,PX.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},IX.default,CX.default];w0.default=OX});var k0=P(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.validateAdditionalItems=void 0;var wa=Ae(),S0=Ke(),jX={message:({params:{len:t}})=>(0,wa.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,wa._)`{limit: ${t}}`},AX={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:jX,code(t){let{parentSchema:e,it:r}=t,{items:n}=e;if(!Array.isArray(n)){(0,S0.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}jA(t,n)}};function jA(t,e){let{gen:r,schema:n,data:s,keyword:i,it:a}=t;a.items=!0;let o=r.const("len",(0,wa._)`${s}.length`);if(n===!1)t.setParams({len:e.length}),t.pass((0,wa._)`${o} <= ${e.length}`);else if(typeof n=="object"&&!(0,S0.alwaysValidSchema)(a,n)){let l=r.var("valid",(0,wa._)`${o} <= ${e.length}`);r.if((0,wa.not)(l),()=>c(l)),t.ok(l)}function c(l){r.forRange("i",e.length,o,u=>{t.subschema({keyword:i,dataProp:u,dataPropType:S0.Type.Num},l),a.allErrors||r.if((0,wa.not)(l),()=>r.break())})}}Au.validateAdditionalItems=jA;Au.default=AX});var E0=P(Nu=>{"use strict";Object.defineProperty(Nu,"__esModule",{value:!0});Nu.validateTuple=void 0;var AA=Ae(),jf=Ke(),NX=zn(),DX={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(t){let{schema:e,it:r}=t;if(Array.isArray(e))return NA(t,"additionalItems",e);r.items=!0,!(0,jf.alwaysValidSchema)(r,e)&&t.ok((0,NX.validateArray)(t))}};function NA(t,e,r=t.schema){let{gen:n,parentSchema:s,data:i,keyword:a,it:o}=t;u(s),o.opts.unevaluated&&r.length&&o.items!==!0&&(o.items=jf.mergeEvaluated.items(n,r.length,o.items));let c=n.name("valid"),l=n.const("len",(0,AA._)`${i}.length`);r.forEach((p,d)=>{(0,jf.alwaysValidSchema)(o,p)||(n.if((0,AA._)`${l} > ${d}`,()=>t.subschema({keyword:a,schemaProp:d,dataProp:d},c)),t.ok(c))});function u(p){let{opts:d,errSchemaPath:m}=o,f=r.length,v=f===p.minItems&&(f===p.maxItems||p[e]===!1);if(d.strictTuples&&!v){let g=`"${a}" is ${f}-tuple, but minItems or maxItems/${e} are not specified or different at path "${m}"`;(0,jf.checkStrictMode)(o,g,d.strictTuples)}}}Nu.validateTuple=NA;Nu.default=DX});var DA=P(T0=>{"use strict";Object.defineProperty(T0,"__esModule",{value:!0});var zX=E0(),MX={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:t=>(0,zX.validateTuple)(t,"items")};T0.default=MX});var MA=P(R0=>{"use strict";Object.defineProperty(R0,"__esModule",{value:!0});var zA=Ae(),$X=Ke(),LX=zn(),UX=k0(),qX={message:({params:{len:t}})=>(0,zA.str)`must NOT have more than ${t} items`,params:({params:{len:t}})=>(0,zA._)`{limit: ${t}}`},FX={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:qX,code(t){let{schema:e,parentSchema:r,it:n}=t,{prefixItems:s}=r;n.items=!0,!(0,$X.alwaysValidSchema)(n,e)&&(s?(0,UX.validateAdditionalItems)(t,s):t.ok((0,LX.validateArray)(t)))}};R0.default=FX});var $A=P(P0=>{"use strict";Object.defineProperty(P0,"__esModule",{value:!0});var $n=Ae(),Af=Ke(),HX={message:({params:{min:t,max:e}})=>e===void 0?(0,$n.str)`must contain at least ${t} valid item(s)`:(0,$n.str)`must contain at least ${t} and no more than ${e} valid item(s)`,params:({params:{min:t,max:e}})=>e===void 0?(0,$n._)`{minContains: ${t}}`:(0,$n._)`{minContains: ${t}, maxContains: ${e}}`},BX={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:HX,code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t,a,o,{minContains:c,maxContains:l}=n;i.opts.next?(a=c===void 0?1:c,o=l):a=1;let u=e.const("len",(0,$n._)`${s}.length`);if(t.setParams({min:a,max:o}),o===void 0&&a===0){(0,Af.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(o!==void 0&&a>o){(0,Af.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),t.fail();return}if((0,Af.alwaysValidSchema)(i,r)){let v=(0,$n._)`${u} >= ${a}`;o!==void 0&&(v=(0,$n._)`${v} && ${u} <= ${o}`),t.pass(v);return}i.items=!0;let p=e.name("valid");o===void 0&&a===1?m(p,()=>e.if(p,()=>e.break())):a===0?(e.let(p,!0),o!==void 0&&e.if((0,$n._)`${s}.length > 0`,d)):(e.let(p,!1),d()),t.result(p,()=>t.reset());function d(){let v=e.name("_valid"),g=e.let("count",0);m(v,()=>e.if(v,()=>f(g)))}function m(v,g){e.forRange("i",0,u,h=>{t.subschema({keyword:"contains",dataProp:h,dataPropType:Af.Type.Num,compositeRule:!0},v),g()})}function f(v){e.code((0,$n._)`${v}++`),o===void 0?e.if((0,$n._)`${v} >= ${a}`,()=>e.assign(p,!0).break()):(e.if((0,$n._)`${v} > ${o}`,()=>e.assign(p,!1).break()),a===1?e.assign(p,!0):e.if((0,$n._)`${v} >= ${a}`,()=>e.assign(p,!0)))}}};P0.default=BX});var qA=P(Cs=>{"use strict";Object.defineProperty(Cs,"__esModule",{value:!0});Cs.validateSchemaDeps=Cs.validatePropertyDeps=Cs.error=void 0;var I0=Ae(),WX=Ke(),Du=zn();Cs.error={message:({params:{property:t,depsCount:e,deps:r}})=>{let n=e===1?"property":"properties";return(0,I0.str)`must have ${n} ${r} when property ${t} is present`},params:({params:{property:t,depsCount:e,deps:r,missingProperty:n}})=>(0,I0._)`{property: ${t}, missingProperty: ${n}, depsCount: ${e}, - deps: ${r}}`};var ZX={keyword:"dependencies",type:"object",schemaType:"object",error:Cs.error,code(t){let[e,r]=GX(t);LA(t,e),UA(t,r)}};function GX({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let s=Array.isArray(t[n])?e:r;s[n]=t[n]}return[e,r]}function LA(t,e=t.schema){let{gen:r,data:n,it:s}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let a in e){let o=e[a];if(o.length===0)continue;let c=(0,Du.propertyInData)(r,n,a,s.opts.ownProperties);t.setParams({property:a,depsCount:o.length,deps:o.join(", ")}),s.allErrors?r.if(c,()=>{for(let l of o)(0,Du.checkReportMissingProp)(t,l)}):(r.if((0,I0._)`${c} && (${(0,Du.checkMissingProp)(t,o,i)})`),(0,Du.reportMissingProp)(t,i),r.else())}}Cs.validatePropertyDeps=LA;function UA(t,e=t.schema){let{gen:r,data:n,keyword:s,it:i}=t,a=r.name("valid");for(let o in e)(0,WX.alwaysValidSchema)(i,e[o])||(r.if((0,Du.propertyInData)(r,n,o,i.opts.ownProperties),()=>{let c=t.subschema({keyword:s,schemaProp:o},a);t.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),t.ok(a))}Cs.validateSchemaDeps=UA;Cs.default=ZX});var HA=P(C0=>{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});var FA=Ae(),VX=Ke(),KX={message:"property name must be valid",params:({params:t})=>(0,FA._)`{propertyName: ${t.propertyName}}`},JX={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:KX,code(t){let{gen:e,schema:r,data:n,it:s}=t;if((0,VX.alwaysValidSchema)(s,r))return;let i=e.name("valid");e.forIn("key",n,a=>{t.setParams({propertyName:a}),t.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),e.if((0,FA.not)(i),()=>{t.error(!0),s.allErrors||e.break()})}),t.ok(i)}};C0.default=JX});var j0=P(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});var Nf=zn(),os=Ae(),QX=Xs(),Df=Ke(),YX={message:"must NOT have additional properties",params:({params:t})=>(0,os._)`{additionalProperty: ${t.additionalProperty}}`},XX={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:YX,code(t){let{gen:e,schema:r,parentSchema:n,data:s,errsCount:i,it:a}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Df.alwaysValidSchema)(a,r))return;let l=(0,Nf.allSchemaProperties)(n.properties),u=(0,Nf.allSchemaProperties)(n.patternProperties);p(),t.ok((0,os._)`${i} === ${QX.default.errors}`);function p(){e.forIn("key",s,g=>{!l.length&&!u.length?f(g):e.if(d(g),()=>f(g))})}function d(g){let h;if(l.length>8){let y=(0,Df.schemaRefOrVal)(a,n.properties,"properties");h=(0,Nf.isOwnProperty)(e,y,g)}else l.length?h=(0,os.or)(...l.map(y=>(0,os._)`${g} === ${y}`)):h=os.nil;return u.length&&(h=(0,os.or)(h,...u.map(y=>(0,os._)`${(0,Nf.usePattern)(t,y)}.test(${g})`))),(0,os.not)(h)}function m(g){e.code((0,os._)`delete ${s}[${g}]`)}function f(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),o||e.break();return}if(typeof r=="object"&&!(0,Df.alwaysValidSchema)(a,r)){let h=e.name("valid");c.removeAdditional==="failing"?(v(g,h,!1),e.if((0,os.not)(h),()=>{t.reset(),m(g)})):(v(g,h),o||e.if((0,os.not)(h),()=>e.break()))}}function v(g,h,y){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Df.Type.Str};y===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,h)}}};O0.default=XX});var ZA=P(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});var eee=_u(),BA=zn(),A0=Ke(),WA=j0(),tee={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&WA.default.code(new eee.KeywordCxt(i,WA.default,"additionalProperties"));let a=(0,BA.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=A0.mergeEvaluated.props(e,(0,A0.toHash)(a),i.props));let o=a.filter(p=>!(0,A0.alwaysValidSchema)(i,r[p]));if(o.length===0)return;let c=e.name("valid");for(let p of o)l(p)?u(p):(e.if((0,BA.propertyInData)(e,s,p,i.opts.ownProperties)),u(p),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(p),t.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function u(p){t.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};N0.default=tee});var JA=P(D0=>{"use strict";Object.defineProperty(D0,"__esModule",{value:!0});var GA=zn(),zf=Ae(),VA=Ke(),KA=Ke(),ree={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:s,it:i}=t,{opts:a}=i,o=(0,GA.allSchemaProperties)(r),c=o.filter(v=>(0,VA.alwaysValidSchema)(i,r[v]));if(o.length===0||c.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&s.properties,u=e.name("valid");i.props!==!0&&!(i.props instanceof zf.Name)&&(i.props=(0,KA.evaluatedPropsToName)(e,i.props));let{props:p}=i;d();function d(){for(let v of o)l&&m(v),i.allErrors?f(v):(e.var(u,!0),f(v),e.if(u))}function m(v){for(let g in l)new RegExp(v).test(g)&&(0,VA.checkStrictMode)(i,`property ${g} matches pattern ${v} (use allowMatchingProperties)`)}function f(v){e.forIn("key",n,g=>{e.if((0,zf._)`${(0,GA.usePattern)(t,v)}.test(${g})`,()=>{let h=c.includes(v);h||t.subschema({keyword:"patternProperties",schemaProp:v,dataProp:g,dataPropType:KA.Type.Str},u),i.opts.unevaluated&&p!==!0?e.assign((0,zf._)`${p}[${g}]`,!0):!h&&!i.allErrors&&e.if((0,zf.not)(u),()=>e.break())})})}}};D0.default=ree});var QA=P(z0=>{"use strict";Object.defineProperty(z0,"__esModule",{value:!0});var nee=Ke(),see={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,nee.alwaysValidSchema)(n,r)){t.fail();return}let s=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),t.failResult(s,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};z0.default=see});var YA=P(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});var iee=zn(),aee={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:iee.validateUnion,error:{message:"must match a schema in anyOf"}};M0.default=aee});var XA=P($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});var Mf=Ae(),oee=Ke(),cee={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Mf._)`{passingSchemas: ${t.passing}}`},lee={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:cee,code(t){let{gen:e,schema:r,parentSchema:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;let i=r,a=e.let("valid",!1),o=e.let("passing",null),c=e.name("_valid");t.setParams({passing:o}),e.block(l),t.result(a,()=>t.reset(),()=>t.error(!0));function l(){i.forEach((u,p)=>{let d;(0,oee.alwaysValidSchema)(s,u)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&e.if((0,Mf._)`${c} && ${a}`).assign(a,!1).assign(o,(0,Mf._)`[${o}, ${p}]`).else(),e.if(c,()=>{e.assign(a,!0),e.assign(o,p),d&&t.mergeEvaluated(d,Mf.Name)})})}}};$0.default=lee});var eN=P(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});var uee=Ke(),pee={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let s=e.name("valid");r.forEach((i,a)=>{if((0,uee.alwaysValidSchema)(n,i))return;let o=t.subschema({keyword:"allOf",schemaProp:a},s);t.ok(s),t.mergeEvaluated(o)})}};L0.default=pee});var nN=P(U0=>{"use strict";Object.defineProperty(U0,"__esModule",{value:!0});var $f=Ae(),rN=Ke(),dee={message:({params:t})=>(0,$f.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,$f._)`{failingKeyword: ${t.ifClause}}`},mee={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:dee,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,rN.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let s=tN(n,"then"),i=tN(n,"else");if(!s&&!i)return;let a=e.let("valid",!0),o=e.name("_valid");if(c(),t.reset(),s&&i){let u=e.let("ifClause");t.setParams({ifClause:u}),e.if(o,l("then",u),l("else",u))}else s?e.if(o,l("then")):e.if((0,$f.not)(o),l("else"));t.pass(a,()=>t.error(!0));function c(){let u=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);t.mergeEvaluated(u)}function l(u,p){return()=>{let d=t.subschema({keyword:u},o);e.assign(a,o),t.mergeValidEvaluated(d,a),p?e.assign(p,(0,$f._)`${u}`):t.setParams({ifClause:u})}}}};function tN(t,e){let r=t.schema[e];return r!==void 0&&!(0,rN.alwaysValidSchema)(t,r)}U0.default=mee});var sN=P(q0=>{"use strict";Object.defineProperty(q0,"__esModule",{value:!0});var fee=Ke(),hee={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,fee.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};q0.default=hee});var iN=P(F0=>{"use strict";Object.defineProperty(F0,"__esModule",{value:!0});var gee=k0(),vee=DA(),yee=E0(),bee=MA(),xee=$A(),_ee=qA(),wee=HA(),See=j0(),kee=ZA(),Eee=JA(),Tee=QA(),Ree=YA(),Pee=XA(),Iee=eN(),Cee=nN(),Oee=sN();function jee(t=!1){let e=[Tee.default,Ree.default,Pee.default,Iee.default,Cee.default,Oee.default,wee.default,See.default,_ee.default,kee.default,Eee.default];return t?e.push(vee.default,bee.default):e.push(gee.default,yee.default),e.push(xee.default),e}F0.default=jee});var aN=P(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});var Qt=Ae(),Aee={message:({schemaCode:t})=>(0,Qt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Qt._)`{format: ${t}}`},Nee={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Aee,code(t,e){let{gen:r,data:n,$data:s,schema:i,schemaCode:a,it:o}=t,{opts:c,errSchemaPath:l,schemaEnv:u,self:p}=o;if(!c.validateFormats)return;s?d():m();function d(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),v=r.const("fDef",(0,Qt._)`${f}[${a}]`),g=r.let("fType"),h=r.let("format");r.if((0,Qt._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>r.assign(g,(0,Qt._)`${v}.type || "string"`).assign(h,(0,Qt._)`${v}.validate`),()=>r.assign(g,(0,Qt._)`"string"`).assign(h,v)),t.fail$data((0,Qt.or)(y(),b()));function y(){return c.strictSchema===!1?Qt.nil:(0,Qt._)`${a} && !${h}`}function b(){let x=u.$async?(0,Qt._)`(${v}.async ? await ${h}(${n}) : ${h}(${n}))`:(0,Qt._)`${h}(${n})`,w=(0,Qt._)`(typeof ${h} == "function" ? ${x} : ${h}.test(${n}))`;return(0,Qt._)`${h} && ${h} !== true && ${g} === ${e} && !${w}`}}function m(){let f=p.formats[i];if(!f){y();return}if(f===!0)return;let[v,g,h]=b(f);v===e&&t.pass(x());function y(){if(c.strictSchema===!1){p.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(w){let S=w instanceof RegExp?(0,Qt.regexpCode)(w):c.code.formats?(0,Qt._)`${c.code.formats}${(0,Qt.getProperty)(i)}`:void 0,k=r.scopeValue("formats",{key:i,ref:w,code:S});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,Qt._)`${k}.validate`]:["string",w,k]}function x(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!u.$async)throw new Error("async format in sync schema");return(0,Qt._)`await ${h}(${n})`}return typeof g=="function"?(0,Qt._)`${h}(${n})`:(0,Qt._)`${h}.test(${n})`}}}};H0.default=Nee});var oN=P(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});var Dee=aN(),zee=[Dee.default];B0.default=zee});var cN=P($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.contentVocabulary=$o.metadataVocabulary=void 0;$o.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];$o.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var uN=P(W0=>{"use strict";Object.defineProperty(W0,"__esModule",{value:!0});var Mee=vA(),$ee=OA(),Lee=iN(),Uee=oN(),lN=cN(),qee=[Mee.default,$ee.default,(0,Lee.default)(),Uee.default,lN.metadataVocabulary,lN.contentVocabulary];W0.default=qee});var dN=P(Lf=>{"use strict";Object.defineProperty(Lf,"__esModule",{value:!0});Lf.DiscrError=void 0;var pN;(function(t){t.Tag="tag",t.Mapping="mapping"})(pN||(Lf.DiscrError=pN={}))});var fN=P(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});var Lo=Ae(),Z0=dN(),mN=_f(),Fee=wu(),Hee=Ke(),Bee={message:({params:{discrError:t,tagName:e}})=>t===Z0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Lo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},Wee={keyword:"discriminator",type:"object",schemaType:"object",error:Bee,code(t){let{gen:e,data:r,schema:n,parentSchema:s,it:i}=t,{oneOf:a}=s;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),l=e.const("tag",(0,Lo._)`${r}${(0,Lo.getProperty)(o)}`);e.if((0,Lo._)`typeof ${l} == "string"`,()=>u(),()=>t.error(!1,{discrError:Z0.DiscrError.Tag,tag:l,tagName:o})),t.ok(c);function u(){let m=d();e.if(!1);for(let f in m)e.elseIf((0,Lo._)`${l} === ${f}`),e.assign(c,p(m[f]));e.else(),t.error(!1,{discrError:Z0.DiscrError.Mapping,tag:l,tagName:o}),e.endIf()}function p(m){let f=e.name("valid"),v=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(v,Lo.Name),f}function d(){var m;let f={},v=h(s),g=!0;for(let x=0;x{Zee.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var K0=P((Ct,V0)=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.MissingRefError=Ct.ValidationError=Ct.CodeGen=Ct.Name=Ct.nil=Ct.stringify=Ct.str=Ct._=Ct.KeywordCxt=Ct.Ajv=void 0;var Gee=pA(),Vee=uN(),Kee=fN(),gN=hN(),Jee=["/properties"],Uf="http://json-schema.org/draft-07/schema",Uo=class extends Gee.default{_addVocabularies(){super._addVocabularies(),Vee.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Kee.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(gN,Jee):gN;this.addMetaSchema(e,Uf,!1),this.refs["http://json-schema.org/schema"]=Uf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Uf)?Uf:void 0)}};Ct.Ajv=Uo;V0.exports=Ct=Uo;V0.exports.Ajv=Uo;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=Uo;var Qee=_u();Object.defineProperty(Ct,"KeywordCxt",{enumerable:!0,get:function(){return Qee.KeywordCxt}});var qo=Ae();Object.defineProperty(Ct,"_",{enumerable:!0,get:function(){return qo._}});Object.defineProperty(Ct,"str",{enumerable:!0,get:function(){return qo.str}});Object.defineProperty(Ct,"stringify",{enumerable:!0,get:function(){return qo.stringify}});Object.defineProperty(Ct,"nil",{enumerable:!0,get:function(){return qo.nil}});Object.defineProperty(Ct,"Name",{enumerable:!0,get:function(){return qo.Name}});Object.defineProperty(Ct,"CodeGen",{enumerable:!0,get:function(){return qo.CodeGen}});var Yee=bf();Object.defineProperty(Ct,"ValidationError",{enumerable:!0,get:function(){return Yee.default}});var Xee=wu();Object.defineProperty(Ct,"MissingRefError",{enumerable:!0,get:function(){return Xee.default}})});var kN=P(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.formatNames=js.fastFormats=js.fullFormats=void 0;function Os(t,e){return{validate:t,compare:e}}js.fullFormats={date:Os(xN,X0),time:Os(Q0(!0),ew),"date-time":Os(vN(!0),wN),"iso-time":Os(Q0(),_N),"iso-date-time":Os(vN(),SN),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:ite,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:dte,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:ate,int32:{type:"number",validate:lte},int64:{type:"number",validate:ute},float:{type:"number",validate:bN},double:{type:"number",validate:bN},password:!0,binary:!0};js.fastFormats={...js.fullFormats,date:Os(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,X0),time:Os(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,ew),"date-time":Os(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,wN),"iso-time":Os(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_N),"iso-date-time":Os(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,SN),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};js.formatNames=Object.keys(js.fullFormats);function ete(t){return t%4===0&&(t%100!==0||t%400===0)}var tte=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,rte=[0,31,28,31,30,31,30,31,31,30,31,30,31];function xN(t){let e=tte.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],s=+e[3];return n>=1&&n<=12&&s>=1&&s<=(n===2&&ete(r)?29:rte[n])}function X0(t,e){if(t&&e)return t>e?1:t23||u>59||t&&!o)return!1;if(s<=23&&i<=59&&a<60)return!0;let p=i-u*c,d=s-l*c-(p<0?1:0);return(d===23||d===-1)&&(p===59||p===-1)&&a<61}}function ew(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function _N(t,e){if(!(t&&e))return;let r=J0.exec(t),n=J0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=ote}function ute(t){return Number.isInteger(t)}function bN(){return!0}var pte=/[^\\]\\Z/;function dte(t){if(pte.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var EN=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var mte=K0(),cs=Ae(),Ci=cs.operators,qf={formatMaximum:{okStr:"<=",ok:Ci.LTE,fail:Ci.GT},formatMinimum:{okStr:">=",ok:Ci.GTE,fail:Ci.LT},formatExclusiveMaximum:{okStr:"<",ok:Ci.LT,fail:Ci.GTE},formatExclusiveMinimum:{okStr:">",ok:Ci.GT,fail:Ci.LTE}},fte={message:({keyword:t,schemaCode:e})=>(0,cs.str)`should be ${qf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,cs._)`{comparison: ${qf[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(qf),type:"string",schemaType:"string",$data:!0,error:fte,code(t){let{gen:e,data:r,schemaCode:n,keyword:s,it:i}=t,{opts:a,self:o}=i;if(!a.validateFormats)return;let c=new mte.KeywordCxt(i,o.RULES.all.format.definition,"format");c.$data?l():u();function l(){let d=e.scopeValue("formats",{ref:o.formats,code:a.code.formats}),m=e.const("fmt",(0,cs._)`${d}[${c.schemaCode}]`);t.fail$data((0,cs.or)((0,cs._)`typeof ${m} != "object"`,(0,cs._)`${m} instanceof RegExp`,(0,cs._)`typeof ${m}.compare != "function"`,p(m)))}function u(){let d=c.schema,m=o.formats[d];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${s}": format "${d}" does not define "compare" function`);let f=e.scopeValue("formats",{key:d,ref:m,code:a.code.formats?(0,cs._)`${a.code.formats}${(0,cs.getProperty)(d)}`:void 0});t.fail$data(p(f))}function p(d){return(0,cs._)`${d}.compare(${r}, ${n}) ${qf[s].fail} 0`}},dependencies:["format"]};var hte=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=hte});var IN=P((zu,PN)=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});var Ho=kN(),gte=EN(),tw=Ae(),TN=new tw.Name("fullFormats"),vte=new tw.Name("fastFormats"),rw=(t,e={keywords:!0})=>{if(Array.isArray(e))return RN(t,e,Ho.fullFormats,TN),t;let[r,n]=e.mode==="fast"?[Ho.fastFormats,vte]:[Ho.fullFormats,TN],s=e.formats||Ho.formatNames;return RN(t,s,r,n),e.keywords&&(0,gte.default)(t),t};rw.get=(t,e="full")=>{let n=(e==="fast"?Ho.fastFormats:Ho.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function RN(t,e,r,n){var s,i;(s=(i=t.opts.code).formats)!==null&&s!==void 0||(i.formats=(0,tw._)`require("ajv-formats/dist/formats").${n}`);for(let a of e)t.addFormat(a,r[a])}PN.exports=zu=rw;Object.defineProperty(zu,"__esModule",{value:!0});zu.default=rw});var $N=P((qOe,MN)=>{MN.exports=zN;zN.sync=_te;var NN=require("fs");function xte(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{FN.exports=UN;UN.sync=wte;var LN=require("fs");function UN(t,e,r){LN.stat(t,function(n,s){r(n,n?!1:qN(s,e))})}function wte(t,e){return qN(LN.statSync(t),e)}function qN(t,e){return t.isFile()&&Ste(t,e)}function Ste(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),a=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),u=o|c,p=r&l||r&c&&s===a||r&o&&n===i||r&u&&i===0;return p}});var WN=P((BOe,BN)=>{var HOe=require("fs"),Wf;process.platform==="win32"||global.TESTING_WINDOWS?Wf=$N():Wf=HN();BN.exports=nw;nw.sync=kte;function nw(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){nw(t,e||{},function(i,a){i?s(i):n(a)})})}Wf(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function kte(t,e){try{return Wf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var YN=P((WOe,QN)=>{var Wo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ZN=require("path"),Ete=Wo?";":":",GN=WN(),VN=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),KN=(t,e)=>{let r=e.colon||Ete,n=t.match(/\//)||Wo&&t.match(/\\/)?[""]:[...Wo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Wo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Wo?s.split(r):[""];return Wo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},JN=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=KN(t,e),a=[],o=l=>new Promise((u,p)=>{if(l===n.length)return e.all&&a.length?u(a):p(VN(t));let d=n[l],m=/^".*"$/.test(d)?d.slice(1,-1):d,f=ZN.join(m,t),v=!m&&/^\.[\\\/]/.test(t)?t.slice(0,2)+f:f;u(c(v,l,0))}),c=(l,u,p)=>new Promise((d,m)=>{if(p===s.length)return d(o(u+1));let f=s[p];GN(l+f,{pathExt:i},(v,g)=>{if(!v&&g)if(e.all)a.push(l+f);else return d(l+f);return d(c(l,u,p+1))})});return r?o(0).then(l=>r(null,l),r):o(0)},Tte=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=KN(t,e),i=[];for(let a=0;a{"use strict";var XN=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};sw.exports=XN;sw.exports.default=XN});var sD=P((GOe,nD)=>{"use strict";var tD=require("path"),Rte=YN(),Pte=eD();function rD(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let a;try{a=Rte.sync(t.command,{path:r[Pte({env:r})],pathExt:e?tD.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return a&&(a=tD.resolve(s?t.options.cwd:"",a)),a}function Ite(t){return rD(t)||rD(t,!0)}nD.exports=Ite});var iD=P((VOe,aw)=>{"use strict";var iw=/([()\][%!^"`<>&|;, *?])/g;function Cte(t){return t=t.replace(iw,"^$1"),t}function Ote(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(iw,"^$1"),e&&(t=t.replace(iw,"^$1")),t}aw.exports.command=Cte;aw.exports.argument=Ote});var oD=P((KOe,aD)=>{"use strict";aD.exports=/^#!(.*)/});var lD=P((JOe,cD)=>{"use strict";var jte=oD();cD.exports=(t="")=>{let e=t.match(jte);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var pD=P((QOe,uD)=>{"use strict";var ow=require("fs"),Ate=lD();function Nte(t){let r=Buffer.alloc(150),n;try{n=ow.openSync(t,"r"),ow.readSync(n,r,0,150,0),ow.closeSync(n)}catch{}return Ate(r.toString())}uD.exports=Nte});var hD=P((YOe,fD)=>{"use strict";var Dte=require("path"),dD=sD(),mD=iD(),zte=pD(),Mte=process.platform==="win32",$te=/\.(?:com|exe)$/i,Lte=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ute(t){t.file=dD(t);let e=t.file&&zte(t.file);return e?(t.args.unshift(t.file),t.command=e,dD(t)):t.file}function qte(t){if(!Mte)return t;let e=Ute(t),r=!$te.test(e);if(t.options.forceShell||r){let n=Lte.test(e);t.command=Dte.normalize(t.command),t.command=mD.command(t.command),t.args=t.args.map(i=>mD.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Fte(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:qte(n)}fD.exports=Fte});var yD=P((XOe,vD)=>{"use strict";var cw=process.platform==="win32";function lw(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Hte(t,e){if(!cw)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=gD(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function gD(t,e){return cw&&t===1&&!e.file?lw(e.original,"spawn"):null}function Bte(t,e){return cw&&t===1&&!e.file?lw(e.original,"spawnSync"):null}vD.exports={hookChildProcess:Hte,verifyENOENT:gD,verifyENOENTSync:Bte,notFoundError:lw}});var _D=P((eje,Zo)=>{"use strict";var bD=require("child_process"),uw=hD(),pw=yD();function xD(t,e,r){let n=uw(t,e,r),s=bD.spawn(n.command,n.args,n.options);return pw.hookChildProcess(s,n),s}function Wte(t,e,r){let n=uw(t,e,r),s=bD.spawnSync(n.command,n.args,n.options);return s.error=s.error||pw.verifyENOENTSync(s.status,n),s}Zo.exports=xD;Zo.exports.spawn=xD;Zo.exports.sync=Wte;Zo.exports._parse=uw;Zo.exports._enoent=pw});function Sa(){if(wa!==null)return wa;if(process.env.WSL_DISTRO_NAME)return wa=!0,!0;if(process.platform!=="linux")return wa=!1,!1;try{if((0,Vo.existsSync)("/proc/version")){let t=(0,Vo.readFileSync)("/proc/version","utf-8").toLowerCase();return wa=t.includes("microsoft")||t.includes("wsl"),wa}}catch{}return wa=!1,!1}function TD(){if(Vf!==null)return Vf;if(!Sa())return null;try{if((0,Vo.existsSync)("/etc/resolv.conf")){let e=(0,Vo.readFileSync)("/etc/resolv.conf","utf-8").match(/^nameserver\s+(\d+\.\d+\.\d+\.\d+)/m);if(e)return Vf=e[1],Vf}}catch{}return null}function RD(){return ED.default.randomBytes(24).toString("hex")}var Vo,ED,wa,Vf,Kf=xe(()=>{"use strict";Vo=require("fs"),ED=Y(require("crypto"),1),wa=null,Vf=null});function un(){if(Jf!==null)return Jf;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=je.loadFromFile(t);return Jf=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),Jf}function ls(){if(Qf!==null)return Qf;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return Qf=je.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,Qf}function eh(){if(Ko!==null)return Ko;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=je.loadFromFile(t);return Ko=e.CLAUDE_PILOT_WORKER_BIND,Ko==="127.0.0.1"&&Sa()&&(Ko="0.0.0.0",Kte(t,e)),Ko}function Kte(t,e){if(e.CLAUDE_PILOT_REMOTE_TOKEN)return;let r=RD();e.CLAUDE_PILOT_REMOTE_TOKEN=r;try{let n=(0,Xf.readFileSync)(t,"utf-8"),s=JSON.parse(n);s.CLAUDE_PILOT_REMOTE_TOKEN=r,(0,Xf.writeFileSync)(t,JSON.stringify(s,null,2),"utf-8")}catch{}}function Jte(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function th(){let t=ls(),e=un();return`http://${Jte(t)}:${e}`}var Yf,Xf,Jf,Qf,Ko,Ln=xe(()=>{"use strict";Yf=Y(require("path"),1),Xf=require("fs");Or();Kf();Jf=null,Qf=null,Ko=null});var ri,Mu,ID,dw,PD,mw,_,se=xe(()=>{"use strict";ri=require("fs"),Mu=require("path"),ID=require("os"),dw=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(dw||{}),PD=(0,Mu.join)((0,ID.homedir)(),".pilot/memory"),mw=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=(0,Mu.join)(PD,"logs");(0,ri.existsSync)(e)||(0,ri.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Mu.join)(e,`pilot-memory-${r}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,Mu.join)(PD,"settings.json");if((0,ri.existsSync)(e)){let r=(0,ri.readFileSync)(e,"utf-8"),s=(JSON.parse(r).CLAUDE_PILOT_LOG_LEVEL||"INFO").toUpperCase();this.level=dw[s]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} + deps: ${r}}`};var ZX={keyword:"dependencies",type:"object",schemaType:"object",error:Cs.error,code(t){let[e,r]=GX(t);LA(t,e),UA(t,r)}};function GX({schema:t}){let e={},r={};for(let n in t){if(n==="__proto__")continue;let s=Array.isArray(t[n])?e:r;s[n]=t[n]}return[e,r]}function LA(t,e=t.schema){let{gen:r,data:n,it:s}=t;if(Object.keys(e).length===0)return;let i=r.let("missing");for(let a in e){let o=e[a];if(o.length===0)continue;let c=(0,Du.propertyInData)(r,n,a,s.opts.ownProperties);t.setParams({property:a,depsCount:o.length,deps:o.join(", ")}),s.allErrors?r.if(c,()=>{for(let l of o)(0,Du.checkReportMissingProp)(t,l)}):(r.if((0,I0._)`${c} && (${(0,Du.checkMissingProp)(t,o,i)})`),(0,Du.reportMissingProp)(t,i),r.else())}}Cs.validatePropertyDeps=LA;function UA(t,e=t.schema){let{gen:r,data:n,keyword:s,it:i}=t,a=r.name("valid");for(let o in e)(0,WX.alwaysValidSchema)(i,e[o])||(r.if((0,Du.propertyInData)(r,n,o,i.opts.ownProperties),()=>{let c=t.subschema({keyword:s,schemaProp:o},a);t.mergeValidEvaluated(c,a)},()=>r.var(a,!0)),t.ok(a))}Cs.validateSchemaDeps=UA;Cs.default=ZX});var HA=P(C0=>{"use strict";Object.defineProperty(C0,"__esModule",{value:!0});var FA=Ae(),VX=Ke(),KX={message:"property name must be valid",params:({params:t})=>(0,FA._)`{propertyName: ${t.propertyName}}`},JX={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:KX,code(t){let{gen:e,schema:r,data:n,it:s}=t;if((0,VX.alwaysValidSchema)(s,r))return;let i=e.name("valid");e.forIn("key",n,a=>{t.setParams({propertyName:a}),t.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),e.if((0,FA.not)(i),()=>{t.error(!0),s.allErrors||e.break()})}),t.ok(i)}};C0.default=JX});var j0=P(O0=>{"use strict";Object.defineProperty(O0,"__esModule",{value:!0});var Nf=zn(),os=Ae(),QX=Xs(),Df=Ke(),YX={message:"must NOT have additional properties",params:({params:t})=>(0,os._)`{additionalProperty: ${t.additionalProperty}}`},XX={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:YX,code(t){let{gen:e,schema:r,parentSchema:n,data:s,errsCount:i,it:a}=t;if(!i)throw new Error("ajv implementation error");let{allErrors:o,opts:c}=a;if(a.props=!0,c.removeAdditional!=="all"&&(0,Df.alwaysValidSchema)(a,r))return;let l=(0,Nf.allSchemaProperties)(n.properties),u=(0,Nf.allSchemaProperties)(n.patternProperties);p(),t.ok((0,os._)`${i} === ${QX.default.errors}`);function p(){e.forIn("key",s,g=>{!l.length&&!u.length?f(g):e.if(d(g),()=>f(g))})}function d(g){let h;if(l.length>8){let y=(0,Df.schemaRefOrVal)(a,n.properties,"properties");h=(0,Nf.isOwnProperty)(e,y,g)}else l.length?h=(0,os.or)(...l.map(y=>(0,os._)`${g} === ${y}`)):h=os.nil;return u.length&&(h=(0,os.or)(h,...u.map(y=>(0,os._)`${(0,Nf.usePattern)(t,y)}.test(${g})`))),(0,os.not)(h)}function m(g){e.code((0,os._)`delete ${s}[${g}]`)}function f(g){if(c.removeAdditional==="all"||c.removeAdditional&&r===!1){m(g);return}if(r===!1){t.setParams({additionalProperty:g}),t.error(),o||e.break();return}if(typeof r=="object"&&!(0,Df.alwaysValidSchema)(a,r)){let h=e.name("valid");c.removeAdditional==="failing"?(v(g,h,!1),e.if((0,os.not)(h),()=>{t.reset(),m(g)})):(v(g,h),o||e.if((0,os.not)(h),()=>e.break()))}}function v(g,h,y){let b={keyword:"additionalProperties",dataProp:g,dataPropType:Df.Type.Str};y===!1&&Object.assign(b,{compositeRule:!0,createErrors:!1,allErrors:!1}),t.subschema(b,h)}}};O0.default=XX});var ZA=P(N0=>{"use strict";Object.defineProperty(N0,"__esModule",{value:!0});var eee=_u(),BA=zn(),A0=Ke(),WA=j0(),tee={keyword:"properties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,parentSchema:n,data:s,it:i}=t;i.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&WA.default.code(new eee.KeywordCxt(i,WA.default,"additionalProperties"));let a=(0,BA.allSchemaProperties)(r);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=A0.mergeEvaluated.props(e,(0,A0.toHash)(a),i.props));let o=a.filter(p=>!(0,A0.alwaysValidSchema)(i,r[p]));if(o.length===0)return;let c=e.name("valid");for(let p of o)l(p)?u(p):(e.if((0,BA.propertyInData)(e,s,p,i.opts.ownProperties)),u(p),i.allErrors||e.else().var(c,!0),e.endIf()),t.it.definedProperties.add(p),t.ok(c);function l(p){return i.opts.useDefaults&&!i.compositeRule&&r[p].default!==void 0}function u(p){t.subschema({keyword:"properties",schemaProp:p,dataProp:p},c)}}};N0.default=tee});var JA=P(D0=>{"use strict";Object.defineProperty(D0,"__esModule",{value:!0});var GA=zn(),zf=Ae(),VA=Ke(),KA=Ke(),ree={keyword:"patternProperties",type:"object",schemaType:"object",code(t){let{gen:e,schema:r,data:n,parentSchema:s,it:i}=t,{opts:a}=i,o=(0,GA.allSchemaProperties)(r),c=o.filter(v=>(0,VA.alwaysValidSchema)(i,r[v]));if(o.length===0||c.length===o.length&&(!i.opts.unevaluated||i.props===!0))return;let l=a.strictSchema&&!a.allowMatchingProperties&&s.properties,u=e.name("valid");i.props!==!0&&!(i.props instanceof zf.Name)&&(i.props=(0,KA.evaluatedPropsToName)(e,i.props));let{props:p}=i;d();function d(){for(let v of o)l&&m(v),i.allErrors?f(v):(e.var(u,!0),f(v),e.if(u))}function m(v){for(let g in l)new RegExp(v).test(g)&&(0,VA.checkStrictMode)(i,`property ${g} matches pattern ${v} (use allowMatchingProperties)`)}function f(v){e.forIn("key",n,g=>{e.if((0,zf._)`${(0,GA.usePattern)(t,v)}.test(${g})`,()=>{let h=c.includes(v);h||t.subschema({keyword:"patternProperties",schemaProp:v,dataProp:g,dataPropType:KA.Type.Str},u),i.opts.unevaluated&&p!==!0?e.assign((0,zf._)`${p}[${g}]`,!0):!h&&!i.allErrors&&e.if((0,zf.not)(u),()=>e.break())})})}}};D0.default=ree});var QA=P(z0=>{"use strict";Object.defineProperty(z0,"__esModule",{value:!0});var nee=Ke(),see={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(t){let{gen:e,schema:r,it:n}=t;if((0,nee.alwaysValidSchema)(n,r)){t.fail();return}let s=e.name("valid");t.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},s),t.failResult(s,()=>t.reset(),()=>t.error())},error:{message:"must NOT be valid"}};z0.default=see});var YA=P(M0=>{"use strict";Object.defineProperty(M0,"__esModule",{value:!0});var iee=zn(),aee={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:iee.validateUnion,error:{message:"must match a schema in anyOf"}};M0.default=aee});var XA=P($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});var Mf=Ae(),oee=Ke(),cee={message:"must match exactly one schema in oneOf",params:({params:t})=>(0,Mf._)`{passingSchemas: ${t.passing}}`},lee={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:cee,code(t){let{gen:e,schema:r,parentSchema:n,it:s}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;let i=r,a=e.let("valid",!1),o=e.let("passing",null),c=e.name("_valid");t.setParams({passing:o}),e.block(l),t.result(a,()=>t.reset(),()=>t.error(!0));function l(){i.forEach((u,p)=>{let d;(0,oee.alwaysValidSchema)(s,u)?e.var(c,!0):d=t.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},c),p>0&&e.if((0,Mf._)`${c} && ${a}`).assign(a,!1).assign(o,(0,Mf._)`[${o}, ${p}]`).else(),e.if(c,()=>{e.assign(a,!0),e.assign(o,p),d&&t.mergeEvaluated(d,Mf.Name)})})}}};$0.default=lee});var eN=P(L0=>{"use strict";Object.defineProperty(L0,"__esModule",{value:!0});var uee=Ke(),pee={keyword:"allOf",schemaType:"array",code(t){let{gen:e,schema:r,it:n}=t;if(!Array.isArray(r))throw new Error("ajv implementation error");let s=e.name("valid");r.forEach((i,a)=>{if((0,uee.alwaysValidSchema)(n,i))return;let o=t.subschema({keyword:"allOf",schemaProp:a},s);t.ok(s),t.mergeEvaluated(o)})}};L0.default=pee});var nN=P(U0=>{"use strict";Object.defineProperty(U0,"__esModule",{value:!0});var $f=Ae(),rN=Ke(),dee={message:({params:t})=>(0,$f.str)`must match "${t.ifClause}" schema`,params:({params:t})=>(0,$f._)`{failingKeyword: ${t.ifClause}}`},mee={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:dee,code(t){let{gen:e,parentSchema:r,it:n}=t;r.then===void 0&&r.else===void 0&&(0,rN.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let s=tN(n,"then"),i=tN(n,"else");if(!s&&!i)return;let a=e.let("valid",!0),o=e.name("_valid");if(c(),t.reset(),s&&i){let u=e.let("ifClause");t.setParams({ifClause:u}),e.if(o,l("then",u),l("else",u))}else s?e.if(o,l("then")):e.if((0,$f.not)(o),l("else"));t.pass(a,()=>t.error(!0));function c(){let u=t.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},o);t.mergeEvaluated(u)}function l(u,p){return()=>{let d=t.subschema({keyword:u},o);e.assign(a,o),t.mergeValidEvaluated(d,a),p?e.assign(p,(0,$f._)`${u}`):t.setParams({ifClause:u})}}}};function tN(t,e){let r=t.schema[e];return r!==void 0&&!(0,rN.alwaysValidSchema)(t,r)}U0.default=mee});var sN=P(q0=>{"use strict";Object.defineProperty(q0,"__esModule",{value:!0});var fee=Ke(),hee={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:t,parentSchema:e,it:r}){e.if===void 0&&(0,fee.checkStrictMode)(r,`"${t}" without "if" is ignored`)}};q0.default=hee});var iN=P(F0=>{"use strict";Object.defineProperty(F0,"__esModule",{value:!0});var gee=k0(),vee=DA(),yee=E0(),bee=MA(),xee=$A(),_ee=qA(),wee=HA(),See=j0(),kee=ZA(),Eee=JA(),Tee=QA(),Ree=YA(),Pee=XA(),Iee=eN(),Cee=nN(),Oee=sN();function jee(t=!1){let e=[Tee.default,Ree.default,Pee.default,Iee.default,Cee.default,Oee.default,wee.default,See.default,_ee.default,kee.default,Eee.default];return t?e.push(vee.default,bee.default):e.push(gee.default,yee.default),e.push(xee.default),e}F0.default=jee});var aN=P(H0=>{"use strict";Object.defineProperty(H0,"__esModule",{value:!0});var Qt=Ae(),Aee={message:({schemaCode:t})=>(0,Qt.str)`must match format "${t}"`,params:({schemaCode:t})=>(0,Qt._)`{format: ${t}}`},Nee={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:Aee,code(t,e){let{gen:r,data:n,$data:s,schema:i,schemaCode:a,it:o}=t,{opts:c,errSchemaPath:l,schemaEnv:u,self:p}=o;if(!c.validateFormats)return;s?d():m();function d(){let f=r.scopeValue("formats",{ref:p.formats,code:c.code.formats}),v=r.const("fDef",(0,Qt._)`${f}[${a}]`),g=r.let("fType"),h=r.let("format");r.if((0,Qt._)`typeof ${v} == "object" && !(${v} instanceof RegExp)`,()=>r.assign(g,(0,Qt._)`${v}.type || "string"`).assign(h,(0,Qt._)`${v}.validate`),()=>r.assign(g,(0,Qt._)`"string"`).assign(h,v)),t.fail$data((0,Qt.or)(y(),b()));function y(){return c.strictSchema===!1?Qt.nil:(0,Qt._)`${a} && !${h}`}function b(){let x=u.$async?(0,Qt._)`(${v}.async ? await ${h}(${n}) : ${h}(${n}))`:(0,Qt._)`${h}(${n})`,w=(0,Qt._)`(typeof ${h} == "function" ? ${x} : ${h}.test(${n}))`;return(0,Qt._)`${h} && ${h} !== true && ${g} === ${e} && !${w}`}}function m(){let f=p.formats[i];if(!f){y();return}if(f===!0)return;let[v,g,h]=b(f);v===e&&t.pass(x());function y(){if(c.strictSchema===!1){p.logger.warn(w());return}throw new Error(w());function w(){return`unknown format "${i}" ignored in schema at path "${l}"`}}function b(w){let S=w instanceof RegExp?(0,Qt.regexpCode)(w):c.code.formats?(0,Qt._)`${c.code.formats}${(0,Qt.getProperty)(i)}`:void 0,k=r.scopeValue("formats",{key:i,ref:w,code:S});return typeof w=="object"&&!(w instanceof RegExp)?[w.type||"string",w.validate,(0,Qt._)`${k}.validate`]:["string",w,k]}function x(){if(typeof f=="object"&&!(f instanceof RegExp)&&f.async){if(!u.$async)throw new Error("async format in sync schema");return(0,Qt._)`await ${h}(${n})`}return typeof g=="function"?(0,Qt._)`${h}(${n})`:(0,Qt._)`${h}.test(${n})`}}}};H0.default=Nee});var oN=P(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});var Dee=aN(),zee=[Dee.default];B0.default=zee});var cN=P($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.contentVocabulary=$o.metadataVocabulary=void 0;$o.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];$o.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var uN=P(W0=>{"use strict";Object.defineProperty(W0,"__esModule",{value:!0});var Mee=vA(),$ee=OA(),Lee=iN(),Uee=oN(),lN=cN(),qee=[Mee.default,$ee.default,(0,Lee.default)(),Uee.default,lN.metadataVocabulary,lN.contentVocabulary];W0.default=qee});var dN=P(Lf=>{"use strict";Object.defineProperty(Lf,"__esModule",{value:!0});Lf.DiscrError=void 0;var pN;(function(t){t.Tag="tag",t.Mapping="mapping"})(pN||(Lf.DiscrError=pN={}))});var fN=P(G0=>{"use strict";Object.defineProperty(G0,"__esModule",{value:!0});var Lo=Ae(),Z0=dN(),mN=_f(),Fee=wu(),Hee=Ke(),Bee={message:({params:{discrError:t,tagName:e}})=>t===Z0.DiscrError.Tag?`tag "${e}" must be string`:`value of tag "${e}" must be in oneOf`,params:({params:{discrError:t,tag:e,tagName:r}})=>(0,Lo._)`{error: ${t}, tag: ${r}, tagValue: ${e}}`},Wee={keyword:"discriminator",type:"object",schemaType:"object",error:Bee,code(t){let{gen:e,data:r,schema:n,parentSchema:s,it:i}=t,{oneOf:a}=s;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let o=n.propertyName;if(typeof o!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let c=e.let("valid",!1),l=e.const("tag",(0,Lo._)`${r}${(0,Lo.getProperty)(o)}`);e.if((0,Lo._)`typeof ${l} == "string"`,()=>u(),()=>t.error(!1,{discrError:Z0.DiscrError.Tag,tag:l,tagName:o})),t.ok(c);function u(){let m=d();e.if(!1);for(let f in m)e.elseIf((0,Lo._)`${l} === ${f}`),e.assign(c,p(m[f]));e.else(),t.error(!1,{discrError:Z0.DiscrError.Mapping,tag:l,tagName:o}),e.endIf()}function p(m){let f=e.name("valid"),v=t.subschema({keyword:"oneOf",schemaProp:m},f);return t.mergeEvaluated(v,Lo.Name),f}function d(){var m;let f={},v=h(s),g=!0;for(let x=0;x{Zee.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var K0=P((Ct,V0)=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});Ct.MissingRefError=Ct.ValidationError=Ct.CodeGen=Ct.Name=Ct.nil=Ct.stringify=Ct.str=Ct._=Ct.KeywordCxt=Ct.Ajv=void 0;var Gee=pA(),Vee=uN(),Kee=fN(),gN=hN(),Jee=["/properties"],Uf="http://json-schema.org/draft-07/schema",Uo=class extends Gee.default{_addVocabularies(){super._addVocabularies(),Vee.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(Kee.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(gN,Jee):gN;this.addMetaSchema(e,Uf,!1),this.refs["http://json-schema.org/schema"]=Uf}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(Uf)?Uf:void 0)}};Ct.Ajv=Uo;V0.exports=Ct=Uo;V0.exports.Ajv=Uo;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.default=Uo;var Qee=_u();Object.defineProperty(Ct,"KeywordCxt",{enumerable:!0,get:function(){return Qee.KeywordCxt}});var qo=Ae();Object.defineProperty(Ct,"_",{enumerable:!0,get:function(){return qo._}});Object.defineProperty(Ct,"str",{enumerable:!0,get:function(){return qo.str}});Object.defineProperty(Ct,"stringify",{enumerable:!0,get:function(){return qo.stringify}});Object.defineProperty(Ct,"nil",{enumerable:!0,get:function(){return qo.nil}});Object.defineProperty(Ct,"Name",{enumerable:!0,get:function(){return qo.Name}});Object.defineProperty(Ct,"CodeGen",{enumerable:!0,get:function(){return qo.CodeGen}});var Yee=bf();Object.defineProperty(Ct,"ValidationError",{enumerable:!0,get:function(){return Yee.default}});var Xee=wu();Object.defineProperty(Ct,"MissingRefError",{enumerable:!0,get:function(){return Xee.default}})});var kN=P(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.formatNames=js.fastFormats=js.fullFormats=void 0;function Os(t,e){return{validate:t,compare:e}}js.fullFormats={date:Os(xN,X0),time:Os(Q0(!0),ew),"date-time":Os(vN(!0),wN),"iso-time":Os(Q0(),_N),"iso-date-time":Os(vN(),SN),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:ite,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:dte,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:ate,int32:{type:"number",validate:lte},int64:{type:"number",validate:ute},float:{type:"number",validate:bN},double:{type:"number",validate:bN},password:!0,binary:!0};js.fastFormats={...js.fullFormats,date:Os(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,X0),time:Os(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,ew),"date-time":Os(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,wN),"iso-time":Os(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,_N),"iso-date-time":Os(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,SN),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};js.formatNames=Object.keys(js.fullFormats);function ete(t){return t%4===0&&(t%100!==0||t%400===0)}var tte=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,rte=[0,31,28,31,30,31,30,31,31,30,31,30,31];function xN(t){let e=tte.exec(t);if(!e)return!1;let r=+e[1],n=+e[2],s=+e[3];return n>=1&&n<=12&&s>=1&&s<=(n===2&&ete(r)?29:rte[n])}function X0(t,e){if(t&&e)return t>e?1:t23||u>59||t&&!o)return!1;if(s<=23&&i<=59&&a<60)return!0;let p=i-u*c,d=s-l*c-(p<0?1:0);return(d===23||d===-1)&&(p===59||p===-1)&&a<61}}function ew(t,e){if(!(t&&e))return;let r=new Date("2020-01-01T"+t).valueOf(),n=new Date("2020-01-01T"+e).valueOf();if(r&&n)return r-n}function _N(t,e){if(!(t&&e))return;let r=J0.exec(t),n=J0.exec(e);if(r&&n)return t=r[1]+r[2]+r[3],e=n[1]+n[2]+n[3],t>e?1:t=ote}function ute(t){return Number.isInteger(t)}function bN(){return!0}var pte=/[^\\]\\Z/;function dte(t){if(pte.test(t))return!1;try{return new RegExp(t),!0}catch{return!1}}});var EN=P(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.formatLimitDefinition=void 0;var mte=K0(),cs=Ae(),Ci=cs.operators,qf={formatMaximum:{okStr:"<=",ok:Ci.LTE,fail:Ci.GT},formatMinimum:{okStr:">=",ok:Ci.GTE,fail:Ci.LT},formatExclusiveMaximum:{okStr:"<",ok:Ci.LT,fail:Ci.GTE},formatExclusiveMinimum:{okStr:">",ok:Ci.GT,fail:Ci.LTE}},fte={message:({keyword:t,schemaCode:e})=>(0,cs.str)`should be ${qf[t].okStr} ${e}`,params:({keyword:t,schemaCode:e})=>(0,cs._)`{comparison: ${qf[t].okStr}, limit: ${e}}`};Fo.formatLimitDefinition={keyword:Object.keys(qf),type:"string",schemaType:"string",$data:!0,error:fte,code(t){let{gen:e,data:r,schemaCode:n,keyword:s,it:i}=t,{opts:a,self:o}=i;if(!a.validateFormats)return;let c=new mte.KeywordCxt(i,o.RULES.all.format.definition,"format");c.$data?l():u();function l(){let d=e.scopeValue("formats",{ref:o.formats,code:a.code.formats}),m=e.const("fmt",(0,cs._)`${d}[${c.schemaCode}]`);t.fail$data((0,cs.or)((0,cs._)`typeof ${m} != "object"`,(0,cs._)`${m} instanceof RegExp`,(0,cs._)`typeof ${m}.compare != "function"`,p(m)))}function u(){let d=c.schema,m=o.formats[d];if(!m||m===!0)return;if(typeof m!="object"||m instanceof RegExp||typeof m.compare!="function")throw new Error(`"${s}": format "${d}" does not define "compare" function`);let f=e.scopeValue("formats",{key:d,ref:m,code:a.code.formats?(0,cs._)`${a.code.formats}${(0,cs.getProperty)(d)}`:void 0});t.fail$data(p(f))}function p(d){return(0,cs._)`${d}.compare(${r}, ${n}) ${qf[s].fail} 0`}},dependencies:["format"]};var hte=t=>(t.addKeyword(Fo.formatLimitDefinition),t);Fo.default=hte});var IN=P((zu,PN)=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});var Ho=kN(),gte=EN(),tw=Ae(),TN=new tw.Name("fullFormats"),vte=new tw.Name("fastFormats"),rw=(t,e={keywords:!0})=>{if(Array.isArray(e))return RN(t,e,Ho.fullFormats,TN),t;let[r,n]=e.mode==="fast"?[Ho.fastFormats,vte]:[Ho.fullFormats,TN],s=e.formats||Ho.formatNames;return RN(t,s,r,n),e.keywords&&(0,gte.default)(t),t};rw.get=(t,e="full")=>{let n=(e==="fast"?Ho.fastFormats:Ho.fullFormats)[t];if(!n)throw new Error(`Unknown format "${t}"`);return n};function RN(t,e,r,n){var s,i;(s=(i=t.opts.code).formats)!==null&&s!==void 0||(i.formats=(0,tw._)`require("ajv-formats/dist/formats").${n}`);for(let a of e)t.addFormat(a,r[a])}PN.exports=zu=rw;Object.defineProperty(zu,"__esModule",{value:!0});zu.default=rw});var $N=P((qOe,MN)=>{MN.exports=zN;zN.sync=_te;var NN=require("fs");function xte(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{FN.exports=UN;UN.sync=wte;var LN=require("fs");function UN(t,e,r){LN.stat(t,function(n,s){r(n,n?!1:qN(s,e))})}function wte(t,e){return qN(LN.statSync(t),e)}function qN(t,e){return t.isFile()&&Ste(t,e)}function Ste(t,e){var r=t.mode,n=t.uid,s=t.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),a=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),c=parseInt("010",8),l=parseInt("001",8),u=o|c,p=r&l||r&c&&s===a||r&o&&n===i||r&u&&i===0;return p}});var WN=P((BOe,BN)=>{var HOe=require("fs"),Wf;process.platform==="win32"||global.TESTING_WINDOWS?Wf=$N():Wf=HN();BN.exports=nw;nw.sync=kte;function nw(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,s){nw(t,e||{},function(i,a){i?s(i):n(a)})})}Wf(t,e||{},function(n,s){n&&(n.code==="EACCES"||e&&e.ignoreErrors)&&(n=null,s=!1),r(n,s)})}function kte(t,e){try{return Wf.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var YN=P((WOe,QN)=>{var Wo=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",ZN=require("path"),Ete=Wo?";":":",GN=WN(),VN=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),KN=(t,e)=>{let r=e.colon||Ete,n=t.match(/\//)||Wo&&t.match(/\\/)?[""]:[...Wo?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=Wo?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=Wo?s.split(r):[""];return Wo&&t.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:n,pathExt:i,pathExtExe:s}},JN=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:n,pathExt:s,pathExtExe:i}=KN(t,e),a=[],o=l=>new Promise((u,p)=>{if(l===n.length)return e.all&&a.length?u(a):p(VN(t));let d=n[l],m=/^".*"$/.test(d)?d.slice(1,-1):d,f=ZN.join(m,t),v=!m&&/^\.[\\\/]/.test(t)?t.slice(0,2)+f:f;u(c(v,l,0))}),c=(l,u,p)=>new Promise((d,m)=>{if(p===s.length)return d(o(u+1));let f=s[p];GN(l+f,{pathExt:i},(v,g)=>{if(!v&&g)if(e.all)a.push(l+f);else return d(l+f);return d(c(l,u,p+1))})});return r?o(0).then(l=>r(null,l),r):o(0)},Tte=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:n,pathExtExe:s}=KN(t,e),i=[];for(let a=0;a{"use strict";var XN=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};sw.exports=XN;sw.exports.default=XN});var sD=P((GOe,nD)=>{"use strict";var tD=require("path"),Rte=YN(),Pte=eD();function rD(t,e){let r=t.options.env||process.env,n=process.cwd(),s=t.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(t.options.cwd)}catch{}let a;try{a=Rte.sync(t.command,{path:r[Pte({env:r})],pathExt:e?tD.delimiter:void 0})}catch{}finally{i&&process.chdir(n)}return a&&(a=tD.resolve(s?t.options.cwd:"",a)),a}function Ite(t){return rD(t)||rD(t,!0)}nD.exports=Ite});var iD=P((VOe,aw)=>{"use strict";var iw=/([()\][%!^"`<>&|;, *?])/g;function Cte(t){return t=t.replace(iw,"^$1"),t}function Ote(t,e){return t=`${t}`,t=t.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),t=t.replace(/(?=(\\+?)?)\1$/,"$1$1"),t=`"${t}"`,t=t.replace(iw,"^$1"),e&&(t=t.replace(iw,"^$1")),t}aw.exports.command=Cte;aw.exports.argument=Ote});var oD=P((KOe,aD)=>{"use strict";aD.exports=/^#!(.*)/});var lD=P((JOe,cD)=>{"use strict";var jte=oD();cD.exports=(t="")=>{let e=t.match(jte);if(!e)return null;let[r,n]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?n:n?`${s} ${n}`:s}});var pD=P((QOe,uD)=>{"use strict";var ow=require("fs"),Ate=lD();function Nte(t){let r=Buffer.alloc(150),n;try{n=ow.openSync(t,"r"),ow.readSync(n,r,0,150,0),ow.closeSync(n)}catch{}return Ate(r.toString())}uD.exports=Nte});var hD=P((YOe,fD)=>{"use strict";var Dte=require("path"),dD=sD(),mD=iD(),zte=pD(),Mte=process.platform==="win32",$te=/\.(?:com|exe)$/i,Lte=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Ute(t){t.file=dD(t);let e=t.file&&zte(t.file);return e?(t.args.unshift(t.file),t.command=e,dD(t)):t.file}function qte(t){if(!Mte)return t;let e=Ute(t),r=!$te.test(e);if(t.options.forceShell||r){let n=Lte.test(e);t.command=Dte.normalize(t.command),t.command=mD.command(t.command),t.args=t.args.map(i=>mD.argument(i,n));let s=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${s}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Fte(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let n={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?n:qte(n)}fD.exports=Fte});var yD=P((XOe,vD)=>{"use strict";var cw=process.platform==="win32";function lw(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Hte(t,e){if(!cw)return;let r=t.emit;t.emit=function(n,s){if(n==="exit"){let i=gD(s,e);if(i)return r.call(t,"error",i)}return r.apply(t,arguments)}}function gD(t,e){return cw&&t===1&&!e.file?lw(e.original,"spawn"):null}function Bte(t,e){return cw&&t===1&&!e.file?lw(e.original,"spawnSync"):null}vD.exports={hookChildProcess:Hte,verifyENOENT:gD,verifyENOENTSync:Bte,notFoundError:lw}});var _D=P((eje,Zo)=>{"use strict";var bD=require("child_process"),uw=hD(),pw=yD();function xD(t,e,r){let n=uw(t,e,r),s=bD.spawn(n.command,n.args,n.options);return pw.hookChildProcess(s,n),s}function Wte(t,e,r){let n=uw(t,e,r),s=bD.spawnSync(n.command,n.args,n.options);return s.error=s.error||pw.verifyENOENTSync(s.status,n),s}Zo.exports=xD;Zo.exports.spawn=xD;Zo.exports.sync=Wte;Zo.exports._parse=uw;Zo.exports._enoent=pw});function ka(){if(Sa!==null)return Sa;if(process.env.WSL_DISTRO_NAME)return Sa=!0,!0;if(process.platform!=="linux")return Sa=!1,!1;try{if((0,Vo.existsSync)("/proc/version")){let t=(0,Vo.readFileSync)("/proc/version","utf-8").toLowerCase();return Sa=t.includes("microsoft")||t.includes("wsl"),Sa}}catch{}return Sa=!1,!1}function TD(){if(Vf!==null)return Vf;if(!ka())return null;try{if((0,Vo.existsSync)("/etc/resolv.conf")){let e=(0,Vo.readFileSync)("/etc/resolv.conf","utf-8").match(/^nameserver\s+(\d+\.\d+\.\d+\.\d+)/m);if(e)return Vf=e[1],Vf}}catch{}return null}function RD(){return ED.default.randomBytes(24).toString("hex")}var Vo,ED,Sa,Vf,Kf=xe(()=>{"use strict";Vo=require("fs"),ED=Y(require("crypto"),1),Sa=null,Vf=null});function un(){if(Jf!==null)return Jf;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=je.loadFromFile(t);return Jf=parseInt(e.CLAUDE_PILOT_WORKER_PORT,10),Jf}function ls(){if(Qf!==null)return Qf;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json");return Qf=je.loadFromFile(t).CLAUDE_PILOT_WORKER_HOST,Qf}function eh(){if(Ko!==null)return Ko;let t=Yf.default.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json"),e=je.loadFromFile(t);return Ko=e.CLAUDE_PILOT_WORKER_BIND,Ko==="127.0.0.1"&&ka()&&(Ko="0.0.0.0",Kte(t,e)),Ko}function Kte(t,e){if(e.CLAUDE_PILOT_REMOTE_TOKEN)return;let r=RD();e.CLAUDE_PILOT_REMOTE_TOKEN=r;try{let n=(0,Xf.readFileSync)(t,"utf-8"),s=JSON.parse(n);s.CLAUDE_PILOT_REMOTE_TOKEN=r,(0,Xf.writeFileSync)(t,JSON.stringify(s,null,2),"utf-8")}catch{}}function Jte(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function th(){let t=ls(),e=un();return`http://${Jte(t)}:${e}`}var Yf,Xf,Jf,Qf,Ko,Ln=xe(()=>{"use strict";Yf=Y(require("path"),1),Xf=require("fs");Or();Kf();Jf=null,Qf=null,Ko=null});var ri,Mu,ID,dw,PD,mw,_,se=xe(()=>{"use strict";ri=require("fs"),Mu=require("path"),ID=require("os"),dw=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(dw||{}),PD=(0,Mu.join)((0,ID.homedir)(),".pilot/memory"),mw=class{level=null;useColor;logFilePath=null;logFileInitialized=!1;constructor(){this.useColor=process.stdout.isTTY??!1}ensureLogFileInitialized(){if(!this.logFileInitialized){this.logFileInitialized=!0;try{let e=(0,Mu.join)(PD,"logs");(0,ri.existsSync)(e)||(0,ri.mkdirSync)(e,{recursive:!0});let r=new Date().toISOString().split("T")[0];this.logFilePath=(0,Mu.join)(e,`pilot-memory-${r}.log`)}catch(e){console.error("[LOGGER] Failed to initialize log file:",e),this.logFilePath=null}}}getLevel(){if(this.level===null)try{let e=(0,Mu.join)(PD,"settings.json");if((0,ri.existsSync)(e)){let r=(0,ri.readFileSync)(e,"utf-8"),s=(JSON.parse(r).CLAUDE_PILOT_LOG_LEVEL||"INFO").toUpperCase();this.level=dw[s]??1}else this.level=1}catch{this.level=1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;let n=r;if(typeof r=="string")try{n=JSON.parse(r)}catch{n=r}if(e==="Bash"&&n.command)return`${e}(${n.command})`;if(n.file_path)return`${e}(${n.file_path})`;if(n.notebook_path)return`${e}(${n.notebook_path})`;if(e==="Glob"&&n.pattern)return`${e}(${n.pattern})`;if(e==="Grep"&&n.pattern)return`${e}(${n.pattern})`;if(n.url)return`${e}(${n.url})`;if(n.query)return`${e}(${n.query})`;if(e==="Task"){if(n.subagent_type)return`${e}(${n.subagent_type})`;if(n.description)return`${e}(${n.description})`}return e==="Skill"&&n.skill?`${e}(${n.skill})`:e==="LSP"&&n.operation?`${e}(${n.operation})`:e}formatTimestamp(e){let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),c=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${n}-${s} ${i}:${a}:${o}.${c}`}log(e,r,n,s,i){if(eparseInt(l,10)||0);e=a,r=o,n=c}else{try{let{stdout:s}=await ch(`pgrep -f 'pilot-memory|worker-service|mcp-server' 2>/dev/null | grep -v "^${t}$" | wc -l`);e=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await ch(`pgrep -f '${qD}' 2>/dev/null | wc -l`);r=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await ch("pgrep -f 'chroma' 2>/dev/null | wc -l");n=parseInt(s.trim(),10)||0}catch{}}}catch(s){_.debug("SYSTEM","Error counting processes",{},s)}return{claudeMemProcesses:e,claudeCliProcesses:r,chromaProcesses:n,total:e+r+n}}var FD,HD,ch,qD,WD=xe(()=>{"use strict";FD=require("child_process"),HD=require("util");se();As();ch=(0,HD.promisify)(FD.exec),qD="claude.*--output-format.*stream-json"});var QD={};ks(QD,{cleanStalePidFile:()=>xw,cleanupOrphanedChromaProcesses:()=>oh,cleanupOrphanedClaudeProcesses:()=>Uu,cleanupOrphanedProcesses:()=>qu,createSignalHandler:()=>kw,forceKillProcess:()=>ww,getChildProcesses:()=>_w,getPlatformTimeout:()=>Ea,getProcessStats:()=>BD,isOrphanedProcess:()=>Oi,isProcessAlive:()=>JD,parseElapsedTime:()=>nh,readPidFile:()=>KD,removePidFile:()=>ps,spawnDaemon:()=>Hu,waitForProcessesExit:()=>Sw,writePidFile:()=>Fu});function Fu(t){(0,us.mkdirSync)(VD,{recursive:!0}),(0,us.writeFileSync)(ka,JSON.stringify(t,null,2))}function KD(){if(!(0,us.existsSync)(ka))return null;try{return JSON.parse((0,us.readFileSync)(ka,"utf-8"))}catch(t){return _.warn("SYSTEM","Failed to parse PID file",{path:ka},t),null}}function ps(){if((0,us.existsSync)(ka))try{(0,us.unlinkSync)(ka)}catch(t){_.warn("SYSTEM","Failed to remove PID file",{path:ka},t)}}function JD(t){if(!Number.isInteger(t)||t<0)return!1;if(t===0)return!0;try{return process.kill(t,0),!0}catch(e){return(e instanceof Error?e.code:void 0)==="EPERM"}}function xw(){let t=KD();t&&(JD(t.pid)||(_.info("SYSTEM","Removing stale PID file",{pid:t.pid}),ps()))}function Ea(t){return process.platform==="win32"?Math.round(t*2):t}async function _w(t){if(!Number.isInteger(t)||t<=0)return _.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=String(Math.floor(t));if(process.platform==="win32"){let r=`powershell -NoProfile -NonInteractive -Command "Get-Process | Where-Object { \\$_.ParentProcessId -eq ${e} } | Select-Object -ExpandProperty Id"`,{stdout:n}=await yw(r,{timeout:qt.POWERSHELL_COMMAND});return n.split(` + "`,{stdout:i}=await ch(s,{timeout:qt.POWERSHELL_COMMAND}),[a,o,c]=i.trim().split(",").map(l=>parseInt(l,10)||0);e=a,r=o,n=c}else{try{let{stdout:s}=await ch(`pgrep -f 'pilot-memory|worker-service|mcp-server' 2>/dev/null | grep -v "^${t}$" | wc -l`);e=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await ch(`pgrep -f '${qD}' 2>/dev/null | wc -l`);r=parseInt(s.trim(),10)||0}catch{}try{let{stdout:s}=await ch("pgrep -f 'chroma' 2>/dev/null | wc -l");n=parseInt(s.trim(),10)||0}catch{}}}catch(s){_.debug("SYSTEM","Error counting processes",{},s)}return{claudeMemProcesses:e,claudeCliProcesses:r,chromaProcesses:n,total:e+r+n}}var FD,HD,ch,qD,WD=xe(()=>{"use strict";FD=require("child_process"),HD=require("util");se();As();ch=(0,HD.promisify)(FD.exec),qD="claude.*--output-format.*stream-json"});var QD={};ks(QD,{cleanStalePidFile:()=>xw,cleanupOrphanedChromaProcesses:()=>oh,cleanupOrphanedClaudeProcesses:()=>Uu,cleanupOrphanedProcesses:()=>qu,createSignalHandler:()=>kw,forceKillProcess:()=>ww,getChildProcesses:()=>_w,getPlatformTimeout:()=>Ta,getProcessStats:()=>BD,isOrphanedProcess:()=>Oi,isProcessAlive:()=>JD,parseElapsedTime:()=>nh,readPidFile:()=>KD,removePidFile:()=>ps,spawnDaemon:()=>Hu,waitForProcessesExit:()=>Sw,writePidFile:()=>Fu});function Fu(t){(0,us.mkdirSync)(VD,{recursive:!0}),(0,us.writeFileSync)(Ea,JSON.stringify(t,null,2))}function KD(){if(!(0,us.existsSync)(Ea))return null;try{return JSON.parse((0,us.readFileSync)(Ea,"utf-8"))}catch(t){return _.warn("SYSTEM","Failed to parse PID file",{path:Ea},t),null}}function ps(){if((0,us.existsSync)(Ea))try{(0,us.unlinkSync)(Ea)}catch(t){_.warn("SYSTEM","Failed to remove PID file",{path:Ea},t)}}function JD(t){if(!Number.isInteger(t)||t<0)return!1;if(t===0)return!0;try{return process.kill(t,0),!0}catch(e){return(e instanceof Error?e.code:void 0)==="EPERM"}}function xw(){let t=KD();t&&(JD(t.pid)||(_.info("SYSTEM","Removing stale PID file",{pid:t.pid}),ps()))}function Ta(t){return process.platform==="win32"?Math.round(t*2):t}async function _w(t){if(!Number.isInteger(t)||t<=0)return _.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=String(Math.floor(t));if(process.platform==="win32"){let r=`powershell -NoProfile -NonInteractive -Command "Get-Process | Where-Object { \\$_.ParentProcessId -eq ${e} } | Select-Object -ExpandProperty Id"`,{stdout:n}=await yw(r,{timeout:qt.POWERSHELL_COMMAND});return n.split(` `).map(s=>s.trim()).filter(s=>s.length>0&&/^\d+$/.test(s)).map(s=>parseInt(s,10)).filter(s=>s>0)}else{let{stdout:r}=await yw(`pgrep -P ${e} 2>/dev/null || true`);return r.split(` -`).map(n=>n.trim()).filter(n=>n.length>0&&/^\d+$/.test(n)).map(n=>parseInt(n,10)).filter(n=>n>0)}}catch(e){return _.error("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function ww(t){if(!Number.isInteger(t)||t<=0){_.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{let e=String(Math.floor(t));process.platform==="win32"?await yw(`taskkill /PID ${e} /T /F`,{timeout:qt.POWERSHELL_COMMAND}):process.kill(t,"SIGKILL"),_.info("SYSTEM","Killed process",{pid:t})}catch(e){_.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function Sw(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(s,0),!0}catch{return!1}});if(n.length===0){_.info("SYSTEM","All child processes exited");return}_.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(s=>setTimeout(s,100))}_.warn("SYSTEM","Timeout waiting for child processes to exit")}function Hu(t,e,r={}){let n=(0,lh.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_PILOT_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function kw(t,e){return async r=>{if(e.value){_.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,_.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){_.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var bw,ZD,us,lh,GD,yw,VD,ka,Bu=xe(()=>{"use strict";bw=Y(require("path"),1),ZD=require("os"),us=require("fs"),lh=require("child_process"),GD=require("util");se();As();MD();UD();sh();WD();yw=(0,GD.promisify)(lh.exec),VD=bw.default.join((0,ZD.homedir)(),".pilot/memory"),ka=bw.default.join(VD,"worker.pid")});var Ns=P((Hje,nz)=>{var ore=require("path").relative;nz.exports=dre;var cre=process.cwd();function tz(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),s=0;sn.trim()).filter(n=>n.length>0&&/^\d+$/.test(n)).map(n=>parseInt(n,10)).filter(n=>n>0)}}catch(e){return _.error("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function ww(t){if(!Number.isInteger(t)||t<=0){_.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{let e=String(Math.floor(t));process.platform==="win32"?await yw(`taskkill /PID ${e} /T /F`,{timeout:qt.POWERSHELL_COMMAND}):process.kill(t,"SIGKILL"),_.info("SYSTEM","Killed process",{pid:t})}catch(e){_.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function Sw(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(s,0),!0}catch{return!1}});if(n.length===0){_.info("SYSTEM","All child processes exited");return}_.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(s=>setTimeout(s,100))}_.warn("SYSTEM","Timeout waiting for child processes to exit")}function Hu(t,e,r={}){let n=(0,lh.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,CLAUDE_PILOT_WORKER_PORT:String(e),...r}});if(n.pid!==void 0)return n.unref(),n.pid}function kw(t,e){return async r=>{if(e.value){_.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,_.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){_.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var bw,ZD,us,lh,GD,yw,VD,Ea,Bu=xe(()=>{"use strict";bw=Y(require("path"),1),ZD=require("os"),us=require("fs"),lh=require("child_process"),GD=require("util");se();As();MD();UD();sh();WD();yw=(0,GD.promisify)(lh.exec),VD=bw.default.join((0,ZD.homedir)(),".pilot/memory"),Ea=bw.default.join(VD,"worker.pid")});var Ns=P((Hje,nz)=>{var ore=require("path").relative;nz.exports=dre;var cre=process.cwd();function tz(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),s=0;s0}function fre(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return tz(e,t)}function hre(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return tz(e,t)}function dh(t,e){var r=mre(process,"deprecation");if(!(!r&&this._ignored)){var n,s,i,a,o=0,c=!1,l=mh(),u=this._file;for(e?(a=e,i=Jo(l[1]),i.name=a.name,u=i[0]):(o=2,a=Jo(l[o]),i=a);o",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var s=[e,r,n];return s.callSite=t,s.name=t.getFunctionName(),s}function ez(t){var e=t.callSite,r=t.name;r||(r="");var n=e.getThis(),s=n&&e.getTypeName();return s==="Object"&&(s=void 0),s==="Function"&&(s=n.name||s),s&&e.getMethodName()?s+"."+r:r}function gre(t,e,r){var n=new Date().toUTCString(),s=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var i=0;i{"use strict";fh.exports=kre;fh.exports.format=sz;fh.exports.parse=iz;var _re=/\B(?=(\d{3})+(?!\d))/g,wre=/(?:\.0*|(\.[^0]+)0+)$/,ji={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},Sre=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function kre(t,e){return typeof t=="string"?iz(t):typeof t=="number"?sz(t,e):null}function sz(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",s=e&&e.unitSeparator||"",i=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,a=!!(e&&e.fixedDecimals),o=e&&e.unit||"";(!o||!ji[o.toLowerCase()])&&(r>=ji.pb?o="PB":r>=ji.tb?o="TB":r>=ji.gb?o="GB":r>=ji.mb?o="MB":r>=ji.kb?o="KB":o="B");var c=t/ji[o.toLowerCase()],l=c.toFixed(i);return a||(l=l.replace(wre,"$1")),n&&(l=l.split(".").map(function(u,p){return p===0?u.replace(_re,n):u}).join(".")),l+s+o}function iz(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=Sre.exec(t),r,n="b";return e?(r=parseFloat(e[1]),n=e[4].toLowerCase()):(r=parseInt(t,10),n="b"),isNaN(r)?null:Math.floor(ji[n]*r)}});var Ju=P(Pw=>{"use strict";var az=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,Ere=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,oz=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Tre=/\\([\u000b\u0020-\u00ff])/g,Rre=/([\\"])/g,cz=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Pw.format=Pre;Pw.parse=Ire;function Pre(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!cz.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a0&&!Ere.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(Rre,"\\$1")+'"'}function jre(t){this.parameters=Object.create(null),this.type=t}});var Qu=P((Zje,lz)=>{"use strict";lz.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?Are:Nre);function Are(t,e){return t.__proto__=e,t}function Nre(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var uz=P((Gje,Dre)=>{Dre.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var Yu=P((Vje,dz)=>{"use strict";var Iw=uz();dz.exports=ds;ds.message=Iw;ds.code=zre(Iw);ds.codes=Mre(Iw);ds.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};ds.empty={204:!0,205:!0,304:!0};ds.retry={502:!0,503:!0,504:!0};function zre(t){var e={};return Object.keys(t).forEach(function(n){var s=t[n],i=Number(n);e[s.toLowerCase()]=i}),e}function Mre(t){return Object.keys(t).map(function(r){return Number(r)})}function $re(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(ds.code,e))throw new Error('invalid status message: "'+t+'"');return ds.code[e]}function pz(t){if(!Object.prototype.hasOwnProperty.call(ds.message,t))throw new Error("invalid status code: "+t);return ds.message[t]}function ds(t){if(typeof t=="number")return pz(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?$re(t):pz(e)}});var mz=P((Kje,Cw)=>{typeof Object.create=="function"?Cw.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Cw.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var fz=P((Jje,jw)=>{try{if(Ow=require("util"),typeof Ow.inherits!="function")throw"";jw.exports=Ow.inherits}catch{jw.exports=mz()}var Ow});var gz=P((Qje,hz)=>{"use strict";hz.exports=Lre;function Lre(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Ra=P((Yje,Ta)=>{"use strict";var Ure=Ns()("http-errors"),vz=Qu(),Yo=Yu(),Aw=fz(),qre=gz();Ta.exports=hh;Ta.exports.HttpError=Fre();Ta.exports.isHttpError=Bre(Ta.exports.HttpError);Zre(Ta.exports,Yo.codes,Ta.exports.HttpError);function yz(t){return+(String(t).charAt(0)+"00")}function hh(){for(var t,e,r=500,n={},s=0;s=600)&&Ure("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!Yo.message[r]&&(r<400||r>=600))&&(r=500);var o=hh[r]||hh[yz(r)];t||(t=o?new o(e):new Error(e||Yo.message[r]),Error.captureStackTrace(t,hh)),(!o||!(t instanceof o)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in n)c!=="status"&&c!=="statusCode"&&(t[c]=n[c]);return t}function Fre(){function t(){throw new TypeError("cannot construct abstract class")}return Aw(t,Error),t}function Hre(t,e,r){var n=xz(e);function s(i){var a=i??Yo.message[r],o=new Error(a);return Error.captureStackTrace(o,s),vz(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Aw(s,t),bz(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}function Bre(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function Wre(t,e,r){var n=xz(e);function s(i){var a=i??Yo.message[r],o=new Error(a);return Error.captureStackTrace(o,s),vz(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Aw(s,t),bz(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}function bz(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function Zre(t,e,r){e.forEach(function(s){var i,a=qre(Yo.message[s]);switch(yz(s)){case 400:i=Hre(r,a,s);break;case 500:i=Wre(r,a,s);break}i&&(t[s]=i,t[a]=i)})}function xz(t){return t.slice(-5)==="Error"?t:t+"Error"}});var wz=P((Xje,_z)=>{var Xu=1e3,ep=Xu*60,tp=ep*60,rp=tp*24,Gre=rp*365.25;_z.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Vre(t);if(r==="number"&&isNaN(t)===!1)return e.long?Jre(t):Kre(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Vre(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Gre;case"days":case"day":case"d":return r*rp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*tp;case"minutes":case"minute":case"mins":case"min":case"m":return r*ep;case"seconds":case"second":case"secs":case"sec":case"s":return r*Xu;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kre(t){return t>=rp?Math.round(t/rp)+"d":t>=tp?Math.round(t/tp)+"h":t>=ep?Math.round(t/ep)+"m":t>=Xu?Math.round(t/Xu)+"s":t+"ms"}function Jre(t){return gh(t,rp,"day")||gh(t,tp,"hour")||gh(t,ep,"minute")||gh(t,Xu,"second")||t+" ms"}function gh(t,e,r){if(!(t{ot=Sz.exports=Dw.debug=Dw.default=Dw;ot.coerce=tne;ot.disable=Xre;ot.enable=Yre;ot.enabled=ene;ot.humanize=wz();ot.names=[];ot.skips=[];ot.formatters={};var Nw;function Qre(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ot.colors[Math.abs(e)%ot.colors.length]}function Dw(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(Nw||n);r.diff=s,r.prev=Nw,r.curr=n,Nw=n;for(var i=new Array(arguments.length),a=0;a{Ur=Ez.exports=zw();Ur.log=sne;Ur.formatArgs=nne;Ur.save=ine;Ur.load=kz;Ur.useColors=rne;Ur.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:ane();Ur.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function rne(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Ur.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function nne(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Ur.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function sne(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function ine(t){try{t==null?Ur.storage.removeItem("debug"):Ur.storage.debug=t}catch{}}function kz(){var t;try{t=Ur.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Ur.enable(kz());function ane(){try{return window.localStorage}catch{}}});var Cz=P((ur,Iz)=>{var Rz=require("tty"),np=require("util");ur=Iz.exports=zw();ur.init=mne;ur.log=une;ur.formatArgs=lne;ur.save=pne;ur.load=Pz;ur.useColors=cne;ur.colors=[6,2,3,4,5,1];ur.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var Xo=parseInt(process.env.DEBUG_FD,10)||2;Xo!==1&&Xo!==2&&np.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var one=Xo===1?process.stdout:Xo===2?process.stderr:dne(Xo);function cne(){return"colors"in ur.inspectOpts?!!ur.inspectOpts.colors:Rz.isatty(Xo)}ur.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,np.inspect(t,this.inspectOpts).split(` +}`)(t,dh,this,e,s);return i}function xre(t,e,r){if(!t||typeof t!="object"&&typeof t!="function")throw new TypeError("argument obj must be object");var n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw new TypeError("must call property on owner object");if(!n.configurable)throw new TypeError("property must be configurable");var s=this,i=mh(),a=Jo(i[1]);a.name=e,"value"in n&&(n=lre(t,e,r));var o=n.get,c=n.set;typeof o=="function"&&(n.get=function(){return dh.call(s,r,a),o.apply(this,arguments)}),typeof c=="function"&&(n.set=function(){return dh.call(s,r,a),c.apply(this,arguments)}),Object.defineProperty(t,e,n)}function rz(t,e,r){var n=new Error,s;return Object.defineProperty(n,"constructor",{value:rz}),Object.defineProperty(n,"message",{configurable:!0,enumerable:!1,value:e,writable:!0}),Object.defineProperty(n,"name",{enumerable:!1,configurable:!0,value:"DeprecationError",writable:!0}),Object.defineProperty(n,"namespace",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(n,"stack",{configurable:!0,enumerable:!1,get:function(){return s!==void 0?s:s=pre.call(this,r)},set:function(a){s=a}}),n}});var Qo=P((Bje,fh)=>{"use strict";fh.exports=kre;fh.exports.format=sz;fh.exports.parse=iz;var _re=/\B(?=(\d{3})+(?!\d))/g,wre=/(?:\.0*|(\.[^0]+)0+)$/,ji={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},Sre=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function kre(t,e){return typeof t=="string"?iz(t):typeof t=="number"?sz(t,e):null}function sz(t,e){if(!Number.isFinite(t))return null;var r=Math.abs(t),n=e&&e.thousandsSeparator||"",s=e&&e.unitSeparator||"",i=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,a=!!(e&&e.fixedDecimals),o=e&&e.unit||"";(!o||!ji[o.toLowerCase()])&&(r>=ji.pb?o="PB":r>=ji.tb?o="TB":r>=ji.gb?o="GB":r>=ji.mb?o="MB":r>=ji.kb?o="KB":o="B");var c=t/ji[o.toLowerCase()],l=c.toFixed(i);return a||(l=l.replace(wre,"$1")),n&&(l=l.split(".").map(function(u,p){return p===0?u.replace(_re,n):u}).join(".")),l+s+o}function iz(t){if(typeof t=="number"&&!isNaN(t))return t;if(typeof t!="string")return null;var e=Sre.exec(t),r,n="b";return e?(r=parseFloat(e[1]),n=e[4].toLowerCase()):(r=parseInt(t,10),n="b"),isNaN(r)?null:Math.floor(ji[n]*r)}});var Ju=P(Pw=>{"use strict";var az=/; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g,Ere=/^[\u000b\u0020-\u007e\u0080-\u00ff]+$/,oz=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Tre=/\\([\u000b\u0020-\u00ff])/g,Rre=/([\\"])/g,cz=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;Pw.format=Pre;Pw.parse=Ire;function Pre(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.type;if(!r||!cz.test(r))throw new TypeError("invalid type");var n=r;if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a0&&!Ere.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(Rre,"\\$1")+'"'}function jre(t){this.parameters=Object.create(null),this.type=t}});var Qu=P((Zje,lz)=>{"use strict";lz.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?Are:Nre);function Are(t,e){return t.__proto__=e,t}function Nre(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(t,r)||(t[r]=e[r]);return t}});var uz=P((Gje,Dre)=>{Dre.exports={"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I'm a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}});var Yu=P((Vje,dz)=>{"use strict";var Iw=uz();dz.exports=ds;ds.message=Iw;ds.code=zre(Iw);ds.codes=Mre(Iw);ds.redirect={300:!0,301:!0,302:!0,303:!0,305:!0,307:!0,308:!0};ds.empty={204:!0,205:!0,304:!0};ds.retry={502:!0,503:!0,504:!0};function zre(t){var e={};return Object.keys(t).forEach(function(n){var s=t[n],i=Number(n);e[s.toLowerCase()]=i}),e}function Mre(t){return Object.keys(t).map(function(r){return Number(r)})}function $re(t){var e=t.toLowerCase();if(!Object.prototype.hasOwnProperty.call(ds.code,e))throw new Error('invalid status message: "'+t+'"');return ds.code[e]}function pz(t){if(!Object.prototype.hasOwnProperty.call(ds.message,t))throw new Error("invalid status code: "+t);return ds.message[t]}function ds(t){if(typeof t=="number")return pz(t);if(typeof t!="string")throw new TypeError("code must be a number or string");var e=parseInt(t,10);return isNaN(e)?$re(t):pz(e)}});var mz=P((Kje,Cw)=>{typeof Object.create=="function"?Cw.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Cw.exports=function(e,r){if(r){e.super_=r;var n=function(){};n.prototype=r.prototype,e.prototype=new n,e.prototype.constructor=e}}});var fz=P((Jje,jw)=>{try{if(Ow=require("util"),typeof Ow.inherits!="function")throw"";jw.exports=Ow.inherits}catch{jw.exports=mz()}var Ow});var gz=P((Qje,hz)=>{"use strict";hz.exports=Lre;function Lre(t){return t.split(" ").map(function(e){return e.slice(0,1).toUpperCase()+e.slice(1)}).join("").replace(/[^ _0-9a-z]/gi,"")}});var Pa=P((Yje,Ra)=>{"use strict";var Ure=Ns()("http-errors"),vz=Qu(),Yo=Yu(),Aw=fz(),qre=gz();Ra.exports=hh;Ra.exports.HttpError=Fre();Ra.exports.isHttpError=Bre(Ra.exports.HttpError);Zre(Ra.exports,Yo.codes,Ra.exports.HttpError);function yz(t){return+(String(t).charAt(0)+"00")}function hh(){for(var t,e,r=500,n={},s=0;s=600)&&Ure("non-error status code; use only 4xx or 5xx status codes"),(typeof r!="number"||!Yo.message[r]&&(r<400||r>=600))&&(r=500);var o=hh[r]||hh[yz(r)];t||(t=o?new o(e):new Error(e||Yo.message[r]),Error.captureStackTrace(t,hh)),(!o||!(t instanceof o)||t.status!==r)&&(t.expose=r<500,t.status=t.statusCode=r);for(var c in n)c!=="status"&&c!=="statusCode"&&(t[c]=n[c]);return t}function Fre(){function t(){throw new TypeError("cannot construct abstract class")}return Aw(t,Error),t}function Hre(t,e,r){var n=xz(e);function s(i){var a=i??Yo.message[r],o=new Error(a);return Error.captureStackTrace(o,s),vz(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Aw(s,t),bz(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!0,s}function Bre(t){return function(r){return!r||typeof r!="object"?!1:r instanceof t?!0:r instanceof Error&&typeof r.expose=="boolean"&&typeof r.statusCode=="number"&&r.status===r.statusCode}}function Wre(t,e,r){var n=xz(e);function s(i){var a=i??Yo.message[r],o=new Error(a);return Error.captureStackTrace(o,s),vz(o,s.prototype),Object.defineProperty(o,"message",{enumerable:!0,configurable:!0,value:a,writable:!0}),Object.defineProperty(o,"name",{enumerable:!1,configurable:!0,value:n,writable:!0}),o}return Aw(s,t),bz(s,n),s.prototype.status=r,s.prototype.statusCode=r,s.prototype.expose=!1,s}function bz(t,e){var r=Object.getOwnPropertyDescriptor(t,"name");r&&r.configurable&&(r.value=e,Object.defineProperty(t,"name",r))}function Zre(t,e,r){e.forEach(function(s){var i,a=qre(Yo.message[s]);switch(yz(s)){case 400:i=Hre(r,a,s);break;case 500:i=Wre(r,a,s);break}i&&(t[s]=i,t[a]=i)})}function xz(t){return t.slice(-5)==="Error"?t:t+"Error"}});var wz=P((Xje,_z)=>{var Xu=1e3,ep=Xu*60,tp=ep*60,rp=tp*24,Gre=rp*365.25;_z.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Vre(t);if(r==="number"&&isNaN(t)===!1)return e.long?Jre(t):Kre(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Vre(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Gre;case"days":case"day":case"d":return r*rp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*tp;case"minutes":case"minute":case"mins":case"min":case"m":return r*ep;case"seconds":case"second":case"secs":case"sec":case"s":return r*Xu;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kre(t){return t>=rp?Math.round(t/rp)+"d":t>=tp?Math.round(t/tp)+"h":t>=ep?Math.round(t/ep)+"m":t>=Xu?Math.round(t/Xu)+"s":t+"ms"}function Jre(t){return gh(t,rp,"day")||gh(t,tp,"hour")||gh(t,ep,"minute")||gh(t,Xu,"second")||t+" ms"}function gh(t,e,r){if(!(t{ot=Sz.exports=Dw.debug=Dw.default=Dw;ot.coerce=tne;ot.disable=Xre;ot.enable=Yre;ot.enabled=ene;ot.humanize=wz();ot.names=[];ot.skips=[];ot.formatters={};var Nw;function Qre(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ot.colors[Math.abs(e)%ot.colors.length]}function Dw(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(Nw||n);r.diff=s,r.prev=Nw,r.curr=n,Nw=n;for(var i=new Array(arguments.length),a=0;a{Ur=Ez.exports=zw();Ur.log=sne;Ur.formatArgs=nne;Ur.save=ine;Ur.load=kz;Ur.useColors=rne;Ur.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:ane();Ur.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function rne(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Ur.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function nne(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Ur.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function sne(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function ine(t){try{t==null?Ur.storage.removeItem("debug"):Ur.storage.debug=t}catch{}}function kz(){var t;try{t=Ur.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Ur.enable(kz());function ane(){try{return window.localStorage}catch{}}});var Cz=P((ur,Iz)=>{var Rz=require("tty"),np=require("util");ur=Iz.exports=zw();ur.init=mne;ur.log=une;ur.formatArgs=lne;ur.save=pne;ur.load=Pz;ur.useColors=cne;ur.colors=[6,2,3,4,5,1];ur.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var Xo=parseInt(process.env.DEBUG_FD,10)||2;Xo!==1&&Xo!==2&&np.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var one=Xo===1?process.stdout:Xo===2?process.stderr:dne(Xo);function cne(){return"colors"in ur.inspectOpts?!!ur.inspectOpts.colors:Rz.isatty(Xo)}ur.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,np.inspect(t,this.inspectOpts).split(` `).map(function(e){return e.trim()}).join(" ")};ur.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,np.inspect(t,this.inspectOpts)};function lne(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` `+s),t.push("\x1B[3"+n+"m+"+ur.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function une(){return one.write(np.format.apply(np,arguments)+` -`)}function pne(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function Pz(){return process.env.DEBUG}function dne(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new Rz.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function mne(t){t.inspectOpts={};for(var e=Object.keys(ur.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?Mw.exports=Tz():Mw.exports=Cz()});var $w=P((tAe,jz)=>{"use strict";var fne=require("events").EventEmitter,hne=require("fs").ReadStream,Oz=require("stream"),Pa=require("zlib");jz.exports=gne;function gne(t,e){return wne(t)?vne(t):Sne(t)?bne(t):xne(t)&&t.destroy(),_ne(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",kne)),t}function vne(t){t.destroy(),typeof t.close=="function"&&t.on("open",Tne)}function yne(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function bne(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",Ene)):t._binding.clear()):t._destroy&&t._destroy!==Oz.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&yne(t)}function xne(t){return t instanceof Oz&&typeof t.destroy=="function"}function _ne(t){return t instanceof fne}function wne(t){return t instanceof hne}function Sne(t){return t instanceof Pa.Gzip||t instanceof Pa.Gunzip||t instanceof Pa.Deflate||t instanceof Pa.DeflateRaw||t instanceof Pa.Inflate||t instanceof Pa.InflateRaw||t instanceof Pa.Unzip}function kne(){}function Ene(){this._binding.clear()}function Tne(){typeof this.fd=="number"&&this.close()}});var Ia=P((rAe,Az)=>{"use strict";var vh=require("buffer"),ec=vh.Buffer,Un={},qn;for(qn in vh)vh.hasOwnProperty(qn)&&(qn==="SlowBuffer"||qn==="Buffer"||(Un[qn]=vh[qn]));var tc=Un.Buffer={};for(qn in ec)ec.hasOwnProperty(qn)&&(qn==="allocUnsafe"||qn==="allocUnsafeSlow"||(tc[qn]=ec[qn]));Un.Buffer.prototype=ec.prototype;(!tc.from||tc.from===Uint8Array.from)&&(tc.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return ec(t,e,r)});tc.alloc||(tc.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=ec(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!Un.kStringMaxLength)try{Un.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Un.constants||(Un.constants={MAX_LENGTH:Un.kMaxLength},Un.kStringMaxLength&&(Un.constants.MAX_STRING_LENGTH=Un.kStringMaxLength));Az.exports=Un});var Dz=P(qw=>{"use strict";var Nz="\uFEFF";qw.PrependBOM=Lw;function Lw(t,e){this.encoder=t,this.addBOM=!0}Lw.prototype.write=function(t){return this.addBOM&&(t=Nz+t,this.addBOM=!1),this.encoder.write(t)};Lw.prototype.end=function(){return this.encoder.end()};qw.StripBOM=Uw;function Uw(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}Uw.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===Nz&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Uw.prototype.end=function(){return this.decoder.end()}});var $z=P((sAe,Mz)=>{"use strict";var ip=Ia().Buffer;Mz.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Fw};function Fw(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=Bw:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=Ww,ip.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=Zw,this.defaultCharUnicode=e.defaultCharUnicode))}Fw.prototype.encoder=Hw;Fw.prototype.decoder=zz;var yh=require("string_decoder").StringDecoder;yh.prototype.end||(yh.prototype.end=function(){});function zz(t,e){yh.call(this,e.enc)}zz.prototype=yh.prototype;function Hw(t,e){this.enc=e.enc}Hw.prototype.write=function(t){return ip.from(t,this.enc)};Hw.prototype.end=function(){};function Bw(t,e){this.prevStr=""}Bw.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),ip.from(t,"base64")};Bw.prototype.end=function(){return ip.from(this.prevStr,"base64")};function Ww(t,e){}Ww.prototype.write=function(t){for(var e=ip.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(s&63)):(e[r++]=224+(s>>>12),e[r++]=128+(s>>>6&63),e[r++]=128+(s&63))}return e.slice(0,r)};Ww.prototype.end=function(){};function Zw(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}Zw.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,s="",i=0;i0&&(s+=this.defaultCharUnicode,r=0),a<128?s+=String.fromCharCode(a):a<224?(e=a&31,r=1,n=1):a<240?(e=a&15,r=2,n=1):s+=this.defaultCharUnicode):r>0?(e=e<<6|a&63,r--,n++,r===0&&(n===2&&e<128&&e>0?s+=this.defaultCharUnicode:n===3&&e<2048?s+=this.defaultCharUnicode:s+=String.fromCharCode(e))):s+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,s};Zw.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var Uz=P(Yw=>{"use strict";var bh=Ia().Buffer;Yw.utf16be=xh;function xh(){}xh.prototype.encoder=Gw;xh.prototype.decoder=Vw;xh.prototype.bomAware=!0;function Gw(){}Gw.prototype.write=function(t){for(var e=bh.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var n=0,s=0,i=Math.min(t.length-t.length%2,64),a=0;an?r="utf-16be":s{"use strict";var Ds=Ia().Buffer;Sh.utf7=_h;Sh.unicode11utf7="utf7";function _h(t,e){this.iconv=e}_h.prototype.encoder=eS;_h.prototype.decoder=tS;_h.prototype.bomAware=!0;var Rne=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function eS(t,e){this.iconv=e.iconv}eS.prototype.write=function(t){return Ds.from(t.replace(Rne,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};eS.prototype.end=function(){};function tS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var Pne=/[A-Za-z0-9\/+]/,rS=[];for(ap=0;ap<256;ap++)rS[ap]=Pne.test(String.fromCharCode(ap));var ap,Ine=43,Ca=45,Xw=38;tS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ds.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};Sh.utf7imap=wh;function wh(t,e){this.iconv=e}wh.prototype.encoder=nS;wh.prototype.decoder=sS;wh.prototype.bomAware=!0;function nS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Ds.alloc(6),this.base64AccumIdx=0}nS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,s=Ds.alloc(t.length*5+10),i=0,a=0;a0&&(i+=s.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),i),n=0),s[i++]=Ca,e=!1),e||(s[i++]=o,o===Xw&&(s[i++]=Ca))):(e||(s[i++]=Xw,e=!0),e&&(r[n++]=o>>8,r[n++]=o&255,n==r.length&&(i+=s.write(r.toString("base64").replace(/\//g,","),i),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,s.slice(0,i)};nS.prototype.end=function(){var t=Ds.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=Ca,this.inBase64=!1),t.slice(0,e)};function sS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var qz=rS.slice();qz[44]=!0;sS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ds.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var Bz=P(Hz=>{"use strict";var kh=Ia().Buffer;Hz._sbcs=iS;function iS(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=kh.from(t.chars,"ucs2");for(var s=kh.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";Wz.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var Vz=P((lAe,Gz)=>{"use strict";Gz.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +`)}function pne(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function Pz(){return process.env.DEBUG}function dne(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new Rz.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function mne(t){t.inspectOpts={};for(var e=Object.keys(ur.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?Mw.exports=Tz():Mw.exports=Cz()});var $w=P((tAe,jz)=>{"use strict";var fne=require("events").EventEmitter,hne=require("fs").ReadStream,Oz=require("stream"),Ia=require("zlib");jz.exports=gne;function gne(t,e){return wne(t)?vne(t):Sne(t)?bne(t):xne(t)&&t.destroy(),_ne(t)&&e&&(t.removeAllListeners("error"),t.addListener("error",kne)),t}function vne(t){t.destroy(),typeof t.close=="function"&&t.on("open",Tne)}function yne(t){if(t._hadError===!0){var e=t._binding===null?"_binding":"_handle";t[e]={close:function(){this[e]=null}}}t.close()}function bne(t){typeof t.destroy=="function"?t._binding?(t.destroy(),t._processing?(t._needDrain=!0,t.once("drain",Ene)):t._binding.clear()):t._destroy&&t._destroy!==Oz.Transform.prototype._destroy?t.destroy():t._destroy&&typeof t.close=="function"?(t.destroyed=!0,t.close()):t.destroy():typeof t.close=="function"&&yne(t)}function xne(t){return t instanceof Oz&&typeof t.destroy=="function"}function _ne(t){return t instanceof fne}function wne(t){return t instanceof hne}function Sne(t){return t instanceof Ia.Gzip||t instanceof Ia.Gunzip||t instanceof Ia.Deflate||t instanceof Ia.DeflateRaw||t instanceof Ia.Inflate||t instanceof Ia.InflateRaw||t instanceof Ia.Unzip}function kne(){}function Ene(){this._binding.clear()}function Tne(){typeof this.fd=="number"&&this.close()}});var Ca=P((rAe,Az)=>{"use strict";var vh=require("buffer"),ec=vh.Buffer,Un={},qn;for(qn in vh)vh.hasOwnProperty(qn)&&(qn==="SlowBuffer"||qn==="Buffer"||(Un[qn]=vh[qn]));var tc=Un.Buffer={};for(qn in ec)ec.hasOwnProperty(qn)&&(qn==="allocUnsafe"||qn==="allocUnsafeSlow"||(tc[qn]=ec[qn]));Un.Buffer.prototype=ec.prototype;(!tc.from||tc.from===Uint8Array.from)&&(tc.from=function(t,e,r){if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&typeof t.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return ec(t,e,r)});tc.alloc||(tc.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=ec(t);return!e||e.length===0?n.fill(0):typeof r=="string"?n.fill(e,r):n.fill(e),n});if(!Un.kStringMaxLength)try{Un.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}Un.constants||(Un.constants={MAX_LENGTH:Un.kMaxLength},Un.kStringMaxLength&&(Un.constants.MAX_STRING_LENGTH=Un.kStringMaxLength));Az.exports=Un});var Dz=P(qw=>{"use strict";var Nz="\uFEFF";qw.PrependBOM=Lw;function Lw(t,e){this.encoder=t,this.addBOM=!0}Lw.prototype.write=function(t){return this.addBOM&&(t=Nz+t,this.addBOM=!1),this.encoder.write(t)};Lw.prototype.end=function(){return this.encoder.end()};qw.StripBOM=Uw;function Uw(t,e){this.decoder=t,this.pass=!1,this.options=e||{}}Uw.prototype.write=function(t){var e=this.decoder.write(t);return this.pass||!e||(e[0]===Nz&&(e=e.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),e};Uw.prototype.end=function(){return this.decoder.end()}});var $z=P((sAe,Mz)=>{"use strict";var ip=Ca().Buffer;Mz.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:Fw};function Fw(t,e){this.enc=t.encodingName,this.bomAware=t.bomAware,this.enc==="base64"?this.encoder=Bw:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=Ww,ip.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=Zw,this.defaultCharUnicode=e.defaultCharUnicode))}Fw.prototype.encoder=Hw;Fw.prototype.decoder=zz;var yh=require("string_decoder").StringDecoder;yh.prototype.end||(yh.prototype.end=function(){});function zz(t,e){yh.call(this,e.enc)}zz.prototype=yh.prototype;function Hw(t,e){this.enc=e.enc}Hw.prototype.write=function(t){return ip.from(t,this.enc)};Hw.prototype.end=function(){};function Bw(t,e){this.prevStr=""}Bw.prototype.write=function(t){t=this.prevStr+t;var e=t.length-t.length%4;return this.prevStr=t.slice(e),t=t.slice(0,e),ip.from(t,"base64")};Bw.prototype.end=function(){return ip.from(this.prevStr,"base64")};function Ww(t,e){}Ww.prototype.write=function(t){for(var e=ip.alloc(t.length*3),r=0,n=0;n>>6),e[r++]=128+(s&63)):(e[r++]=224+(s>>>12),e[r++]=128+(s>>>6&63),e[r++]=128+(s&63))}return e.slice(0,r)};Ww.prototype.end=function(){};function Zw(t,e){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=e.defaultCharUnicode}Zw.prototype.write=function(t){for(var e=this.acc,r=this.contBytes,n=this.accBytes,s="",i=0;i0&&(s+=this.defaultCharUnicode,r=0),a<128?s+=String.fromCharCode(a):a<224?(e=a&31,r=1,n=1):a<240?(e=a&15,r=2,n=1):s+=this.defaultCharUnicode):r>0?(e=e<<6|a&63,r--,n++,r===0&&(n===2&&e<128&&e>0?s+=this.defaultCharUnicode:n===3&&e<2048?s+=this.defaultCharUnicode:s+=String.fromCharCode(e))):s+=this.defaultCharUnicode}return this.acc=e,this.contBytes=r,this.accBytes=n,s};Zw.prototype.end=function(){var t=0;return this.contBytes>0&&(t+=this.defaultCharUnicode),t}});var Uz=P(Yw=>{"use strict";var bh=Ca().Buffer;Yw.utf16be=xh;function xh(){}xh.prototype.encoder=Gw;xh.prototype.decoder=Vw;xh.prototype.bomAware=!0;function Gw(){}Gw.prototype.write=function(t){for(var e=bh.from(t,"ucs2"),r=0;r=2)if(t[0]==254&&t[1]==255)r="utf-16be";else if(t[0]==255&&t[1]==254)r="utf-16le";else{for(var n=0,s=0,i=Math.min(t.length-t.length%2,64),a=0;an?r="utf-16be":s{"use strict";var Ds=Ca().Buffer;Sh.utf7=_h;Sh.unicode11utf7="utf7";function _h(t,e){this.iconv=e}_h.prototype.encoder=eS;_h.prototype.decoder=tS;_h.prototype.bomAware=!0;var Rne=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function eS(t,e){this.iconv=e.iconv}eS.prototype.write=function(t){return Ds.from(t.replace(Rne,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};eS.prototype.end=function(){};function tS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var Pne=/[A-Za-z0-9\/+]/,rS=[];for(ap=0;ap<256;ap++)rS[ap]=Pne.test(String.fromCharCode(ap));var ap,Ine=43,Oa=45,Xw=38;tS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ds.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t};Sh.utf7imap=wh;function wh(t,e){this.iconv=e}wh.prototype.encoder=nS;wh.prototype.decoder=sS;wh.prototype.bomAware=!0;function nS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=Ds.alloc(6),this.base64AccumIdx=0}nS.prototype.write=function(t){for(var e=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,s=Ds.alloc(t.length*5+10),i=0,a=0;a0&&(i+=s.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),i),n=0),s[i++]=Oa,e=!1),e||(s[i++]=o,o===Xw&&(s[i++]=Oa))):(e||(s[i++]=Xw,e=!0),e&&(r[n++]=o>>8,r[n++]=o&255,n==r.length&&(i+=s.write(r.toString("base64").replace(/\//g,","),i),n=0)))}return this.inBase64=e,this.base64AccumIdx=n,s.slice(0,i)};nS.prototype.end=function(){var t=Ds.alloc(10),e=0;return this.inBase64&&(this.base64AccumIdx>0&&(e+=t.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),e),this.base64AccumIdx=0),t[e++]=Oa,this.inBase64=!1),t.slice(0,e)};function sS(t,e){this.iconv=e.iconv,this.inBase64=!1,this.base64Accum=""}var qz=rS.slice();qz[44]=!0;sS.prototype.write=function(t){for(var e="",r=0,n=this.inBase64,s=this.base64Accum,i=0;i0&&(t=this.iconv.decode(Ds.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",t}});var Bz=P(Hz=>{"use strict";var kh=Ca().Buffer;Hz._sbcs=iS;function iS(t,e){if(!t)throw new Error("SBCS codec is called without the data.");if(!t.chars||t.chars.length!==128&&t.chars.length!==256)throw new Error("Encoding '"+t.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(t.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);t.chars=r+t.chars}this.decodeBuf=kh.from(t.chars,"ucs2");for(var s=kh.alloc(65536,e.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";Wz.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var Vz=P((lAe,Gz)=>{"use strict";Gz.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var Qz=P(Jz=>{"use strict";var nc=Ia().Buffer;Jz._dbcs=ni;var pn=-1,Kz=-2,Fn=-10,zs=-1e3,rc=new Array(256),op=-1;for(Eh=0;Eh<256;Eh++)rc[Eh]=pn;var Eh;function ni(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=rc.slice(0),this.decodeTableSeq=[];for(var n=0;n0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],n=e.length-1;n>0;n--){var s=r[e[n]];if(s==pn)r[e[n]]=zs-this.decodeTables.length,this.decodeTables.push(r=rc.slice(0));else if(s<=zs)r=this.decodeTables[zs-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ni.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};ni.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=rc.slice(0)),this.encodeTable[e]};ni.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Fn?this.encodeTableSeq[Fn-r[n]][op]=e:r[n]==pn&&(r[n]=e)};ni.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),s=r&255,i;n[s]<=Fn?i=this.encodeTableSeq[Fn-n[s]]:(i={},n[s]!==pn&&(i[op]=n[s]),n[s]=Fn-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var a=1;a=0?this._setEncodeChar(i,a):i<=zs?this._fillEncodeTable(zs-i,a<<8,r):i<=Fn&&this._setEncodeSequence(this.decodeTableSeq[Fn-i],a))}};function Th(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}Th.prototype.write=function(t){for(var e=nc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,s=-1,i=0,a=0;;){if(s===-1){if(i==t.length)break;var o=t.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=pn;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=pn;else r!==-1&&(s=o,o=pn,r=-1);var c=pn;if(n!==void 0&&o!=pn){var l=n[o];if(typeof l=="object"){n=l;continue}else typeof l=="number"?c=l:l==null&&(l=n[op],l!==void 0&&(c=l,s=o));n=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(c=u[o&255]),c<=Fn){n=this.encodeTableSeq[Fn-c];continue}if(c==pn&&this.gb18030){var p=lS(this.gb18030.uChars,o);if(p!=-1){var c=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[a++]=129+Math.floor(c/12600),c=c%12600,e[a++]=48+Math.floor(c/1260),c=c%1260,e[a++]=129+Math.floor(c/10),c=c%10,e[a++]=48+c;continue}}}c===pn&&(c=this.defaultCharSingleByte),c<256?e[a++]=c:c<65536?(e[a++]=c>>8,e[a++]=c&255):(e[a++]=c>>16,e[a++]=c>>8&255,e[a++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,a)};Th.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=nc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[op];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};Th.prototype.findIdx=lS;function cS(t,e){this.nodeIdx=0,this.prevBuf=nc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}cS.prototype.write=function(t){var e=nc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,a;s>0&&(n=nc.concat([n,t.slice(0,10)]));for(var o=0,c=0;o=0?t[o]:n[o+s],a=this.decodeTables[r][l];if(!(a>=0))if(a===pn)o=i,a=this.defaultCharUnicode.charCodeAt(0);else if(a===Kz){var u=i>=0?t.slice(i,o+1):n.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),d=lS(this.gb18030.gbChars,p);a=this.gb18030.uChars[d]+p-this.gb18030.gbChars[d]}else if(a<=zs){r=zs-a;continue}else if(a<=Fn){for(var m=this.decodeTableSeq[Fn-a],f=0;f>8;a=m[m.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+a+" at "+r+"/"+l);if(a>65535){a-=65536;var v=55296+Math.floor(a/1024);e[c++]=v&255,e[c++]=v>>8,a=56320+a%1024}e[c++]=a&255,e[c++]=a>>8,r=0,i=o+1}return this.nodeIdx=r,this.prevBuf=i>=0?t.slice(i):n.slice(i+s),e.slice(0,c).toString("ucs2")};cS.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=nc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function lS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{Cne.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Xz=P((dAe,One)=>{One.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var Rh=P((mAe,jne)=>{jne.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var uS=P((fAe,Ane)=>{Ane.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var eM=P((hAe,Nne)=>{Nne.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var tM=P((gAe,Dne)=>{Dne.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var pS=P((vAe,zne)=>{zne.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var rM=P((yAe,Mne)=>{Mne.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var sM=P((bAe,nM)=>{"use strict";nM.exports={shiftjis:{type:"_dbcs",table:function(){return Yz()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Xz()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Rh()}},gbk:{type:"_dbcs",table:function(){return Rh().concat(uS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Rh().concat(uS())},gb18030:function(){return eM()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return tM()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return pS()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return pS().concat(rM())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var oM=P((aM,sc)=>{"use strict";var iM=[$z(),Uz(),Fz(),Bz(),Zz(),Vz(),Qz(),sM()];for(Ph=0;Ph{"use strict";var cM=require("buffer").Buffer,Ch=require("stream").Transform;lM.exports=function(t){t.encodeStream=function(r,n){return new Oa(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new Ai(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=Oa,t.IconvLiteDecoderStream=Ai,t._collect=Ai.prototype.collect};function Oa(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,Ch.call(this,e)}Oa.prototype=Object.create(Ch.prototype,{constructor:{value:Oa}});Oa.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n),r()}catch(s){r(s)}};Oa.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};Oa.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,cM.concat(e))}),this};function Ai(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",Ch.call(this,e)}Ai.prototype=Object.create(Ch.prototype,{constructor:{value:Ai}});Ai.prototype._transform=function(t,e,r){if(!cM.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n,this.encoding),r()}catch(s){r(s)}};Ai.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};Ai.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var dM=P((_Ae,pM)=>{"use strict";var Bt=require("buffer").Buffer;pM.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Bt.from||new Bt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var n={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};Bt.isNativeEncoding=function(a){return a&&n[a.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(a,o,c){return a=String(a||"utf8").toLowerCase(),Bt.isNativeEncoding(a)?e.SlowBufferToString.call(this,a,o,c):(typeof o>"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(a,o,c,l){if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var u=l;l=o,o=c,c=u}o=+o||0;var p=this.length-o;if(c?(c=+c,c>p&&(c=p)):c=p,l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.SlowBufferWrite.call(this,a,o,c,l);if(a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=t.encode(a,l);return d.length"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.BufferWrite=Bt.prototype.write,Bt.prototype.write=function(a,o,c,l){var u=o,p=c,d=l;if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var m=l;l=o,o=c,c=m}if(l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.BufferWrite.call(this,a,u,p,d);o=+o||0;var f=this.length-o;if(c?(c=+c,c>f&&(c=f)):c=f,a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var v=t.encode(a,l);return v.length{"use strict";var fM=Ia().Buffer,hM=Dz(),it=gM.exports;it.encodings=null;it.defaultCharUnicode="\uFFFD";it.defaultCharSingleByte="?";it.encode=function(e,r,n){e=""+(e||"");var s=it.getEncoder(r,n),i=s.write(e),a=s.end();return a&&a.length>0?fM.concat([i,a]):i};it.decode=function(e,r,n){typeof e=="string"&&(it.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),it.skipDecodeWarning=!0),e=fM.from(""+(e||""),"binary"));var s=it.getDecoder(r,n),i=s.write(e),a=s.end();return a?i+a:i};it.encodingExists=function(e){try{return it.getCodec(e),!0}catch{return!1}};it.toEncoding=it.encode;it.fromEncoding=it.decode;it._codecDataCache={};it.getCodec=function(e){it.encodings||(it.encodings=oM());for(var r=it._canonicalizeEncoding(e),n={};;){var s=it._codecDataCache[r];if(s)return s;var i=it.encodings[r];switch(typeof i){case"string":r=i;break;case"object":for(var a in i)n[a]=i[a];n.encodingName||(n.encodingName=r),r=i.type;break;case"function":return n.encodingName||(n.encodingName=r),s=new i(n,it),it._codecDataCache[n.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};it._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};it.getEncoder=function(e,r){var n=it.getCodec(e),s=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(s=new hM.PrependBOM(s,r)),s};it.getDecoder=function(e,r){var n=it.getCodec(e),s=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(s=new hM.StripBOM(s,r)),s};var mM=typeof process<"u"&&process.versions&&process.versions.node;mM&&(dS=mM.split(".").map(Number),(dS[0]>0||dS[1]>=10)&&uM()(it),dM()(it));var dS});var Oh=P((SAe,vM)=>{"use strict";vM.exports=Lne;function $ne(t){for(var e=t.listeners("data"),r=0;r{"use strict";var yM=Gne(),Une=Qo(),ja=Ra(),qne=mS(),Fne=Oh();xM.exports=Wne;var Hne=/^Encoding not recognized: /;function Bne(t){if(!t)return null;try{return qne.getDecoder(t)}catch(e){throw Hne.test(e.message)?ja(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function Wne(t,e,r){var n=r,s=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(n=e,s={}),n!==void 0&&typeof n!="function")throw new TypeError("argument callback must be a function");if(!n&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",a=Une.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return n?bM(t,i,o,a,Vne(n)):new Promise(function(l,u){bM(t,i,o,a,function(d,m){if(d)return u(d);l(m)})})}function Zne(t){Fne(t),typeof t.pause=="function"&&t.pause()}function bM(t,e,r,n,s){var i=!1,a=!0;if(n!==null&&r!==null&&r>n)return p(ja(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var o=t._readableState;if(t._decoder||o&&(o.encoding||o.decoder))return p(ja(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return p(ja(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,l;try{l=Bne(e)}catch(g){return p(g)}var u=l?"":[];t.on("aborted",d),t.on("close",v),t.on("data",m),t.on("end",f),t.on("error",f),a=!1;function p(){for(var g=new Array(arguments.length),h=0;hn?p(ja(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):l?u+=l.write(g):u.push(g))}function f(g){if(!i){if(g)return p(g);if(r!==null&&c!==r)p(ja(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var h=l?u+(l.end()||""):Buffer.concat(u);p(null,h)}}}function v(){u=null,t.removeListener("aborted",d),t.removeListener("data",m),t.removeListener("end",f),t.removeListener("error",f),t.removeListener("close",v)}}function Gne(){try{return require("async_hooks")}catch{return{}}}function Vne(t){var e;return yM.AsyncResource&&(e=new yM.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var SM=P((EAe,wM)=>{"use strict";wM.exports=Kne;function Kne(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],n=0;n{"use strict";fS.exports=Yne;fS.exports.isFinished=TM;var kM=nse(),EM=SM(),Qne=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function Yne(t,e){return TM(t)!==!1?(Qne(e,null,t),t):(ese(t,sse(e)),t)}function TM(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function Xne(t,e){var r,n,s=!1;function i(o){r.cancel(),n.cancel(),s=!0,e(o)}r=n=EM([[t,"end","finish"]],i);function a(o){t.removeListener("socket",a),!s&&r===n&&(n=EM([[o,"error","close"]],i))}if(t.socket){a(t.socket);return}t.on("socket",a),t.socket===void 0&&rse(t,a)}function ese(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=tse(t),Xne(t,r)),r.queue.push(e)}function tse(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var s=0;s{"use strict";var Ni=Ra(),ise=$w(),ase=_M(),RM=mS(),PM=cp(),ose=Oh(),IM=require("zlib");CM.exports=cse;function cse(t,e,r,n,s,i){var a,o=i,c;t._body=!0;var l=o.encoding!==null?o.encoding:null,u=o.verify;try{c=lse(t,s,o.inflate),a=c.length,c.length=void 0}catch(p){return r(p)}if(o.length=a,o.encoding=u?null:l,o.encoding===null&&l!==null&&!RM.encodingExists(l))return r(Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}));s("read body"),ase(c,o,function(p,d){if(p){var m;p.type==="encoding.unsupported"?m=Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}):m=Ni(400,p),c!==t&&(ose(t),ise(c,!0)),use(t,function(){r(Ni(400,m))});return}if(u)try{s("verify body"),u(t,e,d,l)}catch(v){r(Ni(403,v,{body:d,type:v.type||"entity.verify.failed"}));return}var f=d;try{s("parse body"),f=typeof d!="string"&&l!==null?RM.decode(d,l):d,t.body=n(f)}catch(v){r(Ni(400,v,{body:f,type:v.type||"entity.parse.failed"}));return}r()})}function lse(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),s=t.headers["content-length"],i;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw Ni(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":i=IM.createInflate(),e("inflate body"),t.pipe(i);break;case"gzip":i=IM.createGunzip(),e("gunzip body"),t.pipe(i);break;case"identity":i=t,i.length=s;break;default:throw Ni(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return i}function use(t,e){PM.isFinished(t)?e(null):(PM(t,e),t.resume())}});var NM=P(hS=>{var OM=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,pse=/^[\u0020-\u007e\u0080-\u00ff]+$/,AM=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,dse=/\\([\u0000-\u007f])/g,mse=/([\\"])/g,fse=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,jM=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,hse=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;hS.format=gse;hS.parse=vse;function gse(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,s=t.type;if(!s||!jM.test(s))throw new TypeError("invalid type");if(!r||!fse.test(r))throw new TypeError("invalid subtype");var i=s+"/"+r;if(n){if(!jM.test(n))throw new TypeError("invalid suffix");i+="+"+n}if(e&&typeof e=="object")for(var a,o=Object.keys(e).sort(),c=0;c0&&!pse.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(mse,"\\$1")+'"'}function xse(t){var e=hse.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],s,i=n.lastIndexOf("+");i!==-1&&(s=n.substr(i+1),n=n.substr(0,i));var a={type:r,subtype:n,suffix:s};return a}});var DM=P((IAe,_se)=>{_se.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var MM=P((CAe,zM)=>{zM.exports=DM()});var UM=P(dn=>{"use strict";var jh=MM(),wse=require("path").extname,$M=/^\s*([^;\s]*)(?:;|\s|$)/,Sse=/^text\//i;dn.charset=LM;dn.charsets={lookup:LM};dn.contentType=kse;dn.extension=Ese;dn.extensions=Object.create(null);dn.lookup=Tse;dn.types=Object.create(null);Rse(dn.extensions,dn.types);function LM(t){if(!t||typeof t!="string")return!1;var e=$M.exec(t),r=e&&jh[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&Sse.test(e[1])?"UTF-8":!1}function kse(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?dn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=dn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function Ese(t){if(!t||typeof t!="string")return!1;var e=$M.exec(t),r=e&&dn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function Tse(t){if(!t||typeof t!="string")return!1;var e=wse("x."+t).toLowerCase().substr(1);return e&&dn.types[e]||!1}function Rse(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(jh).forEach(function(s){var i=jh[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var ac=P((jAe,ic)=>{"use strict";var qM=NM(),Pse=UM();ic.exports=Ise;ic.exports.is=FM;ic.exports.hasBody=HM;ic.exports.normalize=BM;ic.exports.match=WM;function FM(t,e){var r,n=e,s=Ose(t);if(!s)return!1;if(n&&!Array.isArray(n))for(n=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var n=0;n{"use strict";var jse=Qo(),Ase=Ju(),Nse=Ra(),Di=sp()("body-parser:json"),Dse=lp(),GM=ac();KM.exports=$se;var zse=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,ZM="#",Mse=/#+/g;function $se(t){var e=t||{},r=typeof e.limit!="number"?jse.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,a=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var c=typeof a!="function"?Fse(a):a;function l(u){if(u.length===0)return{};if(i){var p=Use(u);if(p!=="{"&&p!=="[")throw Di("strict violation"),Lse(u,p)}try{return Di("parse json"),JSON.parse(u,s)}catch(d){throw VM(d,{message:d.message,stack:d.stack})}}return function(p,d,m){if(p._body){Di("body already parsed"),m();return}if(p.body=p.body||{},!GM.hasBody(p)){Di("skip empty body"),m();return}if(Di("content-type %j",p.headers["content-type"]),!c(p)){Di("skip parsing"),m();return}var f=qse(p)||"utf-8";if(f.slice(0,4)!=="utf-"){Di("invalid charset"),m(Nse(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Dse(p,d,m,l,Di,{encoding:f,inflate:n,limit:r,verify:o})}}function Lse(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+ZM;for(var s=r+1;s{"use strict";var Hse=Qo(),up=sp()("body-parser:raw"),Bse=lp(),QM=ac();YM.exports=Wse;function Wse(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?Hse.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?Zse(s):s;function o(c){return c}return function(l,u,p){if(l._body){up("body already parsed"),p();return}if(l.body=l.body||{},!QM.hasBody(l)){up("skip empty body"),p();return}if(up("content-type %j",l.headers["content-type"]),!a(l)){up("skip parsing"),p();return}Bse(l,u,p,o,up,{encoding:null,inflate:r,limit:n,verify:i})}}function Zse(t){return function(r){return!!QM(r,t)}}});var r4=P((DAe,t4)=>{"use strict";var Gse=Qo(),Vse=Ju(),pp=sp()("body-parser:text"),Kse=lp(),e4=ac();t4.exports=Jse;function Jse(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,s=typeof e.limit!="number"?Gse.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?Yse(i):i;function c(l){return l}return function(u,p,d){if(u._body){pp("body already parsed"),d();return}if(u.body=u.body||{},!e4.hasBody(u)){pp("skip empty body"),d();return}if(pp("content-type %j",u.headers["content-type"]),!o(u)){pp("skip parsing"),d();return}var m=Qse(u)||r;Kse(u,p,d,c,pp,{encoding:m,inflate:n,limit:s,verify:a})}}function Qse(t){try{return(Vse.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function Yse(t){return function(r){return!!e4(r,t)}}});var Aa=P((zAe,n4)=>{"use strict";n4.exports=TypeError});var i4=P((MAe,s4)=>{s4.exports=require("util").inspect});var gp=P(($Ae,E4)=>{var ES=typeof Map=="function"&&Map.prototype,gS=Object.getOwnPropertyDescriptor&&ES?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Nh=ES&&gS&&typeof gS.get=="function"?gS.get:null,a4=ES&&Map.prototype.forEach,TS=typeof Set=="function"&&Set.prototype,vS=Object.getOwnPropertyDescriptor&&TS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Dh=TS&&vS&&typeof vS.get=="function"?vS.get:null,o4=TS&&Set.prototype.forEach,Xse=typeof WeakMap=="function"&&WeakMap.prototype,mp=Xse?WeakMap.prototype.has:null,eie=typeof WeakSet=="function"&&WeakSet.prototype,fp=eie?WeakSet.prototype.has:null,tie=typeof WeakRef=="function"&&WeakRef.prototype,c4=tie?WeakRef.prototype.deref:null,rie=Boolean.prototype.valueOf,nie=Object.prototype.toString,sie=Function.prototype.toString,iie=String.prototype.match,RS=String.prototype.slice,zi=String.prototype.replace,aie=String.prototype.toUpperCase,l4=String.prototype.toLowerCase,y4=RegExp.prototype.test,u4=Array.prototype.concat,Ms=Array.prototype.join,oie=Array.prototype.slice,p4=Math.floor,xS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,yS=Object.getOwnPropertySymbols,_S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,oc=typeof Symbol=="function"&&typeof Symbol.iterator=="object",hp=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===oc||!0)?Symbol.toStringTag:null,b4=Object.prototype.propertyIsEnumerable,d4=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function m4(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||y4.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-p4(-t):p4(t);if(n!==t){var s=String(n),i=RS.call(e,s.length+1);return zi.call(s,r,"$&_")+"."+zi.call(zi.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return zi.call(e,r,"$&_")}var wS=i4(),f4=wS.custom,h4=w4(f4)?f4:null,x4={__proto__:null,double:'"',single:"'"},cie={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};E4.exports=function t(e,r,n,s){var i=r||{};if(si(i,"quoteStyle")&&!si(x4,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(si(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=si(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(si(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(si(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return k4(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return o?m4(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return o?m4(e,l):l}var u=typeof i.depth>"u"?5:i.depth;if(typeof n>"u"&&(n=0),n>=u&&u>0&&typeof e=="object")return SS(e)?"[Array]":"[Object]";var p=Tie(i,n);if(typeof s>"u")s=[];else if(S4(s,e)>=0)return"[Circular]";function d(q,B,re){if(B&&(s=oie.call(s),s.push(B)),re){var G={depth:i.depth};return si(i,"quoteStyle")&&(G.quoteStyle=i.quoteStyle),t(q,G,n+1,s)}return t(q,i,n+1,s)}if(typeof e=="function"&&!g4(e)){var m=vie(e),f=Ah(e,d);return"[Function"+(m?": "+m:" (anonymous)")+"]"+(f.length>0?" { "+Ms.call(f,", ")+" }":"")}if(w4(e)){var v=oc?zi.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):_S.call(e);return typeof e=="object"&&!oc?dp(v):v}if(Sie(e)){for(var g="<"+l4.call(String(e.nodeName)),h=e.attributes||[],y=0;y",g}if(SS(e)){if(e.length===0)return"[]";var b=Ah(e,d);return p&&!Eie(b)?"["+kS(b,p)+"]":"[ "+Ms.call(b,", ")+" ]"}if(pie(e)){var x=Ah(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!b4.call(e,"cause")?"{ ["+String(e)+"] "+Ms.call(u4.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ms.call(x,", ")+" }"}if(typeof e=="object"&&a){if(h4&&typeof e[h4]=="function"&&wS)return wS(e,{depth:u-n});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(yie(e)){var w=[];return a4&&a4.call(e,function(q,B){w.push(d(B,e,!0)+" => "+d(q,e))}),v4("Map",Nh.call(e),w,p)}if(_ie(e)){var S=[];return o4&&o4.call(e,function(q){S.push(d(q,e))}),v4("Set",Dh.call(e),S,p)}if(bie(e))return bS("WeakMap");if(wie(e))return bS("WeakSet");if(xie(e))return bS("WeakRef");if(mie(e))return dp(d(Number(e)));if(hie(e))return dp(d(xS.call(e)));if(fie(e))return dp(rie.call(e));if(die(e))return dp(d(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!uie(e)&&!g4(e)){var k=Ah(e,d),E=d4?d4(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",O=!E&&hp&&Object(e)===e&&hp in e?RS.call(Mi(e),8,-1):R?"Object":"",C=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",$=C+(O||R?"["+Ms.call(u4.call([],O||[],R||[]),": ")+"] ":"");return k.length===0?$+"{}":p?$+"{"+kS(k,p)+"}":$+"{ "+Ms.call(k,", ")+" }"}return String(e)};function _4(t,e,r){var n=r.quoteStyle||e,s=x4[n];return s+t+s}function lie(t){return zi.call(String(t),/"/g,""")}function Na(t){return!hp||!(typeof t=="object"&&(hp in t||typeof t[hp]<"u"))}function SS(t){return Mi(t)==="[object Array]"&&Na(t)}function uie(t){return Mi(t)==="[object Date]"&&Na(t)}function g4(t){return Mi(t)==="[object RegExp]"&&Na(t)}function pie(t){return Mi(t)==="[object Error]"&&Na(t)}function die(t){return Mi(t)==="[object String]"&&Na(t)}function mie(t){return Mi(t)==="[object Number]"&&Na(t)}function fie(t){return Mi(t)==="[object Boolean]"&&Na(t)}function w4(t){if(oc)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!_S)return!1;try{return _S.call(t),!0}catch{}return!1}function hie(t){if(!t||typeof t!="object"||!xS)return!1;try{return xS.call(t),!0}catch{}return!1}var gie=Object.prototype.hasOwnProperty||function(t){return t in this};function si(t,e){return gie.call(t,e)}function Mi(t){return nie.call(t)}function vie(t){if(t.name)return t.name;var e=iie.call(sie.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function S4(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return k4(RS.call(t,0,e.maxStringLength),e)+n}var s=cie[e.quoteStyle||"single"];s.lastIndex=0;var i=zi.call(zi.call(t,s,"\\$1"),/[\x00-\x1f]/g,kie);return _4(i,"single",e)}function kie(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+aie.call(e.toString(16))}function dp(t){return"Object("+t+")"}function bS(t){return t+" { ? }"}function v4(t,e,r,n){var s=n?kS(r,n):Ms.call(r,", ");return t+" ("+e+") {"+s+"}"}function Eie(t){for(var e=0;e?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var Qz=P(Jz=>{"use strict";var nc=Ca().Buffer;Jz._dbcs=ni;var pn=-1,Kz=-2,Fn=-10,zs=-1e3,rc=new Array(256),op=-1;for(Eh=0;Eh<256;Eh++)rc[Eh]=pn;var Eh;function ni(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=rc.slice(0),this.decodeTableSeq=[];for(var n=0;n0;t>>=8)e.push(t&255);e.length==0&&e.push(0);for(var r=this.decodeTables[0],n=e.length-1;n>0;n--){var s=r[e[n]];if(s==pn)r[e[n]]=zs-this.decodeTables.length,this.decodeTables.push(r=rc.slice(0));else if(s<=zs)r=this.decodeTables[zs-s];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+t.toString(16))}return r};ni.prototype._addDecodeChunk=function(t){var e=parseInt(t[0],16),r=this._getDecodeTrieNode(e);e=e&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+t[0]+": too long"+e)};ni.prototype._getEncodeBucket=function(t){var e=t>>8;return this.encodeTable[e]===void 0&&(this.encodeTable[e]=rc.slice(0)),this.encodeTable[e]};ni.prototype._setEncodeChar=function(t,e){var r=this._getEncodeBucket(t),n=t&255;r[n]<=Fn?this.encodeTableSeq[Fn-r[n]][op]=e:r[n]==pn&&(r[n]=e)};ni.prototype._setEncodeSequence=function(t,e){var r=t[0],n=this._getEncodeBucket(r),s=r&255,i;n[s]<=Fn?i=this.encodeTableSeq[Fn-n[s]]:(i={},n[s]!==pn&&(i[op]=n[s]),n[s]=Fn-this.encodeTableSeq.length,this.encodeTableSeq.push(i));for(var a=1;a=0?this._setEncodeChar(i,a):i<=zs?this._fillEncodeTable(zs-i,a<<8,r):i<=Fn&&this._setEncodeSequence(this.decodeTableSeq[Fn-i],a))}};function Th(t,e){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=e.encodeTable,this.encodeTableSeq=e.encodeTableSeq,this.defaultCharSingleByte=e.defCharSB,this.gb18030=e.gb18030}Th.prototype.write=function(t){for(var e=nc.alloc(t.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,s=-1,i=0,a=0;;){if(s===-1){if(i==t.length)break;var o=t.charCodeAt(i++)}else{var o=s;s=-1}if(55296<=o&&o<57344)if(o<56320)if(r===-1){r=o;continue}else r=o,o=pn;else r!==-1?(o=65536+(r-55296)*1024+(o-56320),r=-1):o=pn;else r!==-1&&(s=o,o=pn,r=-1);var c=pn;if(n!==void 0&&o!=pn){var l=n[o];if(typeof l=="object"){n=l;continue}else typeof l=="number"?c=l:l==null&&(l=n[op],l!==void 0&&(c=l,s=o));n=void 0}else if(o>=0){var u=this.encodeTable[o>>8];if(u!==void 0&&(c=u[o&255]),c<=Fn){n=this.encodeTableSeq[Fn-c];continue}if(c==pn&&this.gb18030){var p=lS(this.gb18030.uChars,o);if(p!=-1){var c=this.gb18030.gbChars[p]+(o-this.gb18030.uChars[p]);e[a++]=129+Math.floor(c/12600),c=c%12600,e[a++]=48+Math.floor(c/1260),c=c%1260,e[a++]=129+Math.floor(c/10),c=c%10,e[a++]=48+c;continue}}}c===pn&&(c=this.defaultCharSingleByte),c<256?e[a++]=c:c<65536?(e[a++]=c>>8,e[a++]=c&255):(e[a++]=c>>16,e[a++]=c>>8&255,e[a++]=c&255)}return this.seqObj=n,this.leadSurrogate=r,e.slice(0,a)};Th.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var t=nc.alloc(10),e=0;if(this.seqObj){var r=this.seqObj[op];r!==void 0&&(r<256?t[e++]=r:(t[e++]=r>>8,t[e++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(t[e++]=this.defaultCharSingleByte,this.leadSurrogate=-1),t.slice(0,e)}};Th.prototype.findIdx=lS;function cS(t,e){this.nodeIdx=0,this.prevBuf=nc.alloc(0),this.decodeTables=e.decodeTables,this.decodeTableSeq=e.decodeTableSeq,this.defaultCharUnicode=e.defaultCharUnicode,this.gb18030=e.gb18030}cS.prototype.write=function(t){var e=nc.alloc(t.length*2),r=this.nodeIdx,n=this.prevBuf,s=this.prevBuf.length,i=-this.prevBuf.length,a;s>0&&(n=nc.concat([n,t.slice(0,10)]));for(var o=0,c=0;o=0?t[o]:n[o+s],a=this.decodeTables[r][l];if(!(a>=0))if(a===pn)o=i,a=this.defaultCharUnicode.charCodeAt(0);else if(a===Kz){var u=i>=0?t.slice(i,o+1):n.slice(i+s,o+1+s),p=(u[0]-129)*12600+(u[1]-48)*1260+(u[2]-129)*10+(u[3]-48),d=lS(this.gb18030.gbChars,p);a=this.gb18030.uChars[d]+p-this.gb18030.gbChars[d]}else if(a<=zs){r=zs-a;continue}else if(a<=Fn){for(var m=this.decodeTableSeq[Fn-a],f=0;f>8;a=m[m.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+a+" at "+r+"/"+l);if(a>65535){a-=65536;var v=55296+Math.floor(a/1024);e[c++]=v&255,e[c++]=v>>8,a=56320+a%1024}e[c++]=a&255,e[c++]=a>>8,r=0,i=o+1}return this.nodeIdx=r,this.prevBuf=i>=0?t.slice(i):n.slice(i+s),e.slice(0,c).toString("ucs2")};cS.prototype.end=function(){for(var t="";this.prevBuf.length>0;){t+=this.defaultCharUnicode;var e=this.prevBuf.slice(1);this.prevBuf=nc.alloc(0),this.nodeIdx=0,e.length>0&&(t+=this.write(e))}return this.nodeIdx=0,t};function lS(t,e){if(t[0]>e)return-1;for(var r=0,n=t.length;r{Cne.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var Xz=P((dAe,One)=>{One.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var Rh=P((mAe,jne)=>{jne.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var uS=P((fAe,Ane)=>{Ane.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\uE7C7"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93]]});var eM=P((hAe,Nne)=>{Nne.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var tM=P((gAe,Dne)=>{Dne.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var pS=P((vAe,zne)=>{zne.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var rM=P((yAe,Mne)=>{Mne.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var sM=P((bAe,nM)=>{"use strict";nM.exports={shiftjis:{type:"_dbcs",table:function(){return Yz()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return Xz()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return Rh()}},gbk:{type:"_dbcs",table:function(){return Rh().concat(uS())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return Rh().concat(uS())},gb18030:function(){return eM()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return tM()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return pS()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return pS().concat(rM())},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var oM=P((aM,sc)=>{"use strict";var iM=[$z(),Uz(),Fz(),Bz(),Zz(),Vz(),Qz(),sM()];for(Ph=0;Ph{"use strict";var cM=require("buffer").Buffer,Ch=require("stream").Transform;lM.exports=function(t){t.encodeStream=function(r,n){return new ja(t.getEncoder(r,n),n)},t.decodeStream=function(r,n){return new Ai(t.getDecoder(r,n),n)},t.supportsStreams=!0,t.IconvLiteEncoderStream=ja,t.IconvLiteDecoderStream=Ai,t._collect=Ai.prototype.collect};function ja(t,e){this.conv=t,e=e||{},e.decodeStrings=!1,Ch.call(this,e)}ja.prototype=Object.create(Ch.prototype,{constructor:{value:ja}});ja.prototype._transform=function(t,e,r){if(typeof t!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n),r()}catch(s){r(s)}};ja.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e),t()}catch(r){t(r)}};ja.prototype.collect=function(t){var e=[];return this.on("error",t),this.on("data",function(r){e.push(r)}),this.on("end",function(){t(null,cM.concat(e))}),this};function Ai(t,e){this.conv=t,e=e||{},e.encoding=this.encoding="utf8",Ch.call(this,e)}Ai.prototype=Object.create(Ch.prototype,{constructor:{value:Ai}});Ai.prototype._transform=function(t,e,r){if(!cM.isBuffer(t))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var n=this.conv.write(t);n&&n.length&&this.push(n,this.encoding),r()}catch(s){r(s)}};Ai.prototype._flush=function(t){try{var e=this.conv.end();e&&e.length&&this.push(e,this.encoding),t()}catch(r){t(r)}};Ai.prototype.collect=function(t){var e="";return this.on("error",t),this.on("data",function(r){e+=r}),this.on("end",function(){t(null,e)}),this}});var dM=P((_Ae,pM)=>{"use strict";var Bt=require("buffer").Buffer;pM.exports=function(t){var e=void 0;t.supportsNodeEncodingsExtension=!(Bt.from||new Bt(0)instanceof Uint8Array),t.extendNodeEncodings=function(){if(!e){if(e={},!t.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node"),console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var n={hex:!0,utf8:!0,"utf-8":!0,ascii:!0,binary:!0,base64:!0,ucs2:!0,"ucs-2":!0,utf16le:!0,"utf-16le":!0};Bt.isNativeEncoding=function(a){return a&&n[a.toLowerCase()]};var s=require("buffer").SlowBuffer;if(e.SlowBufferToString=s.prototype.toString,s.prototype.toString=function(a,o,c){return a=String(a||"utf8").toLowerCase(),Bt.isNativeEncoding(a)?e.SlowBufferToString.call(this,a,o,c):(typeof o>"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.SlowBufferWrite=s.prototype.write,s.prototype.write=function(a,o,c,l){if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var u=l;l=o,o=c,c=u}o=+o||0;var p=this.length-o;if(c?(c=+c,c>p&&(c=p)):c=p,l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.SlowBufferWrite.call(this,a,o,c,l);if(a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var d=t.encode(a,l);return d.length"u"&&(o=0),typeof c>"u"&&(c=this.length),t.decode(this.slice(o,c),a))},e.BufferWrite=Bt.prototype.write,Bt.prototype.write=function(a,o,c,l){var u=o,p=c,d=l;if(isFinite(o))isFinite(c)||(l=c,c=void 0);else{var m=l;l=o,o=c,c=m}if(l=String(l||"utf8").toLowerCase(),Bt.isNativeEncoding(l))return e.BufferWrite.call(this,a,u,p,d);o=+o||0;var f=this.length-o;if(c?(c=+c,c>f&&(c=f)):c=f,a.length>0&&(c<0||o<0))throw new RangeError("attempt to write beyond buffer bounds");var v=t.encode(a,l);return v.length{"use strict";var fM=Ca().Buffer,hM=Dz(),it=gM.exports;it.encodings=null;it.defaultCharUnicode="\uFFFD";it.defaultCharSingleByte="?";it.encode=function(e,r,n){e=""+(e||"");var s=it.getEncoder(r,n),i=s.write(e),a=s.end();return a&&a.length>0?fM.concat([i,a]):i};it.decode=function(e,r,n){typeof e=="string"&&(it.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),it.skipDecodeWarning=!0),e=fM.from(""+(e||""),"binary"));var s=it.getDecoder(r,n),i=s.write(e),a=s.end();return a?i+a:i};it.encodingExists=function(e){try{return it.getCodec(e),!0}catch{return!1}};it.toEncoding=it.encode;it.fromEncoding=it.decode;it._codecDataCache={};it.getCodec=function(e){it.encodings||(it.encodings=oM());for(var r=it._canonicalizeEncoding(e),n={};;){var s=it._codecDataCache[r];if(s)return s;var i=it.encodings[r];switch(typeof i){case"string":r=i;break;case"object":for(var a in i)n[a]=i[a];n.encodingName||(n.encodingName=r),r=i.type;break;case"function":return n.encodingName||(n.encodingName=r),s=new i(n,it),it._codecDataCache[n.encodingName]=s,s;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+r+"')")}}};it._canonicalizeEncoding=function(t){return(""+t).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};it.getEncoder=function(e,r){var n=it.getCodec(e),s=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(s=new hM.PrependBOM(s,r)),s};it.getDecoder=function(e,r){var n=it.getCodec(e),s=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(s=new hM.StripBOM(s,r)),s};var mM=typeof process<"u"&&process.versions&&process.versions.node;mM&&(dS=mM.split(".").map(Number),(dS[0]>0||dS[1]>=10)&&uM()(it),dM()(it));var dS});var Oh=P((SAe,vM)=>{"use strict";vM.exports=Lne;function $ne(t){for(var e=t.listeners("data"),r=0;r{"use strict";var yM=Gne(),Une=Qo(),Aa=Pa(),qne=mS(),Fne=Oh();xM.exports=Wne;var Hne=/^Encoding not recognized: /;function Bne(t){if(!t)return null;try{return qne.getDecoder(t)}catch(e){throw Hne.test(e.message)?Aa(415,"specified encoding unsupported",{encoding:t,type:"encoding.unsupported"}):e}}function Wne(t,e,r){var n=r,s=e||{};if(t===void 0)throw new TypeError("argument stream is required");if(typeof t!="object"||t===null||typeof t.on!="function")throw new TypeError("argument stream must be a stream");if((e===!0||typeof e=="string")&&(s={encoding:e}),typeof e=="function"&&(n=e,s={}),n!==void 0&&typeof n!="function")throw new TypeError("argument callback must be a function");if(!n&&!global.Promise)throw new TypeError("argument callback is required");var i=s.encoding!==!0?s.encoding:"utf-8",a=Une.parse(s.limit),o=s.length!=null&&!isNaN(s.length)?parseInt(s.length,10):null;return n?bM(t,i,o,a,Vne(n)):new Promise(function(l,u){bM(t,i,o,a,function(d,m){if(d)return u(d);l(m)})})}function Zne(t){Fne(t),typeof t.pause=="function"&&t.pause()}function bM(t,e,r,n,s){var i=!1,a=!0;if(n!==null&&r!==null&&r>n)return p(Aa(413,"request entity too large",{expected:r,length:r,limit:n,type:"entity.too.large"}));var o=t._readableState;if(t._decoder||o&&(o.encoding||o.decoder))return p(Aa(500,"stream encoding should not be set",{type:"stream.encoding.set"}));if(typeof t.readable<"u"&&!t.readable)return p(Aa(500,"stream is not readable",{type:"stream.not.readable"}));var c=0,l;try{l=Bne(e)}catch(g){return p(g)}var u=l?"":[];t.on("aborted",d),t.on("close",v),t.on("data",m),t.on("end",f),t.on("error",f),a=!1;function p(){for(var g=new Array(arguments.length),h=0;hn?p(Aa(413,"request entity too large",{limit:n,received:c,type:"entity.too.large"})):l?u+=l.write(g):u.push(g))}function f(g){if(!i){if(g)return p(g);if(r!==null&&c!==r)p(Aa(400,"request size did not match content length",{expected:r,length:r,received:c,type:"request.size.invalid"}));else{var h=l?u+(l.end()||""):Buffer.concat(u);p(null,h)}}}function v(){u=null,t.removeListener("aborted",d),t.removeListener("data",m),t.removeListener("end",f),t.removeListener("error",f),t.removeListener("close",v)}}function Gne(){try{return require("async_hooks")}catch{return{}}}function Vne(t){var e;return yM.AsyncResource&&(e=new yM.AsyncResource(t.name||"bound-anonymous-fn")),!e||!e.runInAsyncScope?t:e.runInAsyncScope.bind(e,t,null)}});var SM=P((EAe,wM)=>{"use strict";wM.exports=Kne;function Kne(t,e){if(!Array.isArray(t))throw new TypeError("arg must be an array of [ee, events...] arrays");for(var r=[],n=0;n{"use strict";fS.exports=Yne;fS.exports.isFinished=TM;var kM=nse(),EM=SM(),Qne=typeof setImmediate=="function"?setImmediate:function(t){process.nextTick(t.bind.apply(t,arguments))};function Yne(t,e){return TM(t)!==!1?(Qne(e,null,t),t):(ese(t,sse(e)),t)}function TM(t){var e=t.socket;if(typeof t.finished=="boolean")return!!(t.finished||e&&!e.writable);if(typeof t.complete=="boolean")return!!(t.upgrade||!e||!e.readable||t.complete&&!t.readable)}function Xne(t,e){var r,n,s=!1;function i(o){r.cancel(),n.cancel(),s=!0,e(o)}r=n=EM([[t,"end","finish"]],i);function a(o){t.removeListener("socket",a),!s&&r===n&&(n=EM([[o,"error","close"]],i))}if(t.socket){a(t.socket);return}t.on("socket",a),t.socket===void 0&&rse(t,a)}function ese(t,e){var r=t.__onFinished;(!r||!r.queue)&&(r=t.__onFinished=tse(t),Xne(t,r)),r.queue.push(e)}function tse(t){function e(r){if(t.__onFinished===e&&(t.__onFinished=null),!!e.queue){var n=e.queue;e.queue=null;for(var s=0;s{"use strict";var Ni=Pa(),ise=$w(),ase=_M(),RM=mS(),PM=cp(),ose=Oh(),IM=require("zlib");CM.exports=cse;function cse(t,e,r,n,s,i){var a,o=i,c;t._body=!0;var l=o.encoding!==null?o.encoding:null,u=o.verify;try{c=lse(t,s,o.inflate),a=c.length,c.length=void 0}catch(p){return r(p)}if(o.length=a,o.encoding=u?null:l,o.encoding===null&&l!==null&&!RM.encodingExists(l))return r(Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}));s("read body"),ase(c,o,function(p,d){if(p){var m;p.type==="encoding.unsupported"?m=Ni(415,'unsupported charset "'+l.toUpperCase()+'"',{charset:l.toLowerCase(),type:"charset.unsupported"}):m=Ni(400,p),c!==t&&(ose(t),ise(c,!0)),use(t,function(){r(Ni(400,m))});return}if(u)try{s("verify body"),u(t,e,d,l)}catch(v){r(Ni(403,v,{body:d,type:v.type||"entity.verify.failed"}));return}var f=d;try{s("parse body"),f=typeof d!="string"&&l!==null?RM.decode(d,l):d,t.body=n(f)}catch(v){r(Ni(400,v,{body:f,type:v.type||"entity.parse.failed"}));return}r()})}function lse(t,e,r){var n=(t.headers["content-encoding"]||"identity").toLowerCase(),s=t.headers["content-length"],i;if(e('content-encoding "%s"',n),r===!1&&n!=="identity")throw Ni(415,"content encoding unsupported",{encoding:n,type:"encoding.unsupported"});switch(n){case"deflate":i=IM.createInflate(),e("inflate body"),t.pipe(i);break;case"gzip":i=IM.createGunzip(),e("gunzip body"),t.pipe(i);break;case"identity":i=t,i.length=s;break;default:throw Ni(415,'unsupported content encoding "'+n+'"',{encoding:n,type:"encoding.unsupported"})}return i}function use(t,e){PM.isFinished(t)?e(null):(PM(t,e),t.resume())}});var NM=P(hS=>{var OM=/; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g,pse=/^[\u0020-\u007e\u0080-\u00ff]+$/,AM=/^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/,dse=/\\([\u0000-\u007f])/g,mse=/([\\"])/g,fse=/^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/,jM=/^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/,hse=/^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;hS.format=gse;hS.parse=vse;function gse(t){if(!t||typeof t!="object")throw new TypeError("argument obj is required");var e=t.parameters,r=t.subtype,n=t.suffix,s=t.type;if(!s||!jM.test(s))throw new TypeError("invalid type");if(!r||!fse.test(r))throw new TypeError("invalid subtype");var i=s+"/"+r;if(n){if(!jM.test(n))throw new TypeError("invalid suffix");i+="+"+n}if(e&&typeof e=="object")for(var a,o=Object.keys(e).sort(),c=0;c0&&!pse.test(e))throw new TypeError("invalid parameter value");return'"'+e.replace(mse,"\\$1")+'"'}function xse(t){var e=hse.exec(t.toLowerCase());if(!e)throw new TypeError("invalid media type");var r=e[1],n=e[2],s,i=n.lastIndexOf("+");i!==-1&&(s=n.substr(i+1),n=n.substr(0,i));var a={type:r,subtype:n,suffix:s};return a}});var DM=P((IAe,_se)=>{_se.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var MM=P((CAe,zM)=>{zM.exports=DM()});var UM=P(dn=>{"use strict";var jh=MM(),wse=require("path").extname,$M=/^\s*([^;\s]*)(?:;|\s|$)/,Sse=/^text\//i;dn.charset=LM;dn.charsets={lookup:LM};dn.contentType=kse;dn.extension=Ese;dn.extensions=Object.create(null);dn.lookup=Tse;dn.types=Object.create(null);Rse(dn.extensions,dn.types);function LM(t){if(!t||typeof t!="string")return!1;var e=$M.exec(t),r=e&&jh[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&Sse.test(e[1])?"UTF-8":!1}function kse(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?dn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=dn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function Ese(t){if(!t||typeof t!="string")return!1;var e=$M.exec(t),r=e&&dn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function Tse(t){if(!t||typeof t!="string")return!1;var e=wse("x."+t).toLowerCase().substr(1);return e&&dn.types[e]||!1}function Rse(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(jh).forEach(function(s){var i=jh[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var ac=P((jAe,ic)=>{"use strict";var qM=NM(),Pse=UM();ic.exports=Ise;ic.exports.is=FM;ic.exports.hasBody=HM;ic.exports.normalize=BM;ic.exports.match=WM;function FM(t,e){var r,n=e,s=Ose(t);if(!s)return!1;if(n&&!Array.isArray(n))for(n=new Array(arguments.length-1),r=0;r2){r=new Array(arguments.length-1);for(var n=0;n{"use strict";var jse=Qo(),Ase=Ju(),Nse=Pa(),Di=sp()("body-parser:json"),Dse=lp(),GM=ac();KM.exports=$se;var zse=/^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/,ZM="#",Mse=/#+/g;function $se(t){var e=t||{},r=typeof e.limit!="number"?jse.parse(e.limit||"100kb"):e.limit,n=e.inflate!==!1,s=e.reviver,i=e.strict!==!1,a=e.type||"application/json",o=e.verify||!1;if(o!==!1&&typeof o!="function")throw new TypeError("option verify must be function");var c=typeof a!="function"?Fse(a):a;function l(u){if(u.length===0)return{};if(i){var p=Use(u);if(p!=="{"&&p!=="[")throw Di("strict violation"),Lse(u,p)}try{return Di("parse json"),JSON.parse(u,s)}catch(d){throw VM(d,{message:d.message,stack:d.stack})}}return function(p,d,m){if(p._body){Di("body already parsed"),m();return}if(p.body=p.body||{},!GM.hasBody(p)){Di("skip empty body"),m();return}if(Di("content-type %j",p.headers["content-type"]),!c(p)){Di("skip parsing"),m();return}var f=qse(p)||"utf-8";if(f.slice(0,4)!=="utf-"){Di("invalid charset"),m(Nse(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Dse(p,d,m,l,Di,{encoding:f,inflate:n,limit:r,verify:o})}}function Lse(t,e){var r=t.indexOf(e),n="";if(r!==-1){n=t.substring(0,r)+ZM;for(var s=r+1;s{"use strict";var Hse=Qo(),up=sp()("body-parser:raw"),Bse=lp(),QM=ac();YM.exports=Wse;function Wse(t){var e=t||{},r=e.inflate!==!1,n=typeof e.limit!="number"?Hse.parse(e.limit||"100kb"):e.limit,s=e.type||"application/octet-stream",i=e.verify||!1;if(i!==!1&&typeof i!="function")throw new TypeError("option verify must be function");var a=typeof s!="function"?Zse(s):s;function o(c){return c}return function(l,u,p){if(l._body){up("body already parsed"),p();return}if(l.body=l.body||{},!QM.hasBody(l)){up("skip empty body"),p();return}if(up("content-type %j",l.headers["content-type"]),!a(l)){up("skip parsing"),p();return}Bse(l,u,p,o,up,{encoding:null,inflate:r,limit:n,verify:i})}}function Zse(t){return function(r){return!!QM(r,t)}}});var r4=P((DAe,t4)=>{"use strict";var Gse=Qo(),Vse=Ju(),pp=sp()("body-parser:text"),Kse=lp(),e4=ac();t4.exports=Jse;function Jse(t){var e=t||{},r=e.defaultCharset||"utf-8",n=e.inflate!==!1,s=typeof e.limit!="number"?Gse.parse(e.limit||"100kb"):e.limit,i=e.type||"text/plain",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=typeof i!="function"?Yse(i):i;function c(l){return l}return function(u,p,d){if(u._body){pp("body already parsed"),d();return}if(u.body=u.body||{},!e4.hasBody(u)){pp("skip empty body"),d();return}if(pp("content-type %j",u.headers["content-type"]),!o(u)){pp("skip parsing"),d();return}var m=Qse(u)||r;Kse(u,p,d,c,pp,{encoding:m,inflate:n,limit:s,verify:a})}}function Qse(t){try{return(Vse.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function Yse(t){return function(r){return!!e4(r,t)}}});var Na=P((zAe,n4)=>{"use strict";n4.exports=TypeError});var i4=P((MAe,s4)=>{s4.exports=require("util").inspect});var gp=P(($Ae,E4)=>{var ES=typeof Map=="function"&&Map.prototype,gS=Object.getOwnPropertyDescriptor&&ES?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Nh=ES&&gS&&typeof gS.get=="function"?gS.get:null,a4=ES&&Map.prototype.forEach,TS=typeof Set=="function"&&Set.prototype,vS=Object.getOwnPropertyDescriptor&&TS?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,Dh=TS&&vS&&typeof vS.get=="function"?vS.get:null,o4=TS&&Set.prototype.forEach,Xse=typeof WeakMap=="function"&&WeakMap.prototype,mp=Xse?WeakMap.prototype.has:null,eie=typeof WeakSet=="function"&&WeakSet.prototype,fp=eie?WeakSet.prototype.has:null,tie=typeof WeakRef=="function"&&WeakRef.prototype,c4=tie?WeakRef.prototype.deref:null,rie=Boolean.prototype.valueOf,nie=Object.prototype.toString,sie=Function.prototype.toString,iie=String.prototype.match,RS=String.prototype.slice,zi=String.prototype.replace,aie=String.prototype.toUpperCase,l4=String.prototype.toLowerCase,y4=RegExp.prototype.test,u4=Array.prototype.concat,Ms=Array.prototype.join,oie=Array.prototype.slice,p4=Math.floor,xS=typeof BigInt=="function"?BigInt.prototype.valueOf:null,yS=Object.getOwnPropertySymbols,_S=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,oc=typeof Symbol=="function"&&typeof Symbol.iterator=="object",hp=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===oc||!0)?Symbol.toStringTag:null,b4=Object.prototype.propertyIsEnumerable,d4=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function m4(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||y4.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var n=t<0?-p4(-t):p4(t);if(n!==t){var s=String(n),i=RS.call(e,s.length+1);return zi.call(s,r,"$&_")+"."+zi.call(zi.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return zi.call(e,r,"$&_")}var wS=i4(),f4=wS.custom,h4=w4(f4)?f4:null,x4={__proto__:null,double:'"',single:"'"},cie={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};E4.exports=function t(e,r,n,s){var i=r||{};if(si(i,"quoteStyle")&&!si(x4,i.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(si(i,"maxStringLength")&&(typeof i.maxStringLength=="number"?i.maxStringLength<0&&i.maxStringLength!==1/0:i.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var a=si(i,"customInspect")?i.customInspect:!0;if(typeof a!="boolean"&&a!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(si(i,"indent")&&i.indent!==null&&i.indent!==" "&&!(parseInt(i.indent,10)===i.indent&&i.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(si(i,"numericSeparator")&&typeof i.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var o=i.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return k4(e,i);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var c=String(e);return o?m4(e,c):c}if(typeof e=="bigint"){var l=String(e)+"n";return o?m4(e,l):l}var u=typeof i.depth>"u"?5:i.depth;if(typeof n>"u"&&(n=0),n>=u&&u>0&&typeof e=="object")return SS(e)?"[Array]":"[Object]";var p=Tie(i,n);if(typeof s>"u")s=[];else if(S4(s,e)>=0)return"[Circular]";function d(q,B,re){if(B&&(s=oie.call(s),s.push(B)),re){var G={depth:i.depth};return si(i,"quoteStyle")&&(G.quoteStyle=i.quoteStyle),t(q,G,n+1,s)}return t(q,i,n+1,s)}if(typeof e=="function"&&!g4(e)){var m=vie(e),f=Ah(e,d);return"[Function"+(m?": "+m:" (anonymous)")+"]"+(f.length>0?" { "+Ms.call(f,", ")+" }":"")}if(w4(e)){var v=oc?zi.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):_S.call(e);return typeof e=="object"&&!oc?dp(v):v}if(Sie(e)){for(var g="<"+l4.call(String(e.nodeName)),h=e.attributes||[],y=0;y",g}if(SS(e)){if(e.length===0)return"[]";var b=Ah(e,d);return p&&!Eie(b)?"["+kS(b,p)+"]":"[ "+Ms.call(b,", ")+" ]"}if(pie(e)){var x=Ah(e,d);return!("cause"in Error.prototype)&&"cause"in e&&!b4.call(e,"cause")?"{ ["+String(e)+"] "+Ms.call(u4.call("[cause]: "+d(e.cause),x),", ")+" }":x.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+Ms.call(x,", ")+" }"}if(typeof e=="object"&&a){if(h4&&typeof e[h4]=="function"&&wS)return wS(e,{depth:u-n});if(a!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(yie(e)){var w=[];return a4&&a4.call(e,function(q,B){w.push(d(B,e,!0)+" => "+d(q,e))}),v4("Map",Nh.call(e),w,p)}if(_ie(e)){var S=[];return o4&&o4.call(e,function(q){S.push(d(q,e))}),v4("Set",Dh.call(e),S,p)}if(bie(e))return bS("WeakMap");if(wie(e))return bS("WeakSet");if(xie(e))return bS("WeakRef");if(mie(e))return dp(d(Number(e)));if(hie(e))return dp(d(xS.call(e)));if(fie(e))return dp(rie.call(e));if(die(e))return dp(d(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(typeof globalThis<"u"&&e===globalThis||typeof global<"u"&&e===global)return"{ [object globalThis] }";if(!uie(e)&&!g4(e)){var k=Ah(e,d),E=d4?d4(e)===Object.prototype:e instanceof Object||e.constructor===Object,R=e instanceof Object?"":"null prototype",O=!E&&hp&&Object(e)===e&&hp in e?RS.call(Mi(e),8,-1):R?"Object":"",C=E||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",$=C+(O||R?"["+Ms.call(u4.call([],O||[],R||[]),": ")+"] ":"");return k.length===0?$+"{}":p?$+"{"+kS(k,p)+"}":$+"{ "+Ms.call(k,", ")+" }"}return String(e)};function _4(t,e,r){var n=r.quoteStyle||e,s=x4[n];return s+t+s}function lie(t){return zi.call(String(t),/"/g,""")}function Da(t){return!hp||!(typeof t=="object"&&(hp in t||typeof t[hp]<"u"))}function SS(t){return Mi(t)==="[object Array]"&&Da(t)}function uie(t){return Mi(t)==="[object Date]"&&Da(t)}function g4(t){return Mi(t)==="[object RegExp]"&&Da(t)}function pie(t){return Mi(t)==="[object Error]"&&Da(t)}function die(t){return Mi(t)==="[object String]"&&Da(t)}function mie(t){return Mi(t)==="[object Number]"&&Da(t)}function fie(t){return Mi(t)==="[object Boolean]"&&Da(t)}function w4(t){if(oc)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!_S)return!1;try{return _S.call(t),!0}catch{}return!1}function hie(t){if(!t||typeof t!="object"||!xS)return!1;try{return xS.call(t),!0}catch{}return!1}var gie=Object.prototype.hasOwnProperty||function(t){return t in this};function si(t,e){return gie.call(t,e)}function Mi(t){return nie.call(t)}function vie(t){if(t.name)return t.name;var e=iie.call(sie.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function S4(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;re.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return k4(RS.call(t,0,e.maxStringLength),e)+n}var s=cie[e.quoteStyle||"single"];s.lastIndex=0;var i=zi.call(zi.call(t,s,"\\$1"),/[\x00-\x1f]/g,kie);return _4(i,"single",e)}function kie(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+aie.call(e.toString(16))}function dp(t){return"Object("+t+")"}function bS(t){return t+" { ? }"}function v4(t,e,r,n){var s=n?kS(r,n):Ms.call(r,", ");return t+" ("+e+") {"+s+"}"}function Eie(t){for(var e=0;e=0)return!1;return!0}function Tie(t,e){var r;if(t.indent===" ")r=" ";else if(typeof t.indent=="number"&&t.indent>0)r=Ms.call(Array(t.indent+1)," ");else return null;return{base:r,prev:Ms.call(Array(e+1),r)}}function kS(t,e){if(t.length===0)return"";var r=` `+e.prev+e.base;return r+Ms.call(t,","+r)+` -`+e.prev}function Ah(t,e){var r=SS(t),n=[];if(r){n.length=t.length;for(var s=0;s{"use strict";var Rie=gp(),Pie=Aa(),zh=function(t,e,r){for(var n=t,s;(s=n.next)!=null;n=s)if(s.key===e)return n.next=s.next,r||(s.next=t.next,t.next=s),s},Iie=function(t,e){if(t){var r=zh(t,e);return r&&r.value}},Cie=function(t,e,r){var n=zh(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},Oie=function(t,e){return t?!!zh(t,e):!1},jie=function(t,e){if(t)return zh(t,e,!0)};T4.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Pie("Side channel does not contain "+Rie(n))},delete:function(n){var s=e&&e.next,i=jie(e,n);return i&&s&&s===i&&(e=void 0),!!i},get:function(n){return Iie(e,n)},has:function(n){return Oie(e,n)},set:function(n,s){e||(e={next:void 0}),Cie(e,n,s)}};return r}});var PS=P((UAe,P4)=>{"use strict";P4.exports=Object});var C4=P((qAe,I4)=>{"use strict";I4.exports=Error});var j4=P((FAe,O4)=>{"use strict";O4.exports=EvalError});var N4=P((HAe,A4)=>{"use strict";A4.exports=RangeError});var z4=P((BAe,D4)=>{"use strict";D4.exports=ReferenceError});var $4=P((WAe,M4)=>{"use strict";M4.exports=SyntaxError});var U4=P((ZAe,L4)=>{"use strict";L4.exports=URIError});var F4=P((GAe,q4)=>{"use strict";q4.exports=Math.abs});var B4=P((VAe,H4)=>{"use strict";H4.exports=Math.floor});var Z4=P((KAe,W4)=>{"use strict";W4.exports=Math.max});var V4=P((JAe,G4)=>{"use strict";G4.exports=Math.min});var J4=P((QAe,K4)=>{"use strict";K4.exports=Math.pow});var Y4=P((YAe,Q4)=>{"use strict";Q4.exports=Math.round});var e$=P((XAe,X4)=>{"use strict";X4.exports=Number.isNaN||function(e){return e!==e}});var r$=P((eNe,t$)=>{"use strict";var Aie=e$();t$.exports=function(e){return Aie(e)||e===0?e:e<0?-1:1}});var s$=P((tNe,n$)=>{"use strict";n$.exports=Object.getOwnPropertyDescriptor});var IS=P((rNe,i$)=>{"use strict";var Mh=s$();if(Mh)try{Mh([],"length")}catch{Mh=null}i$.exports=Mh});var o$=P((nNe,a$)=>{"use strict";var $h=Object.defineProperty||!1;if($h)try{$h({},"a",{value:1})}catch{$h=!1}a$.exports=$h});var l$=P((sNe,c$)=>{"use strict";c$.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var d$=P((iNe,p$)=>{"use strict";var u$=typeof Symbol<"u"&&Symbol,Nie=l$();p$.exports=function(){return typeof u$!="function"||typeof Symbol!="function"||typeof u$("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Nie()}});var CS=P((aNe,m$)=>{"use strict";m$.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var OS=P((oNe,f$)=>{"use strict";var Die=PS();f$.exports=Die.getPrototypeOf||null});var v$=P((cNe,g$)=>{"use strict";var zie="Function.prototype.bind called on incompatible ",Mie=Object.prototype.toString,$ie=Math.max,Lie="[object Function]",h$=function(e,r){for(var n=[],s=0;s{"use strict";var Fie=v$();y$.exports=Function.prototype.bind||Fie});var Lh=P((uNe,b$)=>{"use strict";b$.exports=Function.prototype.call});var jS=P((pNe,x$)=>{"use strict";x$.exports=Function.prototype.apply});var w$=P((dNe,_$)=>{"use strict";_$.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var k$=P((mNe,S$)=>{"use strict";var Hie=vp(),Bie=jS(),Wie=Lh(),Zie=w$();S$.exports=Zie||Hie.call(Wie,Bie)});var AS=P((fNe,E$)=>{"use strict";var Gie=vp(),Vie=Aa(),Kie=Lh(),Jie=k$();E$.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new Vie("a function is required");return Jie(Gie,Kie,e)}});var O$=P((hNe,C$)=>{"use strict";var Qie=AS(),T$=IS(),P$;try{P$=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var NS=!!P$&&T$&&T$(Object.prototype,"__proto__"),I$=Object,R$=I$.getPrototypeOf;C$.exports=NS&&typeof NS.get=="function"?Qie([NS.get]):typeof R$=="function"?function(e){return R$(e==null?e:I$(e))}:!1});var z$=P((gNe,D$)=>{"use strict";var j$=CS(),A$=OS(),N$=O$();D$.exports=j$?function(e){return j$(e)}:A$?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return A$(e)}:N$?function(e){return N$(e)}:null});var $$=P((vNe,M$)=>{"use strict";var Yie=Function.prototype.call,Xie=Object.prototype.hasOwnProperty,eae=vp();M$.exports=eae.call(Yie,Xie)});var Fh=P((yNe,B$)=>{"use strict";var He,tae=PS(),rae=C4(),nae=j4(),sae=N4(),iae=z4(),pc=$4(),uc=Aa(),aae=U4(),oae=F4(),cae=B4(),lae=Z4(),uae=V4(),pae=J4(),dae=Y4(),mae=r$(),F$=Function,DS=function(t){try{return F$('"use strict"; return ('+t+").constructor;")()}catch{}},yp=IS(),fae=o$(),zS=function(){throw new uc},hae=yp?(function(){try{return arguments.callee,zS}catch{try{return yp(arguments,"callee").get}catch{return zS}}})():zS,cc=d$()(),pr=z$(),gae=OS(),vae=CS(),H$=jS(),bp=Lh(),lc={},yae=typeof Uint8Array>"u"||!pr?He:pr(Uint8Array),Da={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?He:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?He:ArrayBuffer,"%ArrayIteratorPrototype%":cc&&pr?pr([][Symbol.iterator]()):He,"%AsyncFromSyncIteratorPrototype%":He,"%AsyncFunction%":lc,"%AsyncGenerator%":lc,"%AsyncGeneratorFunction%":lc,"%AsyncIteratorPrototype%":lc,"%Atomics%":typeof Atomics>"u"?He:Atomics,"%BigInt%":typeof BigInt>"u"?He:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?He:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?He:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?He:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":rae,"%eval%":eval,"%EvalError%":nae,"%Float16Array%":typeof Float16Array>"u"?He:Float16Array,"%Float32Array%":typeof Float32Array>"u"?He:Float32Array,"%Float64Array%":typeof Float64Array>"u"?He:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?He:FinalizationRegistry,"%Function%":F$,"%GeneratorFunction%":lc,"%Int8Array%":typeof Int8Array>"u"?He:Int8Array,"%Int16Array%":typeof Int16Array>"u"?He:Int16Array,"%Int32Array%":typeof Int32Array>"u"?He:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":cc&&pr?pr(pr([][Symbol.iterator]())):He,"%JSON%":typeof JSON=="object"?JSON:He,"%Map%":typeof Map>"u"?He:Map,"%MapIteratorPrototype%":typeof Map>"u"||!cc||!pr?He:pr(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":tae,"%Object.getOwnPropertyDescriptor%":yp,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?He:Promise,"%Proxy%":typeof Proxy>"u"?He:Proxy,"%RangeError%":sae,"%ReferenceError%":iae,"%Reflect%":typeof Reflect>"u"?He:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?He:Set,"%SetIteratorPrototype%":typeof Set>"u"||!cc||!pr?He:pr(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?He:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":cc&&pr?pr(""[Symbol.iterator]()):He,"%Symbol%":cc?Symbol:He,"%SyntaxError%":pc,"%ThrowTypeError%":hae,"%TypedArray%":yae,"%TypeError%":uc,"%Uint8Array%":typeof Uint8Array>"u"?He:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?He:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?He:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?He:Uint32Array,"%URIError%":aae,"%WeakMap%":typeof WeakMap>"u"?He:WeakMap,"%WeakRef%":typeof WeakRef>"u"?He:WeakRef,"%WeakSet%":typeof WeakSet>"u"?He:WeakSet,"%Function.prototype.call%":bp,"%Function.prototype.apply%":H$,"%Object.defineProperty%":fae,"%Object.getPrototypeOf%":gae,"%Math.abs%":oae,"%Math.floor%":cae,"%Math.max%":lae,"%Math.min%":uae,"%Math.pow%":pae,"%Math.round%":dae,"%Math.sign%":mae,"%Reflect.getPrototypeOf%":vae};if(pr)try{null.error}catch(t){L$=pr(pr(t)),Da["%Error.prototype%"]=L$}var L$,bae=function t(e){var r;if(e==="%AsyncFunction%")r=DS("async function () {}");else if(e==="%GeneratorFunction%")r=DS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=DS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=t("%AsyncGenerator%");s&&pr&&(r=pr(s.prototype))}return Da[e]=r,r},U$={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},xp=vp(),Uh=$$(),xae=xp.call(bp,Array.prototype.concat),_ae=xp.call(H$,Array.prototype.splice),q$=xp.call(bp,String.prototype.replace),qh=xp.call(bp,String.prototype.slice),wae=xp.call(bp,RegExp.prototype.exec),Sae=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,kae=/\\(\\)?/g,Eae=function(e){var r=qh(e,0,1),n=qh(e,-1);if(r==="%"&&n!=="%")throw new pc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new pc("invalid intrinsic syntax, expected opening `%`");var s=[];return q$(e,Sae,function(i,a,o,c){s[s.length]=o?q$(c,kae,"$1"):a||i}),s},Tae=function(e,r){var n=e,s;if(Uh(U$,n)&&(s=U$[n],n="%"+s[0]+"%"),Uh(Da,n)){var i=Da[n];if(i===lc&&(i=bae(n)),typeof i>"u"&&!r)throw new uc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:n,value:i}}throw new pc("intrinsic "+e+" does not exist!")};B$.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new uc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new uc('"allowMissing" argument must be a boolean');if(wae(/^%?[^%]*%?$/,e)===null)throw new pc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Eae(e),s=n.length>0?n[0]:"",i=Tae("%"+s+"%",r),a=i.name,o=i.value,c=!1,l=i.alias;l&&(s=l[0],_ae(n,xae([0,1],l)));for(var u=1,p=!0;u=n.length){var v=yp(o,d);p=!!v,p&&"get"in v&&!("originalValue"in v.get)?o=v.get:o=o[d]}else p=Uh(o,d),o=o[d];p&&!c&&(Da[a]=o)}}return o}});var MS=P((bNe,G$)=>{"use strict";var W$=Fh(),Z$=AS(),Rae=Z$([W$("%String.prototype.indexOf%")]);G$.exports=function(e,r){var n=W$(e,!!r);return typeof n=="function"&&Rae(e,".prototype.")>-1?Z$([n]):n}});var $S=P((xNe,K$)=>{"use strict";var Pae=Fh(),_p=MS(),Iae=gp(),Cae=Aa(),V$=Pae("%Map%",!0),Oae=_p("Map.prototype.get",!0),jae=_p("Map.prototype.set",!0),Aae=_p("Map.prototype.has",!0),Nae=_p("Map.prototype.delete",!0),Dae=_p("Map.prototype.size",!0);K$.exports=!!V$&&function(){var e,r={assert:function(n){if(!r.has(n))throw new Cae("Side channel does not contain "+Iae(n))},delete:function(n){if(e){var s=Nae(e,n);return Dae(e)===0&&(e=void 0),s}return!1},get:function(n){if(e)return Oae(e,n)},has:function(n){return e?Aae(e,n):!1},set:function(n,s){e||(e=new V$),jae(e,n,s)}};return r}});var Q$=P((_Ne,J$)=>{"use strict";var zae=Fh(),Bh=MS(),Mae=gp(),Hh=$S(),$ae=Aa(),dc=zae("%WeakMap%",!0),Lae=Bh("WeakMap.prototype.get",!0),Uae=Bh("WeakMap.prototype.set",!0),qae=Bh("WeakMap.prototype.has",!0),Fae=Bh("WeakMap.prototype.delete",!0);J$.exports=dc?function(){var e,r,n={assert:function(s){if(!n.has(s))throw new $ae("Side channel does not contain "+Mae(s))},delete:function(s){if(dc&&s&&(typeof s=="object"||typeof s=="function")){if(e)return Fae(e,s)}else if(Hh&&r)return r.delete(s);return!1},get:function(s){return dc&&s&&(typeof s=="object"||typeof s=="function")&&e?Lae(e,s):r&&r.get(s)},has:function(s){return dc&&s&&(typeof s=="object"||typeof s=="function")&&e?qae(e,s):!!r&&r.has(s)},set:function(s,i){dc&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new dc),Uae(e,s,i)):Hh&&(r||(r=Hh()),r.set(s,i))}};return n}:Hh});var LS=P((wNe,Y$)=>{"use strict";var Hae=Aa(),Bae=gp(),Wae=R4(),Zae=$S(),Gae=Q$(),Vae=Gae||Zae||Wae;Y$.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Hae("Side channel does not contain "+Bae(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,s){e||(e=Vae()),e.set(n,s)}};return r}});var Wh=P((SNe,X$)=>{"use strict";var Kae=String.prototype.replace,Jae=/%20/g,US={RFC1738:"RFC1738",RFC3986:"RFC3986"};X$.exports={default:US.RFC3986,formatters:{RFC1738:function(t){return Kae.call(t,Jae,"+")},RFC3986:function(t){return String(t)}},RFC1738:US.RFC1738,RFC3986:US.RFC3986}});var BS=P((kNe,e2)=>{"use strict";var Qae=Wh(),Yae=LS(),qS=Object.prototype.hasOwnProperty,za=Array.isArray,Zh=Yae(),mc=function(e,r){return Zh.set(e,r),e},Ma=function(e){return Zh.has(e)},wp=function(e){return Zh.get(e)},HS=function(e,r){Zh.set(e,r)},$s=(function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t})(),Xae=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(za(n)){for(var s=[],i=0;in.arrayLimit)return mc(Sp(e.concat(r),n),s);e[s]=r}else if(e&&typeof e=="object")if(Ma(e)){var i=wp(e)+1;e[i]=r,HS(e,i)}else(n&&(n.plainObjects||n.allowPrototypes)||!qS.call(Object.prototype,r))&&(e[r]=!0);else return[e,r];return e}if(!e||typeof e!="object"){if(Ma(r)){for(var a=Object.keys(r),o=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},c=0;cn.arrayLimit?mc(Sp(u,n),u.length-1):u}var p=e;return za(e)&&!za(r)&&(p=Sp(e,n)),za(e)&&za(r)?(r.forEach(function(d,m){if(qS.call(e,m)){var f=e[m];f&&typeof f=="object"&&d&&typeof d=="object"?e[m]=t(f,d,n):e[e.length]=d}else e[m]=d}),e):Object.keys(r).reduce(function(d,m){var f=r[m];if(qS.call(d,m)?d[m]=t(d[m],f,n):d[m]=f,Ma(r)&&!Ma(d)&&mc(d,wp(r)),Ma(d)){var v=parseInt(m,10);String(v)===m&&v>=0&&v>wp(d)&&HS(d,v)}return d},p)},toe=function(e,r){return Object.keys(r).reduce(function(n,s){return n[s]=r[s],n},e)},roe=function(t,e,r){var n=t.replace(/\+/g," ");if(r==="iso-8859-1")return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch{return n}},FS=1024,noe=function(e,r,n,s,i){if(e.length===0)return e;var a=e;if(typeof e=="symbol"?a=Symbol.prototype.toString.call(e):typeof e!="string"&&(a=String(e)),n==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(m){return"%26%23"+parseInt(m.slice(2),16)+"%3B"});for(var o="",c=0;c=FS?a.slice(c,c+FS):a,u=[],p=0;p=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||i===Qae.RFC1738&&(d===40||d===41)){u[u.length]=l.charAt(p);continue}if(d<128){u[u.length]=$s[d];continue}if(d<2048){u[u.length]=$s[192|d>>6]+$s[128|d&63];continue}if(d<55296||d>=57344){u[u.length]=$s[224|d>>12]+$s[128|d>>6&63]+$s[128|d&63];continue}p+=1,d=65536+((d&1023)<<10|l.charCodeAt(p)&1023),u[u.length]=$s[240|d>>18]+$s[128|d>>12&63]+$s[128|d>>6&63]+$s[128|d&63]}o+=u.join("")}return o},soe=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],s=0;sn?mc(Sp(a,{plainObjects:s}),a.length-1):a},coe=function(e,r){if(za(e)){for(var n=[],s=0;s{"use strict";var r2=LS(),Gh=BS(),kp=Wh(),loe=Object.prototype.hasOwnProperty,n2={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},Ls=Array.isArray,uoe=Array.prototype.push,s2=function(t,e){uoe.apply(t,Ls(e)?e:[e])},poe=Date.prototype.toISOString,t2=kp.default,nr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Gh.encode,encodeValuesOnly:!1,filter:void 0,format:t2,formatter:kp.formatters[t2],indices:!1,serializeDate:function(e){return poe.call(e)},skipNulls:!1,strictNullHandling:!1},doe=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},WS={},moe=function t(e,r,n,s,i,a,o,c,l,u,p,d,m,f,v,g,h,y){for(var b=e,x=y,w=0,S=!1;(x=x.get(WS))!==void 0&&!S;){var k=x.get(e);if(w+=1,typeof k<"u"){if(k===w)throw new RangeError("Cyclic object value");S=!0}typeof x.get(WS)>"u"&&(w=0)}if(typeof u=="function"?b=u(r,b):b instanceof Date?b=m(b):n==="comma"&&Ls(b)&&(b=Gh.maybeMap(b,function(K){return K instanceof Date?m(K):K})),b===null){if(a)return l&&!g?l(r,nr.encoder,h,"key",f):r;b=""}if(doe(b)||Gh.isBuffer(b)){if(l){var E=g?r:l(r,nr.encoder,h,"key",f);return[v(E)+"="+v(l(b,nr.encoder,h,"value",f))]}return[v(r)+"="+v(String(b))]}var R=[];if(typeof b>"u")return R;var O;if(n==="comma"&&Ls(b))g&&l&&(b=Gh.maybeMap(b,l)),O=[{value:b.length>0?b.join(",")||null:void 0}];else if(Ls(u))O=u;else{var C=Object.keys(b);O=p?C.sort(p):C}var $=c?String(r).replace(/\./g,"%2E"):String(r),q=s&&Ls(b)&&b.length===1?$+"[]":$;if(i&&Ls(b)&&b.length===0)return q+"[]";for(var B=0;B"u"?e.encodeDotInKeys===!0?!0:nr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:nr.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:nr.allowEmptyArrays,arrayFormat:a,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:nr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?nr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:nr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:nr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:nr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:nr.encodeValuesOnly,filter:i,format:n,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:nr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:nr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:nr.strictNullHandling}};i2.exports=function(t,e){var r=t,n=foe(e),s,i;typeof n.filter=="function"?(i=n.filter,r=i("",r)):Ls(n.filter)&&(i=n.filter,s=i);var a=[];if(typeof r!="object"||r===null)return"";var o=n2[n.arrayFormat],c=o==="comma"&&n.commaRoundTrip;s||(s=Object.keys(r)),n.sort&&s.sort(n.sort);for(var l=r2(),u=0;u0?f+m:""}});var l2=P((TNe,c2)=>{"use strict";var Us=BS(),Vh=Object.prototype.hasOwnProperty,ZS=Array.isArray,Wt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Us.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},hoe=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},o2=function(t,e,r){if(t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return t},goe="utf8=%26%2310003%3B",voe="utf8=%E2%9C%93",yoe=function(e,r){var n={__proto__:null},s=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=r.parameterLimit===1/0?void 0:r.parameterLimit,a=s.split(r.delimiter,r.throwOnLimitExceeded?i+1:i);if(r.throwOnLimitExceeded&&a.length>i)throw new RangeError("Parameter limit exceeded. Only "+i+" parameter"+(i===1?"":"s")+" allowed.");var o=-1,c,l=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(f=ZS(f)?[f]:f),r.comma&&ZS(f)&&f.length>r.arrayLimit){if(r.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+r.arrayLimit+" element"+(r.arrayLimit===1?"":"s")+" allowed in an array.");f=Us.combine([],f,r.arrayLimit,r.plainObjects)}if(m!==null){var v=Vh.call(n,m);v&&r.duplicates==="combine"?n[m]=Us.combine(n[m],f,r.arrayLimit,r.plainObjects):(!v||r.duplicates==="last")&&(n[m]=f)}}return n},boe=function(t,e,r,n){var s=0;if(t.length>0&&t[t.length-1]==="[]"){var i=t.slice(0,-1).join("");s=Array.isArray(e)&&e[i]?e[i].length:0}for(var a=n?e:o2(e,r,s),o=t.length-1;o>=0;--o){var c,l=t[o];if(l==="[]"&&r.parseArrays)Us.isOverflow(a)?c=a:c=r.allowEmptyArrays&&(a===""||r.strictNullHandling&&a===null)?[]:Us.combine([],a,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var u=l.charAt(0)==="["&&l.charAt(l.length-1)==="]"?l.slice(1,-1):l,p=r.decodeDotInKeys?u.replace(/%2E/g,"."):u,d=parseInt(p,10),m=!isNaN(d)&&l!==p&&String(d)===p&&d>=0&&r.parseArrays;if(!r.parseArrays&&p==="")c={0:a};else if(m&&d"u"?Wt.charset:e.charset,n=typeof e.duplicates>"u"?Wt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Wt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Wt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Wt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Wt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Wt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Wt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Wt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Wt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Wt.decoder,delimiter:typeof e.delimiter=="string"||Us.isRegExp(e.delimiter)?e.delimiter:Wt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Wt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Wt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Wt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Wt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Wt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Wt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};c2.exports=function(t,e){var r=woe(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?yoe(t,r):t,s=r.plainObjects?{__proto__:null}:{},i=Object.keys(n),a=0;a{"use strict";var Soe=a2(),koe=l2(),Eoe=Wh();u2.exports={formats:Eoe,parse:koe,stringify:Soe}});var g2=P((PNe,h2)=>{"use strict";var Toe=Qo(),Roe=Ju(),Jh=Ra(),ms=sp()("body-parser:urlencoded"),Poe=Ns()("body-parser"),Ioe=lp(),d2=ac();h2.exports=Coe;var p2=Object.create(null);function Coe(t){var e=t||{};e.extended===void 0&&Poe("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,s=typeof e.limit!="number"?Toe.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=r?Ooe(e):Aoe(e),c=typeof i!="function"?Noe(i):i;function l(u){return u.length?o(u):{}}return function(p,d,m){if(p._body){ms("body already parsed"),m();return}if(p.body=p.body||{},!d2.hasBody(p)){ms("skip empty body"),m();return}if(ms("content-type %j",p.headers["content-type"]),!c(p)){ms("skip parsing"),m();return}var f=joe(p)||"utf-8";if(f!=="utf-8"){ms("invalid charset"),m(Jh(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Ioe(p,d,m,l,ms,{debug:ms,encoding:f,inflate:n,limit:s,verify:a})}}function Ooe(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=f2("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var a=m2(i,e);if(a===void 0)throw ms("too many parameters"),Jh(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,a);ms("parse extended urlencoding");try{return n(i,{allowPrototypes:!0,arrayLimit:o,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Jh(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function joe(t){try{return(Roe.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function m2(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function f2(t){var e=p2[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Kh();break;case"querystring":e=require("querystring");break}return p2[t]=e,e.parse}function Aoe(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=f2("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=m2(s,e);if(i===void 0)throw ms("too many parameters"),Jh(413,"too many parameters",{type:"parameters.too.many"});return ms("parse urlencoding"),r(s,void 0,void 0,{maxKeys:e})}}function Noe(t){return function(r){return!!d2(r,t)}}});var b2=P(($i,y2)=>{"use strict";var Doe=Ns()("body-parser"),v2=Object.create(null);$i=y2.exports=Doe.function(zoe,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty($i,"json",{configurable:!0,enumerable:!0,get:Qh("json")});Object.defineProperty($i,"raw",{configurable:!0,enumerable:!0,get:Qh("raw")});Object.defineProperty($i,"text",{configurable:!0,enumerable:!0,get:Qh("text")});Object.defineProperty($i,"urlencoded",{configurable:!0,enumerable:!0,get:Qh("urlencoded")});function zoe(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=$i.urlencoded(e),n=$i.json(e);return function(i,a,o){n(i,a,function(c){if(c)return o(c);r(i,a,o)})}}function Qh(t){return function(){return Moe(t)}}function Moe(t){var e=v2[t];if(e!==void 0)return e;switch(t){case"json":e=JM();break;case"raw":e=XM();break;case"text":e=r4();break;case"urlencoded":e=g2();break}return v2[t]=e}});var _2=P((INe,x2)=>{"use strict";x2.exports=Loe;var $oe=Object.prototype.hasOwnProperty;function Loe(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!r&&$oe.call(t,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i)}}),t}});var S2=P((CNe,w2)=>{var Ep=1e3,Tp=Ep*60,Rp=Tp*60,Pp=Rp*24,Uoe=Pp*365.25;w2.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return qoe(t);if(r==="number"&&isNaN(t)===!1)return e.long?Hoe(t):Foe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function qoe(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Uoe;case"days":case"day":case"d":return r*Pp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Rp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Tp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ep;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Foe(t){return t>=Pp?Math.round(t/Pp)+"d":t>=Rp?Math.round(t/Rp)+"h":t>=Tp?Math.round(t/Tp)+"m":t>=Ep?Math.round(t/Ep)+"s":t+"ms"}function Hoe(t){return Yh(t,Pp,"day")||Yh(t,Rp,"hour")||Yh(t,Tp,"minute")||Yh(t,Ep,"second")||t+" ms"}function Yh(t,e,r){if(!(t{ct=k2.exports=VS.debug=VS.default=VS;ct.coerce=Voe;ct.disable=Zoe;ct.enable=Woe;ct.enabled=Goe;ct.humanize=S2();ct.names=[];ct.skips=[];ct.formatters={};var GS;function Boe(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ct.colors[Math.abs(e)%ct.colors.length]}function VS(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(GS||n);r.diff=s,r.prev=GS,r.curr=n,GS=n;for(var i=new Array(arguments.length),a=0;a{qr=T2.exports=KS();qr.log=Qoe;qr.formatArgs=Joe;qr.save=Yoe;qr.load=E2;qr.useColors=Koe;qr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Xoe();qr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Koe(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}qr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Joe(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+qr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Qoe(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Yoe(t){try{t==null?qr.storage.removeItem("debug"):qr.storage.debug=t}catch{}}function E2(){var t;try{t=qr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}qr.enable(E2());function Xoe(){try{return window.localStorage}catch{}}});var O2=P((dr,C2)=>{var P2=require("tty"),Ip=require("util");dr=C2.exports=KS();dr.init=ace;dr.log=nce;dr.formatArgs=rce;dr.save=sce;dr.load=I2;dr.useColors=tce;dr.colors=[6,2,3,4,5,1];dr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var fc=parseInt(process.env.DEBUG_FD,10)||2;fc!==1&&fc!==2&&Ip.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var ece=fc===1?process.stdout:fc===2?process.stderr:ice(fc);function tce(){return"colors"in dr.inspectOpts?!!dr.inspectOpts.colors:P2.isatty(fc)}dr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Ip.inspect(t,this.inspectOpts).split(` +`+e.prev}function Ah(t,e){var r=SS(t),n=[];if(r){n.length=t.length;for(var s=0;s{"use strict";var Rie=gp(),Pie=Na(),zh=function(t,e,r){for(var n=t,s;(s=n.next)!=null;n=s)if(s.key===e)return n.next=s.next,r||(s.next=t.next,t.next=s),s},Iie=function(t,e){if(t){var r=zh(t,e);return r&&r.value}},Cie=function(t,e,r){var n=zh(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}},Oie=function(t,e){return t?!!zh(t,e):!1},jie=function(t,e){if(t)return zh(t,e,!0)};T4.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Pie("Side channel does not contain "+Rie(n))},delete:function(n){var s=e&&e.next,i=jie(e,n);return i&&s&&s===i&&(e=void 0),!!i},get:function(n){return Iie(e,n)},has:function(n){return Oie(e,n)},set:function(n,s){e||(e={next:void 0}),Cie(e,n,s)}};return r}});var PS=P((UAe,P4)=>{"use strict";P4.exports=Object});var C4=P((qAe,I4)=>{"use strict";I4.exports=Error});var j4=P((FAe,O4)=>{"use strict";O4.exports=EvalError});var N4=P((HAe,A4)=>{"use strict";A4.exports=RangeError});var z4=P((BAe,D4)=>{"use strict";D4.exports=ReferenceError});var $4=P((WAe,M4)=>{"use strict";M4.exports=SyntaxError});var U4=P((ZAe,L4)=>{"use strict";L4.exports=URIError});var F4=P((GAe,q4)=>{"use strict";q4.exports=Math.abs});var B4=P((VAe,H4)=>{"use strict";H4.exports=Math.floor});var Z4=P((KAe,W4)=>{"use strict";W4.exports=Math.max});var V4=P((JAe,G4)=>{"use strict";G4.exports=Math.min});var J4=P((QAe,K4)=>{"use strict";K4.exports=Math.pow});var Y4=P((YAe,Q4)=>{"use strict";Q4.exports=Math.round});var e$=P((XAe,X4)=>{"use strict";X4.exports=Number.isNaN||function(e){return e!==e}});var r$=P((eNe,t$)=>{"use strict";var Aie=e$();t$.exports=function(e){return Aie(e)||e===0?e:e<0?-1:1}});var s$=P((tNe,n$)=>{"use strict";n$.exports=Object.getOwnPropertyDescriptor});var IS=P((rNe,i$)=>{"use strict";var Mh=s$();if(Mh)try{Mh([],"length")}catch{Mh=null}i$.exports=Mh});var o$=P((nNe,a$)=>{"use strict";var $h=Object.defineProperty||!1;if($h)try{$h({},"a",{value:1})}catch{$h=!1}a$.exports=$h});var l$=P((sNe,c$)=>{"use strict";c$.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var s=42;e[r]=s;for(var i in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0}});var d$=P((iNe,p$)=>{"use strict";var u$=typeof Symbol<"u"&&Symbol,Nie=l$();p$.exports=function(){return typeof u$!="function"||typeof Symbol!="function"||typeof u$("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Nie()}});var CS=P((aNe,m$)=>{"use strict";m$.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null});var OS=P((oNe,f$)=>{"use strict";var Die=PS();f$.exports=Die.getPrototypeOf||null});var v$=P((cNe,g$)=>{"use strict";var zie="Function.prototype.bind called on incompatible ",Mie=Object.prototype.toString,$ie=Math.max,Lie="[object Function]",h$=function(e,r){for(var n=[],s=0;s{"use strict";var Fie=v$();y$.exports=Function.prototype.bind||Fie});var Lh=P((uNe,b$)=>{"use strict";b$.exports=Function.prototype.call});var jS=P((pNe,x$)=>{"use strict";x$.exports=Function.prototype.apply});var w$=P((dNe,_$)=>{"use strict";_$.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply});var k$=P((mNe,S$)=>{"use strict";var Hie=vp(),Bie=jS(),Wie=Lh(),Zie=w$();S$.exports=Zie||Hie.call(Wie,Bie)});var AS=P((fNe,E$)=>{"use strict";var Gie=vp(),Vie=Na(),Kie=Lh(),Jie=k$();E$.exports=function(e){if(e.length<1||typeof e[0]!="function")throw new Vie("a function is required");return Jie(Gie,Kie,e)}});var O$=P((hNe,C$)=>{"use strict";var Qie=AS(),T$=IS(),P$;try{P$=[].__proto__===Array.prototype}catch(t){if(!t||typeof t!="object"||!("code"in t)||t.code!=="ERR_PROTO_ACCESS")throw t}var NS=!!P$&&T$&&T$(Object.prototype,"__proto__"),I$=Object,R$=I$.getPrototypeOf;C$.exports=NS&&typeof NS.get=="function"?Qie([NS.get]):typeof R$=="function"?function(e){return R$(e==null?e:I$(e))}:!1});var z$=P((gNe,D$)=>{"use strict";var j$=CS(),A$=OS(),N$=O$();D$.exports=j$?function(e){return j$(e)}:A$?function(e){if(!e||typeof e!="object"&&typeof e!="function")throw new TypeError("getProto: not an object");return A$(e)}:N$?function(e){return N$(e)}:null});var $$=P((vNe,M$)=>{"use strict";var Yie=Function.prototype.call,Xie=Object.prototype.hasOwnProperty,eae=vp();M$.exports=eae.call(Yie,Xie)});var Fh=P((yNe,B$)=>{"use strict";var He,tae=PS(),rae=C4(),nae=j4(),sae=N4(),iae=z4(),pc=$4(),uc=Na(),aae=U4(),oae=F4(),cae=B4(),lae=Z4(),uae=V4(),pae=J4(),dae=Y4(),mae=r$(),F$=Function,DS=function(t){try{return F$('"use strict"; return ('+t+").constructor;")()}catch{}},yp=IS(),fae=o$(),zS=function(){throw new uc},hae=yp?(function(){try{return arguments.callee,zS}catch{try{return yp(arguments,"callee").get}catch{return zS}}})():zS,cc=d$()(),pr=z$(),gae=OS(),vae=CS(),H$=jS(),bp=Lh(),lc={},yae=typeof Uint8Array>"u"||!pr?He:pr(Uint8Array),za={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?He:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?He:ArrayBuffer,"%ArrayIteratorPrototype%":cc&&pr?pr([][Symbol.iterator]()):He,"%AsyncFromSyncIteratorPrototype%":He,"%AsyncFunction%":lc,"%AsyncGenerator%":lc,"%AsyncGeneratorFunction%":lc,"%AsyncIteratorPrototype%":lc,"%Atomics%":typeof Atomics>"u"?He:Atomics,"%BigInt%":typeof BigInt>"u"?He:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?He:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?He:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?He:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":rae,"%eval%":eval,"%EvalError%":nae,"%Float16Array%":typeof Float16Array>"u"?He:Float16Array,"%Float32Array%":typeof Float32Array>"u"?He:Float32Array,"%Float64Array%":typeof Float64Array>"u"?He:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?He:FinalizationRegistry,"%Function%":F$,"%GeneratorFunction%":lc,"%Int8Array%":typeof Int8Array>"u"?He:Int8Array,"%Int16Array%":typeof Int16Array>"u"?He:Int16Array,"%Int32Array%":typeof Int32Array>"u"?He:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":cc&&pr?pr(pr([][Symbol.iterator]())):He,"%JSON%":typeof JSON=="object"?JSON:He,"%Map%":typeof Map>"u"?He:Map,"%MapIteratorPrototype%":typeof Map>"u"||!cc||!pr?He:pr(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":tae,"%Object.getOwnPropertyDescriptor%":yp,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?He:Promise,"%Proxy%":typeof Proxy>"u"?He:Proxy,"%RangeError%":sae,"%ReferenceError%":iae,"%Reflect%":typeof Reflect>"u"?He:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?He:Set,"%SetIteratorPrototype%":typeof Set>"u"||!cc||!pr?He:pr(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?He:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":cc&&pr?pr(""[Symbol.iterator]()):He,"%Symbol%":cc?Symbol:He,"%SyntaxError%":pc,"%ThrowTypeError%":hae,"%TypedArray%":yae,"%TypeError%":uc,"%Uint8Array%":typeof Uint8Array>"u"?He:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?He:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?He:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?He:Uint32Array,"%URIError%":aae,"%WeakMap%":typeof WeakMap>"u"?He:WeakMap,"%WeakRef%":typeof WeakRef>"u"?He:WeakRef,"%WeakSet%":typeof WeakSet>"u"?He:WeakSet,"%Function.prototype.call%":bp,"%Function.prototype.apply%":H$,"%Object.defineProperty%":fae,"%Object.getPrototypeOf%":gae,"%Math.abs%":oae,"%Math.floor%":cae,"%Math.max%":lae,"%Math.min%":uae,"%Math.pow%":pae,"%Math.round%":dae,"%Math.sign%":mae,"%Reflect.getPrototypeOf%":vae};if(pr)try{null.error}catch(t){L$=pr(pr(t)),za["%Error.prototype%"]=L$}var L$,bae=function t(e){var r;if(e==="%AsyncFunction%")r=DS("async function () {}");else if(e==="%GeneratorFunction%")r=DS("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=DS("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var s=t("%AsyncGenerator%");s&&pr&&(r=pr(s.prototype))}return za[e]=r,r},U$={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},xp=vp(),Uh=$$(),xae=xp.call(bp,Array.prototype.concat),_ae=xp.call(H$,Array.prototype.splice),q$=xp.call(bp,String.prototype.replace),qh=xp.call(bp,String.prototype.slice),wae=xp.call(bp,RegExp.prototype.exec),Sae=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,kae=/\\(\\)?/g,Eae=function(e){var r=qh(e,0,1),n=qh(e,-1);if(r==="%"&&n!=="%")throw new pc("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new pc("invalid intrinsic syntax, expected opening `%`");var s=[];return q$(e,Sae,function(i,a,o,c){s[s.length]=o?q$(c,kae,"$1"):a||i}),s},Tae=function(e,r){var n=e,s;if(Uh(U$,n)&&(s=U$[n],n="%"+s[0]+"%"),Uh(za,n)){var i=za[n];if(i===lc&&(i=bae(n)),typeof i>"u"&&!r)throw new uc("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:s,name:n,value:i}}throw new pc("intrinsic "+e+" does not exist!")};B$.exports=function(e,r){if(typeof e!="string"||e.length===0)throw new uc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new uc('"allowMissing" argument must be a boolean');if(wae(/^%?[^%]*%?$/,e)===null)throw new pc("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=Eae(e),s=n.length>0?n[0]:"",i=Tae("%"+s+"%",r),a=i.name,o=i.value,c=!1,l=i.alias;l&&(s=l[0],_ae(n,xae([0,1],l)));for(var u=1,p=!0;u=n.length){var v=yp(o,d);p=!!v,p&&"get"in v&&!("originalValue"in v.get)?o=v.get:o=o[d]}else p=Uh(o,d),o=o[d];p&&!c&&(za[a]=o)}}return o}});var MS=P((bNe,G$)=>{"use strict";var W$=Fh(),Z$=AS(),Rae=Z$([W$("%String.prototype.indexOf%")]);G$.exports=function(e,r){var n=W$(e,!!r);return typeof n=="function"&&Rae(e,".prototype.")>-1?Z$([n]):n}});var $S=P((xNe,K$)=>{"use strict";var Pae=Fh(),_p=MS(),Iae=gp(),Cae=Na(),V$=Pae("%Map%",!0),Oae=_p("Map.prototype.get",!0),jae=_p("Map.prototype.set",!0),Aae=_p("Map.prototype.has",!0),Nae=_p("Map.prototype.delete",!0),Dae=_p("Map.prototype.size",!0);K$.exports=!!V$&&function(){var e,r={assert:function(n){if(!r.has(n))throw new Cae("Side channel does not contain "+Iae(n))},delete:function(n){if(e){var s=Nae(e,n);return Dae(e)===0&&(e=void 0),s}return!1},get:function(n){if(e)return Oae(e,n)},has:function(n){return e?Aae(e,n):!1},set:function(n,s){e||(e=new V$),jae(e,n,s)}};return r}});var Q$=P((_Ne,J$)=>{"use strict";var zae=Fh(),Bh=MS(),Mae=gp(),Hh=$S(),$ae=Na(),dc=zae("%WeakMap%",!0),Lae=Bh("WeakMap.prototype.get",!0),Uae=Bh("WeakMap.prototype.set",!0),qae=Bh("WeakMap.prototype.has",!0),Fae=Bh("WeakMap.prototype.delete",!0);J$.exports=dc?function(){var e,r,n={assert:function(s){if(!n.has(s))throw new $ae("Side channel does not contain "+Mae(s))},delete:function(s){if(dc&&s&&(typeof s=="object"||typeof s=="function")){if(e)return Fae(e,s)}else if(Hh&&r)return r.delete(s);return!1},get:function(s){return dc&&s&&(typeof s=="object"||typeof s=="function")&&e?Lae(e,s):r&&r.get(s)},has:function(s){return dc&&s&&(typeof s=="object"||typeof s=="function")&&e?qae(e,s):!!r&&r.has(s)},set:function(s,i){dc&&s&&(typeof s=="object"||typeof s=="function")?(e||(e=new dc),Uae(e,s,i)):Hh&&(r||(r=Hh()),r.set(s,i))}};return n}:Hh});var LS=P((wNe,Y$)=>{"use strict";var Hae=Na(),Bae=gp(),Wae=R4(),Zae=$S(),Gae=Q$(),Vae=Gae||Zae||Wae;Y$.exports=function(){var e,r={assert:function(n){if(!r.has(n))throw new Hae("Side channel does not contain "+Bae(n))},delete:function(n){return!!e&&e.delete(n)},get:function(n){return e&&e.get(n)},has:function(n){return!!e&&e.has(n)},set:function(n,s){e||(e=Vae()),e.set(n,s)}};return r}});var Wh=P((SNe,X$)=>{"use strict";var Kae=String.prototype.replace,Jae=/%20/g,US={RFC1738:"RFC1738",RFC3986:"RFC3986"};X$.exports={default:US.RFC3986,formatters:{RFC1738:function(t){return Kae.call(t,Jae,"+")},RFC3986:function(t){return String(t)}},RFC1738:US.RFC1738,RFC3986:US.RFC3986}});var BS=P((kNe,e2)=>{"use strict";var Qae=Wh(),Yae=LS(),qS=Object.prototype.hasOwnProperty,Ma=Array.isArray,Zh=Yae(),mc=function(e,r){return Zh.set(e,r),e},$a=function(e){return Zh.has(e)},wp=function(e){return Zh.get(e)},HS=function(e,r){Zh.set(e,r)},$s=(function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t})(),Xae=function(e){for(;e.length>1;){var r=e.pop(),n=r.obj[r.prop];if(Ma(n)){for(var s=[],i=0;in.arrayLimit)return mc(Sp(e.concat(r),n),s);e[s]=r}else if(e&&typeof e=="object")if($a(e)){var i=wp(e)+1;e[i]=r,HS(e,i)}else(n&&(n.plainObjects||n.allowPrototypes)||!qS.call(Object.prototype,r))&&(e[r]=!0);else return[e,r];return e}if(!e||typeof e!="object"){if($a(r)){for(var a=Object.keys(r),o=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},c=0;cn.arrayLimit?mc(Sp(u,n),u.length-1):u}var p=e;return Ma(e)&&!Ma(r)&&(p=Sp(e,n)),Ma(e)&&Ma(r)?(r.forEach(function(d,m){if(qS.call(e,m)){var f=e[m];f&&typeof f=="object"&&d&&typeof d=="object"?e[m]=t(f,d,n):e[e.length]=d}else e[m]=d}),e):Object.keys(r).reduce(function(d,m){var f=r[m];if(qS.call(d,m)?d[m]=t(d[m],f,n):d[m]=f,$a(r)&&!$a(d)&&mc(d,wp(r)),$a(d)){var v=parseInt(m,10);String(v)===m&&v>=0&&v>wp(d)&&HS(d,v)}return d},p)},toe=function(e,r){return Object.keys(r).reduce(function(n,s){return n[s]=r[s],n},e)},roe=function(t,e,r){var n=t.replace(/\+/g," ");if(r==="iso-8859-1")return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch{return n}},FS=1024,noe=function(e,r,n,s,i){if(e.length===0)return e;var a=e;if(typeof e=="symbol"?a=Symbol.prototype.toString.call(e):typeof e!="string"&&(a=String(e)),n==="iso-8859-1")return escape(a).replace(/%u[0-9a-f]{4}/gi,function(m){return"%26%23"+parseInt(m.slice(2),16)+"%3B"});for(var o="",c=0;c=FS?a.slice(c,c+FS):a,u=[],p=0;p=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||i===Qae.RFC1738&&(d===40||d===41)){u[u.length]=l.charAt(p);continue}if(d<128){u[u.length]=$s[d];continue}if(d<2048){u[u.length]=$s[192|d>>6]+$s[128|d&63];continue}if(d<55296||d>=57344){u[u.length]=$s[224|d>>12]+$s[128|d>>6&63]+$s[128|d&63];continue}p+=1,d=65536+((d&1023)<<10|l.charCodeAt(p)&1023),u[u.length]=$s[240|d>>18]+$s[128|d>>12&63]+$s[128|d>>6&63]+$s[128|d&63]}o+=u.join("")}return o},soe=function(e){for(var r=[{obj:{o:e},prop:"o"}],n=[],s=0;sn?mc(Sp(a,{plainObjects:s}),a.length-1):a},coe=function(e,r){if(Ma(e)){for(var n=[],s=0;s{"use strict";var r2=LS(),Gh=BS(),kp=Wh(),loe=Object.prototype.hasOwnProperty,n2={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,r){return e+"["+r+"]"},repeat:function(e){return e}},Ls=Array.isArray,uoe=Array.prototype.push,s2=function(t,e){uoe.apply(t,Ls(e)?e:[e])},poe=Date.prototype.toISOString,t2=kp.default,nr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Gh.encode,encodeValuesOnly:!1,filter:void 0,format:t2,formatter:kp.formatters[t2],indices:!1,serializeDate:function(e){return poe.call(e)},skipNulls:!1,strictNullHandling:!1},doe=function(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="symbol"||typeof e=="bigint"},WS={},moe=function t(e,r,n,s,i,a,o,c,l,u,p,d,m,f,v,g,h,y){for(var b=e,x=y,w=0,S=!1;(x=x.get(WS))!==void 0&&!S;){var k=x.get(e);if(w+=1,typeof k<"u"){if(k===w)throw new RangeError("Cyclic object value");S=!0}typeof x.get(WS)>"u"&&(w=0)}if(typeof u=="function"?b=u(r,b):b instanceof Date?b=m(b):n==="comma"&&Ls(b)&&(b=Gh.maybeMap(b,function(K){return K instanceof Date?m(K):K})),b===null){if(a)return l&&!g?l(r,nr.encoder,h,"key",f):r;b=""}if(doe(b)||Gh.isBuffer(b)){if(l){var E=g?r:l(r,nr.encoder,h,"key",f);return[v(E)+"="+v(l(b,nr.encoder,h,"value",f))]}return[v(r)+"="+v(String(b))]}var R=[];if(typeof b>"u")return R;var O;if(n==="comma"&&Ls(b))g&&l&&(b=Gh.maybeMap(b,l)),O=[{value:b.length>0?b.join(",")||null:void 0}];else if(Ls(u))O=u;else{var C=Object.keys(b);O=p?C.sort(p):C}var $=c?String(r).replace(/\./g,"%2E"):String(r),q=s&&Ls(b)&&b.length===1?$+"[]":$;if(i&&Ls(b)&&b.length===0)return q+"[]";for(var B=0;B"u"?e.encodeDotInKeys===!0?!0:nr.allowDots:!!e.allowDots;return{addQueryPrefix:typeof e.addQueryPrefix=="boolean"?e.addQueryPrefix:nr.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:nr.allowEmptyArrays,arrayFormat:a,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:nr.charsetSentinel,commaRoundTrip:!!e.commaRoundTrip,delimiter:typeof e.delimiter>"u"?nr.delimiter:e.delimiter,encode:typeof e.encode=="boolean"?e.encode:nr.encode,encodeDotInKeys:typeof e.encodeDotInKeys=="boolean"?e.encodeDotInKeys:nr.encodeDotInKeys,encoder:typeof e.encoder=="function"?e.encoder:nr.encoder,encodeValuesOnly:typeof e.encodeValuesOnly=="boolean"?e.encodeValuesOnly:nr.encodeValuesOnly,filter:i,format:n,formatter:s,serializeDate:typeof e.serializeDate=="function"?e.serializeDate:nr.serializeDate,skipNulls:typeof e.skipNulls=="boolean"?e.skipNulls:nr.skipNulls,sort:typeof e.sort=="function"?e.sort:null,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:nr.strictNullHandling}};i2.exports=function(t,e){var r=t,n=foe(e),s,i;typeof n.filter=="function"?(i=n.filter,r=i("",r)):Ls(n.filter)&&(i=n.filter,s=i);var a=[];if(typeof r!="object"||r===null)return"";var o=n2[n.arrayFormat],c=o==="comma"&&n.commaRoundTrip;s||(s=Object.keys(r)),n.sort&&s.sort(n.sort);for(var l=r2(),u=0;u0?f+m:""}});var l2=P((TNe,c2)=>{"use strict";var Us=BS(),Vh=Object.prototype.hasOwnProperty,ZS=Array.isArray,Wt={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:Us.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},hoe=function(t){return t.replace(/&#(\d+);/g,function(e,r){return String.fromCharCode(parseInt(r,10))})},o2=function(t,e,r){if(t&&typeof t=="string"&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(e.arrayLimit===1?"":"s")+" allowed in an array.");return t},goe="utf8=%26%2310003%3B",voe="utf8=%E2%9C%93",yoe=function(e,r){var n={__proto__:null},s=r.ignoreQueryPrefix?e.replace(/^\?/,""):e;s=s.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var i=r.parameterLimit===1/0?void 0:r.parameterLimit,a=s.split(r.delimiter,r.throwOnLimitExceeded?i+1:i);if(r.throwOnLimitExceeded&&a.length>i)throw new RangeError("Parameter limit exceeded. Only "+i+" parameter"+(i===1?"":"s")+" allowed.");var o=-1,c,l=r.charset;if(r.charsetSentinel)for(c=0;c-1&&(f=ZS(f)?[f]:f),r.comma&&ZS(f)&&f.length>r.arrayLimit){if(r.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+r.arrayLimit+" element"+(r.arrayLimit===1?"":"s")+" allowed in an array.");f=Us.combine([],f,r.arrayLimit,r.plainObjects)}if(m!==null){var v=Vh.call(n,m);v&&r.duplicates==="combine"?n[m]=Us.combine(n[m],f,r.arrayLimit,r.plainObjects):(!v||r.duplicates==="last")&&(n[m]=f)}}return n},boe=function(t,e,r,n){var s=0;if(t.length>0&&t[t.length-1]==="[]"){var i=t.slice(0,-1).join("");s=Array.isArray(e)&&e[i]?e[i].length:0}for(var a=n?e:o2(e,r,s),o=t.length-1;o>=0;--o){var c,l=t[o];if(l==="[]"&&r.parseArrays)Us.isOverflow(a)?c=a:c=r.allowEmptyArrays&&(a===""||r.strictNullHandling&&a===null)?[]:Us.combine([],a,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var u=l.charAt(0)==="["&&l.charAt(l.length-1)==="]"?l.slice(1,-1):l,p=r.decodeDotInKeys?u.replace(/%2E/g,"."):u,d=parseInt(p,10),m=!isNaN(d)&&l!==p&&String(d)===p&&d>=0&&r.parseArrays;if(!r.parseArrays&&p==="")c={0:a};else if(m&&d"u"?Wt.charset:e.charset,n=typeof e.duplicates>"u"?Wt.duplicates:e.duplicates;if(n!=="combine"&&n!=="first"&&n!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var s=typeof e.allowDots>"u"?e.decodeDotInKeys===!0?!0:Wt.allowDots:!!e.allowDots;return{allowDots:s,allowEmptyArrays:typeof e.allowEmptyArrays=="boolean"?!!e.allowEmptyArrays:Wt.allowEmptyArrays,allowPrototypes:typeof e.allowPrototypes=="boolean"?e.allowPrototypes:Wt.allowPrototypes,allowSparse:typeof e.allowSparse=="boolean"?e.allowSparse:Wt.allowSparse,arrayLimit:typeof e.arrayLimit=="number"?e.arrayLimit:Wt.arrayLimit,charset:r,charsetSentinel:typeof e.charsetSentinel=="boolean"?e.charsetSentinel:Wt.charsetSentinel,comma:typeof e.comma=="boolean"?e.comma:Wt.comma,decodeDotInKeys:typeof e.decodeDotInKeys=="boolean"?e.decodeDotInKeys:Wt.decodeDotInKeys,decoder:typeof e.decoder=="function"?e.decoder:Wt.decoder,delimiter:typeof e.delimiter=="string"||Us.isRegExp(e.delimiter)?e.delimiter:Wt.delimiter,depth:typeof e.depth=="number"||e.depth===!1?+e.depth:Wt.depth,duplicates:n,ignoreQueryPrefix:e.ignoreQueryPrefix===!0,interpretNumericEntities:typeof e.interpretNumericEntities=="boolean"?e.interpretNumericEntities:Wt.interpretNumericEntities,parameterLimit:typeof e.parameterLimit=="number"?e.parameterLimit:Wt.parameterLimit,parseArrays:e.parseArrays!==!1,plainObjects:typeof e.plainObjects=="boolean"?e.plainObjects:Wt.plainObjects,strictDepth:typeof e.strictDepth=="boolean"?!!e.strictDepth:Wt.strictDepth,strictNullHandling:typeof e.strictNullHandling=="boolean"?e.strictNullHandling:Wt.strictNullHandling,throwOnLimitExceeded:typeof e.throwOnLimitExceeded=="boolean"?e.throwOnLimitExceeded:!1}};c2.exports=function(t,e){var r=woe(e);if(t===""||t===null||typeof t>"u")return r.plainObjects?{__proto__:null}:{};for(var n=typeof t=="string"?yoe(t,r):t,s=r.plainObjects?{__proto__:null}:{},i=Object.keys(n),a=0;a{"use strict";var Soe=a2(),koe=l2(),Eoe=Wh();u2.exports={formats:Eoe,parse:koe,stringify:Soe}});var g2=P((PNe,h2)=>{"use strict";var Toe=Qo(),Roe=Ju(),Jh=Pa(),ms=sp()("body-parser:urlencoded"),Poe=Ns()("body-parser"),Ioe=lp(),d2=ac();h2.exports=Coe;var p2=Object.create(null);function Coe(t){var e=t||{};e.extended===void 0&&Poe("undefined extended: provide extended option");var r=e.extended!==!1,n=e.inflate!==!1,s=typeof e.limit!="number"?Toe.parse(e.limit||"100kb"):e.limit,i=e.type||"application/x-www-form-urlencoded",a=e.verify||!1;if(a!==!1&&typeof a!="function")throw new TypeError("option verify must be function");var o=r?Ooe(e):Aoe(e),c=typeof i!="function"?Noe(i):i;function l(u){return u.length?o(u):{}}return function(p,d,m){if(p._body){ms("body already parsed"),m();return}if(p.body=p.body||{},!d2.hasBody(p)){ms("skip empty body"),m();return}if(ms("content-type %j",p.headers["content-type"]),!c(p)){ms("skip parsing"),m();return}var f=joe(p)||"utf-8";if(f!=="utf-8"){ms("invalid charset"),m(Jh(415,'unsupported charset "'+f.toUpperCase()+'"',{charset:f,type:"charset.unsupported"}));return}Ioe(p,d,m,l,ms,{debug:ms,encoding:f,inflate:n,limit:s,verify:a})}}function Ooe(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=t.depth!==void 0?t.depth:32,n=f2("qs");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");if(isNaN(r)||r<0)throw new TypeError("option depth must be a zero or a positive number");return isFinite(e)&&(e=e|0),function(i){var a=m2(i,e);if(a===void 0)throw ms("too many parameters"),Jh(413,"too many parameters",{type:"parameters.too.many"});var o=Math.max(100,a);ms("parse extended urlencoding");try{return n(i,{allowPrototypes:!0,arrayLimit:o,depth:r,strictDepth:!0,parameterLimit:e})}catch(c){throw c instanceof RangeError?Jh(400,"The input exceeded the depth",{type:"querystring.parse.rangeError"}):c}}}function joe(t){try{return(Roe.parse(t).parameters.charset||"").toLowerCase()}catch{return}}function m2(t,e){for(var r=0,n=0;(n=t.indexOf("&",n))!==-1;)if(r++,n++,r===e)return;return r}function f2(t){var e=p2[t];if(e!==void 0)return e.parse;switch(t){case"qs":e=Kh();break;case"querystring":e=require("querystring");break}return p2[t]=e,e.parse}function Aoe(t){var e=t.parameterLimit!==void 0?t.parameterLimit:1e3,r=f2("querystring");if(isNaN(e)||e<1)throw new TypeError("option parameterLimit must be a positive number");return isFinite(e)&&(e=e|0),function(s){var i=m2(s,e);if(i===void 0)throw ms("too many parameters"),Jh(413,"too many parameters",{type:"parameters.too.many"});return ms("parse urlencoding"),r(s,void 0,void 0,{maxKeys:e})}}function Noe(t){return function(r){return!!d2(r,t)}}});var b2=P(($i,y2)=>{"use strict";var Doe=Ns()("body-parser"),v2=Object.create(null);$i=y2.exports=Doe.function(zoe,"bodyParser: use individual json/urlencoded middlewares");Object.defineProperty($i,"json",{configurable:!0,enumerable:!0,get:Qh("json")});Object.defineProperty($i,"raw",{configurable:!0,enumerable:!0,get:Qh("raw")});Object.defineProperty($i,"text",{configurable:!0,enumerable:!0,get:Qh("text")});Object.defineProperty($i,"urlencoded",{configurable:!0,enumerable:!0,get:Qh("urlencoded")});function zoe(t){var e=Object.create(t||null,{type:{configurable:!0,enumerable:!0,value:void 0,writable:!0}}),r=$i.urlencoded(e),n=$i.json(e);return function(i,a,o){n(i,a,function(c){if(c)return o(c);r(i,a,o)})}}function Qh(t){return function(){return Moe(t)}}function Moe(t){var e=v2[t];if(e!==void 0)return e;switch(t){case"json":e=JM();break;case"raw":e=XM();break;case"text":e=r4();break;case"urlencoded":e=g2();break}return v2[t]=e}});var _2=P((INe,x2)=>{"use strict";x2.exports=Loe;var $oe=Object.prototype.hasOwnProperty;function Loe(t,e,r){if(!t)throw new TypeError("argument dest is required");if(!e)throw new TypeError("argument src is required");return r===void 0&&(r=!0),Object.getOwnPropertyNames(e).forEach(function(s){if(!(!r&&$oe.call(t,s))){var i=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,i)}}),t}});var S2=P((CNe,w2)=>{var Ep=1e3,Tp=Ep*60,Rp=Tp*60,Pp=Rp*24,Uoe=Pp*365.25;w2.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return qoe(t);if(r==="number"&&isNaN(t)===!1)return e.long?Hoe(t):Foe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function qoe(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Uoe;case"days":case"day":case"d":return r*Pp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Rp;case"minutes":case"minute":case"mins":case"min":case"m":return r*Tp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ep;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Foe(t){return t>=Pp?Math.round(t/Pp)+"d":t>=Rp?Math.round(t/Rp)+"h":t>=Tp?Math.round(t/Tp)+"m":t>=Ep?Math.round(t/Ep)+"s":t+"ms"}function Hoe(t){return Yh(t,Pp,"day")||Yh(t,Rp,"hour")||Yh(t,Tp,"minute")||Yh(t,Ep,"second")||t+" ms"}function Yh(t,e,r){if(!(t{ct=k2.exports=VS.debug=VS.default=VS;ct.coerce=Voe;ct.disable=Zoe;ct.enable=Woe;ct.enabled=Goe;ct.humanize=S2();ct.names=[];ct.skips=[];ct.formatters={};var GS;function Boe(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ct.colors[Math.abs(e)%ct.colors.length]}function VS(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(GS||n);r.diff=s,r.prev=GS,r.curr=n,GS=n;for(var i=new Array(arguments.length),a=0;a{qr=T2.exports=KS();qr.log=Qoe;qr.formatArgs=Joe;qr.save=Yoe;qr.load=E2;qr.useColors=Koe;qr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:Xoe();qr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function Koe(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}qr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function Joe(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+qr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function Qoe(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function Yoe(t){try{t==null?qr.storage.removeItem("debug"):qr.storage.debug=t}catch{}}function E2(){var t;try{t=qr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}qr.enable(E2());function Xoe(){try{return window.localStorage}catch{}}});var O2=P((dr,C2)=>{var P2=require("tty"),Ip=require("util");dr=C2.exports=KS();dr.init=ace;dr.log=nce;dr.formatArgs=rce;dr.save=sce;dr.load=I2;dr.useColors=tce;dr.colors=[6,2,3,4,5,1];dr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var fc=parseInt(process.env.DEBUG_FD,10)||2;fc!==1&&fc!==2&&Ip.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var ece=fc===1?process.stdout:fc===2?process.stderr:ice(fc);function tce(){return"colors"in dr.inspectOpts?!!dr.inspectOpts.colors:P2.isatty(fc)}dr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Ip.inspect(t,this.inspectOpts).split(` `).map(function(e){return e.trim()}).join(" ")};dr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Ip.inspect(t,this.inspectOpts)};function rce(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` `+s),t.push("\x1B[3"+n+"m+"+dr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function nce(){return ece.write(Ip.format.apply(Ip,arguments)+` @@ -61,11 +61,11 @@ return fn.apply(this, arguments) `).map(function(e){return e.trim()}).join(" ")};mr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,zp.inspect(t,this.inspectOpts)};function Gce(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` `+s),t.push("\x1B[3"+n+"m+"+mr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function Vce(){return Wce.write(zp.format.apply(zp,arguments)+` -`)}function Kce(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function Y2(){return process.env.DEBUG}function Jce(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new Q2.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function Qce(t){t.inspectOpts={};for(var e=Object.keys(mr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?rk.exports=J2():rk.exports=eL()});var Mp=P(($Ne,nL)=>{"use strict";nL.exports=Yce;function tL(t,e,r){for(var n=0;n0&&Array.isArray(s)?tL(s,e,r-1):e.push(s)}return e}function rL(t,e){for(var r=0;r{aL.exports=iL;var sL=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function iL(t,e,r){r=r||{},e=e||[];var n=r.strict,s=r.end!==!1,i=r.sensitive?"":"i",a=r.lookahead!==!1,o=0,c=e.length,l=0,u=0,p=0,d="",m;if(t instanceof RegExp){for(;m=sL.exec(t.source);)m[0][0]!=="\\"&&e.push({name:m[1]||u++,optional:!1,offset:m.index});return t}if(Array.isArray(t))return t=t.map(function(f){return iL(f,e,r).source}),new RegExp(t.join("|"),i);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(f,v,g,h,y,b,x,w){if(f[0]==="\\")return d+=f,p+=2,f;if(f===".")return d+="\\.",o+=1,p+=1,"\\.";if(v||g?d="":d+=t.slice(p,w),p=w+f.length,f==="*")return d="",o+=3,"(.*)";if(f==="/(")return d+="/",o+=2,"/(?:";v=v||"",g=g?"\\.":"",x=x||"",y=y?y.replace(/\\.|\*/,function(k){return k==="*"?"(.*)":k}):d?"((?:(?!/|"+d+").)+?)":"([^/"+g+"]+?)",e.push({name:h,optional:!!x,offset:w+o});var S="(?:"+g+v+y+(b?"((?:[/"+g+"].+?)?)":"")+")"+x;return d="",o+=S.length-f.length,S});m=sL.exec(t);)m[0][0]!=="\\"&&((c+l===e.length||e[c+l].offset>m.index)&&e.splice(c+l,0,{name:u++,optional:!1,offset:m.index}),l++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",s?t+="$":t[t.length-1]!=="/"&&(t+=a?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,i)}});var nk=P((UNe,lL)=>{"use strict";var Xce=oL(),ele=vc()("express:router:layer"),tle=Object.prototype.hasOwnProperty;lL.exports=yc;function yc(t,e,r){if(!(this instanceof yc))return new yc(t,e,r);ele("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=Xce(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}yc.prototype.handle_error=function(e,r,n,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,r,n,s)}catch(a){s(a)}};yc.prototype.handle_request=function(e,r,n){var s=this.handle;if(s.length>3)return n();try{s(e,r,n)}catch(i){n(i)}};yc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:cL(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,s=this.params,i=1;i{"use strict";var uL=require("http");pL.exports=rle()||nle();function rle(){return uL.METHODS&&uL.METHODS.map(function(e){return e.toLowerCase()})}function nle(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var sk=P((FNe,vL)=>{"use strict";var dL=vc()("express:router:route"),mL=Mp(),fL=nk(),sle=tg(),hL=Array.prototype.slice,gL=Object.prototype.toString;vL.exports=bc;function bc(t){this.path=t,this.stack=[],dL("new %o",t),this.methods={}}bc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};bc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,l);var u=i[s++];if(!u)return n(l);u.method&&u.method!==o?c(l):l?u.handle_error(l,e,r,c):u.handle_request(e,r,c),a=0}};bc.prototype.all=function(){for(var e=mL(hL.call(arguments)),r=0;r{yL=bL.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var ak=P((HNe,SL)=>{"use strict";var ile=sk(),_L=nk(),ale=tg(),ik=$p(),rg=vc()("express:router"),xL=Ns()("express"),ole=Mp(),cle=hc(),lle=Qu(),ule=/^\[object (\S+)\]$/,wL=Array.prototype.slice,ple=Object.prototype.toString,$a=SL.exports=function(t){var e=t||{};function r(n,s,i){r.handle(n,s,i)}return lle(r,$a),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};$a.param=function(e,r){if(typeof e=="function"){xL("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,s=n.length,i;e[0]===":"&&(xL("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var a=0;a=d.length){setImmediate(v,b);return}if(++l>100)return setImmediate(g,y);var x=mle(e);if(x==null)return v(b);for(var w,S,k;S!==!0&&i=o.length)return i();if(u=0,p=o[c++],l=p.name,d=n.params[l],m=a[l],f=r[l],d===void 0||!m)return v();if(f&&(f.match===d||f.error&&f.error!=="route"))return n.params[l]=f.value,v(f.error);r[l]=f={error:null,match:d,value:d},g()}function g(h){var y=m[u++];if(f.value=n.params[p.name],h){f.error=h,v(h);return}if(!y)return v();try{y(n,s,g,d,p.name)}catch(b){g(b)}}v()};$a.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=ole(wL.call(arguments,r));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var a=0;a");var o=new _L(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};$a.route=function(e){var r=new ile(e),n=new _L(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};ale.concat("all").forEach(function(t){$a[t]=function(e){var r=this.route(e);return r[t].apply(r,wL.call(arguments,1)),this}});function dle(t,e){for(var r=0;r=0;n--)t[n+s]=t[n],n{"use strict";var kL=Qu();EL.init=function(t){return function(r,n,s){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=s,kL(r,t.request),kL(n,t.response),n.locals=n.locals||Object.create(null),s()}}});var ok=P((WNe,RL)=>{"use strict";var _le=$p(),wle=hc(),Sle=Kh();RL.exports=function(e){var r=_le({},e),n=Sle.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(i,a,o){if(!i.query){var c=wle(i).query;i.query=n(c,r)}o()}}});var jL=P((ZNe,OL)=>{"use strict";var ng=vc()("express:view"),Lp=require("path"),kle=require("fs"),Ele=Lp.dirname,CL=Lp.basename,Tle=Lp.extname,PL=Lp.join,Rle=Lp.resolve;OL.exports=sg;function sg(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=Tle(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);ng('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=i}this.engine=r.engines[this.ext],this.path=this.lookup(n)}sg.prototype.lookup=function(e){var r,n=[].concat(this.root);ng('lookup "%s"',e);for(var s=0;s{var ig=require("buffer"),qs=ig.Buffer;function AL(t,e){for(var r in t)e[r]=t[r]}qs.from&&qs.alloc&&qs.allocUnsafe&&qs.allocUnsafeSlow?NL.exports=ig:(AL(ig,ck),ck.Buffer=La);function La(t,e,r){return qs(t,e,r)}La.prototype=Object.create(qs.prototype);AL(qs,La);La.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return qs(t,e,r)};La.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=qs(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};La.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return qs(t)};La.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ig.SlowBuffer(t)}});var uk=P((GNe,lk)=>{"use strict";lk.exports=$le;lk.exports.parse=Fle;var DL=require("path").basename,Ple=ag().Buffer,Ile=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Cle=/%[0-9A-Fa-f]{2}/,Ole=/%([0-9A-Fa-f]{2})/g,ML=/[^\x20-\x7e\xa0-\xff]/g,jle=/\\([\u0000-\u007f])/g,Ale=/([\\"])/g,zL=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,Nle=/^[\x20-\x7e\x80-\xff]+$/,Dle=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,zle=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,Mle=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function $le(t,e){var r=e||{},n=r.type||"attachment",s=Lle(t,r.fallback);return Ule(new LL(n,s))}function Lle(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&ML.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=DL(t),s=Nle.test(n),i=typeof e!="string"?e&&$L(n):DL(e),a=typeof i=="string"&&i!==n;return(a||!s||Cle.test(n))&&(r["filename*"]=n),(s||a)&&(r.filename=a?i:n),r}}function Ule(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!Dle.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a{var Up=1e3,qp=Up*60,Fp=qp*60,Hp=Fp*24,Gle=Hp*365.25;UL.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Vle(t);if(r==="number"&&isNaN(t)===!1)return e.long?Jle(t):Kle(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Vle(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Gle;case"days":case"day":case"d":return r*Hp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Fp;case"minutes":case"minute":case"mins":case"min":case"m":return r*qp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Up;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kle(t){return t>=Hp?Math.round(t/Hp)+"d":t>=Fp?Math.round(t/Fp)+"h":t>=qp?Math.round(t/qp)+"m":t>=Up?Math.round(t/Up)+"s":t+"ms"}function Jle(t){return og(t,Hp,"day")||og(t,Fp,"hour")||og(t,qp,"minute")||og(t,Up,"second")||t+" ms"}function og(t,e,r){if(!(t{ut=FL.exports=dk.debug=dk.default=dk;ut.coerce=tue;ut.disable=Xle;ut.enable=Yle;ut.enabled=eue;ut.humanize=qL();ut.names=[];ut.skips=[];ut.formatters={};var pk;function Qle(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ut.colors[Math.abs(e)%ut.colors.length]}function dk(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(pk||n);r.diff=s,r.prev=pk,r.curr=n,pk=n;for(var i=new Array(arguments.length),a=0;a{Hr=BL.exports=mk();Hr.log=sue;Hr.formatArgs=nue;Hr.save=iue;Hr.load=HL;Hr.useColors=rue;Hr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:aue();Hr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function rue(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Hr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function nue(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Hr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function sue(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function iue(t){try{t==null?Hr.storage.removeItem("debug"):Hr.storage.debug=t}catch{}}function HL(){var t;try{t=Hr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Hr.enable(HL());function aue(){try{return window.localStorage}catch{}}});var KL=P((fr,VL)=>{var ZL=require("tty"),Bp=require("util");fr=VL.exports=mk();fr.init=mue;fr.log=uue;fr.formatArgs=lue;fr.save=pue;fr.load=GL;fr.useColors=cue;fr.colors=[6,2,3,4,5,1];fr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var xc=parseInt(process.env.DEBUG_FD,10)||2;xc!==1&&xc!==2&&Bp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var oue=xc===1?process.stdout:xc===2?process.stderr:due(xc);function cue(){return"colors"in fr.inspectOpts?!!fr.inspectOpts.colors:ZL.isatty(xc)}fr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Bp.inspect(t,this.inspectOpts).split(` +`)}function Kce(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function Y2(){return process.env.DEBUG}function Jce(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new Q2.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function Qce(t){t.inspectOpts={};for(var e=Object.keys(mr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?rk.exports=J2():rk.exports=eL()});var Mp=P(($Ne,nL)=>{"use strict";nL.exports=Yce;function tL(t,e,r){for(var n=0;n0&&Array.isArray(s)?tL(s,e,r-1):e.push(s)}return e}function rL(t,e){for(var r=0;r{aL.exports=iL;var sL=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function iL(t,e,r){r=r||{},e=e||[];var n=r.strict,s=r.end!==!1,i=r.sensitive?"":"i",a=r.lookahead!==!1,o=0,c=e.length,l=0,u=0,p=0,d="",m;if(t instanceof RegExp){for(;m=sL.exec(t.source);)m[0][0]!=="\\"&&e.push({name:m[1]||u++,optional:!1,offset:m.index});return t}if(Array.isArray(t))return t=t.map(function(f){return iL(f,e,r).source}),new RegExp(t.join("|"),i);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(f,v,g,h,y,b,x,w){if(f[0]==="\\")return d+=f,p+=2,f;if(f===".")return d+="\\.",o+=1,p+=1,"\\.";if(v||g?d="":d+=t.slice(p,w),p=w+f.length,f==="*")return d="",o+=3,"(.*)";if(f==="/(")return d+="/",o+=2,"/(?:";v=v||"",g=g?"\\.":"",x=x||"",y=y?y.replace(/\\.|\*/,function(k){return k==="*"?"(.*)":k}):d?"((?:(?!/|"+d+").)+?)":"([^/"+g+"]+?)",e.push({name:h,optional:!!x,offset:w+o});var S="(?:"+g+v+y+(b?"((?:[/"+g+"].+?)?)":"")+")"+x;return d="",o+=S.length-f.length,S});m=sL.exec(t);)m[0][0]!=="\\"&&((c+l===e.length||e[c+l].offset>m.index)&&e.splice(c+l,0,{name:u++,optional:!1,offset:m.index}),l++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",s?t+="$":t[t.length-1]!=="/"&&(t+=a?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,i)}});var nk=P((UNe,lL)=>{"use strict";var Xce=oL(),ele=vc()("express:router:layer"),tle=Object.prototype.hasOwnProperty;lL.exports=yc;function yc(t,e,r){if(!(this instanceof yc))return new yc(t,e,r);ele("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"",this.params=void 0,this.path=void 0,this.regexp=Xce(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}yc.prototype.handle_error=function(e,r,n,s){var i=this.handle;if(i.length!==4)return s(e);try{i(e,r,n,s)}catch(a){s(a)}};yc.prototype.handle_request=function(e,r,n){var s=this.handle;if(s.length>3)return n();try{s(e,r,n)}catch(i){n(i)}};yc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:cL(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,s=this.params,i=1;i{"use strict";var uL=require("http");pL.exports=rle()||nle();function rle(){return uL.METHODS&&uL.METHODS.map(function(e){return e.toLowerCase()})}function nle(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var sk=P((FNe,vL)=>{"use strict";var dL=vc()("express:router:route"),mL=Mp(),fL=nk(),sle=tg(),hL=Array.prototype.slice,gL=Object.prototype.toString;vL.exports=bc;function bc(t){this.path=t,this.stack=[],dL("new %o",t),this.methods={}}bc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};bc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r100)return setImmediate(c,l);var u=i[s++];if(!u)return n(l);u.method&&u.method!==o?c(l):l?u.handle_error(l,e,r,c):u.handle_request(e,r,c),a=0}};bc.prototype.all=function(){for(var e=mL(hL.call(arguments)),r=0;r{yL=bL.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var ak=P((HNe,SL)=>{"use strict";var ile=sk(),_L=nk(),ale=tg(),ik=$p(),rg=vc()("express:router"),xL=Ns()("express"),ole=Mp(),cle=hc(),lle=Qu(),ule=/^\[object (\S+)\]$/,wL=Array.prototype.slice,ple=Object.prototype.toString,La=SL.exports=function(t){var e=t||{};function r(n,s,i){r.handle(n,s,i)}return lle(r,La),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};La.param=function(e,r){if(typeof e=="function"){xL("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,s=n.length,i;e[0]===":"&&(xL("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var a=0;a=d.length){setImmediate(v,b);return}if(++l>100)return setImmediate(g,y);var x=mle(e);if(x==null)return v(b);for(var w,S,k;S!==!0&&i=o.length)return i();if(u=0,p=o[c++],l=p.name,d=n.params[l],m=a[l],f=r[l],d===void 0||!m)return v();if(f&&(f.match===d||f.error&&f.error!=="route"))return n.params[l]=f.value,v(f.error);r[l]=f={error:null,match:d,value:d},g()}function g(h){var y=m[u++];if(f.value=n.params[p.name],h){f.error=h,v(h);return}if(!y)return v();try{y(n,s,g,d,p.name)}catch(b){g(b)}}v()};La.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=ole(wL.call(arguments,r));if(i.length===0)throw new TypeError("Router.use() requires a middleware function");for(var a=0;a");var o=new _L(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);o.route=void 0,this.stack.push(o)}return this};La.route=function(e){var r=new ile(e),n=new _L(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};ale.concat("all").forEach(function(t){La[t]=function(e){var r=this.route(e);return r[t].apply(r,wL.call(arguments,1)),this}});function dle(t,e){for(var r=0;r=0;n--)t[n+s]=t[n],n{"use strict";var kL=Qu();EL.init=function(t){return function(r,n,s){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=s,kL(r,t.request),kL(n,t.response),n.locals=n.locals||Object.create(null),s()}}});var ok=P((WNe,RL)=>{"use strict";var _le=$p(),wle=hc(),Sle=Kh();RL.exports=function(e){var r=_le({},e),n=Sle.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(i,a,o){if(!i.query){var c=wle(i).query;i.query=n(c,r)}o()}}});var jL=P((ZNe,OL)=>{"use strict";var ng=vc()("express:view"),Lp=require("path"),kle=require("fs"),Ele=Lp.dirname,CL=Lp.basename,Tle=Lp.extname,PL=Lp.join,Rle=Lp.resolve;OL.exports=sg;function sg(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=Tle(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var s=this.ext.slice(1);ng('require "%s"',s);var i=require(s).__express;if(typeof i!="function")throw new Error('Module "'+s+'" does not provide a view engine.');r.engines[this.ext]=i}this.engine=r.engines[this.ext],this.path=this.lookup(n)}sg.prototype.lookup=function(e){var r,n=[].concat(this.root);ng('lookup "%s"',e);for(var s=0;s{var ig=require("buffer"),qs=ig.Buffer;function AL(t,e){for(var r in t)e[r]=t[r]}qs.from&&qs.alloc&&qs.allocUnsafe&&qs.allocUnsafeSlow?NL.exports=ig:(AL(ig,ck),ck.Buffer=Ua);function Ua(t,e,r){return qs(t,e,r)}Ua.prototype=Object.create(qs.prototype);AL(qs,Ua);Ua.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return qs(t,e,r)};Ua.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=qs(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Ua.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return qs(t)};Ua.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ig.SlowBuffer(t)}});var uk=P((GNe,lk)=>{"use strict";lk.exports=$le;lk.exports.parse=Fle;var DL=require("path").basename,Ple=ag().Buffer,Ile=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Cle=/%[0-9A-Fa-f]{2}/,Ole=/%([0-9A-Fa-f]{2})/g,ML=/[^\x20-\x7e\xa0-\xff]/g,jle=/\\([\u0000-\u007f])/g,Ale=/([\\"])/g,zL=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,Nle=/^[\x20-\x7e\x80-\xff]+$/,Dle=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,zle=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,Mle=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function $le(t,e){var r=e||{},n=r.type||"attachment",s=Lle(t,r.fallback);return Ule(new LL(n,s))}function Lle(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&ML.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=DL(t),s=Nle.test(n),i=typeof e!="string"?e&&$L(n):DL(e),a=typeof i=="string"&&i!==n;return(a||!s||Cle.test(n))&&(r["filename*"]=n),(s||a)&&(r.filename=a?i:n),r}}function Ule(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!Dle.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var s,i=Object.keys(e).sort(),a=0;a{var Up=1e3,qp=Up*60,Fp=qp*60,Hp=Fp*24,Gle=Hp*365.25;UL.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Vle(t);if(r==="number"&&isNaN(t)===!1)return e.long?Jle(t):Kle(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Vle(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Gle;case"days":case"day":case"d":return r*Hp;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Fp;case"minutes":case"minute":case"mins":case"min":case"m":return r*qp;case"seconds":case"second":case"secs":case"sec":case"s":return r*Up;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Kle(t){return t>=Hp?Math.round(t/Hp)+"d":t>=Fp?Math.round(t/Fp)+"h":t>=qp?Math.round(t/qp)+"m":t>=Up?Math.round(t/Up)+"s":t+"ms"}function Jle(t){return og(t,Hp,"day")||og(t,Fp,"hour")||og(t,qp,"minute")||og(t,Up,"second")||t+" ms"}function og(t,e,r){if(!(t{ut=FL.exports=dk.debug=dk.default=dk;ut.coerce=tue;ut.disable=Xle;ut.enable=Yle;ut.enabled=eue;ut.humanize=qL();ut.names=[];ut.skips=[];ut.formatters={};var pk;function Qle(t){var e=0,r;for(r in t)e=(e<<5)-e+t.charCodeAt(r),e|=0;return ut.colors[Math.abs(e)%ut.colors.length]}function dk(t){function e(){if(e.enabled){var r=e,n=+new Date,s=n-(pk||n);r.diff=s,r.prev=pk,r.curr=n,pk=n;for(var i=new Array(arguments.length),a=0;a{Hr=BL.exports=mk();Hr.log=sue;Hr.formatArgs=nue;Hr.save=iue;Hr.load=HL;Hr.useColors=rue;Hr.storage=typeof chrome<"u"&&typeof chrome.storage<"u"?chrome.storage.local:aue();Hr.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function rue(){return typeof window<"u"&&window.process&&window.process.type==="renderer"?!0:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}Hr.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}};function nue(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+Hr.humanize(this.diff),!!e){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,function(i){i!=="%%"&&(n++,i==="%c"&&(s=n))}),t.splice(s,0,r)}}function sue(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function iue(t){try{t==null?Hr.storage.removeItem("debug"):Hr.storage.debug=t}catch{}}function HL(){var t;try{t=Hr.storage.debug}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}Hr.enable(HL());function aue(){try{return window.localStorage}catch{}}});var KL=P((fr,VL)=>{var ZL=require("tty"),Bp=require("util");fr=VL.exports=mk();fr.init=mue;fr.log=uue;fr.formatArgs=lue;fr.save=pue;fr.load=GL;fr.useColors=cue;fr.colors=[6,2,3,4,5,1];fr.inspectOpts=Object.keys(process.env).filter(function(t){return/^debug_/i.test(t)}).reduce(function(t,e){var r=e.substring(6).toLowerCase().replace(/_([a-z])/g,function(s,i){return i.toUpperCase()}),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),t[r]=n,t},{});var xc=parseInt(process.env.DEBUG_FD,10)||2;xc!==1&&xc!==2&&Bp.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var oue=xc===1?process.stdout:xc===2?process.stderr:due(xc);function cue(){return"colors"in fr.inspectOpts?!!fr.inspectOpts.colors:ZL.isatty(xc)}fr.formatters.o=function(t){return this.inspectOpts.colors=this.useColors,Bp.inspect(t,this.inspectOpts).split(` `).map(function(e){return e.trim()}).join(" ")};fr.formatters.O=function(t){return this.inspectOpts.colors=this.useColors,Bp.inspect(t,this.inspectOpts)};function lue(t){var e=this.namespace,r=this.useColors;if(r){var n=this.color,s=" \x1B[3"+n+";1m"+e+" \x1B[0m";t[0]=s+t[0].split(` `).join(` `+s),t.push("\x1B[3"+n+"m+"+fr.humanize(this.diff)+"\x1B[0m")}else t[0]=new Date().toUTCString()+" "+e+" "+t[0]}function uue(){return oue.write(Bp.format.apply(Bp,arguments)+` -`)}function pue(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function GL(){return process.env.DEBUG}function due(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new ZL.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function mue(t){t.inspectOpts={};for(var e=Object.keys(fr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?fk.exports=WL():fk.exports=KL()});var hk=P((JNe,XL)=>{"use strict";XL.exports=gue;var fue=require("crypto"),QL=require("fs").Stats,YL=Object.prototype.toString;function hue(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=fue.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function gue(t,e){if(t==null)throw new TypeError("argument entity is required");var r=vue(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=r?yue(t):hue(t);return n?"W/"+s:s}function vue(t){return typeof QL=="function"&&t instanceof QL?!0:t&&typeof t=="object"&&"ctime"in t&&YL.call(t.ctime)==="[object Date]"&&"mtime"in t&&YL.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function yue(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var gk=P((QNe,tU)=>{"use strict";var bue=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;tU.exports=xue;function xue(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var s=t["cache-control"];if(s&&bue.test(s))return!1;if(n&&n!=="*"){var i=e.etag;if(!i)return!1;for(var a=!0,o=_ue(n),c=0;c{wue.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var sU=P((eDe,nU)=>{var XNe=require("path"),Sue=require("fs");function wc(){this.types=Object.create(null),this.extensions=Object.create(null)}wc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Sc=1e3,kc=Sc*60,Ec=kc*60,Ua=Ec*24,kue=Ua*7,Eue=Ua*365.25;iU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Tue(t);if(r==="number"&&isFinite(t))return e.long?Pue(t):Rue(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Tue(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Eue;case"weeks":case"week":case"w":return r*kue;case"days":case"day":case"d":return r*Ua;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ec;case"minutes":case"minute":case"mins":case"min":case"m":return r*kc;case"seconds":case"second":case"secs":case"sec":case"s":return r*Sc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Rue(t){var e=Math.abs(t);return e>=Ua?Math.round(t/Ua)+"d":e>=Ec?Math.round(t/Ec)+"h":e>=kc?Math.round(t/kc)+"m":e>=Sc?Math.round(t/Sc)+"s":t+"ms"}function Pue(t){var e=Math.abs(t);return e>=Ua?cg(t,e,Ua,"day"):e>=Ec?cg(t,e,Ec,"hour"):e>=kc?cg(t,e,kc,"minute"):e>=Sc?cg(t,e,Sc,"second"):t+" ms"}function cg(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var vk=P((rDe,oU)=>{"use strict";oU.exports=Iue;function Iue(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var s=e.slice(n+1).split(","),i=[];i.type=e.slice(0,n);for(var a=0;at-1&&(l=t-1),!(isNaN(c)||isNaN(l)||c>l||c<0)&&i.push({start:c,end:l})}return i.length<1?-1:r&&r.combine?Cue(i):i}function Cue(t){for(var e=t.map(Oue).sort(Nue),r=0,n=1;ni.end+1?e[++r]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=r+1;var a=e.sort(Aue).map(jue);return a.type=t.type,a}function Oue(t,e){return{start:t.start,end:t.end,index:e}}function jue(t){return{start:t.start,end:t.end}}function Aue(t,e){return t.index-e.index}function Nue(t,e){return t.start-e.start}});var dg=P((nDe,Sk)=>{"use strict";var yk=Ra(),Ft=JL()("send"),qa=Ns()("send"),Due=$w(),zue=Cp(),uU=Op(),Mue=hk(),$ue=gk(),ug=require("fs"),xk=sU(),pU=aU(),Lue=cp(),Uue=vk(),Wp=require("path"),que=Yu(),dU=require("stream"),Fue=require("util"),Hue=Wp.extname,mU=Wp.join,bk=Wp.normalize,wk=Wp.resolve,lg=Wp.sep,Bue=/^ *bytes=/,fU=3600*24*365*1e3,cU=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Sk.exports=Wue;Sk.exports.mime=xk;function Wue(t,e,r){return new pt(t,e,r)}function pt(t,e,r){dU.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&qa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?_k(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?_k(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?pU(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),fU),this._root=n.root?wk(n.root):null,!this._root&&n.from&&this.from(n.from)}Fue.inherits(pt,dU);pt.prototype.etag=qa.function(function(e){return this._etag=!!e,Ft("etag %s",this._etag),this},"send.etag: pass etag as option");pt.prototype.hidden=qa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ft("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");pt.prototype.index=qa.function(function(e){var r=e?_k(e,"paths argument"):[];return Ft("index %o",e),this._index=r,this},"send.index: pass index as option");pt.prototype.root=function(e){return this._root=wk(String(e)),Ft("root %s",this._root),this};pt.prototype.from=qa.function(pt.prototype.root,"send.from: pass root as option");pt.prototype.root=qa.function(pt.prototype.root,"send.root: pass root as option");pt.prototype.maxage=qa.function(function(e){return this._maxage=typeof e=="string"?pU(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),fU),Ft("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");pt.prototype.error=function(e,r){if(gU(this,"error"))return this.emit("error",Kue(e,r));var n=this.res,s=que.message[e]||String(e),i=hU("Error",uU(s));Zue(n),r&&r.headers&&epe(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(i)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(i)};pt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};pt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};pt.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var s=r.getHeader("ETag");return!s||n!=="*"&&Xue(n).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=pg(e.headers["if-unmodified-since"]);if(!isNaN(i)){var a=pg(r.getHeader("Last-Modified"));return isNaN(a)||a>i}return!1};pt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};pt.prototype.notModified=function(){var e=this.res;Ft("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};pt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ft("headers already sent"),this.error(500,e)};pt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};pt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};pt.prototype.isFresh=function(){return $ue(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};pt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return pg(n)<=pg(e)};pt.prototype.redirect=function(e){var r=this.res;if(gU(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=zue(Gue(this.path+"/")),s=hU("Redirecting","Redirecting to "+uU(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(s)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(s)};pt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Jue(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var s;if(r!==null){if(n&&(n=bk("."+lg+n)),cU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=n.split(lg),n=bk(mU(r,n))}else{if(cU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=bk(n).split(lg),n=wk(n)}if(Vue(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ft('%s dotfile "%s"',i,n),i){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};pt.prototype.send=function(e,r){var n=r.size,s=this.options,i={},a=this.res,o=this.req,c=o.headers.range,l=s.start||0;if(Yue(a)){this.headersAlreadySent();return}if(Ft('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-l),s.end!==void 0){var u=s.end-l+1;n>u&&(n=u)}if(this._acceptRanges&&Bue.test(c)){if(c=Uue(n,c,{combine:!0}),this.isRangeFresh()||(Ft("range stale"),c=-2),c===-1)return Ft("range unsatisfiable"),a.setHeader("Content-Range",lU("bytes",n)),this.error(416,{headers:{"Content-Range":a.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ft("range %j",c),a.statusCode=206,a.setHeader("Content-Range",lU("bytes",n,c[0])),l+=c[0].start,n=c[0].end-c[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=l,i.end=Math.max(l,l+n-1),a.setHeader("Content-Length",n),o.method==="HEAD"){a.end();return}this.stream(e,i)};pt.prototype.sendFile=function(e){var r=0,n=this;Ft('stat "%s"',e),ug.stat(e,function(a,o){if(a&&a.code==="ENOENT"&&!Hue(e)&&e[e.length-1]!==lg)return s(a);if(a)return n.onStatError(a);if(o.isDirectory())return n.redirect(e);n.emit("file",e,o),n.send(e,o)});function s(i){if(n._extensions.length<=r)return i?n.onStatError(i):n.error(404);var a=e+"."+n._extensions[r++];Ft('stat "%s"',a),ug.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}};pt.prototype.sendIndex=function(e){var r=-1,n=this;function s(i){if(++r>=n._index.length)return i?n.onStatError(i):n.error(404);var a=mU(e,n._index[r]);Ft('stat "%s"',a),ug.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}s()};pt.prototype.stream=function(e,r){var n=this,s=this.res,i=ug.createReadStream(e,r);this.emit("stream",i),i.pipe(s);function a(){Due(i,!0)}Lue(s,a),i.on("error",function(c){a(),n.onStatError(c)}),i.on("end",function(){n.emit("end")})};pt.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=xk.lookup(e);if(!n){Ft("no content-type");return}var s=xk.charsets.lookup(n);Ft("content-type %s",n),r.setHeader("Content-Type",n+(s?"; charset="+s:""))}};pt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ft("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),Ft("cache-control %s",s),n.setHeader("Cache-Control",s)}if(this._lastModified&&!n.getHeader("Last-Modified")){var i=r.mtime.toUTCString();Ft("modified %s",i),n.setHeader("Last-Modified",i)}if(this._etag&&!n.getHeader("ETag")){var a=Mue(r);Ft("etag %s",a),n.setHeader("ETag",a)}};function Zue(t){for(var e=Que(t),r=0;r1?"/"+t.substr(e):t}function Vue(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function lU(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function hU(t,e){return` +`)}function pue(t){t==null?delete process.env.DEBUG:process.env.DEBUG=t}function GL(){return process.env.DEBUG}function due(t){var e,r=process.binding("tty_wrap");switch(r.guessHandleType(t)){case"TTY":e=new ZL.WriteStream(t),e._type="tty",e._handle&&e._handle.unref&&e._handle.unref();break;case"FILE":var n=require("fs");e=new n.SyncWriteStream(t,{autoClose:!1}),e._type="fs";break;case"PIPE":case"TCP":var s=require("net");e=new s.Socket({fd:t,readable:!1,writable:!0}),e.readable=!1,e.read=null,e._type="pipe",e._handle&&e._handle.unref&&e._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return e.fd=t,e._isStdio=!0,e}function mue(t){t.inspectOpts={};for(var e=Object.keys(fr.inspectOpts),r=0;r{typeof process<"u"&&process.type==="renderer"?fk.exports=WL():fk.exports=KL()});var hk=P((JNe,XL)=>{"use strict";XL.exports=gue;var fue=require("crypto"),QL=require("fs").Stats,YL=Object.prototype.toString;function hue(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=fue.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function gue(t,e){if(t==null)throw new TypeError("argument entity is required");var r=vue(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var s=r?yue(t):hue(t);return n?"W/"+s:s}function vue(t){return typeof QL=="function"&&t instanceof QL?!0:t&&typeof t=="object"&&"ctime"in t&&YL.call(t.ctime)==="[object Date]"&&"mtime"in t&&YL.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function yue(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var gk=P((QNe,tU)=>{"use strict";var bue=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;tU.exports=xue;function xue(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var s=t["cache-control"];if(s&&bue.test(s))return!1;if(n&&n!=="*"){var i=e.etag;if(!i)return!1;for(var a=!0,o=_ue(n),c=0;c{wue.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var sU=P((eDe,nU)=>{var XNe=require("path"),Sue=require("fs");function wc(){this.types=Object.create(null),this.extensions=Object.create(null)}wc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n{var Sc=1e3,kc=Sc*60,Ec=kc*60,qa=Ec*24,kue=qa*7,Eue=qa*365.25;iU.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Tue(t);if(r==="number"&&isFinite(t))return e.long?Pue(t):Rue(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Tue(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Eue;case"weeks":case"week":case"w":return r*kue;case"days":case"day":case"d":return r*qa;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Ec;case"minutes":case"minute":case"mins":case"min":case"m":return r*kc;case"seconds":case"second":case"secs":case"sec":case"s":return r*Sc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Rue(t){var e=Math.abs(t);return e>=qa?Math.round(t/qa)+"d":e>=Ec?Math.round(t/Ec)+"h":e>=kc?Math.round(t/kc)+"m":e>=Sc?Math.round(t/Sc)+"s":t+"ms"}function Pue(t){var e=Math.abs(t);return e>=qa?cg(t,e,qa,"day"):e>=Ec?cg(t,e,Ec,"hour"):e>=kc?cg(t,e,kc,"minute"):e>=Sc?cg(t,e,Sc,"second"):t+" ms"}function cg(t,e,r,n){var s=e>=r*1.5;return Math.round(t/r)+" "+n+(s?"s":"")}});var vk=P((rDe,oU)=>{"use strict";oU.exports=Iue;function Iue(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var s=e.slice(n+1).split(","),i=[];i.type=e.slice(0,n);for(var a=0;at-1&&(l=t-1),!(isNaN(c)||isNaN(l)||c>l||c<0)&&i.push({start:c,end:l})}return i.length<1?-1:r&&r.combine?Cue(i):i}function Cue(t){for(var e=t.map(Oue).sort(Nue),r=0,n=1;ni.end+1?e[++r]=s:s.end>i.end&&(i.end=s.end,i.index=Math.min(i.index,s.index))}e.length=r+1;var a=e.sort(Aue).map(jue);return a.type=t.type,a}function Oue(t,e){return{start:t.start,end:t.end,index:e}}function jue(t){return{start:t.start,end:t.end}}function Aue(t,e){return t.index-e.index}function Nue(t,e){return t.start-e.start}});var dg=P((nDe,Sk)=>{"use strict";var yk=Pa(),Ft=JL()("send"),Fa=Ns()("send"),Due=$w(),zue=Cp(),uU=Op(),Mue=hk(),$ue=gk(),ug=require("fs"),xk=sU(),pU=aU(),Lue=cp(),Uue=vk(),Wp=require("path"),que=Yu(),dU=require("stream"),Fue=require("util"),Hue=Wp.extname,mU=Wp.join,bk=Wp.normalize,wk=Wp.resolve,lg=Wp.sep,Bue=/^ *bytes=/,fU=3600*24*365*1e3,cU=/(?:^|[\\/])\.\.(?:[\\/]|$)/;Sk.exports=Wue;Sk.exports.mime=xk;function Wue(t,e,r){return new pt(t,e,r)}function pt(t,e,r){dU.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&Fa("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?_k(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?_k(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?pU(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),fU),this._root=n.root?wk(n.root):null,!this._root&&n.from&&this.from(n.from)}Fue.inherits(pt,dU);pt.prototype.etag=Fa.function(function(e){return this._etag=!!e,Ft("etag %s",this._etag),this},"send.etag: pass etag as option");pt.prototype.hidden=Fa.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,Ft("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");pt.prototype.index=Fa.function(function(e){var r=e?_k(e,"paths argument"):[];return Ft("index %o",e),this._index=r,this},"send.index: pass index as option");pt.prototype.root=function(e){return this._root=wk(String(e)),Ft("root %s",this._root),this};pt.prototype.from=Fa.function(pt.prototype.root,"send.from: pass root as option");pt.prototype.root=Fa.function(pt.prototype.root,"send.root: pass root as option");pt.prototype.maxage=Fa.function(function(e){return this._maxage=typeof e=="string"?pU(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),fU),Ft("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");pt.prototype.error=function(e,r){if(gU(this,"error"))return this.emit("error",Kue(e,r));var n=this.res,s=que.message[e]||String(e),i=hU("Error",uU(s));Zue(n),r&&r.headers&&epe(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(i)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(i)};pt.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};pt.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};pt.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var s=r.getHeader("ETag");return!s||n!=="*"&&Xue(n).every(function(o){return o!==s&&o!=="W/"+s&&"W/"+o!==s})}var i=pg(e.headers["if-unmodified-since"]);if(!isNaN(i)){var a=pg(r.getHeader("Last-Modified"));return isNaN(a)||a>i}return!1};pt.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};pt.prototype.notModified=function(){var e=this.res;Ft("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};pt.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Ft("headers already sent"),this.error(500,e)};pt.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};pt.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};pt.prototype.isFresh=function(){return $ue(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};pt.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return pg(n)<=pg(e)};pt.prototype.redirect=function(e){var r=this.res;if(gU(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=zue(Gue(this.path+"/")),s=hU("Redirecting","Redirecting to "+uU(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(s)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(s)};pt.prototype.pipe=function(e){var r=this._root;this.res=e;var n=Jue(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var s;if(r!==null){if(n&&(n=bk("."+lg+n)),cU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=n.split(lg),n=bk(mU(r,n))}else{if(cU.test(n))return Ft('malicious path "%s"',n),this.error(403),e;s=bk(n).split(lg),n=wk(n)}if(Vue(s)){var i=this._dotfiles;switch(i===void 0&&(i=s[s.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),Ft('%s dotfile "%s"',i,n),i){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};pt.prototype.send=function(e,r){var n=r.size,s=this.options,i={},a=this.res,o=this.req,c=o.headers.range,l=s.start||0;if(Yue(a)){this.headersAlreadySent();return}if(Ft('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-l),s.end!==void 0){var u=s.end-l+1;n>u&&(n=u)}if(this._acceptRanges&&Bue.test(c)){if(c=Uue(n,c,{combine:!0}),this.isRangeFresh()||(Ft("range stale"),c=-2),c===-1)return Ft("range unsatisfiable"),a.setHeader("Content-Range",lU("bytes",n)),this.error(416,{headers:{"Content-Range":a.getHeader("Content-Range")}});c!==-2&&c.length===1&&(Ft("range %j",c),a.statusCode=206,a.setHeader("Content-Range",lU("bytes",n,c[0])),l+=c[0].start,n=c[0].end-c[0].start+1)}for(var p in s)i[p]=s[p];if(i.start=l,i.end=Math.max(l,l+n-1),a.setHeader("Content-Length",n),o.method==="HEAD"){a.end();return}this.stream(e,i)};pt.prototype.sendFile=function(e){var r=0,n=this;Ft('stat "%s"',e),ug.stat(e,function(a,o){if(a&&a.code==="ENOENT"&&!Hue(e)&&e[e.length-1]!==lg)return s(a);if(a)return n.onStatError(a);if(o.isDirectory())return n.redirect(e);n.emit("file",e,o),n.send(e,o)});function s(i){if(n._extensions.length<=r)return i?n.onStatError(i):n.error(404);var a=e+"."+n._extensions[r++];Ft('stat "%s"',a),ug.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}};pt.prototype.sendIndex=function(e){var r=-1,n=this;function s(i){if(++r>=n._index.length)return i?n.onStatError(i):n.error(404);var a=mU(e,n._index[r]);Ft('stat "%s"',a),ug.stat(a,function(o,c){if(o)return s(o);if(c.isDirectory())return s();n.emit("file",a,c),n.send(a,c)})}s()};pt.prototype.stream=function(e,r){var n=this,s=this.res,i=ug.createReadStream(e,r);this.emit("stream",i),i.pipe(s);function a(){Due(i,!0)}Lue(s,a),i.on("error",function(c){a(),n.onStatError(c)}),i.on("end",function(){n.emit("end")})};pt.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=xk.lookup(e);if(!n){Ft("no content-type");return}var s=xk.charsets.lookup(n);Ft("content-type %s",n),r.setHeader("Content-Type",n+(s?"; charset="+s:""))}};pt.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(Ft("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var s="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(s+=", immutable"),Ft("cache-control %s",s),n.setHeader("Cache-Control",s)}if(this._lastModified&&!n.getHeader("Last-Modified")){var i=r.mtime.toUTCString();Ft("modified %s",i),n.setHeader("Last-Modified",i)}if(this._etag&&!n.getHeader("ETag")){var a=Mue(r);Ft("etag %s",a),n.setHeader("ETag",a)}};function Zue(t){for(var e=Que(t),r=0;r1?"/"+t.substr(e):t}function Vue(t){for(var e=0;e1&&r[0]===".")return!0}return!1}function lU(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function hU(t,e){return` @@ -76,7 +76,7 @@ return fn.apply(this, arguments) `}function Kue(t,e){return e?e instanceof Error?yk(t,e,{expose:!1}):yk(t,e):yk(t)}function Jue(t){try{return decodeURIComponent(t)}catch{return-1}}function Que(t){return typeof t.getHeaderNames!="function"?Object.keys(t._headers||{}):t.getHeaderNames()}function gU(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function Yue(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function _k(t,e){for(var r=[].concat(t||[]),n=0;n{"use strict";vU.exports=tpe;function tpe(t){if(!t)throw new TypeError("argument req is required");var e=npe(t.headers["x-forwarded-for"]||""),r=rpe(t),n=[r].concat(e);return n}function rpe(t){return t.socket?t.socket.remoteAddress:t.connection.remoteAddress}function npe(t){for(var e=t.length,r=[],n=t.length,s=t.length-1;s>=0;s--)switch(t.charCodeAt(s)){case 32:n===e&&(n=e=s);break;case 44:n!==e&&r.push(t.substring(n,e)),n=e=s;break;default:n=s;break}return n!==e&&r.push(t.substring(n,e)),r}});var xU=P((bU,Zp)=>{(function(){var t,e,r,n,s,i,a,o,c;e={},o=this,typeof Zp<"u"&&Zp!==null&&Zp.exports?Zp.exports=e:o.ipaddr=e,a=function(l,u,p,d){var m,f;if(l.length!==u.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");for(m=0;d>0;){if(f=p-d,f<0&&(f=0),l[m]>>f!==u[m]>>f)return!1;d-=p,m+=1}return!0},e.subnetMatch=function(l,u,p){var d,m,f,v,g;p==null&&(p="unicast");for(f in u)for(v=u[f],v[0]&&!(v[0]instanceof Array)&&(v=[v]),d=0,m=v.length;d=0;p=d+=-1)if(m=this.octets[p],m in g){if(v=g[m],f&&v!==0)return null;v!==8&&(f=!0),u+=v}else return null;return 32-u},l})(),r="(0?\\d+|0x[a-f0-9]+)",n={fourOctet:new RegExp("^"+r+"\\."+r+"\\."+r+"\\."+r+"$","i"),longValue:new RegExp("^"+r+"$","i")},e.IPv4.parser=function(l){var u,p,d,m,f;if(p=function(v){return v[0]==="0"&&v[1]!=="x"?parseInt(v,8):parseInt(v)},u=l.match(n.fourOctet))return(function(){var v,g,h,y;for(h=u.slice(1,6),y=[],v=0,g=h.length;v4294967295||f<0)throw new Error("ipaddr: address outside defined range");return(function(){var v,g;for(g=[],m=v=0;v<=24;m=v+=8)g.push(f>>m&255);return g})().reverse()}else return null},e.IPv6=(function(){function l(u,p){var d,m,f,v,g,h;if(u.length===16)for(this.parts=[],d=m=0;m<=14;d=m+=2)this.parts.push(u[d]<<8|u[d+1]);else if(u.length===8)this.parts=u;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(h=this.parts,f=0,v=h.length;fp&&(u=d.index,p=d[0].length);return p<0?f:f.substring(0,u)+"::"+f.substring(u+p)},l.prototype.toByteArray=function(){var u,p,d,m,f;for(u=[],f=this.parts,p=0,d=f.length;p>8),u.push(m&255);return u},l.prototype.toNormalizedString=function(){var u,p,d;return u=(function(){var m,f,v,g;for(v=this.parts,g=[],m=0,f=v.length;m>8,u&255,p>>8,p&255])},l.prototype.prefixLengthFromSubnetMask=function(){var u,p,d,m,f,v,g;for(g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},u=0,f=!1,p=d=7;d>=0;p=d+=-1)if(m=this.parts[p],m in g){if(v=g[m],f&&v!==0)return null;v!==16&&(f=!0),u+=v}else return null;return 128-u},l})(),s="(?:[0-9a-f]+::?)+",c="%[0-9a-z]{1,}",i={zoneIndex:new RegExp(c,"i"),native:new RegExp("^(::)?("+s+")?([0-9a-f]+)?(::)?("+c+")?$","i"),transitional:new RegExp("^((?:"+s+")|(?:::)(?:"+s+")?)"+(r+"\\."+r+"\\."+r+"\\."+r)+("("+c+")?$"),"i")},t=function(l,u){var p,d,m,f,v,g;if(l.indexOf("::")!==l.lastIndexOf("::"))return null;for(g=(l.match(i.zoneIndex)||[])[0],g&&(g=g.substring(1),l=l.replace(/%.+$/,"")),p=0,d=-1;(d=l.indexOf(":",d+1))>=0;)p++;if(l.substr(0,2)==="::"&&p--,l.substr(-2,2)==="::"&&p--,p>u)return null;for(v=u-p,f=":";v--;)f+="0:";return l=l.replace("::",f),l[0]===":"&&(l=l.slice(1)),l[l.length-1]===":"&&(l=l.slice(0,-1)),u=(function(){var h,y,b,x;for(b=l.split(":"),x=[],h=0,y=b.length;h=0&&u<=32))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},e.IPv4.subnetMaskFromPrefixLength=function(l){var u,p,d;if(l=parseInt(l),l<0||l>32)throw new Error("ipaddr: invalid IPv4 prefix length");for(d=[0,0,0,0],p=0,u=Math.floor(l/8);p=0&&u<=128))return d=[this.parse(p[1]),u],Object.defineProperty(d,"toString",{value:function(){return this.join("/")}}),d;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},e.isValid=function(l){return e.IPv6.isValid(l)||e.IPv4.isValid(l)},e.parse=function(l){if(e.IPv6.isValid(l))return e.IPv6.parse(l);if(e.IPv4.isValid(l))return e.IPv4.parse(l);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},e.parseCIDR=function(l){var u;try{return e.IPv6.parseCIDR(l)}catch(p){u=p;try{return e.IPv4.parseCIDR(l)}catch(d){throw u=d,new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},e.fromByteArray=function(l){var u;if(u=l.length,u===4)return new e.IPv4(l);if(u===16)return new e.IPv6(l);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},e.process=function(l){var u;return u=this.parse(l),u.kind()==="ipv6"&&u.isIPv4MappedAddress()?u.toIPv4Address():u}}).call(bU)});var kk=P((iDe,hg)=>{"use strict";hg.exports=upe;hg.exports.all=SU;hg.exports.compile=kU;var spe=yU(),wU=xU(),ipe=/^[0-9]+$/,mg=wU.isValid,fg=wU.parse,_U={linklocal:["169.254.0.0/16","fe80::/10"],loopback:["127.0.0.1/8","::1/128"],uniquelocal:["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","fc00::/7"]};function SU(t,e){var r=spe(t);if(!e)return r;typeof e!="function"&&(e=kU(e));for(var n=0;ns)throw new TypeError("invalid range on address: "+t);return[n,i]}function lpe(t){var e=fg(t),r=e.kind();return r==="ipv4"?e.prefixLengthFromSubnetMask():null}function upe(t,e){if(!t)throw new TypeError("req argument is required");if(!e)throw new TypeError("trust argument is required");var r=SU(t,e),n=r[r.length-1];return n}function ppe(){return!1}function dpe(t){return function(r){if(!mg(r))return!1;for(var n=fg(r),s,i=n.kind(),a=0;a{"use strict";var EU=ag().Buffer,fpe=uk(),TU=Ju(),RU=Ns()("express"),hpe=Mp(),gpe=dg().mime,vpe=hk(),ype=kk(),bpe=Kh(),xpe=require("querystring");Br.etag=PU({weak:!1});Br.wetag=PU({weak:!0});Br.isAbsolute=function(t){if(t[0]==="/"||t[1]===":"&&(t[2]==="\\"||t[2]==="/")||t.substring(0,2)==="\\\\")return!0};Br.flatten=RU.function(hpe,"utils.flatten: use array-flatten npm module instead");Br.normalizeType=function(t){return~t.indexOf("/")?_pe(t):{value:gpe.lookup(t),params:{}}};Br.normalizeTypes=function(t){for(var e=[],r=0;r{"use strict";var kpe=B2(),Epe=ak(),Tk=tg(),Tpe=TL(),Rpe=ok(),gg=vc()("express:application"),Ppe=jL(),Ipe=require("http"),Cpe=Li().compileETag,Ope=Li().compileQueryParser,jpe=Li().compileTrust,Ape=Ns()("express"),Npe=Mp(),Ek=$p(),Dpe=require("path").resolve,Tc=Qu(),zpe=Object.prototype.hasOwnProperty,Pk=Array.prototype.slice,tr=IU=CU.exports={},Rk="@@symbol:trust_proxy_default";tr.init=function(){this.cache={},this.engines={},this.settings={},this.defaultConfiguration()};tr.defaultConfiguration=function(){var e=process.env.NODE_ENV||"development";this.enable("x-powered-by"),this.set("etag","weak"),this.set("env",e),this.set("query parser","extended"),this.set("subdomain offset",2),this.set("trust proxy",!1),Object.defineProperty(this.settings,Rk,{configurable:!0,value:!0}),gg("booting in %s mode",e),this.on("mount",function(n){this.settings[Rk]===!0&&typeof n.settings["trust proxy fn"]=="function"&&(delete this.settings["trust proxy"],delete this.settings["trust proxy fn"]),Tc(this.request,n.request),Tc(this.response,n.response),Tc(this.engines,n.engines),Tc(this.settings,n.settings)}),this.locals=Object.create(null),this.mountpath="/",this.locals.settings=this.settings,this.set("view",Ppe),this.set("views",Dpe("views")),this.set("jsonp callback name","callback"),e==="production"&&this.enable("view cache"),Object.defineProperty(this,"router",{get:function(){throw new Error(`'app.router' is deprecated! -Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};tr.lazyrouter=function(){this._router||(this._router=new Epe({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Rpe(this.get("query parser fn"))),this._router.use(Tpe.init(this)))};tr.handle=function(e,r,n){var s=this._router,i=n||kpe(e,r,{env:this.get("env"),onerror:Mpe.bind(this)});if(!s){gg("no routes defined on app"),i();return}s.handle(e,r,i)};tr.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=Npe(Pk.call(arguments,r));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var a=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return a.use(n,o);gg(".use app under %s",n),o.mountpath=n,o.parent=this,a.use(n,function(l,u,p){var d=l.app;o.handle(l,u,function(m){Tc(l,d.request),Tc(u,d.response),p(m)})}),o.emit("mount",this)},this),this};tr.route=function(e){return this.lazyrouter(),this._router.route(e)};tr.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};tr.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+l.root.slice(0,-1).join('", "')+'" or "'+l.root[l.root.length-1]+'"':'directory "'+l.root+'"',d=new Error('Failed to lookup view "'+e+'" in views '+p);return d.view=l,i(d)}c.cache&&(s[e]=l)}$pe(l,c,i)};tr.listen=function(){var e=Ipe.createServer(this);return e.listen.apply(e,arguments)};function Mpe(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function $pe(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var DU=P((oDe,Ik)=>{"use strict";Ik.exports=NU;Ik.exports.preferredCharsets=NU;var Lpe=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Upe(t){for(var e=t.split(","),r=0,n=0;r0}});var UU=P((cDe,Ck)=>{"use strict";Ck.exports=LU;Ck.exports.preferredEncodings=LU;var Wpe=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Zpe(t){for(var e=t.split(","),r=!1,n=1,s=0,i=0;s0}});var WU=P((lDe,Ok)=>{"use strict";Ok.exports=BU;Ok.exports.preferredLanguages=BU;var Jpe=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Qpe(t){for(var e=t.split(","),r=0,n=0;r0}});var QU=P((uDe,jk)=>{"use strict";jk.exports=KU;jk.exports.preferredMediaTypes=KU;var tde=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function rde(t){for(var e=ode(t),r=0,n=0;r0)if(i.every(function(a){return e.params[a]=="*"||(e.params[a]||"").toLowerCase()==(n.params[a]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function KU(t,e){var r=rde(t===void 0?"*/*":t||"");if(!e)return r.filter(GU).sort(ZU).map(ide);var n=e.map(function(i,a){return nde(i,r,a)});return n.filter(GU).sort(ZU).map(function(i){return e[n.indexOf(i)]})}function ZU(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function ide(t){return t.type+"/"+t.subtype}function GU(t){return t.q>0}function JU(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function ade(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.substr(0,e),n=t.substr(e+1)),[r,n]}function ode(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var lde=DU(),ude=UU(),pde=WU(),dde=QU();Ak.exports=gt;Ak.exports.Negotiator=gt;function gt(t){if(!(this instanceof gt))return new gt(t);this.request=t}gt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};gt.prototype.charsets=function(e){return lde(this.request.headers["accept-charset"],e)};gt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};gt.prototype.encodings=function(e){return ude(this.request.headers["accept-encoding"],e)};gt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};gt.prototype.languages=function(e){return pde(this.request.headers["accept-language"],e)};gt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};gt.prototype.mediaTypes=function(e){return dde(this.request.headers.accept,e)};gt.prototype.preferredCharset=gt.prototype.charset;gt.prototype.preferredCharsets=gt.prototype.charsets;gt.prototype.preferredEncoding=gt.prototype.encoding;gt.prototype.preferredEncodings=gt.prototype.encodings;gt.prototype.preferredLanguage=gt.prototype.language;gt.prototype.preferredLanguages=gt.prototype.languages;gt.prototype.preferredMediaType=gt.prototype.mediaType;gt.prototype.preferredMediaTypes=gt.prototype.mediaTypes});var XU=P((dDe,mde)=>{mde.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var tq=P((mDe,eq)=>{eq.exports=XU()});var sq=P(mn=>{"use strict";var vg=tq(),fde=require("path").extname,rq=/^\s*([^;\s]*)(?:;|\s|$)/,hde=/^text\//i;mn.charset=nq;mn.charsets={lookup:nq};mn.contentType=gde;mn.extension=vde;mn.extensions=Object.create(null);mn.lookup=yde;mn.types=Object.create(null);bde(mn.extensions,mn.types);function nq(t){if(!t||typeof t!="string")return!1;var e=rq.exec(t),r=e&&vg[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&hde.test(e[1])?"UTF-8":!1}function gde(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?mn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=mn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function vde(t){if(!t||typeof t!="string")return!1;var e=rq.exec(t),r=e&&mn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function yde(t){if(!t||typeof t!="string")return!1;var e=fde("x."+t).toLowerCase().substr(1);return e&&mn.types[e]||!1}function bde(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(vg).forEach(function(s){var i=vg[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var aq=P((hDe,iq)=>{"use strict";var xde=YU(),_de=sq();iq.exports=wn;function wn(t){if(!(this instanceof wn))return new wn(t);this.headers=t.headers,this.negotiator=new xde(t)}wn.prototype.type=wn.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var yg=aq(),Gp=Ns()("express"),kde=require("net").isIP,Ede=ac(),Tde=require("http"),Rde=gk(),Pde=vk(),Ide=hc(),oq=kk(),xt=Object.create(Tde.IncomingMessage.prototype);cq.exports=xt;xt.get=xt.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};xt.accepts=function(){var t=yg(this);return t.types.apply(t,arguments)};xt.acceptsEncodings=function(){var t=yg(this);return t.encodings.apply(t,arguments)};xt.acceptsEncoding=Gp.function(xt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");xt.acceptsCharsets=function(){var t=yg(this);return t.charsets.apply(t,arguments)};xt.acceptsCharset=Gp.function(xt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");xt.acceptsLanguages=function(){var t=yg(this);return t.languages.apply(t,arguments)};xt.acceptsLanguage=Gp.function(xt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");xt.range=function(e,r){var n=this.get("Range");if(n)return Pde(e,n,r)};xt.param=function(e,r){var n=this.params||{},s=this.body||{},i=this.query||{},a=arguments.length===1?"name":"name, default";return Gp("req.param("+a+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:r};xt.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?Rde(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});fs(xt,"stale",function(){return!this.fresh});fs(xt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function fs(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var Nk=P(bg=>{var pq=require("crypto");bg.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return t+"."+pq.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};bg.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=bg.sign(r,e);return uq(n)==uq(t)?r:!1};function uq(t){return pq.createHash("sha1").update(t).digest("hex")}});var zk=P(Dk=>{"use strict";Dk.parse=zde;Dk.serialize=Mde;var Cde=Object.prototype.toString,Ode=Object.prototype.hasOwnProperty,jde=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Ade=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Nde=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Dde=/^[\u0020-\u003A\u003D-\u007E]*$/;function zde(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},n=t.length;if(n<2)return r;var s=e&&e.decode||$de,i=0,a=0,o=0;do{if(a=t.indexOf("=",i),a===-1)break;if(o=t.indexOf(";",i),o===-1)o=n;else if(a>o){i=t.lastIndexOf(";",a-1)+1;continue}var c=dq(t,i,a),l=mq(t,a,c),u=t.slice(c,l);if(!Ode.call(r,u)){var p=dq(t,a+1,o),d=mq(t,o,p);t.charCodeAt(p)===34&&t.charCodeAt(d-1)===34&&(p++,d--);var m=t.slice(p,d);r[u]=Ude(m,s)}i=o+1}while(ir;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Mde(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!jde.test(t))throw new TypeError("argument name is invalid");var s=n(e);if(!Ade.test(s))throw new TypeError("argument val is invalid");var i=t+"="+s;if(!r)return i;if(r.maxAge!=null){var a=Math.floor(r.maxAge);if(!isFinite(a))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+a}if(r.domain){if(!Nde.test(r.domain))throw new TypeError("option domain is invalid");i+="; Domain="+r.domain}if(r.path){if(!Dde.test(r.path))throw new TypeError("option path is invalid");i+="; Path="+r.path}if(r.expires){var o=r.expires;if(!Lde(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(r.httpOnly&&(i+="; HttpOnly"),r.secure&&(i+="; Secure"),r.partitioned&&(i+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var l=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function $de(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Lde(t){return Cde.call(t)==="[object Date]"}function Ude(t,e){try{return e(t)}catch{return t}}});var $k=P((bDe,Mk)=>{"use strict";Mk.exports=Fde;Mk.exports.append=hq;var qde=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function hq(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:fq(String(e)),n=0;n{"use strict";var Vp=ag().Buffer,gq=uk(),Hde=Ra(),fn=Ns()("express"),Bde=Cp(),Wde=Op(),Zde=require("http"),Gde=Li().isAbsolute,Vde=cp(),vq=require("path"),xg=Yu(),yq=$p(),Kde=Nk().sign,Jde=Li().normalizeType,Qde=Li().normalizeTypes,Yde=Li().setCharset,Xde=zk(),Lk=dg(),eme=vq.extname,bq=Lk.mime,tme=vq.resolve,rme=$k(),kt=Object.create(Zde.ServerResponse.prototype);wq.exports=kt;var nme=/;\s*charset\s*=/;kt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&fn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};kt.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};kt.send=function(e){var r=e,n,s=this.req,i,a=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(fn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(fn("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),fn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=xg.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(Vp.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",Yde(i,"utf-8")));var o=a.get("etag fn"),c=!this.get("ETag")&&typeof o=="function",l;r!==void 0&&(Vp.isBuffer(r)?l=r.length:!c&&r.length<1e3?l=Vp.byteLength(r,n):(r=Vp.from(r,n),n=void 0,l=r.length),this.set("Content-Length",l));var u;return c&&l!==void 0&&(u=o(r,n))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};kt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(fn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=_q(r,i,a,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};kt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(fn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=_q(r,i,a,s),c=this.req.query[n.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+c+" === 'function' && "+c+"("+o+");"),this.send(o)};kt.sendStatus=function(e){var r=xg.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};kt.sendFile=function(e,r,n){var s=n,i=this.req,a=this,o=i.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!Gde(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var l=encodeURI(e),u=Lk(i,l,c);xq(a,u,c,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};kt.sendfile=function(t,e,r){var n=r,s=this.req,i=this,a=s.next,o=e||{};typeof e=="function"&&(n=e,o={});var c=Lk(s,t,o);xq(i,c,o,function(l){if(n)return n(l);if(l&&l.code==="EISDIR")return a();l&&l.code!=="ECONNABORTED"&&l.syscall!=="write"&&a(l)})};kt.sendfile=fn.function(kt.sendfile,"res.sendfile: Use res.sendFile instead");kt.download=function(e,r,n,s){var i=s,a=r,o=n||null;typeof r=="function"?(i=r,a=null,o=null):typeof n=="function"&&(i=n,o=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(a=null,o=r);var c={"Content-Disposition":gq(a||e)};if(o&&o.headers)for(var l=Object.keys(o.headers),u=0;u0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",Jde(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(Hde(406,{types:Qde(n).map(function(i){return i.value})})),this};kt.attachment=function(e){return e&&this.type(eme(e)),this.set("Content-Disposition",gq(e)),this};kt.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};kt.set=kt.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");if(!nme.test(n)){var s=bq.charsets.lookup(n.split(";")[0]);s&&(n+="; charset="+s.toLowerCase())}}this.setHeader(e,n)}else for(var i in e)this.set(i,e[i]);return this};kt.get=function(t){return this.getHeader(t)};kt.clearCookie=function(e,r){r&&(r.maxAge&&fn('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&fn('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var n=yq({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};kt.cookie=function(t,e,r){var n=yq({},r),s=this.req.secret,i=n.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var a=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(a="s:"+Kde(a,s)),n.maxAge!=null){var o=n.maxAge-0;isNaN(o)||(n.expires=new Date(Date.now()+o),n.maxAge=Math.floor(o/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Xde.serialize(t,String(a),n)),this};kt.location=function(e){var r;return e==="back"?(fn('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",Bde(r))};kt.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],r=arguments[1]):(fn("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=xg.message[s]+". Redirecting to "+r},html:function(){var i=Wde(r);n="

"+xg.message[s]+". Redirecting to "+i+"

"},default:function(){n=""}}),this.statusCode=s,this.set("Content-Length",Vp.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};kt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(fn("res.vary(): Provide a field name"),this):(rme(this,t),this)};kt.render=function(e,r,n){var s=this.req.app,i=n,a=r||{},o=this.req,c=this;typeof r=="function"&&(i=r,a={}),a._locals=c.locals,i=i||function(l,u){if(l)return o.next(l);c.send(u)},s.render(e,a,i)};function xq(t,e,r,n){var s=!1,i;function a(){if(!s){s=!0;var m=new Error("Request aborted");m.code="ECONNABORTED",n(m)}}function o(){if(!s){s=!0;var m=new Error("EISDIR, read");m.code="EISDIR",n(m)}}function c(m){s||(s=!0,n(m))}function l(){s||(s=!0,n())}function u(){i=!1}function p(m){if(m&&m.code==="ECONNRESET")return a();if(m)return c(m);s||setImmediate(function(){if(i!==!1&&!s){a();return}s||(s=!0,n())})}function d(){i=!0}e.on("directory",o),e.on("end",l),e.on("error",c),e.on("file",u),e.on("stream",d),Vde(t,p),r.headers&&e.on("headers",function(f){for(var v=r.headers,g=Object.keys(v),h=0;h&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Eq=P((_De,qk)=>{"use strict";var sme=Cp(),ime=Op(),Uk=hc(),ame=require("path").resolve,kq=dg(),ome=require("url");qk.exports=cme;qk.exports.mime=kq.mime;function cme(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),n=r.fallthrough!==!1,s=r.redirect!==!1,i=r.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=ame(t);var a=s?dme():pme();return function(c,l,u){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return u();l.statusCode=405,l.setHeader("Allow","GET, HEAD"),l.setHeader("Content-Length","0"),l.end();return}var p=!n,d=Uk.original(c),m=Uk(c).pathname;m==="/"&&d.pathname.substr(-1)!=="/"&&(m="");var f=kq(c,m,r);f.on("directory",a),i&&f.on("headers",i),n&&f.on("file",function(){p=!0}),f.on("error",function(g){if(p||!(g.statusCode<500)){u(g);return}u()}),f.pipe(l)}}function lme(t){for(var e=0;e1?"/"+t.substr(e):t}function ume(t,e){return` +Please see the 3.x to 4.x migration guide for details on how to update your app.`)}})};tr.lazyrouter=function(){this._router||(this._router=new Epe({caseSensitive:this.enabled("case sensitive routing"),strict:this.enabled("strict routing")}),this._router.use(Rpe(this.get("query parser fn"))),this._router.use(Tpe.init(this)))};tr.handle=function(e,r,n){var s=this._router,i=n||kpe(e,r,{env:this.get("env"),onerror:Mpe.bind(this)});if(!s){gg("no routes defined on app"),i();return}s.handle(e,r,i)};tr.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var s=e;Array.isArray(s)&&s.length!==0;)s=s[0];typeof s!="function"&&(r=1,n=e)}var i=Npe(Pk.call(arguments,r));if(i.length===0)throw new TypeError("app.use() requires a middleware function");this.lazyrouter();var a=this._router;return i.forEach(function(o){if(!o||!o.handle||!o.set)return a.use(n,o);gg(".use app under %s",n),o.mountpath=n,o.parent=this,a.use(n,function(l,u,p){var d=l.app;o.handle(l,u,function(m){Tc(l,d.request),Tc(u,d.response),p(m)})}),o.emit("mount",this)},this),this};tr.route=function(e){return this.lazyrouter(),this._router.route(e)};tr.engine=function(e,r){if(typeof r!="function")throw new Error("callback function required");var n=e[0]!=="."?"."+e:e;return this.engines[n]=r,this};tr.param=function(e,r){if(this.lazyrouter(),Array.isArray(e)){for(var n=0;n1?'directories "'+l.root.slice(0,-1).join('", "')+'" or "'+l.root[l.root.length-1]+'"':'directory "'+l.root+'"',d=new Error('Failed to lookup view "'+e+'" in views '+p);return d.view=l,i(d)}c.cache&&(s[e]=l)}$pe(l,c,i)};tr.listen=function(){var e=Ipe.createServer(this);return e.listen.apply(e,arguments)};function Mpe(t){this.get("env")!=="test"&&console.error(t.stack||t.toString())}function $pe(t,e,r){try{t.render(e,r)}catch(n){r(n)}}});var DU=P((oDe,Ik)=>{"use strict";Ik.exports=NU;Ik.exports.preferredCharsets=NU;var Lpe=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Upe(t){for(var e=t.split(","),r=0,n=0;r0}});var UU=P((cDe,Ck)=>{"use strict";Ck.exports=LU;Ck.exports.preferredEncodings=LU;var Wpe=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function Zpe(t){for(var e=t.split(","),r=!1,n=1,s=0,i=0;s0}});var WU=P((lDe,Ok)=>{"use strict";Ok.exports=BU;Ok.exports.preferredLanguages=BU;var Jpe=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function Qpe(t){for(var e=t.split(","),r=0,n=0;r0}});var QU=P((uDe,jk)=>{"use strict";jk.exports=KU;jk.exports.preferredMediaTypes=KU;var tde=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function rde(t){for(var e=ode(t),r=0,n=0;r0)if(i.every(function(a){return e.params[a]=="*"||(e.params[a]||"").toLowerCase()==(n.params[a]||"").toLowerCase()}))s|=1;else return null;return{i:r,o:e.i,q:e.q,s}}function KU(t,e){var r=rde(t===void 0?"*/*":t||"");if(!e)return r.filter(GU).sort(ZU).map(ide);var n=e.map(function(i,a){return nde(i,r,a)});return n.filter(GU).sort(ZU).map(function(i){return e[n.indexOf(i)]})}function ZU(t,e){return e.q-t.q||e.s-t.s||t.o-e.o||t.i-e.i||0}function ide(t){return t.type+"/"+t.subtype}function GU(t){return t.q>0}function JU(t){for(var e=0,r=0;(r=t.indexOf('"',r))!==-1;)e++,r++;return e}function ade(t){var e=t.indexOf("="),r,n;return e===-1?r=t:(r=t.substr(0,e),n=t.substr(e+1)),[r,n]}function ode(t){for(var e=t.split(","),r=1,n=0;r{"use strict";var lde=DU(),ude=UU(),pde=WU(),dde=QU();Ak.exports=gt;Ak.exports.Negotiator=gt;function gt(t){if(!(this instanceof gt))return new gt(t);this.request=t}gt.prototype.charset=function(e){var r=this.charsets(e);return r&&r[0]};gt.prototype.charsets=function(e){return lde(this.request.headers["accept-charset"],e)};gt.prototype.encoding=function(e){var r=this.encodings(e);return r&&r[0]};gt.prototype.encodings=function(e){return ude(this.request.headers["accept-encoding"],e)};gt.prototype.language=function(e){var r=this.languages(e);return r&&r[0]};gt.prototype.languages=function(e){return pde(this.request.headers["accept-language"],e)};gt.prototype.mediaType=function(e){var r=this.mediaTypes(e);return r&&r[0]};gt.prototype.mediaTypes=function(e){return dde(this.request.headers.accept,e)};gt.prototype.preferredCharset=gt.prototype.charset;gt.prototype.preferredCharsets=gt.prototype.charsets;gt.prototype.preferredEncoding=gt.prototype.encoding;gt.prototype.preferredEncodings=gt.prototype.encodings;gt.prototype.preferredLanguage=gt.prototype.language;gt.prototype.preferredLanguages=gt.prototype.languages;gt.prototype.preferredMediaType=gt.prototype.mediaType;gt.prototype.preferredMediaTypes=gt.prototype.mediaTypes});var XU=P((dDe,mde)=>{mde.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/3gpp-ims+xml":{source:"iana",compressible:!0},"application/3gpphal+json":{source:"iana",compressible:!0},"application/3gpphalforms+json":{source:"iana",compressible:!0},"application/a2l":{source:"iana"},"application/ace+cbor":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:!0},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:!0},"application/alto-updatestreamparams+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/at+jwt":{source:"iana"},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:!0,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:!0,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:!0,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:!0,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:!0,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:!0},"application/atsc-rsat+xml":{source:"iana",compressible:!0,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:!0},"application/bacnet-xdd+zip":{source:"iana",compressible:!1},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana",compressible:!0,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:!0},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:!0},"application/ccxml+xml":{source:"iana",compressible:!0,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:!0,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:!0},"application/cellml+xml":{source:"iana",compressible:!0},"application/cfw":{source:"iana"},"application/city+json":{source:"iana",compressible:!0},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:!0},"application/clue_info+xml":{source:"iana",compressible:!0},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:!0},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:!0},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:!0,extensions:["cpl"]},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:!0},"application/cstadata+xml":{source:"iana",compressible:!0},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",compressible:!0,extensions:["mpd"]},"application/dash-patch+xml":{source:"iana",compressible:!0,extensions:["mpp"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:!0,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:!0},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana",compressible:!0},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:!0},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:!0,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:!0},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:!0,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/elm+xml":{source:"iana",compressible:!0},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/emergencycalldata.comment+xml":{source:"iana",compressible:!0},"application/emergencycalldata.control+xml":{source:"iana",compressible:!0},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:!0},"application/emergencycalldata.veds+xml":{source:"iana",compressible:!0},"application/emma+xml":{source:"iana",compressible:!0,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:!0,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:!0},"application/epub+zip":{source:"iana",compressible:!1,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:!0},"application/express":{source:"iana",extensions:["exp"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:!0,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:!0},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1},"application/framework-attributes+xml":{source:"iana",compressible:!0},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:!0},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:!0,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:!0,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:!0},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:!0},"application/ibe-pkg-reply+xml":{source:"iana",compressible:!0},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:!0,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:!0,extensions:["its"]},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/jscalendar+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:!0},"application/kpml-response+xml":{source:"iana",compressible:!0},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:!0,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:!0},"application/lost+xml":{source:"iana",compressible:!0,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:!0},"application/lpf+zip":{source:"iana",compressible:!1},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:!0,extensions:["mads"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:!0,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:!0,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:!0},"application/mathml-presentation+xml":{source:"iana",compressible:!0},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:!0},"application/mbms-deregister+xml":{source:"iana",compressible:!0},"application/mbms-envelope+xml":{source:"iana",compressible:!0},"application/mbms-msk+xml":{source:"iana",compressible:!0},"application/mbms-msk-response+xml":{source:"iana",compressible:!0},"application/mbms-protection-description+xml":{source:"iana",compressible:!0},"application/mbms-reception-report+xml":{source:"iana",compressible:!0},"application/mbms-register+xml":{source:"iana",compressible:!0},"application/mbms-register-response+xml":{source:"iana",compressible:!0},"application/mbms-schedule+xml":{source:"iana",compressible:!0},"application/mbms-user-service-description+xml":{source:"iana",compressible:!0},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:!0,extensions:["mpf"]},"application/media_control+xml":{source:"iana",compressible:!0},"application/mediaservercontrol+xml":{source:"iana",compressible:!0,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",compressible:!0,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:!0,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:!0,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/missing-blocks+cbor-seq":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:!0,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:!0,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:!0,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:!0},"application/mrb-publish+xml":{source:"iana",compressible:!0},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:!0},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/oblivious-dns-message":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:!0},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:!0,extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:!0,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:!0},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p21":{source:"iana"},"application/p21+zip":{source:"iana",compressible:!1},"application/p2p-overlay+xml":{source:"iana",compressible:!0,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:!0,extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana",extensions:["asc"]},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:!0,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana",compressible:!0},"application/provenance+xml":{source:"iana",compressible:!0,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:!1},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:!0},"application/pskc+xml":{source:"iana",compressible:!0,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:!0},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:!0,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",compressible:!0,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:!0,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:!0},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:!0},"application/rls-services+xml":{source:"iana",compressible:!0,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:!0,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:!0,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:!0,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:!0,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:!0},"application/samlmetadata+xml":{source:"iana",compressible:!0},"application/sarif+json":{source:"iana",compressible:!0},"application/sarif-external-properties+json":{source:"iana",compressible:!0},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:!0,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:!0},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:!0},"application/senml+xml":{source:"iana",compressible:!0,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:!0},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:!0},"application/sensml+xml":{source:"iana",compressible:!0,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:!0},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:!0,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:!0},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:!0,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:!0,extensions:["srx"]},"application/spdx+json":{source:"iana",compressible:!0},"application/spirits-event+xml":{source:"iana",compressible:!0},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:!0,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:!0,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:!0,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:!0,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:!0},"application/swid+xml":{source:"iana",compressible:!0,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/taxii+json":{source:"iana",compressible:!0},"application/td+json":{source:"iana",compressible:!0},"application/tei+xml":{source:"iana",compressible:!0,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:!0,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:!0},"application/tnauthlist":{source:"iana"},"application/token-introspection+jwt":{source:"iana"},"application/toml":{compressible:!0,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana",extensions:["trig"]},"application/ttml+xml":{source:"iana",compressible:!0,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:!1,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:!0},"application/urc-ressheet+xml":{source:"iana",compressible:!0,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:!0,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:!0},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana",compressible:!0},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:!0,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:!0},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:!0},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:!0},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:!1,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:!0,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.age":{source:"iana",extensions:["age"]},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:!0},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.arrow.file":{source:"iana"},"application/vnd.apache.arrow.stream":{source:"iana"},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",compressible:!0,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:!0},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana",compressible:!0},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:!0,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:!0},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:!0},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:!0,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:!0,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana",compressible:!1},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:!0,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:!0},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:!0},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:!0},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:!0},"application/vnd.cyclonedx+xml":{source:"iana",compressible:!0},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:!1},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:!0,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:!0},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:!0},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:!0},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:!0},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.eclipse.ditto+json":{source:"iana",compressible:!0},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:!0},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:!0},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:!1},"application/vnd.eszigno3+xml":{source:"iana",compressible:!0,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:!1},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:!1},"application/vnd.etsi.cug+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:!0},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:!0},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:!0},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:!0},"application/vnd.etsi.sci+xml":{source:"iana",compressible:!0},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:!0},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:!0},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eu.kasparian.car+json":{source:"iana",compressible:!0},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:!1},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.familysearch.gedcom+zip":{source:"iana",compressible:!1},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:!1},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:!0},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:!0},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:!0},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana",compressible:!0},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:!0},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:!1},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:!0},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",compressible:!0,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:!0,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hl7cda+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hl7v2+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:!0},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:!1},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:!1},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:!0},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:!0},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:!0},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:!0},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:!0,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:!1},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",compressible:!0,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:!0},"application/vnd.liberty-request+xml":{source:"iana",compressible:!0},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:!0,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:!1},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:!0},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxar.archive.3tz+zip":{source:"iana",compressible:!1},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:!0},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:!0},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:!0},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:!0},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:!0},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.nacamar.ybrid+json":{source:"iana",compressible:!0},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:!0},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:!0},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:!0},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:!0},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:!0,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:!0},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:!0},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:!0},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:!0},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:!0},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:!0},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:!0},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:!0},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:!0},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:!0},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:!0},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:!0},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:!0},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:!0,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:!0},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:!0},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:!0},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:!0},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:!0},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:!0,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:!0,extensions:["osm"]},"application/vnd.opentimestamps.ots":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:!0},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:!0},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:!0},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:!0},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:!0},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:!0},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:!0},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:!0,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.resilient.logic":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:!0,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:!0},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:!0},"application/vnd.shopkick+json":{source:"iana",compressible:!0},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:!0,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:!0,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:!0},"application/vnd.syft+json":{source:"iana",compressible:!0},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:!0},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:!0},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:!0},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:!0,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veritone.aion+json":{source:"iana",compressible:!0},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:!0},"application/vnd.wv.ssp+xml":{source:"iana",compressible:!0},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:!0},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:!0,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:!0,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:!0,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:!0,extensions:["wif"]},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:!0,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:!0,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:!0,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:!0,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:!0,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-iwork-keynote-sffkey":{extensions:["key"]},"application/x-iwork-numbers-sffnumbers":{extensions:["numbers"]},"application/x-iwork-pages-sffpages":{extensions:["pages"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:!0,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:!0},"application/xaml+xml":{source:"apache",compressible:!0,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:!0,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:!0,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:!0,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:!0,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:!0},"application/xcap-ns+xml":{source:"iana",compressible:!0,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:!0},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:!0},"application/xenc+xml":{source:"iana",compressible:!0,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xliff+xml":{source:"iana",compressible:!0,extensions:["xlf"]},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:!0},"application/xmpp+xml":{source:"iana",compressible:!0},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:!0,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:!0,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:!0,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:!0,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana",compressible:!0},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana",compressible:!0},"application/yin+xml":{source:"iana",compressible:!0,extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:!1,extensions:["apng"]},"image/avci":{source:"iana",extensions:["avci"]},"image/avcs":{source:"iana",extensions:["avcs"]},"image/avif":{source:"iana",compressible:!1,extensions:["avif"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:!1,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",compressible:!0,extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{compressible:!0,extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/step":{source:"iana"},"model/step+xml":{source:"iana",compressible:!0,extensions:["stpx"]},"model/step+zip":{source:"iana",compressible:!1,extensions:["stpz"]},"model/step-xml+zip":{source:"iana",compressible:!1,extensions:["stpxz"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:!0,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:!0},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:!1,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{compressible:!0,extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:!0,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.familysearch.gedcom":{source:"iana",extensions:["ged"]},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:!0,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/jxsv":{source:"iana"},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/vp9":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}});var tq=P((mDe,eq)=>{eq.exports=XU()});var sq=P(mn=>{"use strict";var vg=tq(),fde=require("path").extname,rq=/^\s*([^;\s]*)(?:;|\s|$)/,hde=/^text\//i;mn.charset=nq;mn.charsets={lookup:nq};mn.contentType=gde;mn.extension=vde;mn.extensions=Object.create(null);mn.lookup=yde;mn.types=Object.create(null);bde(mn.extensions,mn.types);function nq(t){if(!t||typeof t!="string")return!1;var e=rq.exec(t),r=e&&vg[e[1].toLowerCase()];return r&&r.charset?r.charset:e&&hde.test(e[1])?"UTF-8":!1}function gde(t){if(!t||typeof t!="string")return!1;var e=t.indexOf("/")===-1?mn.lookup(t):t;if(!e)return!1;if(e.indexOf("charset")===-1){var r=mn.charset(e);r&&(e+="; charset="+r.toLowerCase())}return e}function vde(t){if(!t||typeof t!="string")return!1;var e=rq.exec(t),r=e&&mn.extensions[e[1].toLowerCase()];return!r||!r.length?!1:r[0]}function yde(t){if(!t||typeof t!="string")return!1;var e=fde("x."+t).toLowerCase().substr(1);return e&&mn.types[e]||!1}function bde(t,e){var r=["nginx","apache",void 0,"iana"];Object.keys(vg).forEach(function(s){var i=vg[s],a=i.extensions;if(!(!a||!a.length)){t[s]=a;for(var o=0;ou||l===u&&e[c].substr(0,12)==="application/"))continue}e[c]=s}}})}});var aq=P((hDe,iq)=>{"use strict";var xde=YU(),_de=sq();iq.exports=wn;function wn(t){if(!(this instanceof wn))return new wn(t);this.headers=t.headers,this.negotiator=new xde(t)}wn.prototype.type=wn.prototype.types=function(t){var e=t;if(e&&!Array.isArray(e)){e=new Array(arguments.length);for(var r=0;r{"use strict";var yg=aq(),Gp=Ns()("express"),kde=require("net").isIP,Ede=ac(),Tde=require("http"),Rde=gk(),Pde=vk(),Ide=hc(),oq=kk(),xt=Object.create(Tde.IncomingMessage.prototype);cq.exports=xt;xt.get=xt.header=function(e){if(!e)throw new TypeError("name argument is required to req.get");if(typeof e!="string")throw new TypeError("name must be a string to req.get");var r=e.toLowerCase();switch(r){case"referer":case"referrer":return this.headers.referrer||this.headers.referer;default:return this.headers[r]}};xt.accepts=function(){var t=yg(this);return t.types.apply(t,arguments)};xt.acceptsEncodings=function(){var t=yg(this);return t.encodings.apply(t,arguments)};xt.acceptsEncoding=Gp.function(xt.acceptsEncodings,"req.acceptsEncoding: Use acceptsEncodings instead");xt.acceptsCharsets=function(){var t=yg(this);return t.charsets.apply(t,arguments)};xt.acceptsCharset=Gp.function(xt.acceptsCharsets,"req.acceptsCharset: Use acceptsCharsets instead");xt.acceptsLanguages=function(){var t=yg(this);return t.languages.apply(t,arguments)};xt.acceptsLanguage=Gp.function(xt.acceptsLanguages,"req.acceptsLanguage: Use acceptsLanguages instead");xt.range=function(e,r){var n=this.get("Range");if(n)return Pde(e,n,r)};xt.param=function(e,r){var n=this.params||{},s=this.body||{},i=this.query||{},a=arguments.length===1?"name":"name, default";return Gp("req.param("+a+"): Use req.params, req.body, or req.query instead"),n[e]!=null&&n.hasOwnProperty(e)?n[e]:s[e]!=null?s[e]:i[e]!=null?i[e]:r};xt.is=function(e){var r=e;if(!Array.isArray(e)){r=new Array(arguments.length);for(var n=0;n=200&&r<300||r===304?Rde(this.headers,{etag:e.get("ETag"),"last-modified":e.get("Last-Modified")}):!1});fs(xt,"stale",function(){return!this.fresh});fs(xt,"xhr",function(){var e=this.get("X-Requested-With")||"";return e.toLowerCase()==="xmlhttprequest"});function fs(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get:r})}});var Nk=P(bg=>{var pq=require("crypto");bg.sign=function(t,e){if(typeof t!="string")throw new TypeError("Cookie value must be provided as a string.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");return t+"."+pq.createHmac("sha256",e).update(t).digest("base64").replace(/\=+$/,"")};bg.unsign=function(t,e){if(typeof t!="string")throw new TypeError("Signed cookie string must be provided.");if(typeof e!="string")throw new TypeError("Secret string must be provided.");var r=t.slice(0,t.lastIndexOf(".")),n=bg.sign(r,e);return uq(n)==uq(t)?r:!1};function uq(t){return pq.createHash("sha1").update(t).digest("hex")}});var zk=P(Dk=>{"use strict";Dk.parse=zde;Dk.serialize=Mde;var Cde=Object.prototype.toString,Ode=Object.prototype.hasOwnProperty,jde=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Ade=/^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/,Nde=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,Dde=/^[\u0020-\u003A\u003D-\u007E]*$/;function zde(t,e){if(typeof t!="string")throw new TypeError("argument str must be a string");var r={},n=t.length;if(n<2)return r;var s=e&&e.decode||$de,i=0,a=0,o=0;do{if(a=t.indexOf("=",i),a===-1)break;if(o=t.indexOf(";",i),o===-1)o=n;else if(a>o){i=t.lastIndexOf(";",a-1)+1;continue}var c=dq(t,i,a),l=mq(t,a,c),u=t.slice(c,l);if(!Ode.call(r,u)){var p=dq(t,a+1,o),d=mq(t,o,p);t.charCodeAt(p)===34&&t.charCodeAt(d-1)===34&&(p++,d--);var m=t.slice(p,d);r[u]=Ude(m,s)}i=o+1}while(ir;){var n=t.charCodeAt(--e);if(n!==32&&n!==9)return e+1}return r}function Mde(t,e,r){var n=r&&r.encode||encodeURIComponent;if(typeof n!="function")throw new TypeError("option encode is invalid");if(!jde.test(t))throw new TypeError("argument name is invalid");var s=n(e);if(!Ade.test(s))throw new TypeError("argument val is invalid");var i=t+"="+s;if(!r)return i;if(r.maxAge!=null){var a=Math.floor(r.maxAge);if(!isFinite(a))throw new TypeError("option maxAge is invalid");i+="; Max-Age="+a}if(r.domain){if(!Nde.test(r.domain))throw new TypeError("option domain is invalid");i+="; Domain="+r.domain}if(r.path){if(!Dde.test(r.path))throw new TypeError("option path is invalid");i+="; Path="+r.path}if(r.expires){var o=r.expires;if(!Lde(o)||isNaN(o.valueOf()))throw new TypeError("option expires is invalid");i+="; Expires="+o.toUTCString()}if(r.httpOnly&&(i+="; HttpOnly"),r.secure&&(i+="; Secure"),r.partitioned&&(i+="; Partitioned"),r.priority){var c=typeof r.priority=="string"?r.priority.toLowerCase():r.priority;switch(c){case"low":i+="; Priority=Low";break;case"medium":i+="; Priority=Medium";break;case"high":i+="; Priority=High";break;default:throw new TypeError("option priority is invalid")}}if(r.sameSite){var l=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return i}function $de(t){return t.indexOf("%")!==-1?decodeURIComponent(t):t}function Lde(t){return Cde.call(t)==="[object Date]"}function Ude(t,e){try{return e(t)}catch{return t}}});var $k=P((bDe,Mk)=>{"use strict";Mk.exports=Fde;Mk.exports.append=hq;var qde=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function hq(t,e){if(typeof t!="string")throw new TypeError("header argument is required");if(!e)throw new TypeError("field argument is required");for(var r=Array.isArray(e)?e:fq(String(e)),n=0;n{"use strict";var Vp=ag().Buffer,gq=uk(),Hde=Pa(),fn=Ns()("express"),Bde=Cp(),Wde=Op(),Zde=require("http"),Gde=Li().isAbsolute,Vde=cp(),vq=require("path"),xg=Yu(),yq=$p(),Kde=Nk().sign,Jde=Li().normalizeType,Qde=Li().normalizeTypes,Yde=Li().setCharset,Xde=zk(),Lk=dg(),eme=vq.extname,bq=Lk.mime,tme=vq.resolve,rme=$k(),kt=Object.create(Zde.ServerResponse.prototype);wq.exports=kt;var nme=/;\s*charset\s*=/;kt.status=function(e){return(typeof e=="string"||Math.floor(e)!==e)&&e>99&&e<1e3&&fn("res.status("+JSON.stringify(e)+"): use res.status("+Math.floor(e)+") instead"),this.statusCode=e,this};kt.links=function(t){var e=this.get("Link")||"";return e&&(e+=", "),this.set("Link",e+Object.keys(t).map(function(r){return"<"+t[r]+'>; rel="'+r+'"'}).join(", "))};kt.send=function(e){var r=e,n,s=this.req,i,a=this.app;switch(arguments.length===2&&(typeof arguments[0]!="number"&&typeof arguments[1]=="number"?(fn("res.send(body, status): Use res.status(status).send(body) instead"),this.statusCode=arguments[1]):(fn("res.send(status, body): Use res.status(status).send(body) instead"),this.statusCode=arguments[0],r=arguments[1])),typeof r=="number"&&arguments.length===1&&(this.get("Content-Type")||this.type("txt"),fn("res.send(status): Use res.sendStatus(status) instead"),this.statusCode=r,r=xg.message[r]),typeof r){case"string":this.get("Content-Type")||this.type("html");break;case"boolean":case"number":case"object":if(r===null)r="";else if(Vp.isBuffer(r))this.get("Content-Type")||this.type("bin");else return this.json(r);break}typeof r=="string"&&(n="utf8",i=this.get("Content-Type"),typeof i=="string"&&this.set("Content-Type",Yde(i,"utf-8")));var o=a.get("etag fn"),c=!this.get("ETag")&&typeof o=="function",l;r!==void 0&&(Vp.isBuffer(r)?l=r.length:!c&&r.length<1e3?l=Vp.byteLength(r,n):(r=Vp.from(r,n),n=void 0,l=r.length),this.set("Content-Length",l));var u;return c&&l!==void 0&&(u=o(r,n))&&this.set("ETag",u),s.fresh&&(this.statusCode=304),(this.statusCode===204||this.statusCode===304)&&(this.removeHeader("Content-Type"),this.removeHeader("Content-Length"),this.removeHeader("Transfer-Encoding"),r=""),this.statusCode===205&&(this.set("Content-Length","0"),this.removeHeader("Transfer-Encoding"),r=""),s.method==="HEAD"?this.end():this.end(r,n),this};kt.json=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.json(obj, status): Use res.status(status).json(obj) instead"),this.statusCode=arguments[1]):(fn("res.json(status, obj): Use res.status(status).json(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=_q(r,i,a,s);return this.get("Content-Type")||this.set("Content-Type","application/json"),this.send(o)};kt.jsonp=function(e){var r=e;arguments.length===2&&(typeof arguments[1]=="number"?(fn("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[1]):(fn("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead"),this.statusCode=arguments[0],r=arguments[1]));var n=this.app,s=n.get("json escape"),i=n.get("json replacer"),a=n.get("json spaces"),o=_q(r,i,a,s),c=this.req.query[n.get("jsonp callback name")];return this.get("Content-Type")||(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","application/json")),Array.isArray(c)&&(c=c[0]),typeof c=="string"&&c.length!==0&&(this.set("X-Content-Type-Options","nosniff"),this.set("Content-Type","text/javascript"),c=c.replace(/[^\[\]\w$.]/g,""),o===void 0?o="":typeof o=="string"&&(o=o.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")),o="/**/ typeof "+c+" === 'function' && "+c+"("+o+");"),this.send(o)};kt.sendStatus=function(e){var r=xg.message[e]||String(e);return this.statusCode=e,this.type("txt"),this.send(r)};kt.sendFile=function(e,r,n){var s=n,i=this.req,a=this,o=i.next,c=r||{};if(!e)throw new TypeError("path argument is required to res.sendFile");if(typeof e!="string")throw new TypeError("path must be a string to res.sendFile");if(typeof r=="function"&&(s=r,c={}),!c.root&&!Gde(e))throw new TypeError("path must be absolute or specify root to res.sendFile");var l=encodeURI(e),u=Lk(i,l,c);xq(a,u,c,function(p){if(s)return s(p);if(p&&p.code==="EISDIR")return o();p&&p.code!=="ECONNABORTED"&&p.syscall!=="write"&&o(p)})};kt.sendfile=function(t,e,r){var n=r,s=this.req,i=this,a=s.next,o=e||{};typeof e=="function"&&(n=e,o={});var c=Lk(s,t,o);xq(i,c,o,function(l){if(n)return n(l);if(l&&l.code==="EISDIR")return a();l&&l.code!=="ECONNABORTED"&&l.syscall!=="write"&&a(l)})};kt.sendfile=fn.function(kt.sendfile,"res.sendfile: Use res.sendFile instead");kt.download=function(e,r,n,s){var i=s,a=r,o=n||null;typeof r=="function"?(i=r,a=null,o=null):typeof n=="function"&&(i=n,o=null),typeof r=="object"&&(typeof n=="function"||n===void 0)&&(a=null,o=r);var c={"Content-Disposition":gq(a||e)};if(o&&o.headers)for(var l=Object.keys(o.headers),u=0;u0?e.accepts(n):!1;return this.vary("Accept"),s?(this.set("Content-Type",Jde(s).value),t[s](e,this,r)):t.default?t.default(e,this,r):r(Hde(406,{types:Qde(n).map(function(i){return i.value})})),this};kt.attachment=function(e){return e&&this.type(eme(e)),this.set("Content-Disposition",gq(e)),this};kt.append=function(e,r){var n=this.get(e),s=r;return n&&(s=Array.isArray(n)?n.concat(r):Array.isArray(r)?[n].concat(r):[n,r]),this.set(e,s)};kt.set=kt.header=function(e,r){if(arguments.length===2){var n=Array.isArray(r)?r.map(String):String(r);if(e.toLowerCase()==="content-type"){if(Array.isArray(n))throw new TypeError("Content-Type cannot be set to an Array");if(!nme.test(n)){var s=bq.charsets.lookup(n.split(";")[0]);s&&(n+="; charset="+s.toLowerCase())}}this.setHeader(e,n)}else for(var i in e)this.set(i,e[i]);return this};kt.get=function(t){return this.getHeader(t)};kt.clearCookie=function(e,r){r&&(r.maxAge&&fn('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'),r.expires&&fn('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.'));var n=yq({expires:new Date(1),path:"/"},r);return this.cookie(e,"",n)};kt.cookie=function(t,e,r){var n=yq({},r),s=this.req.secret,i=n.signed;if(i&&!s)throw new Error('cookieParser("secret") required for signed cookies');var a=typeof e=="object"?"j:"+JSON.stringify(e):String(e);if(i&&(a="s:"+Kde(a,s)),n.maxAge!=null){var o=n.maxAge-0;isNaN(o)||(n.expires=new Date(Date.now()+o),n.maxAge=Math.floor(o/1e3))}return n.path==null&&(n.path="/"),this.append("Set-Cookie",Xde.serialize(t,String(a),n)),this};kt.location=function(e){var r;return e==="back"?(fn('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices'),r=this.req.get("Referrer")||"/"):r=String(e),this.set("Location",Bde(r))};kt.redirect=function(e){var r=e,n,s=302;arguments.length===2&&(typeof arguments[0]=="number"?(s=arguments[0],r=arguments[1]):(fn("res.redirect(url, status): Use res.redirect(status, url) instead"),s=arguments[1])),r=this.location(r).get("Location"),this.format({text:function(){n=xg.message[s]+". Redirecting to "+r},html:function(){var i=Wde(r);n="

"+xg.message[s]+". Redirecting to "+i+"

"},default:function(){n=""}}),this.statusCode=s,this.set("Content-Length",Vp.byteLength(n)),this.req.method==="HEAD"?this.end():this.end(n)};kt.vary=function(t){return!t||Array.isArray(t)&&!t.length?(fn("res.vary(): Provide a field name"),this):(rme(this,t),this)};kt.render=function(e,r,n){var s=this.req.app,i=n,a=r||{},o=this.req,c=this;typeof r=="function"&&(i=r,a={}),a._locals=c.locals,i=i||function(l,u){if(l)return o.next(l);c.send(u)},s.render(e,a,i)};function xq(t,e,r,n){var s=!1,i;function a(){if(!s){s=!0;var m=new Error("Request aborted");m.code="ECONNABORTED",n(m)}}function o(){if(!s){s=!0;var m=new Error("EISDIR, read");m.code="EISDIR",n(m)}}function c(m){s||(s=!0,n(m))}function l(){s||(s=!0,n())}function u(){i=!1}function p(m){if(m&&m.code==="ECONNRESET")return a();if(m)return c(m);s||setImmediate(function(){if(i!==!1&&!s){a();return}s||(s=!0,n())})}function d(){i=!0}e.on("directory",o),e.on("end",l),e.on("error",c),e.on("file",u),e.on("stream",d),Vde(t,p),r.headers&&e.on("headers",function(f){for(var v=r.headers,g=Object.keys(v),h=0;h&]/g,function(i){switch(i.charCodeAt(0)){case 60:return"\\u003c";case 62:return"\\u003e";case 38:return"\\u0026";default:return i}})),s}});var Eq=P((_De,qk)=>{"use strict";var sme=Cp(),ime=Op(),Uk=hc(),ame=require("path").resolve,kq=dg(),ome=require("url");qk.exports=cme;qk.exports.mime=kq.mime;function cme(t,e){if(!t)throw new TypeError("root path required");if(typeof t!="string")throw new TypeError("root path must be a string");var r=Object.create(e||null),n=r.fallthrough!==!1,s=r.redirect!==!1,i=r.setHeaders;if(i&&typeof i!="function")throw new TypeError("option setHeaders must be function");r.maxage=r.maxage||r.maxAge||0,r.root=ame(t);var a=s?dme():pme();return function(c,l,u){if(c.method!=="GET"&&c.method!=="HEAD"){if(n)return u();l.statusCode=405,l.setHeader("Allow","GET, HEAD"),l.setHeader("Content-Length","0"),l.end();return}var p=!n,d=Uk.original(c),m=Uk(c).pathname;m==="/"&&d.pathname.substr(-1)!=="/"&&(m="");var f=kq(c,m,r);f.on("directory",a),i&&f.on("headers",i),n&&f.on("file",function(){p=!0}),f.on("error",function(g){if(p||!(g.statusCode<500)){u(g);return}u()}),f.pipe(l)}}function lme(t){for(var e=0;e1?"/"+t.substr(e):t}function ume(t,e){return` @@ -633,7 +633,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app. WHERE usage_count > 0 ORDER BY usage_count DESC LIMIT ? - `).all(e)}suggestTagsForObservation(e){let r=this.getObservationById(e);if(!r)return[];let n=[];if(r.concepts)try{let a=JSON.parse(r.concepts);n.push(...a)}catch{typeof r.concepts=="string"&&n.push(...r.concepts.split(",").map(a=>a.trim()))}r.type&&n.push(r.type);let s=this.getAllTags(),i=new Set(s.map(a=>a.name));return[...new Set(n.map(a=>a.toLowerCase().trim()))].filter(Boolean)}}});var Ha={};ks(Ha,{PendingMessageStore:()=>ed});var ed,Fi=xe(()=>{"use strict";se();ed=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let s=Date.now();return this.db.prepare(` + `).all(e)}suggestTagsForObservation(e){let r=this.getObservationById(e);if(!r)return[];let n=[];if(r.concepts)try{let a=JSON.parse(r.concepts);n.push(...a)}catch{typeof r.concepts=="string"&&n.push(...r.concepts.split(",").map(a=>a.trim()))}r.type&&n.push(r.type);let s=this.getAllTags(),i=new Set(s.map(a=>a.name));return[...new Set(n.map(a=>a.toLowerCase().trim()))].filter(Boolean)}}});var Ba={};ks(Ba,{PendingMessageStore:()=>ed});var ed,Fi=xe(()=>{"use strict";se();ed=class{db;maxRetries;constructor(e,r=3){this.db=e,this.maxRetries=r}enqueue(e,r,n){let s=Date.now();return this.db.prepare(` INSERT INTO pending_messages ( session_db_id, content_session_id, message_type, tool_name, tool_input, tool_response, cwd, @@ -809,7 +809,7 @@ Remember that we record these observations as a way of helping us stay on track IMPORTANT! You MUST fill in ALL six fields (request, investigated, learned, completed, next_steps, notes) with actual content - never leave any field empty or use placeholder text. If a field doesn't apply, write a brief explanation why (e.g., "No investigation needed - straightforward implementation"). -Do not output anything other than the summary content formatted in the XML structure above.`}},et=class t{static instance=null;activeMode=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}loadMode(){return this.activeMode=m6,m6}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(n=>n.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(n=>n.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(n=>n.id===e)?.label||e}}});function Lg(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return _.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function Bn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Wr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function ii(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function v6(t,e){return eE.default.isAbsolute(t)?eE.default.relative(e,t):t}function hs(t,e,r){let n=Lg(t);if(n.length>0)return v6(n[0],e);if(r){let s=Lg(r);if(s.length>0)return v6(s[0],e)}return"General"}function Oc(t){return t?Math.ceil(t.length/4):0}function Ba(t,e){let r=new Map;for(let s of t){let i=e(s),a=ii(i);r.has(a)||r.set(a,[]),r.get(a).push(s)}let n=Array.from(r.entries()).sort((s,i)=>{let a=new Date(s[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(n)}var eE,jc=xe(()=>{"use strict";eE=Y(require("path"),1);se()});function _6(t){let e=Ug.default.join(t,".git"),r;try{r=(0,qg.statSync)(e)}catch{return rd}if(!r.isFile())return rd;let n;try{n=(0,qg.readFileSync)(e,"utf-8").trim()}catch{return rd}let s=n.match(/^gitdir:\s*(.+)$/);if(!s)return rd;let a=s[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!a)return rd;let o=a[1],c=Ug.default.basename(t),l=Ug.default.basename(o);return{isWorktree:!0,worktreeName:c,parentRepoPath:o,parentProjectName:l}}var qg,Ug,rd,w6=xe(()=>{"use strict";qg=require("fs"),Ug=Y(require("path"),1),rd={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function nfe(t){return t.startsWith("~/")?hr.default.join(tE.default.homedir(),t.slice(2)):t==="~"?tE.default.homedir():t}function ai(t){if(!t||t.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=hr.default.basename(t);if(e===""){if(process.platform==="win32"){let s=t.match(/^([A-Z]):\\/i);if(s){let a=`drive-${s[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}let r=k6(t);return r||e}function S6(t){let e=ai(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=_6(t);return r.isWorktree&&r.parentProjectName?{primary:e,parent:r.parentProjectName,isWorktree:!0,allProjects:[r.parentProjectName,e]}:{primary:e,parent:null,isWorktree:!1,allProjects:[e]}}function sfe(t,e){if(!t||t.trim()==="")return null;let r=nfe(t);if(!hr.default.isAbsolute(r))if(e)r=hr.default.resolve(e,r);else return _.debug("PROJECT_NAME","Skipping relative path without basePath",{filePath:t}),null;let n=hr.default.normalize(r),s=k6(n);if(s)return s;let i=ife(n);return i||afe(n)}function k6(t){try{let e;try{e=Fg.default.statSync(t).isDirectory()?t:hr.default.dirname(t)}catch{e=hr.default.dirname(t)}let r=hr.default.parse(e).root,n=0,s=20;for(;e!==r&&n=s&&!o.includes(a.toLowerCase()))return a;e=hr.default.dirname(e),n++}return null}catch{return null}}function E6(t,e,r){if(!t||t.length===0)return e;let n=new Map;for(let a of t){let o=sfe(a,r);o&&n.set(o,(n.get(o)||0)+1)}if(n.size===0)return e;let s=0,i=e;for(let[a,o]of n)o>s&&(s=o,i=a);return i!==e&&_.debug("PROJECT_NAME","Detected project from files differs from session",{detectedProject:i,sessionProject:e,fileCount:t.length}),i}var hr,Fg,tE,rfe,Wa=xe(()=>{"use strict";hr=Y(require("path"),1),Fg=Y(require("fs"),1),tE=Y(require("os"),1);se();w6();rfe=["repos","projects","code","work","src","dev","git","workspace","workspaces"]});function a1(){let t=kB.default.join((0,EB.homedir)(),".pilot/memory","settings.json"),e=je.loadFromFile(t),r=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES.split(",").map(s=>s.trim()).filter(Boolean)),n=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(s=>s.trim()).filter(Boolean));return{totalObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_PILOT_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS,showWorkTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS,showSavingsAmount:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT,showSavingsPercent:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT,observationTypes:r,observationConcepts:n,fullObservationField:e.CLAUDE_PILOT_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY,showLastMessage:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE}}var kB,EB,o1=xe(()=>{"use strict";kB=Y(require("path"),1),EB=require("os");Or()});var X,TB,um,pm=xe(()=>{"use strict";X={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},TB=4,um=1});function c1(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/TB)}function l1(t){let e=t.length,r=t.reduce((a,o)=>a+c1(o),0),n=t.reduce((a,o)=>a+(o.discovery_tokens||0),0),s=n-r,i=n>0?Math.round(s/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:s,savingsPercent:i}}function USe(t){return et.getInstance().getWorkEmoji(t)}function xl(t,e){let r=c1(t),n=t.discovery_tokens||0,s=USe(t.type),i=n>0?`${s} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:i,workEmoji:s}}function Hy(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var mo=xe(()=>{"use strict";pm();Hn()});function u1(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(",");return t.db.prepare(` +Do not output anything other than the summary content formatted in the XML structure above.`}},et=class t{static instance=null;activeMode=null;constructor(){}static getInstance(){return t.instance||(t.instance=new t),t.instance}loadMode(){return this.activeMode=m6,m6}getActiveMode(){if(!this.activeMode)throw new Error("No mode loaded. Call loadMode() first.");return this.activeMode}getObservationTypes(){return this.getActiveMode().observation_types}getObservationConcepts(){return this.getActiveMode().observation_concepts}getTypeIcon(e){return this.getObservationTypes().find(n=>n.id===e)?.emoji||"\u{1F4DD}"}getWorkEmoji(e){return this.getObservationTypes().find(n=>n.id===e)?.work_emoji||"\u{1F4DD}"}validateType(e){return this.getObservationTypes().some(r=>r.id===e)}getTypeLabel(e){return this.getObservationTypes().find(n=>n.id===e)?.label||e}}});function Lg(t){if(!t)return[];try{let e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(e){return _.debug("PARSER","Failed to parse JSON array, using empty fallback",{preview:t?.substring(0,50)},e),[]}}function Bn(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0})}function Wr(t){return new Date(t).toLocaleString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}function ii(t){return new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric"})}function v6(t,e){return eE.default.isAbsolute(t)?eE.default.relative(e,t):t}function hs(t,e,r){let n=Lg(t);if(n.length>0)return v6(n[0],e);if(r){let s=Lg(r);if(s.length>0)return v6(s[0],e)}return"General"}function Oc(t){return t?Math.ceil(t.length/4):0}function Wa(t,e){let r=new Map;for(let s of t){let i=e(s),a=ii(i);r.has(a)||r.set(a,[]),r.get(a).push(s)}let n=Array.from(r.entries()).sort((s,i)=>{let a=new Date(s[0]).getTime(),o=new Date(i[0]).getTime();return a-o});return new Map(n)}var eE,jc=xe(()=>{"use strict";eE=Y(require("path"),1);se()});function _6(t){let e=Ug.default.join(t,".git"),r;try{r=(0,qg.statSync)(e)}catch{return rd}if(!r.isFile())return rd;let n;try{n=(0,qg.readFileSync)(e,"utf-8").trim()}catch{return rd}let s=n.match(/^gitdir:\s*(.+)$/);if(!s)return rd;let a=s[1].match(/^(.+)[/\\]\.git[/\\]worktrees[/\\]([^/\\]+)$/);if(!a)return rd;let o=a[1],c=Ug.default.basename(t),l=Ug.default.basename(o);return{isWorktree:!0,worktreeName:c,parentRepoPath:o,parentProjectName:l}}var qg,Ug,rd,w6=xe(()=>{"use strict";qg=require("fs"),Ug=Y(require("path"),1),rd={isWorktree:!1,worktreeName:null,parentRepoPath:null,parentProjectName:null}});function nfe(t){return t.startsWith("~/")?hr.default.join(tE.default.homedir(),t.slice(2)):t==="~"?tE.default.homedir():t}function ai(t){if(!t||t.trim()==="")return _.warn("PROJECT_NAME","Empty cwd provided, using fallback",{cwd:t}),"unknown-project";let e=hr.default.basename(t);if(e===""){if(process.platform==="win32"){let s=t.match(/^([A-Z]):\\/i);if(s){let a=`drive-${s[1].toUpperCase()}`;return _.info("PROJECT_NAME","Drive root detected",{cwd:t,projectName:a}),a}}return _.warn("PROJECT_NAME","Root directory detected, using fallback",{cwd:t}),"unknown-project"}let r=k6(t);return r||e}function S6(t){let e=ai(t);if(!t)return{primary:e,parent:null,isWorktree:!1,allProjects:[e]};let r=_6(t);return r.isWorktree&&r.parentProjectName?{primary:e,parent:r.parentProjectName,isWorktree:!0,allProjects:[r.parentProjectName,e]}:{primary:e,parent:null,isWorktree:!1,allProjects:[e]}}function sfe(t,e){if(!t||t.trim()==="")return null;let r=nfe(t);if(!hr.default.isAbsolute(r))if(e)r=hr.default.resolve(e,r);else return _.debug("PROJECT_NAME","Skipping relative path without basePath",{filePath:t}),null;let n=hr.default.normalize(r),s=k6(n);if(s)return s;let i=ife(n);return i||afe(n)}function k6(t){try{let e;try{e=Fg.default.statSync(t).isDirectory()?t:hr.default.dirname(t)}catch{e=hr.default.dirname(t)}let r=hr.default.parse(e).root,n=0,s=20;for(;e!==r&&n=s&&!o.includes(a.toLowerCase()))return a;e=hr.default.dirname(e),n++}return null}catch{return null}}function E6(t,e,r){if(!t||t.length===0)return e;let n=new Map;for(let a of t){let o=sfe(a,r);o&&n.set(o,(n.get(o)||0)+1)}if(n.size===0)return e;let s=0,i=e;for(let[a,o]of n)o>s&&(s=o,i=a);return i!==e&&_.debug("PROJECT_NAME","Detected project from files differs from session",{detectedProject:i,sessionProject:e,fileCount:t.length}),i}var hr,Fg,tE,rfe,Za=xe(()=>{"use strict";hr=Y(require("path"),1),Fg=Y(require("fs"),1),tE=Y(require("os"),1);se();w6();rfe=["repos","projects","code","work","src","dev","git","workspace","workspaces"]});function a1(){let t=kB.default.join((0,EB.homedir)(),".pilot/memory","settings.json"),e=je.loadFromFile(t),r=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_TYPES.split(",").map(s=>s.trim()).filter(Boolean)),n=new Set(e.CLAUDE_PILOT_CONTEXT_OBSERVATION_CONCEPTS.split(",").map(s=>s.trim()).filter(Boolean));return{totalObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10),fullObservationCount:parseInt(e.CLAUDE_PILOT_CONTEXT_FULL_COUNT,10),sessionCount:parseInt(e.CLAUDE_PILOT_CONTEXT_SESSION_COUNT,10),showReadTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_READ_TOKENS,showWorkTokens:e.CLAUDE_PILOT_CONTEXT_SHOW_WORK_TOKENS,showSavingsAmount:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_AMOUNT,showSavingsPercent:e.CLAUDE_PILOT_CONTEXT_SHOW_SAVINGS_PERCENT,observationTypes:r,observationConcepts:n,fullObservationField:e.CLAUDE_PILOT_CONTEXT_FULL_FIELD,showLastSummary:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_SUMMARY,showLastMessage:e.CLAUDE_PILOT_CONTEXT_SHOW_LAST_MESSAGE}}var kB,EB,o1=xe(()=>{"use strict";kB=Y(require("path"),1),EB=require("os");Or()});var X,TB,um,pm=xe(()=>{"use strict";X={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",cyan:"\x1B[36m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",gray:"\x1B[90m",red:"\x1B[31m"},TB=4,um=1});function c1(t){let e=(t.title?.length||0)+(t.subtitle?.length||0)+(t.narrative?.length||0)+JSON.stringify(t.facts||[]).length;return Math.ceil(e/TB)}function l1(t){let e=t.length,r=t.reduce((a,o)=>a+c1(o),0),n=t.reduce((a,o)=>a+(o.discovery_tokens||0),0),s=n-r,i=n>0?Math.round(s/n*100):0;return{totalObservations:e,totalReadTokens:r,totalDiscoveryTokens:n,savings:s,savingsPercent:i}}function USe(t){return et.getInstance().getWorkEmoji(t)}function xl(t,e){let r=c1(t),n=t.discovery_tokens||0,s=USe(t.type),i=n>0?`${s} ${n.toLocaleString()}`:"-";return{readTokens:r,discoveryTokens:n,discoveryDisplay:i,workEmoji:s}}function Hy(t){return t.showReadTokens||t.showWorkTokens||t.showSavingsAmount||t.showSavingsPercent}var fo=xe(()=>{"use strict";pm();Hn()});function u1(t,e,r){let n=Array.from(r.observationTypes),s=n.map(()=>"?").join(","),i=Array.from(r.observationConcepts),a=i.map(()=>"?").join(",");return t.db.prepare(` SELECT id, memory_session_id, type, title, subtitle, narrative, facts, concepts, files_read, files_modified, discovery_tokens, @@ -906,18 +906,18 @@ Do not output anything other than the summary content formatted in the XML struc `).all(...e,n,r.sessionCount+um)}function qSe(t){return t.replace(new RegExp("/","g"),"-")}function FSe(t){try{if(!(0,By.existsSync)(t))return{userMessage:"",assistantMessage:""};let e=(0,By.readFileSync)(t,"utf-8").trim();if(!e)return{userMessage:"",assistantMessage:""};let r=e.split(` `).filter(s=>s.trim()),n="";for(let s=r.length-1;s>=0;s--)try{let i=r[s];if(!i.includes('"type":"assistant"'))continue;let a=JSON.parse(i);if(a.type==="assistant"&&a.message?.content&&Array.isArray(a.message.content)){let o="";for(let c of a.message.content)c.type==="text"&&(o+=c.text);if(o=o.replace(/[\s\S]*?<\/system-reminder>/g,"").trim(),o){n=o;break}}}catch(i){_.debug("PARSER","Skipping malformed transcript line",{lineIndex:s},i);continue}return{userMessage:"",assistantMessage:n}}catch(e){return _.failure("WORKER","Failed to extract prior messages from transcript",{transcriptPath:t},e),{userMessage:"",assistantMessage:""}}}function d1(t,e,r,n){if(!e.showLastMessage||t.length===0)return{userMessage:"",assistantMessage:""};let s=t.find(c=>c.memory_session_id!==r);if(!s)return{userMessage:"",assistantMessage:""};let i=s.memory_session_id,a=qSe(n),o=RB.default.join((0,PB.homedir)(),".claude","projects",a,`${i}.jsonl`);return FSe(o)}function DB(t,e){let r=e[0]?.id;return t.map((n,s)=>{let i=s===0?null:e[s+1];return{...n,displayEpoch:i?i.created_at_epoch:n.created_at_epoch,displayTime:i?i.created_at:n.created_at,shouldShowLink:n.id!==r}})}function m1(t,e){let r=[...t.map(n=>({type:"observation",data:n})),...e.map(n=>({type:"summary",data:n}))];return r.sort((n,s)=>{let i=n.type==="observation"?n.data.created_at_epoch:n.data.displayEpoch,a=s.type==="observation"?s.data.created_at_epoch:s.data.displayEpoch;return i-a}),r}function zB(t,e){return new Set(t.slice(0,e).map(r=>r.id))}var RB,PB,By,f1=xe(()=>{"use strict";RB=Y(require("path"),1),PB=require("os"),By=require("fs");se();pm()});function MB(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function $B(t){return[`# [${t}] recent context, ${MB()}`,""]}function LB(){return[`**Legend:** session-request | ${et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ")}`,""]}function UB(){return["**Column Key**:","- **Read**: Tokens to read this observation (cost to learn it now)","- **Work**: Tokens spent on work that produced this record ( research, building, deciding)",""]}function qB(){return["**Context Index:** This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.","","When you need implementation details, rationale, or debugging context:","- Use MCP tools (search, get_observations) to fetch full observations on-demand","- Critical types ( bugfix, decision) often need detailed fetching","- Trust this index over re-reading code for past decisions and learnings",""]}function FB(t,e){let r=[];if(r.push("**Context Economics**:"),r.push(`- Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)`),r.push(`- Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n="- Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(n)}return r.push(""),r}function HB(t){return[`### ${t}`,""]}function BB(t){return[`**${t}**`,"| ID | Time | T | Title | Read | Work |","|----|------|---|-------|------|------|"]}function WB(t,e,r){let n=t.title||"Untitled",s=et.getInstance().getTypeIcon(t.type),{readTokens:i,discoveryDisplay:a}=xl(t,r),o=r.showReadTokens?`~${i}`:"",c=r.showWorkTokens?a:"";return`| #${t.id} | ${e||'"'} | ${s} | ${n} | ${o} | ${c} |`}function ZB(t,e,r,n){let s=[],i=t.title||"Untitled",a=et.getInstance().getTypeIcon(t.type),{readTokens:o,discoveryDisplay:c}=xl(t,n);s.push(`**#${t.id}** ${e||'"'} ${a} **${i}**`),r&&(s.push(""),s.push(r),s.push(""));let l=[];return n.showReadTokens&&l.push(`Read: ~${o}`),n.showWorkTokens&&l.push(`Work: ${c}`),l.length>0&&s.push(l.join(", ")),s.push(""),s}function GB(t,e){let r=`${t.request||"Session started"} (${e})`;return[`**#S${t.id}** ${r}`,""]}function dm(t,e){return e?[`**${t}**: ${e}`,""]:[]}function VB(t){return t.assistantMessage?["","---","","**Previously**","",`A: ${t.assistantMessage}`,""]:[]}function KB(t,e){return["",`Access ${Math.round(t/1e3)}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.`]}function JB(t){return`# [${t}] recent context, ${MB()} -No previous sessions found for this project yet.`}var _l=xe(()=>{"use strict";Hn();mo()});function QB(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function YB(t){return["",`${X.bright}${X.cyan}[${t}] recent context, ${QB()}${X.reset}`,`${X.gray}${"\u2500".repeat(60)}${X.reset}`,""]}function XB(){let e=et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${X.dim}Legend: session-request | ${e}${X.reset}`,""]}function eW(){return[`${X.bright}Column Key${X.reset}`,`${X.dim} Read: Tokens to read this observation (cost to learn it now)${X.reset}`,`${X.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${X.reset}`,""]}function tW(){return[`${X.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${X.reset}`,"",`${X.dim}When you need implementation details, rationale, or debugging context:${X.reset}`,`${X.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${X.reset}`,`${X.dim} - Critical types ( bugfix, decision) often need detailed fetching${X.reset}`,`${X.dim} - Trust this index over re-reading code for past decisions and learnings${X.reset}`,""]}function rW(t,e){let r=[];if(r.push(`${X.bright}${X.cyan}Context Economics${X.reset}`),r.push(`${X.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${X.reset}`),r.push(`${X.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${X.reset}`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(`${X.green}${n}${X.reset}`)}return r.push(""),r}function nW(t){return[`${X.bright}${X.cyan}${t}${X.reset}`,""]}function sW(t){return[`${X.dim}${t}${X.reset}`]}function iW(t,e,r,n){let s=t.title||"Untitled",i=et.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryTokens:o,workEmoji:c}=xl(t,n),l=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),u=n.showReadTokens&&a>0?`${X.dim}(~${a}t)${X.reset}`:"",p=n.showWorkTokens&&o>0?`${X.dim}(${c} ${o.toLocaleString()}t)${X.reset}`:"";return` ${X.dim}#${t.id}${X.reset} ${l} ${i} ${s} ${u} ${p}`}function aW(t,e,r,n,s){let i=[],a=t.title||"Untitled",o=et.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:l,workEmoji:u}=xl(t,s),p=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),d=s.showReadTokens&&c>0?`${X.dim}(~${c}t)${X.reset}`:"",m=s.showWorkTokens&&l>0?`${X.dim}(${u} ${l.toLocaleString()}t)${X.reset}`:"";return i.push(` ${X.dim}#${t.id}${X.reset} ${p} ${o} ${X.bright}${a}${X.reset}`),n&&i.push(` ${X.dim}${n}${X.reset}`),(d||m)&&i.push(` ${d} ${m}`),i.push(""),i}function oW(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${X.yellow}#S${t.id}${X.reset} ${r}`,""]}function mm(t,e,r){return e?[`${r}${t}:${X.reset} ${e}`,""]:[]}function cW(t){return t.assistantMessage?["","---","",`${X.bright}${X.magenta}Previously${X.reset}`,"",`${X.dim}A: ${t.assistantMessage}${X.reset}`,""]:[]}function lW(t,e){let r=Math.round(t/1e3);return["",`${X.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${X.reset}`]}function uW(t){return` +No previous sessions found for this project yet.`}var _l=xe(()=>{"use strict";Hn();fo()});function QB(){let t=new Date,e=t.toLocaleDateString("en-CA"),r=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0}).toLowerCase().replace(" ",""),n=t.toLocaleTimeString("en-US",{timeZoneName:"short"}).split(" ").pop();return`${e} ${r} ${n}`}function YB(t){return["",`${X.bright}${X.cyan}[${t}] recent context, ${QB()}${X.reset}`,`${X.gray}${"\u2500".repeat(60)}${X.reset}`,""]}function XB(){let e=et.getInstance().getActiveMode().observation_types.map(r=>`${r.emoji} ${r.id}`).join(" | ");return[`${X.dim}Legend: session-request | ${e}${X.reset}`,""]}function eW(){return[`${X.bright}Column Key${X.reset}`,`${X.dim} Read: Tokens to read this observation (cost to learn it now)${X.reset}`,`${X.dim} Work: Tokens spent on work that produced this record ( research, building, deciding)${X.reset}`,""]}function tW(){return[`${X.dim}Context Index: This semantic index (titles, types, files, tokens) is usually sufficient to understand past work.${X.reset}`,"",`${X.dim}When you need implementation details, rationale, or debugging context:${X.reset}`,`${X.dim} - Use MCP tools (search, get_observations) to fetch full observations on-demand${X.reset}`,`${X.dim} - Critical types ( bugfix, decision) often need detailed fetching${X.reset}`,`${X.dim} - Trust this index over re-reading code for past decisions and learnings${X.reset}`,""]}function rW(t,e){let r=[];if(r.push(`${X.bright}${X.cyan}Context Economics${X.reset}`),r.push(`${X.dim} Loading: ${t.totalObservations} observations (${t.totalReadTokens.toLocaleString()} tokens to read)${X.reset}`),r.push(`${X.dim} Work investment: ${t.totalDiscoveryTokens.toLocaleString()} tokens spent on research, building, and decisions${X.reset}`),t.totalDiscoveryTokens>0&&(e.showSavingsAmount||e.showSavingsPercent)){let n=" Your savings: ";e.showSavingsAmount&&e.showSavingsPercent?n+=`${t.savings.toLocaleString()} tokens (${t.savingsPercent}% reduction from reuse)`:e.showSavingsAmount?n+=`${t.savings.toLocaleString()} tokens`:n+=`${t.savingsPercent}% reduction from reuse`,r.push(`${X.green}${n}${X.reset}`)}return r.push(""),r}function nW(t){return[`${X.bright}${X.cyan}${t}${X.reset}`,""]}function sW(t){return[`${X.dim}${t}${X.reset}`]}function iW(t,e,r,n){let s=t.title||"Untitled",i=et.getInstance().getTypeIcon(t.type),{readTokens:a,discoveryTokens:o,workEmoji:c}=xl(t,n),l=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),u=n.showReadTokens&&a>0?`${X.dim}(~${a}t)${X.reset}`:"",p=n.showWorkTokens&&o>0?`${X.dim}(${c} ${o.toLocaleString()}t)${X.reset}`:"";return` ${X.dim}#${t.id}${X.reset} ${l} ${i} ${s} ${u} ${p}`}function aW(t,e,r,n,s){let i=[],a=t.title||"Untitled",o=et.getInstance().getTypeIcon(t.type),{readTokens:c,discoveryTokens:l,workEmoji:u}=xl(t,s),p=r?`${X.dim}${e}${X.reset}`:" ".repeat(e.length),d=s.showReadTokens&&c>0?`${X.dim}(~${c}t)${X.reset}`:"",m=s.showWorkTokens&&l>0?`${X.dim}(${u} ${l.toLocaleString()}t)${X.reset}`:"";return i.push(` ${X.dim}#${t.id}${X.reset} ${p} ${o} ${X.bright}${a}${X.reset}`),n&&i.push(` ${X.dim}${n}${X.reset}`),(d||m)&&i.push(` ${d} ${m}`),i.push(""),i}function oW(t,e){let r=`${t.request||"Session started"} (${e})`;return[`${X.yellow}#S${t.id}${X.reset} ${r}`,""]}function mm(t,e,r){return e?[`${r}${t}:${X.reset} ${e}`,""]:[]}function cW(t){return t.assistantMessage?["","---","",`${X.bright}${X.magenta}Previously${X.reset}`,"",`${X.dim}A: ${t.assistantMessage}${X.reset}`,""]:[]}function lW(t,e){let r=Math.round(t/1e3);return["",`${X.dim}Access ${r}k tokens of past research & decisions for just ${e.toLocaleString()}t. Use MCP search tools to access memories by ID.${X.reset}`]}function uW(t){return` ${X.bright}${X.cyan}[${t}] recent context, ${QB()}${X.reset} ${X.gray}${"\u2500".repeat(60)}${X.reset} ${X.dim}No previous sessions found for this project yet.${X.reset} -`}var wl=xe(()=>{"use strict";pm();Hn();mo()});function pW(t,e,r,n){let s=[];return n?s.push(...YB(t)):s.push(...$B(t)),n?s.push(...XB()):s.push(...LB()),n?s.push(...eW()):s.push(...UB()),n?s.push(...tW()):s.push(...qB()),Hy(r)&&(n?s.push(...rW(e,r)):s.push(...FB(e,r))),s}var dW=xe(()=>{"use strict";mo();_l();wl()});function HSe(t){let e=new Map;for(let n of t){let s=n.type==="observation"?n.data.created_at:n.data.displayTime,i=ii(s);e.has(i)||e.set(i,[]),e.get(i).push(n)}let r=Array.from(e.entries()).sort((n,s)=>{let i=new Date(n[0]).getTime(),a=new Date(s[0]).getTime();return i-a});return new Map(r)}function BSe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?Lg(t.facts).join(` -`):null}function WSe(t,e,r,n,s,i){let a=[];i?a.push(...nW(t)):a.push(...HB(t));let o=null,c="",l=!1;for(let u of e)if(u.type==="summary"){l&&(a.push(""),l=!1,o=null,c="");let p=u.data,d=Bn(p.displayTime);i?a.push(...oW(p,d)):a.push(...GB(p,d))}else{let p=u.data,d=hs(p.files_modified,s,p.files_read),m=Wr(p.created_at),f=m!==c,v=f?m:"";c=m;let g=r.has(p.id);if(d!==o&&(l&&a.push(""),i?a.push(...sW(d)):a.push(...BB(d)),o=d,l=!0),g){let h=BSe(p,n);i?a.push(...aW(p,m,f,h,n)):(l&&!i&&(a.push(""),l=!1),a.push(...ZB(p,v,h,n)),o=null)}else i?a.push(iW(p,m,f,n)):a.push(WB(p,v,n))}return l&&a.push(""),a}function mW(t,e,r,n,s){let i=[],a=HSe(t);for(let[o,c]of a)i.push(...WSe(o,c,e,r,n,s));return i}var fW=xe(()=>{"use strict";jc();_l();wl()});function hW(t,e,r){return!(!t.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||r&&e.created_at_epoch<=r.created_at_epoch)}function gW(t,e){let r=[];return e?(r.push(...mm("Investigated",t.investigated,X.blue)),r.push(...mm("Learned",t.learned,X.yellow)),r.push(...mm("Completed",t.completed,X.green)),r.push(...mm("Next Steps",t.next_steps,X.magenta))):(r.push(...dm("Investigated",t.investigated)),r.push(...dm("Learned",t.learned)),r.push(...dm("Completed",t.completed)),r.push(...dm("Next Steps",t.next_steps))),r}var vW=xe(()=>{"use strict";pm();_l();wl()});function yW(t,e){return e?cW(t):VB(t)}function bW(t,e,r){return!Hy(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?lW(t.totalDiscoveryTokens,t.totalReadTokens):KB(t.totalDiscoveryTokens,t.totalReadTokens)}var xW=xe(()=>{"use strict";mo();_l();wl()});function GSe(){try{return new Ui}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,SW.unlinkSync)(ZSe)}catch(e){_.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return _.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function VSe(t,e){return e?uW(t):JB(t)}function KSe(t,e,r,n,s,i,a){let o=[],c=l1(e);o.push(...pW(t,c,n,a));let l=r.slice(0,n.sessionCount),u=DB(l,r),p=m1(e,u),d=zB(e,n.fullObservationCount);o.push(...mW(p,d,n,s,a));let m=r[0],f=e[0];hW(n,m,f)&&o.push(...gW(m,a));let v=d1(e,n,i,s);return o.push(...yW(v,a)),o.push(...bW(c,n,a)),o.join(` -`).trimEnd()}async function h1(t,e=!1){let r=a1(),n=t?.cwd??process.cwd(),s=ai(n),i=t?.projects||[s],a=GSe();if(!a)return"";try{let o=t?.planPath,c,l;return o?(c=i.length>1?AB(a,i,r,o):OB(a,s,r,o),l=i.length>1?NB(a,i,r,o):jB(a,s,r,o)):(c=i.length>1?IB(a,i,r):u1(a,s,r),l=i.length>1?CB(a,i,r):p1(a,s,r)),c.length===0&&l.length===0?VSe(s,e):KSe(s,c,l,r,n,t?.session_id,e)}finally{a.close()}}var _W,wW,SW,ZSe,kW=xe(()=>{"use strict";_W=Y(require("path"),1),wW=require("os"),SW=require("fs");Rg();se();Wa();o1();mo();f1();dW();fW();vW();xW();_l();wl();ZSe=_W.default.join((0,wW.homedir)(),".claude","plugins","marketplaces","pilot","plugin",".install-version")});var EW=xe(()=>{"use strict";kW();o1();mo();f1()});var g1={};ks(g1,{generateContext:()=>h1});var v1=xe(()=>{"use strict";EW()});var W1={};ks(W1,{backupCommand:()=>DZ,backupsListCommand:()=>zZ,cleanCommand:()=>UZ,cleanupCommand:()=>NZ,doctorCommand:()=>MZ,exportCommand:()=>jZ,generateCommand:()=>LZ,importCommand:()=>AZ,retentionCommand:()=>$Z,runCLI:()=>_Ee,searchCommand:()=>OZ,statusCommand:()=>CZ,vacuumCommand:()=>qZ});async function Xt(t,e={}){let r=un(),s=`http://${ls()}:${r}${t}`,i=await fetch(s,{method:e.method||"GET",headers:e.body?{"Content-Type":"application/json"}:void 0,body:e.body?JSON.stringify(e.body):void 0});if(!i.ok){let a=await i.text();throw new Error(`API error (${i.status}): ${a}`)}return i.json()}async function Gs(){try{return await Xt("/api/health"),!0}catch{return!1}}function Ol(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:`${(t/(1024*1024*1024)).toFixed(2)} GB`}function xEe(t){return new Date(t).toLocaleString()}async function CZ(t){if(!await Gs()){t.json?console.log(JSON.stringify({running:!1})):console.log("Worker is not running");return}let[r,n,s]=await Promise.all([Xt("/api/health"),Xt("/api/stats"),Xt("/api/processing-status")]);t.json?console.log(JSON.stringify({running:!0,health:r,stats:n,processing:s},null,2)):(console.log("Worker Status"),console.log("\u2500".repeat(40)),console.log(` Status: ${r.status}`),console.log(` Version: ${n.worker.version}`),console.log(` PID: ${r.pid}`),console.log(` Uptime: ${Math.floor(n.worker.uptime/60)}m ${n.worker.uptime%60}s`),console.log(` Initialized: ${r.initialized?"yes":"no"}`),console.log(` Core Ready: ${r.coreReady?"yes":"no"}`),console.log(` MCP Ready: ${r.mcpReady?"yes":"no"}`),console.log(""),console.log("Database Stats"),console.log("\u2500".repeat(40)),console.log(` Path: ${n.database.path}`),console.log(` Size: ${Ol(n.database.size)}`),console.log(` Observations: ${n.database.observations.toLocaleString()}`),console.log(` Sessions: ${n.database.sessions.toLocaleString()}`),console.log(` Summaries: ${n.database.summaries.toLocaleString()}`),console.log(""),console.log("Processing"),console.log("\u2500".repeat(40)),console.log(` Active: ${s.isProcessing?"yes":"no"}`),console.log(` Queue Depth: ${s.queueDepth}`),console.log(` Sessions: ${n.worker.activeSessions}`))}async function OZ(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r=new URLSearchParams({query:t});e.project&&r.set("project",e.project),e.limit&&r.set("limit",e.limit.toString()),e.type&&r.set("type",e.type);let n=e.type==="session"?"/api/search/sessions":"/api/search/observations",s=await Xt(`${n}?${r}`);if(e.json)console.log(JSON.stringify(s,null,2));else{let i=s.content.find(a=>a.type==="text")?.text;console.log(i||"No results found")}}async function jZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=new URLSearchParams;t.project&&e.set("project",t.project),t.limit&&e.set("limit",t.limit.toString());let r=await Xt(`/api/export?${e}`);console.log(JSON.stringify(r,null,2))}async function AZ(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r;if(t&&t!=="-")r=await(await import("fs/promises")).readFile(t,"utf-8");else{let i=[];for await(let a of process.stdin)i.push(a);r=Buffer.concat(i).toString("utf-8")}let n=JSON.parse(r),s=await Xt("/api/import",{method:"POST",body:n});e.json?console.log(JSON.stringify(s)):console.log(`Imported ${s.imported} records`)}async function NZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/pending-queue/failed",{method:"DELETE"});t.json?console.log(JSON.stringify({failedQueueCleared:e.deleted})):(console.log("Cleanup completed:"),console.log(` Failed queue entries cleared: ${e.deleted}`))}async function DZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups/create",{method:"POST"});t.json?console.log(JSON.stringify(e)):(console.log("Backup created:"),console.log(` File: ${e.filename}`),console.log(` Size: ${Ol(e.sizeBytes)}`),console.log(` Path: ${e.path}`))}async function zZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups");if(t.json)console.log(JSON.stringify(e,null,2));else{if(e.backups.length===0){console.log("No backups found");return}console.log("Backups:"),console.log("\u2500".repeat(60));for(let r of e.backups)console.log(` ${r.filename}`),console.log(` Size: ${Ol(r.sizeBytes)} | Created: ${xEe(r.createdAt)}`)}}async function MZ(t){let e=[],r=await Gs();if(e.push({name:"Worker Status",status:r?"ok":"error",message:r?"Worker is running":"Worker is not running"}),r){try{let n=await Xt("/api/health");e.push({name:"Health Check",status:n.status==="ok"?"ok":"warning",message:`Status: ${n.status}`}),e.push({name:"Core Services",status:n.coreReady?"ok":"warning",message:n.coreReady?"Database and search ready":"Core services not ready"}),e.push({name:"MCP Server",status:n.mcpReady?"ok":"warning",message:n.mcpReady?"MCP server connected":"MCP server not connected"})}catch(n){e.push({name:"Health Check",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/stats");e.push({name:"Database",status:"ok",message:`${n.database.observations} observations, ${n.database.sessions} sessions (${Ol(n.database.size)})`})}catch(n){e.push({name:"Database",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/pending-queue"),s=n.queue.messages.filter(o=>o.status==="pending").length,i=n.queue.messages.filter(o=>o.status==="failed").length,a=i>0?"warning":"ok";e.push({name:"Queue Status",status:a,message:`Pending: ${s}, Failed: ${i}`})}catch(n){e.push({name:"Queue Status",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/backups"),s=n.backups.some(i=>{let a=new Date(i.createdAt),o=Date.now()-1440*60*1e3;return a.getTime()>o});e.push({name:"Backups",status:s?"ok":"warning",message:s?`${n.backups.length} backups (recent backup exists)`:`${n.backups.length} backups (no recent backup)`})}catch{e.push({name:"Backups",status:"warning",message:"Could not check backups"})}try{let n=await Xt("/api/vector-db/health");n.available?n.healthy?e.push({name:"Vector Database",status:"ok",message:`${Ol(n.directorySize)}, ${n.embeddingCount} embeddings`}):e.push({name:"Vector Database",status:"warning",message:`${Ol(n.directorySize)} (${Math.round(n.bloatRatio)}x expected size) \u2014 Run: pilot-memory vacuum`}):e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}catch{e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}}if(t.json)console.log(JSON.stringify({checks:e},null,2));else{console.log("Pilot Memory Doctor"),console.log("\u2500".repeat(50));let n=c=>c==="ok"?"\u2713":c==="warning"?"!":"\u2717",s=c=>c==="ok"?"\x1B[32m":c==="warning"?"\x1B[33m":"\x1B[31m",i="\x1B[0m";for(let c of e)console.log(` ${s(c.status)}${n(c.status)}${i} ${c.name}: ${c.message}`);let a=e.some(c=>c.status==="error"),o=e.some(c=>c.status==="warning");console.log(""),console.log(a?"\x1B[31mSome checks failed. See above for details.\x1B[0m":o?"\x1B[33mSome warnings detected. See above for details.\x1B[0m":"\x1B[32mAll checks passed!\x1B[0m")}}async function $Z(t,e){switch(await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t){case"preview":{let r=await Xt("/api/retention/preview");if(e.json)console.log(JSON.stringify(r,null,2));else{let{preview:n,policy:s}=r;console.log("Retention Preview"),console.log("\u2500".repeat(50)),console.log(`Total observations: ${n.totalObservations.toLocaleString()}`),console.log(`Would delete by age: ${n.toDelete.byAge.toLocaleString()}`),console.log(`Would delete by count: ${n.toDelete.byCount.toLocaleString()}`),console.log(`Total to delete: ${n.toDelete.total.toLocaleString()}`),console.log(`Excluded (protected): ${n.excluded.toLocaleString()}`),console.log(""),console.log("Policy:"),console.log(` Enabled: ${s.enabled?"yes":"no"}`),console.log(` Max age: ${s.maxAgeDays} days`),console.log(` Max count: ${s.maxCount} per project`),console.log(` Exclude: ${s.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${s.softDelete?"yes (archive)":"no (permanent)"}`),n.affectedProjects.length>0&&(console.log(""),console.log(`Affected projects: ${n.affectedProjects.slice(0,5).join(", ")}${n.affectedProjects.length>5?"...":""}`))}break}case"run":{let r=await Xt("/api/retention/run",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log("\x1B[32mRetention cleanup completed\x1B[0m"),console.log(` Deleted: ${r.result.deleted}`),console.log(` Archived: ${r.result.archived}`),console.log(` Duration: ${r.result.duration}ms`);else{console.log("\x1B[31mRetention cleanup failed\x1B[0m");for(let n of r.result.errors)console.log(` Error: ${n}`)}break}case"archive":{let r=await Xt("/api/retention/archive/list");if(e.json)console.log(JSON.stringify(r,null,2));else if(console.log(`Archived Observations (${r.count} of ${r.total})`),console.log("\u2500".repeat(60)),r.observations.length===0)console.log("No archived observations");else for(let n of r.observations){let s=new Date(n.deleted_at_epoch).toLocaleString();console.log(` #${n.id} ${n.title||"(untitled)"}`),console.log(` Type: ${n.type} | Project: ${n.project}`),console.log(` Deleted: ${s} | Reason: ${n.deletion_reason||"unknown"}`)}break}case"restore":{let r=await Xt("/api/retention/restore",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log(`\x1B[32mRestored ${r.restored} observations from archive\x1B[0m`);else{console.log("\x1B[31mRestore failed\x1B[0m");for(let n of r.errors)console.log(` Error: ${n}`)}break}default:{let r=await Xt("/api/retention/policy");if(e.json)console.log(JSON.stringify(r,null,2));else{let{policy:n}=r;console.log("Retention Policy"),console.log("\u2500".repeat(40)),console.log(` Enabled: ${n.enabled?"\x1B[32myes\x1B[0m":"\x1B[33mno\x1B[0m"}`),console.log(` Max age: ${n.maxAgeDays>0?`${n.maxAgeDays} days`:"disabled"}`),console.log(` Max count: ${n.maxCount>0?`${n.maxCount} per project`:"unlimited"}`),console.log(` Exclude: ${n.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${n.softDelete?"yes (archive)":"no (permanent)"}`),console.log(""),console.log("Commands:"),console.log(" retention preview Preview what would be deleted"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" retention restore Restore all from archive")}break}}}async function LZ(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(FZ.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=[];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"generate",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Generate script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function UZ(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(FZ.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=["--clean"];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"clean",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Clean script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function qZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t.json||console.log("Vacuuming vector database \u2014 this will rebuild the HNSW index...");let e=await Xt("/api/retention/vacuum",{method:"POST"});t.json?console.log(JSON.stringify(e,null,2)):e.success?(console.log("\x1B[32mVacuum complete\x1B[0m"),console.log(` Reindexed: ${e.reindexedDocuments} documents`)):(console.log("\x1B[33mVacuum incomplete \u2014 run again to complete backfill\x1B[0m"),e.error&&console.log(` Error: ${e.error}`))}async function _Ee(t){let e=t[0],r=t.slice(1),n={},s=[];for(let i=0;i [--project ] [--limit ] [--json]"),process.exit(1)),await OZ(s.join(" "),n);break;case"export":await jZ(n);break;case"import":await AZ(s[0],n);break;case"cleanup":await NZ(n);break;case"backup":s[0]==="list"?await zZ(n):await DZ(n);break;case"doctor":await MZ(n);break;case"retention":await $Z(s[0],n);break;case"vacuum":await qZ(n);break;case"generate":await LZ(n);break;case"clean":await UZ(n);break;default:console.log(`Unknown command: ${e}`),console.log(""),console.log("Available commands:"),console.log(" status Show worker and queue status"),console.log(" search Search memories"),console.log(" export Export memories as JSON"),console.log(" import [file] Import memories from file or stdin"),console.log(" cleanup Run cleanup tasks"),console.log(" backup Create a backup"),console.log(" backup list List existing backups"),console.log(" doctor Diagnose issues"),console.log(" retention Show retention policy"),console.log(" retention preview Preview cleanup"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" vacuum Rebuild vector database HNSW index"),console.log(" generate Generate CLAUDE.md files for project folders"),console.log(" clean Remove auto-generated CLAUDE.md content"),console.log(""),console.log("Options:"),console.log(" --json, -j Output as JSON"),console.log(" --project, -p Filter by project"),console.log(" --limit, -l Limit results"),console.log(" --dry-run, -n Preview changes without writing"),process.exit(1)}}catch(i){n.json?console.log(JSON.stringify({error:i instanceof Error?i.message:"Unknown error"})):console.error(`Error: ${i instanceof Error?i.message:"Unknown error"}`),process.exit(1)}}var FZ,Z1=xe(()=>{"use strict";Ln();FZ={}});function wEe(){try{return(0,HZ.statSync)("/dev/stdin")!==null}catch{try{return process.stdin.readable||process.stdin.isTTY===!0}catch{return!1}}}async function BZ(){if(wEe())return new Promise((t,e)=>{let r="",n=setTimeout(()=>{t(void 0)},100),s;process.stdin.on("data",i=>{clearTimeout(n),s&&clearTimeout(s),r+=i,s=setTimeout(()=>{try{t(r.trim()?JSON.parse(r):void 0)}catch(a){e(new Error(`Failed to parse hook input: ${a}`))}},3e3)}),process.stdin.on("end",()=>{clearTimeout(n),s&&clearTimeout(s);try{t(r.trim()?JSON.parse(r):void 0)}catch(i){e(new Error(`Failed to parse hook input: ${i}`))}}),process.stdin.on("error",()=>{clearTimeout(n),s&&clearTimeout(s),t(void 0)})})}var HZ,WZ=xe(()=>{"use strict";HZ=require("fs")});var ZZ,GZ=xe(()=>{"use strict";ZZ={normalizeInput(t){let e=t??{};return{sessionId:e.session_id,cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.tool_name,toolInput:e.tool_input,toolResponse:e.tool_response,transcriptPath:e.transcript_path}},formatOutput(t){return t.hookSpecificOutput?{hookSpecificOutput:t.hookSpecificOutput}:{continue:t.continue??!0,suppressOutput:t.suppressOutput??!0}}}});var VZ,KZ=xe(()=>{"use strict";VZ={normalizeInput(t){let e=t;return{sessionId:e.sessionId??e.session_id??"unknown",cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.toolName??e.tool_name,toolInput:e.toolInput??e.tool_input,toolResponse:e.toolResponse??e.tool_response,transcriptPath:e.transcriptPath??e.transcript_path,filePath:e.filePath??e.file_path,edits:e.edits}},formatOutput(t){return t}}});function JZ(t){switch(t){case"claude-code":return ZZ;case"raw":return VZ;default:throw new Error(`Unknown platform: ${t}`)}}var QZ=xe(()=>{"use strict";GZ();KZ()});function SEe(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function aa(){if(zb!==null)return zb;let t=ls(),e=un();return zb={mode:"local",baseUrl:`http://${SEe(t)}:${e}`,authHeaders:{},timeoutMs:CD(qt.DEFAULT),verifySsl:!0},zb}var zb,km=xe(()=>{"use strict";Ln();As();zb=null});function kEe(t){if(t instanceof Error){let e=t.code;if(e&&YZ.includes(e))return!0;let r=t.message||"";return YZ.some(n=>r.includes(n))}return!1}function EEe(t,e=100,r=1e3){let n=e*Math.pow(2,t),s=Math.min(n,r),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}function TEe(t){return new Promise(e=>setTimeout(e,t))}async function Mb(t,e,r={}){let{maxRetries:n=3,baseDelayMs:s=100,maxDelayMs:i=1e3}=r,a;for(let o=0;o<=n;o++)try{return await fetch(t,e)}catch(c){if(a=c,!kEe(c)||o>=n)throw c;let l=EEe(o,s,i);await TEe(l)}throw a??new Error("fetchWithRetry failed")}var YZ,G1=xe(()=>{"use strict";YZ=["ECONNRESET","ECONNREFUSED","ETIMEDOUT","ENOTFOUND","EAI_AGAIN","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]});async function bi(t,e,r={}){let{endpointConfig:n,...s}=r,i=new Headers(e?.headers);if(n?.authHeaders)for(let[a,o]of Object.entries(n.authHeaders))i.set(a,o);return e?.body&&!i.has("Content-Type")&&i.set("Content-Type","application/json"),Mb(t,{...e,headers:i},s)}var Em=xe(()=>{"use strict";G1()});var $b,XZ,eG,V1,K1=xe(()=>{"use strict";$b=require("fs"),XZ=Y(require("path"),1),eG=require("os");km();Em();Wa();se();V1={async execute(t){if(process.env.CLAUDE_PILOT_NO_CONTEXT==="1"||process.env.CLAUDE_PILOT_NO_CONTEXT==="true")return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}};let e=aa(),r=t.cwd??process.cwd(),s=S6(r).allProjects.join(","),i=`${e.baseUrl}/api/context/inject?projects=${encodeURIComponent(s)}`,a=process.env.PILOT_SESSION_ID;if(a){let u=XZ.default.join((0,eG.homedir)(),".pilot","sessions",a,"active_plan.json");try{if((0,$b.existsSync)(u)){let p=JSON.parse((0,$b.readFileSync)(u,"utf-8"));p.plan_path&&(i+=`&planPath=${encodeURIComponent(p.plan_path)}`)}}catch(p){_.debug("HOOK","Failed to read active plan file",{planFilePath:u},p)}}let o=await bi(i,void 0,{endpointConfig:e});if(!o.ok)throw new Error(`Context generation failed: ${o.status}`);return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:(await o.text()).trim()}}}}});function REe(t){let e=(0,tG.join)(t,".pilot/memory.json");if(!(0,Lb.existsSync)(e))return null;try{let r=(0,Lb.readFileSync)(e,"utf-8");return JSON.parse(r)}catch{return null}}function jl(t){let e=REe(t);return e?e.enabled===!1:!1}function PEe(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`,"i")}function IEe(t,e){for(let r of e)if(PEe(r).test(t))return!0;return!1}function Al(t){if(!t)return!1;let e=je.loadFromFile(Ht),r=[];try{let n=JSON.parse(e.CLAUDE_PILOT_EXCLUDE_PROJECTS||"[]");Array.isArray(n)&&(r=n.filter(s=>typeof s=="string"&&s.length>0))}catch{return!1}return r.length===0?!1:IEe(t,r)}var Lb,tG,Ub=xe(()=>{"use strict";Lb=require("fs"),tG=require("path");Or();er()});var J1,Q1=xe(()=>{"use strict";km();Em();Ub();er();Wa();se();J1={async execute(t){let e=aa(),{sessionId:r,cwd:n,prompt:s}=t;if(!s)return _.debug("HOOK","session-init: Empty prompt received, skipping session initialization"),{continue:!0,suppressOutput:!0};let i=n&&nn(n),a=ai(i);if(jl(n))return _.debug("HOOK","session-init: Memory disabled by .pilot/memory.json",{project:a,cwd:n}),{continue:!0,suppressOutput:!0};if(Al(a))return _.debug("HOOK","session-init: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:a}),{continue:!0,suppressOutput:!0};_.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a,mode:e.mode});let o=await bi(`${e.baseUrl}/api/sessions/init`,{method:"POST",body:JSON.stringify({contentSessionId:r,project:a,prompt:s,projectRoot:n})},{endpointConfig:e});if(!o.ok)throw new Error(`Session initialization failed: ${o.status}`);let c=await o.json(),l=c.sessionDbId,u=c.promptNumber;if(_.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:u,skipped:c.skipped}),_.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${u} | sessionDbId=${l}`),c.skipped&&c.reason==="private")return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(l){let p=s.startsWith("/")?s.substring(1):s;_.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:u});let d=await bi(`${e.baseUrl}/sessions/${l}/init`,{method:"POST",body:JSON.stringify({userPrompt:p,promptNumber:u})},{endpointConfig:e});if(!d.ok)throw new Error(`SDK agent start failed: ${d.status}`)}return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | project=${a}`,{sessionId:l}),{continue:!0,suppressOutput:!0}}}});var Y1,X1=xe(()=>{"use strict";km();Em();Ub();Wa();se();Y1={async execute(t){let e=aa(),{sessionId:r,cwd:n,toolName:s,toolInput:i,toolResponse:a}=t;if(!s)throw new Error("observationHandler requires toolName");if(jl(n))return _.debug("HOOK","observation: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let o=ai(n);if(Al(o))return _.debug("HOOK","observation: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:o}),{continue:!0,suppressOutput:!0};let c=_.formatTool(s,i);if(_.dataIn("HOOK",`PostToolUse: ${c}`,{workerUrl:e.baseUrl,mode:e.mode}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${s}`);let l=await bi(`${e.baseUrl}/api/sessions/observations`,{method:"POST",body:JSON.stringify({contentSessionId:r,tool_name:s,tool_input:i,tool_response:a,cwd:n})},{endpointConfig:e});if(!l.ok)throw new Error(`Observation storage failed: ${l.status}`);return _.debug("HOOK","Observation sent successfully",{toolName:s,mode:e.mode}),{continue:!0,suppressOutput:!0}}}});function rG(t,e,r=!1){if(!t||!(0,qb.existsSync)(t))throw new Error(`Transcript path missing or file does not exist: ${t}`);let n=(0,qb.readFileSync)(t,"utf-8").trim();if(!n)throw new Error(`Transcript file exists but is empty: ${t}`);let s=n.split(` +`}var wl=xe(()=>{"use strict";pm();Hn();fo()});function pW(t,e,r,n){let s=[];return n?s.push(...YB(t)):s.push(...$B(t)),n?s.push(...XB()):s.push(...LB()),n?s.push(...eW()):s.push(...UB()),n?s.push(...tW()):s.push(...qB()),Hy(r)&&(n?s.push(...rW(e,r)):s.push(...FB(e,r))),s}var dW=xe(()=>{"use strict";fo();_l();wl()});function HSe(t){let e=new Map;for(let n of t){let s=n.type==="observation"?n.data.created_at:n.data.displayTime,i=ii(s);e.has(i)||e.set(i,[]),e.get(i).push(n)}let r=Array.from(e.entries()).sort((n,s)=>{let i=new Date(n[0]).getTime(),a=new Date(s[0]).getTime();return i-a});return new Map(r)}function BSe(t,e){return e.fullObservationField==="narrative"?t.narrative:t.facts?Lg(t.facts).join(` +`):null}function WSe(t,e,r,n,s,i){let a=[];i?a.push(...nW(t)):a.push(...HB(t));let o=null,c="",l=!1;for(let u of e)if(u.type==="summary"){l&&(a.push(""),l=!1,o=null,c="");let p=u.data,d=Bn(p.displayTime);i?a.push(...oW(p,d)):a.push(...GB(p,d))}else{let p=u.data,d=hs(p.files_modified,s,p.files_read),m=Wr(p.created_at),f=m!==c,v=f?m:"";c=m;let g=r.has(p.id);if(d!==o&&(l&&a.push(""),i?a.push(...sW(d)):a.push(...BB(d)),o=d,l=!0),g){let h=BSe(p,n);i?a.push(...aW(p,m,f,h,n)):(l&&!i&&(a.push(""),l=!1),a.push(...ZB(p,v,h,n)),o=null)}else i?a.push(iW(p,m,f,n)):a.push(WB(p,v,n))}return l&&a.push(""),a}function mW(t,e,r,n,s){let i=[],a=HSe(t);for(let[o,c]of a)i.push(...WSe(o,c,e,r,n,s));return i}var fW=xe(()=>{"use strict";jc();_l();wl()});function hW(t,e,r){return!(!t.showLastSummary||!e||!!!(e.investigated||e.learned||e.completed||e.next_steps)||r&&e.created_at_epoch<=r.created_at_epoch)}function gW(t,e){let r=[];return e?(r.push(...mm("Investigated",t.investigated,X.blue)),r.push(...mm("Learned",t.learned,X.yellow)),r.push(...mm("Completed",t.completed,X.green)),r.push(...mm("Next Steps",t.next_steps,X.magenta))):(r.push(...dm("Investigated",t.investigated)),r.push(...dm("Learned",t.learned)),r.push(...dm("Completed",t.completed)),r.push(...dm("Next Steps",t.next_steps))),r}var vW=xe(()=>{"use strict";pm();_l();wl()});function yW(t,e){return e?cW(t):VB(t)}function bW(t,e,r){return!Hy(e)||t.totalDiscoveryTokens<=0||t.savings<=0?[]:r?lW(t.totalDiscoveryTokens,t.totalReadTokens):KB(t.totalDiscoveryTokens,t.totalReadTokens)}var xW=xe(()=>{"use strict";fo();_l();wl()});function GSe(){try{return new Ui}catch(t){if(t.code==="ERR_DLOPEN_FAILED"){try{(0,SW.unlinkSync)(ZSe)}catch(e){_.debug("SYSTEM","Marker file cleanup failed (may not exist)",{},e)}return _.error("SYSTEM","Native module rebuild needed - restart Claude Code to auto-fix"),null}throw t}}function VSe(t,e){return e?uW(t):JB(t)}function KSe(t,e,r,n,s,i,a){let o=[],c=l1(e);o.push(...pW(t,c,n,a));let l=r.slice(0,n.sessionCount),u=DB(l,r),p=m1(e,u),d=zB(e,n.fullObservationCount);o.push(...mW(p,d,n,s,a));let m=r[0],f=e[0];hW(n,m,f)&&o.push(...gW(m,a));let v=d1(e,n,i,s);return o.push(...yW(v,a)),o.push(...bW(c,n,a)),o.join(` +`).trimEnd()}async function h1(t,e=!1){let r=a1(),n=t?.cwd??process.cwd(),s=ai(n),i=t?.projects||[s],a=GSe();if(!a)return"";try{let o=t?.planPath,c,l;return o?(c=i.length>1?AB(a,i,r,o):OB(a,s,r,o),l=i.length>1?NB(a,i,r,o):jB(a,s,r,o)):(c=i.length>1?IB(a,i,r):u1(a,s,r),l=i.length>1?CB(a,i,r):p1(a,s,r)),c.length===0&&l.length===0?VSe(s,e):KSe(s,c,l,r,n,t?.session_id,e)}finally{a.close()}}var _W,wW,SW,ZSe,kW=xe(()=>{"use strict";_W=Y(require("path"),1),wW=require("os"),SW=require("fs");Rg();se();Za();o1();fo();f1();dW();fW();vW();xW();_l();wl();ZSe=_W.default.join((0,wW.homedir)(),".claude","plugins","marketplaces","pilot","plugin",".install-version")});var EW=xe(()=>{"use strict";kW();o1();fo();f1()});var g1={};ks(g1,{generateContext:()=>h1});var v1=xe(()=>{"use strict";EW()});var W1={};ks(W1,{backupCommand:()=>DZ,backupsListCommand:()=>zZ,cleanCommand:()=>UZ,cleanupCommand:()=>NZ,doctorCommand:()=>MZ,exportCommand:()=>jZ,generateCommand:()=>LZ,importCommand:()=>AZ,retentionCommand:()=>$Z,runCLI:()=>_Ee,searchCommand:()=>OZ,statusCommand:()=>CZ,vacuumCommand:()=>qZ});async function Xt(t,e={}){let r=un(),s=`http://${ls()}:${r}${t}`,i=await fetch(s,{method:e.method||"GET",headers:e.body?{"Content-Type":"application/json"}:void 0,body:e.body?JSON.stringify(e.body):void 0});if(!i.ok){let a=await i.text();throw new Error(`API error (${i.status}): ${a}`)}return i.json()}async function Gs(){try{return await Xt("/api/health"),!0}catch{return!1}}function Ol(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:t<1024*1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:`${(t/(1024*1024*1024)).toFixed(2)} GB`}function xEe(t){return new Date(t).toLocaleString()}async function CZ(t){if(!await Gs()){t.json?console.log(JSON.stringify({running:!1})):console.log("Worker is not running");return}let[r,n,s]=await Promise.all([Xt("/api/health"),Xt("/api/stats"),Xt("/api/processing-status")]);t.json?console.log(JSON.stringify({running:!0,health:r,stats:n,processing:s},null,2)):(console.log("Worker Status"),console.log("\u2500".repeat(40)),console.log(` Status: ${r.status}`),console.log(` Version: ${n.worker.version}`),console.log(` PID: ${r.pid}`),console.log(` Uptime: ${Math.floor(n.worker.uptime/60)}m ${n.worker.uptime%60}s`),console.log(` Initialized: ${r.initialized?"yes":"no"}`),console.log(` Core Ready: ${r.coreReady?"yes":"no"}`),console.log(` MCP Ready: ${r.mcpReady?"yes":"no"}`),console.log(""),console.log("Database Stats"),console.log("\u2500".repeat(40)),console.log(` Path: ${n.database.path}`),console.log(` Size: ${Ol(n.database.size)}`),console.log(` Observations: ${n.database.observations.toLocaleString()}`),console.log(` Sessions: ${n.database.sessions.toLocaleString()}`),console.log(` Summaries: ${n.database.summaries.toLocaleString()}`),console.log(""),console.log("Processing"),console.log("\u2500".repeat(40)),console.log(` Active: ${s.isProcessing?"yes":"no"}`),console.log(` Queue Depth: ${s.queueDepth}`),console.log(` Sessions: ${n.worker.activeSessions}`))}async function OZ(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r=new URLSearchParams({query:t});e.project&&r.set("project",e.project),e.limit&&r.set("limit",e.limit.toString()),e.type&&r.set("type",e.type);let n=e.type==="session"?"/api/search/sessions":"/api/search/observations",s=await Xt(`${n}?${r}`);if(e.json)console.log(JSON.stringify(s,null,2));else{let i=s.content.find(a=>a.type==="text")?.text;console.log(i||"No results found")}}async function jZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=new URLSearchParams;t.project&&e.set("project",t.project),t.limit&&e.set("limit",t.limit.toString());let r=await Xt(`/api/export?${e}`);console.log(JSON.stringify(r,null,2))}async function AZ(t,e){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let r;if(t&&t!=="-")r=await(await import("fs/promises")).readFile(t,"utf-8");else{let i=[];for await(let a of process.stdin)i.push(a);r=Buffer.concat(i).toString("utf-8")}let n=JSON.parse(r),s=await Xt("/api/import",{method:"POST",body:n});e.json?console.log(JSON.stringify(s)):console.log(`Imported ${s.imported} records`)}async function NZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/pending-queue/failed",{method:"DELETE"});t.json?console.log(JSON.stringify({failedQueueCleared:e.deleted})):(console.log("Cleanup completed:"),console.log(` Failed queue entries cleared: ${e.deleted}`))}async function DZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups/create",{method:"POST"});t.json?console.log(JSON.stringify(e)):(console.log("Backup created:"),console.log(` File: ${e.filename}`),console.log(` Size: ${Ol(e.sizeBytes)}`),console.log(` Path: ${e.path}`))}async function zZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1));let e=await Xt("/api/backups");if(t.json)console.log(JSON.stringify(e,null,2));else{if(e.backups.length===0){console.log("No backups found");return}console.log("Backups:"),console.log("\u2500".repeat(60));for(let r of e.backups)console.log(` ${r.filename}`),console.log(` Size: ${Ol(r.sizeBytes)} | Created: ${xEe(r.createdAt)}`)}}async function MZ(t){let e=[],r=await Gs();if(e.push({name:"Worker Status",status:r?"ok":"error",message:r?"Worker is running":"Worker is not running"}),r){try{let n=await Xt("/api/health");e.push({name:"Health Check",status:n.status==="ok"?"ok":"warning",message:`Status: ${n.status}`}),e.push({name:"Core Services",status:n.coreReady?"ok":"warning",message:n.coreReady?"Database and search ready":"Core services not ready"}),e.push({name:"MCP Server",status:n.mcpReady?"ok":"warning",message:n.mcpReady?"MCP server connected":"MCP server not connected"})}catch(n){e.push({name:"Health Check",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/stats");e.push({name:"Database",status:"ok",message:`${n.database.observations} observations, ${n.database.sessions} sessions (${Ol(n.database.size)})`})}catch(n){e.push({name:"Database",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/pending-queue"),s=n.queue.messages.filter(o=>o.status==="pending").length,i=n.queue.messages.filter(o=>o.status==="failed").length,a=i>0?"warning":"ok";e.push({name:"Queue Status",status:a,message:`Pending: ${s}, Failed: ${i}`})}catch(n){e.push({name:"Queue Status",status:"error",message:`Failed: ${n instanceof Error?n.message:"Unknown error"}`})}try{let n=await Xt("/api/backups"),s=n.backups.some(i=>{let a=new Date(i.createdAt),o=Date.now()-1440*60*1e3;return a.getTime()>o});e.push({name:"Backups",status:s?"ok":"warning",message:s?`${n.backups.length} backups (recent backup exists)`:`${n.backups.length} backups (no recent backup)`})}catch{e.push({name:"Backups",status:"warning",message:"Could not check backups"})}try{let n=await Xt("/api/vector-db/health");n.available?n.healthy?e.push({name:"Vector Database",status:"ok",message:`${Ol(n.directorySize)}, ${n.embeddingCount} embeddings`}):e.push({name:"Vector Database",status:"warning",message:`${Ol(n.directorySize)} (${Math.round(n.bloatRatio)}x expected size) \u2014 Run: pilot-memory vacuum`}):e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}catch{e.push({name:"Vector Database",status:"warning",message:"unavailable (Chroma not connected)"})}}if(t.json)console.log(JSON.stringify({checks:e},null,2));else{console.log("Pilot Memory Doctor"),console.log("\u2500".repeat(50));let n=c=>c==="ok"?"\u2713":c==="warning"?"!":"\u2717",s=c=>c==="ok"?"\x1B[32m":c==="warning"?"\x1B[33m":"\x1B[31m",i="\x1B[0m";for(let c of e)console.log(` ${s(c.status)}${n(c.status)}${i} ${c.name}: ${c.message}`);let a=e.some(c=>c.status==="error"),o=e.some(c=>c.status==="warning");console.log(""),console.log(a?"\x1B[31mSome checks failed. See above for details.\x1B[0m":o?"\x1B[33mSome warnings detected. See above for details.\x1B[0m":"\x1B[32mAll checks passed!\x1B[0m")}}async function $Z(t,e){switch(await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t){case"preview":{let r=await Xt("/api/retention/preview");if(e.json)console.log(JSON.stringify(r,null,2));else{let{preview:n,policy:s}=r;console.log("Retention Preview"),console.log("\u2500".repeat(50)),console.log(`Total observations: ${n.totalObservations.toLocaleString()}`),console.log(`Would delete by age: ${n.toDelete.byAge.toLocaleString()}`),console.log(`Would delete by count: ${n.toDelete.byCount.toLocaleString()}`),console.log(`Total to delete: ${n.toDelete.total.toLocaleString()}`),console.log(`Excluded (protected): ${n.excluded.toLocaleString()}`),console.log(""),console.log("Policy:"),console.log(` Enabled: ${s.enabled?"yes":"no"}`),console.log(` Max age: ${s.maxAgeDays} days`),console.log(` Max count: ${s.maxCount} per project`),console.log(` Exclude: ${s.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${s.softDelete?"yes (archive)":"no (permanent)"}`),n.affectedProjects.length>0&&(console.log(""),console.log(`Affected projects: ${n.affectedProjects.slice(0,5).join(", ")}${n.affectedProjects.length>5?"...":""}`))}break}case"run":{let r=await Xt("/api/retention/run",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log("\x1B[32mRetention cleanup completed\x1B[0m"),console.log(` Deleted: ${r.result.deleted}`),console.log(` Archived: ${r.result.archived}`),console.log(` Duration: ${r.result.duration}ms`);else{console.log("\x1B[31mRetention cleanup failed\x1B[0m");for(let n of r.result.errors)console.log(` Error: ${n}`)}break}case"archive":{let r=await Xt("/api/retention/archive/list");if(e.json)console.log(JSON.stringify(r,null,2));else if(console.log(`Archived Observations (${r.count} of ${r.total})`),console.log("\u2500".repeat(60)),r.observations.length===0)console.log("No archived observations");else for(let n of r.observations){let s=new Date(n.deleted_at_epoch).toLocaleString();console.log(` #${n.id} ${n.title||"(untitled)"}`),console.log(` Type: ${n.type} | Project: ${n.project}`),console.log(` Deleted: ${s} | Reason: ${n.deletion_reason||"unknown"}`)}break}case"restore":{let r=await Xt("/api/retention/restore",{method:"POST",body:{}});if(e.json)console.log(JSON.stringify(r,null,2));else if(r.success)console.log(`\x1B[32mRestored ${r.restored} observations from archive\x1B[0m`);else{console.log("\x1B[31mRestore failed\x1B[0m");for(let n of r.errors)console.log(` Error: ${n}`)}break}default:{let r=await Xt("/api/retention/policy");if(e.json)console.log(JSON.stringify(r,null,2));else{let{policy:n}=r;console.log("Retention Policy"),console.log("\u2500".repeat(40)),console.log(` Enabled: ${n.enabled?"\x1B[32myes\x1B[0m":"\x1B[33mno\x1B[0m"}`),console.log(` Max age: ${n.maxAgeDays>0?`${n.maxAgeDays} days`:"disabled"}`),console.log(` Max count: ${n.maxCount>0?`${n.maxCount} per project`:"unlimited"}`),console.log(` Exclude: ${n.excludeTypes.join(", ")||"none"}`),console.log(` Soft delete: ${n.softDelete?"yes (archive)":"no (permanent)"}`),console.log(""),console.log("Commands:"),console.log(" retention preview Preview what would be deleted"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" retention restore Restore all from archive")}break}}}async function LZ(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(FZ.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=[];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"generate",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Generate script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function UZ(t){let{spawn:e}=await import("child_process"),r=await import("path"),{fileURLToPath:n}=await import("url"),s=r.dirname(n(FZ.url)),i=r.resolve(s,"../../scripts/regenerate-claude-md.ts"),a=["--clean"];return t.dryRun&&a.push("--dry-run"),t.json&&console.log(JSON.stringify({action:"clean",dryRun:t.dryRun??!1})),new Promise((o,c)=>{let l=e("bun",[i,...a],{stdio:"inherit",cwd:process.cwd()});l.on("close",u=>{u===0?o():c(new Error(`Clean script exited with code ${u}`))}),l.on("error",u=>{c(u)})})}async function qZ(t){await Gs()||(console.error("Error: Worker is not running. Start with: pilot-memory start"),process.exit(1)),t.json||console.log("Vacuuming vector database \u2014 this will rebuild the HNSW index...");let e=await Xt("/api/retention/vacuum",{method:"POST"});t.json?console.log(JSON.stringify(e,null,2)):e.success?(console.log("\x1B[32mVacuum complete\x1B[0m"),console.log(` Reindexed: ${e.reindexedDocuments} documents`)):(console.log("\x1B[33mVacuum incomplete \u2014 run again to complete backfill\x1B[0m"),e.error&&console.log(` Error: ${e.error}`))}async function _Ee(t){let e=t[0],r=t.slice(1),n={},s=[];for(let i=0;i [--project ] [--limit ] [--json]"),process.exit(1)),await OZ(s.join(" "),n);break;case"export":await jZ(n);break;case"import":await AZ(s[0],n);break;case"cleanup":await NZ(n);break;case"backup":s[0]==="list"?await zZ(n):await DZ(n);break;case"doctor":await MZ(n);break;case"retention":await $Z(s[0],n);break;case"vacuum":await qZ(n);break;case"generate":await LZ(n);break;case"clean":await UZ(n);break;default:console.log(`Unknown command: ${e}`),console.log(""),console.log("Available commands:"),console.log(" status Show worker and queue status"),console.log(" search Search memories"),console.log(" export Export memories as JSON"),console.log(" import [file] Import memories from file or stdin"),console.log(" cleanup Run cleanup tasks"),console.log(" backup Create a backup"),console.log(" backup list List existing backups"),console.log(" doctor Diagnose issues"),console.log(" retention Show retention policy"),console.log(" retention preview Preview cleanup"),console.log(" retention run Run cleanup"),console.log(" retention archive Show archived observations"),console.log(" vacuum Rebuild vector database HNSW index"),console.log(" generate Generate CLAUDE.md files for project folders"),console.log(" clean Remove auto-generated CLAUDE.md content"),console.log(""),console.log("Options:"),console.log(" --json, -j Output as JSON"),console.log(" --project, -p Filter by project"),console.log(" --limit, -l Limit results"),console.log(" --dry-run, -n Preview changes without writing"),process.exit(1)}}catch(i){n.json?console.log(JSON.stringify({error:i instanceof Error?i.message:"Unknown error"})):console.error(`Error: ${i instanceof Error?i.message:"Unknown error"}`),process.exit(1)}}var FZ,Z1=xe(()=>{"use strict";Ln();FZ={}});function wEe(){try{return(0,HZ.statSync)("/dev/stdin")!==null}catch{try{return process.stdin.readable||process.stdin.isTTY===!0}catch{return!1}}}async function BZ(){if(wEe())return new Promise((t,e)=>{let r="",n=setTimeout(()=>{t(void 0)},100),s;process.stdin.on("data",i=>{clearTimeout(n),s&&clearTimeout(s),r+=i,s=setTimeout(()=>{try{t(r.trim()?JSON.parse(r):void 0)}catch(a){e(new Error(`Failed to parse hook input: ${a}`))}},3e3)}),process.stdin.on("end",()=>{clearTimeout(n),s&&clearTimeout(s);try{t(r.trim()?JSON.parse(r):void 0)}catch(i){e(new Error(`Failed to parse hook input: ${i}`))}}),process.stdin.on("error",()=>{clearTimeout(n),s&&clearTimeout(s),t(void 0)})})}var HZ,WZ=xe(()=>{"use strict";HZ=require("fs")});var ZZ,GZ=xe(()=>{"use strict";ZZ={normalizeInput(t){let e=t??{};return{sessionId:e.session_id,cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.tool_name,toolInput:e.tool_input,toolResponse:e.tool_response,transcriptPath:e.transcript_path}},formatOutput(t){return t.hookSpecificOutput?{hookSpecificOutput:t.hookSpecificOutput}:{continue:t.continue??!0,suppressOutput:t.suppressOutput??!0}}}});var VZ,KZ=xe(()=>{"use strict";VZ={normalizeInput(t){let e=t;return{sessionId:e.sessionId??e.session_id??"unknown",cwd:e.cwd??process.cwd(),prompt:e.prompt,toolName:e.toolName??e.tool_name,toolInput:e.toolInput??e.tool_input,toolResponse:e.toolResponse??e.tool_response,transcriptPath:e.transcriptPath??e.transcript_path,filePath:e.filePath??e.file_path,edits:e.edits}},formatOutput(t){return t}}});function JZ(t){switch(t){case"claude-code":return ZZ;case"raw":return VZ;default:throw new Error(`Unknown platform: ${t}`)}}var QZ=xe(()=>{"use strict";GZ();KZ()});function SEe(t){return t.includes(":")&&!t.startsWith("[")?`[${t}]`:t}function oa(){if(zb!==null)return zb;let t=ls(),e=un();return zb={mode:"local",baseUrl:`http://${SEe(t)}:${e}`,authHeaders:{},timeoutMs:CD(qt.DEFAULT),verifySsl:!0},zb}var zb,km=xe(()=>{"use strict";Ln();As();zb=null});function kEe(t){if(t instanceof Error){let e=t.code;if(e&&YZ.includes(e))return!0;let r=t.message||"";return YZ.some(n=>r.includes(n))}return!1}function EEe(t,e=100,r=1e3){let n=e*Math.pow(2,t),s=Math.min(n,r),i=s*.25*(Math.random()*2-1);return Math.round(s+i)}function TEe(t){return new Promise(e=>setTimeout(e,t))}async function Mb(t,e,r={}){let{maxRetries:n=3,baseDelayMs:s=100,maxDelayMs:i=1e3}=r,a;for(let o=0;o<=n;o++)try{return await fetch(t,e)}catch(c){if(a=c,!kEe(c)||o>=n)throw c;let l=EEe(o,s,i);await TEe(l)}throw a??new Error("fetchWithRetry failed")}var YZ,G1=xe(()=>{"use strict";YZ=["ECONNRESET","ECONNREFUSED","ETIMEDOUT","ENOTFOUND","EAI_AGAIN","UND_ERR_SOCKET","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT"]});async function bi(t,e,r={}){let{endpointConfig:n,...s}=r,i=new Headers(e?.headers);if(n?.authHeaders)for(let[a,o]of Object.entries(n.authHeaders))i.set(a,o);return e?.body&&!i.has("Content-Type")&&i.set("Content-Type","application/json"),Mb(t,{...e,headers:i},s)}var Em=xe(()=>{"use strict";G1()});var $b,XZ,eG,V1,K1=xe(()=>{"use strict";$b=require("fs"),XZ=Y(require("path"),1),eG=require("os");km();Em();Za();se();V1={async execute(t){if(process.env.CLAUDE_PILOT_NO_CONTEXT==="1"||process.env.CLAUDE_PILOT_NO_CONTEXT==="true")return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}};let e=oa(),r=t.cwd??process.cwd(),s=S6(r).allProjects.join(","),i=`${e.baseUrl}/api/context/inject?projects=${encodeURIComponent(s)}`,a=process.env.PILOT_SESSION_ID;if(a){let u=XZ.default.join((0,eG.homedir)(),".pilot","sessions",a,"active_plan.json");try{if((0,$b.existsSync)(u)){let p=JSON.parse((0,$b.readFileSync)(u,"utf-8"));p.plan_path&&(i+=`&planPath=${encodeURIComponent(p.plan_path)}`)}}catch(p){_.debug("HOOK","Failed to read active plan file",{planFilePath:u},p)}}let o=await bi(i,void 0,{endpointConfig:e});if(!o.ok)throw new Error(`Context generation failed: ${o.status}`);return{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:(await o.text()).trim()}}}}});function REe(t){let e=(0,tG.join)(t,".pilot/memory.json");if(!(0,Lb.existsSync)(e))return null;try{let r=(0,Lb.readFileSync)(e,"utf-8");return JSON.parse(r)}catch{return null}}function jl(t){let e=REe(t);return e?e.enabled===!1:!1}function PEe(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`,"i")}function IEe(t,e){for(let r of e)if(PEe(r).test(t))return!0;return!1}function Al(t){if(!t)return!1;let e=je.loadFromFile(Ht),r=[];try{let n=JSON.parse(e.CLAUDE_PILOT_EXCLUDE_PROJECTS||"[]");Array.isArray(n)&&(r=n.filter(s=>typeof s=="string"&&s.length>0))}catch{return!1}return r.length===0?!1:IEe(t,r)}var Lb,tG,Ub=xe(()=>{"use strict";Lb=require("fs"),tG=require("path");Or();er()});var J1,Q1=xe(()=>{"use strict";km();Em();Ub();er();Za();se();J1={async execute(t){let e=oa(),{sessionId:r,cwd:n,prompt:s}=t;if(!s)return _.debug("HOOK","session-init: Empty prompt received, skipping session initialization"),{continue:!0,suppressOutput:!0};let i=n&&nn(n),a=ai(i);if(jl(n))return _.debug("HOOK","session-init: Memory disabled by .pilot/memory.json",{project:a,cwd:n}),{continue:!0,suppressOutput:!0};if(Al(a))return _.debug("HOOK","session-init: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:a}),{continue:!0,suppressOutput:!0};_.debug("HOOK","session-init: Calling /api/sessions/init",{contentSessionId:r,project:a,mode:e.mode});let o=await bi(`${e.baseUrl}/api/sessions/init`,{method:"POST",body:JSON.stringify({contentSessionId:r,project:a,prompt:s,projectRoot:n})},{endpointConfig:e});if(!o.ok)throw new Error(`Session initialization failed: ${o.status}`);let c=await o.json(),l=c.sessionDbId,u=c.promptNumber;if(_.debug("HOOK","session-init: Received from /api/sessions/init",{sessionDbId:l,promptNumber:u,skipped:c.skipped}),_.debug("HOOK",`[ALIGNMENT] Hook Entry | contentSessionId=${r} | prompt#=${u} | sessionDbId=${l}`),c.skipped&&c.reason==="private")return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | skipped=true | reason=private`,{sessionId:l}),{continue:!0,suppressOutput:!0};if(l){let p=s.startsWith("/")?s.substring(1):s;_.debug("HOOK","session-init: Calling /sessions/{sessionDbId}/init",{sessionDbId:l,promptNumber:u});let d=await bi(`${e.baseUrl}/sessions/${l}/init`,{method:"POST",body:JSON.stringify({userPrompt:p,promptNumber:u})},{endpointConfig:e});if(!d.ok)throw new Error(`SDK agent start failed: ${d.status}`)}return _.info("HOOK",`INIT_COMPLETE | sessionDbId=${l} | promptNumber=${u} | project=${a}`,{sessionId:l}),{continue:!0,suppressOutput:!0}}}});var Y1,X1=xe(()=>{"use strict";km();Em();Ub();Za();se();Y1={async execute(t){let e=oa(),{sessionId:r,cwd:n,toolName:s,toolInput:i,toolResponse:a}=t;if(!s)throw new Error("observationHandler requires toolName");if(jl(n))return _.debug("HOOK","observation: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let o=ai(n);if(Al(o))return _.debug("HOOK","observation: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:o}),{continue:!0,suppressOutput:!0};let c=_.formatTool(s,i);if(_.dataIn("HOOK",`PostToolUse: ${c}`,{workerUrl:e.baseUrl,mode:e.mode}),!n)throw new Error(`Missing cwd in PostToolUse hook input for session ${r}, tool ${s}`);let l=await bi(`${e.baseUrl}/api/sessions/observations`,{method:"POST",body:JSON.stringify({contentSessionId:r,tool_name:s,tool_input:i,tool_response:a,cwd:n})},{endpointConfig:e});if(!l.ok)throw new Error(`Observation storage failed: ${l.status}`);return _.debug("HOOK","Observation sent successfully",{toolName:s,mode:e.mode}),{continue:!0,suppressOutput:!0}}}});function rG(t,e,r=!1){if(!t||!(0,qb.existsSync)(t))throw new Error(`Transcript path missing or file does not exist: ${t}`);let n=(0,qb.readFileSync)(t,"utf-8").trim();if(!n)throw new Error(`Transcript file exists but is empty: ${t}`);let s=n.split(` `),i=!1;for(let a=s.length-1;a>=0;a--){let o=JSON.parse(s[a]);if(o.type===e&&(i=!0,o.message?.content)){let c="",l=o.message.content;if(typeof l=="string")c=l;else if(Array.isArray(l))c=l.filter(u=>u.type==="text").map(u=>u.text).join(` `);else throw new Error(`Unknown message content format in transcript. Type: ${typeof l}`);return r&&(c=c.replace(/[\s\S]*?<\/system-reminder>/g,""),c=c.replace(/\n{3,}/g,` -`).trim()),c}}if(!i)throw new Error(`No message found for role '${e}' in transcript: ${t}`);return""}var qb,nG=xe(()=>{"use strict";qb=require("fs")});var eP,tP=xe(()=>{"use strict";km();Em();Ub();Wa();se();nG();eP={async execute(t){let e=aa(),{sessionId:r,cwd:n,transcriptPath:s}=t;if(jl(n))return _.debug("HOOK","summarize: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let i=ai(n);if(Al(i))return _.debug("HOOK","summarize: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:i}),{continue:!0,suppressOutput:!0};if(!s)throw new Error(`Missing transcriptPath in Stop hook input for session ${r}`);let a=rG(s,"assistant",!0);return _.dataIn("HOOK","Stop: Requesting summary",{workerUrl:e.baseUrl,mode:e.mode,hasLastAssistantMessage:!!a}),(await bi(`${e.baseUrl}/api/sessions/summarize`,{method:"POST",body:JSON.stringify({contentSessionId:r,last_assistant_message:a})},{endpointConfig:e})).ok?(_.debug("HOOK","Summary request sent successfully",{mode:e.mode}),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var sG,rP,nP=xe(()=>{"use strict";sG=require("path");Ln();G1();As();rP={async execute(t){let e=th(),r=(0,sG.basename)(t.cwd??process.cwd()),n=await Mb(`${e}/api/context/inject?project=${encodeURIComponent(r)}&colors=true`,{method:"GET"});if(!n.ok)throw new Error(`Failed to fetch context: ${n.status}`);let s=await n.text();return console.error(` +`).trim()),c}}if(!i)throw new Error(`No message found for role '${e}' in transcript: ${t}`);return""}var qb,nG=xe(()=>{"use strict";qb=require("fs")});var eP,tP=xe(()=>{"use strict";km();Em();Ub();Za();se();nG();eP={async execute(t){let e=oa(),{sessionId:r,cwd:n,transcriptPath:s}=t;if(jl(n))return _.debug("HOOK","summarize: Memory disabled by .pilot/memory.json",{cwd:n}),{continue:!0,suppressOutput:!0};let i=ai(n);if(Al(i))return _.debug("HOOK","summarize: Project excluded by CLAUDE_PILOT_EXCLUDE_PROJECTS",{project:i}),{continue:!0,suppressOutput:!0};if(!s)throw new Error(`Missing transcriptPath in Stop hook input for session ${r}`);let a=rG(s,"assistant",!0);return _.dataIn("HOOK","Stop: Requesting summary",{workerUrl:e.baseUrl,mode:e.mode,hasLastAssistantMessage:!!a}),(await bi(`${e.baseUrl}/api/sessions/summarize`,{method:"POST",body:JSON.stringify({contentSessionId:r,last_assistant_message:a})},{endpointConfig:e})).ok?(_.debug("HOOK","Summary request sent successfully",{mode:e.mode}),{continue:!0,suppressOutput:!0}):{continue:!0,suppressOutput:!0}}}});var sG,rP,nP=xe(()=>{"use strict";sG=require("path");Ln();G1();As();rP={async execute(t){let e=th(),r=(0,sG.basename)(t.cwd??process.cwd()),n=await Mb(`${e}/api/context/inject?project=${encodeURIComponent(r)}&colors=true`,{method:"GET"});if(!n.ok)throw new Error(`Failed to fetch context: ${n.status}`);let s=await n.text();return console.error(` `+String.fromCodePoint(128221)+` Pilot Memory Context Loaded `+String.fromCodePoint(8505,65039)+` Note: This appears as stderr but is informational only @@ -926,9 +926,9 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} `+String.fromCodePoint(128161)+` New! Wrap all or part of any message with ... to prevent storing sensitive information in your observation history. -`),{exitCode:Lu.SUCCESS}}}});function iG(t){let e=CEe[t];if(!e)throw new Error(`Unknown event type: ${t}`);return e}var CEe,aG=xe(()=>{"use strict";K1();Q1();X1();tP();nP();K1();Q1();X1();tP();nP();CEe={context:V1,"session-init":J1,observation:Y1,summarize:eP,"user-message":rP}});var oG={};ks(oG,{hookCommand:()=>OEe});async function OEe(t,e){try{let r=JZ(t),n=iG(e),s=await BZ(),i=r.normalizeInput(s);i.platform=t;let a=await n.execute(i),o=r.formatOutput(a);console.log(JSON.stringify(o)),process.exit(a.exitCode??Lu.SUCCESS)}catch(r){let n=r instanceof Error?r.message:String(r);_.debug("HOOK",`Hook error (fail-open) [${e}]: ${n.slice(0,200)}`),console.log(JSON.stringify(e==="context"?{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}}:{continue:!0,suppressOutput:!0})),process.exit(Lu.SUCCESS)}}var cG=xe(()=>{"use strict";WZ();QZ();aG();As();se()});var DEe={};ks(DEe,{WorkerService:()=>Fb,buildStatusOutput:()=>pG,verifyLicense:()=>dG});module.exports=Dl(DEe);var Tm=Y(require("path"),1),lG=require("child_process"),sP=require("fs"),uG=require("os");er();var FEe=Object.freeze({status:"aborted"});function F(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var Ks=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Cm={};function jn(t){return t&&Object.assign(Cm,t),Cm}var nt={};ks(nt,{BIGINT_FORMAT_RANGES:()=>wP,Class:()=>Vb,NUMBER_FORMAT_RANGES:()=>rx,aborted:()=>ca,allowsEval:()=>Xb,assert:()=>jG,assertEqual:()=>PG,assertIs:()=>CG,assertNever:()=>OG,assertNotEqual:()=>IG,assignProp:()=>Yb,cached:()=>ql,captureStackTrace:()=>jm,cleanEnum:()=>WG,cleanRegex:()=>Hl,clone:()=>Es,createTransparentProxy:()=>$G,defineLazy:()=>_t,esc:()=>oa,escapeRegex:()=>xi,extend:()=>qG,finalizeIssue:()=>rs,floatSafeRemainder:()=>Qb,getElementAtPath:()=>AG,getEnumValues:()=>Kb,getLengthableOrigin:()=>Bl,getParsedType:()=>MG,getSizableOrigin:()=>SP,isObject:()=>xo,isPlainObject:()=>_o,issue:()=>nx,joinValues:()=>Om,jsonStringifyReplacer:()=>Jb,merge:()=>FG,normalizeParams:()=>ye,nullish:()=>Fl,numKeys:()=>zG,omit:()=>UG,optionalKeys:()=>tx,partial:()=>HG,pick:()=>LG,prefixIssues:()=>Ts,primitiveTypes:()=>_P,promiseAllObject:()=>NG,propertyKeyTypes:()=>ex,randomString:()=>DG,required:()=>BG,stringifyPrimitive:()=>Am,unwrapMessage:()=>Ul});function PG(t){return t}function IG(t){return t}function CG(t){}function OG(t){throw new Error}function jG(t){}function Kb(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,s])=>e.indexOf(+n)===-1).map(([n,s])=>s)}function Om(t,e="|"){return t.map(r=>Am(r)).join(e)}function Jb(t,e){return typeof e=="bigint"?e.toString():e}function ql(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Fl(t){return t==null}function Hl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Qb(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function _t(t,e,r){Object.defineProperty(t,e,{get(){{let s=r();return t[e]=s,s}throw new Error("cached value already set")},set(s){Object.defineProperty(t,e,{value:s})},configurable:!0})}function Yb(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function AG(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function NG(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function xo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Xb=ql(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function _o(t){if(xo(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(xo(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function zG(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var MG=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},ex=new Set(["string","number","symbol"]),_P=new Set(["string","number","bigint","boolean","symbol","undefined"]);function xi(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Es(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ye(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function $G(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Am(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function tx(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var rx={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},wP={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function LG(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return Es(t,{...t._zod.def,shape:r,checks:[]})}function UG(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return Es(t,{...t._zod.def,shape:r,checks:[]})}function qG(t,e){if(!_o(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return Yb(this,"shape",n),n},checks:[]};return Es(t,r)}function FG(t,e){return Es(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return Yb(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function HG(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return Es(e,{...e._zod.def,shape:s,checks:[]})}function BG(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return Es(e,{...e._zod.def,shape:s,checks:[]})}function ca(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ul(t){return typeof t=="string"?t:t?.message}function rs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Ul(t.inst?._zod.def?.error?.(t))??Ul(e?.error?.(t))??Ul(r.customError?.(t))??Ul(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function SP(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Bl(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function nx(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function WG(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var Vb=class{constructor(...e){}};var kP=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,Jb,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Nm=F("$ZodError",kP),sx=F("$ZodError",kP,{Parent:Error});function EP(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function TP(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Ks;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>rs(c,i,jn())));throw jm(o,s?.callee),o}return a.value};var PP=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>rs(c,i,jn())));throw jm(o,s?.callee),o}return a.value};var ix=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Ks;return i.issues.length?{success:!1,error:new(t??Nm)(i.issues.map(a=>rs(a,s,jn())))}:{success:!0,data:i.value}},Wl=ix(sx),ax=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>rs(a,s,jn())))}:{success:!0,data:i.value}},Dm=ax(sx);var IP=/^[cC][^\s-]{8,}$/,CP=/^[0-9a-z]+$/,OP=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,jP=/^[0-9a-vA-V]{20}$/,AP=/^[A-Za-z0-9]{27}$/,NP=/^[a-zA-Z0-9_-]{21}$/,DP=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var zP=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ox=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var MP=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var GG="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function $P(){return new RegExp(GG,"u")}var LP=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,UP=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,qP=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,FP=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,HP=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,cx=/^[A-Za-z0-9_-]*$/,BP=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var WP=/^\+(?:[0-9]){6,14}[0-9]$/,ZP="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",GP=new RegExp(`^${ZP}$`);function VP(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function KP(t){return new RegExp(`^${VP(t)}$`)}function JP(t){let e=VP({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${ZP}T(?:${n})$`)}var QP=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var YP=/^\d+$/,XP=/^-?\d+(?:\.\d+)?/i,eI=/true|false/i,tI=/null/i;var rI=/^[^A-Z]*$/,nI=/^[^a-z]*$/;var jr=F("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),sI={number:"number",bigint:"bigint",object:"date"},ux=F("$ZodCheckLessThan",(t,e)=>{jr.init(t,e);let r=sI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{jr.init(t,e);let r=sI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),iI=F("$ZodCheckMultipleOf",(t,e)=>{jr.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Qb(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),aI=F("$ZodCheckNumberFormat",(t,e)=>{jr.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=rx[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=YP)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}});var oI=F("$ZodCheckMaxLength",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let s=n.value;if(s.length<=e.maximum)return;let a=Bl(s);n.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),cI=F("$ZodCheckMinLength",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>s&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let s=n.value;if(s.length>=e.minimum)return;let a=Bl(s);n.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),lI=F("$ZodCheckLengthEquals",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag;s.minimum=e.length,s.maximum=e.length,s.length=e.length}),t._zod.check=n=>{let s=n.value,i=s.length;if(i===e.length)return;let a=Bl(s),o=i>e.length;n.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Zl=F("$ZodCheckStringFormat",(t,e)=>{var r,n;jr.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),uI=F("$ZodCheckRegex",(t,e)=>{Zl.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),pI=F("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=rI),Zl.init(t,e)}),dI=F("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=nI),Zl.init(t,e)}),mI=F("$ZodCheckIncludes",(t,e)=>{jr.init(t,e);let r=xi(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),fI=F("$ZodCheckStartsWith",(t,e)=>{jr.init(t,e);let r=new RegExp(`^${xi(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),hI=F("$ZodCheckEndsWith",(t,e)=>{jr.init(t,e);let r=new RegExp(`.*${xi(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var gI=F("$ZodCheckOverwrite",(t,e)=>{jr.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var zm=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` +`),{exitCode:Lu.SUCCESS}}}});function iG(t){let e=CEe[t];if(!e)throw new Error(`Unknown event type: ${t}`);return e}var CEe,aG=xe(()=>{"use strict";K1();Q1();X1();tP();nP();K1();Q1();X1();tP();nP();CEe={context:V1,"session-init":J1,observation:Y1,summarize:eP,"user-message":rP}});var oG={};ks(oG,{hookCommand:()=>OEe});async function OEe(t,e){try{let r=JZ(t),n=iG(e),s=await BZ(),i=r.normalizeInput(s);i.platform=t;let a=await n.execute(i),o=r.formatOutput(a);console.log(JSON.stringify(o)),process.exit(a.exitCode??Lu.SUCCESS)}catch(r){let n=r instanceof Error?r.message:String(r);_.debug("HOOK",`Hook error (fail-open) [${e}]: ${n.slice(0,200)}`),console.log(JSON.stringify(e==="context"?{hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:""}}:{continue:!0,suppressOutput:!0})),process.exit(Lu.SUCCESS)}}var cG=xe(()=>{"use strict";WZ();QZ();aG();As();se()});var DEe={};ks(DEe,{WorkerService:()=>Fb,buildStatusOutput:()=>pG,verifyLicense:()=>dG});module.exports=Dl(DEe);var Tm=Y(require("path"),1),lG=require("child_process"),sP=require("fs"),uG=require("os");er();var FEe=Object.freeze({status:"aborted"});function F(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var Ks=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Cm={};function jn(t){return t&&Object.assign(Cm,t),Cm}var nt={};ks(nt,{BIGINT_FORMAT_RANGES:()=>wP,Class:()=>Vb,NUMBER_FORMAT_RANGES:()=>rx,aborted:()=>la,allowsEval:()=>Xb,assert:()=>jG,assertEqual:()=>PG,assertIs:()=>CG,assertNever:()=>OG,assertNotEqual:()=>IG,assignProp:()=>Yb,cached:()=>ql,captureStackTrace:()=>jm,cleanEnum:()=>WG,cleanRegex:()=>Hl,clone:()=>Es,createTransparentProxy:()=>$G,defineLazy:()=>_t,esc:()=>ca,escapeRegex:()=>xi,extend:()=>qG,finalizeIssue:()=>rs,floatSafeRemainder:()=>Qb,getElementAtPath:()=>AG,getEnumValues:()=>Kb,getLengthableOrigin:()=>Bl,getParsedType:()=>MG,getSizableOrigin:()=>SP,isObject:()=>xo,isPlainObject:()=>_o,issue:()=>nx,joinValues:()=>Om,jsonStringifyReplacer:()=>Jb,merge:()=>FG,normalizeParams:()=>ye,nullish:()=>Fl,numKeys:()=>zG,omit:()=>UG,optionalKeys:()=>tx,partial:()=>HG,pick:()=>LG,prefixIssues:()=>Ts,primitiveTypes:()=>_P,promiseAllObject:()=>NG,propertyKeyTypes:()=>ex,randomString:()=>DG,required:()=>BG,stringifyPrimitive:()=>Am,unwrapMessage:()=>Ul});function PG(t){return t}function IG(t){return t}function CG(t){}function OG(t){throw new Error}function jG(t){}function Kb(t){let e=Object.values(t).filter(n=>typeof n=="number");return Object.entries(t).filter(([n,s])=>e.indexOf(+n)===-1).map(([n,s])=>s)}function Om(t,e="|"){return t.map(r=>Am(r)).join(e)}function Jb(t,e){return typeof e=="bigint"?e.toString():e}function ql(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Fl(t){return t==null}function Hl(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function Qb(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function _t(t,e,r){Object.defineProperty(t,e,{get(){{let s=r();return t[e]=s,s}throw new Error("cached value already set")},set(s){Object.defineProperty(t,e,{value:s})},configurable:!0})}function Yb(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function AG(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function NG(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function xo(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var Xb=ql(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function _o(t){if(xo(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(xo(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function zG(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var MG=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${e}`)}},ex=new Set(["string","number","symbol"]),_P=new Set(["string","number","bigint","boolean","symbol","undefined"]);function xi(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Es(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function ye(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function $G(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Am(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function tx(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var rx={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},wP={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function LG(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return Es(t,{...t._zod.def,shape:r,checks:[]})}function UG(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw new Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return Es(t,{...t._zod.def,shape:r,checks:[]})}function qG(t,e){if(!_o(e))throw new Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return Yb(this,"shape",n),n},checks:[]};return Es(t,r)}function FG(t,e){return Es(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return Yb(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function HG(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return Es(e,{...e._zod.def,shape:s,checks:[]})}function BG(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return Es(e,{...e._zod.def,shape:s,checks:[]})}function la(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Ul(t){return typeof t=="string"?t:t?.message}function rs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Ul(t.inst?._zod.def?.error?.(t))??Ul(e?.error?.(t))??Ul(r.customError?.(t))??Ul(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function SP(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function Bl(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function nx(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function WG(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var Vb=class{constructor(...e){}};var kP=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,Jb,2)},enumerable:!0}),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Nm=F("$ZodError",kP),sx=F("$ZodError",kP,{Parent:Error});function EP(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function TP(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Ks;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>rs(c,i,jn())));throw jm(o,s?.callee),o}return a.value};var PP=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>rs(c,i,jn())));throw jm(o,s?.callee),o}return a.value};var ix=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Ks;return i.issues.length?{success:!1,error:new(t??Nm)(i.issues.map(a=>rs(a,s,jn())))}:{success:!0,data:i.value}},Wl=ix(sx),ax=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>rs(a,s,jn())))}:{success:!0,data:i.value}},Dm=ax(sx);var IP=/^[cC][^\s-]{8,}$/,CP=/^[0-9a-z]+$/,OP=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,jP=/^[0-9a-vA-V]{20}$/,AP=/^[A-Za-z0-9]{27}$/,NP=/^[a-zA-Z0-9_-]{21}$/,DP=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var zP=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ox=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;var MP=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var GG="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function $P(){return new RegExp(GG,"u")}var LP=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,UP=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,qP=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,FP=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,HP=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,cx=/^[A-Za-z0-9_-]*$/,BP=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/;var WP=/^\+(?:[0-9]){6,14}[0-9]$/,ZP="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",GP=new RegExp(`^${ZP}$`);function VP(t){let e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof t.precision=="number"?t.precision===-1?`${e}`:t.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${t.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function KP(t){return new RegExp(`^${VP(t)}$`)}function JP(t){let e=VP({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${ZP}T(?:${n})$`)}var QP=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var YP=/^\d+$/,XP=/^-?\d+(?:\.\d+)?/i,eI=/true|false/i,tI=/null/i;var rI=/^[^A-Z]*$/,nI=/^[^a-z]*$/;var jr=F("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),sI={number:"number",bigint:"bigint",object:"date"},ux=F("$ZodCheckLessThan",(t,e)=>{jr.init(t,e);let r=sI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{jr.init(t,e);let r=sI[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),iI=F("$ZodCheckMultipleOf",(t,e)=>{jr.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):Qb(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),aI=F("$ZodCheckNumberFormat",(t,e)=>{jr.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=rx[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=YP)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}});var oI=F("$ZodCheckMaxLength",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let s=n.value;if(s.length<=e.maximum)return;let a=Bl(s);n.issues.push({origin:a,code:"too_big",maximum:e.maximum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),cI=F("$ZodCheckMinLength",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>s&&(n._zod.bag.minimum=e.minimum)}),t._zod.check=n=>{let s=n.value;if(s.length>=e.minimum)return;let a=Bl(s);n.issues.push({origin:a,code:"too_small",minimum:e.minimum,inclusive:!0,input:s,inst:t,continue:!e.abort})}}),lI=F("$ZodCheckLengthEquals",(t,e)=>{var r;jr.init(t,e),(r=t._zod.def).when??(r.when=n=>{let s=n.value;return!Fl(s)&&s.length!==void 0}),t._zod.onattach.push(n=>{let s=n._zod.bag;s.minimum=e.length,s.maximum=e.length,s.length=e.length}),t._zod.check=n=>{let s=n.value,i=s.length;if(i===e.length)return;let a=Bl(s),o=i>e.length;n.issues.push({origin:a,...o?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:n.value,inst:t,continue:!e.abort})}}),Zl=F("$ZodCheckStringFormat",(t,e)=>{var r,n;jr.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),uI=F("$ZodCheckRegex",(t,e)=>{Zl.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),pI=F("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=rI),Zl.init(t,e)}),dI=F("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=nI),Zl.init(t,e)}),mI=F("$ZodCheckIncludes",(t,e)=>{jr.init(t,e);let r=xi(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),fI=F("$ZodCheckStartsWith",(t,e)=>{jr.init(t,e);let r=new RegExp(`^${xi(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),hI=F("$ZodCheckEndsWith",(t,e)=>{jr.init(t,e);let r=new RegExp(`.*${xi(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});var gI=F("$ZodCheckOverwrite",(t,e)=>{jr.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}});var zm=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(` `).filter(a=>a),s=Math.min(...n.map(a=>a.length-a.trimStart().length)),i=n.map(a=>a.slice(s)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a)}compile(){let e=Function,r=this?.args,s=[...(this?.content??[""]).map(i=>` ${i}`)];return new e(...r,s.join(` -`))}};var yI={major:4,minor:0,patch:0};var wt=F("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=yI;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=ca(i),l;for(let u of a){if(u._zod.def.when){if(!u._zod.def.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Ks;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=ca(i,p)))});else{if(i.issues.length===p)continue;c||(c=ca(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Ks;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=Wl(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Dm(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),$m=F("$ZodString",(t,e)=>{wt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??QP(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Rt=F("$ZodStringFormat",(t,e)=>{Zl.init(t,e),$m.init(t,e)}),PI=F("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=zP),Rt.init(t,e)}),II=F("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=ox(n))}else e.pattern??(e.pattern=ox());Rt.init(t,e)}),CI=F("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=MP),Rt.init(t,e)}),OI=F("$ZodURL",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:BP.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),jI=F("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=$P()),Rt.init(t,e)}),AI=F("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=NP),Rt.init(t,e)}),NI=F("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=IP),Rt.init(t,e)}),DI=F("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=CP),Rt.init(t,e)}),zI=F("$ZodULID",(t,e)=>{e.pattern??(e.pattern=OP),Rt.init(t,e)}),MI=F("$ZodXID",(t,e)=>{e.pattern??(e.pattern=jP),Rt.init(t,e)}),$I=F("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=AP),Rt.init(t,e)}),LI=F("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=JP(e)),Rt.init(t,e)}),UI=F("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=GP),Rt.init(t,e)}),qI=F("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=KP(e)),Rt.init(t,e)}),FI=F("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=DP),Rt.init(t,e)}),HI=F("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=LP),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),BI=F("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=UP),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),WI=F("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=qP),Rt.init(t,e)}),ZI=F("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=FP),Rt.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function GI(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var VI=F("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=HP),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{GI(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function VG(t){if(!cx.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return GI(r)}var KI=F("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=cx),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{VG(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),JI=F("$ZodE164",(t,e)=>{e.pattern??(e.pattern=WP),Rt.init(t,e)});function KG(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var QI=F("$ZodJWT",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{KG(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var mx=F("$ZodNumber",(t,e)=>{wt.init(t,e),t._zod.pattern=t._zod.bag.pattern??XP,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),YI=F("$ZodNumber",(t,e)=>{aI.init(t,e),mx.init(t,e)}),XI=F("$ZodBoolean",(t,e)=>{wt.init(t,e),t._zod.pattern=eI,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}});var eC=F("$ZodNull",(t,e)=>{wt.init(t,e),t._zod.pattern=tI,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}});var tC=F("$ZodUnknown",(t,e)=>{wt.init(t,e),t._zod.parse=r=>r}),rC=F("$ZodNever",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function bI(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}var nC=F("$ZodArray",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;abI(l,r,a))):bI(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Mm(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}function xI(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Ts(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var sC=F("$ZodObject",(t,e)=>{wt.init(t,e);let r=ql(()=>{let p=Object.keys(e.shape);for(let m of p)if(!(e.shape[m]instanceof wt))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let d=tx(e.shape);return{shape:e.shape,keys:p,keySet:new Set(p),numKeys:p.length,optionalKeys:new Set(d)}});_t(t._zod,"propValues",()=>{let p=e.shape,d={};for(let m in p){let f=p[m]._zod;if(f.values){d[m]??(d[m]=new Set);for(let v of f.values)d[m].add(v)}}return d});let n=p=>{let d=new zm(["shape","payload","ctx"]),m=r.value,f=y=>{let b=oa(y);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};d.write("const input = payload.value;");let v=Object.create(null),g=0;for(let y of m.keys)v[y]=`key_${g++}`;d.write("const newResult = {}");for(let y of m.keys)if(m.optionalKeys.has(y)){let b=v[y];d.write(`const ${b} = ${f(y)};`);let x=oa(y);d.write(` +`))}};var yI={major:4,minor:0,patch:0};var wt=F("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=yI;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=la(i),l;for(let u of a){if(u._zod.def.when){if(!u._zod.def.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Ks;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=la(i,p)))});else{if(i.issues.length===p)continue;c||(c=la(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Ks;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=Wl(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Dm(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),$m=F("$ZodString",(t,e)=>{wt.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??QP(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Rt=F("$ZodStringFormat",(t,e)=>{Zl.init(t,e),$m.init(t,e)}),PI=F("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=zP),Rt.init(t,e)}),II=F("$ZodUUID",(t,e)=>{if(e.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(n===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=ox(n))}else e.pattern??(e.pattern=ox());Rt.init(t,e)}),CI=F("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=MP),Rt.init(t,e)}),OI=F("$ZodURL",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(s.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:BP.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),jI=F("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=$P()),Rt.init(t,e)}),AI=F("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=NP),Rt.init(t,e)}),NI=F("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=IP),Rt.init(t,e)}),DI=F("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=CP),Rt.init(t,e)}),zI=F("$ZodULID",(t,e)=>{e.pattern??(e.pattern=OP),Rt.init(t,e)}),MI=F("$ZodXID",(t,e)=>{e.pattern??(e.pattern=jP),Rt.init(t,e)}),$I=F("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=AP),Rt.init(t,e)}),LI=F("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=JP(e)),Rt.init(t,e)}),UI=F("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=GP),Rt.init(t,e)}),qI=F("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=KP(e)),Rt.init(t,e)}),FI=F("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=DP),Rt.init(t,e)}),HI=F("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=LP),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),BI=F("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=UP),Rt.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),WI=F("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=qP),Rt.init(t,e)}),ZI=F("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=FP),Rt.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function GI(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var VI=F("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=HP),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{GI(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function VG(t){if(!cx.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return GI(r)}var KI=F("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=cx),Rt.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{VG(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),JI=F("$ZodE164",(t,e)=>{e.pattern??(e.pattern=WP),Rt.init(t,e)});function KG(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var QI=F("$ZodJWT",(t,e)=>{Rt.init(t,e),t._zod.check=r=>{KG(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}});var mx=F("$ZodNumber",(t,e)=>{wt.init(t,e),t._zod.pattern=t._zod.bag.pattern??XP,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),YI=F("$ZodNumber",(t,e)=>{aI.init(t,e),mx.init(t,e)}),XI=F("$ZodBoolean",(t,e)=>{wt.init(t,e),t._zod.pattern=eI,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}});var eC=F("$ZodNull",(t,e)=>{wt.init(t,e),t._zod.pattern=tI,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}});var tC=F("$ZodUnknown",(t,e)=>{wt.init(t,e),t._zod.parse=r=>r}),rC=F("$ZodNever",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)});function bI(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}var nC=F("$ZodArray",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;abI(l,r,a))):bI(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Mm(t,e,r){t.issues.length&&e.issues.push(...Ts(r,t.issues)),e.value[r]=t.value}function xI(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Ts(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var sC=F("$ZodObject",(t,e)=>{wt.init(t,e);let r=ql(()=>{let p=Object.keys(e.shape);for(let m of p)if(!(e.shape[m]instanceof wt))throw new Error(`Invalid element at key "${m}": expected a Zod schema`);let d=tx(e.shape);return{shape:e.shape,keys:p,keySet:new Set(p),numKeys:p.length,optionalKeys:new Set(d)}});_t(t._zod,"propValues",()=>{let p=e.shape,d={};for(let m in p){let f=p[m]._zod;if(f.values){d[m]??(d[m]=new Set);for(let v of f.values)d[m].add(v)}}return d});let n=p=>{let d=new zm(["shape","payload","ctx"]),m=r.value,f=y=>{let b=ca(y);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};d.write("const input = payload.value;");let v=Object.create(null),g=0;for(let y of m.keys)v[y]=`key_${g++}`;d.write("const newResult = {}");for(let y of m.keys)if(m.optionalKeys.has(y)){let b=v[y];d.write(`const ${b} = ${f(y)};`);let x=ca(y);d.write(` if (${b}.issues.length) { if (input[${x}] === undefined) { if (${x} in input) { @@ -950,10 +950,10 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} `)}else{let b=v[y];d.write(`const ${b} = ${f(y)};`),d.write(` if (${b}.issues.length) payload.issues = payload.issues.concat(${b}.issues.map(iss => ({ ...iss, - path: iss.path ? [${oa(y)}, ...iss.path] : [${oa(y)}] - })));`),d.write(`newResult[${oa(y)}] = ${b}.value`)}d.write("payload.value = newResult;"),d.write("return payload;");let h=d.compile();return(y,b)=>h(p,y,b)},s,i=xo,a=!Cm.jitless,c=a&&Xb.value,l=e.catchall,u;t._zod.parse=(p,d)=>{u??(u=r.value);let m=p.value;if(!i(m))return p.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),p;let f=[];if(a&&c&&d?.async===!1&&d.jitless!==!0)s||(s=n(e.shape)),p=s(p,d);else{p.value={};let b=u.shape;for(let x of u.keys){let w=b[x],S=w._zod.run({value:m[x],issues:[]},d),k=w._zod.optin==="optional"&&w._zod.optout==="optional";S instanceof Promise?f.push(S.then(E=>k?xI(E,p,x,m):Mm(E,p,x))):k?xI(S,p,x,m):Mm(S,p,x)}}if(!l)return f.length?Promise.all(f).then(()=>p):p;let v=[],g=u.keySet,h=l._zod,y=h.def.type;for(let b of Object.keys(m)){if(g.has(b))continue;if(y==="never"){v.push(b);continue}let x=h.run({value:m[b],issues:[]},d);x instanceof Promise?f.push(x.then(w=>Mm(w,p,b))):Mm(x,p,b)}return v.length&&p.issues.push({code:"unrecognized_keys",keys:v,input:m,inst:t}),f.length?Promise.all(f).then(()=>p):p}});function _I(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>rs(i,n,jn())))}),e}var fx=F("$ZodUnion",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),_t(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),_t(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),_t(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>Hl(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>_I(a,r,t,n)):_I(i,r,t,n)}}),iC=F("$ZodDiscriminatedUnion",(t,e)=>{fx.init(t,e);let r=t._zod.parse;_t(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=ql(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!xo(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),aC=F("$ZodIntersection",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,l])=>wI(r,c,l)):wI(r,i,a)}});function dx(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(_o(t)&&_o(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=dx(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!_o(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Ts(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Ts(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>rs(l,n,jn())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Ts(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Ts(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}});var cC=F("$ZodEnum",(t,e)=>{wt.init(t,e);let r=Kb(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>ex.has(typeof n)).map(n=>typeof n=="string"?xi(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),lC=F("$ZodLiteral",(t,e)=>{wt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?xi(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}});var uC=F("$ZodTransform",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(a=>(r.value=a,r));if(s instanceof Promise)throw new Ks;return r.value=s,r}}),pC=F("$ZodOptional",(t,e)=>{wt.init(t,e),t._zod.optin="optional",t._zod.optout="optional",_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Hl(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),dC=F("$ZodNullable",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Hl(r.source)}|null)$`):void 0}),_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),mC=F("$ZodDefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>SI(i,e)):SI(s,e)}});function SI(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var fC=F("$ZodPrefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),hC=F("$ZodNonOptional",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>kI(i,t)):kI(s,t)}});function kI(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var gC=F("$ZodCatch",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>rs(a,n,jn()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>rs(i,n,jn()))},input:r.value}),r.issues=[]),r)}});var vC=F("$ZodPipe",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>e.in._zod.values),_t(t._zod,"optin",()=>e.in._zod.optin),_t(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>EI(i,e,n)):EI(s,e,n)}});function EI(t,e,r){return ca(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var yC=F("$ZodReadonly",(t,e)=>{wt.init(t,e),_t(t._zod,"propValues",()=>e.innerType._zod.propValues),_t(t._zod,"values",()=>e.innerType._zod.values),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(TI):TI(s)}});function TI(t){return t.value=Object.freeze(t.value),t}var bC=F("$ZodCustom",(t,e)=>{jr.init(t,e),wt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>RI(i,r,n,t));RI(s,r,n,t)}});function RI(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(nx(s))}}var JG=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},QG=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${JG(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Am(n.values[0])}`:`Invalid option: expected one of ${Om(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${Om(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function xC(){return{localeError:QG()}}var hx=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function YG(){return new hx}var Gl=YG();function _C(t,e){return new t({type:"string",...ye(e)})}function wC(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ye(e)})}function gx(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ye(e)})}function SC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ye(e)})}function kC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ye(e)})}function EC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ye(e)})}function TC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ye(e)})}function RC(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ye(e)})}function PC(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ye(e)})}function IC(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ye(e)})}function CC(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ye(e)})}function OC(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ye(e)})}function jC(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ye(e)})}function AC(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ye(e)})}function NC(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ye(e)})}function DC(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ye(e)})}function zC(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ye(e)})}function MC(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ye(e)})}function $C(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ye(e)})}function LC(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ye(e)})}function UC(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ye(e)})}function qC(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ye(e)})}function FC(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ye(e)})}function HC(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ye(e)})}function BC(t,e){return new t({type:"string",format:"date",check:"string_format",...ye(e)})}function WC(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ye(e)})}function ZC(t,e){return new t({type:"string",format:"duration",check:"string_format",...ye(e)})}function GC(t,e){return new t({type:"number",checks:[],...ye(e)})}function VC(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ye(e)})}function KC(t,e){return new t({type:"boolean",...ye(e)})}function JC(t,e){return new t({type:"null",...ye(e)})}function QC(t){return new t({type:"unknown"})}function YC(t,e){return new t({type:"never",...ye(e)})}function Lm(t,e){return new ux({check:"less_than",...ye(e),value:t,inclusive:!1})}function Vl(t,e){return new ux({check:"less_than",...ye(e),value:t,inclusive:!0})}function Um(t,e){return new px({check:"greater_than",...ye(e),value:t,inclusive:!1})}function Kl(t,e){return new px({check:"greater_than",...ye(e),value:t,inclusive:!0})}function qm(t,e){return new iI({check:"multiple_of",...ye(e),value:t})}function Fm(t,e){return new oI({check:"max_length",...ye(e),maximum:t})}function wo(t,e){return new cI({check:"min_length",...ye(e),minimum:t})}function Hm(t,e){return new lI({check:"length_equals",...ye(e),length:t})}function vx(t,e){return new uI({check:"string_format",format:"regex",...ye(e),pattern:t})}function yx(t){return new pI({check:"string_format",format:"lowercase",...ye(t)})}function bx(t){return new dI({check:"string_format",format:"uppercase",...ye(t)})}function xx(t,e){return new mI({check:"string_format",format:"includes",...ye(e),includes:t})}function _x(t,e){return new fI({check:"string_format",format:"starts_with",...ye(e),prefix:t})}function wx(t,e){return new hI({check:"string_format",format:"ends_with",...ye(e),suffix:t})}function la(t){return new gI({check:"overwrite",tx:t})}function Sx(t){return la(e=>e.normalize(t))}function kx(){return la(t=>t.trim())}function Ex(){return la(t=>t.toLowerCase())}function Tx(){return la(t=>t.toUpperCase())}function XC(t,e,r){return new t({type:"array",element:e,...ye(r)})}function eO(t,e,r){let n=ye(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function tO(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ye(r)})}function So(t){return!!t._zod}function ns(t,e){return So(t)?Wl(t,e):t.safeParse(e)}function Bm(t){if(!t)return;let e;if(So(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function rO(t){if(So(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Ql={};ks(Ql,{ZodISODate:()=>sO,ZodISODateTime:()=>nO,ZodISODuration:()=>aO,ZodISOTime:()=>iO,date:()=>Px,datetime:()=>Rx,duration:()=>Cx,time:()=>Ix});var nO=F("ZodISODateTime",(t,e)=>{LI.init(t,e),Dt.init(t,e)});function Rx(t){return HC(nO,t)}var sO=F("ZodISODate",(t,e)=>{UI.init(t,e),Dt.init(t,e)});function Px(t){return BC(sO,t)}var iO=F("ZodISOTime",(t,e)=>{qI.init(t,e),Dt.init(t,e)});function Ix(t){return WC(iO,t)}var aO=F("ZodISODuration",(t,e)=>{FI.init(t,e),Dt.init(t,e)});function Cx(t){return ZC(aO,t)}var oO=(t,e)=>{Nm.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>TP(t,r)},flatten:{value:r=>EP(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},DTe=F("ZodError",oO),Yl=F("ZodError",oO,{Parent:Error});var cO=RP(Yl),lO=PP(Yl),uO=ix(Yl),pO=ax(Yl);var Ut=F("ZodType",(t,e)=>(wt.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>Es(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>cO(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>uO(t,r,n),t.parseAsync=async(r,n)=>lO(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>pO(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(KV(r,n)),t.superRefine=r=>t.check(JV(r)),t.overwrite=r=>t.check(la(r)),t.optional=()=>Mt(t),t.nullable=()=>fO(t),t.nullish=()=>Mt(fO(t)),t.nonoptional=r=>FV(t,r),t.array=()=>Ze(t),t.or=r=>Pt([t,r]),t.and=r=>Zm(t,r),t.transform=r=>jx(t,xO(r)),t.default=r=>LV(t,r),t.prefault=r=>qV(t,r),t.catch=r=>BV(t,r),t.pipe=r=>jx(t,r),t.readonly=()=>GV(t),t.describe=r=>{let n=t.clone();return Gl.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Gl.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Gl.get(t);let n=t.clone();return Gl.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),hO=F("_ZodString",(t,e)=>{$m.init(t,e),Ut.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(vx(...n)),t.includes=(...n)=>t.check(xx(...n)),t.startsWith=(...n)=>t.check(_x(...n)),t.endsWith=(...n)=>t.check(wx(...n)),t.min=(...n)=>t.check(wo(...n)),t.max=(...n)=>t.check(Fm(...n)),t.length=(...n)=>t.check(Hm(...n)),t.nonempty=(...n)=>t.check(wo(1,...n)),t.lowercase=n=>t.check(yx(n)),t.uppercase=n=>t.check(bx(n)),t.trim=()=>t.check(kx()),t.normalize=(...n)=>t.check(Sx(...n)),t.toLowerCase=()=>t.check(Ex()),t.toUpperCase=()=>t.check(Tx())}),oV=F("ZodString",(t,e)=>{$m.init(t,e),hO.init(t,e),t.email=r=>t.check(wC(cV,r)),t.url=r=>t.check(RC(lV,r)),t.jwt=r=>t.check(FC(kV,r)),t.emoji=r=>t.check(PC(uV,r)),t.guid=r=>t.check(gx(dO,r)),t.uuid=r=>t.check(SC(Wm,r)),t.uuidv4=r=>t.check(kC(Wm,r)),t.uuidv6=r=>t.check(EC(Wm,r)),t.uuidv7=r=>t.check(TC(Wm,r)),t.nanoid=r=>t.check(IC(pV,r)),t.guid=r=>t.check(gx(dO,r)),t.cuid=r=>t.check(CC(dV,r)),t.cuid2=r=>t.check(OC(mV,r)),t.ulid=r=>t.check(jC(fV,r)),t.base64=r=>t.check(LC(_V,r)),t.base64url=r=>t.check(UC(wV,r)),t.xid=r=>t.check(AC(hV,r)),t.ksuid=r=>t.check(NC(gV,r)),t.ipv4=r=>t.check(DC(vV,r)),t.ipv6=r=>t.check(zC(yV,r)),t.cidrv4=r=>t.check(MC(bV,r)),t.cidrv6=r=>t.check($C(xV,r)),t.e164=r=>t.check(qC(SV,r)),t.datetime=r=>t.check(Rx(r)),t.date=r=>t.check(Px(r)),t.time=r=>t.check(Ix(r)),t.duration=r=>t.check(Cx(r))});function L(t){return _C(oV,t)}var Dt=F("ZodStringFormat",(t,e)=>{Rt.init(t,e),hO.init(t,e)}),cV=F("ZodEmail",(t,e)=>{CI.init(t,e),Dt.init(t,e)});var dO=F("ZodGUID",(t,e)=>{PI.init(t,e),Dt.init(t,e)});var Wm=F("ZodUUID",(t,e)=>{II.init(t,e),Dt.init(t,e)});var lV=F("ZodURL",(t,e)=>{OI.init(t,e),Dt.init(t,e)});var uV=F("ZodEmoji",(t,e)=>{jI.init(t,e),Dt.init(t,e)});var pV=F("ZodNanoID",(t,e)=>{AI.init(t,e),Dt.init(t,e)});var dV=F("ZodCUID",(t,e)=>{NI.init(t,e),Dt.init(t,e)});var mV=F("ZodCUID2",(t,e)=>{DI.init(t,e),Dt.init(t,e)});var fV=F("ZodULID",(t,e)=>{zI.init(t,e),Dt.init(t,e)});var hV=F("ZodXID",(t,e)=>{MI.init(t,e),Dt.init(t,e)});var gV=F("ZodKSUID",(t,e)=>{$I.init(t,e),Dt.init(t,e)});var vV=F("ZodIPv4",(t,e)=>{HI.init(t,e),Dt.init(t,e)});var yV=F("ZodIPv6",(t,e)=>{BI.init(t,e),Dt.init(t,e)});var bV=F("ZodCIDRv4",(t,e)=>{WI.init(t,e),Dt.init(t,e)});var xV=F("ZodCIDRv6",(t,e)=>{ZI.init(t,e),Dt.init(t,e)});var _V=F("ZodBase64",(t,e)=>{VI.init(t,e),Dt.init(t,e)});var wV=F("ZodBase64URL",(t,e)=>{KI.init(t,e),Dt.init(t,e)});var SV=F("ZodE164",(t,e)=>{JI.init(t,e),Dt.init(t,e)});var kV=F("ZodJWT",(t,e)=>{QI.init(t,e),Dt.init(t,e)});var gO=F("ZodNumber",(t,e)=>{mx.init(t,e),Ut.init(t,e),t.gt=(n,s)=>t.check(Um(n,s)),t.gte=(n,s)=>t.check(Kl(n,s)),t.min=(n,s)=>t.check(Kl(n,s)),t.lt=(n,s)=>t.check(Lm(n,s)),t.lte=(n,s)=>t.check(Vl(n,s)),t.max=(n,s)=>t.check(Vl(n,s)),t.int=n=>t.check(mO(n)),t.safe=n=>t.check(mO(n)),t.positive=n=>t.check(Um(0,n)),t.nonnegative=n=>t.check(Kl(0,n)),t.negative=n=>t.check(Lm(0,n)),t.nonpositive=n=>t.check(Vl(0,n)),t.multipleOf=(n,s)=>t.check(qm(n,s)),t.step=(n,s)=>t.check(qm(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function at(t){return GC(gO,t)}var EV=F("ZodNumberFormat",(t,e)=>{YI.init(t,e),gO.init(t,e)});function mO(t){return VC(EV,t)}var TV=F("ZodBoolean",(t,e)=>{XI.init(t,e),Ut.init(t,e)});function lr(t){return KC(TV,t)}var RV=F("ZodNull",(t,e)=>{eC.init(t,e),Ut.init(t,e)});function vO(t){return JC(RV,t)}var PV=F("ZodUnknown",(t,e)=>{tC.init(t,e),Ut.init(t,e)});function zt(){return QC(PV)}var IV=F("ZodNever",(t,e)=>{rC.init(t,e),Ut.init(t,e)});function CV(t){return YC(IV,t)}var OV=F("ZodArray",(t,e)=>{nC.init(t,e),Ut.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(wo(r,n)),t.nonempty=r=>t.check(wo(1,r)),t.max=(r,n)=>t.check(Fm(r,n)),t.length=(r,n)=>t.check(Hm(r,n)),t.unwrap=()=>t.element});function Ze(t,e){return XC(OV,t,e)}var yO=F("ZodObject",(t,e)=>{sC.init(t,e),Ut.init(t,e),nt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>sn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:zt()}),t.loose=()=>t.clone({...t._zod.def,catchall:zt()}),t.strict=()=>t.clone({...t._zod.def,catchall:CV()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>nt.extend(t,r),t.merge=r=>nt.merge(t,r),t.pick=r=>nt.pick(t,r),t.omit=r=>nt.omit(t,r),t.partial=(...r)=>nt.partial(_O,t,r[0]),t.required=(...r)=>nt.required(wO,t,r[0])});function ie(t,e){let r={type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},...nt.normalizeParams(e)};return new yO(r)}function Mr(t,e){return new yO({type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},catchall:zt(),...nt.normalizeParams(e)})}var bO=F("ZodUnion",(t,e)=>{fx.init(t,e),Ut.init(t,e),t.options=e.options});function Pt(t,e){return new bO({type:"union",options:t,...nt.normalizeParams(e)})}var jV=F("ZodDiscriminatedUnion",(t,e)=>{bO.init(t,e),iC.init(t,e)});function Ax(t,e,r){return new jV({type:"union",options:e,discriminator:t,...nt.normalizeParams(r)})}var AV=F("ZodIntersection",(t,e)=>{aC.init(t,e),Ut.init(t,e)});function Zm(t,e){return new AV({type:"intersection",left:t,right:e})}var NV=F("ZodRecord",(t,e)=>{oC.init(t,e),Ut.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function St(t,e,r){return new NV({type:"record",keyType:t,valueType:e,...nt.normalizeParams(r)})}var Ox=F("ZodEnum",(t,e)=>{cC.init(t,e),Ut.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Ox({...e,checks:[],...nt.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Ox({...e,checks:[],...nt.normalizeParams(s),entries:i})}});function sn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Ox({type:"enum",entries:r,...nt.normalizeParams(e)})}var DV=F("ZodLiteral",(t,e)=>{lC.init(t,e),Ut.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function me(t,e){return new DV({type:"literal",values:Array.isArray(t)?t:[t],...nt.normalizeParams(e)})}var zV=F("ZodTransform",(t,e)=>{uC.init(t,e),Ut.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(nt.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(nt.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function xO(t){return new zV({type:"transform",transform:t})}var _O=F("ZodOptional",(t,e)=>{pC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Mt(t){return new _O({type:"optional",innerType:t})}var MV=F("ZodNullable",(t,e)=>{dC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function fO(t){return new MV({type:"nullable",innerType:t})}var $V=F("ZodDefault",(t,e)=>{mC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function LV(t,e){return new $V({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var UV=F("ZodPrefault",(t,e)=>{fC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function qV(t,e){return new UV({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var wO=F("ZodNonOptional",(t,e)=>{hC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function FV(t,e){return new wO({type:"nonoptional",innerType:t,...nt.normalizeParams(e)})}var HV=F("ZodCatch",(t,e)=>{gC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function BV(t,e){return new HV({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var WV=F("ZodPipe",(t,e)=>{vC.init(t,e),Ut.init(t,e),t.in=e.in,t.out=e.out});function jx(t,e){return new WV({type:"pipe",in:t,out:e})}var ZV=F("ZodReadonly",(t,e)=>{yC.init(t,e),Ut.init(t,e)});function GV(t){return new ZV({type:"readonly",innerType:t})}var SO=F("ZodCustom",(t,e)=>{bC.init(t,e),Ut.init(t,e)});function VV(t){let e=new jr({check:"custom"});return e._zod.check=t,e}function kO(t,e){return eO(SO,t??(()=>!0),e)}function KV(t,e={}){return tO(SO,t,e)}function JV(t){let e=VV(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(nt.issue(n,r.value,e._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),s.continue??(s.continue=!e._zod.def.abort),r.issues.push(nt.issue(s))}},t(r.value,r)));return e}function Nx(t,e){return jx(xO(t),e)}jn(xC());var zx="2025-11-25";var EO=[zx,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],_i="io.modelcontextprotocol/related-task",Vm="2.0",rr=kO(t=>t!==null&&(typeof t=="object"||typeof t=="function")),TO=Pt([L(),at().int()]),RO=L(),PRe=Mr({ttl:at().optional(),pollInterval:at().optional()}),QV=ie({ttl:at().optional()}),YV=ie({taskId:L()}),Mx=Mr({progressToken:TO.optional(),[_i]:YV.optional()}),_n=ie({_meta:Mx.optional()}),Xl=_n.extend({task:QV.optional()}),PO=t=>Xl.safeParse(t).success,xr=ie({method:L(),params:_n.loose().optional()}),An=ie({_meta:Mx.optional()}),Nn=ie({method:L(),params:An.loose().optional()}),_r=Mr({_meta:Mx.optional()}),Km=Pt([L(),at().int()]),IO=ie({jsonrpc:me(Vm),id:Km,...xr.shape}).strict(),$x=t=>IO.safeParse(t).success,CO=ie({jsonrpc:me(Vm),...Nn.shape}).strict(),OO=t=>CO.safeParse(t).success,Lx=ie({jsonrpc:me(Vm),id:Km,result:_r}).strict(),eu=t=>Lx.safeParse(t).success;var ke;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(ke||(ke={}));var Ux=ie({jsonrpc:me(Vm),id:Km.optional(),error:ie({code:at().int(),message:L(),data:zt().optional()})}).strict();var jO=t=>Ux.safeParse(t).success;var AO=Pt([IO,CO,Lx,Ux]),IRe=Pt([Lx,Ux]),ua=_r.strict(),XV=An.extend({requestId:Km.optional(),reason:L().optional()}),Jm=Nn.extend({method:me("notifications/cancelled"),params:XV}),e7=ie({src:L(),mimeType:L().optional(),sizes:Ze(L()).optional(),theme:sn(["light","dark"]).optional()}),tu=ie({icons:Ze(e7).optional()}),ko=ie({name:L(),title:L().optional()}),NO=ko.extend({...ko.shape,...tu.shape,version:L(),websiteUrl:L().optional(),description:L().optional()}),t7=Zm(ie({applyDefaults:lr().optional()}),St(L(),zt())),r7=Nx(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Zm(ie({form:t7.optional(),url:rr.optional()}),St(L(),zt()).optional())),n7=Mr({list:rr.optional(),cancel:rr.optional(),requests:Mr({sampling:Mr({createMessage:rr.optional()}).optional(),elicitation:Mr({create:rr.optional()}).optional()}).optional()}),s7=Mr({list:rr.optional(),cancel:rr.optional(),requests:Mr({tools:Mr({call:rr.optional()}).optional()}).optional()}),i7=ie({experimental:St(L(),rr).optional(),sampling:ie({context:rr.optional(),tools:rr.optional()}).optional(),elicitation:r7.optional(),roots:ie({listChanged:lr().optional()}).optional(),tasks:n7.optional(),extensions:St(L(),rr).optional()}),a7=_n.extend({protocolVersion:L(),capabilities:i7,clientInfo:NO}),o7=xr.extend({method:me("initialize"),params:a7});var c7=ie({experimental:St(L(),rr).optional(),logging:rr.optional(),completions:rr.optional(),prompts:ie({listChanged:lr().optional()}).optional(),resources:ie({subscribe:lr().optional(),listChanged:lr().optional()}).optional(),tools:ie({listChanged:lr().optional()}).optional(),tasks:s7.optional(),extensions:St(L(),rr).optional()}),qx=_r.extend({protocolVersion:L(),capabilities:c7,serverInfo:NO,instructions:L().optional()}),l7=Nn.extend({method:me("notifications/initialized"),params:An.optional()});var Qm=xr.extend({method:me("ping"),params:_n.optional()}),u7=ie({progress:at(),total:Mt(at()),message:Mt(L())}),p7=ie({...An.shape,...u7.shape,progressToken:TO}),Ym=Nn.extend({method:me("notifications/progress"),params:p7}),d7=_n.extend({cursor:RO.optional()}),ru=xr.extend({params:d7.optional()}),nu=_r.extend({nextCursor:RO.optional()}),m7=sn(["working","input_required","completed","failed","cancelled"]),su=ie({taskId:L(),status:m7,ttl:Pt([at(),vO()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:Mt(at()),statusMessage:Mt(L())}),pa=_r.extend({task:su}),f7=An.merge(su),iu=Nn.extend({method:me("notifications/tasks/status"),params:f7}),Xm=xr.extend({method:me("tasks/get"),params:_n.extend({taskId:L()})}),ef=_r.merge(su),tf=xr.extend({method:me("tasks/result"),params:_n.extend({taskId:L()})}),CRe=_r.loose(),rf=ru.extend({method:me("tasks/list")}),nf=nu.extend({tasks:Ze(su)}),sf=xr.extend({method:me("tasks/cancel"),params:_n.extend({taskId:L()})}),DO=_r.merge(su),zO=ie({uri:L(),mimeType:Mt(L()),_meta:St(L(),zt()).optional()}),MO=zO.extend({text:L()}),Fx=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),$O=zO.extend({blob:Fx}),au=sn(["user","assistant"]),Eo=ie({audience:Ze(au).optional(),priority:at().min(0).max(1).optional(),lastModified:Ql.datetime({offset:!0}).optional()}),LO=ie({...ko.shape,...tu.shape,uri:L(),description:Mt(L()),mimeType:Mt(L()),size:Mt(at()),annotations:Eo.optional(),_meta:Mt(Mr({}))}),h7=ie({...ko.shape,...tu.shape,uriTemplate:L(),description:Mt(L()),mimeType:Mt(L()),annotations:Eo.optional(),_meta:Mt(Mr({}))}),g7=ru.extend({method:me("resources/list")}),Hx=nu.extend({resources:Ze(LO)}),v7=ru.extend({method:me("resources/templates/list")}),Bx=nu.extend({resourceTemplates:Ze(h7)}),Wx=_n.extend({uri:L()}),y7=Wx,b7=xr.extend({method:me("resources/read"),params:y7}),Zx=_r.extend({contents:Ze(Pt([MO,$O]))}),Gx=Nn.extend({method:me("notifications/resources/list_changed"),params:An.optional()}),x7=Wx,_7=xr.extend({method:me("resources/subscribe"),params:x7}),w7=Wx,S7=xr.extend({method:me("resources/unsubscribe"),params:w7}),k7=An.extend({uri:L()}),E7=Nn.extend({method:me("notifications/resources/updated"),params:k7}),T7=ie({name:L(),description:Mt(L()),required:Mt(lr())}),R7=ie({...ko.shape,...tu.shape,description:Mt(L()),arguments:Mt(Ze(T7)),_meta:Mt(Mr({}))}),P7=ru.extend({method:me("prompts/list")}),Vx=nu.extend({prompts:Ze(R7)}),I7=_n.extend({name:L(),arguments:St(L(),L()).optional()}),C7=xr.extend({method:me("prompts/get"),params:I7}),Kx=ie({type:me("text"),text:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),Jx=ie({type:me("image"),data:Fx,mimeType:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),Qx=ie({type:me("audio"),data:Fx,mimeType:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),O7=ie({type:me("tool_use"),name:L(),id:L(),input:St(L(),zt()),_meta:St(L(),zt()).optional()}),j7=ie({type:me("resource"),resource:Pt([MO,$O]),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),A7=LO.extend({type:me("resource_link")}),Yx=Pt([Kx,Jx,Qx,A7,j7]),N7=ie({role:au,content:Yx}),Xx=_r.extend({description:L().optional(),messages:Ze(N7)}),e_=Nn.extend({method:me("notifications/prompts/list_changed"),params:An.optional()}),D7=ie({title:L().optional(),readOnlyHint:lr().optional(),destructiveHint:lr().optional(),idempotentHint:lr().optional(),openWorldHint:lr().optional()}),z7=ie({taskSupport:sn(["required","optional","forbidden"]).optional()}),UO=ie({...ko.shape,...tu.shape,description:L().optional(),inputSchema:ie({type:me("object"),properties:St(L(),rr).optional(),required:Ze(L()).optional()}).catchall(zt()),outputSchema:ie({type:me("object"),properties:St(L(),rr).optional(),required:Ze(L()).optional()}).catchall(zt()).optional(),annotations:D7.optional(),execution:z7.optional(),_meta:St(L(),zt()).optional()}),M7=ru.extend({method:me("tools/list")}),t_=nu.extend({tools:Ze(UO)}),To=_r.extend({content:Ze(Yx).default([]),structuredContent:St(L(),zt()).optional(),isError:lr().optional()}),ORe=To.or(_r.extend({toolResult:zt()})),$7=Xl.extend({name:L(),arguments:St(L(),zt()).optional()}),L7=xr.extend({method:me("tools/call"),params:$7}),r_=Nn.extend({method:me("notifications/tools/list_changed"),params:An.optional()}),qO=ie({autoRefresh:lr().default(!0),debounceMs:at().int().nonnegative().default(300)}),FO=sn(["debug","info","notice","warning","error","critical","alert","emergency"]),U7=_n.extend({level:FO}),q7=xr.extend({method:me("logging/setLevel"),params:U7}),F7=An.extend({level:FO,logger:L().optional(),data:zt()}),H7=Nn.extend({method:me("notifications/message"),params:F7}),B7=ie({name:L().optional()}),W7=ie({hints:Ze(B7).optional(),costPriority:at().min(0).max(1).optional(),speedPriority:at().min(0).max(1).optional(),intelligencePriority:at().min(0).max(1).optional()}),Z7=ie({mode:sn(["auto","required","none"]).optional()}),G7=ie({type:me("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:Ze(Yx).default([]),structuredContent:ie({}).loose().optional(),isError:lr().optional(),_meta:St(L(),zt()).optional()}),V7=Ax("type",[Kx,Jx,Qx]),Gm=Ax("type",[Kx,Jx,Qx,O7,G7]),K7=ie({role:au,content:Pt([Gm,Ze(Gm)]),_meta:St(L(),zt()).optional()}),J7=Xl.extend({messages:Ze(K7),modelPreferences:W7.optional(),systemPrompt:L().optional(),includeContext:sn(["none","thisServer","allServers"]).optional(),temperature:at().optional(),maxTokens:at().int(),stopSequences:Ze(L()).optional(),metadata:rr.optional(),tools:Ze(UO).optional(),toolChoice:Z7.optional()}),n_=xr.extend({method:me("sampling/createMessage"),params:J7}),s_=_r.extend({model:L(),stopReason:Mt(sn(["endTurn","stopSequence","maxTokens"]).or(L())),role:au,content:V7}),i_=_r.extend({model:L(),stopReason:Mt(sn(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:au,content:Pt([Gm,Ze(Gm)])}),Q7=ie({type:me("boolean"),title:L().optional(),description:L().optional(),default:lr().optional()}),Y7=ie({type:me("string"),title:L().optional(),description:L().optional(),minLength:at().optional(),maxLength:at().optional(),format:sn(["email","uri","date","date-time"]).optional(),default:L().optional()}),X7=ie({type:sn(["number","integer"]),title:L().optional(),description:L().optional(),minimum:at().optional(),maximum:at().optional(),default:at().optional()}),eK=ie({type:me("string"),title:L().optional(),description:L().optional(),enum:Ze(L()),default:L().optional()}),tK=ie({type:me("string"),title:L().optional(),description:L().optional(),oneOf:Ze(ie({const:L(),title:L()})),default:L().optional()}),rK=ie({type:me("string"),title:L().optional(),description:L().optional(),enum:Ze(L()),enumNames:Ze(L()).optional(),default:L().optional()}),nK=Pt([eK,tK]),sK=ie({type:me("array"),title:L().optional(),description:L().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({type:me("string"),enum:Ze(L())}),default:Ze(L()).optional()}),iK=ie({type:me("array"),title:L().optional(),description:L().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({anyOf:Ze(ie({const:L(),title:L()}))}),default:Ze(L()).optional()}),aK=Pt([sK,iK]),oK=Pt([rK,nK,aK]),cK=Pt([oK,Q7,Y7,X7]),lK=Xl.extend({mode:me("form").optional(),message:L(),requestedSchema:ie({type:me("object"),properties:St(L(),cK),required:Ze(L()).optional()})}),uK=Xl.extend({mode:me("url"),message:L(),elicitationId:L(),url:L().url()}),pK=Pt([lK,uK]),a_=xr.extend({method:me("elicitation/create"),params:pK}),dK=An.extend({elicitationId:L()}),mK=Nn.extend({method:me("notifications/elicitation/complete"),params:dK}),o_=_r.extend({action:sn(["accept","decline","cancel"]),content:Nx(t=>t===null?void 0:t,St(L(),Pt([L(),at(),lr(),Ze(L())])).optional())}),fK=ie({type:me("ref/resource"),uri:L()});var hK=ie({type:me("ref/prompt"),name:L()}),gK=_n.extend({ref:Pt([hK,fK]),argument:ie({name:L(),value:L()}),context:ie({arguments:St(L(),L()).optional()}).optional()}),vK=xr.extend({method:me("completion/complete"),params:gK});var c_=_r.extend({completion:Mr({values:Ze(L()).max(100),total:Mt(at().int()),hasMore:Mt(lr())})}),yK=ie({uri:L().startsWith("file://"),name:L().optional(),_meta:St(L(),zt()).optional()}),bK=xr.extend({method:me("roots/list"),params:_n.optional()}),xK=_r.extend({roots:Ze(yK)}),_K=Nn.extend({method:me("notifications/roots/list_changed"),params:An.optional()}),jRe=Pt([Qm,o7,vK,q7,C7,P7,g7,v7,b7,_7,S7,L7,M7,Xm,tf,rf,sf]),ARe=Pt([Jm,Ym,l7,_K,iu]),NRe=Pt([ua,s_,i_,o_,xK,ef,nf,pa]),DRe=Pt([Qm,n_,a_,bK,Xm,tf,rf,sf]),zRe=Pt([Jm,Ym,H7,E7,Gx,r_,e_,iu,mK]),MRe=Pt([ua,qx,c_,Xx,Vx,Hx,Bx,Zx,To,t_,ef,nf,pa]),ve=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===ke.UrlElicitationRequired&&n){let s=n;if(s.elicitations)return new Dx(s.elicitations,r)}return new t(e,r,n)}},Dx=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(ke.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function wi(t){return t==="completed"||t==="failed"||t==="cancelled"}var g1e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function l_(t){let r=Bm(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=rO(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function u_(t,e){let r=ns(t,e);if(!r.success)throw r.error;return r.data}var RK=6e4,af=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Jm,r=>{this._oncancel(r)}),this.setNotificationHandler(Ym,r=>{this._onprogress(r)}),this.setRequestHandler(Qm,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Xm,async(r,n)=>{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(ke.InvalidParams,"Failed to retrieve task: Task not found");return{...s}}),this.setRequestHandler(tf,async(r,n)=>{let s=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let o;for(;o=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(o.type==="response"||o.type==="error"){let c=o.message,l=c.id,u=this._requestResolvers.get(l);if(u)if(this._requestResolvers.delete(l),o.type==="response")u(c);else{let p=c,d=new ve(p.error.code,p.error.message,p.error.data);u(d)}else{let p=o.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${l}`))}continue}await this._transport?.send(o.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new ve(ke.InvalidParams,`Task not found: ${i}`);if(!wi(a.status))return await this._waitForTaskUpdate(i,n.signal),await s();if(wi(a.status)){let o=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...o,_meta:{...o._meta,[_i]:{taskId:i}}}}return await s()};return await s()}),this.setRequestHandler(rf,async(r,n)=>{try{let{tasks:s,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:s,nextCursor:i,_meta:{}}}catch(s){throw new ve(ke.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(sf,async(r,n)=>{try{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(ke.InvalidParams,`Task not found: ${r.params.taskId}`);if(wi(s.status))throw new ve(ke.InvalidParams,`Cannot cancel task in terminal status: ${s.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(ke.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(s){throw s instanceof ve?s:new ve(ke.InvalidRequest,`Failed to cancel task: ${s instanceof Error?s.message:String(s)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),ve.fromError(ke.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let s=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{s?.(i,a),eu(i)||jO(i)?this._onresponse(i):$x(i)?this._onrequest(i,a):OO(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ve.fromError(ke.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,s=this._transport,i=e.params?._meta?.[_i]?.taskId;if(n===void 0){let u={jsonrpc:"2.0",id:e.id,error:{code:ke.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:u,timestamp:Date.now()},s?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):s?.send(u).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=PO(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,s?.sessionId):void 0,l={signal:a.signal,sessionId:s?.sessionId,_meta:e.params?._meta,sendNotification:async u=>{if(a.signal.aborted)return;let p={relatedRequestId:e.id};i&&(p.relatedTask={taskId:i}),await this.notification(u,p)},sendRequest:async(u,p,d)=>{if(a.signal.aborted)throw new ve(ke.ConnectionClosed,"Request was cancelled");let m={...d,relatedRequestId:e.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let f=m.relatedTask?.taskId??i;return f&&c&&await c.updateTaskStatus(f,"input_required"),await this.request(u,p,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:o?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,l)).then(async u=>{if(a.signal.aborted)return;let p={result:u,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)},async u=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:ke.InternalError,message:u.message??"Internal error",...u.data!==void 0&&{data:u.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,s=Number(r),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(c){this._responseHandlers.delete(s),this._progressHandlers.delete(s),this._cleanupTimeout(s),a(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),eu(e))n(e);else{let a=new ve(e.error.code,e.error.message,e.error.data);n(a)}return}let s=this._responseHandlers.get(r);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(eu(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let o=a.task;typeof o.taskId=="string"&&(i=!0,this._taskProgressTokens.set(o.taskId,r))}}if(i||this._progressHandlers.delete(r),eu(e))s(e);else{let a=ve.fromError(e.error.code,e.error.message,e.error.data);s(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:s}=n??{};if(!s){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(ke.InternalError,String(a))}}return}let i;try{let a=await this.request(e,pa,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new ve(ke.InternalError,"Task creation did not return a task");for(;;){let o=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:o},wi(o.status)){o.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:o.status==="failed"?yield{type:"error",error:new ve(ke.InternalError,`Task ${i} failed`)}:o.status==="cancelled"&&(yield{type:"error",error:new ve(ke.InternalError,`Task ${i} was cancelled`)});return}if(o.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=o.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(ke.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:c}=n??{};return new Promise((l,u)=>{let p=y=>{u(y)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(y){p(y);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(m.params={...m.params,task:o}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[_i]:c}});let f=y=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(y)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=y instanceof ve?y:new ve(ke.RequestTimeout,String(y));u(b)};this._responseHandlers.set(d,y=>{if(!n?.signal?.aborted){if(y instanceof Error)return u(y);try{let b=ns(r,y.result);b.success?l(b.data):u(b.error)}catch(b){u(b)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let v=n?.timeout??RK,g=()=>f(ve.fromError(ke.RequestTimeout,"Request timed out",{timeout:v}));this._setupTimeout(d,v,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let h=c?.taskId;if(h){let y=b=>{let x=this._responseHandlers.get(d);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,y),this._enqueueTaskMessage(h,{type:"request",message:m,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(d),u(b)})}else this._transport.send(m,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(y=>{this._cleanupTimeout(d),u(y)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},ef,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},nf,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},DO,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let o={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[_i]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:o,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[_i]:r.relatedTask}}}),this._transport?.send(o,r).catch(c=>this._onerror(c))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[_i]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=l_(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(s,i)=>{let a=u_(e,s);return Promise.resolve(r(a,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=l_(e);this._notificationHandlers.set(n,s=>{let i=u_(e,s);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,s)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let s of n)if(s.type==="request"&&$x(s.message)){let i=s.message.id,a=this._requestResolvers.get(i);a?(a(new ve(ke.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let s=await this._taskStore?.getTask(e);s?.pollInterval&&(n=s.pollInterval)}catch{}return new Promise((s,i)=>{if(r.aborted){i(new ve(ke.InvalidRequest,"Request cancelled"));return}let a=setTimeout(s,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new ve(ke.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async s=>{if(!e)throw new Error("No request provided");return await n.createTask(s,e.id,{method:e.method,params:e.params},r)},getTask:async s=>{let i=await n.getTask(s,r);if(!i)throw new ve(ke.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(s,i,a)=>{await n.storeTaskResult(s,i,a,r);let o=await n.getTask(s,r);if(o){let c=iu.parse({method:"notifications/tasks/status",params:o});await this.notification(c),wi(o.status)&&this._cleanupTaskProgressHandler(s)}},getTaskResult:s=>n.getTaskResult(s,r),updateTaskStatus:async(s,i,a)=>{let o=await n.getTask(s,r);if(!o)throw new ve(ke.InvalidParams,`Task "${s}" not found - it may have been cleaned up`);if(wi(o.status))throw new ve(ke.InvalidParams,`Cannot update task "${s}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(s,i,a,r);let c=await n.getTask(s,r);if(c){let l=iu.parse({method:"notifications/tasks/status",params:c});await this.notification(l),wi(c.status)&&this._cleanupTaskProgressHandler(s)}},listTasks:s=>n.listTasks(s,r)}}};function HO(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function BO(t,e){let r={...t};for(let n in e){let s=n,i=e[s];if(i===void 0)continue;let a=r[s];HO(a)&&HO(i)?r[s]={...a,...i}:r[s]=i}return r}var CN=Y(K0(),1),ON=Y(IN(),1);function yte(){let t=new CN.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,ON.default)(t),t}var Ff=class{constructor(e){this._ajv=e??yte()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Hf=class{constructor(e){this._client=e}async*callToolStream(e,r=To,n){let s=this._client,i={...n,task:n?.task??(s.isToolTask(e.name)?{}:void 0)},a=s.requestStream({method:"tools/call",params:e},r,i),o=s.getToolOutputValidator(e.name);for await(let c of a){if(c.type==="result"&&o){let l=c.result;if(!l.structuredContent&&!l.isError){yield{type:"error",error:new ve(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(l.structuredContent)try{let u=o(l.structuredContent);if(!u.valid){yield{type:"error",error:new ve(ke.InvalidParams,`Structured content does not match the tool's output schema: ${u.errorMessage}`)};return}}catch(u){if(u instanceof ve){yield{type:"error",error:u};return}yield{type:"error",error:new ve(ke.InvalidParams,`Failed to validate structured content: ${u instanceof Error?u.message:String(u)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function jN(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function AN(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Bf(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let s of Object.keys(n)){let i=n[s];r[s]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[s]=i.default),r[s]!==void 0&&Bf(i,r[s])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Bf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Bf(r,e)}}function bte(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Bo=class extends af{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Ff,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",r_,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",e_,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Gx,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Hf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=BO(this._capabilities,e)}setRequestHandler(e,r){let s=Bm(e)?.method;if(!s)throw new Error("Schema is missing a method literal");let i;if(So(s)){let o=s;i=o._zod?.def?.value??o.value}else{let o=s;i=o._def?.value??o.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");let a=i;if(a==="elicitation/create"){let o=async(c,l)=>{let u=ns(a_,c);if(!u.success){let y=u.error instanceof Error?u.error.message:String(u.error);throw new ve(ke.InvalidParams,`Invalid elicitation request: ${y}`)}let{params:p}=u.data;p.mode=p.mode??"form";let{supportsFormMode:d,supportsUrlMode:m}=bte(this._capabilities.elicitation);if(p.mode==="form"&&!d)throw new ve(ke.InvalidParams,"Client does not support form-mode elicitation requests");if(p.mode==="url"&&!m)throw new ve(ke.InvalidParams,"Client does not support URL-mode elicitation requests");let f=await Promise.resolve(r(c,l));if(p.task){let y=ns(pa,f);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new ve(ke.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let v=ns(o_,f);if(!v.success){let y=v.error instanceof Error?v.error.message:String(v.error);throw new ve(ke.InvalidParams,`Invalid elicitation result: ${y}`)}let g=v.data,h=p.mode==="form"?p.requestedSchema:void 0;if(p.mode==="form"&&g.action==="accept"&&g.content&&h&&this._capabilities.elicitation?.form?.applyDefaults)try{Bf(h,g.content)}catch{}return g};return super.setRequestHandler(e,o)}if(a==="sampling/createMessage"){let o=async(c,l)=>{let u=ns(n_,c);if(!u.success){let g=u.error instanceof Error?u.error.message:String(u.error);throw new ve(ke.InvalidParams,`Invalid sampling request: ${g}`)}let{params:p}=u.data,d=await Promise.resolve(r(c,l));if(p.task){let g=ns(pa,d);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new ve(ke.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let f=p.tools||p.toolChoice?i_:s_,v=ns(f,d);if(!v.success){let g=v.error instanceof Error?v.error.message:String(v.error);throw new ve(ke.InvalidParams,`Invalid sampling result: ${g}`)}return v.data};return super.setRequestHandler(e,o)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:zx,capabilities:this._capabilities,clientInfo:this._clientInfo}},qx,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!EO.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){jN(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&AN(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},ua,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},c_,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},ua,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Xx,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Vx,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Hx,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bx,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Zx,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},ua,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},ua,r)}async callTool(e,r=To,n){if(this.isToolTaskRequired(e.name))throw new ve(ke.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let s=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new ve(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{let a=i(s.structuredContent);if(!a.valid)throw new ve(ke.InvalidParams,`Structured content does not match the tool's output schema: ${a.errorMessage}`)}catch(a){throw a instanceof ve?a:new ve(ke.InvalidParams,`Failed to validate structured content: ${a instanceof Error?a.message:String(a)}`)}}return s}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let s=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,s)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},t_,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,s){let i=qO.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:c}=n,l=async()=>{if(!a){c(null,null);return}try{let p=await s();c(null,p)}catch(p){let d=p instanceof Error?p:new Error(String(p));c(d,null)}},u=()=>{if(o){let p=this._listChangedDebounceTimers.get(e);p&&clearTimeout(p);let d=setTimeout(l,o);this._listChangedDebounceTimers.set(e,d)}else l()};this.setNotificationHandler(r,u)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var SD=Y(_D(),1),Gf=Y(require("node:process"),1),kD=require("node:stream");var Zf=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` + path: iss.path ? [${ca(y)}, ...iss.path] : [${ca(y)}] + })));`),d.write(`newResult[${ca(y)}] = ${b}.value`)}d.write("payload.value = newResult;"),d.write("return payload;");let h=d.compile();return(y,b)=>h(p,y,b)},s,i=xo,a=!Cm.jitless,c=a&&Xb.value,l=e.catchall,u;t._zod.parse=(p,d)=>{u??(u=r.value);let m=p.value;if(!i(m))return p.issues.push({expected:"object",code:"invalid_type",input:m,inst:t}),p;let f=[];if(a&&c&&d?.async===!1&&d.jitless!==!0)s||(s=n(e.shape)),p=s(p,d);else{p.value={};let b=u.shape;for(let x of u.keys){let w=b[x],S=w._zod.run({value:m[x],issues:[]},d),k=w._zod.optin==="optional"&&w._zod.optout==="optional";S instanceof Promise?f.push(S.then(E=>k?xI(E,p,x,m):Mm(E,p,x))):k?xI(S,p,x,m):Mm(S,p,x)}}if(!l)return f.length?Promise.all(f).then(()=>p):p;let v=[],g=u.keySet,h=l._zod,y=h.def.type;for(let b of Object.keys(m)){if(g.has(b))continue;if(y==="never"){v.push(b);continue}let x=h.run({value:m[b],issues:[]},d);x instanceof Promise?f.push(x.then(w=>Mm(w,p,b))):Mm(x,p,b)}return v.length&&p.issues.push({code:"unrecognized_keys",keys:v,input:m,inst:t}),f.length?Promise.all(f).then(()=>p):p}});function _I(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>rs(i,n,jn())))}),e}var fx=F("$ZodUnion",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),_t(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),_t(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),_t(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>Hl(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>_I(a,r,t,n)):_I(i,r,t,n)}}),iC=F("$ZodDiscriminatedUnion",(t,e)=>{fx.init(t,e);let r=t._zod.parse;_t(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=ql(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw new Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!xo(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),aC=F("$ZodIntersection",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([c,l])=>wI(r,c,l)):wI(r,i,a)}});function dx(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(_o(t)&&_o(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=dx(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{wt.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!_o(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Ts(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Ts(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>rs(l,n,jn())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Ts(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Ts(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}});var cC=F("$ZodEnum",(t,e)=>{wt.init(t,e);let r=Kb(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>ex.has(typeof n)).map(n=>typeof n=="string"?xi(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),lC=F("$ZodLiteral",(t,e)=>{wt.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?xi(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}});var uC=F("$ZodTransform",(t,e)=>{wt.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(a=>(r.value=a,r));if(s instanceof Promise)throw new Ks;return r.value=s,r}}),pC=F("$ZodOptional",(t,e)=>{wt.init(t,e),t._zod.optin="optional",t._zod.optout="optional",_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Hl(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),dC=F("$ZodNullable",(t,e)=>{wt.init(t,e),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${Hl(r.source)}|null)$`):void 0}),_t(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),mC=F("$ZodDefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>SI(i,e)):SI(s,e)}});function SI(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var fC=F("$ZodPrefault",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),hC=F("$ZodNonOptional",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>kI(i,t)):kI(s,t)}});function kI(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var gC=F("$ZodCatch",(t,e)=>{wt.init(t,e),t._zod.optin="optional",_t(t._zod,"optout",()=>e.innerType._zod.optout),_t(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>rs(a,n,jn()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>rs(i,n,jn()))},input:r.value}),r.issues=[]),r)}});var vC=F("$ZodPipe",(t,e)=>{wt.init(t,e),_t(t._zod,"values",()=>e.in._zod.values),_t(t._zod,"optin",()=>e.in._zod.optin),_t(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>EI(i,e,n)):EI(s,e,n)}});function EI(t,e,r){return la(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var yC=F("$ZodReadonly",(t,e)=>{wt.init(t,e),_t(t._zod,"propValues",()=>e.innerType._zod.propValues),_t(t._zod,"values",()=>e.innerType._zod.values),_t(t._zod,"optin",()=>e.innerType._zod.optin),_t(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(TI):TI(s)}});function TI(t){return t.value=Object.freeze(t.value),t}var bC=F("$ZodCustom",(t,e)=>{jr.init(t,e),wt.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>RI(i,r,n,t));RI(s,r,n,t)}});function RI(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push(nx(s))}}var JG=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},QG=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${JG(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Am(n.values[0])}`:`Invalid option: expected one of ${Om(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${Om(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function xC(){return{localeError:QG()}}var hx=class{constructor(){this._map=new Map,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw new Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function YG(){return new hx}var Gl=YG();function _C(t,e){return new t({type:"string",...ye(e)})}function wC(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...ye(e)})}function gx(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...ye(e)})}function SC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...ye(e)})}function kC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ye(e)})}function EC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ye(e)})}function TC(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ye(e)})}function RC(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...ye(e)})}function PC(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...ye(e)})}function IC(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...ye(e)})}function CC(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...ye(e)})}function OC(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...ye(e)})}function jC(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...ye(e)})}function AC(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...ye(e)})}function NC(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...ye(e)})}function DC(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...ye(e)})}function zC(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...ye(e)})}function MC(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ye(e)})}function $C(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ye(e)})}function LC(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...ye(e)})}function UC(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...ye(e)})}function qC(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...ye(e)})}function FC(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...ye(e)})}function HC(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ye(e)})}function BC(t,e){return new t({type:"string",format:"date",check:"string_format",...ye(e)})}function WC(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...ye(e)})}function ZC(t,e){return new t({type:"string",format:"duration",check:"string_format",...ye(e)})}function GC(t,e){return new t({type:"number",checks:[],...ye(e)})}function VC(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...ye(e)})}function KC(t,e){return new t({type:"boolean",...ye(e)})}function JC(t,e){return new t({type:"null",...ye(e)})}function QC(t){return new t({type:"unknown"})}function YC(t,e){return new t({type:"never",...ye(e)})}function Lm(t,e){return new ux({check:"less_than",...ye(e),value:t,inclusive:!1})}function Vl(t,e){return new ux({check:"less_than",...ye(e),value:t,inclusive:!0})}function Um(t,e){return new px({check:"greater_than",...ye(e),value:t,inclusive:!1})}function Kl(t,e){return new px({check:"greater_than",...ye(e),value:t,inclusive:!0})}function qm(t,e){return new iI({check:"multiple_of",...ye(e),value:t})}function Fm(t,e){return new oI({check:"max_length",...ye(e),maximum:t})}function wo(t,e){return new cI({check:"min_length",...ye(e),minimum:t})}function Hm(t,e){return new lI({check:"length_equals",...ye(e),length:t})}function vx(t,e){return new uI({check:"string_format",format:"regex",...ye(e),pattern:t})}function yx(t){return new pI({check:"string_format",format:"lowercase",...ye(t)})}function bx(t){return new dI({check:"string_format",format:"uppercase",...ye(t)})}function xx(t,e){return new mI({check:"string_format",format:"includes",...ye(e),includes:t})}function _x(t,e){return new fI({check:"string_format",format:"starts_with",...ye(e),prefix:t})}function wx(t,e){return new hI({check:"string_format",format:"ends_with",...ye(e),suffix:t})}function ua(t){return new gI({check:"overwrite",tx:t})}function Sx(t){return ua(e=>e.normalize(t))}function kx(){return ua(t=>t.trim())}function Ex(){return ua(t=>t.toLowerCase())}function Tx(){return ua(t=>t.toUpperCase())}function XC(t,e,r){return new t({type:"array",element:e,...ye(r)})}function eO(t,e,r){let n=ye(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function tO(t,e,r){return new t({type:"custom",check:"custom",fn:e,...ye(r)})}function So(t){return!!t._zod}function ns(t,e){return So(t)?Wl(t,e):t.safeParse(e)}function Bm(t){if(!t)return;let e;if(So(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function rO(t){if(So(t)){let i=t._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Ql={};ks(Ql,{ZodISODate:()=>sO,ZodISODateTime:()=>nO,ZodISODuration:()=>aO,ZodISOTime:()=>iO,date:()=>Px,datetime:()=>Rx,duration:()=>Cx,time:()=>Ix});var nO=F("ZodISODateTime",(t,e)=>{LI.init(t,e),Dt.init(t,e)});function Rx(t){return HC(nO,t)}var sO=F("ZodISODate",(t,e)=>{UI.init(t,e),Dt.init(t,e)});function Px(t){return BC(sO,t)}var iO=F("ZodISOTime",(t,e)=>{qI.init(t,e),Dt.init(t,e)});function Ix(t){return WC(iO,t)}var aO=F("ZodISODuration",(t,e)=>{FI.init(t,e),Dt.init(t,e)});function Cx(t){return ZC(aO,t)}var oO=(t,e)=>{Nm.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>TP(t,r)},flatten:{value:r=>EP(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},DTe=F("ZodError",oO),Yl=F("ZodError",oO,{Parent:Error});var cO=RP(Yl),lO=PP(Yl),uO=ix(Yl),pO=ax(Yl);var Ut=F("ZodType",(t,e)=>(wt.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>Es(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>cO(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>uO(t,r,n),t.parseAsync=async(r,n)=>lO(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>pO(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(KV(r,n)),t.superRefine=r=>t.check(JV(r)),t.overwrite=r=>t.check(ua(r)),t.optional=()=>Mt(t),t.nullable=()=>fO(t),t.nullish=()=>Mt(fO(t)),t.nonoptional=r=>FV(t,r),t.array=()=>Ze(t),t.or=r=>Pt([t,r]),t.and=r=>Zm(t,r),t.transform=r=>jx(t,xO(r)),t.default=r=>LV(t,r),t.prefault=r=>qV(t,r),t.catch=r=>BV(t,r),t.pipe=r=>jx(t,r),t.readonly=()=>GV(t),t.describe=r=>{let n=t.clone();return Gl.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Gl.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Gl.get(t);let n=t.clone();return Gl.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),hO=F("_ZodString",(t,e)=>{$m.init(t,e),Ut.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(vx(...n)),t.includes=(...n)=>t.check(xx(...n)),t.startsWith=(...n)=>t.check(_x(...n)),t.endsWith=(...n)=>t.check(wx(...n)),t.min=(...n)=>t.check(wo(...n)),t.max=(...n)=>t.check(Fm(...n)),t.length=(...n)=>t.check(Hm(...n)),t.nonempty=(...n)=>t.check(wo(1,...n)),t.lowercase=n=>t.check(yx(n)),t.uppercase=n=>t.check(bx(n)),t.trim=()=>t.check(kx()),t.normalize=(...n)=>t.check(Sx(...n)),t.toLowerCase=()=>t.check(Ex()),t.toUpperCase=()=>t.check(Tx())}),oV=F("ZodString",(t,e)=>{$m.init(t,e),hO.init(t,e),t.email=r=>t.check(wC(cV,r)),t.url=r=>t.check(RC(lV,r)),t.jwt=r=>t.check(FC(kV,r)),t.emoji=r=>t.check(PC(uV,r)),t.guid=r=>t.check(gx(dO,r)),t.uuid=r=>t.check(SC(Wm,r)),t.uuidv4=r=>t.check(kC(Wm,r)),t.uuidv6=r=>t.check(EC(Wm,r)),t.uuidv7=r=>t.check(TC(Wm,r)),t.nanoid=r=>t.check(IC(pV,r)),t.guid=r=>t.check(gx(dO,r)),t.cuid=r=>t.check(CC(dV,r)),t.cuid2=r=>t.check(OC(mV,r)),t.ulid=r=>t.check(jC(fV,r)),t.base64=r=>t.check(LC(_V,r)),t.base64url=r=>t.check(UC(wV,r)),t.xid=r=>t.check(AC(hV,r)),t.ksuid=r=>t.check(NC(gV,r)),t.ipv4=r=>t.check(DC(vV,r)),t.ipv6=r=>t.check(zC(yV,r)),t.cidrv4=r=>t.check(MC(bV,r)),t.cidrv6=r=>t.check($C(xV,r)),t.e164=r=>t.check(qC(SV,r)),t.datetime=r=>t.check(Rx(r)),t.date=r=>t.check(Px(r)),t.time=r=>t.check(Ix(r)),t.duration=r=>t.check(Cx(r))});function L(t){return _C(oV,t)}var Dt=F("ZodStringFormat",(t,e)=>{Rt.init(t,e),hO.init(t,e)}),cV=F("ZodEmail",(t,e)=>{CI.init(t,e),Dt.init(t,e)});var dO=F("ZodGUID",(t,e)=>{PI.init(t,e),Dt.init(t,e)});var Wm=F("ZodUUID",(t,e)=>{II.init(t,e),Dt.init(t,e)});var lV=F("ZodURL",(t,e)=>{OI.init(t,e),Dt.init(t,e)});var uV=F("ZodEmoji",(t,e)=>{jI.init(t,e),Dt.init(t,e)});var pV=F("ZodNanoID",(t,e)=>{AI.init(t,e),Dt.init(t,e)});var dV=F("ZodCUID",(t,e)=>{NI.init(t,e),Dt.init(t,e)});var mV=F("ZodCUID2",(t,e)=>{DI.init(t,e),Dt.init(t,e)});var fV=F("ZodULID",(t,e)=>{zI.init(t,e),Dt.init(t,e)});var hV=F("ZodXID",(t,e)=>{MI.init(t,e),Dt.init(t,e)});var gV=F("ZodKSUID",(t,e)=>{$I.init(t,e),Dt.init(t,e)});var vV=F("ZodIPv4",(t,e)=>{HI.init(t,e),Dt.init(t,e)});var yV=F("ZodIPv6",(t,e)=>{BI.init(t,e),Dt.init(t,e)});var bV=F("ZodCIDRv4",(t,e)=>{WI.init(t,e),Dt.init(t,e)});var xV=F("ZodCIDRv6",(t,e)=>{ZI.init(t,e),Dt.init(t,e)});var _V=F("ZodBase64",(t,e)=>{VI.init(t,e),Dt.init(t,e)});var wV=F("ZodBase64URL",(t,e)=>{KI.init(t,e),Dt.init(t,e)});var SV=F("ZodE164",(t,e)=>{JI.init(t,e),Dt.init(t,e)});var kV=F("ZodJWT",(t,e)=>{QI.init(t,e),Dt.init(t,e)});var gO=F("ZodNumber",(t,e)=>{mx.init(t,e),Ut.init(t,e),t.gt=(n,s)=>t.check(Um(n,s)),t.gte=(n,s)=>t.check(Kl(n,s)),t.min=(n,s)=>t.check(Kl(n,s)),t.lt=(n,s)=>t.check(Lm(n,s)),t.lte=(n,s)=>t.check(Vl(n,s)),t.max=(n,s)=>t.check(Vl(n,s)),t.int=n=>t.check(mO(n)),t.safe=n=>t.check(mO(n)),t.positive=n=>t.check(Um(0,n)),t.nonnegative=n=>t.check(Kl(0,n)),t.negative=n=>t.check(Lm(0,n)),t.nonpositive=n=>t.check(Vl(0,n)),t.multipleOf=(n,s)=>t.check(qm(n,s)),t.step=(n,s)=>t.check(qm(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function at(t){return GC(gO,t)}var EV=F("ZodNumberFormat",(t,e)=>{YI.init(t,e),gO.init(t,e)});function mO(t){return VC(EV,t)}var TV=F("ZodBoolean",(t,e)=>{XI.init(t,e),Ut.init(t,e)});function lr(t){return KC(TV,t)}var RV=F("ZodNull",(t,e)=>{eC.init(t,e),Ut.init(t,e)});function vO(t){return JC(RV,t)}var PV=F("ZodUnknown",(t,e)=>{tC.init(t,e),Ut.init(t,e)});function zt(){return QC(PV)}var IV=F("ZodNever",(t,e)=>{rC.init(t,e),Ut.init(t,e)});function CV(t){return YC(IV,t)}var OV=F("ZodArray",(t,e)=>{nC.init(t,e),Ut.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(wo(r,n)),t.nonempty=r=>t.check(wo(1,r)),t.max=(r,n)=>t.check(Fm(r,n)),t.length=(r,n)=>t.check(Hm(r,n)),t.unwrap=()=>t.element});function Ze(t,e){return XC(OV,t,e)}var yO=F("ZodObject",(t,e)=>{sC.init(t,e),Ut.init(t,e),nt.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>sn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:zt()}),t.loose=()=>t.clone({...t._zod.def,catchall:zt()}),t.strict=()=>t.clone({...t._zod.def,catchall:CV()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>nt.extend(t,r),t.merge=r=>nt.merge(t,r),t.pick=r=>nt.pick(t,r),t.omit=r=>nt.omit(t,r),t.partial=(...r)=>nt.partial(_O,t,r[0]),t.required=(...r)=>nt.required(wO,t,r[0])});function ie(t,e){let r={type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},...nt.normalizeParams(e)};return new yO(r)}function Mr(t,e){return new yO({type:"object",get shape(){return nt.assignProp(this,"shape",{...t}),this.shape},catchall:zt(),...nt.normalizeParams(e)})}var bO=F("ZodUnion",(t,e)=>{fx.init(t,e),Ut.init(t,e),t.options=e.options});function Pt(t,e){return new bO({type:"union",options:t,...nt.normalizeParams(e)})}var jV=F("ZodDiscriminatedUnion",(t,e)=>{bO.init(t,e),iC.init(t,e)});function Ax(t,e,r){return new jV({type:"union",options:e,discriminator:t,...nt.normalizeParams(r)})}var AV=F("ZodIntersection",(t,e)=>{aC.init(t,e),Ut.init(t,e)});function Zm(t,e){return new AV({type:"intersection",left:t,right:e})}var NV=F("ZodRecord",(t,e)=>{oC.init(t,e),Ut.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function St(t,e,r){return new NV({type:"record",keyType:t,valueType:e,...nt.normalizeParams(r)})}var Ox=F("ZodEnum",(t,e)=>{cC.init(t,e),Ut.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Ox({...e,checks:[],...nt.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Ox({...e,checks:[],...nt.normalizeParams(s),entries:i})}});function sn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Ox({type:"enum",entries:r,...nt.normalizeParams(e)})}var DV=F("ZodLiteral",(t,e)=>{lC.init(t,e),Ut.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function me(t,e){return new DV({type:"literal",values:Array.isArray(t)?t:[t],...nt.normalizeParams(e)})}var zV=F("ZodTransform",(t,e)=>{uC.init(t,e),Ut.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(nt.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(nt.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function xO(t){return new zV({type:"transform",transform:t})}var _O=F("ZodOptional",(t,e)=>{pC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Mt(t){return new _O({type:"optional",innerType:t})}var MV=F("ZodNullable",(t,e)=>{dC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function fO(t){return new MV({type:"nullable",innerType:t})}var $V=F("ZodDefault",(t,e)=>{mC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function LV(t,e){return new $V({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var UV=F("ZodPrefault",(t,e)=>{fC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function qV(t,e){return new UV({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var wO=F("ZodNonOptional",(t,e)=>{hC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType});function FV(t,e){return new wO({type:"nonoptional",innerType:t,...nt.normalizeParams(e)})}var HV=F("ZodCatch",(t,e)=>{gC.init(t,e),Ut.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function BV(t,e){return new HV({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var WV=F("ZodPipe",(t,e)=>{vC.init(t,e),Ut.init(t,e),t.in=e.in,t.out=e.out});function jx(t,e){return new WV({type:"pipe",in:t,out:e})}var ZV=F("ZodReadonly",(t,e)=>{yC.init(t,e),Ut.init(t,e)});function GV(t){return new ZV({type:"readonly",innerType:t})}var SO=F("ZodCustom",(t,e)=>{bC.init(t,e),Ut.init(t,e)});function VV(t){let e=new jr({check:"custom"});return e._zod.check=t,e}function kO(t,e){return eO(SO,t??(()=>!0),e)}function KV(t,e={}){return tO(SO,t,e)}function JV(t){let e=VV(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(nt.issue(n,r.value,e._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),s.continue??(s.continue=!e._zod.def.abort),r.issues.push(nt.issue(s))}},t(r.value,r)));return e}function Nx(t,e){return jx(xO(t),e)}jn(xC());var zx="2025-11-25";var EO=[zx,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],_i="io.modelcontextprotocol/related-task",Vm="2.0",rr=kO(t=>t!==null&&(typeof t=="object"||typeof t=="function")),TO=Pt([L(),at().int()]),RO=L(),PRe=Mr({ttl:at().optional(),pollInterval:at().optional()}),QV=ie({ttl:at().optional()}),YV=ie({taskId:L()}),Mx=Mr({progressToken:TO.optional(),[_i]:YV.optional()}),_n=ie({_meta:Mx.optional()}),Xl=_n.extend({task:QV.optional()}),PO=t=>Xl.safeParse(t).success,xr=ie({method:L(),params:_n.loose().optional()}),An=ie({_meta:Mx.optional()}),Nn=ie({method:L(),params:An.loose().optional()}),_r=Mr({_meta:Mx.optional()}),Km=Pt([L(),at().int()]),IO=ie({jsonrpc:me(Vm),id:Km,...xr.shape}).strict(),$x=t=>IO.safeParse(t).success,CO=ie({jsonrpc:me(Vm),...Nn.shape}).strict(),OO=t=>CO.safeParse(t).success,Lx=ie({jsonrpc:me(Vm),id:Km,result:_r}).strict(),eu=t=>Lx.safeParse(t).success;var ke;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(ke||(ke={}));var Ux=ie({jsonrpc:me(Vm),id:Km.optional(),error:ie({code:at().int(),message:L(),data:zt().optional()})}).strict();var jO=t=>Ux.safeParse(t).success;var AO=Pt([IO,CO,Lx,Ux]),IRe=Pt([Lx,Ux]),pa=_r.strict(),XV=An.extend({requestId:Km.optional(),reason:L().optional()}),Jm=Nn.extend({method:me("notifications/cancelled"),params:XV}),e7=ie({src:L(),mimeType:L().optional(),sizes:Ze(L()).optional(),theme:sn(["light","dark"]).optional()}),tu=ie({icons:Ze(e7).optional()}),ko=ie({name:L(),title:L().optional()}),NO=ko.extend({...ko.shape,...tu.shape,version:L(),websiteUrl:L().optional(),description:L().optional()}),t7=Zm(ie({applyDefaults:lr().optional()}),St(L(),zt())),r7=Nx(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Zm(ie({form:t7.optional(),url:rr.optional()}),St(L(),zt()).optional())),n7=Mr({list:rr.optional(),cancel:rr.optional(),requests:Mr({sampling:Mr({createMessage:rr.optional()}).optional(),elicitation:Mr({create:rr.optional()}).optional()}).optional()}),s7=Mr({list:rr.optional(),cancel:rr.optional(),requests:Mr({tools:Mr({call:rr.optional()}).optional()}).optional()}),i7=ie({experimental:St(L(),rr).optional(),sampling:ie({context:rr.optional(),tools:rr.optional()}).optional(),elicitation:r7.optional(),roots:ie({listChanged:lr().optional()}).optional(),tasks:n7.optional(),extensions:St(L(),rr).optional()}),a7=_n.extend({protocolVersion:L(),capabilities:i7,clientInfo:NO}),o7=xr.extend({method:me("initialize"),params:a7});var c7=ie({experimental:St(L(),rr).optional(),logging:rr.optional(),completions:rr.optional(),prompts:ie({listChanged:lr().optional()}).optional(),resources:ie({subscribe:lr().optional(),listChanged:lr().optional()}).optional(),tools:ie({listChanged:lr().optional()}).optional(),tasks:s7.optional(),extensions:St(L(),rr).optional()}),qx=_r.extend({protocolVersion:L(),capabilities:c7,serverInfo:NO,instructions:L().optional()}),l7=Nn.extend({method:me("notifications/initialized"),params:An.optional()});var Qm=xr.extend({method:me("ping"),params:_n.optional()}),u7=ie({progress:at(),total:Mt(at()),message:Mt(L())}),p7=ie({...An.shape,...u7.shape,progressToken:TO}),Ym=Nn.extend({method:me("notifications/progress"),params:p7}),d7=_n.extend({cursor:RO.optional()}),ru=xr.extend({params:d7.optional()}),nu=_r.extend({nextCursor:RO.optional()}),m7=sn(["working","input_required","completed","failed","cancelled"]),su=ie({taskId:L(),status:m7,ttl:Pt([at(),vO()]),createdAt:L(),lastUpdatedAt:L(),pollInterval:Mt(at()),statusMessage:Mt(L())}),da=_r.extend({task:su}),f7=An.merge(su),iu=Nn.extend({method:me("notifications/tasks/status"),params:f7}),Xm=xr.extend({method:me("tasks/get"),params:_n.extend({taskId:L()})}),ef=_r.merge(su),tf=xr.extend({method:me("tasks/result"),params:_n.extend({taskId:L()})}),CRe=_r.loose(),rf=ru.extend({method:me("tasks/list")}),nf=nu.extend({tasks:Ze(su)}),sf=xr.extend({method:me("tasks/cancel"),params:_n.extend({taskId:L()})}),DO=_r.merge(su),zO=ie({uri:L(),mimeType:Mt(L()),_meta:St(L(),zt()).optional()}),MO=zO.extend({text:L()}),Fx=L().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),$O=zO.extend({blob:Fx}),au=sn(["user","assistant"]),Eo=ie({audience:Ze(au).optional(),priority:at().min(0).max(1).optional(),lastModified:Ql.datetime({offset:!0}).optional()}),LO=ie({...ko.shape,...tu.shape,uri:L(),description:Mt(L()),mimeType:Mt(L()),size:Mt(at()),annotations:Eo.optional(),_meta:Mt(Mr({}))}),h7=ie({...ko.shape,...tu.shape,uriTemplate:L(),description:Mt(L()),mimeType:Mt(L()),annotations:Eo.optional(),_meta:Mt(Mr({}))}),g7=ru.extend({method:me("resources/list")}),Hx=nu.extend({resources:Ze(LO)}),v7=ru.extend({method:me("resources/templates/list")}),Bx=nu.extend({resourceTemplates:Ze(h7)}),Wx=_n.extend({uri:L()}),y7=Wx,b7=xr.extend({method:me("resources/read"),params:y7}),Zx=_r.extend({contents:Ze(Pt([MO,$O]))}),Gx=Nn.extend({method:me("notifications/resources/list_changed"),params:An.optional()}),x7=Wx,_7=xr.extend({method:me("resources/subscribe"),params:x7}),w7=Wx,S7=xr.extend({method:me("resources/unsubscribe"),params:w7}),k7=An.extend({uri:L()}),E7=Nn.extend({method:me("notifications/resources/updated"),params:k7}),T7=ie({name:L(),description:Mt(L()),required:Mt(lr())}),R7=ie({...ko.shape,...tu.shape,description:Mt(L()),arguments:Mt(Ze(T7)),_meta:Mt(Mr({}))}),P7=ru.extend({method:me("prompts/list")}),Vx=nu.extend({prompts:Ze(R7)}),I7=_n.extend({name:L(),arguments:St(L(),L()).optional()}),C7=xr.extend({method:me("prompts/get"),params:I7}),Kx=ie({type:me("text"),text:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),Jx=ie({type:me("image"),data:Fx,mimeType:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),Qx=ie({type:me("audio"),data:Fx,mimeType:L(),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),O7=ie({type:me("tool_use"),name:L(),id:L(),input:St(L(),zt()),_meta:St(L(),zt()).optional()}),j7=ie({type:me("resource"),resource:Pt([MO,$O]),annotations:Eo.optional(),_meta:St(L(),zt()).optional()}),A7=LO.extend({type:me("resource_link")}),Yx=Pt([Kx,Jx,Qx,A7,j7]),N7=ie({role:au,content:Yx}),Xx=_r.extend({description:L().optional(),messages:Ze(N7)}),e_=Nn.extend({method:me("notifications/prompts/list_changed"),params:An.optional()}),D7=ie({title:L().optional(),readOnlyHint:lr().optional(),destructiveHint:lr().optional(),idempotentHint:lr().optional(),openWorldHint:lr().optional()}),z7=ie({taskSupport:sn(["required","optional","forbidden"]).optional()}),UO=ie({...ko.shape,...tu.shape,description:L().optional(),inputSchema:ie({type:me("object"),properties:St(L(),rr).optional(),required:Ze(L()).optional()}).catchall(zt()),outputSchema:ie({type:me("object"),properties:St(L(),rr).optional(),required:Ze(L()).optional()}).catchall(zt()).optional(),annotations:D7.optional(),execution:z7.optional(),_meta:St(L(),zt()).optional()}),M7=ru.extend({method:me("tools/list")}),t_=nu.extend({tools:Ze(UO)}),To=_r.extend({content:Ze(Yx).default([]),structuredContent:St(L(),zt()).optional(),isError:lr().optional()}),ORe=To.or(_r.extend({toolResult:zt()})),$7=Xl.extend({name:L(),arguments:St(L(),zt()).optional()}),L7=xr.extend({method:me("tools/call"),params:$7}),r_=Nn.extend({method:me("notifications/tools/list_changed"),params:An.optional()}),qO=ie({autoRefresh:lr().default(!0),debounceMs:at().int().nonnegative().default(300)}),FO=sn(["debug","info","notice","warning","error","critical","alert","emergency"]),U7=_n.extend({level:FO}),q7=xr.extend({method:me("logging/setLevel"),params:U7}),F7=An.extend({level:FO,logger:L().optional(),data:zt()}),H7=Nn.extend({method:me("notifications/message"),params:F7}),B7=ie({name:L().optional()}),W7=ie({hints:Ze(B7).optional(),costPriority:at().min(0).max(1).optional(),speedPriority:at().min(0).max(1).optional(),intelligencePriority:at().min(0).max(1).optional()}),Z7=ie({mode:sn(["auto","required","none"]).optional()}),G7=ie({type:me("tool_result"),toolUseId:L().describe("The unique identifier for the corresponding tool call."),content:Ze(Yx).default([]),structuredContent:ie({}).loose().optional(),isError:lr().optional(),_meta:St(L(),zt()).optional()}),V7=Ax("type",[Kx,Jx,Qx]),Gm=Ax("type",[Kx,Jx,Qx,O7,G7]),K7=ie({role:au,content:Pt([Gm,Ze(Gm)]),_meta:St(L(),zt()).optional()}),J7=Xl.extend({messages:Ze(K7),modelPreferences:W7.optional(),systemPrompt:L().optional(),includeContext:sn(["none","thisServer","allServers"]).optional(),temperature:at().optional(),maxTokens:at().int(),stopSequences:Ze(L()).optional(),metadata:rr.optional(),tools:Ze(UO).optional(),toolChoice:Z7.optional()}),n_=xr.extend({method:me("sampling/createMessage"),params:J7}),s_=_r.extend({model:L(),stopReason:Mt(sn(["endTurn","stopSequence","maxTokens"]).or(L())),role:au,content:V7}),i_=_r.extend({model:L(),stopReason:Mt(sn(["endTurn","stopSequence","maxTokens","toolUse"]).or(L())),role:au,content:Pt([Gm,Ze(Gm)])}),Q7=ie({type:me("boolean"),title:L().optional(),description:L().optional(),default:lr().optional()}),Y7=ie({type:me("string"),title:L().optional(),description:L().optional(),minLength:at().optional(),maxLength:at().optional(),format:sn(["email","uri","date","date-time"]).optional(),default:L().optional()}),X7=ie({type:sn(["number","integer"]),title:L().optional(),description:L().optional(),minimum:at().optional(),maximum:at().optional(),default:at().optional()}),eK=ie({type:me("string"),title:L().optional(),description:L().optional(),enum:Ze(L()),default:L().optional()}),tK=ie({type:me("string"),title:L().optional(),description:L().optional(),oneOf:Ze(ie({const:L(),title:L()})),default:L().optional()}),rK=ie({type:me("string"),title:L().optional(),description:L().optional(),enum:Ze(L()),enumNames:Ze(L()).optional(),default:L().optional()}),nK=Pt([eK,tK]),sK=ie({type:me("array"),title:L().optional(),description:L().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({type:me("string"),enum:Ze(L())}),default:Ze(L()).optional()}),iK=ie({type:me("array"),title:L().optional(),description:L().optional(),minItems:at().optional(),maxItems:at().optional(),items:ie({anyOf:Ze(ie({const:L(),title:L()}))}),default:Ze(L()).optional()}),aK=Pt([sK,iK]),oK=Pt([rK,nK,aK]),cK=Pt([oK,Q7,Y7,X7]),lK=Xl.extend({mode:me("form").optional(),message:L(),requestedSchema:ie({type:me("object"),properties:St(L(),cK),required:Ze(L()).optional()})}),uK=Xl.extend({mode:me("url"),message:L(),elicitationId:L(),url:L().url()}),pK=Pt([lK,uK]),a_=xr.extend({method:me("elicitation/create"),params:pK}),dK=An.extend({elicitationId:L()}),mK=Nn.extend({method:me("notifications/elicitation/complete"),params:dK}),o_=_r.extend({action:sn(["accept","decline","cancel"]),content:Nx(t=>t===null?void 0:t,St(L(),Pt([L(),at(),lr(),Ze(L())])).optional())}),fK=ie({type:me("ref/resource"),uri:L()});var hK=ie({type:me("ref/prompt"),name:L()}),gK=_n.extend({ref:Pt([hK,fK]),argument:ie({name:L(),value:L()}),context:ie({arguments:St(L(),L()).optional()}).optional()}),vK=xr.extend({method:me("completion/complete"),params:gK});var c_=_r.extend({completion:Mr({values:Ze(L()).max(100),total:Mt(at().int()),hasMore:Mt(lr())})}),yK=ie({uri:L().startsWith("file://"),name:L().optional(),_meta:St(L(),zt()).optional()}),bK=xr.extend({method:me("roots/list"),params:_n.optional()}),xK=_r.extend({roots:Ze(yK)}),_K=Nn.extend({method:me("notifications/roots/list_changed"),params:An.optional()}),jRe=Pt([Qm,o7,vK,q7,C7,P7,g7,v7,b7,_7,S7,L7,M7,Xm,tf,rf,sf]),ARe=Pt([Jm,Ym,l7,_K,iu]),NRe=Pt([pa,s_,i_,o_,xK,ef,nf,da]),DRe=Pt([Qm,n_,a_,bK,Xm,tf,rf,sf]),zRe=Pt([Jm,Ym,H7,E7,Gx,r_,e_,iu,mK]),MRe=Pt([pa,qx,c_,Xx,Vx,Hx,Bx,Zx,To,t_,ef,nf,da]),ve=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===ke.UrlElicitationRequired&&n){let s=n;if(s.elicitations)return new Dx(s.elicitations,r)}return new t(e,r,n)}},Dx=class extends ve{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(ke.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function wi(t){return t==="completed"||t==="failed"||t==="cancelled"}var g1e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function l_(t){let r=Bm(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=rO(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function u_(t,e){let r=ns(t,e);if(!r.success)throw r.error;return r.data}var RK=6e4,af=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Jm,r=>{this._oncancel(r)}),this.setNotificationHandler(Ym,r=>{this._onprogress(r)}),this.setRequestHandler(Qm,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Xm,async(r,n)=>{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(ke.InvalidParams,"Failed to retrieve task: Task not found");return{...s}}),this.setRequestHandler(tf,async(r,n)=>{let s=async()=>{let i=r.params.taskId;if(this._taskMessageQueue){let o;for(;o=await this._taskMessageQueue.dequeue(i,n.sessionId);){if(o.type==="response"||o.type==="error"){let c=o.message,l=c.id,u=this._requestResolvers.get(l);if(u)if(this._requestResolvers.delete(l),o.type==="response")u(c);else{let p=c,d=new ve(p.error.code,p.error.message,p.error.data);u(d)}else{let p=o.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${l}`))}continue}await this._transport?.send(o.message,{relatedRequestId:n.requestId})}}let a=await this._taskStore.getTask(i,n.sessionId);if(!a)throw new ve(ke.InvalidParams,`Task not found: ${i}`);if(!wi(a.status))return await this._waitForTaskUpdate(i,n.signal),await s();if(wi(a.status)){let o=await this._taskStore.getTaskResult(i,n.sessionId);return this._clearTaskQueue(i),{...o,_meta:{...o._meta,[_i]:{taskId:i}}}}return await s()};return await s()}),this.setRequestHandler(rf,async(r,n)=>{try{let{tasks:s,nextCursor:i}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:s,nextCursor:i,_meta:{}}}catch(s){throw new ve(ke.InvalidParams,`Failed to list tasks: ${s instanceof Error?s.message:String(s)}`)}}),this.setRequestHandler(sf,async(r,n)=>{try{let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ve(ke.InvalidParams,`Task not found: ${r.params.taskId}`);if(wi(s.status))throw new ve(ke.InvalidParams,`Cannot cancel task in terminal status: ${s.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ve(ke.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...i}}catch(s){throw s instanceof ve?s:new ve(ke.InvalidRequest,`Failed to cancel task: ${s instanceof Error?s.message:String(s)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,r,n,s,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(s,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:s})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),ve.fromError(ke.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=i=>{n?.(i),this._onerror(i)};let s=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{s?.(i,a),eu(i)||jO(i)?this._onresponse(i):$x(i)?this._onrequest(i,a):OO(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ve.fromError(ke.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,s=this._transport,i=e.params?._meta?.[_i]?.taskId;if(n===void 0){let u={jsonrpc:"2.0",id:e.id,error:{code:ke.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:u,timestamp:Date.now()},s?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):s?.send(u).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(e.id,a);let o=PO(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,s?.sessionId):void 0,l={signal:a.signal,sessionId:s?.sessionId,_meta:e.params?._meta,sendNotification:async u=>{if(a.signal.aborted)return;let p={relatedRequestId:e.id};i&&(p.relatedTask={taskId:i}),await this.notification(u,p)},sendRequest:async(u,p,d)=>{if(a.signal.aborted)throw new ve(ke.ConnectionClosed,"Request was cancelled");let m={...d,relatedRequestId:e.id};i&&!m.relatedTask&&(m.relatedTask={taskId:i});let f=m.relatedTask?.taskId??i;return f&&c&&await c.updateTaskStatus(f,"input_required"),await this.request(u,p,m)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:o?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{o&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,l)).then(async u=>{if(a.signal.aborted)return;let p={result:u,jsonrpc:"2.0",id:e.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)},async u=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(u.code)?u.code:ke.InternalError,message:u.message??"Internal error",...u.data!==void 0&&{data:u.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},s?.sessionId):await s?.send(p)}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===a&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,s=Number(r),i=this._progressHandlers.get(s);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(s),o=this._timeoutInfo.get(s);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(s)}catch(c){this._responseHandlers.delete(s),this._progressHandlers.delete(s),this._cleanupTimeout(s),a(c);return}i(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),eu(e))n(e);else{let a=new ve(e.error.code,e.error.message,e.error.data);n(a)}return}let s=this._responseHandlers.get(r);if(s===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let i=!1;if(eu(e)&&e.result&&typeof e.result=="object"){let a=e.result;if(a.task&&typeof a.task=="object"){let o=a.task;typeof o.taskId=="string"&&(i=!0,this._taskProgressTokens.set(o.taskId,r))}}if(i||this._progressHandlers.delete(r),eu(e))s(e);else{let a=ve.fromError(e.error.code,e.error.message,e.error.data);s(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,r,n){let{task:s}=n??{};if(!s){try{yield{type:"result",result:await this.request(e,r,n)}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(ke.InternalError,String(a))}}return}let i;try{let a=await this.request(e,da,n);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new ve(ke.InternalError,"Task creation did not return a task");for(;;){let o=await this.getTask({taskId:i},n);if(yield{type:"taskStatus",task:o},wi(o.status)){o.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)}:o.status==="failed"?yield{type:"error",error:new ve(ke.InternalError,`Task ${i} failed`)}:o.status==="cancelled"&&(yield{type:"error",error:new ve(ke.InternalError,`Task ${i} was cancelled`)});return}if(o.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},r,n)};return}let c=o.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),n?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof ve?a:new ve(ke.InternalError,String(a))}}}request(e,r,n){let{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a,task:o,relatedTask:c}=n??{};return new Promise((l,u)=>{let p=y=>{u(y)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),o&&this.assertTaskCapability(e.method)}catch(y){p(y);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++,m={...e,jsonrpc:"2.0",id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),m.params={...e.params,_meta:{...e.params?._meta||{},progressToken:d}}),o&&(m.params={...m.params,task:o}),c&&(m.params={...m.params,_meta:{...m.params?._meta||{},[_i]:c}});let f=y=>{this._responseHandlers.delete(d),this._progressHandlers.delete(d),this._cleanupTimeout(d),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:d,reason:String(y)}},{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let b=y instanceof ve?y:new ve(ke.RequestTimeout,String(y));u(b)};this._responseHandlers.set(d,y=>{if(!n?.signal?.aborted){if(y instanceof Error)return u(y);try{let b=ns(r,y.result);b.success?l(b.data):u(b.error)}catch(b){u(b)}}}),n?.signal?.addEventListener("abort",()=>{f(n?.signal?.reason)});let v=n?.timeout??RK,g=()=>f(ve.fromError(ke.RequestTimeout,"Request timed out",{timeout:v}));this._setupTimeout(d,v,n?.maxTotalTimeout,g,n?.resetTimeoutOnProgress??!1);let h=c?.taskId;if(h){let y=b=>{let x=this._responseHandlers.get(d);x?x(b):this._onerror(new Error(`Response handler missing for side-channeled request ${d}`))};this._requestResolvers.set(d,y),this._enqueueTaskMessage(h,{type:"request",message:m,timestamp:Date.now()}).catch(b=>{this._cleanupTimeout(d),u(b)})}else this._transport.send(m,{relatedRequestId:s,resumptionToken:i,onresumptiontoken:a}).catch(y=>{this._cleanupTimeout(d),u(y)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},ef,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},nf,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},DO,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let o={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[_i]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:o,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[_i]:r.relatedTask}}}),this._transport?.send(o,r).catch(c=>this._onerror(c))});return}let a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[_i]:r.relatedTask}}}),await this._transport.send(a,r)}setRequestHandler(e,r){let n=l_(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(s,i)=>{let a=u_(e,s);return Promise.resolve(r(a,i))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){let n=l_(e);this._notificationHandlers.set(n,s=>{let i=u_(e,s);return Promise.resolve(r(i))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let s=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,r,n,s)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let s of n)if(s.type==="request"&&$x(s.message)){let i=s.message.id,a=this._requestResolvers.get(i);a?(a(new ve(ke.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let s=await this._taskStore?.getTask(e);s?.pollInterval&&(n=s.pollInterval)}catch{}return new Promise((s,i)=>{if(r.aborted){i(new ve(ke.InvalidRequest,"Request cancelled"));return}let a=setTimeout(s,n);r.addEventListener("abort",()=>{clearTimeout(a),i(new ve(ke.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async s=>{if(!e)throw new Error("No request provided");return await n.createTask(s,e.id,{method:e.method,params:e.params},r)},getTask:async s=>{let i=await n.getTask(s,r);if(!i)throw new ve(ke.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(s,i,a)=>{await n.storeTaskResult(s,i,a,r);let o=await n.getTask(s,r);if(o){let c=iu.parse({method:"notifications/tasks/status",params:o});await this.notification(c),wi(o.status)&&this._cleanupTaskProgressHandler(s)}},getTaskResult:s=>n.getTaskResult(s,r),updateTaskStatus:async(s,i,a)=>{let o=await n.getTask(s,r);if(!o)throw new ve(ke.InvalidParams,`Task "${s}" not found - it may have been cleaned up`);if(wi(o.status))throw new ve(ke.InvalidParams,`Cannot update task "${s}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(s,i,a,r);let c=await n.getTask(s,r);if(c){let l=iu.parse({method:"notifications/tasks/status",params:c});await this.notification(l),wi(c.status)&&this._cleanupTaskProgressHandler(s)}},listTasks:s=>n.listTasks(s,r)}}};function HO(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function BO(t,e){let r={...t};for(let n in e){let s=n,i=e[s];if(i===void 0)continue;let a=r[s];HO(a)&&HO(i)?r[s]={...a,...i}:r[s]=i}return r}var CN=Y(K0(),1),ON=Y(IN(),1);function yte(){let t=new CN.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,ON.default)(t),t}var Ff=class{constructor(e){this._ajv=e??yte()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var Hf=class{constructor(e){this._client=e}async*callToolStream(e,r=To,n){let s=this._client,i={...n,task:n?.task??(s.isToolTask(e.name)?{}:void 0)},a=s.requestStream({method:"tools/call",params:e},r,i),o=s.getToolOutputValidator(e.name);for await(let c of a){if(c.type==="result"&&o){let l=c.result;if(!l.structuredContent&&!l.isError){yield{type:"error",error:new ve(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(l.structuredContent)try{let u=o(l.structuredContent);if(!u.valid){yield{type:"error",error:new ve(ke.InvalidParams,`Structured content does not match the tool's output schema: ${u.errorMessage}`)};return}}catch(u){if(u instanceof ve){yield{type:"error",error:u};return}yield{type:"error",error:new ve(ke.InvalidParams,`Failed to validate structured content: ${u instanceof Error?u.message:String(u)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function jN(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function AN(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function Bf(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let s of Object.keys(n)){let i=n[s];r[s]===void 0&&Object.prototype.hasOwnProperty.call(i,"default")&&(r[s]=i.default),r[s]!==void 0&&Bf(i,r[s])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&Bf(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&Bf(r,e)}}function bte(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var Bo=class extends af{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new Ff,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",r_,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",e_,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Gx,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new Hf(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=BO(this._capabilities,e)}setRequestHandler(e,r){let s=Bm(e)?.method;if(!s)throw new Error("Schema is missing a method literal");let i;if(So(s)){let o=s;i=o._zod?.def?.value??o.value}else{let o=s;i=o._def?.value??o.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");let a=i;if(a==="elicitation/create"){let o=async(c,l)=>{let u=ns(a_,c);if(!u.success){let y=u.error instanceof Error?u.error.message:String(u.error);throw new ve(ke.InvalidParams,`Invalid elicitation request: ${y}`)}let{params:p}=u.data;p.mode=p.mode??"form";let{supportsFormMode:d,supportsUrlMode:m}=bte(this._capabilities.elicitation);if(p.mode==="form"&&!d)throw new ve(ke.InvalidParams,"Client does not support form-mode elicitation requests");if(p.mode==="url"&&!m)throw new ve(ke.InvalidParams,"Client does not support URL-mode elicitation requests");let f=await Promise.resolve(r(c,l));if(p.task){let y=ns(da,f);if(!y.success){let b=y.error instanceof Error?y.error.message:String(y.error);throw new ve(ke.InvalidParams,`Invalid task creation result: ${b}`)}return y.data}let v=ns(o_,f);if(!v.success){let y=v.error instanceof Error?v.error.message:String(v.error);throw new ve(ke.InvalidParams,`Invalid elicitation result: ${y}`)}let g=v.data,h=p.mode==="form"?p.requestedSchema:void 0;if(p.mode==="form"&&g.action==="accept"&&g.content&&h&&this._capabilities.elicitation?.form?.applyDefaults)try{Bf(h,g.content)}catch{}return g};return super.setRequestHandler(e,o)}if(a==="sampling/createMessage"){let o=async(c,l)=>{let u=ns(n_,c);if(!u.success){let g=u.error instanceof Error?u.error.message:String(u.error);throw new ve(ke.InvalidParams,`Invalid sampling request: ${g}`)}let{params:p}=u.data,d=await Promise.resolve(r(c,l));if(p.task){let g=ns(da,d);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new ve(ke.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let f=p.tools||p.toolChoice?i_:s_,v=ns(f,d);if(!v.success){let g=v.error instanceof Error?v.error.message:String(v.error);throw new ve(ke.InvalidParams,`Invalid sampling result: ${g}`)}return v.data};return super.setRequestHandler(e,o)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:zx,capabilities:this._capabilities,clientInfo:this._clientInfo}},qx,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!EO.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){jN(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&AN(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},pa,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},c_,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},pa,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Xx,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Vx,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Hx,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bx,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Zx,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},pa,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},pa,r)}async callTool(e,r=To,n){if(this.isToolTaskRequired(e.name))throw new ve(ke.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let s=await this.request({method:"tools/call",params:e},r,n),i=this.getToolOutputValidator(e.name);if(i){if(!s.structuredContent&&!s.isError)throw new ve(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(s.structuredContent)try{let a=i(s.structuredContent);if(!a.valid)throw new ve(ke.InvalidParams,`Structured content does not match the tool's output schema: ${a.errorMessage}`)}catch(a){throw a instanceof ve?a:new ve(ke.InvalidParams,`Failed to validate structured content: ${a instanceof Error?a.message:String(a)}`)}}return s}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let s=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,s)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},t_,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,s){let i=qO.safeParse(n);if(!i.success)throw new Error(`Invalid ${e} listChanged options: ${i.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:a,debounceMs:o}=i.data,{onChanged:c}=n,l=async()=>{if(!a){c(null,null);return}try{let p=await s();c(null,p)}catch(p){let d=p instanceof Error?p:new Error(String(p));c(d,null)}},u=()=>{if(o){let p=this._listChangedDebounceTimers.get(e);p&&clearTimeout(p);let d=setTimeout(l,o);this._listChangedDebounceTimers.set(e,d)}else l()};this.setNotificationHandler(r,u)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var SD=Y(_D(),1),Gf=Y(require("node:process"),1),kD=require("node:stream");var Zf=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(` `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Zte(r)}clear(){this._buffer=void 0}};function Zte(t){return AO.parse(JSON.parse(t))}function wD(t){return JSON.stringify(t)+` -`}var Gte=Gf.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function Vte(){let t={};for(let e of Gte){let r=Gf.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Go=class{constructor(e){this._readBuffer=new Zf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new kD.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,SD.default)(this._serverParams.command,this._serverParams.args??[],{env:{...Vte(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gf.default.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=wD(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};Ln();Kf();se();var fw=require("os"),hw=require("path"),Qte=["/opt/homebrew/bin","/usr/local/bin","/home/linuxbrew/.linuxbrew/bin",`${(0,fw.homedir)()}/.cargo/bin`,`${(0,fw.homedir)()}/.local/bin`];function Yte(t=process.env.PATH){let e=t?t.split(hw.delimiter).filter(n=>n.length>0):[],r=new Set(e);for(let n of Qte)r.has(n)||(e.push(n),r.add(n));return e.join(hw.delimiter)}function $u(t=process.env){return{...t,PATH:Yte(t.PATH)}}Bu();se();Ln();var tre=5e3;async function uh(t,e={},r=tre){let n=new Promise((s,i)=>setTimeout(()=>i(new Error(`Fetch timeout after ${r}ms`)),r));return Promise.race([fetch(t,e),n])}var rre="8.6.0";function ph(t){let e=ls();return`http://${e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}:${t}`}async function Ew(t){try{return(await uh(`${ph(t)}/api/health`)).ok}catch{return!1}}async function Wu(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Zu(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Gu(t){try{let e=await uh(`${ph(t)}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(_.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&(e.message?.includes("ECONNREFUSED")||e.message?.includes("Fetch timeout"))?(_.debug("SYSTEM","Worker already stopped or not responding",{port:t}),!1):(_.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function nre(){return rre}async function sre(t){try{let e=await uh(`${ph(t)}/api/version`);return e.ok?(await e.json()).version:null}catch{return _.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function YD(t){let e=nre(),r=await sre(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}se();Bu();var Vu=5e3;async function Ku(t,e,r){let n=new Promise(i=>setTimeout(()=>{_.warn("SYSTEM",`${r} timed out after ${e}ms`),i({completed:!1})},e)),s=t.then(i=>({completed:!0,result:i}));return Promise.race([s,n])}async function XD(t){_.info("SYSTEM","Shutdown initiated"),ps();let e=await Ku(_w(process.pid),Vu,"Enumerate child processes"),r=e.completed?e.result??[]:[];if(_.info("SYSTEM","Found child processes",{count:r.length,pids:r}),t.server&&(await Ku(ire(t.server),Vu,"Close HTTP server"),_.info("SYSTEM","HTTP server closed")),await Ku(t.sessionManager.shutdownAll(),Vu,"Shutdown sessions"),t.mcpClient&&(await Ku(t.mcpClient.close(),Vu,"Close MCP client"),_.info("SYSTEM","MCP client closed")),t.dbManager&&await Ku(t.dbManager.close(),Vu,"Close database"),r.length>0){_.info("SYSTEM","Force killing remaining children");for(let n of r)await ww(n);await Sw(r,5e3)}_.info("SYSTEM","Worker shutdown complete")}async function ire(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),_.info("SYSTEM","Waited for Windows port cleanup"))}Bu();se();As();var are={waitForHealth:Wu,checkVersionMatch:YD,httpShutdown:Gu,waitForPortFree:Zu,isPortInUse:Ew,spawnDaemon:Hu,writePidFile:Fu,removePidFile:ps,cleanStalePidFile:xw,getPlatformTimeout:Ea};async function Tw(t,e,r=are){if(r.cleanStalePidFile(),await r.waitForHealth(t,1e3)){let i=await r.checkVersionMatch(t);if(i.matches)return{ready:!0};if(_.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:i.pluginVersion,workerVersion:i.workerVersion}),await r.httpShutdown(t),!await r.waitForPortFree(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT)))return{ready:!1,error:"Port did not free after version mismatch restart"};r.removePidFile()}if(await r.isPortInUse(t))return _.info("SYSTEM","Port in use, waiting for worker to become healthy"),await r.waitForHealth(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT))?{ready:!0}:{ready:!1,error:"Port in use but worker not responding"};_.info("SYSTEM","Starting worker daemon");let n=r.spawnDaemon(e,t);return n===void 0?{ready:!1,error:"Failed to spawn worker daemon"}:(r.writePidFile({pid:n,port:t,startedAt:new Date().toISOString()}),await r.waitForHealth(t,r.getPlatformTimeout(qt.POST_SPAWN_WAIT))?{ready:!0}:(r.removePidFile(),{ready:!1,error:"Worker failed to start (health check timeout)"}))}var e6=Y(Kp(),1),Vk=Y(require("fs"),1),Kk=Y(require("path"),1);se();var Hk=Y(Kp(),1),Fq=Y(Mq(),1),Hq=Y(qq(),1),Bq=Y(require("path"),1);er();se();Kf();var Eme=[/^https?:\/\/localhost(:\d+)?$/,/^https?:\/\/127\.0\.0\.1(:\d+)?$/,/^https?:\/\/\[::1\](:\d+)?$/];function Tme(t){if(t===void 0||Eme.some(e=>e.test(t)))return!0;if(Sa()){let e=TD();if(e&&t&&new RegExp(`^https?://${e.replace(/\./g,"\\.")}(:\\d+)?$`).test(t))return!0}return!1}function Bk(t){let e=[];e.push(Hk.default.json({limit:"5mb"})),e.push((0,Fq.default)({origin:(s,i)=>{Tme(s)?i(null,!0):(_.warn("SECURITY","CORS request blocked",{origin:s}),i(null,!1))}})),e.push((0,Hq.default)()),e.push((s,i,a)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(f=>s.path.endsWith(f)),l=s.path==="/api/logs";if(s.path.startsWith("/health")||s.path==="/"||c||l)return a();let u=Date.now(),p=`${s.method}-${Date.now()}`,d=t(s.method,s.path,s.body);_.info("HTTP",`\u2192 ${s.method} ${s.path}`,{requestId:p},d);let m=i.send.bind(i);i.send=function(f){let v=Date.now()-u;return _.info("HTTP",`\u2190 ${i.statusCode} ${s.path}`,{requestId:p,duration:`${v}ms`}),m(f)},a()});let r=Vs(),n=Bq.default.join(r,"plugin","ui");return e.push(Hk.default.static(n)),e}function wg(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){_.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function Wk(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",s=r.tool_input;return`tool=${_.formatTool(n,s)}`}return e.includes("/summarize")?"requesting summary":""}se();var Jp=class extends Error{constructor(r,n=500,s,i){super(r);this.statusCode=n;this.code=s;this.details=i;this.name="AppError"}statusCode;code;details};function Wq(t,e,r,n){let s={error:t,message:e};return r&&(s.code=r),n&&(s.details=n),s}var Zq=(t,e,r,n)=>{let s=t instanceof Jp?t.statusCode:500;_.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:s,error:t.message,code:t instanceof Jp?t.code:void 0},t);let i=t instanceof Jp,a=Wq(i&&t.name||"Error",i?t.message:"Internal server error",i?t.code:void 0,i?t.details:void 0);r.status(s).json(a)};function Gq(t,e){e.status(404).json(Wq("NotFound",`Cannot ${t.method} ${t.path}`))}var Sg=Y(require("crypto"),1);se();Or();er();function Rme(t,e){let r=Buffer.from(t),n=Buffer.from(e);return r.length!==n.length?(Sg.default.timingSafeEqual(r,r),!1):Sg.default.timingSafeEqual(r,n)}var Vq="claude_pilot_session",Kq=1440*60*1e3,Pc=new Map;function Pme(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"||e==="localhost"}function kg(){return je.loadFromFile(Ht).CLAUDE_PILOT_REMOTE_TOKEN}function Ime(){return Sg.default.randomBytes(32).toString("hex")}function Cme(t,e){let r=Pc.get(t);return r?Date.now()-r.createdAt>Kq?(Pc.delete(t),!1):r.ip!==e?(_.warn("SECURITY","Session IP mismatch - possible session replay",{sessionIp:r.ip,requestIp:e}),!1):!0:!1}function Jq(t){let e=Ime();return Pc.set(e,{createdAt:Date.now(),ip:t}),e}function Qq(t){Pc.delete(t)}function Ome(){let t=Date.now();for(let[e,r]of Pc.entries())t-r.createdAt>Kq&&Pc.delete(e)}setInterval(Ome,3600*1e3);function Zk(t,e,r){if(Pme(t))return t.auth={isLocal:!0,scopes:["*"]},r();if(t.path==="/login"||t.path.startsWith("/api/auth/"))return r();let n=t.ip||t.socket.remoteAddress||"unknown",s=t.cookies?.[Vq];if(s&&Cme(s,n))return t.auth={isLocal:!1,clientId:"web-session",scopes:["*"]},r();let i=t.headers.authorization;if(i&&i.startsWith("Bearer ")){let c=i.slice(7),l=kg();if(l&&Rme(c,l))return t.auth={isLocal:!1,clientId:"api-client",scopes:["*"]},r()}if((t.headers.accept||"").includes("text/html")&&(t.path==="/"||t.path==="/viewer.html")){e.redirect("/login");return}_.warn("SECURITY","Unauthorized request",{path:t.path,ip:n}),e.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"})}function Gk(){return Vq}function Ic(){return!!kg()}var Xq=Y(require("crypto"),1);se();var Yq=new Map;function jme(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"}function Ame(t){let e=t.headers.authorization;return e&&e.startsWith("Bearer ")?`token:${Xq.default.createHash("sha256").update(e.slice(7)).digest("hex").slice(0,16)}`:`ip:${t.ip||t.socket.remoteAddress||"unknown"}`}function Eg(t=1e3,e=6e4){return(r,n,s)=>{if(jme(r))return s();let i=Ame(r),a=Date.now(),o=a-e,c=Yq.get(i);if(c||(c={timestamps:[]},Yq.set(i,c)),c.timestamps=c.timestamps.filter(u=>u>o),c.timestamps.length>=t){let u=Math.ceil(e/1e3);_.warn("SECURITY","Rate limit exceeded",{key:i,requests:c.timestamps.length,limit:t}),n.setHeader("Retry-After",u.toString()),n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining","0"),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),n.status(429).json({code:"RATE_LIMITED",message:"Too many requests",retryAfter:u});return}c.timestamps.push(a);let l=t-c.timestamps.length;n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining",l.toString()),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),s()}}Ln();var Nme="8.6.0",Tg=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,e6.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,s)=>{this.server=this.app.listen(e,r,()=>{_.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",s)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,_.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(Gq),this.app.use(Zq)}setupMiddleware(){Bk(Wk).forEach(s=>this.app.use(s)),this.app.use("/api/auth/login",Eg(10,6e4)),this.app.use(Eg(1e3,6e4));let r=eh();if(r!=="127.0.0.1"&&r!=="localhost"){let s=Ic();_.info("SYSTEM","Enabling authentication middleware for network access",{bind:r,tokenConfigured:s}),s||_.warn("SYSTEM","No CLAUDE_PILOT_REMOTE_TOKEN set - all remote requests will be rejected until a token is configured",{bind:r}),this.app.use(Zk)}}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_PILOT_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),coreReady:this.options.getCoreReady(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/core-ready",(r,n)=>{this.options.getCoreReady()?n.status(200).json({status:"ready",message:"Core services ready (Database + SearchManager)"}):n.status(503).json({status:"initializing",message:"Core services still initializing, please retry"})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:Nme})}),this.app.get("/api/process-stats",async(r,n)=>{try{let{getProcessStats:s}=await Promise.resolve().then(()=>(Bu(),QD)),i=await s();n.status(200).json({...i,uptime:Math.round((Date.now()-this.startTime)/1e3),platform:process.platform,pid:process.pid})}catch(s){_.error("SYSTEM","Failed to get process stats",{},s),n.status(500).json({error:"Failed to get process stats"})}}),this.app.get("/api/instructions",async(r,n)=>{let s=r.query.topic||"all",i=r.query.operation;try{let a;if(i){let o=Kk.default.join(__dirname,"../skills/mem-search/operations",`${i}.md`);a=await Vk.promises.readFile(o,"utf-8")}else{let o=Kk.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Vk.promises.readFile(o,"utf-8");a=this.extractInstructionSection(c,s)}n.json({content:[{type:"text",text:a}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",wg,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",wg,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let s=e.indexOf(r),i=e.indexOf(n);return s===-1?e:i===-1?e.substring(s):e.substring(s,i).trim()}};Rg();var r6=require("bun:sqlite");er();se();var Pg=class{db;constructor(e){e||(ts(rn),e=$l),this.db=new r6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(_.info("DB","Creating FTS5 tables"),this.db.run(` +`}var Gte=Gf.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function Vte(){let t={};for(let e of Gte){let r=Gf.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Go=class{constructor(e){this._readBuffer=new Zf,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new kD.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,SD.default)(this._serverParams.command,this._serverParams.args??[],{env:{...Vte(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Gf.default.platform==="win32",cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=wD(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};Ln();Kf();se();var fw=require("os"),hw=require("path"),Qte=["/opt/homebrew/bin","/usr/local/bin","/home/linuxbrew/.linuxbrew/bin",`${(0,fw.homedir)()}/.cargo/bin`,`${(0,fw.homedir)()}/.local/bin`];function Yte(t=process.env.PATH){let e=t?t.split(hw.delimiter).filter(n=>n.length>0):[],r=new Set(e);for(let n of Qte)r.has(n)||(e.push(n),r.add(n));return e.join(hw.delimiter)}function $u(t=process.env){return{...t,PATH:Yte(t.PATH)}}Bu();se();Ln();var tre=5e3;async function uh(t,e={},r=tre){let n=new Promise((s,i)=>setTimeout(()=>i(new Error(`Fetch timeout after ${r}ms`)),r));return Promise.race([fetch(t,e),n])}var rre="8.6.2";function ph(t){let e=ls();return`http://${e.includes(":")&&!e.startsWith("[")?`[${e}]`:e}:${t}`}async function Ew(t){try{return(await uh(`${ph(t)}/api/health`)).ok}catch{return!1}}async function Wu(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Zu(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function Gu(t){try{let e=await uh(`${ph(t)}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(_.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&(e.message?.includes("ECONNREFUSED")||e.message?.includes("Fetch timeout"))?(_.debug("SYSTEM","Worker already stopped or not responding",{port:t}),!1):(_.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function nre(){return rre}async function sre(t){try{let e=await uh(`${ph(t)}/api/version`);return e.ok?(await e.json()).version:null}catch{return _.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function YD(t){let e=nre(),r=await sre(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}se();Bu();var Vu=5e3;async function Ku(t,e,r){let n=new Promise(i=>setTimeout(()=>{_.warn("SYSTEM",`${r} timed out after ${e}ms`),i({completed:!1})},e)),s=t.then(i=>({completed:!0,result:i}));return Promise.race([s,n])}async function XD(t){_.info("SYSTEM","Shutdown initiated"),ps();let e=await Ku(_w(process.pid),Vu,"Enumerate child processes"),r=e.completed?e.result??[]:[];if(_.info("SYSTEM","Found child processes",{count:r.length,pids:r}),t.server&&(await Ku(ire(t.server),Vu,"Close HTTP server"),_.info("SYSTEM","HTTP server closed")),await Ku(t.sessionManager.shutdownAll(),Vu,"Shutdown sessions"),t.mcpClient&&(await Ku(t.mcpClient.close(),Vu,"Close MCP client"),_.info("SYSTEM","MCP client closed")),t.dbManager&&await Ku(t.dbManager.close(),Vu,"Close database"),r.length>0){_.info("SYSTEM","Force killing remaining children");for(let n of r)await ww(n);await Sw(r,5e3)}_.info("SYSTEM","Worker shutdown complete")}async function ire(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),_.info("SYSTEM","Waited for Windows port cleanup"))}Bu();se();As();var are={waitForHealth:Wu,checkVersionMatch:YD,httpShutdown:Gu,waitForPortFree:Zu,isPortInUse:Ew,spawnDaemon:Hu,writePidFile:Fu,removePidFile:ps,cleanStalePidFile:xw,getPlatformTimeout:Ta};async function Tw(t,e,r=are){if(r.cleanStalePidFile(),await r.waitForHealth(t,1e3)){let i=await r.checkVersionMatch(t);if(i.matches)return{ready:!0};if(_.info("SYSTEM","Worker version mismatch detected - auto-restarting",{pluginVersion:i.pluginVersion,workerVersion:i.workerVersion}),await r.httpShutdown(t),!await r.waitForPortFree(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT)))return{ready:!1,error:"Port did not free after version mismatch restart"};r.removePidFile()}if(await r.isPortInUse(t))return _.info("SYSTEM","Port in use, waiting for worker to become healthy"),await r.waitForHealth(t,r.getPlatformTimeout(qt.PORT_IN_USE_WAIT))?{ready:!0}:{ready:!1,error:"Port in use but worker not responding"};_.info("SYSTEM","Starting worker daemon");let n=r.spawnDaemon(e,t);return n===void 0?{ready:!1,error:"Failed to spawn worker daemon"}:(r.writePidFile({pid:n,port:t,startedAt:new Date().toISOString()}),await r.waitForHealth(t,r.getPlatformTimeout(qt.POST_SPAWN_WAIT))?{ready:!0}:(r.removePidFile(),{ready:!1,error:"Worker failed to start (health check timeout)"}))}var e6=Y(Kp(),1),Vk=Y(require("fs"),1),Kk=Y(require("path"),1);se();var Hk=Y(Kp(),1),Fq=Y(Mq(),1),Hq=Y(qq(),1),Bq=Y(require("path"),1);er();se();Kf();var Eme=[/^https?:\/\/localhost(:\d+)?$/,/^https?:\/\/127\.0\.0\.1(:\d+)?$/,/^https?:\/\/\[::1\](:\d+)?$/];function Tme(t){if(t===void 0||Eme.some(e=>e.test(t)))return!0;if(ka()){let e=TD();if(e&&t&&new RegExp(`^https?://${e.replace(/\./g,"\\.")}(:\\d+)?$`).test(t))return!0}return!1}function Bk(t){let e=[];e.push(Hk.default.json({limit:"5mb"})),e.push((0,Fq.default)({origin:(s,i)=>{Tme(s)?i(null,!0):(_.warn("SECURITY","CORS request blocked",{origin:s}),i(null,!1))}})),e.push((0,Hq.default)()),e.push((s,i,a)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(f=>s.path.endsWith(f)),l=s.path==="/api/logs";if(s.path.startsWith("/health")||s.path==="/"||c||l)return a();let u=Date.now(),p=`${s.method}-${Date.now()}`,d=t(s.method,s.path,s.body);_.info("HTTP",`\u2192 ${s.method} ${s.path}`,{requestId:p},d);let m=i.send.bind(i);i.send=function(f){let v=Date.now()-u;return _.info("HTTP",`\u2190 ${i.statusCode} ${s.path}`,{requestId:p,duration:`${v}ms`}),m(f)},a()});let r=Vs(),n=Bq.default.join(r,"plugin","ui");return e.push(Hk.default.static(n)),e}function wg(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){_.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function Wk(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",s=r.tool_input;return`tool=${_.formatTool(n,s)}`}return e.includes("/summarize")?"requesting summary":""}se();var Jp=class extends Error{constructor(r,n=500,s,i){super(r);this.statusCode=n;this.code=s;this.details=i;this.name="AppError"}statusCode;code;details};function Wq(t,e,r,n){let s={error:t,message:e};return r&&(s.code=r),n&&(s.details=n),s}var Zq=(t,e,r,n)=>{let s=t instanceof Jp?t.statusCode:500;_.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:s,error:t.message,code:t instanceof Jp?t.code:void 0},t);let i=t instanceof Jp,a=Wq(i&&t.name||"Error",i?t.message:"Internal server error",i?t.code:void 0,i?t.details:void 0);r.status(s).json(a)};function Gq(t,e){e.status(404).json(Wq("NotFound",`Cannot ${t.method} ${t.path}`))}var Sg=Y(require("crypto"),1);se();Or();er();function Rme(t,e){let r=Buffer.from(t),n=Buffer.from(e);return r.length!==n.length?(Sg.default.timingSafeEqual(r,r),!1):Sg.default.timingSafeEqual(r,n)}var Vq="claude_pilot_session",Kq=1440*60*1e3,Pc=new Map;function Pme(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"||e==="localhost"}function kg(){return je.loadFromFile(Ht).CLAUDE_PILOT_REMOTE_TOKEN}function Ime(){return Sg.default.randomBytes(32).toString("hex")}function Cme(t,e){let r=Pc.get(t);return r?Date.now()-r.createdAt>Kq?(Pc.delete(t),!1):r.ip!==e?(_.warn("SECURITY","Session IP mismatch - possible session replay",{sessionIp:r.ip,requestIp:e}),!1):!0:!1}function Jq(t){let e=Ime();return Pc.set(e,{createdAt:Date.now(),ip:t}),e}function Qq(t){Pc.delete(t)}function Ome(){let t=Date.now();for(let[e,r]of Pc.entries())t-r.createdAt>Kq&&Pc.delete(e)}setInterval(Ome,3600*1e3);function Zk(t,e,r){if(Pme(t))return t.auth={isLocal:!0,scopes:["*"]},r();if(t.path==="/login"||t.path.startsWith("/api/auth/"))return r();let n=t.ip||t.socket.remoteAddress||"unknown",s=t.cookies?.[Vq];if(s&&Cme(s,n))return t.auth={isLocal:!1,clientId:"web-session",scopes:["*"]},r();let i=t.headers.authorization;if(i&&i.startsWith("Bearer ")){let c=i.slice(7),l=kg();if(l&&Rme(c,l))return t.auth={isLocal:!1,clientId:"api-client",scopes:["*"]},r()}if((t.headers.accept||"").includes("text/html")&&(t.path==="/"||t.path==="/viewer.html")){e.redirect("/login");return}_.warn("SECURITY","Unauthorized request",{path:t.path,ip:n}),e.status(401).json({code:"UNAUTHORIZED",message:"Authentication required"})}function Gk(){return Vq}function Ic(){return!!kg()}var Xq=Y(require("crypto"),1);se();var Yq=new Map;function jme(t){let e=t.ip||t.socket.remoteAddress||"";return e==="127.0.0.1"||e==="::1"||e==="::ffff:127.0.0.1"}function Ame(t){let e=t.headers.authorization;return e&&e.startsWith("Bearer ")?`token:${Xq.default.createHash("sha256").update(e.slice(7)).digest("hex").slice(0,16)}`:`ip:${t.ip||t.socket.remoteAddress||"unknown"}`}function Eg(t=1e3,e=6e4){return(r,n,s)=>{if(jme(r))return s();let i=Ame(r),a=Date.now(),o=a-e,c=Yq.get(i);if(c||(c={timestamps:[]},Yq.set(i,c)),c.timestamps=c.timestamps.filter(u=>u>o),c.timestamps.length>=t){let u=Math.ceil(e/1e3);_.warn("SECURITY","Rate limit exceeded",{key:i,requests:c.timestamps.length,limit:t}),n.setHeader("Retry-After",u.toString()),n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining","0"),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),n.status(429).json({code:"RATE_LIMITED",message:"Too many requests",retryAfter:u});return}c.timestamps.push(a);let l=t-c.timestamps.length;n.setHeader("X-RateLimit-Limit",t.toString()),n.setHeader("X-RateLimit-Remaining",l.toString()),n.setHeader("X-RateLimit-Reset",Math.ceil((a+e)/1e3).toString()),s()}}Ln();var Nme="8.6.2",Tg=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,e6.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,s)=>{this.server=this.app.listen(e,r,()=>{_.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",s)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,_.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(Gq),this.app.use(Zq)}setupMiddleware(){Bk(Wk).forEach(s=>this.app.use(s)),this.app.use("/api/auth/login",Eg(10,6e4)),this.app.use(Eg(1e3,6e4));let r=eh();if(r!=="127.0.0.1"&&r!=="localhost"){let s=Ic();_.info("SYSTEM","Enabling authentication middleware for network access",{bind:r,tokenConfigured:s}),s||_.warn("SYSTEM","No CLAUDE_PILOT_REMOTE_TOKEN set - all remote requests will be rejected until a token is configured",{bind:r}),this.app.use(Zk)}}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_PILOT_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),coreReady:this.options.getCoreReady(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/core-ready",(r,n)=>{this.options.getCoreReady()?n.status(200).json({status:"ready",message:"Core services ready (Database + SearchManager)"}):n.status(503).json({status:"initializing",message:"Core services still initializing, please retry"})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:Nme})}),this.app.get("/api/process-stats",async(r,n)=>{try{let{getProcessStats:s}=await Promise.resolve().then(()=>(Bu(),QD)),i=await s();n.status(200).json({...i,uptime:Math.round((Date.now()-this.startTime)/1e3),platform:process.platform,pid:process.pid})}catch(s){_.error("SYSTEM","Failed to get process stats",{},s),n.status(500).json({error:"Failed to get process stats"})}}),this.app.get("/api/instructions",async(r,n)=>{let s=r.query.topic||"all",i=r.query.operation;try{let a;if(i){let o=Kk.default.join(__dirname,"../skills/mem-search/operations",`${i}.md`);a=await Vk.promises.readFile(o,"utf-8")}else{let o=Kk.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await Vk.promises.readFile(o,"utf-8");a=this.extractInstructionSection(c,s)}n.json({content:[{type:"text",text:a}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",wg,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",wg,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_PILOT_MANAGED==="true"&&process.send?(_.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let s=e.indexOf(r),i=e.indexOf(n);return s===-1?e:i===-1?e.substring(s):e.substring(s,i).trim()}};Rg();var r6=require("bun:sqlite");er();se();var Pg=class{db;constructor(e){e||(ts(rn),e=$l),this.db=new r6.Database(e),this.db.run("PRAGMA journal_mode = WAL"),this.ensureFTSTables()}ensureFTSTables(){this.db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts'").all().some(n=>n.name==="observations_fts"||n.name==="session_summaries_fts")||(_.info("DB","Creating FTS5 tables"),this.db.run(` CREATE VIRTUAL TABLE IF NOT EXISTS observations_fts USING fts5( title, subtitle, @@ -1077,7 +1077,7 @@ ${X.dim}No previous sessions found for this project yet.${X.reset} FROM user_prompts WHERE content_session_id = ? ORDER BY prompt_number ASC - `).all(e)}close(){this.db.close()}};Rg();se();se();var s6=Y(require("fs"),1),Jk=Y(require("os"),1),Qk=Y(require("path"),1);Or();er();se();var Ig=Y(require("fs"),1),Qp=Y(require("path"),1);function Dme(t){let e=process.platform==="win32",r=e?"Scripts":"bin",n=e?"chroma-mcp.exe":"chroma-mcp";return Qp.default.join(t,r,n)}async function zme(t){let e=Qp.default.join(t,".pilot-installed");if(Ig.default.existsSync(e))return!0;let n=je.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION;try{let{spawnSync:s}=await import("child_process");_.info("CHROMA_SYNC","Creating persistent venv for chroma-mcp",{venvDir:t,pythonVersion:n});let i=s("uv",["venv","--python",n,t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:6e4});if(i.status!==0)return _.error("CHROMA_SYNC","Failed to create venv",{stderr:i.stderr?.slice(0,200)}),!1;let a=process.platform==="win32",o=Qp.default.join(t,a?"Scripts/python.exe":"bin/python"),c=s("uv",["pip","install","--python",o,"chroma-mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:12e4});return c.status!==0?(_.error("CHROMA_SYNC","Failed to install chroma-mcp in venv",{stderr:c.stderr?.slice(0,200)}),!1):(Ig.default.mkdirSync(Qp.default.dirname(e),{recursive:!0}),Ig.default.writeFileSync(e,"chroma-mcp"),_.info("CHROMA_SYNC","Persistent venv ready",{venvDir:t}),!0)}catch(s){return _.error("CHROMA_SYNC","Venv setup failed, will fall back to uvx",{},s),!1}}async function n6(t,e){let n=je.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION,s=process.platform==="win32",i=["--client-type","persistent","--data-dir",e],a=Dme(t);try{let{spawnSync:u}=await import("child_process");if(u(a,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}if(await zme(t)){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}}catch(u){_.debug("CHROMA_SYNC","Venv check failed, trying uvx",{},u)}let o={command:"uvx",args:["--python",n,"chroma-mcp",...i],stderr:"ignore"};s&&(o.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u("uvx",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return o}catch(u){_.debug("CHROMA_SYNC","uvx check failed, trying pip",{},u)}let c=s?"python":`python${n}`,l={command:c,args:["-m","chroma_mcp",...i],stderr:"ignore"};s&&(l.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u(c,["-c","import chroma_mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return l}catch(u){_.debug("CHROMA_SYNC","pip check failed",{},u)}throw new Error("Chroma MCP not available. Install with: uvx chroma-mcp OR pip install chroma-mcp")}var Mme="1.0.0",Cg=class{client=null;transport=null;childPid=void 0;connected=!1;project;collectionName;VECTOR_DB_DIR;VENV_DIR;connectionPromise=null;operationMutex=Promise.resolve();failureCount=0;circuitOpenUntil=0;isHalfOpenAttemptInProgress=!1;corruptionRecoveryAttempted=!1;maxFailures;cooldownMs;constructor(e,r){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=Qk.default.join(Jk.default.homedir(),".pilot/memory","vector-db"),this.VENV_DIR=Qk.default.join(Jk.default.homedir(),".pilot/memory","chroma-venv"),this.maxFailures=r?.maxFailures??3,this.cooldownMs=r?.cooldownMs??6e4}getCollectionName(){return this.collectionName}async getClient(){if(this.connected&&this.client)return this.client;if(this.connectionPromise&&(await this.connectionPromise,this.connected&&this.client))return this.client;if(this.failureCount>=this.maxFailures){let e=Date.now();if(e=this.maxFailures&&(this.circuitOpenUntil=Date.now()+this.cooldownMs,_.error("CHROMA_SYNC",`Circuit breaker opened after ${this.failureCount} failures`,{project:this.project},e)),await this.safeCloseTransport(),this.client=null,this.connected=!1,new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}async getWorkingTransportOptions(){return n6(this.VENV_DIR,this.VECTOR_DB_DIR)}async withMutex(e){let r=await this.getClient(),n,s=this.operationMutex;this.operationMutex=new Promise(i=>{n=i}),await s;try{return await e(r)}finally{n()}}async isHealthy(){return this.connected&&this.client!==null}async recoverFromCorruptedDatabase(){if(this.corruptionRecoveryAttempted)return!1;this.corruptionRecoveryAttempted=!0,_.warn("CHROMA_SYNC","Attempting corruption recovery \u2014 deleting vector-db",{vectorDbDir:this.VECTOR_DB_DIR,project:this.project}),await this.close();try{s6.default.rmSync(this.VECTOR_DB_DIR,{recursive:!0,force:!0}),_.info("CHROMA_SYNC","Corrupted vector-db deleted, will rebuild on next connect")}catch(e){return _.error("CHROMA_SYNC","Failed to delete corrupted vector-db",{},e),!1}return this.failureCount=0,this.circuitOpenUntil=0,!0}async close(){await this.safeCloseTransport(),this.client=null,this.transport=null,this.connected=!1,this.connectionPromise=null}async safeCloseTransport(){let e=this.childPid;if(this.childPid=void 0,this.transport)try{await this.transport.close()}catch(r){_.debug("CHROMA_SYNC","Transport close error (non-fatal)",{},r)}if(e!==void 0)try{process.kill(e,0),_.warn("CHROMA_SYNC","Chroma subprocess survived transport.close(), force killing",{pid:e}),process.kill(e,"SIGKILL")}catch{}}};var Er=Y(require("node:fs"),1),qi=Y(require("node:path"),1);se();var $me=512,Yp=2048,Xp=51200,Lme=1024,Ume=10240,Og=10080*60*1e3,qme=2,Fa=class extends Error{logical;physical;capKind;constructor(e,r,n){super(`vector-db size limit exceeded (${e}: logical=${r}B physical=${n}B). Refusing write to prevent runaway growth.`),this.name="VectorDbSizeLimitError",this.capKind=e,this.logical=r,this.physical=n}};function jg(t){let e={logical:0,physical:0,fileCount:0};if(!Er.default.existsSync(t))return e;let r=[t];for(;r.length>0;){let n=r.pop(),s;try{s=Er.default.readdirSync(n,{withFileTypes:!0})}catch{continue}for(let i of s){let a=qi.default.join(n,i.name);if(i.isDirectory()){r.push(a);continue}try{let o=Er.default.statSync(a),c=o.size,l=typeof o.blocks=="number"&&o.blocks>=0?o.blocks*$me:c;e.logical+=c,e.physical+=l,e.fileCount+=1,(!e.largestFile||c>e.largestFile.logical||c===e.largestFile.logical&&l>e.largestFile.physical)&&(e.largestFile={path:a,logical:c,physical:l})}catch{}}}return e}function Ag(t,e={}){let r=e.maxPhysicalBytes??Yp*1024*1024,n=e.maxLogicalBytes??Xp*1024*1024,s=jg(t);if(s.fileCount===0)return{evicted:!1,before:s};let i;if(s.physical>r?i="physical_cap_exceeded":s.logical>n&&(i="logical_cap_exceeded"),!i)return{evicted:!1,before:s};let a=`${t}.evicted.${Date.now()}`,o=!0;try{Er.default.renameSync(t,a)}catch(u){o=!1,_.error("VECTOR_DB_GUARD","Rename failed during eviction, falling back to recursive delete",{dir:t,backupPath:a},u);try{Er.default.rmSync(t,{recursive:!0,force:!0})}catch(p){return{evicted:!1,before:s,reason:i,error:p.message}}}let c=Fme(qi.default.dirname(t),{before:s,reason:i,backupPath:o?a:void 0});Bme(qi.default.dirname(t),qi.default.basename(t));let l=!1;return e.settingsPathForAutoDisable&&c>=qme&&(l=Hme(e.settingsPathForAutoDisable),l&&_.warn("VECTOR_DB_GUARD",`Auto-disabled Chroma after ${c} evictions in ${Math.round(Og/(1440*60*1e3))} days \u2014 search will fall back to SQLite. Re-enable by setting CLAUDE_PILOT_CHROMA_ENABLED=true in settings.json.`,{settingsPath:e.settingsPathForAutoDisable,recentEvictionCount:c})),{evicted:!0,before:s,reason:i,backupPath:o?a:void 0,recentEvictionCount:c,chromaAutoDisabled:l}}function Fme(t,e){let r=qi.default.join(t,"vector-db.last-eviction.json"),n=Date.now(),s=[];try{if(Er.default.existsSync(r)){let a=JSON.parse(Er.default.readFileSync(r,"utf-8"));Array.isArray(a.history)&&(s=a.history.filter(o=>typeof o?.epochMs=="number"&&n-o.epochMsn-a.epochMs<=Og).length;try{Er.default.writeFileSync(r,JSON.stringify({timestamp:new Date(n).toISOString(),reason:e.reason,backupPath:e.backupPath??null,logicalBytes:e.before.logical,physicalBytes:e.before.physical,fileCount:e.before.fileCount,largestFile:e.before.largestFile??null,recentEvictionCount:i,autoDisableWindowMs:Og,history:s},null,2),"utf-8")}catch(a){_.warn("VECTOR_DB_GUARD","Failed to write eviction marker",{marker:r},a)}return i}function i6(t,e={}){let r=e.maxPhysicalBytes??Lme*1024*1024,n=e.maxLogicalBytes??Ume*1024*1024,s=jg(t);if(s.fileCount!==0){if(s.physical>r)throw new Fa("physical",s.logical,s.physical);if(s.logical>n)throw new Fa("logical",s.logical,s.physical)}}function Hme(t){try{if(!Er.default.existsSync(t))return Er.default.mkdirSync(qi.default.dirname(t),{recursive:!0}),Er.default.writeFileSync(t,JSON.stringify({CLAUDE_PILOT_CHROMA_ENABLED:!1},null,2),"utf-8"),!0;let e=Er.default.readFileSync(t,"utf-8"),r=JSON.parse(e),n=r&&typeof r.env=="object"&&r.env!==null?r.env:r;if(n.CLAUDE_PILOT_CHROMA_ENABLED===!1)return!1;n.CLAUDE_PILOT_CHROMA_ENABLED=!1;let s=`${t}.tmp-${process.pid}-${Date.now()}`;return Er.default.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),Er.default.renameSync(s,t),!0}catch(e){return _.error("VECTOR_DB_GUARD","Failed to auto-disable Chroma in settings",{settingsPath:t},e),!1}}function Bme(t,e){try{let n=Er.default.readdirSync(t,{withFileTypes:!0}).filter(s=>s.isDirectory()&&s.name.startsWith(`${e}.evicted.`)).map(s=>{let i=s.name.slice(`${e}.evicted.`.length),a=Number.parseInt(i,10);return{name:s.name,ts:Number.isNaN(a)?0:a}}).sort((s,i)=>i.ts-s.ts);for(let s of n.slice(2)){let i=qi.default.join(t,s.name);try{Er.default.rmSync(i,{recursive:!0,force:!0})}catch(a){_.debug("VECTOR_DB_GUARD","Failed to prune stale eviction backup",{full:i},a)}}}catch{}}var Ng=class{connectionManager;project;collectionName;BATCH_SIZE=100;writeGateTripped=!1;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.connectionManager=new Cg(e)}assertSafeToWrite(e){if(this.writeGateTripped)throw new Fa("physical",0,0);try{i6(this.connectionManager.VECTOR_DB_DIR)}catch(r){throw r instanceof Fa&&(this.writeGateTripped=!0,_.error("VECTOR_DB_GUARD",`Refusing ${e}: vector-db already at size limit`,{capKind:r.capKind,logical:r.logical,physical:r.physical}),this.connectionManager.close()),r}}async getClient(){return this.connectionManager.getClient()}async invalidateConnection(){await this.connectionManager.close()}async ensureCollection(){let e=await this.getClient();try{await e.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),_.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(r){let n=r instanceof Error?r.message:String(r);if(n.includes("Not connected")||n.includes("Connection closed")||n.includes("MCP error -32000")){if(await this.connectionManager.recoverFromCorruptedDatabase())return _.warn("CHROMA_SYNC","Corruption recovery triggered, retrying collection check"),this.ensureCollection();throw await this.invalidateConnection(),_.error("CHROMA_SYNC","Connection lost during collection check",{collection:this.collectionName},r),new Error(`Chroma connection lost: ${n}`)}_.error("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},r),_.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{this.assertSafeToWrite("create_collection"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(i){throw _.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},i),new Error(`Collection creation failed: ${i instanceof Error?i.message:String(i)}`)}}return e}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],a=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),a.length>0&&(o.files_modified=a.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),n.forEach((c,l)=>{r.push({id:`obs_${e.id}_fact_${l}`,document:c,metadata:{...o,field_type:"fact",fact_index:l}})}),r}formatSummaryDocs(e){let r=[],n={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...n,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...n,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...n,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...n,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...n,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...n,field_type:"notes"}}),r}async addDocuments(e){if(e.length===0)return;let r=await this.ensureCollection();try{this.assertSafeToWrite("add_documents"),await r.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(n=>n.document),ids:e.map(n=>n.id),metadatas:e.map(n=>n.metadata)}}),_.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(n){throw _.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},n),new Error(`Document add failed: ${n instanceof Error?n.message:String(n)}`)}}async syncObservation(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatObservationDocs(c);_.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}async syncSummary(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatSummaryDocs(c);_.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,n,s,i,a){let o={id:e,content_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a,memory_session_id:r,project:n},c=this.formatUserPromptDoc(o);_.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){let e=await this.getClient(),r=new Set,n=new Set,s=new Set,i=0,a=1e3;for(_.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let c=(await e.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(!c||c.type!=="text"||!c.text)throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(c.text).metadatas||[];if(u.length===0)break;for(let p of u)p.sqlite_id&&(p.doc_type==="observation"?r.add(p.sqlite_id):p.doc_type==="session_summary"?n.add(p.sqlite_id):p.doc_type==="user_prompt"&&s.add(p.sqlite_id));i+=a,_.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw _.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return _.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:r.size,summaries:n.size,prompts:s.size}),{observations:r,summaries:n,prompts:s}}async ensureBackfilled(){_.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new Ui;try{let n=Array.from(e.observations),s=n.length>0?`AND id NOT IN (${n.join(",")})`:"",i=r.db.prepare(` + `).all(e)}close(){this.db.close()}};Rg();se();se();var s6=Y(require("fs"),1),Jk=Y(require("os"),1),Qk=Y(require("path"),1);Or();er();se();var Ig=Y(require("fs"),1),Qp=Y(require("path"),1);function Dme(t){let e=process.platform==="win32",r=e?"Scripts":"bin",n=e?"chroma-mcp.exe":"chroma-mcp";return Qp.default.join(t,r,n)}async function zme(t){let e=Qp.default.join(t,".pilot-installed");if(Ig.default.existsSync(e))return!0;let n=je.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION;try{let{spawnSync:s}=await import("child_process");_.info("CHROMA_SYNC","Creating persistent venv for chroma-mcp",{venvDir:t,pythonVersion:n});let i=s("uv",["venv","--python",n,t],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:6e4});if(i.status!==0)return _.error("CHROMA_SYNC","Failed to create venv",{stderr:i.stderr?.slice(0,200)}),!1;let a=process.platform==="win32",o=Qp.default.join(t,a?"Scripts/python.exe":"bin/python"),c=s("uv",["pip","install","--python",o,"chroma-mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:12e4});return c.status!==0?(_.error("CHROMA_SYNC","Failed to install chroma-mcp in venv",{stderr:c.stderr?.slice(0,200)}),!1):(Ig.default.mkdirSync(Qp.default.dirname(e),{recursive:!0}),Ig.default.writeFileSync(e,"chroma-mcp"),_.info("CHROMA_SYNC","Persistent venv ready",{venvDir:t}),!0)}catch(s){return _.error("CHROMA_SYNC","Venv setup failed, will fall back to uvx",{},s),!1}}async function n6(t,e){let n=je.loadFromFile(Ht).CLAUDE_PILOT_PYTHON_VERSION,s=process.platform==="win32",i=["--client-type","persistent","--data-dir",e],a=Dme(t);try{let{spawnSync:u}=await import("child_process");if(u(a,["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}if(await zme(t)){let d={command:a,args:i,stderr:"ignore"};return s&&(d.windowsHide=!0),d}}catch(u){_.debug("CHROMA_SYNC","Venv check failed, trying uvx",{},u)}let o={command:"uvx",args:["--python",n,"chroma-mcp",...i],stderr:"ignore"};s&&(o.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u("uvx",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return o}catch(u){_.debug("CHROMA_SYNC","uvx check failed, trying pip",{},u)}let c=s?"python":`python${n}`,l={command:c,args:["-m","chroma_mcp",...i],stderr:"ignore"};s&&(l.windowsHide=!0);try{let{spawnSync:u}=await import("child_process");if(u(c,["-c","import chroma_mcp"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3}).status===0)return l}catch(u){_.debug("CHROMA_SYNC","pip check failed",{},u)}throw new Error("Chroma MCP not available. Install with: uvx chroma-mcp OR pip install chroma-mcp")}var Mme="1.0.0",Cg=class{client=null;transport=null;childPid=void 0;connected=!1;project;collectionName;VECTOR_DB_DIR;VENV_DIR;connectionPromise=null;operationMutex=Promise.resolve();failureCount=0;circuitOpenUntil=0;isHalfOpenAttemptInProgress=!1;corruptionRecoveryAttempted=!1;maxFailures;cooldownMs;constructor(e,r){this.project=e,this.collectionName=`cm__${e}`,this.VECTOR_DB_DIR=Qk.default.join(Jk.default.homedir(),".pilot/memory","vector-db"),this.VENV_DIR=Qk.default.join(Jk.default.homedir(),".pilot/memory","chroma-venv"),this.maxFailures=r?.maxFailures??3,this.cooldownMs=r?.cooldownMs??6e4}getCollectionName(){return this.collectionName}async getClient(){if(this.connected&&this.client)return this.client;if(this.connectionPromise&&(await this.connectionPromise,this.connected&&this.client))return this.client;if(this.failureCount>=this.maxFailures){let e=Date.now();if(e=this.maxFailures&&(this.circuitOpenUntil=Date.now()+this.cooldownMs,_.error("CHROMA_SYNC",`Circuit breaker opened after ${this.failureCount} failures`,{project:this.project},e)),await this.safeCloseTransport(),this.client=null,this.connected=!1,new Error(`Chroma connection failed: ${e instanceof Error?e.message:String(e)}`)}}async getWorkingTransportOptions(){return n6(this.VENV_DIR,this.VECTOR_DB_DIR)}async withMutex(e){let r=await this.getClient(),n,s=this.operationMutex;this.operationMutex=new Promise(i=>{n=i}),await s;try{return await e(r)}finally{n()}}async isHealthy(){return this.connected&&this.client!==null}async recoverFromCorruptedDatabase(){if(this.corruptionRecoveryAttempted)return!1;this.corruptionRecoveryAttempted=!0,_.warn("CHROMA_SYNC","Attempting corruption recovery \u2014 deleting vector-db",{vectorDbDir:this.VECTOR_DB_DIR,project:this.project}),await this.close();try{s6.default.rmSync(this.VECTOR_DB_DIR,{recursive:!0,force:!0}),_.info("CHROMA_SYNC","Corrupted vector-db deleted, will rebuild on next connect")}catch(e){return _.error("CHROMA_SYNC","Failed to delete corrupted vector-db",{},e),!1}return this.failureCount=0,this.circuitOpenUntil=0,!0}async close(){await this.safeCloseTransport(),this.client=null,this.transport=null,this.connected=!1,this.connectionPromise=null}async safeCloseTransport(){let e=this.childPid;if(this.childPid=void 0,this.transport)try{await this.transport.close()}catch(r){_.debug("CHROMA_SYNC","Transport close error (non-fatal)",{},r)}if(e!==void 0)try{process.kill(e,0),_.warn("CHROMA_SYNC","Chroma subprocess survived transport.close(), force killing",{pid:e}),process.kill(e,"SIGKILL")}catch{}}};var Er=Y(require("node:fs"),1),qi=Y(require("node:path"),1);se();var $me=512,Yp=2048,Xp=51200,Lme=1024,Ume=10240,Og=10080*60*1e3,qme=2,Ha=class extends Error{logical;physical;capKind;constructor(e,r,n){super(`vector-db size limit exceeded (${e}: logical=${r}B physical=${n}B). Refusing write to prevent runaway growth.`),this.name="VectorDbSizeLimitError",this.capKind=e,this.logical=r,this.physical=n}};function jg(t){let e={logical:0,physical:0,fileCount:0};if(!Er.default.existsSync(t))return e;let r=[t];for(;r.length>0;){let n=r.pop(),s;try{s=Er.default.readdirSync(n,{withFileTypes:!0})}catch{continue}for(let i of s){let a=qi.default.join(n,i.name);if(i.isDirectory()){r.push(a);continue}try{let o=Er.default.statSync(a),c=o.size,l=typeof o.blocks=="number"&&o.blocks>=0?o.blocks*$me:c;e.logical+=c,e.physical+=l,e.fileCount+=1,(!e.largestFile||c>e.largestFile.logical||c===e.largestFile.logical&&l>e.largestFile.physical)&&(e.largestFile={path:a,logical:c,physical:l})}catch{}}}return e}function Ag(t,e={}){let r=e.maxPhysicalBytes??Yp*1024*1024,n=e.maxLogicalBytes??Xp*1024*1024,s=jg(t);if(s.fileCount===0)return{evicted:!1,before:s};let i;if(s.physical>r?i="physical_cap_exceeded":s.logical>n&&(i="logical_cap_exceeded"),!i)return{evicted:!1,before:s};let a=`${t}.evicted.${Date.now()}`,o=!0;try{Er.default.renameSync(t,a)}catch(u){o=!1,_.error("VECTOR_DB_GUARD","Rename failed during eviction, falling back to recursive delete",{dir:t,backupPath:a},u);try{Er.default.rmSync(t,{recursive:!0,force:!0})}catch(p){return{evicted:!1,before:s,reason:i,error:p.message}}}let c=Fme(qi.default.dirname(t),{before:s,reason:i,backupPath:o?a:void 0});Bme(qi.default.dirname(t),qi.default.basename(t));let l=!1;return e.settingsPathForAutoDisable&&c>=qme&&(l=Hme(e.settingsPathForAutoDisable),l&&_.warn("VECTOR_DB_GUARD",`Auto-disabled Chroma after ${c} evictions in ${Math.round(Og/(1440*60*1e3))} days \u2014 search will fall back to SQLite. Re-enable by setting CLAUDE_PILOT_CHROMA_ENABLED=true in settings.json.`,{settingsPath:e.settingsPathForAutoDisable,recentEvictionCount:c})),{evicted:!0,before:s,reason:i,backupPath:o?a:void 0,recentEvictionCount:c,chromaAutoDisabled:l}}function Fme(t,e){let r=qi.default.join(t,"vector-db.last-eviction.json"),n=Date.now(),s=[];try{if(Er.default.existsSync(r)){let a=JSON.parse(Er.default.readFileSync(r,"utf-8"));Array.isArray(a.history)&&(s=a.history.filter(o=>typeof o?.epochMs=="number"&&n-o.epochMsn-a.epochMs<=Og).length;try{Er.default.writeFileSync(r,JSON.stringify({timestamp:new Date(n).toISOString(),reason:e.reason,backupPath:e.backupPath??null,logicalBytes:e.before.logical,physicalBytes:e.before.physical,fileCount:e.before.fileCount,largestFile:e.before.largestFile??null,recentEvictionCount:i,autoDisableWindowMs:Og,history:s},null,2),"utf-8")}catch(a){_.warn("VECTOR_DB_GUARD","Failed to write eviction marker",{marker:r},a)}return i}function i6(t,e={}){let r=e.maxPhysicalBytes??Lme*1024*1024,n=e.maxLogicalBytes??Ume*1024*1024,s=jg(t);if(s.fileCount!==0){if(s.physical>r)throw new Ha("physical",s.logical,s.physical);if(s.logical>n)throw new Ha("logical",s.logical,s.physical)}}function Hme(t){try{if(!Er.default.existsSync(t))return Er.default.mkdirSync(qi.default.dirname(t),{recursive:!0}),Er.default.writeFileSync(t,JSON.stringify({CLAUDE_PILOT_CHROMA_ENABLED:!1},null,2),"utf-8"),!0;let e=Er.default.readFileSync(t,"utf-8"),r=JSON.parse(e),n=r&&typeof r.env=="object"&&r.env!==null?r.env:r;if(n.CLAUDE_PILOT_CHROMA_ENABLED===!1)return!1;n.CLAUDE_PILOT_CHROMA_ENABLED=!1;let s=`${t}.tmp-${process.pid}-${Date.now()}`;return Er.default.writeFileSync(s,JSON.stringify(r,null,2),"utf-8"),Er.default.renameSync(s,t),!0}catch(e){return _.error("VECTOR_DB_GUARD","Failed to auto-disable Chroma in settings",{settingsPath:t},e),!1}}function Bme(t,e){try{let n=Er.default.readdirSync(t,{withFileTypes:!0}).filter(s=>s.isDirectory()&&s.name.startsWith(`${e}.evicted.`)).map(s=>{let i=s.name.slice(`${e}.evicted.`.length),a=Number.parseInt(i,10);return{name:s.name,ts:Number.isNaN(a)?0:a}}).sort((s,i)=>i.ts-s.ts);for(let s of n.slice(2)){let i=qi.default.join(t,s.name);try{Er.default.rmSync(i,{recursive:!0,force:!0})}catch(a){_.debug("VECTOR_DB_GUARD","Failed to prune stale eviction backup",{full:i},a)}}}catch{}}var Ng=class{connectionManager;project;collectionName;BATCH_SIZE=100;writeGateTripped=!1;constructor(e){this.project=e,this.collectionName=`cm__${e}`,this.connectionManager=new Cg(e)}assertSafeToWrite(e){if(this.writeGateTripped)throw new Ha("physical",0,0);try{i6(this.connectionManager.VECTOR_DB_DIR)}catch(r){throw r instanceof Ha&&(this.writeGateTripped=!0,_.error("VECTOR_DB_GUARD",`Refusing ${e}: vector-db already at size limit`,{capKind:r.capKind,logical:r.logical,physical:r.physical}),this.connectionManager.close()),r}}async getClient(){return this.connectionManager.getClient()}async invalidateConnection(){await this.connectionManager.close()}async ensureCollection(){let e=await this.getClient();try{await e.callTool({name:"chroma_get_collection_info",arguments:{collection_name:this.collectionName}}),_.debug("CHROMA_SYNC","Collection exists",{collection:this.collectionName})}catch(r){let n=r instanceof Error?r.message:String(r);if(n.includes("Not connected")||n.includes("Connection closed")||n.includes("MCP error -32000")){if(await this.connectionManager.recoverFromCorruptedDatabase())return _.warn("CHROMA_SYNC","Corruption recovery triggered, retrying collection check"),this.ensureCollection();throw await this.invalidateConnection(),_.error("CHROMA_SYNC","Connection lost during collection check",{collection:this.collectionName},r),new Error(`Chroma connection lost: ${n}`)}_.error("CHROMA_SYNC","Collection check failed, attempting to create",{collection:this.collectionName},r),_.info("CHROMA_SYNC","Creating collection",{collection:this.collectionName});try{this.assertSafeToWrite("create_collection"),await e.callTool({name:"chroma_create_collection",arguments:{collection_name:this.collectionName,embedding_function_name:"default"}}),_.info("CHROMA_SYNC","Collection created",{collection:this.collectionName})}catch(i){throw _.error("CHROMA_SYNC","Failed to create collection",{collection:this.collectionName},i),new Error(`Collection creation failed: ${i instanceof Error?i.message:String(i)}`)}}return e}formatObservationDocs(e){let r=[],n=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],i=e.files_read?JSON.parse(e.files_read):[],a=e.files_modified?JSON.parse(e.files_modified):[],o={sqlite_id:e.id,doc_type:"observation",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,type:e.type||"discovery",title:e.title||"Untitled"};return e.subtitle&&(o.subtitle=e.subtitle),s.length>0&&(o.concepts=s.join(",")),i.length>0&&(o.files_read=i.join(",")),a.length>0&&(o.files_modified=a.join(",")),e.narrative&&r.push({id:`obs_${e.id}_narrative`,document:e.narrative,metadata:{...o,field_type:"narrative"}}),e.text&&r.push({id:`obs_${e.id}_text`,document:e.text,metadata:{...o,field_type:"text"}}),n.forEach((c,l)=>{r.push({id:`obs_${e.id}_fact_${l}`,document:c,metadata:{...o,field_type:"fact",fact_index:l}})}),r}formatSummaryDocs(e){let r=[],n={sqlite_id:e.id,doc_type:"session_summary",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number||0};return e.request&&r.push({id:`summary_${e.id}_request`,document:e.request,metadata:{...n,field_type:"request"}}),e.investigated&&r.push({id:`summary_${e.id}_investigated`,document:e.investigated,metadata:{...n,field_type:"investigated"}}),e.learned&&r.push({id:`summary_${e.id}_learned`,document:e.learned,metadata:{...n,field_type:"learned"}}),e.completed&&r.push({id:`summary_${e.id}_completed`,document:e.completed,metadata:{...n,field_type:"completed"}}),e.next_steps&&r.push({id:`summary_${e.id}_next_steps`,document:e.next_steps,metadata:{...n,field_type:"next_steps"}}),e.notes&&r.push({id:`summary_${e.id}_notes`,document:e.notes,metadata:{...n,field_type:"notes"}}),r}async addDocuments(e){if(e.length===0)return;let r=await this.ensureCollection();try{this.assertSafeToWrite("add_documents"),await r.callTool({name:"chroma_add_documents",arguments:{collection_name:this.collectionName,documents:e.map(n=>n.document),ids:e.map(n=>n.id),metadatas:e.map(n=>n.metadata)}}),_.debug("CHROMA_SYNC","Documents added",{collection:this.collectionName,count:e.length})}catch(n){throw _.error("CHROMA_SYNC","Failed to add documents",{collection:this.collectionName,count:e.length},n),new Error(`Document add failed: ${n instanceof Error?n.message:String(n)}`)}}async syncObservation(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,text:null,type:s.type,title:s.title,subtitle:s.subtitle,facts:JSON.stringify(s.facts),narrative:s.narrative,concepts:JSON.stringify(s.concepts),files_read:JSON.stringify(s.files_read),files_modified:JSON.stringify(s.files_modified),prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatObservationDocs(c);_.info("CHROMA_SYNC","Syncing observation",{observationId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}async syncSummary(e,r,n,s,i,a,o=0){let c={id:e,memory_session_id:r,project:n,request:s.request,investigated:s.investigated,learned:s.learned,completed:s.completed,next_steps:s.next_steps,notes:s.notes,prompt_number:i,discovery_tokens:o,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a},l=this.formatSummaryDocs(c);_.info("CHROMA_SYNC","Syncing summary",{summaryId:e,documentCount:l.length,project:n}),await this.addDocuments(l)}formatUserPromptDoc(e){return{id:`prompt_${e.id}`,document:e.prompt_text,metadata:{sqlite_id:e.id,doc_type:"user_prompt",memory_session_id:e.memory_session_id,project:e.project,created_at_epoch:e.created_at_epoch,prompt_number:e.prompt_number}}}async syncUserPrompt(e,r,n,s,i,a){let o={id:e,content_session_id:"",prompt_number:i,prompt_text:s,created_at:new Date(a*1e3).toISOString(),created_at_epoch:a,memory_session_id:r,project:n},c=this.formatUserPromptDoc(o);_.info("CHROMA_SYNC","Syncing user prompt",{promptId:e,project:n}),await this.addDocuments([c])}async getExistingChromaIds(){let e=await this.getClient(),r=new Set,n=new Set,s=new Set,i=0,a=1e3;for(_.info("CHROMA_SYNC","Fetching existing Chroma document IDs...",{project:this.project});;)try{let c=(await e.callTool({name:"chroma_get_documents",arguments:{collection_name:this.collectionName,limit:a,offset:i,where:{project:this.project},include:["metadatas"]}})).content[0];if(!c||c.type!=="text"||!c.text)throw new Error("Unexpected response type from chroma_get_documents");let u=JSON.parse(c.text).metadatas||[];if(u.length===0)break;for(let p of u)p.sqlite_id&&(p.doc_type==="observation"?r.add(p.sqlite_id):p.doc_type==="session_summary"?n.add(p.sqlite_id):p.doc_type==="user_prompt"&&s.add(p.sqlite_id));i+=a,_.debug("CHROMA_SYNC","Fetched batch of existing IDs",{project:this.project,offset:i,batchSize:u.length})}catch(o){throw _.error("CHROMA_SYNC","Failed to fetch existing IDs",{project:this.project},o),o}return _.info("CHROMA_SYNC","Existing IDs fetched",{project:this.project,observations:r.size,summaries:n.size,prompts:s.size}),{observations:r,summaries:n,prompts:s}}async ensureBackfilled(){_.info("CHROMA_SYNC","Starting smart backfill",{project:this.project}),await this.ensureCollection();let e=await this.getExistingChromaIds(),r=new Ui;try{let n=Array.from(e.observations),s=n.length>0?`AND id NOT IN (${n.join(",")})`:"",i=r.db.prepare(` SELECT * FROM observations WHERE project = ? ${s} ORDER BY id ASC @@ -1273,23 +1273,23 @@ ${r} ${e} ${n}`}function Qme(t,e){if(!(0,Wn.existsSync)(t)){_.debug("FOLDER_INDEX","Skipping non-existent folder",{folderPath:t});return}let r=Zr.default.join(t,"CLAUDE.md"),n=`${r}.tmp`,s="";if((0,Wn.existsSync)(r)&&(s=(0,Wn.readFileSync)(r,"utf-8")),!s&&e.includes("*No recent activity*")){_.debug("FOLDER_INDEX","Skipping empty activity file creation",{folderPath:t});return}let i=Jme(s,e);(0,Wn.writeFileSync)(n,i),(0,Wn.renameSync)(n,r)}function Yme(t){let e=[];e.push("# Recent Activity"),e.push(""),e.push(""),e.push("");let r=t.split(` `),n=[],s="",i=null;for(let o of r){let c=o.match(/^###\s+(.+)$/);if(c){let u=c[1].trim(),p=new Date(u);isNaN(p.getTime())||(i=p);continue}let l=o.match(/^\|\s*(#[S]?\d+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|/);if(l){let[,u,p,d,m,f]=l,v;p.trim()==="\u2033"||p.trim()==='"'?v=s:(v=p.trim(),s=v);let g=i?new Date(i):new Date,h=v.match(/(\d+):(\d+)\s*(AM|PM)/i),y=g.getTime();if(h){let b=parseInt(h[1],10),x=parseInt(h[2],10),w=h[3].toUpperCase()==="PM";w&&b!==12&&(b+=12),!w&&b===12&&(b=0),g.setHours(b,x,0,0),y=g.getTime()}n.push({id:u.trim(),time:v,typeEmoji:d.trim(),title:m.trim(),tokens:f.trim(),epoch:y})}}if(n.length===0)return e.push("*No recent activity*"),e.join(` -`);let a=Ba(n,o=>new Date(o.epoch).toISOString());for(let[o,c]of a){e.push(`### ${o}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let l="";for(let u of c){let p=u.time===l?'"':u.time;l=u.time,e.push(`| ${u.id} | ${p} | ${u.typeEmoji} | ${u.title} | ${u.tokens} |`)}e.push("")}return e.join(` -`).trim()}var Xme=[".git","package.json","composer.json","Cargo.toml","go.mod","pyproject.toml","setup.py","Gemfile","pom.xml","build.gradle","CMakeLists.txt","Makefile.am","meson.build"];function efe(t){for(let r of Xme){let n=Zr.default.join(t,r);if((0,Wn.existsSync)(n))return!0}let e=Zr.default.join(t,"CLAUDE.md");if((0,Wn.existsSync)(e))try{if(!(0,Wn.readFileSync)(e,"utf-8").includes(""))return!0}catch{return!0}return!1}function tfe(t,e){if(b6(t))return!0;let r=Zr.default.resolve(t);for(let n of e){let s=Zr.default.resolve(n);if(r===s||r.startsWith(s+Zr.default.sep))return!0}return!1}async function x6(t,e,r,n){let s=je.loadFromFile(Zme);if(!s.CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED){_.debug("FOLDER_INDEX","Folder CLAUDE.md generation disabled by setting");return}let i=parseInt(s.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10)||50,a=[];try{let c=JSON.parse(s.CLAUDE_PILOT_FOLDER_MD_EXCLUDE||"[]");Array.isArray(c)&&(a=c.filter(l=>typeof l=="string"))}catch{_.warn("FOLDER_INDEX","Failed to parse CLAUDE_PILOT_FOLDER_MD_EXCLUDE setting")}let o=new Set;for(let c of t){if(!c||c==="")continue;if(!Kme(c,n)){_.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:c,reason:"Failed path validation"});continue}let l=c;n&&!Zr.default.isAbsolute(c)&&(l=Zr.default.join(n,c));let u=Zr.default.dirname(l);if(u&&u!=="."&&u!=="/"){if(u.includes("/.git")||u.includes("\\.git")){_.debug("FOLDER_INDEX","Skipping .git directory",{folderPath:u});continue}if(efe(u)){_.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:u});continue}if(a.length>0&&tfe(u,a)){_.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:u});continue}o.add(u)}}if(o.size!==0){_.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:o.size});for(let c of o)try{let l=ls(),u=await fetch(`http://${l}:${r}/api/search/by-file?filePath=${encodeURIComponent(c)}&limit=${i}&project=${encodeURIComponent(e)}&isFolder=true`);if(!u.ok){_.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:c,status:u.status});continue}let p=await u.json();if(!p.content?.[0]?.text){_.debug("FOLDER_INDEX","No content for folder",{folderPath:c});continue}let d=Yme(p.content[0].text);Qme(c,d),_.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:c})}catch(l){let u=l;_.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:c,errorMessage:u.message,errorStack:u.stack})}}}Ln();Wa();var rE=require("child_process");function T6(t){try{let e=(0,rE.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim();return e==="HEAD"?`detached@${(0,rE.execSync)("git rev-parse --short HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim()}`:e||null}catch{return null}}function nE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function sE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function iE(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function aE(t,e,r,n,s,i,a,o,c){t&&e.conversationHistory.push({role:"assistant",content:t});let l=h6(t,e.contentSessionId),u=g6(t,e.sessionDbId),p=ofe(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let m=R6(l),f=E6(m,e.project,c);f!==e.project&&_.info("PROJECT",`Detected project from files: ${f} (session: ${e.project})`,{detectedProject:f,sessionProject:e.project,fileCount:m.length});let v=T6(c);_.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | project=${f} | obsCount=${l.length} | hasSummary=${!!p}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,project:f,gitBranch:v});let g=d.storeObservations(e.memorySessionId,f,l,p,e.lastPromptNumber,i,a??void 0);_.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${g.observationIds.length} | obsIds=[${g.observationIds.join(",")}] | summaryId=${g.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId}),await cfe(l,g,e,f,r,s,i,o,c),await lfe(u,p,g,e,f,r,s,i,o),iE(e,s)}function ofe(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}function R6(t){let e=[];for(let r of t)e.push(...r.files_read||[]),e.push(...r.files_modified||[]);return e}async function cfe(t,e,r,n,s,i,a,o,c){for(let u=0;u{let f=Date.now()-m;_.debug("VECTOR","Observation synced",{obsId:p,duration:`${f}ms`,type:d.type,title:d.title||"(untitled)"})}).catch(f=>{_.error("VECTOR",`${o} vector sync failed, continuing without vector search`,{obsId:p,type:d.type,title:d.title||"(untitled)"},f)}),nE(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:d.type,title:d.title,subtitle:d.subtitle,text:null,narrative:d.narrative||null,facts:JSON.stringify(d.facts||[]),concepts:JSON.stringify(d.concepts||[]),files_read:JSON.stringify(d.files_read||[]),files_modified:JSON.stringify(d.files_modified||[]),project:n,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let l=R6(t);l.length>0&&x6(l,n,un(),c).catch(u=>{_.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:n},u)})}async function lfe(t,e,r,n,s,i,a,o,c){if(!e||!r.summaryId)return;let l=Date.now();i.getVectorSync().syncSummary(r.summaryId,n.contentSessionId,s,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-l;_.debug("VECTOR","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{_.error("VECTOR",`${c} vector sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),sE(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:s,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch})}var Hg=require("fs");se();er();var P6=Zb;function pfe(){try{if(!(0,Hg.existsSync)(P6))return _.debug("SUBSCRIPTION","No credentials file found, assuming no subscription"),!1;let t=(0,Hg.readFileSync)(P6,"utf-8"),e=JSON.parse(t),r=e.planType||e.tier||e.subscription?.type||e.subscription?.tier||"",s=["pro","max","team","enterprise"].some(i=>r.toLowerCase().includes(i));return s&&_.debug("SUBSCRIPTION","Paid subscription detected",{tier:r}),s}catch(t){return _.debug("SUBSCRIPTION","Could not read credentials",{},t),!1}}function I6(){if(!pfe())return null;let t=process.env.ANTHROPIC_API_KEY;return t?(_.info("SUBSCRIPTION","Claude subscription detected - routing through CLI billing"),delete process.env.ANTHROPIC_API_KEY,()=>{process.env.ANTHROPIC_API_KEY=t}):null}var zF=require("events"),$F=require("child_process"),LF=require("readline"),WF=require("os"),ZF=require("path"),f8=require("crypto"),cy=require("fs/promises"),jE=require("path"),AE=require("fs"),h8=require("process"),iT=require("crypto"),ta=require("fs/promises"),dl=require("path"),Re=Y(require("fs"),1),or=require("fs/promises"),LE=require("path"),w8=require("url");var S8=require("child_process"),k8=require("util");var ySe={},dfe=Object.create,{getPrototypeOf:mfe,defineProperty:bE,getOwnPropertyNames:ffe}=Object,hfe=Object.prototype.hasOwnProperty;function gfe(t){return this[t]}var vfe,yfe,PF=(t,e,r)=>{var n=t!=null&&typeof t=="object";if(n){var s=e?vfe??=new WeakMap:yfe??=new WeakMap,i=s.get(t);if(i)return i}r=t!=null?dfe(mfe(t)):{};let a=e||!t||!t.__esModule?bE(r,"default",{value:t,enumerable:!0}):r;for(let o of ffe(t))hfe.call(a,o)||bE(a,o,{get:gfe.bind(t,o),enumerable:!0});return n&&s.set(t,a),a},ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),bfe=t=>t;function xfe(t,e){this[t]=bfe.bind(null,e)}var io=(t,e)=>{for(var r in e)bE(t,r,{get:e[r],enumerable:!0,configurable:!0,set:xfe.bind(e,r)})},_fe=Symbol.dispose||Symbol.for("Symbol.dispose"),wfe=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Zt=(t,e,r)=>{if(e!=null){if(typeof e!="object"&&typeof e!="function")throw TypeError('Object expected to be assigned to "using" declaration');var n;if(r&&(n=e[wfe]),n===void 0&&(n=e[_fe]),typeof n!="function")throw TypeError("Object not disposable");t.push([r,n,e])}else r&&t.push([r]);return e},Gt=(t,e,r)=>{var n=typeof SuppressedError=="function"?SuppressedError:function(a,o,c,l){return l=Error(c),l.name="SuppressedError",l.error=a,l.suppressed=o,l},s=a=>e=r?new n(a,e,"An error was suppressed during disposal"):(r=!0,a),i=a=>{for(;a=t.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(i,c=>(s(c),i()))}catch(c){s(c)}if(r)throw e};return i()},mv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((b,x)=>`${b}${x}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((b,x)=>(x instanceof r&&(b[x.str]=(b[x.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function s(h,...y){let b=[h[0]],x=0;for(;x{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=mv();class r extends Error{constructor(l){super(`CodeGen: "code" for ${l} not defined`),this.value=l.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class s{constructor({prefixes:l,parent:u}={}){this._names={},this._prefixes=l,this._parent=u}toName(l){return l instanceof e.Name?l:this.name(l)}name(l){return new e.Name(this._newName(l))}_newName(l){let u=this._names[l]||this._nameGroup(l);return`${l}${u.index++}`}_nameGroup(l){var u,p;if(!((p=(u=this._parent)===null||u===void 0?void 0:u._prefixes)===null||p===void 0)&&p.has(l)||this._prefixes&&!this._prefixes.has(l))throw Error(`CodeGen: prefix "${l}" is not allowed in this scope`);return this._names[l]={prefix:l,index:0}}}t.Scope=s;class i extends e.Name{constructor(l,u){super(u),this.prefix=l}setValue(l,{property:u,itemIndex:p}){this.value=l,this.scopePath=e._`.${new e.Name(u)}[${p}]`}}t.ValueScopeName=i;var a=e._`\n`;class o extends s{constructor(l){super(l),this._values={},this._scope=l.scope,this.opts={...l,_n:l.lines?a:e.nil}}get(){return this._scope}name(l){return new i(l,this._newName(l))}value(l,u){var p;if(u.ref===void 0)throw Error("CodeGen: ref must be passed in value");let d=this.toName(l),{prefix:m}=d,f=(p=u.key)!==null&&p!==void 0?p:u.ref,v=this._values[m];if(v){let y=v.get(f);if(y)return y}else v=this._values[m]=new Map;v.set(f,d);let g=this._scope[m]||(this._scope[m]=[]),h=g.length;return g[h]=u.ref,d.setValue(u,{property:m,itemIndex:h}),d}getValue(l,u){let p=this._values[l];if(p)return p.get(u)}scopeRefs(l,u=this._values){return this._reduceValues(u,p=>{if(p.scopePath===void 0)throw Error(`CodeGen: name "${p}" has no value`);return e._`${l}${p.scopePath}`})}scopeCode(l=this._values,u,p){return this._reduceValues(l,d=>{if(d.value===void 0)throw Error(`CodeGen: name "${d}" has no value`);return d.value.code},u,p)}_reduceValues(l,u,p={},d){let m=e.nil;for(let f in l){let v=l[f];if(!v)continue;let g=p[f]=p[f]||new Map;v.forEach(h=>{if(g.has(h))return;g.set(h,n.Started);let y=u(h);if(y){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;m=e._`${m}${b} ${h} = ${y};${this.opts._n}`}else if(y=d?.(h))m=e._`${m}${y}${this.opts._n}`;else throw new r(h);g.set(h,n.Completed)})}return m}}t.ValueScope=o}),De=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=mv(),r=C6(),n=mv();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var s=C6();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class i{optimizeNodes(){return this}optimizeNames(T,I){return this}}class a extends i{constructor(T,I,H){super(),this.varKind=T,this.name=I,this.rhs=H}render({es5:T,_n:I}){let H=T?r.varKinds.var:this.varKind,pe=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${pe};`+I}optimizeNames(T,I){if(T[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,T,I)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(T,I,H){super(),this.lhs=T,this.rhs=I,this.sideEffects=H}render({_n:T}){return`${this.lhs} = ${this.rhs};`+T}optimizeNames(T,I){if(!(this.lhs instanceof e.Name&&!T[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,T,I),this}get names(){let T=this.lhs instanceof e.Name?{}:{...this.lhs.names};return q(T,this.rhs)}}class c extends o{constructor(T,I,H,pe){super(T,H,pe),this.op=I}render({_n:T}){return`${this.lhs} ${this.op}= ${this.rhs};`+T}}class l extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`${this.label}:`+T}}class u extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`break${this.label?` ${this.label}`:""};`+T}}class p extends i{constructor(T){super(),this.error=T}render({_n:T}){return`throw ${this.error};`+T}get names(){return this.error.names}}class d extends i{constructor(T){super(),this.code=T}render({_n:T}){return`${this.code};`+T}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(T,I){return this.code=B(this.code,T,I),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class m extends i{constructor(T=[]){super(),this.nodes=T}render(T){return this.nodes.reduce((I,H)=>I+H.render(T),"")}optimizeNodes(){let{nodes:T}=this,I=T.length;for(;I--;){let H=T[I].optimizeNodes();Array.isArray(H)?T.splice(I,1,...H):H?T[I]=H:T.splice(I,1)}return T.length>0?this:void 0}optimizeNames(T,I){let{nodes:H}=this,pe=H.length;for(;pe--;){let he=H[pe];he.optimizeNames(T,I)||(re(T,he.names),H.splice(pe,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((T,I)=>$(T,I.names),{})}}class f extends m{render(T){return"{"+T._n+super.render(T)+"}"+T._n}}class v extends m{}class g extends f{}g.kind="else";class h extends f{constructor(T,I){super(I),this.condition=T}render(T){let I=`if(${this.condition})`+super.render(T);return this.else&&(I+="else "+this.else.render(T)),I}optimizeNodes(){super.optimizeNodes();let T=this.condition;if(T===!0)return this.nodes;let I=this.else;if(I){let H=I.optimizeNodes();I=this.else=Array.isArray(H)?new g(H):H}if(I)return T===!1?I instanceof h?I:I.nodes:this.nodes.length?this:new h(G(T),I instanceof h?[I]:I.nodes);if(!(T===!1||!this.nodes.length))return this}optimizeNames(T,I){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(T,I),!!(super.optimizeNames(T,I)||this.else))return this.condition=B(this.condition,T,I),this}get names(){let T=super.names;return q(T,this.condition),this.else&&$(T,this.else.names),T}}h.kind="if";class y extends f{}y.kind="for";class b extends y{constructor(T){super(),this.iteration=T}render(T){return`for(${this.iteration})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iteration=B(this.iteration,T,I),this}get names(){return $(super.names,this.iteration.names)}}class x extends y{constructor(T,I,H,pe){super(),this.varKind=T,this.name=I,this.from=H,this.to=pe}render(T){let I=T.es5?r.varKinds.var:this.varKind,{name:H,from:pe,to:he}=this;return`for(${I} ${H}=${pe}; ${H}<${he}; ${H}++)`+super.render(T)}get names(){let T=q(super.names,this.from);return q(T,this.to)}}class w extends y{constructor(T,I,H,pe){super(),this.loop=T,this.varKind=I,this.name=H,this.iterable=pe}render(T){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iterable=B(this.iterable,T,I),this}get names(){return $(super.names,this.iterable.names)}}class S extends f{constructor(T,I,H){super(),this.name=T,this.args=I,this.async=H}render(T){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(T)}}S.kind="func";class k extends m{render(T){return"return "+super.render(T)}}k.kind="return";class E extends f{render(T){let I="try"+super.render(T);return this.catch&&(I+=this.catch.render(T)),this.finally&&(I+=this.finally.render(T)),I}optimizeNodes(){var T,I;return super.optimizeNodes(),(T=this.catch)===null||T===void 0||T.optimizeNodes(),(I=this.finally)===null||I===void 0||I.optimizeNodes(),this}optimizeNames(T,I){var H,pe;return super.optimizeNames(T,I),(H=this.catch)===null||H===void 0||H.optimizeNames(T,I),(pe=this.finally)===null||pe===void 0||pe.optimizeNames(T,I),this}get names(){let T=super.names;return this.catch&&$(T,this.catch.names),this.finally&&$(T,this.finally.names),T}}class R extends f{constructor(T){super(),this.error=T}render(T){return`catch(${this.error})`+super.render(T)}}R.kind="catch";class O extends f{render(T){return"finally"+super.render(T)}}O.kind="finally";class C{constructor(T,I={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...I,_n:I.lines?` +`);let a=Wa(n,o=>new Date(o.epoch).toISOString());for(let[o,c]of a){e.push(`### ${o}`),e.push(""),e.push("| ID | Time | T | Title | Read |"),e.push("|----|------|---|-------|------|");let l="";for(let u of c){let p=u.time===l?'"':u.time;l=u.time,e.push(`| ${u.id} | ${p} | ${u.typeEmoji} | ${u.title} | ${u.tokens} |`)}e.push("")}return e.join(` +`).trim()}var Xme=[".git","package.json","composer.json","Cargo.toml","go.mod","pyproject.toml","setup.py","Gemfile","pom.xml","build.gradle","CMakeLists.txt","Makefile.am","meson.build"];function efe(t){for(let r of Xme){let n=Zr.default.join(t,r);if((0,Wn.existsSync)(n))return!0}let e=Zr.default.join(t,"CLAUDE.md");if((0,Wn.existsSync)(e))try{if(!(0,Wn.readFileSync)(e,"utf-8").includes(""))return!0}catch{return!0}return!1}function tfe(t,e){if(b6(t))return!0;let r=Zr.default.resolve(t);for(let n of e){let s=Zr.default.resolve(n);if(r===s||r.startsWith(s+Zr.default.sep))return!0}return!1}async function x6(t,e,r,n){let s=je.loadFromFile(Zme);if(!s.CLAUDE_PILOT_FOLDER_CLAUDEMD_ENABLED){_.debug("FOLDER_INDEX","Folder CLAUDE.md generation disabled by setting");return}let i=parseInt(s.CLAUDE_PILOT_CONTEXT_OBSERVATIONS,10)||50,a=[];try{let c=JSON.parse(s.CLAUDE_PILOT_FOLDER_MD_EXCLUDE||"[]");Array.isArray(c)&&(a=c.filter(l=>typeof l=="string"))}catch{_.warn("FOLDER_INDEX","Failed to parse CLAUDE_PILOT_FOLDER_MD_EXCLUDE setting")}let o=new Set;for(let c of t){if(!c||c==="")continue;if(!Kme(c,n)){_.debug("FOLDER_INDEX","Skipping invalid file path",{filePath:c,reason:"Failed path validation"});continue}let l=c;n&&!Zr.default.isAbsolute(c)&&(l=Zr.default.join(n,c));let u=Zr.default.dirname(l);if(u&&u!=="."&&u!=="/"){if(u.includes("/.git")||u.includes("\\.git")){_.debug("FOLDER_INDEX","Skipping .git directory",{folderPath:u});continue}if(efe(u)){_.debug("FOLDER_INDEX","Skipping project root CLAUDE.md",{folderPath:u});continue}if(a.length>0&&tfe(u,a)){_.debug("FOLDER_INDEX","Skipping excluded folder",{folderPath:u});continue}o.add(u)}}if(o.size!==0){_.debug("FOLDER_INDEX","Updating CLAUDE.md files",{project:e,folderCount:o.size});for(let c of o)try{let l=ls(),u=await fetch(`http://${l}:${r}/api/search/by-file?filePath=${encodeURIComponent(c)}&limit=${i}&project=${encodeURIComponent(e)}&isFolder=true`);if(!u.ok){_.error("FOLDER_INDEX","Failed to fetch timeline",{folderPath:c,status:u.status});continue}let p=await u.json();if(!p.content?.[0]?.text){_.debug("FOLDER_INDEX","No content for folder",{folderPath:c});continue}let d=Yme(p.content[0].text);Qme(c,d),_.debug("FOLDER_INDEX","Updated CLAUDE.md",{folderPath:c})}catch(l){let u=l;_.error("FOLDER_INDEX","Failed to update CLAUDE.md",{folderPath:c,errorMessage:u.message,errorStack:u.stack})}}}Ln();Za();var rE=require("child_process");function T6(t){try{let e=(0,rE.execSync)("git rev-parse --abbrev-ref HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim();return e==="HEAD"?`detached@${(0,rE.execSync)("git rev-parse --short HEAD",{cwd:t||process.cwd(),encoding:"utf-8",stdio:["pipe","pipe","pipe"],timeout:5e3,windowsHide:!0}).trim()}`:e||null}catch{return null}}function nE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_observation",observation:e})}function sE(t,e){t?.sseBroadcaster&&t.sseBroadcaster.broadcast({type:"new_summary",summary:e})}function iE(t,e){t.earliestPendingTimestamp=null,e&&typeof e.broadcastProcessingStatus=="function"&&e.broadcastProcessingStatus()}async function aE(t,e,r,n,s,i,a,o,c){t&&e.conversationHistory.push({role:"assistant",content:t});let l=h6(t,e.contentSessionId),u=g6(t,e.sessionDbId),p=ofe(u),d=r.getSessionStore();if(!e.memorySessionId)throw new Error("Cannot store observations: memorySessionId not yet captured");let m=R6(l),f=E6(m,e.project,c);f!==e.project&&_.info("PROJECT",`Detected project from files: ${f} (session: ${e.project})`,{detectedProject:f,sessionProject:e.project,fileCount:m.length});let v=T6(c);_.info("DB",`STORING | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | project=${f} | obsCount=${l.length} | hasSummary=${!!p}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,project:f,gitBranch:v});let g=d.storeObservations(e.memorySessionId,f,l,p,e.lastPromptNumber,i,a??void 0);_.info("DB",`STORED | sessionDbId=${e.sessionDbId} | memorySessionId=${e.memorySessionId} | obsCount=${g.observationIds.length} | obsIds=[${g.observationIds.join(",")}] | summaryId=${g.summaryId||"none"}`,{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId}),await cfe(l,g,e,f,r,s,i,o,c),await lfe(u,p,g,e,f,r,s,i,o),iE(e,s)}function ofe(t){return t?{request:t.request||"",investigated:t.investigated||"",learned:t.learned||"",completed:t.completed||"",next_steps:t.next_steps||"",notes:t.notes}:null}function R6(t){let e=[];for(let r of t)e.push(...r.files_read||[]),e.push(...r.files_modified||[]);return e}async function cfe(t,e,r,n,s,i,a,o,c){for(let u=0;u{let f=Date.now()-m;_.debug("VECTOR","Observation synced",{obsId:p,duration:`${f}ms`,type:d.type,title:d.title||"(untitled)"})}).catch(f=>{_.error("VECTOR",`${o} vector sync failed, continuing without vector search`,{obsId:p,type:d.type,title:d.title||"(untitled)"},f)}),nE(i,{id:p,memory_session_id:r.memorySessionId,session_id:r.contentSessionId,type:d.type,title:d.title,subtitle:d.subtitle,text:null,narrative:d.narrative||null,facts:JSON.stringify(d.facts||[]),concepts:JSON.stringify(d.concepts||[]),files_read:JSON.stringify(d.files_read||[]),files_modified:JSON.stringify(d.files_modified||[]),project:n,prompt_number:r.lastPromptNumber,created_at_epoch:e.createdAtEpoch})}let l=R6(t);l.length>0&&x6(l,n,un(),c).catch(u=>{_.warn("FOLDER_INDEX","CLAUDE.md update failed (non-critical)",{project:n},u)})}async function lfe(t,e,r,n,s,i,a,o,c){if(!e||!r.summaryId)return;let l=Date.now();i.getVectorSync().syncSummary(r.summaryId,n.contentSessionId,s,e,n.lastPromptNumber,r.createdAtEpoch,o).then(()=>{let u=Date.now()-l;_.debug("VECTOR","Summary synced",{summaryId:r.summaryId,duration:`${u}ms`,request:e.request||"(no request)"})}).catch(u=>{_.error("VECTOR",`${c} vector sync failed, continuing without vector search`,{summaryId:r.summaryId,request:e.request||"(no request)"},u)}),sE(a,{id:r.summaryId,session_id:n.contentSessionId,request:t.request,investigated:t.investigated,learned:t.learned,completed:t.completed,next_steps:t.next_steps,notes:t.notes,project:s,prompt_number:n.lastPromptNumber,created_at_epoch:r.createdAtEpoch})}var Hg=require("fs");se();er();var P6=Zb;function pfe(){try{if(!(0,Hg.existsSync)(P6))return _.debug("SUBSCRIPTION","No credentials file found, assuming no subscription"),!1;let t=(0,Hg.readFileSync)(P6,"utf-8"),e=JSON.parse(t),r=e.planType||e.tier||e.subscription?.type||e.subscription?.tier||"",s=["pro","max","team","enterprise"].some(i=>r.toLowerCase().includes(i));return s&&_.debug("SUBSCRIPTION","Paid subscription detected",{tier:r}),s}catch(t){return _.debug("SUBSCRIPTION","Could not read credentials",{},t),!1}}function I6(){if(!pfe())return null;let t=process.env.ANTHROPIC_API_KEY;return t?(_.info("SUBSCRIPTION","Claude subscription detected - routing through CLI billing"),delete process.env.ANTHROPIC_API_KEY,()=>{process.env.ANTHROPIC_API_KEY=t}):null}var zF=require("events"),$F=require("child_process"),LF=require("readline"),WF=require("os"),ZF=require("path"),f8=require("crypto"),cy=require("fs/promises"),jE=require("path"),AE=require("fs"),h8=require("process"),iT=require("crypto"),ta=require("fs/promises"),dl=require("path"),Re=Y(require("fs"),1),or=require("fs/promises"),LE=require("path"),w8=require("url");var S8=require("child_process"),k8=require("util");var ySe={},dfe=Object.create,{getPrototypeOf:mfe,defineProperty:bE,getOwnPropertyNames:ffe}=Object,hfe=Object.prototype.hasOwnProperty;function gfe(t){return this[t]}var vfe,yfe,PF=(t,e,r)=>{var n=t!=null&&typeof t=="object";if(n){var s=e?vfe??=new WeakMap:yfe??=new WeakMap,i=s.get(t);if(i)return i}r=t!=null?dfe(mfe(t)):{};let a=e||!t||!t.__esModule?bE(r,"default",{value:t,enumerable:!0}):r;for(let o of ffe(t))hfe.call(a,o)||bE(a,o,{get:gfe.bind(t,o),enumerable:!0});return n&&s.set(t,a),a},ne=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),bfe=t=>t;function xfe(t,e){this[t]=bfe.bind(null,e)}var ao=(t,e)=>{for(var r in e)bE(t,r,{get:e[r],enumerable:!0,configurable:!0,set:xfe.bind(e,r)})},_fe=Symbol.dispose||Symbol.for("Symbol.dispose"),wfe=Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose"),Zt=(t,e,r)=>{if(e!=null){if(typeof e!="object"&&typeof e!="function")throw TypeError('Object expected to be assigned to "using" declaration');var n;if(r&&(n=e[wfe]),n===void 0&&(n=e[_fe]),typeof n!="function")throw TypeError("Object not disposable");t.push([r,n,e])}else r&&t.push([r]);return e},Gt=(t,e,r)=>{var n=typeof SuppressedError=="function"?SuppressedError:function(a,o,c,l){return l=Error(c),l.name="SuppressedError",l.error=a,l.suppressed=o,l},s=a=>e=r?new n(a,e,"An error was suppressed during disposal"):(r=!0,a),i=a=>{for(;a=t.pop();)try{var o=a[1]&&a[1].call(a[2]);if(a[0])return Promise.resolve(o).then(i,c=>(s(c),i()))}catch(c){s(c)}if(r)throw e};return i()},mv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class e{}t._CodeOrName=e,t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class r extends e{constructor(y){if(super(),!t.IDENTIFIER.test(y))throw Error("CodeGen: name must be a valid identifier");this.str=y}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}t.Name=r;class n extends e{constructor(y){super(),this._items=typeof y=="string"?[y]:y}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let y=this._items[0];return y===""||y==='""'}get str(){var y;return(y=this._str)!==null&&y!==void 0?y:this._str=this._items.reduce((b,x)=>`${b}${x}`,"")}get names(){var y;return(y=this._names)!==null&&y!==void 0?y:this._names=this._items.reduce((b,x)=>(x instanceof r&&(b[x.str]=(b[x.str]||0)+1),b),{})}}t._Code=n,t.nil=new n("");function s(h,...y){let b=[h[0]],x=0;for(;x{Object.defineProperty(t,"__esModule",{value:!0}),t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;var e=mv();class r extends Error{constructor(l){super(`CodeGen: "code" for ${l} not defined`),this.value=l.value}}var n;(function(c){c[c.Started=0]="Started",c[c.Completed=1]="Completed"})(n||(t.UsedValueState=n={})),t.varKinds={const:new e.Name("const"),let:new e.Name("let"),var:new e.Name("var")};class s{constructor({prefixes:l,parent:u}={}){this._names={},this._prefixes=l,this._parent=u}toName(l){return l instanceof e.Name?l:this.name(l)}name(l){return new e.Name(this._newName(l))}_newName(l){let u=this._names[l]||this._nameGroup(l);return`${l}${u.index++}`}_nameGroup(l){var u,p;if(!((p=(u=this._parent)===null||u===void 0?void 0:u._prefixes)===null||p===void 0)&&p.has(l)||this._prefixes&&!this._prefixes.has(l))throw Error(`CodeGen: prefix "${l}" is not allowed in this scope`);return this._names[l]={prefix:l,index:0}}}t.Scope=s;class i extends e.Name{constructor(l,u){super(u),this.prefix=l}setValue(l,{property:u,itemIndex:p}){this.value=l,this.scopePath=e._`.${new e.Name(u)}[${p}]`}}t.ValueScopeName=i;var a=e._`\n`;class o extends s{constructor(l){super(l),this._values={},this._scope=l.scope,this.opts={...l,_n:l.lines?a:e.nil}}get(){return this._scope}name(l){return new i(l,this._newName(l))}value(l,u){var p;if(u.ref===void 0)throw Error("CodeGen: ref must be passed in value");let d=this.toName(l),{prefix:m}=d,f=(p=u.key)!==null&&p!==void 0?p:u.ref,v=this._values[m];if(v){let y=v.get(f);if(y)return y}else v=this._values[m]=new Map;v.set(f,d);let g=this._scope[m]||(this._scope[m]=[]),h=g.length;return g[h]=u.ref,d.setValue(u,{property:m,itemIndex:h}),d}getValue(l,u){let p=this._values[l];if(p)return p.get(u)}scopeRefs(l,u=this._values){return this._reduceValues(u,p=>{if(p.scopePath===void 0)throw Error(`CodeGen: name "${p}" has no value`);return e._`${l}${p.scopePath}`})}scopeCode(l=this._values,u,p){return this._reduceValues(l,d=>{if(d.value===void 0)throw Error(`CodeGen: name "${d}" has no value`);return d.value.code},u,p)}_reduceValues(l,u,p={},d){let m=e.nil;for(let f in l){let v=l[f];if(!v)continue;let g=p[f]=p[f]||new Map;v.forEach(h=>{if(g.has(h))return;g.set(h,n.Started);let y=u(h);if(y){let b=this.opts.es5?t.varKinds.var:t.varKinds.const;m=e._`${m}${b} ${h} = ${y};${this.opts._n}`}else if(y=d?.(h))m=e._`${m}${y}${this.opts._n}`;else throw new r(h);g.set(h,n.Completed)})}return m}}t.ValueScope=o}),De=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;var e=mv(),r=C6(),n=mv();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(t,"strConcat",{enumerable:!0,get:function(){return n.strConcat}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(t,"getProperty",{enumerable:!0,get:function(){return n.getProperty}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(t,"regexpCode",{enumerable:!0,get:function(){return n.regexpCode}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return n.Name}});var s=C6();Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return s.Scope}}),Object.defineProperty(t,"ValueScope",{enumerable:!0,get:function(){return s.ValueScope}}),Object.defineProperty(t,"ValueScopeName",{enumerable:!0,get:function(){return s.ValueScopeName}}),Object.defineProperty(t,"varKinds",{enumerable:!0,get:function(){return s.varKinds}}),t.operators={GT:new e._Code(">"),GTE:new e._Code(">="),LT:new e._Code("<"),LTE:new e._Code("<="),EQ:new e._Code("==="),NEQ:new e._Code("!=="),NOT:new e._Code("!"),OR:new e._Code("||"),AND:new e._Code("&&"),ADD:new e._Code("+")};class i{optimizeNodes(){return this}optimizeNames(T,I){return this}}class a extends i{constructor(T,I,H){super(),this.varKind=T,this.name=I,this.rhs=H}render({es5:T,_n:I}){let H=T?r.varKinds.var:this.varKind,pe=this.rhs===void 0?"":` = ${this.rhs}`;return`${H} ${this.name}${pe};`+I}optimizeNames(T,I){if(T[this.name.str])return this.rhs&&(this.rhs=B(this.rhs,T,I)),this}get names(){return this.rhs instanceof e._CodeOrName?this.rhs.names:{}}}class o extends i{constructor(T,I,H){super(),this.lhs=T,this.rhs=I,this.sideEffects=H}render({_n:T}){return`${this.lhs} = ${this.rhs};`+T}optimizeNames(T,I){if(!(this.lhs instanceof e.Name&&!T[this.lhs.str]&&!this.sideEffects))return this.rhs=B(this.rhs,T,I),this}get names(){let T=this.lhs instanceof e.Name?{}:{...this.lhs.names};return q(T,this.rhs)}}class c extends o{constructor(T,I,H,pe){super(T,H,pe),this.op=I}render({_n:T}){return`${this.lhs} ${this.op}= ${this.rhs};`+T}}class l extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`${this.label}:`+T}}class u extends i{constructor(T){super(),this.label=T,this.names={}}render({_n:T}){return`break${this.label?` ${this.label}`:""};`+T}}class p extends i{constructor(T){super(),this.error=T}render({_n:T}){return`throw ${this.error};`+T}get names(){return this.error.names}}class d extends i{constructor(T){super(),this.code=T}render({_n:T}){return`${this.code};`+T}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(T,I){return this.code=B(this.code,T,I),this}get names(){return this.code instanceof e._CodeOrName?this.code.names:{}}}class m extends i{constructor(T=[]){super(),this.nodes=T}render(T){return this.nodes.reduce((I,H)=>I+H.render(T),"")}optimizeNodes(){let{nodes:T}=this,I=T.length;for(;I--;){let H=T[I].optimizeNodes();Array.isArray(H)?T.splice(I,1,...H):H?T[I]=H:T.splice(I,1)}return T.length>0?this:void 0}optimizeNames(T,I){let{nodes:H}=this,pe=H.length;for(;pe--;){let he=H[pe];he.optimizeNames(T,I)||(re(T,he.names),H.splice(pe,1))}return H.length>0?this:void 0}get names(){return this.nodes.reduce((T,I)=>$(T,I.names),{})}}class f extends m{render(T){return"{"+T._n+super.render(T)+"}"+T._n}}class v extends m{}class g extends f{}g.kind="else";class h extends f{constructor(T,I){super(I),this.condition=T}render(T){let I=`if(${this.condition})`+super.render(T);return this.else&&(I+="else "+this.else.render(T)),I}optimizeNodes(){super.optimizeNodes();let T=this.condition;if(T===!0)return this.nodes;let I=this.else;if(I){let H=I.optimizeNodes();I=this.else=Array.isArray(H)?new g(H):H}if(I)return T===!1?I instanceof h?I:I.nodes:this.nodes.length?this:new h(G(T),I instanceof h?[I]:I.nodes);if(!(T===!1||!this.nodes.length))return this}optimizeNames(T,I){var H;if(this.else=(H=this.else)===null||H===void 0?void 0:H.optimizeNames(T,I),!!(super.optimizeNames(T,I)||this.else))return this.condition=B(this.condition,T,I),this}get names(){let T=super.names;return q(T,this.condition),this.else&&$(T,this.else.names),T}}h.kind="if";class y extends f{}y.kind="for";class b extends y{constructor(T){super(),this.iteration=T}render(T){return`for(${this.iteration})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iteration=B(this.iteration,T,I),this}get names(){return $(super.names,this.iteration.names)}}class x extends y{constructor(T,I,H,pe){super(),this.varKind=T,this.name=I,this.from=H,this.to=pe}render(T){let I=T.es5?r.varKinds.var:this.varKind,{name:H,from:pe,to:he}=this;return`for(${I} ${H}=${pe}; ${H}<${he}; ${H}++)`+super.render(T)}get names(){let T=q(super.names,this.from);return q(T,this.to)}}class w extends y{constructor(T,I,H,pe){super(),this.loop=T,this.varKind=I,this.name=H,this.iterable=pe}render(T){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(T)}optimizeNames(T,I){if(super.optimizeNames(T,I))return this.iterable=B(this.iterable,T,I),this}get names(){return $(super.names,this.iterable.names)}}class S extends f{constructor(T,I,H){super(),this.name=T,this.args=I,this.async=H}render(T){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(T)}}S.kind="func";class k extends m{render(T){return"return "+super.render(T)}}k.kind="return";class E extends f{render(T){let I="try"+super.render(T);return this.catch&&(I+=this.catch.render(T)),this.finally&&(I+=this.finally.render(T)),I}optimizeNodes(){var T,I;return super.optimizeNodes(),(T=this.catch)===null||T===void 0||T.optimizeNodes(),(I=this.finally)===null||I===void 0||I.optimizeNodes(),this}optimizeNames(T,I){var H,pe;return super.optimizeNames(T,I),(H=this.catch)===null||H===void 0||H.optimizeNames(T,I),(pe=this.finally)===null||pe===void 0||pe.optimizeNames(T,I),this}get names(){let T=super.names;return this.catch&&$(T,this.catch.names),this.finally&&$(T,this.finally.names),T}}class R extends f{constructor(T){super(),this.error=T}render(T){return`catch(${this.error})`+super.render(T)}}R.kind="catch";class O extends f{render(T){return"finally"+super.render(T)}}O.kind="finally";class C{constructor(T,I={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...I,_n:I.lines?` `:""},this._extScope=T,this._scope=new r.Scope({parent:T}),this._nodes=[new v]}toString(){return this._root.render(this.opts)}name(T){return this._scope.name(T)}scopeName(T){return this._extScope.name(T)}scopeValue(T,I){let H=this._extScope.value(T,I);return(this._values[H.prefix]||(this._values[H.prefix]=new Set)).add(H),H}getScopeValue(T,I){return this._extScope.getValue(T,I)}scopeRefs(T){return this._extScope.scopeRefs(T,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(T,I,H,pe){let he=this._scope.toName(I);return H!==void 0&&pe&&(this._constants[he.str]=H),this._leafNode(new a(T,he,H)),he}const(T,I,H){return this._def(r.varKinds.const,T,I,H)}let(T,I,H){return this._def(r.varKinds.let,T,I,H)}var(T,I,H){return this._def(r.varKinds.var,T,I,H)}assign(T,I,H){return this._leafNode(new o(T,I,H))}add(T,I){return this._leafNode(new c(T,t.operators.ADD,I))}code(T){return typeof T=="function"?T():T!==e.nil&&this._leafNode(new d(T)),this}object(...T){let I=["{"];for(let[H,pe]of T)I.length>1&&I.push(","),I.push(H),(H!==pe||this.opts.es5)&&(I.push(":"),(0,e.addCodeArg)(I,pe));return I.push("}"),new e._Code(I)}if(T,I,H){if(this._blockNode(new h(T)),I&&H)this.code(I).else().code(H).endIf();else if(I)this.code(I).endIf();else if(H)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(T){return this._elseNode(new h(T))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(h,g)}_for(T,I){return this._blockNode(T),I&&this.code(I).endFor(),this}for(T,I){return this._for(new b(T),I)}forRange(T,I,H,pe,he=this.opts.es5?r.varKinds.var:r.varKinds.let){let st=this._scope.toName(T);return this._for(new x(he,st,I,H),()=>pe(st))}forOf(T,I,H,pe=r.varKinds.const){let he=this._scope.toName(T);if(this.opts.es5){let st=I instanceof e.Name?I:this.var("_arr",I);return this.forRange("_i",0,e._`${st}.length`,Ye=>{this.var(he,e._`${st}[${Ye}]`),H(he)})}return this._for(new w("of",pe,he,I),()=>H(he))}forIn(T,I,H,pe=this.opts.es5?r.varKinds.var:r.varKinds.const){if(this.opts.ownProperties)return this.forOf(T,e._`Object.keys(${I})`,H);let he=this._scope.toName(T);return this._for(new w("in",pe,he,I),()=>H(he))}endFor(){return this._endBlockNode(y)}label(T){return this._leafNode(new l(T))}break(T){return this._leafNode(new u(T))}return(T){let I=new k;if(this._blockNode(I),this.code(T),I.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(k)}try(T,I,H){if(!I&&!H)throw Error('CodeGen: "try" without "catch" and "finally"');let pe=new E;if(this._blockNode(pe),this.code(T),I){let he=this.name("e");this._currNode=pe.catch=new R(he),I(he)}return H&&(this._currNode=pe.finally=new O,this.code(H)),this._endBlockNode(R,O)}throw(T){return this._leafNode(new p(T))}block(T,I){return this._blockStarts.push(this._nodes.length),T&&this.code(T).endBlock(I),this}endBlock(T){let I=this._blockStarts.pop();if(I===void 0)throw Error("CodeGen: not in self-balancing block");let H=this._nodes.length-I;if(H<0||T!==void 0&&H!==T)throw Error(`CodeGen: wrong number of nodes: ${H} vs ${T} expected`);return this._nodes.length=I,this}func(T,I=e.nil,H,pe){return this._blockNode(new S(T,I,H)),pe&&this.code(pe).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(T=1){for(;T-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(T){return this._currNode.nodes.push(T),this}_blockNode(T){this._currNode.nodes.push(T),this._nodes.push(T)}_endBlockNode(T,I){let H=this._currNode;if(H instanceof T||I&&H instanceof I)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${I?`${T.kind}/${I.kind}`:T.kind}"`)}_elseNode(T){let I=this._currNode;if(!(I instanceof h))throw Error('CodeGen: "else" without "if"');return this._currNode=I.else=T,this}get _root(){return this._nodes[0]}get _currNode(){let T=this._nodes;return T[T.length-1]}set _currNode(T){let I=this._nodes;I[I.length-1]=T}}t.CodeGen=C;function $(M,T){for(let I in T)M[I]=(M[I]||0)+(T[I]||0);return M}function q(M,T){return T instanceof e._CodeOrName?$(M,T.names):M}function B(M,T,I){if(M instanceof e.Name)return H(M);if(!pe(M))return M;return new e._Code(M._items.reduce((he,st)=>(st instanceof e.Name&&(st=H(st)),st instanceof e._Code?he.push(...st._items):he.push(st),he),[]));function H(he){let st=I[he.str];return st===void 0||T[he.str]!==1?he:(delete T[he.str],st)}function pe(he){return he instanceof e._Code&&he._items.some(st=>st instanceof e.Name&&T[st.str]===1&&I[st.str]!==void 0)}}function re(M,T){for(let I in T)M[I]=(M[I]||0)-(T[I]||0)}function G(M){return typeof M=="boolean"||typeof M=="number"||M===null?!M:e._`!${W(M)}`}t.not=G;var yt=j(t.operators.AND);function Cr(...M){return M.reduce(yt)}t.and=Cr;var Fe=j(t.operators.OR);function K(...M){return M.reduce(Fe)}t.or=K;function j(M){return(T,I)=>T===e.nil?I:I===e.nil?T:e._`${W(T)} ${M} ${W(I)}`}function W(M){return M instanceof e.Name?M:e._`(${M})`}}),rt=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;var e=De(),r=mv();function n(S){let k={};for(let E of S)k[E]=!0;return k}t.toHash=n;function s(S,k){return typeof k=="boolean"?k:Object.keys(k).length===0?!0:(i(S,k),!a(k,S.self.RULES.all))}t.alwaysValidSchema=s;function i(S,k=S.schema){let{opts:E,self:R}=S;if(!E.strictSchema||typeof k=="boolean")return;let O=R.RULES.keywords;for(let C in k)O[C]||w(S,`unknown keyword: "${C}"`)}t.checkUnknownRules=i;function a(S,k){if(typeof S=="boolean")return!S;for(let E in S)if(k[E])return!0;return!1}t.schemaHasRules=a;function o(S,k){if(typeof S=="boolean")return!S;for(let E in S)if(E!=="$ref"&&k.all[E])return!0;return!1}t.schemaHasRulesButRef=o;function c({topSchemaRef:S,schemaPath:k},E,R,O){if(!O){if(typeof E=="number"||typeof E=="boolean")return E;if(typeof E=="string")return e._`${E}`}return e._`${S}${k}${(0,e.getProperty)(R)}`}t.schemaRefOrVal=c;function l(S){return d(decodeURIComponent(S))}t.unescapeFragment=l;function u(S){return encodeURIComponent(p(S))}t.escapeFragment=u;function p(S){return typeof S=="number"?`${S}`:S.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=p;function d(S){return S.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=d;function m(S,k){if(Array.isArray(S))for(let E of S)k(E);else k(S)}t.eachItem=m;function f({mergeNames:S,mergeToName:k,mergeValues:E,resultToName:R}){return(O,C,$,q)=>{let B=$===void 0?C:$ instanceof e.Name?(C instanceof e.Name?S(O,C,$):k(O,C,$),$):C instanceof e.Name?(k(O,$,C),C):E(C,$);return q===e.Name&&!(B instanceof e.Name)?R(O,B):B}}t.mergeEvaluated={props:f({mergeNames:(S,k,E)=>S.if(e._`${E} !== true && ${k} !== undefined`,()=>{S.if(e._`${k} === true`,()=>S.assign(E,!0),()=>S.assign(E,e._`${E} || {}`).code(e._`Object.assign(${E}, ${k})`))}),mergeToName:(S,k,E)=>S.if(e._`${E} !== true`,()=>{k===!0?S.assign(E,!0):(S.assign(E,e._`${E} || {}`),g(S,E,k))}),mergeValues:(S,k)=>S===!0?!0:{...S,...k},resultToName:v}),items:f({mergeNames:(S,k,E)=>S.if(e._`${E} !== true && ${k} !== undefined`,()=>S.assign(E,e._`${k} === true ? true : ${E} > ${k} ? ${E} : ${k}`)),mergeToName:(S,k,E)=>S.if(e._`${E} !== true`,()=>S.assign(E,k===!0?!0:e._`${E} > ${k} ? ${E} : ${k}`)),mergeValues:(S,k)=>S===!0?!0:Math.max(S,k),resultToName:(S,k)=>S.var("items",k)})};function v(S,k){if(k===!0)return S.var("props",!0);let E=S.var("props",e._`{}`);return k!==void 0&&g(S,E,k),E}t.evaluatedPropsToName=v;function g(S,k,E){Object.keys(E).forEach(R=>S.assign(e._`${k}${(0,e.getProperty)(R)}`,!0))}t.setEvaluated=g;var h={};function y(S,k){return S.scopeValue("func",{ref:k,code:h[k.code]||(h[k.code]=new r._Code(k.code))})}t.useFunc=y;var b;(function(S){S[S.Num=0]="Num",S[S.Str=1]="Str"})(b||(t.Type=b={}));function x(S,k,E){if(S instanceof e.Name){let R=k===b.Num;return E?R?e._`"[" + ${S} + "]"`:e._`"['" + ${S} + "']"`:R?e._`"/" + ${S}`:e._`"/" + ${S}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return E?(0,e.getProperty)(S).toString():"/"+p(S)}t.getErrorPath=x;function w(S,k,E=S.opts.strictSchema){if(E){if(k=`strict mode: ${k}`,E===!0)throw Error(k);S.self.logger.warn(k)}}t.checkStrictMode=w}),Xi=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={data:new e.Name("data"),valCxt:new e.Name("valCxt"),instancePath:new e.Name("instancePath"),parentData:new e.Name("parentData"),parentDataProperty:new e.Name("parentDataProperty"),rootData:new e.Name("rootData"),dynamicAnchors:new e.Name("dynamicAnchors"),vErrors:new e.Name("vErrors"),errors:new e.Name("errors"),this:new e.Name("this"),self:new e.Name("self"),scope:new e.Name("scope"),json:new e.Name("json"),jsonPos:new e.Name("jsonPos"),jsonLen:new e.Name("jsonLen"),jsonPart:new e.Name("jsonPart")};t.default=r}),ry=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;var e=De(),r=rt(),n=Xi();t.keywordError={message:({keyword:g})=>e.str`must pass "${g}" keyword validation`},t.keyword$DataError={message:({keyword:g,schemaType:h})=>h?e.str`"${g}" keyword must be ${h} ($data)`:e.str`"${g}" keyword is invalid ($data)`};function s(g,h=t.keywordError,y,b){let{it:x}=g,{gen:w,compositeRule:S,allErrors:k}=x,E=p(g,h,y);b??(S||k)?c(w,E):l(x,e._`[${E}]`)}t.reportError=s;function i(g,h=t.keywordError,y){let{it:b}=g,{gen:x,compositeRule:w,allErrors:S}=b,k=p(g,h,y);c(x,k),!(w||S)&&l(b,n.default.vErrors)}t.reportExtraError=i;function a(g,h){g.assign(n.default.errors,h),g.if(e._`${n.default.vErrors} !== null`,()=>g.if(h,()=>g.assign(e._`${n.default.vErrors}.length`,h),()=>g.assign(n.default.vErrors,null)))}t.resetErrorsCount=a;function o({gen:g,keyword:h,schemaValue:y,data:b,errsCount:x,it:w}){if(x===void 0)throw Error("ajv implementation error");let S=g.name("err");g.forRange("i",x,n.default.errors,k=>{g.const(S,e._`${n.default.vErrors}[${k}]`),g.if(e._`${S}.instancePath === undefined`,()=>g.assign(e._`${S}.instancePath`,(0,e.strConcat)(n.default.instancePath,w.errorPath))),g.assign(e._`${S}.schemaPath`,e.str`${w.errSchemaPath}/${h}`),w.opts.verbose&&(g.assign(e._`${S}.schema`,y),g.assign(e._`${S}.data`,b))})}t.extendErrors=o;function c(g,h){let y=g.const("err",h);g.if(e._`${n.default.vErrors} === null`,()=>g.assign(n.default.vErrors,e._`[${y}]`),e._`${n.default.vErrors}.push(${y})`),g.code(e._`${n.default.errors}++`)}function l(g,h){let{gen:y,validateName:b,schemaEnv:x}=g;x.$async?y.throw(e._`new ${g.ValidationError}(${h})`):(y.assign(e._`${b}.errors`,h),y.return(!1))}var u={keyword:new e.Name("keyword"),schemaPath:new e.Name("schemaPath"),params:new e.Name("params"),propertyName:new e.Name("propertyName"),message:new e.Name("message"),schema:new e.Name("schema"),parentSchema:new e.Name("parentSchema")};function p(g,h,y){let{createErrors:b}=g.it;return b===!1?e._`{}`:d(g,h,y)}function d(g,h,y={}){let{gen:b,it:x}=g,w=[m(x,y),f(g,y)];return v(g,h,w),b.object(...w)}function m({errorPath:g},{instancePath:h}){let y=h?e.str`${g}${(0,r.getErrorPath)(h,r.Type.Str)}`:g;return[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,y)]}function f({keyword:g,it:{errSchemaPath:h}},{schemaPath:y,parentSchema:b}){let x=b?h:e.str`${h}/${g}`;return y&&(x=e.str`${x}${(0,r.getErrorPath)(y,r.Type.Str)}`),[u.schemaPath,x]}function v(g,{params:h,message:y},b){let{keyword:x,data:w,schemaValue:S,it:k}=g,{opts:E,propertyName:R,topSchemaRef:O,schemaPath:C}=k;b.push([u.keyword,x],[u.params,typeof h=="function"?h(g):h||e._`{}`]),E.messages&&b.push([u.message,typeof y=="function"?y(g):y]),E.verbose&&b.push([u.schema,S],[u.parentSchema,e._`${O}${C}`],[n.default.data,w]),R&&b.push([u.propertyName,R])}}),Sfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;var e=ry(),r=De(),n=Xi(),s={message:"boolean schema is false"};function i(c){let{gen:l,schema:u,validateName:p}=c;u===!1?o(c,!1):typeof u=="object"&&u.$async===!0?l.return(n.default.data):(l.assign(r._`${p}.errors`,null),l.return(!0))}t.topBoolOrEmptySchema=i;function a(c,l){let{gen:u,schema:p}=c;p===!1?(u.var(l,!1),o(c)):u.var(l,!0)}t.boolOrEmptySchema=a;function o(c,l){let{gen:u,data:p}=c,d={gen:u,keyword:"false schema",data:p,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:c};(0,e.reportError)(d,s,void 0,l)}}),IF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRules=t.isJSONType=void 0;var e=["string","number","integer","boolean","null","object","array"],r=new Set(e);function n(i){return typeof i=="string"&&r.has(i)}t.isJSONType=n;function s(){let i={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...i,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},i.number,i.string,i.array,i.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=s}),CF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function e({schema:s,self:i},a){let o=i.RULES.types[a];return o&&o!==!0&&r(s,o)}t.schemaHasRulesForType=e;function r(s,i){return i.rules.some(a=>n(s,a))}t.shouldUseGroup=r;function n(s,i){var a;return s[i.keyword]!==void 0||((a=i.definition.implements)===null||a===void 0?void 0:a.some(o=>s[o]!==void 0))}t.shouldUseRule=n}),fv=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;var e=IF(),r=CF(),n=ry(),s=De(),i=rt(),a;(function(b){b[b.Correct=0]="Correct",b[b.Wrong=1]="Wrong"})(a||(t.DataType=a={}));function o(b){let x=c(b.type);if(x.includes("null")){if(b.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!x.length&&b.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');b.nullable===!0&&x.push("null")}return x}t.getSchemaTypes=o;function c(b){let x=Array.isArray(b)?b:b?[b]:[];if(x.every(e.isJSONType))return x;throw Error("type must be JSONType or JSONType[]: "+x.join(","))}t.getJSONTypes=c;function l(b,x){let{gen:w,data:S,opts:k}=b,E=p(x,k.coerceTypes),R=x.length>0&&!(E.length===0&&x.length===1&&(0,r.schemaHasRulesForType)(b,x[0]));if(R){let O=v(x,S,k.strictNumbers,a.Wrong);w.if(O,()=>{E.length?d(b,x,E):h(b)})}return R}t.coerceAndCheckDataType=l;var u=new Set(["string","number","integer","boolean","null"]);function p(b,x){return x?b.filter(w=>u.has(w)||x==="array"&&w==="array"):[]}function d(b,x,w){let{gen:S,data:k,opts:E}=b,R=S.let("dataType",s._`typeof ${k}`),O=S.let("coerced",s._`undefined`);E.coerceTypes==="array"&&S.if(s._`${R} == 'object' && Array.isArray(${k}) && ${k}.length == 1`,()=>S.assign(k,s._`${k}[0]`).assign(R,s._`typeof ${k}`).if(v(x,k,E.strictNumbers),()=>S.assign(O,k))),S.if(s._`${O} !== undefined`);for(let $ of w)(u.has($)||$==="array"&&E.coerceTypes==="array")&&C($);S.else(),h(b),S.endIf(),S.if(s._`${O} !== undefined`,()=>{S.assign(k,O),m(b,O)});function C($){switch($){case"string":S.elseIf(s._`${R} == "number" || ${R} == "boolean"`).assign(O,s._`"" + ${k}`).elseIf(s._`${k} === null`).assign(O,s._`""`);return;case"number":S.elseIf(s._`${R} == "boolean" || ${k} === null || (${R} == "string" && ${k} && ${k} == +${k})`).assign(O,s._`+${k}`);return;case"integer":S.elseIf(s._`${R} === "boolean" || ${k} === null || (${R} === "string" && ${k} && ${k} == +${k} && !(${k} % 1))`).assign(O,s._`+${k}`);return;case"boolean":S.elseIf(s._`${k} === "false" || ${k} === 0 || ${k} === null`).assign(O,!1).elseIf(s._`${k} === "true" || ${k} === 1`).assign(O,!0);return;case"null":S.elseIf(s._`${k} === "" || ${k} === 0 || ${k} === false`),S.assign(O,null);return;case"array":S.elseIf(s._`${R} === "string" || ${R} === "number" || ${R} === "boolean" || ${k} === null`).assign(O,s._`[${k}]`)}}}function m({gen:b,parentData:x,parentDataProperty:w},S){b.if(s._`${x} !== undefined`,()=>b.assign(s._`${x}[${w}]`,S))}function f(b,x,w,S=a.Correct){let k=S===a.Correct?s.operators.EQ:s.operators.NEQ,E;switch(b){case"null":return s._`${x} ${k} null`;case"array":E=s._`Array.isArray(${x})`;break;case"object":E=s._`${x} && typeof ${x} == "object" && !Array.isArray(${x})`;break;case"integer":E=R(s._`!(${x} % 1) && !isNaN(${x})`);break;case"number":E=R();break;default:return s._`typeof ${x} ${k} ${b}`}return S===a.Correct?E:(0,s.not)(E);function R(O=s.nil){return(0,s.and)(s._`typeof ${x} == "number"`,O,w?s._`isFinite(${x})`:s.nil)}}t.checkDataType=f;function v(b,x,w,S){if(b.length===1)return f(b[0],x,w,S);let k,E=(0,i.toHash)(b);if(E.array&&E.object){let R=s._`typeof ${x} != "object"`;k=E.null?R:s._`!${x} || ${R}`,delete E.null,delete E.array,delete E.object}else k=s.nil;E.number&&delete E.integer;for(let R in E)k=(0,s.and)(k,f(R,x,w,S));return k}t.checkDataTypes=v;var g={message:({schema:b})=>`must be ${b}`,params:({schema:b,schemaValue:x})=>typeof b=="string"?s._`{type: ${b}}`:s._`{type: ${x}}`};function h(b){let x=y(b);(0,n.reportError)(x,g)}t.reportTypeError=h;function y(b){let{gen:x,data:w,schema:S}=b,k=(0,i.schemaRefOrVal)(b,S,"type");return{gen:x,keyword:"type",data:w,schema:S.type,schemaCode:k,schemaValue:k,parentSchema:S,params:{},it:b}}}),kfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;var e=De(),r=rt();function n(i,a){let{properties:o,items:c}=i.schema;if(a==="object"&&o)for(let l in o)s(i,l,o[l].default);else a==="array"&&Array.isArray(c)&&c.forEach((l,u)=>s(i,u,l.default))}t.assignDefaults=n;function s(i,a,o){let{gen:c,compositeRule:l,data:u,opts:p}=i;if(o===void 0)return;let d=e._`${u}${(0,e.getProperty)(a)}`;if(l){(0,r.checkStrictMode)(i,`default is ignored for: ${d}`);return}let m=e._`${d} === undefined`;p.useDefaults==="empty"&&(m=e._`${m} || ${d} === null || ${d} === ""`),c.if(m,e._`${d} = ${(0,e.stringify)(o)}`)}}),xs=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;var e=De(),r=rt(),n=Xi(),s=rt();function i(b,x){let{gen:w,data:S,it:k}=b;w.if(p(w,S,x,k.opts.ownProperties),()=>{b.setParams({missingProperty:e._`${x}`},!0),b.error()})}t.checkReportMissingProp=i;function a({gen:b,data:x,it:{opts:w}},S,k){return(0,e.or)(...S.map(E=>(0,e.and)(p(b,x,E,w.ownProperties),e._`${k} = ${E}`)))}t.checkMissingProp=a;function o(b,x){b.setParams({missingProperty:x},!0),b.error()}t.reportMissingProp=o;function c(b){return b.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:e._`Object.prototype.hasOwnProperty`})}t.hasPropFunc=c;function l(b,x,w){return e._`${c(b)}.call(${x}, ${w})`}t.isOwnProperty=l;function u(b,x,w,S){let k=e._`${x}${(0,e.getProperty)(w)} !== undefined`;return S?e._`${k} && ${l(b,x,w)}`:k}t.propertyInData=u;function p(b,x,w,S){let k=e._`${x}${(0,e.getProperty)(w)} === undefined`;return S?(0,e.or)(k,(0,e.not)(l(b,x,w))):k}t.noPropertyInData=p;function d(b){return b?Object.keys(b).filter(x=>x!=="__proto__"):[]}t.allSchemaProperties=d;function m(b,x){return d(x).filter(w=>!(0,r.alwaysValidSchema)(b,x[w]))}t.schemaProperties=m;function f({schemaCode:b,data:x,it:{gen:w,topSchemaRef:S,schemaPath:k,errorPath:E},it:R},O,C,$){let q=$?e._`${b}, ${x}, ${S}${k}`:x,B=[[n.default.instancePath,(0,e.strConcat)(n.default.instancePath,E)],[n.default.parentData,R.parentData],[n.default.parentDataProperty,R.parentDataProperty],[n.default.rootData,n.default.rootData]];R.opts.dynamicRef&&B.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);let re=e._`${q}, ${w.object(...B)}`;return C!==e.nil?e._`${O}.call(${C}, ${re})`:e._`${O}(${re})`}t.callValidateCode=f;var v=e._`new RegExp`;function g({gen:b,it:{opts:x}},w){let S=x.unicodeRegExp?"u":"",{regExp:k}=x.code,E=k(w,S);return b.scopeValue("pattern",{key:E.toString(),ref:E,code:e._`${k.code==="new RegExp"?v:(0,s.useFunc)(b,k)}(${w}, ${S})`})}t.usePattern=g;function h(b){let{gen:x,data:w,keyword:S,it:k}=b,E=x.name("valid");if(k.allErrors){let O=x.let("valid",!0);return R(()=>x.assign(O,!1)),O}return x.var(E,!0),R(()=>x.break()),E;function R(O){let C=x.const("len",e._`${w}.length`);x.forRange("i",0,C,$=>{b.subschema({keyword:S,dataProp:$,dataPropType:r.Type.Num},E),x.if((0,e.not)(E),O)})}}t.validateArray=h;function y(b){let{gen:x,schema:w,keyword:S,it:k}=b;if(!Array.isArray(w))throw Error("ajv implementation error");if(w.some(O=>(0,r.alwaysValidSchema)(k,O))&&!k.opts.unevaluated)return;let E=x.let("valid",!1),R=x.name("_valid");x.block(()=>w.forEach((O,C)=>{let $=b.subschema({keyword:S,schemaProp:C,compositeRule:!0},R);x.assign(E,e._`${E} || ${R}`),!b.mergeValidEvaluated($,R)&&x.if((0,e.not)(E))})),b.result(E,()=>b.reset(),()=>b.error(!0))}t.validateUnion=y}),Efe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;var e=De(),r=Xi(),n=xs(),s=ry();function i(m,f){let{gen:v,keyword:g,schema:h,parentSchema:y,it:b}=m,x=f.macro.call(b.self,h,y,b),w=u(v,g,x);b.opts.validateSchema!==!1&&b.self.validateSchema(x,!0);let S=v.name("valid");m.subschema({schema:x,schemaPath:e.nil,errSchemaPath:`${b.errSchemaPath}/${g}`,topSchemaRef:w,compositeRule:!0},S),m.pass(S,()=>m.error(!0))}t.macroKeywordCode=i;function a(m,f){var v;let{gen:g,keyword:h,schema:y,parentSchema:b,$data:x,it:w}=m;l(w,f);let S=!x&&f.compile?f.compile.call(w.self,y,b,w):f.validate,k=u(g,h,S),E=g.let("valid");m.block$data(E,R),m.ok((v=f.valid)!==null&&v!==void 0?v:E);function R(){if(f.errors===!1)$(),f.modifying&&o(m),q(()=>m.error());else{let B=f.async?O():C();f.modifying&&o(m),q(()=>c(m,B))}}function O(){let B=g.let("ruleErrs",null);return g.try(()=>$(e._`await `),re=>g.assign(E,!1).if(e._`${re} instanceof ${w.ValidationError}`,()=>g.assign(B,e._`${re}.errors`),()=>g.throw(re))),B}function C(){let B=e._`${k}.errors`;return g.assign(B,null),$(e.nil),B}function $(B=f.async?e._`await `:e.nil){let re=w.opts.passContext?r.default.this:r.default.self,G=!("compile"in f&&!x||f.schema===!1);g.assign(E,e._`${B}${(0,n.callValidateCode)(m,k,re,G)}`,f.modifying)}function q(B){var re;g.if((0,e.not)((re=f.valid)!==null&&re!==void 0?re:E),B)}}t.funcKeywordCode=a;function o(m){let{gen:f,data:v,it:g}=m;f.if(g.parentData,()=>f.assign(v,e._`${g.parentData}[${g.parentDataProperty}]`))}function c(m,f){let{gen:v}=m;v.if(e._`Array.isArray(${f})`,()=>{v.assign(r.default.vErrors,e._`${r.default.vErrors} === null ? ${f} : ${r.default.vErrors}.concat(${f})`).assign(r.default.errors,e._`${r.default.vErrors}.length`),(0,s.extendErrors)(m)},()=>m.error())}function l({schemaEnv:m},f){if(f.async&&!m.$async)throw Error("async keyword in sync schema")}function u(m,f,v){if(v===void 0)throw Error(`keyword "${f}" failed to compile`);return m.scopeValue("keyword",typeof v=="function"?{ref:v}:{ref:v,code:(0,e.stringify)(v)})}function p(m,f,v=!1){return!f.length||f.some(g=>g==="array"?Array.isArray(m):g==="object"?m&&typeof m=="object"&&!Array.isArray(m):typeof m==g||v&&typeof m>"u")}t.validSchemaType=p;function d({schema:m,opts:f,self:v,errSchemaPath:g},h,y){if(Array.isArray(h.keyword)?!h.keyword.includes(y):h.keyword!==y)throw Error("ajv implementation error");let b=h.dependencies;if(b?.some(x=>!Object.prototype.hasOwnProperty.call(m,x)))throw Error(`parent schema must have dependencies of ${y}: ${b.join(",")}`);if(h.validateSchema&&!h.validateSchema(m[y])){let x=`keyword "${y}" value is invalid at path "${g}": `+v.errorsText(h.validateSchema.errors);if(f.validateSchema==="log")v.logger.error(x);else throw Error(x)}}t.validateKeywordUsage=d}),Tfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;var e=De(),r=rt();function n(a,{keyword:o,schemaProp:c,schema:l,schemaPath:u,errSchemaPath:p,topSchemaRef:d}){if(o!==void 0&&l!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(o!==void 0){let m=a.schema[o];return c===void 0?{schema:m,schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}`,errSchemaPath:`${a.errSchemaPath}/${o}`}:{schema:m[c],schemaPath:e._`${a.schemaPath}${(0,e.getProperty)(o)}${(0,e.getProperty)(c)}`,errSchemaPath:`${a.errSchemaPath}/${o}/${(0,r.escapeFragment)(c)}`}}if(l!==void 0){if(u===void 0||p===void 0||d===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:l,schemaPath:u,topSchemaRef:d,errSchemaPath:p}}throw Error('either "keyword" or "schema" must be passed')}t.getSubschema=n;function s(a,o,{dataProp:c,dataPropType:l,data:u,dataTypes:p,propertyName:d}){if(u!==void 0&&c!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:m}=o;if(c!==void 0){let{errorPath:v,dataPathArr:g,opts:h}=o,y=m.let("data",e._`${o.data}${(0,e.getProperty)(c)}`,!0);f(y),a.errorPath=e.str`${v}${(0,r.getErrorPath)(c,l,h.jsPropertySyntax)}`,a.parentDataProperty=e._`${c}`,a.dataPathArr=[...g,a.parentDataProperty]}if(u!==void 0){let v=u instanceof e.Name?u:m.let("data",u,!0);f(v),d!==void 0&&(a.propertyName=d)}p&&(a.dataTypes=p);function f(v){a.data=v,a.dataLevel=o.dataLevel+1,a.dataTypes=[],o.definedProperties=new Set,a.parentData=o.data,a.dataNames=[...o.dataNames,v]}}t.extendSubschemaData=s;function i(a,{jtdDiscriminator:o,jtdMetadata:c,compositeRule:l,createErrors:u,allErrors:p}){l!==void 0&&(a.compositeRule=l),u!==void 0&&(a.createErrors=u),p!==void 0&&(a.allErrors=p),a.jtdDiscriminator=o,a.jtdMetadata=c}t.extendSubschemaMode=i}),OF=ne((t,e)=>{e.exports=function r(n,s){if(n===s)return!0;if(n&&s&&typeof n=="object"&&typeof s=="object"){if(n.constructor!==s.constructor)return!1;var i,a,o;if(Array.isArray(n)){if(i=n.length,i!=s.length)return!1;for(a=i;a--!==0;)if(!r(n[a],s[a]))return!1;return!0}if(n.constructor===RegExp)return n.source===s.source&&n.flags===s.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===s.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===s.toString();if(o=Object.keys(n),i=o.length,i!==Object.keys(s).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(s,o[a]))return!1;for(a=i;a--!==0;){var c=o[a];if(!r(n[c],s[c]))return!1}return!0}return n!==n&&s!==s}}),Rfe=ne((t,e)=>{var r=e.exports=function(i,a,o){typeof a=="function"&&(o=a,a={}),o=a.cb||o;var c=typeof o=="function"?o:o.pre||function(){},l=o.post||function(){};n(a,c,l,i,"",i)};r.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},r.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},r.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},r.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function n(i,a,o,c,l,u,p,d,m,f){if(c&&typeof c=="object"&&!Array.isArray(c)){a(c,l,u,p,d,m,f);for(var v in c){var g=c[v];if(Array.isArray(g)){if(v in r.arrayKeywords)for(var h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;var e=rt(),r=OF(),n=Rfe(),s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function i(g,h=!0){return typeof g=="boolean"?!0:h===!0?!o(g):h?c(g)<=h:!1}t.inlineRef=i;var a=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function o(g){for(let h in g){if(a.has(h))return!0;let y=g[h];if(Array.isArray(y)&&y.some(o)||typeof y=="object"&&o(y))return!0}return!1}function c(g){let h=0;for(let y in g){if(y==="$ref")return 1/0;if(h++,!s.has(y)&&(typeof g[y]=="object"&&(0,e.eachItem)(g[y],b=>h+=c(b)),h===1/0))return 1/0}return h}function l(g,h="",y){y!==!1&&(h=d(h));let b=g.parse(h);return u(g,b)}t.getFullPath=l;function u(g,h){return g.serialize(h).split("#")[0]+"#"}t._getFullPath=u;var p=/#\/?$/;function d(g){return g?g.replace(p,""):""}t.normalizeId=d;function m(g,h,y){return y=d(y),g.resolve(h,y)}t.resolveUrl=m;var f=/^[a-z_][-a-z0-9._]*$/i;function v(g,h){if(typeof g=="boolean")return{};let{schemaId:y,uriResolver:b}=this.opts,x=d(g[y]||h),w={"":x},S=l(b,x,!1),k={},E=new Set;return n(g,{allKeys:!0},(C,$,q,B)=>{if(B===void 0)return;let re=S+$,G=w[B];typeof C[y]=="string"&&(G=yt.call(this,C[y])),Cr.call(this,C.$anchor),Cr.call(this,C.$dynamicAnchor),w[$]=G;function yt(Fe){let K=this.opts.uriResolver.resolve;if(Fe=d(G?K(G,Fe):Fe),E.has(Fe))throw O(Fe);E.add(Fe);let j=this.refs[Fe];return typeof j=="string"&&(j=this.refs[j]),typeof j=="object"?R(C,j.schema,Fe):Fe!==d(re)&&(Fe[0]==="#"?(R(C,k[Fe],Fe),k[Fe]=C):this.refs[Fe]=re),Fe}function Cr(Fe){if(typeof Fe=="string"){if(!f.test(Fe))throw Error(`invalid anchor "${Fe}"`);yt.call(this,`#${Fe}`)}}}),k;function R(C,$,q){if($!==void 0&&!r(C,$))throw O(q)}function O(C){return Error(`reference "${C}" resolves to more than one schema`)}}t.getSchemaRefs=v}),sy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;var e=Sfe(),r=fv(),n=CF(),s=fv(),i=kfe(),a=Efe(),o=Tfe(),c=De(),l=Xi(),u=ny(),p=rt(),d=ry();function m(N){if(S(N)&&(E(N),w(N))){h(N);return}f(N,()=>(0,e.topBoolOrEmptySchema)(N))}t.validateFunctionCode=m;function f({gen:N,validateName:z,schema:Z,schemaEnv:Q,opts:ge},Le){ge.code.es5?N.func(z,c._`${l.default.data}, ${l.default.valCxt}`,Q.$async,()=>{N.code(c._`"use strict"; ${b(Z,ge)}`),g(N,ge),N.code(Le)}):N.func(z,c._`${l.default.data}, ${v(ge)}`,Q.$async,()=>N.code(b(Z,ge)).code(Le))}function v(N){return c._`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${N.dynamicRef?c._`, ${l.default.dynamicAnchors}={}`:c.nil}}={}`}function g(N,z){N.if(l.default.valCxt,()=>{N.var(l.default.instancePath,c._`${l.default.valCxt}.${l.default.instancePath}`),N.var(l.default.parentData,c._`${l.default.valCxt}.${l.default.parentData}`),N.var(l.default.parentDataProperty,c._`${l.default.valCxt}.${l.default.parentDataProperty}`),N.var(l.default.rootData,c._`${l.default.valCxt}.${l.default.rootData}`),z.dynamicRef&&N.var(l.default.dynamicAnchors,c._`${l.default.valCxt}.${l.default.dynamicAnchors}`)},()=>{N.var(l.default.instancePath,c._`""`),N.var(l.default.parentData,c._`undefined`),N.var(l.default.parentDataProperty,c._`undefined`),N.var(l.default.rootData,l.default.data),z.dynamicRef&&N.var(l.default.dynamicAnchors,c._`{}`)})}function h(N){let{schema:z,opts:Z,gen:Q}=N;f(N,()=>{Z.$comment&&z.$comment&&B(N),C(N),Q.let(l.default.vErrors,null),Q.let(l.default.errors,0),Z.unevaluated&&y(N),R(N),re(N)})}function y(N){let{gen:z,validateName:Z}=N;N.evaluated=z.const("evaluated",c._`${Z}.evaluated`),z.if(c._`${N.evaluated}.dynamicProps`,()=>z.assign(c._`${N.evaluated}.props`,c._`undefined`)),z.if(c._`${N.evaluated}.dynamicItems`,()=>z.assign(c._`${N.evaluated}.items`,c._`undefined`))}function b(N,z){let Z=typeof N=="object"&&N[z.schemaId];return Z&&(z.code.source||z.code.process)?c._`/*# sourceURL=${Z} */`:c.nil}function x(N,z){if(S(N)&&(E(N),w(N))){k(N,z);return}(0,e.boolOrEmptySchema)(N,z)}function w({schema:N,self:z}){if(typeof N=="boolean")return!N;for(let Z in N)if(z.RULES.all[Z])return!0;return!1}function S(N){return typeof N.schema!="boolean"}function k(N,z){let{schema:Z,gen:Q,opts:ge}=N;ge.$comment&&Z.$comment&&B(N),$(N),q(N);let Le=Q.const("_errs",l.default.errors);R(N,Le),Q.var(z,c._`${Le} === ${l.default.errors}`)}function E(N){(0,p.checkUnknownRules)(N),O(N)}function R(N,z){if(N.opts.jtd)return yt(N,[],!1,z);let Z=(0,r.getSchemaTypes)(N.schema),Q=(0,r.coerceAndCheckDataType)(N,Z);yt(N,Z,!Q,z)}function O(N){let{schema:z,errSchemaPath:Z,opts:Q,self:ge}=N;z.$ref&&Q.ignoreKeywordsWithRef&&(0,p.schemaHasRulesButRef)(z,ge.RULES)&&ge.logger.warn(`$ref: keywords ignored in schema at path "${Z}"`)}function C(N){let{schema:z,opts:Z}=N;z.default!==void 0&&Z.useDefaults&&Z.strictSchema&&(0,p.checkStrictMode)(N,"default is ignored in the schema root")}function $(N){let z=N.schema[N.opts.schemaId];z&&(N.baseId=(0,u.resolveUrl)(N.opts.uriResolver,N.baseId,z))}function q(N){if(N.schema.$async&&!N.schemaEnv.$async)throw Error("async schema in sync schema")}function B({gen:N,schemaEnv:z,schema:Z,errSchemaPath:Q,opts:ge}){let Le=Z.$comment;if(ge.$comment===!0)N.code(c._`${l.default.self}.logger.log(${Le})`);else if(typeof ge.$comment=="function"){let yr=c.str`${Q}/$comment`,Xn=N.scopeValue("root",{ref:z.root});N.code(c._`${l.default.self}.opts.$comment(${Le}, ${yr}, ${Xn}.schema)`)}}function re(N){let{gen:z,schemaEnv:Z,validateName:Q,ValidationError:ge,opts:Le}=N;Z.$async?z.if(c._`${l.default.errors} === 0`,()=>z.return(l.default.data),()=>z.throw(c._`new ${ge}(${l.default.vErrors})`)):(z.assign(c._`${Q}.errors`,l.default.vErrors),Le.unevaluated&&G(N),z.return(c._`${l.default.errors} === 0`))}function G({gen:N,evaluated:z,props:Z,items:Q}){Z instanceof c.Name&&N.assign(c._`${z}.props`,Z),Q instanceof c.Name&&N.assign(c._`${z}.items`,Q)}function yt(N,z,Z,Q){let{gen:ge,schema:Le,data:yr,allErrors:Xn,opts:en,self:tn}=N,{RULES:br}=tn;if(Le.$ref&&(en.ignoreKeywordsWithRef||!(0,p.schemaHasRulesButRef)(Le,br))){ge.block(()=>he(N,"$ref",br.all.$ref.definition));return}en.jtd||Fe(N,z),ge.block(()=>{for(let On of br.rules)yo(On);yo(br.post)});function yo(On){(0,n.shouldUseGroup)(Le,On)&&(On.type?(ge.if((0,s.checkDataType)(On.type,yr,en.strictNumbers)),Cr(N,On),z.length===1&&z[0]===On.type&&Z&&(ge.else(),(0,s.reportTypeError)(N)),ge.endIf()):Cr(N,On),Xn||ge.if(c._`${l.default.errors} === ${Q||0}`))}}function Cr(N,z){let{gen:Z,schema:Q,opts:{useDefaults:ge}}=N;ge&&(0,i.assignDefaults)(N,z.type),Z.block(()=>{for(let Le of z.rules)(0,n.shouldUseRule)(Q,Le)&&he(N,Le.keyword,Le.definition,z.type)})}function Fe(N,z){N.schemaEnv.meta||!N.opts.strictTypes||(K(N,z),!N.opts.allowUnionTypes&&j(N,z),W(N,N.dataTypes))}function K(N,z){if(z.length){if(!N.dataTypes.length){N.dataTypes=z;return}z.forEach(Z=>{T(N.dataTypes,Z)||H(N,`type "${Z}" not allowed by context "${N.dataTypes.join(",")}"`)}),I(N,z)}}function j(N,z){z.length>1&&!(z.length===2&&z.includes("null"))&&H(N,"use allowUnionTypes to allow union type keyword")}function W(N,z){let Z=N.self.RULES.all;for(let Q in Z){let ge=Z[Q];if(typeof ge=="object"&&(0,n.shouldUseRule)(N.schema,ge)){let{type:Le}=ge.definition;Le.length&&!Le.some(yr=>M(z,yr))&&H(N,`missing type "${Le.join(",")}" for keyword "${Q}"`)}}}function M(N,z){return N.includes(z)||z==="number"&&N.includes("integer")}function T(N,z){return N.includes(z)||z==="integer"&&N.includes("number")}function I(N,z){let Z=[];for(let Q of N.dataTypes)T(z,Q)?Z.push(Q):z.includes("integer")&&Q==="number"&&Z.push("integer");N.dataTypes=Z}function H(N,z){let Z=N.schemaEnv.baseId+N.errSchemaPath;z+=` at "${Z}" (strictTypes)`,(0,p.checkStrictMode)(N,z,N.opts.strictTypes)}class pe{constructor(z,Z,Q){if((0,a.validateKeywordUsage)(z,Z,Q),this.gen=z.gen,this.allErrors=z.allErrors,this.keyword=Q,this.data=z.data,this.schema=z.schema[Q],this.$data=Z.$data&&z.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,p.schemaRefOrVal)(z,this.schema,Q,this.$data),this.schemaType=Z.schemaType,this.parentSchema=z.schema,this.params={},this.it=z,this.def=Z,this.$data)this.schemaCode=z.gen.const("vSchema",Jt(this.$data,z));else if(this.schemaCode=this.schemaValue,!(0,a.validSchemaType)(this.schema,Z.schemaType,Z.allowUndefined))throw Error(`${Q} value must be ${JSON.stringify(Z.schemaType)}`);("code"in Z?Z.trackErrors:Z.errors!==!1)&&(this.errsCount=z.gen.const("_errs",l.default.errors))}result(z,Z,Q){this.failResult((0,c.not)(z),Z,Q)}failResult(z,Z,Q){this.gen.if(z),Q?Q():this.error(),Z?(this.gen.else(),Z(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(z,Z){this.failResult((0,c.not)(z),void 0,Z)}fail(z){if(z===void 0){this.error(),!this.allErrors&&this.gen.if(!1);return}this.gen.if(z),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(z){if(!this.$data)return this.fail(z);let{schemaCode:Z}=this;this.fail(c._`${Z} !== undefined && (${(0,c.or)(this.invalid$data(),z)})`)}error(z,Z,Q){if(Z){this.setParams(Z),this._error(z,Q),this.setParams({});return}this._error(z,Q)}_error(z,Z){(z?d.reportExtraError:d.reportError)(this,this.def.error,Z)}$dataError(){(0,d.reportError)(this,this.def.$dataError||d.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,d.resetErrorsCount)(this.gen,this.errsCount)}ok(z){this.allErrors||this.gen.if(z)}setParams(z,Z){Z?Object.assign(this.params,z):this.params=z}block$data(z,Z,Q=c.nil){this.gen.block(()=>{this.check$data(z,Q),Z()})}check$data(z=c.nil,Z=c.nil){if(!this.$data)return;let{gen:Q,schemaCode:ge,schemaType:Le,def:yr}=this;Q.if((0,c.or)(c._`${ge} === undefined`,Z)),z!==c.nil&&Q.assign(z,!0),(Le.length||yr.validateSchema)&&(Q.elseIf(this.invalid$data()),this.$dataError(),z!==c.nil&&Q.assign(z,!1)),Q.else()}invalid$data(){let{gen:z,schemaCode:Z,schemaType:Q,def:ge,it:Le}=this;return(0,c.or)(yr(),Xn());function yr(){if(Q.length){if(!(Z instanceof c.Name))throw Error("ajv implementation error");let en=Array.isArray(Q)?Q:[Q];return c._`${(0,s.checkDataTypes)(en,Z,Le.opts.strictNumbers,s.DataType.Wrong)}`}return c.nil}function Xn(){if(ge.validateSchema){let en=z.scopeValue("validate$data",{ref:ge.validateSchema});return c._`!${en}(${Z})`}return c.nil}}subschema(z,Z){let Q=(0,o.getSubschema)(this.it,z);(0,o.extendSubschemaData)(Q,this.it,z),(0,o.extendSubschemaMode)(Q,z);let ge={...this.it,...Q,items:void 0,props:void 0};return x(ge,Z),ge}mergeEvaluated(z,Z){let{it:Q,gen:ge}=this;Q.opts.unevaluated&&(Q.props!==!0&&z.props!==void 0&&(Q.props=p.mergeEvaluated.props(ge,z.props,Q.props,Z)),Q.items!==!0&&z.items!==void 0&&(Q.items=p.mergeEvaluated.items(ge,z.items,Q.items,Z)))}mergeValidEvaluated(z,Z){let{it:Q,gen:ge}=this;if(Q.opts.unevaluated&&(Q.props!==!0||Q.items!==!0))return ge.if(Z,()=>this.mergeEvaluated(z,c.Name)),!0}}t.KeywordCxt=pe;function he(N,z,Z,Q){let ge=new pe(N,Z,z);"code"in Z?Z.code(ge,Q):ge.$data&&Z.validate?(0,a.funcKeywordCode)(ge,Z):"macro"in Z?(0,a.macroKeywordCode)(ge,Z):(Z.compile||Z.validate)&&(0,a.funcKeywordCode)(ge,Z)}var st=/^\/(?:[^~]|~0|~1)*$/,Ye=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function Jt(N,{dataLevel:z,dataNames:Z,dataPathArr:Q}){let ge,Le;if(N==="")return l.default.rootData;if(N[0]==="/"){if(!st.test(N))throw Error(`Invalid JSON-pointer: ${N}`);ge=N,Le=l.default.rootData}else{let tn=Ye.exec(N);if(!tn)throw Error(`Invalid JSON-pointer: ${N}`);let br=+tn[1];if(ge=tn[2],ge==="#"){if(br>=z)throw Error(en("property/index",br));return Q[z-br]}if(br>z)throw Error(en("data",br));if(Le=Z[z-br],!ge)return Le}let yr=Le,Xn=ge.split("/");for(let tn of Xn)tn&&(Le=c._`${Le}${(0,c.getProperty)((0,p.unescapeJsonPointer)(tn))}`,yr=c._`${yr} && ${Le}`);return yr;function en(tn,br){return`Cannot access ${tn} ${br} levels up, current level is ${z}`}}t.getData=Jt}),JE=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});class e extends Error{constructor(n){super("validation failed"),this.errors=n,this.ajv=this.validation=!0}}t.default=e}),iy=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=ny();class r extends Error{constructor(s,i,a,o){super(o||`can't resolve reference ${a} from id ${i}`),this.missingRef=(0,e.resolveUrl)(s,i,a),this.missingSchema=(0,e.normalizeId)((0,e.getFullPath)(s,this.missingRef))}}t.default=r}),QE=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;var e=De(),r=JE(),n=Xi(),s=ny(),i=rt(),a=sy();class o{constructor(y){var b;this.refs={},this.dynamicAnchors={};let x;typeof y.schema=="object"&&(x=y.schema),this.schema=y.schema,this.schemaId=y.schemaId,this.root=y.root||this,this.baseId=(b=y.baseId)!==null&&b!==void 0?b:(0,s.normalizeId)(x?.[y.schemaId||"$id"]),this.schemaPath=y.schemaPath,this.localRefs=y.localRefs,this.meta=y.meta,this.$async=x?.$async,this.refs={}}}t.SchemaEnv=o;function c(h){let y=p.call(this,h);if(y)return y;let b=(0,s.getFullPath)(this.opts.uriResolver,h.root.baseId),{es5:x,lines:w}=this.opts.code,{ownProperties:S}=this.opts,k=new e.CodeGen(this.scope,{es5:x,lines:w,ownProperties:S}),E;h.$async&&(E=k.scopeValue("Error",{ref:r.default,code:e._`require("ajv/dist/runtime/validation_error").default`}));let R=k.scopeName("validate");h.validateName=R;let O={gen:k,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[e.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:k.scopeValue("schema",this.opts.code.source===!0?{ref:h.schema,code:(0,e.stringify)(h.schema)}:{ref:h.schema}),validateName:R,ValidationError:E,schema:h.schema,schemaEnv:h,rootId:b,baseId:h.baseId||b,schemaPath:e.nil,errSchemaPath:h.schemaPath||(this.opts.jtd?"":"#"),errorPath:e._`""`,opts:this.opts,self:this},C;try{this._compilations.add(h),(0,a.validateFunctionCode)(O),k.optimize(this.opts.code.optimize);let $=k.toString();C=`${k.scopeRefs(n.default.scope)}return ${$}`,this.opts.code.process&&(C=this.opts.code.process(C,h));let q=Function(`${n.default.self}`,`${n.default.scope}`,C)(this,this.scope.get());if(this.scope.value(R,{ref:q}),q.errors=null,q.schema=h.schema,q.schemaEnv=h,h.$async&&(q.$async=!0),this.opts.code.source===!0&&(q.source={validateName:R,validateCode:$,scopeValues:k._values}),this.opts.unevaluated){let{props:B,items:re}=O;q.evaluated={props:B instanceof e.Name?void 0:B,items:re instanceof e.Name?void 0:re,dynamicProps:B instanceof e.Name,dynamicItems:re instanceof e.Name},q.source&&(q.source.evaluated=(0,e.stringify)(q.evaluated))}return h.validate=q,h}catch($){throw delete h.validate,delete h.validateName,C&&this.logger.error("Error compiling schema, function code:",C),$}finally{this._compilations.delete(h)}}t.compileSchema=c;function l(h,y,b){var x;b=(0,s.resolveUrl)(this.opts.uriResolver,y,b);let w=h.refs[b];if(w)return w;let S=m.call(this,h,b);if(S===void 0){let k=(x=h.localRefs)===null||x===void 0?void 0:x[b],{schemaId:E}=this.opts;k&&(S=new o({schema:k,schemaId:E,root:h,baseId:y}))}if(S!==void 0)return h.refs[b]=u.call(this,S)}t.resolveRef=l;function u(h){return(0,s.inlineRef)(h.schema,this.opts.inlineRefs)?h.schema:h.validate?h:c.call(this,h)}function p(h){for(let y of this._compilations)if(d(y,h))return y}t.getCompilingSchema=p;function d(h,y){return h.schema===y.schema&&h.root===y.root&&h.baseId===y.baseId}function m(h,y){let b;for(;typeof(b=this.refs[y])=="string";)y=b;return b||this.schemas[y]||f.call(this,h,y)}function f(h,y){let b=this.opts.uriResolver.parse(y),x=(0,s._getFullPath)(this.opts.uriResolver,b),w=(0,s.getFullPath)(this.opts.uriResolver,h.baseId,void 0);if(Object.keys(h.schema).length>0&&x===w)return g.call(this,b,h);let S=(0,s.normalizeId)(x),k=this.refs[S]||this.schemas[S];if(typeof k=="string"){let E=f.call(this,h,k);return typeof E?.schema!="object"?void 0:g.call(this,b,E)}if(typeof k?.schema=="object"){if(k.validate||c.call(this,k),S===(0,s.normalizeId)(y)){let{schema:E}=k,{schemaId:R}=this.opts,O=E[R];return O&&(w=(0,s.resolveUrl)(this.opts.uriResolver,w,O)),new o({schema:E,schemaId:R,root:h,baseId:w})}return g.call(this,b,k)}}t.resolveSchema=f;var v=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function g(h,{baseId:y,schema:b,root:x}){var w;if(((w=h.fragment)===null||w===void 0?void 0:w[0])!=="/")return;for(let E of h.fragment.slice(1).split("/")){if(typeof b=="boolean")return;let R=b[(0,i.unescapeFragment)(E)];if(R===void 0)return;b=R;let O=typeof b=="object"&&b[this.opts.schemaId];!v.has(E)&&O&&(y=(0,s.resolveUrl)(this.opts.uriResolver,y,O))}let S;if(typeof b!="boolean"&&b.$ref&&!(0,i.schemaHasRulesButRef)(b,this.RULES)){let E=(0,s.resolveUrl)(this.opts.uriResolver,y,b.$ref);S=f.call(this,x,E)}let{schemaId:k}=this.opts;if(S=S||new o({schema:b,schemaId:k,root:x,baseId:y}),S.schema!==S.root.schema)return S}}),Pfe=ne((t,e)=>{e.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}}),Ife=ne((t,e)=>{var r={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};e.exports={HEX:r}}),Cfe=ne((t,e)=>{var{HEX:r}=Ife(),n=/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u;function s(h){if(l(h,".")<3)return{host:h,isIPV4:!1};let y=h.match(n)||[],[b]=y;return b?{host:c(b,"."),isIPV4:!0}:{host:h,isIPV4:!1}}function i(h,y=!1){let b="",x=!0;for(let w of h){if(r[w]===void 0)return;w!=="0"&&x===!0&&(x=!1),x||(b+=w)}return y&&b.length===0&&(b="0"),b}function a(h){let y=0,b={error:!1,address:"",zone:""},x=[],w=[],S=!1,k=!1,E=!1;function R(){if(w.length){if(S===!1){let O=i(w);if(O!==void 0)x.push(O);else return b.error=!0,!1}w.length=0}return!0}for(let O=0;O7){b.error=!0;break}O-1>=0&&h[O-1]===":"&&(k=!0);continue}else if(C==="%"){if(!R())break;S=!0}else{w.push(C);continue}}return w.length&&(S?b.zone=w.join(""):E?x.push(w.join("")):x.push(i(w))),b.address=x.join(""),b}function o(h){if(l(h,":")<2)return{host:h,isIPV6:!1};let y=a(h);if(y.error)return{host:h,isIPV6:!1};{let{address:b,address:x}=y;return y.zone&&(b+="%"+y.zone,x+="%25"+y.zone),{host:b,escapedHost:x,isIPV6:!0}}}function c(h,y){let b="",x=!0,w=h.length;for(let S=0;S{var r=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function s(x){return typeof x.secure=="boolean"?x.secure:String(x.scheme).toLowerCase()==="wss"}function i(x){return x.host||(x.error=x.error||"HTTP URIs must have a host."),x}function a(x){let w=String(x.scheme).toLowerCase()==="https";return(x.port===(w?443:80)||x.port==="")&&(x.port=void 0),x.path||(x.path="/"),x}function o(x){return x.secure=s(x),x.resourceName=(x.path||"/")+(x.query?"?"+x.query:""),x.path=void 0,x.query=void 0,x}function c(x){if((x.port===(s(x)?443:80)||x.port==="")&&(x.port=void 0),typeof x.secure=="boolean"&&(x.scheme=x.secure?"wss":"ws",x.secure=void 0),x.resourceName){let[w,S]=x.resourceName.split("?");x.path=w&&w!=="/"?w:void 0,x.query=S,x.resourceName=void 0}return x.fragment=void 0,x}function l(x,w){if(!x.path)return x.error="URN can not be parsed",x;let S=x.path.match(n);if(S){let k=w.scheme||x.scheme||"urn";x.nid=S[1].toLowerCase(),x.nss=S[2];let E=`${k}:${w.nid||x.nid}`,R=b[E];x.path=void 0,R&&(x=R.parse(x,w))}else x.error=x.error||"URN can not be parsed.";return x}function u(x,w){let S=w.scheme||x.scheme||"urn",k=x.nid.toLowerCase(),E=`${S}:${w.nid||k}`,R=b[E];R&&(x=R.serialize(x,w));let O=x,C=x.nss;return O.path=`${k||w.nid}:${C}`,w.skipEscape=!0,O}function p(x,w){let S=x;return S.uuid=S.nss,S.nss=void 0,!w.tolerant&&(!S.uuid||!r.test(S.uuid))&&(S.error=S.error||"UUID is not valid."),S}function d(x){let w=x;return w.nss=(x.uuid||"").toLowerCase(),w}var m={scheme:"http",domainHost:!0,parse:i,serialize:a},f={scheme:"https",domainHost:m.domainHost,parse:i,serialize:a},v={scheme:"ws",domainHost:!0,parse:o,serialize:c},g={scheme:"wss",domainHost:v.domainHost,parse:v.parse,serialize:v.serialize},h={scheme:"urn",parse:l,serialize:u,skipNormalize:!0},y={scheme:"urn:uuid",parse:p,serialize:d,skipNormalize:!0},b={http:m,https:f,ws:v,wss:g,urn:h,"urn:uuid":y};e.exports=b}),jfe=ne((t,e)=>{var{normalizeIPv6:r,normalizeIPv4:n,removeDotSegments:s,recomposeAuthority:i,normalizeComponentEncoding:a}=Cfe(),o=Ofe();function c(y,b){return typeof y=="string"?y=d(g(y,b),b):typeof y=="object"&&(y=g(d(y,b),b)),y}function l(y,b,x){let w=Object.assign({scheme:"null"},x),S=u(g(y,w),g(b,w),w,!0);return d(S,{...w,skipEscape:!0})}function u(y,b,x,w){let S={};return w||(y=g(d(y,x),x),b=g(d(b,x),x)),x=x||{},!x.tolerant&&b.scheme?(S.scheme=b.scheme,S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.userinfo!==void 0||b.host!==void 0||b.port!==void 0?(S.userinfo=b.userinfo,S.host=b.host,S.port=b.port,S.path=s(b.path||""),S.query=b.query):(b.path?(b.path.charAt(0)==="/"?S.path=s(b.path):((y.userinfo!==void 0||y.host!==void 0||y.port!==void 0)&&!y.path?S.path="/"+b.path:y.path?S.path=y.path.slice(0,y.path.lastIndexOf("/")+1)+b.path:S.path=b.path,S.path=s(S.path)),S.query=b.query):(S.path=y.path,b.query!==void 0?S.query=b.query:S.query=y.query),S.userinfo=y.userinfo,S.host=y.host,S.port=y.port),S.scheme=y.scheme),S.fragment=b.fragment,S}function p(y,b,x){return typeof y=="string"?(y=unescape(y),y=d(a(g(y,x),!0),{...x,skipEscape:!0})):typeof y=="object"&&(y=d(a(y,!0),{...x,skipEscape:!0})),typeof b=="string"?(b=unescape(b),b=d(a(g(b,x),!0),{...x,skipEscape:!0})):typeof b=="object"&&(b=d(a(b,!0),{...x,skipEscape:!0})),y.toLowerCase()===b.toLowerCase()}function d(y,b){let x={host:y.host,scheme:y.scheme,userinfo:y.userinfo,port:y.port,path:y.path,query:y.query,nid:y.nid,nss:y.nss,uuid:y.uuid,fragment:y.fragment,reference:y.reference,resourceName:y.resourceName,secure:y.secure,error:""},w=Object.assign({},b),S=[],k=o[(w.scheme||x.scheme||"").toLowerCase()];k&&k.serialize&&k.serialize(x,w),x.path!==void 0&&(w.skipEscape?x.path=unescape(x.path):(x.path=escape(x.path),x.scheme!==void 0&&(x.path=x.path.split("%3A").join(":")))),w.reference!=="suffix"&&x.scheme&&S.push(x.scheme,":");let E=i(x);if(E!==void 0&&(w.reference!=="suffix"&&S.push("//"),S.push(E),x.path&&x.path.charAt(0)!=="/"&&S.push("/")),x.path!==void 0){let R=x.path;!w.absolutePath&&(!k||!k.absolutePath)&&(R=s(R)),E===void 0&&(R=R.replace(/^\/\//u,"/%2F")),S.push(R)}return x.query!==void 0&&S.push("?",x.query),x.fragment!==void 0&&S.push("#",x.fragment),S.join("")}var m=Array.from({length:127},(y,b)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(b)));function f(y){let b=0;for(let x=0,w=y.length;x126||m[b])return!0;return!1}var v=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(y,b){let x=Object.assign({},b),w={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},S=y.indexOf("%")!==-1,k=!1;x.reference==="suffix"&&(y=(x.scheme?x.scheme+":":"")+"//"+y);let E=y.match(v);if(E){if(w.scheme=E[1],w.userinfo=E[3],w.host=E[4],w.port=parseInt(E[5],10),w.path=E[6]||"",w.query=E[7],w.fragment=E[8],isNaN(w.port)&&(w.port=E[5]),w.host){let O=n(w.host);if(O.isIPV4===!1){let C=r(O.host);w.host=C.host.toLowerCase(),k=C.isIPV6}else w.host=O.host,k=!0}w.scheme===void 0&&w.userinfo===void 0&&w.host===void 0&&w.port===void 0&&w.query===void 0&&!w.path?w.reference="same-document":w.scheme===void 0?w.reference="relative":w.fragment===void 0?w.reference="absolute":w.reference="uri",x.reference&&x.reference!=="suffix"&&x.reference!==w.reference&&(w.error=w.error||"URI is not a "+x.reference+" reference.");let R=o[(x.scheme||w.scheme||"").toLowerCase()];if(!x.unicodeSupport&&(!R||!R.unicodeSupport)&&w.host&&(x.domainHost||R&&R.domainHost)&&k===!1&&f(w.host))try{w.host=URL.domainToASCII(w.host.toLowerCase())}catch(O){w.error=w.error||"Host's domain name can not be converted to ASCII: "+O}(!R||R&&!R.skipNormalize)&&(S&&w.scheme!==void 0&&(w.scheme=unescape(w.scheme)),S&&w.host!==void 0&&(w.host=unescape(w.host)),w.path&&(w.path=escape(unescape(w.path))),w.fragment&&(w.fragment=encodeURI(decodeURIComponent(w.fragment)))),R&&R.parse&&R.parse(w,x)}else w.error=w.error||"URI can not be parsed.";return w}var h={SCHEMES:o,normalize:c,resolve:l,resolveComponents:u,equal:p,serialize:d,parse:g};e.exports=h,e.exports.default=h,e.exports.fastUri=h}),Afe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=jfe();e.code='require("ajv/dist/runtime/uri").default',t.default=e}),Nfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var e=sy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return e.KeywordCxt}});var r=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return r.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return r.CodeGen}});var n=JE(),s=iy(),i=IF(),a=QE(),o=De(),c=ny(),l=fv(),u=rt(),p=Pfe(),d=Afe(),m=(K,j)=>new RegExp(K,j);m.code="new RegExp";var f=["removeAdditional","useDefaults","coerceTypes"],v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),g={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},h={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},y=200;function b(K){var j,W,M,T,I,H,pe,he,st,Ye,Jt,N,z,Z,Q,ge,Le,yr,Xn,en,tn,br,yo,On,Hb;let Nl=K.strict,Bb=(j=K.code)===null||j===void 0?void 0:j.optimize,iP=Bb===!0||Bb===void 0?1:Bb||0,aP=(M=(W=K.code)===null||W===void 0?void 0:W.regExp)!==null&&M!==void 0?M:m,mG=(T=K.uriResolver)!==null&&T!==void 0?T:d.default;return{strictSchema:(H=(I=K.strictSchema)!==null&&I!==void 0?I:Nl)!==null&&H!==void 0?H:!0,strictNumbers:(he=(pe=K.strictNumbers)!==null&&pe!==void 0?pe:Nl)!==null&&he!==void 0?he:!0,strictTypes:(Ye=(st=K.strictTypes)!==null&&st!==void 0?st:Nl)!==null&&Ye!==void 0?Ye:"log",strictTuples:(N=(Jt=K.strictTuples)!==null&&Jt!==void 0?Jt:Nl)!==null&&N!==void 0?N:"log",strictRequired:(Z=(z=K.strictRequired)!==null&&z!==void 0?z:Nl)!==null&&Z!==void 0?Z:!1,code:K.code?{...K.code,optimize:iP,regExp:aP}:{optimize:iP,regExp:aP},loopRequired:(Q=K.loopRequired)!==null&&Q!==void 0?Q:y,loopEnum:(ge=K.loopEnum)!==null&&ge!==void 0?ge:y,meta:(Le=K.meta)!==null&&Le!==void 0?Le:!0,messages:(yr=K.messages)!==null&&yr!==void 0?yr:!0,inlineRefs:(Xn=K.inlineRefs)!==null&&Xn!==void 0?Xn:!0,schemaId:(en=K.schemaId)!==null&&en!==void 0?en:"$id",addUsedSchema:(tn=K.addUsedSchema)!==null&&tn!==void 0?tn:!0,validateSchema:(br=K.validateSchema)!==null&&br!==void 0?br:!0,validateFormats:(yo=K.validateFormats)!==null&&yo!==void 0?yo:!0,unicodeRegExp:(On=K.unicodeRegExp)!==null&&On!==void 0?On:!0,int32range:(Hb=K.int32range)!==null&&Hb!==void 0?Hb:!0,uriResolver:mG}}class x{constructor(j={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,j=this.opts={...j,...b(j)};let{es5:W,lines:M}=this.opts.code;this.scope=new o.ValueScope({scope:{},prefixes:v,es5:W,lines:M}),this.logger=$(j.logger);let T=j.validateFormats;j.validateFormats=!1,this.RULES=(0,i.getRules)(),w.call(this,g,j,"NOT SUPPORTED"),w.call(this,h,j,"DEPRECATED","warn"),this._metaOpts=O.call(this),j.formats&&E.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),j.keywords&&R.call(this,j.keywords),typeof j.meta=="object"&&this.addMetaSchema(j.meta),k.call(this),j.validateFormats=T}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:j,meta:W,schemaId:M}=this.opts,T=p;M==="id"&&(T={...p},T.id=T.$id,delete T.$id),W&&j&&this.addMetaSchema(T,T[M],!1)}defaultMeta(){let{meta:j,schemaId:W}=this.opts;return this.opts.defaultMeta=typeof j=="object"?j[W]||j:void 0}validate(j,W){let M;if(typeof j=="string"){if(M=this.getSchema(j),!M)throw Error(`no schema with key or ref "${j}"`)}else M=this.compile(j);let T=M(W);return"$async"in M||(this.errors=M.errors),T}compile(j,W){let M=this._addSchema(j,W);return M.validate||this._compileSchemaEnv(M)}compileAsync(j,W){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:M}=this.opts;return T.call(this,j,W);async function T(Ye,Jt){await I.call(this,Ye.$schema);let N=this._addSchema(Ye,Jt);return N.validate||H.call(this,N)}async function I(Ye){Ye&&!this.getSchema(Ye)&&await T.call(this,{$ref:Ye},!0)}async function H(Ye){try{return this._compileSchemaEnv(Ye)}catch(Jt){if(!(Jt instanceof s.default))throw Jt;return pe.call(this,Jt),await he.call(this,Jt.missingSchema),H.call(this,Ye)}}function pe({missingSchema:Ye,missingRef:Jt}){if(this.refs[Ye])throw Error(`AnySchema ${Ye} is loaded but ${Jt} cannot be resolved`)}async function he(Ye){let Jt=await st.call(this,Ye);this.refs[Ye]||await I.call(this,Jt.$schema),this.refs[Ye]||this.addSchema(Jt,Ye,W)}async function st(Ye){let Jt=this._loading[Ye];if(Jt)return Jt;try{return await(this._loading[Ye]=M(Ye))}finally{delete this._loading[Ye]}}}addSchema(j,W,M,T=this.opts.validateSchema){if(Array.isArray(j)){for(let H of j)this.addSchema(H,void 0,M,T);return this}let I;if(typeof j=="object"){let{schemaId:H}=this.opts;if(I=j[H],I!==void 0&&typeof I!="string")throw Error(`schema ${H} must be string`)}return W=(0,c.normalizeId)(W||I),this._checkUnique(W),this.schemas[W]=this._addSchema(j,M,W,T,!0),this}addMetaSchema(j,W,M=this.opts.validateSchema){return this.addSchema(j,W,!0,M),this}validateSchema(j,W){if(typeof j=="boolean")return!0;let M;if(M=j.$schema,M!==void 0&&typeof M!="string")throw Error("$schema must be a string");if(M=M||this.opts.defaultMeta||this.defaultMeta(),!M)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let T=this.validate(M,j);if(!T&&W){let I="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(I);else throw Error(I)}return T}getSchema(j){let W;for(;typeof(W=S.call(this,j))=="string";)j=W;if(W===void 0){let{schemaId:M}=this.opts,T=new a.SchemaEnv({schema:{},schemaId:M});if(W=a.resolveSchema.call(this,T,j),!W)return;this.refs[j]=W}return W.validate||this._compileSchemaEnv(W)}removeSchema(j){if(j instanceof RegExp)return this._removeAllSchemas(this.schemas,j),this._removeAllSchemas(this.refs,j),this;switch(typeof j){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let W=S.call(this,j);return typeof W=="object"&&this._cache.delete(W.schema),delete this.schemas[j],delete this.refs[j],this}case"object":{let W=j;this._cache.delete(W);let M=j[this.opts.schemaId];return M&&(M=(0,c.normalizeId)(M),delete this.schemas[M],delete this.refs[M]),this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(j){for(let W of j)this.addKeyword(W);return this}addKeyword(j,W){let M;if(typeof j=="string")M=j,typeof W=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),W.keyword=M);else if(typeof j=="object"&&W===void 0){if(W=j,M=W.keyword,Array.isArray(M)&&!M.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(B.call(this,M,W),!W)return(0,u.eachItem)(M,I=>re.call(this,I)),this;yt.call(this,W);let T={...W,type:(0,l.getJSONTypes)(W.type),schemaType:(0,l.getJSONTypes)(W.schemaType)};return(0,u.eachItem)(M,T.type.length===0?I=>re.call(this,I,T):I=>T.type.forEach(H=>re.call(this,I,T,H))),this}getKeyword(j){let W=this.RULES.all[j];return typeof W=="object"?W.definition:!!W}removeKeyword(j){let{RULES:W}=this;delete W.keywords[j],delete W.all[j];for(let M of W.rules){let T=M.rules.findIndex(I=>I.keyword===j);T>=0&&M.rules.splice(T,1)}return this}addFormat(j,W){return typeof W=="string"&&(W=new RegExp(W)),this.formats[j]=W,this}errorsText(j=this.errors,{separator:W=", ",dataVar:M="data"}={}){return!j||j.length===0?"No errors":j.map(T=>`${M}${T.instancePath} ${T.message}`).reduce((T,I)=>T+W+I)}$dataMetaSchema(j,W){let M=this.RULES.all;j=JSON.parse(JSON.stringify(j));for(let T of W){let I=T.split("/").slice(1),H=j;for(let pe of I)H=H[pe];for(let pe in M){let he=M[pe];if(typeof he!="object")continue;let{$data:st}=he.definition,Ye=H[pe];st&&Ye&&(H[pe]=Fe(Ye))}}return j}_removeAllSchemas(j,W){for(let M in j){let T=j[M];(!W||W.test(M))&&(typeof T=="string"?delete j[M]:T&&!T.meta&&(this._cache.delete(T.schema),delete j[M]))}}_addSchema(j,W,M,T=this.opts.validateSchema,I=this.opts.addUsedSchema){let H,{schemaId:pe}=this.opts;if(typeof j=="object")H=j[pe];else{if(this.opts.jtd)throw Error("schema must be object");if(typeof j!="boolean")throw Error("schema must be object or boolean")}let he=this._cache.get(j);if(he!==void 0)return he;M=(0,c.normalizeId)(H||M);let st=c.getSchemaRefs.call(this,j,M);return he=new a.SchemaEnv({schema:j,schemaId:pe,meta:W,baseId:M,localRefs:st}),this._cache.set(he.schema,he),I&&!M.startsWith("#")&&(M&&this._checkUnique(M),this.refs[M]=he),T&&this.validateSchema(j,!0),he}_checkUnique(j){if(this.schemas[j]||this.refs[j])throw Error(`schema with key or id "${j}" already exists`)}_compileSchemaEnv(j){if(j.meta?this._compileMetaSchema(j):a.compileSchema.call(this,j),!j.validate)throw Error("ajv implementation error");return j.validate}_compileMetaSchema(j){let W=this.opts;this.opts=this._metaOpts;try{a.compileSchema.call(this,j)}finally{this.opts=W}}}x.ValidationError=n.default,x.MissingRefError=s.default,t.default=x;function w(K,j,W,M="error"){for(let T in K){let I=T;I in j&&this.logger[M](`${W}: option ${T}. ${K[I]}`)}}function S(K){return K=(0,c.normalizeId)(K),this.schemas[K]||this.refs[K]}function k(){let K=this.opts.schemas;if(K)if(Array.isArray(K))this.addSchema(K);else for(let j in K)this.addSchema(K[j],j)}function E(){for(let K in this.opts.formats){let j=this.opts.formats[K];j&&this.addFormat(K,j)}}function R(K){if(Array.isArray(K)){this.addVocabulary(K);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let j in K){let W=K[j];W.keyword||(W.keyword=j),this.addKeyword(W)}}function O(){let K={...this.opts};for(let j of f)delete K[j];return K}var C={log(){},warn(){},error(){}};function $(K){if(K===!1)return C;if(K===void 0)return console;if(K.log&&K.warn&&K.error)return K;throw Error("logger must implement log, warn and error methods")}var q=/^[a-z_$][a-z0-9_$:-]*$/i;function B(K,j){let{RULES:W}=this;if((0,u.eachItem)(K,M=>{if(W.keywords[M])throw Error(`Keyword ${M} is already defined`);if(!q.test(M))throw Error(`Keyword ${M} has invalid name`)}),!!j&&j.$data&&!("code"in j||"validate"in j))throw Error('$data keyword must have "code" or "validate" function')}function re(K,j,W){var M;let T=j?.post;if(W&&T)throw Error('keyword with "post" flag cannot have "type"');let{RULES:I}=this,H=T?I.post:I.rules.find(({type:he})=>he===W);if(H||(H={type:W,rules:[]},I.rules.push(H)),I.keywords[K]=!0,!j)return;let pe={keyword:K,definition:{...j,type:(0,l.getJSONTypes)(j.type),schemaType:(0,l.getJSONTypes)(j.schemaType)}};j.before?G.call(this,H,pe,j.before):H.rules.push(pe),I.all[K]=pe,(M=j.implements)===null||M===void 0||M.forEach(he=>this.addKeyword(he))}function G(K,j,W){let M=K.rules.findIndex(T=>T.keyword===W);M>=0?K.rules.splice(M,0,j):(K.rules.push(j),this.logger.warn(`rule ${W} is not defined`))}function yt(K){let{metaSchema:j}=K;j!==void 0&&(K.$data&&this.opts.$data&&(j=Fe(j)),K.validateSchema=this.compile(j,!0))}var Cr={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Fe(K){return{anyOf:[K,Cr]}}}),Dfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=e}),zfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;var e=iy(),r=xs(),n=De(),s=Xi(),i=QE(),a=rt(),o={keyword:"$ref",schemaType:"string",code(u){let{gen:p,schema:d,it:m}=u,{baseId:f,schemaEnv:v,validateName:g,opts:h,self:y}=m,{root:b}=v;if((d==="#"||d==="#/")&&f===b.baseId)return w();let x=i.resolveRef.call(y,b,f,d);if(x===void 0)throw new e.default(m.opts.uriResolver,f,d);if(x instanceof i.SchemaEnv)return S(x);return k(x);function w(){if(v===b)return l(u,g,v,v.$async);let E=p.scopeValue("root",{ref:b});return l(u,n._`${E}.validate`,b,b.$async)}function S(E){let R=c(u,E);l(u,R,E,E.$async)}function k(E){let R=p.scopeValue("schema",h.code.source===!0?{ref:E,code:(0,n.stringify)(E)}:{ref:E}),O=p.name("valid"),C=u.subschema({schema:E,dataTypes:[],schemaPath:n.nil,topSchemaRef:R,errSchemaPath:d},O);u.mergeEvaluated(C),u.ok(O)}}};function c(u,p){let{gen:d}=u;return p.validate?d.scopeValue("validate",{ref:p.validate}):n._`${d.scopeValue("wrapper",{ref:p})}.validate`}t.getValidate=c;function l(u,p,d,m){let{gen:f,it:v}=u,{allErrors:g,schemaEnv:h,opts:y}=v,b=y.passContext?s.default.this:n.nil;m?x():w();function x(){if(!h.$async)throw Error("async schema referenced by sync schema");let E=f.let("valid");f.try(()=>{f.code(n._`await ${(0,r.callValidateCode)(u,p,b)}`),k(p),!g&&f.assign(E,!0)},R=>{f.if(n._`!(${R} instanceof ${v.ValidationError})`,()=>f.throw(R)),S(R),!g&&f.assign(E,!1)}),u.ok(E)}function w(){u.result((0,r.callValidateCode)(u,p,b),()=>k(p),()=>S(p))}function S(E){let R=n._`${E}.errors`;f.assign(s.default.vErrors,n._`${s.default.vErrors} === null ? ${R} : ${s.default.vErrors}.concat(${R})`),f.assign(s.default.errors,n._`${s.default.vErrors}.length`)}function k(E){var R;if(!v.opts.unevaluated)return;let O=(R=d?.validate)===null||R===void 0?void 0:R.evaluated;if(v.props!==!0)if(O&&!O.dynamicProps)O.props!==void 0&&(v.props=a.mergeEvaluated.props(f,O.props,v.props));else{let C=f.var("props",n._`${E}.evaluated.props`);v.props=a.mergeEvaluated.props(f,C,v.props,n.Name)}if(v.items!==!0)if(O&&!O.dynamicItems)O.items!==void 0&&(v.items=a.mergeEvaluated.items(f,O.items,v.items));else{let C=f.var("items",n._`${E}.evaluated.items`);v.items=a.mergeEvaluated.items(f,C,v.items,n.Name)}}}t.callRef=l,t.default=o}),Mfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Dfe(),r=zfe(),n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",e.default,r.default];t.default=n}),$fe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=e.operators,n={maximum:{okStr:"<=",ok:r.LTE,fail:r.GT},minimum:{okStr:">=",ok:r.GTE,fail:r.LT},exclusiveMaximum:{okStr:"<",ok:r.LT,fail:r.GTE},exclusiveMinimum:{okStr:">",ok:r.GT,fail:r.LTE}},s={message:({keyword:a,schemaCode:o})=>e.str`must be ${n[a].okStr} ${o}`,params:({keyword:a,schemaCode:o})=>e._`{comparison: ${n[a].okStr}, limit: ${o}}`},i={keyword:Object.keys(n),type:"number",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l}=a;a.fail$data(e._`${c} ${n[o].fail} ${l} || isNaN(${c})`)}};t.default=i}),Lfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must be multiple of ${s}`,params:({schemaCode:s})=>e._`{multipleOf: ${s}}`},n={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:r,code(s){let{gen:i,data:a,schemaCode:o,it:c}=s,l=c.opts.multipleOfPrecision,u=i.let("res"),p=l?e._`Math.abs(Math.round(${u}) - ${u}) > 1e-${l}`:e._`${u} !== parseInt(${u})`;s.fail$data(e._`(${o} === 0 || (${u} = ${a}/${o}, ${p}))`)}};t.default=n}),Ufe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});function e(r){let n=r.length,s=0,i=0,a;for(;i=55296&&a<=56319&&i{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=Ufe(),s={message({keyword:a,schemaCode:o}){let c=a==="maxLength"?"more":"fewer";return e.str`must NOT have ${c} than ${o} characters`},params:({schemaCode:a})=>e._`{limit: ${a}}`},i={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:s,code(a){let{keyword:o,data:c,schemaCode:l,it:u}=a,p=o==="maxLength"?e.operators.GT:e.operators.LT,d=u.opts.unicode===!1?e._`${c}.length`:e._`${(0,r.useFunc)(a.gen,n.default)}(${c})`;a.fail$data(e._`${d} ${p} ${l}`)}};t.default=i}),Ffe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=rt(),n=De(),s={message:({schemaCode:a})=>n.str`must match pattern "${a}"`,params:({schemaCode:a})=>n._`{pattern: ${a}}`},i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a,m=d.opts.unicodeRegExp?"u":"";if(l){let{regExp:f}=d.opts.code,v=f.code==="new RegExp"?n._`new RegExp`:(0,r.useFunc)(o,f),g=o.let("valid");o.try(()=>o.assign(g,n._`${v}(${p}, ${m}).test(${c})`),()=>o.assign(g,!1)),a.fail$data(n._`!${g}`)}else{let f=(0,e.usePattern)(a,u);a.fail$data(n._`!${f}.test(${c})`)}}};t.default=i}),Hfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxProperties"?"more":"fewer";return e.str`must NOT have ${a} than ${i} properties`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxProperties"?e.operators.GT:e.operators.LT;s.fail$data(e._`Object.keys(${a}).length ${c} ${o}`)}};t.default=n}),Bfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=De(),n=rt(),s={message:({params:{missingProperty:a}})=>r.str`must have required property '${a}'`,params:({params:{missingProperty:a}})=>r._`{missingProperty: ${a}}`},i={keyword:"required",type:"object",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,schema:c,schemaCode:l,data:u,$data:p,it:d}=a,{opts:m}=d;if(!p&&c.length===0)return;let f=c.length>=m.loopRequired;if(d.allErrors?v():g(),m.strictRequired){let b=a.parentSchema.properties,{definedProperties:x}=a.it;for(let w of c)if(b?.[w]===void 0&&!x.has(w)){let S=d.schemaEnv.baseId+d.errSchemaPath,k=`required property "${w}" is not defined at "${S}" (strictRequired)`;(0,n.checkStrictMode)(d,k,d.opts.strictRequired)}}function v(){if(f||p)a.block$data(r.nil,h);else for(let b of c)(0,e.checkReportMissingProp)(a,b)}function g(){let b=o.let("missing");if(f||p){let x=o.let("valid",!0);a.block$data(x,()=>y(b,x)),a.ok(x)}else o.if((0,e.checkMissingProp)(a,c,b)),(0,e.reportMissingProp)(a,b),o.else()}function h(){o.forOf("prop",l,b=>{a.setParams({missingProperty:b}),o.if((0,e.noPropertyInData)(o,u,b,m.ownProperties),()=>a.error())})}function y(b,x){a.setParams({missingProperty:b}),o.forOf(b,l,()=>{o.assign(x,(0,e.propertyInData)(o,u,b,m.ownProperties)),o.if((0,r.not)(x),()=>{a.error(),o.break()})},r.nil)}}};t.default=i}),Wfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message({keyword:s,schemaCode:i}){let a=s==="maxItems"?"more":"fewer";return e.str`must NOT have ${a} than ${i} items`},params:({schemaCode:s})=>e._`{limit: ${s}}`},n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:r,code(s){let{keyword:i,data:a,schemaCode:o}=s,c=i==="maxItems"?e.operators.GT:e.operators.LT;s.fail$data(e._`${a}.length ${c} ${o}`)}};t.default=n}),YE=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=OF();e.code='require("ajv/dist/runtime/equal").default',t.default=e}),Zfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=fv(),r=De(),n=rt(),s=YE(),i={message:({params:{i:o,j:c}})=>r.str`must NOT have duplicate items (items ## ${c} and ${o} are identical)`,params:({params:{i:o,j:c}})=>r._`{i: ${o}, j: ${c}}`},a={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:i,code(o){let{gen:c,data:l,$data:u,schema:p,parentSchema:d,schemaCode:m,it:f}=o;if(!u&&!p)return;let v=c.let("valid"),g=d.items?(0,e.getSchemaTypes)(d.items):[];o.block$data(v,h,r._`${m} === false`),o.ok(v);function h(){let w=c.let("i",r._`${l}.length`),S=c.let("j");o.setParams({i:w,j:S}),c.assign(v,!0),c.if(r._`${w} > 1`,()=>(y()?b:x)(w,S))}function y(){return g.length>0&&!g.some(w=>w==="object"||w==="array")}function b(w,S){let k=c.name("item"),E=(0,e.checkDataTypes)(g,k,f.opts.strictNumbers,e.DataType.Wrong),R=c.const("indices",r._`{}`);c.for(r._`;${w}--;`,()=>{c.let(k,r._`${l}[${w}]`),c.if(E,r._`continue`),g.length>1&&c.if(r._`typeof ${k} == "string"`,r._`${k} += "_"`),c.if(r._`typeof ${R}[${k}] == "number"`,()=>{c.assign(S,r._`${R}[${k}]`),o.error(),c.assign(v,!1).break()}).code(r._`${R}[${k}] = ${w}`)})}function x(w,S){let k=(0,n.useFunc)(c,s.default),E=c.name("outer");c.label(E).for(r._`;${w}--;`,()=>c.for(r._`${S} = ${w}; ${S}--;`,()=>c.if(r._`${k}(${l}[${w}], ${l}[${S}])`,()=>{o.error(),c.assign(v,!1).break(E)})))}}};t.default=a}),Gfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=YE(),s={message:"must be equal to constant",params:({schemaCode:a})=>e._`{allowedValue: ${a}}`},i={keyword:"const",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schemaCode:u,schema:p}=a;l||p&&typeof p=="object"?a.fail$data(e._`!${(0,r.useFunc)(o,n.default)}(${c}, ${u})`):a.fail(e._`${p} !== ${c}`)}};t.default=i}),Vfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=YE(),s={message:"must be equal to one of the allowed values",params:({schemaCode:a})=>e._`{allowedValues: ${a}}`},i={keyword:"enum",schemaType:"array",$data:!0,error:s,code(a){let{gen:o,data:c,$data:l,schema:u,schemaCode:p,it:d}=a;if(!l&&u.length===0)throw Error("enum must have non-empty array");let m=u.length>=d.opts.loopEnum,f,v=()=>f??(f=(0,r.useFunc)(o,n.default)),g;if(m||l)g=o.let("valid"),a.block$data(g,h);else{if(!Array.isArray(u))throw Error("ajv implementation error");let b=o.const("vSchema",p);g=(0,e.or)(...u.map((x,w)=>y(b,w)))}a.pass(g);function h(){o.assign(g,!1),o.forOf("v",p,b=>o.if(e._`${v()}(${c}, ${b})`,()=>o.assign(g,!0).break()))}function y(b,x){let w=u[x];return typeof w=="object"&&w!==null?e._`${v()}(${c}, ${b}[${x}])`:e._`${c} === ${w}`}}};t.default=i}),Kfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=$fe(),r=Lfe(),n=qfe(),s=Ffe(),i=Hfe(),a=Bfe(),o=Wfe(),c=Zfe(),l=Gfe(),u=Vfe(),p=[e.default,r.default,n.default,s.default,i.default,a.default,o.default,c.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},l.default,u.default];t.default=p}),jF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;var e=De(),r=rt(),n={message:({params:{len:a}})=>e.str`must NOT have more than ${a} items`,params:({params:{len:a}})=>e._`{limit: ${a}}`},s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(a){let{parentSchema:o,it:c}=a,{items:l}=o;if(!Array.isArray(l)){(0,r.checkStrictMode)(c,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(a,l)}};function i(a,o){let{gen:c,schema:l,data:u,keyword:p,it:d}=a;d.items=!0;let m=c.const("len",e._`${u}.length`);if(l===!1)a.setParams({len:o.length}),a.pass(e._`${m} <= ${o.length}`);else if(typeof l=="object"&&!(0,r.alwaysValidSchema)(d,l)){let v=c.var("valid",e._`${m} <= ${o.length}`);c.if((0,e.not)(v),()=>f(v)),a.ok(v)}function f(v){c.forRange("i",o.length,m,g=>{a.subschema({keyword:p,dataProp:g,dataPropType:r.Type.Num},v),!d.allErrors&&c.if((0,e.not)(v),()=>c.break())})}}t.validateAdditionalItems=i,t.default=s}),AF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;var e=De(),r=rt(),n=xs(),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(a){let{schema:o,it:c}=a;if(Array.isArray(o))return i(a,"additionalItems",o);c.items=!0,!(0,r.alwaysValidSchema)(c,o)&&a.ok((0,n.validateArray)(a))}};function i(a,o,c=a.schema){let{gen:l,parentSchema:u,data:p,keyword:d,it:m}=a;g(u),m.opts.unevaluated&&c.length&&m.items!==!0&&(m.items=r.mergeEvaluated.items(l,c.length,m.items));let f=l.name("valid"),v=l.const("len",e._`${p}.length`);c.forEach((h,y)=>{(0,r.alwaysValidSchema)(m,h)||(l.if(e._`${v} > ${y}`,()=>a.subschema({keyword:d,schemaProp:y,dataProp:y},f)),a.ok(f))});function g(h){let{opts:y,errSchemaPath:b}=m,x=c.length,w=x===h.minItems&&(x===h.maxItems||h[o]===!1);if(y.strictTuples&&!w){let S=`"${d}" is ${x}-tuple, but minItems or maxItems/${o} are not specified or different at path "${b}"`;(0,r.checkStrictMode)(m,S,y.strictTuples)}}}t.validateTuple=i,t.default=s}),Jfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=AF(),r={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:n=>(0,e.validateTuple)(n,"items")};t.default=r}),Qfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n=xs(),s=jF(),i={message:({params:{len:o}})=>e.str`must NOT have more than ${o} items`,params:({params:{len:o}})=>e._`{limit: ${o}}`},a={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:i,code(o){let{schema:c,parentSchema:l,it:u}=o,{prefixItems:p}=l;u.items=!0,!(0,r.alwaysValidSchema)(u,c)&&(p?(0,s.validateAdditionalItems)(o,p):o.ok((0,n.validateArray)(o)))}};t.default=a}),Yfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:{min:i,max:a}})=>a===void 0?e.str`must contain at least ${i} valid item(s)`:e.str`must contain at least ${i} and no more than ${a} valid item(s)`,params:({params:{min:i,max:a}})=>a===void 0?e._`{minContains: ${i}}`:e._`{minContains: ${i}, maxContains: ${a}}`},s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,data:l,it:u}=i,p,d,{minContains:m,maxContains:f}=c;u.opts.next?(p=m===void 0?1:m,d=f):p=1;let v=a.const("len",e._`${l}.length`);if(i.setParams({min:p,max:d}),d===void 0&&p===0){(0,r.checkStrictMode)(u,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(d!==void 0&&p>d){(0,r.checkStrictMode)(u,'"minContains" > "maxContains" is always invalid'),i.fail();return}if((0,r.alwaysValidSchema)(u,o)){let x=e._`${v} >= ${p}`;d!==void 0&&(x=e._`${x} && ${v} <= ${d}`),i.pass(x);return}u.items=!0;let g=a.name("valid");d===void 0&&p===1?y(g,()=>a.if(g,()=>a.break())):p===0?(a.let(g,!0),d!==void 0&&a.if(e._`${l}.length > 0`,h)):(a.let(g,!1),h()),i.result(g,()=>i.reset());function h(){let x=a.name("_valid"),w=a.let("count",0);y(x,()=>a.if(x,()=>b(w)))}function y(x,w){a.forRange("i",0,v,S=>{i.subschema({keyword:"contains",dataProp:S,dataPropType:r.Type.Num,compositeRule:!0},x),w()})}function b(x){a.code(e._`${x}++`),d===void 0?a.if(e._`${x} >= ${p}`,()=>a.assign(g,!0).break()):(a.if(e._`${x} > ${d}`,()=>a.assign(g,!1).break()),p===1?a.assign(g,!0):a.if(e._`${x} >= ${p}`,()=>a.assign(g,!0)))}}};t.default=s}),Xfe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;var e=De(),r=rt(),n=xs();t.error={message:({params:{property:c,depsCount:l,deps:u}})=>{let p=l===1?"property":"properties";return e.str`must have ${p} ${u} when property ${c} is present`},params:({params:{property:c,depsCount:l,deps:u,missingProperty:p}})=>e._`{property: ${c}, missingProperty: ${p}, depsCount: ${l}, - deps: ${u}}`};var s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){let l={},u={};for(let p in c){if(p==="__proto__")continue;let d=Array.isArray(c[p])?l:u;d[p]=c[p]}return[l,u]}function a(c,l=c.schema){let{gen:u,data:p,it:d}=c;if(Object.keys(l).length===0)return;let m=u.let("missing");for(let f in l){let v=l[f];if(v.length===0)continue;let g=(0,n.propertyInData)(u,p,f,d.opts.ownProperties);c.setParams({property:f,depsCount:v.length,deps:v.join(", ")}),d.allErrors?u.if(g,()=>{for(let h of v)(0,n.checkReportMissingProp)(c,h)}):(u.if(e._`${g} && (${(0,n.checkMissingProp)(c,v,m)})`),(0,n.reportMissingProp)(c,m),u.else())}}t.validatePropertyDeps=a;function o(c,l=c.schema){let{gen:u,data:p,keyword:d,it:m}=c,f=u.name("valid");for(let v in l)(0,r.alwaysValidSchema)(m,l[v])||(u.if((0,n.propertyInData)(u,p,v,m.opts.ownProperties),()=>{let g=c.subschema({keyword:d,schemaProp:v},f);c.mergeValidEvaluated(g,f)},()=>u.var(f,!0)),c.ok(f))}t.validateSchemaDeps=o,t.default=s}),ehe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"property name must be valid",params:({params:i})=>e._`{propertyName: ${i.propertyName}}`},s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(i){let{gen:a,schema:o,data:c,it:l}=i;if((0,r.alwaysValidSchema)(l,o))return;let u=a.name("valid");a.forIn("key",c,p=>{i.setParams({propertyName:p}),i.subschema({keyword:"propertyNames",data:p,dataTypes:["string"],propertyName:p,compositeRule:!0},u),a.if((0,e.not)(u),()=>{i.error(!0),!l.allErrors&&a.break()})}),i.ok(u)}};t.default=s}),NF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=De(),n=Xi(),s=rt(),i={message:"must NOT have additional properties",params:({params:o})=>r._`{additionalProperty: ${o.additionalProperty}}`},a={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:i,code(o){let{gen:c,schema:l,parentSchema:u,data:p,errsCount:d,it:m}=o;if(!d)throw Error("ajv implementation error");let{allErrors:f,opts:v}=m;if(m.props=!0,v.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(m,l))return;let g=(0,e.allSchemaProperties)(u.properties),h=(0,e.allSchemaProperties)(u.patternProperties);y(),o.ok(r._`${d} === ${n.default.errors}`);function y(){c.forIn("key",p,k=>{!g.length&&!h.length?w(k):c.if(b(k),()=>w(k))})}function b(k){let E;if(g.length>8){let R=(0,s.schemaRefOrVal)(m,u.properties,"properties");E=(0,e.isOwnProperty)(c,R,k)}else g.length?E=(0,r.or)(...g.map(R=>r._`${k} === ${R}`)):E=r.nil;return h.length&&(E=(0,r.or)(E,...h.map(R=>r._`${(0,e.usePattern)(o,R)}.test(${k})`))),(0,r.not)(E)}function x(k){c.code(r._`delete ${p}[${k}]`)}function w(k){if(v.removeAdditional==="all"||v.removeAdditional&&l===!1){x(k);return}if(l===!1){o.setParams({additionalProperty:k}),o.error(),!f&&c.break();return}if(typeof l=="object"&&!(0,s.alwaysValidSchema)(m,l)){let E=c.name("valid");v.removeAdditional==="failing"?(S(k,E,!1),c.if((0,r.not)(E),()=>{o.reset(),x(k)})):(S(k,E),!f&&c.if((0,r.not)(E),()=>c.break()))}}function S(k,E,R){let O={keyword:"additionalProperties",dataProp:k,dataPropType:s.Type.Str};R===!1&&Object.assign(O,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(O,E)}}};t.default=a}),the=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=sy(),r=xs(),n=rt(),s=NF(),i={keyword:"properties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,parentSchema:l,data:u,it:p}=a;p.opts.removeAdditional==="all"&&l.additionalProperties===void 0&&s.default.code(new e.KeywordCxt(p,s.default,"additionalProperties"));let d=(0,r.allSchemaProperties)(c);for(let h of d)p.definedProperties.add(h);p.opts.unevaluated&&d.length&&p.props!==!0&&(p.props=n.mergeEvaluated.props(o,(0,n.toHash)(d),p.props));let m=d.filter(h=>!(0,n.alwaysValidSchema)(p,c[h]));if(m.length===0)return;let f=o.name("valid");for(let h of m)v(h)?g(h):(o.if((0,r.propertyInData)(o,u,h,p.opts.ownProperties)),g(h),!p.allErrors&&o.else().var(f,!0),o.endIf()),a.it.definedProperties.add(h),a.ok(f);function v(h){return p.opts.useDefaults&&!p.compositeRule&&c[h].default!==void 0}function g(h){a.subschema({keyword:"properties",schemaProp:h,dataProp:h},f)}}};t.default=i}),rhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=De(),n=rt(),s=rt(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,data:l,parentSchema:u,it:p}=a,{opts:d}=p,m=(0,e.allSchemaProperties)(c),f=m.filter(w=>(0,n.alwaysValidSchema)(p,c[w]));if(m.length===0||f.length===m.length&&(!p.opts.unevaluated||p.props===!0))return;let v=d.strictSchema&&!d.allowMatchingProperties&&u.properties,g=o.name("valid");p.props!==!0&&!(p.props instanceof r.Name)&&(p.props=(0,s.evaluatedPropsToName)(o,p.props));let{props:h}=p;y();function y(){for(let w of m)v&&b(w),p.allErrors?x(w):(o.var(g,!0),x(w),o.if(g))}function b(w){for(let S in v)new RegExp(w).test(S)&&(0,n.checkStrictMode)(p,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function x(w){o.forIn("key",l,S=>{o.if(r._`${(0,e.usePattern)(a,w)}.test(${S})`,()=>{let k=f.includes(w);k||a.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:s.Type.Str},g),p.opts.unevaluated&&h!==!0?o.assign(r._`${h}[${S}]`,!0):!k&&!p.allErrors&&o.if((0,r.not)(g),()=>o.break())})})}}};t.default=i}),nhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:s,schema:i,it:a}=n;if((0,e.alwaysValidSchema)(a,i)){n.fail();return}let o=s.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),n.failResult(o,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),she=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),ihe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"must match exactly one schema in oneOf",params:({params:i})=>e._`{passingSchemas: ${i.passing}}`},s={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,it:l}=i;if(!Array.isArray(o))throw Error("ajv implementation error");if(l.opts.discriminator&&c.discriminator)return;let u=o,p=a.let("valid",!1),d=a.let("passing",null),m=a.name("_valid");i.setParams({passing:d}),a.block(f),i.result(p,()=>i.reset(),()=>i.error(!0));function f(){u.forEach((v,g)=>{let h;(0,r.alwaysValidSchema)(l,v)?a.var(m,!0):h=i.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},m),g>0&&a.if(e._`${m} && ${p}`).assign(p,!1).assign(d,e._`[${d}, ${g}]`).else(),a.if(m,()=>{a.assign(p,!0),a.assign(d,g),h&&i.mergeEvaluated(h,e.Name)})})}}};t.default=s}),ahe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:s,schema:i,it:a}=n;if(!Array.isArray(i))throw Error("ajv implementation error");let o=s.name("valid");i.forEach((c,l)=>{if((0,e.alwaysValidSchema)(a,c))return;let u=n.subschema({keyword:"allOf",schemaProp:l},o);n.ok(o),n.mergeEvaluated(u)})}};t.default=r}),ohe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:a})=>e.str`must match "${a.ifClause}" schema`,params:({params:a})=>e._`{failingKeyword: ${a.ifClause}}`},s={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(a){let{gen:o,parentSchema:c,it:l}=a;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(l,'"if" without "then" and "else" is ignored');let u=i(l,"then"),p=i(l,"else");if(!u&&!p)return;let d=o.let("valid",!0),m=o.name("_valid");if(f(),a.reset(),u&&p){let g=o.let("ifClause");a.setParams({ifClause:g}),o.if(m,v("then",g),v("else",g))}else u?o.if(m,v("then")):o.if((0,e.not)(m),v("else"));a.pass(d,()=>a.error(!0));function f(){let g=a.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},m);a.mergeEvaluated(g)}function v(g,h){return()=>{let y=a.subschema({keyword:g},m);o.assign(d,m),a.mergeValidEvaluated(y,d),h?o.assign(h,e._`${g}`):a.setParams({ifClause:g})}}}};function i(a,o){let c=a.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(a,c)}t.default=s}),che=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:s,it:i}){s.if===void 0&&(0,e.checkStrictMode)(i,`"${n}" without "if" is ignored`)}};t.default=r}),lhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=jF(),r=Jfe(),n=AF(),s=Qfe(),i=Yfe(),a=Xfe(),o=ehe(),c=NF(),l=the(),u=rhe(),p=nhe(),d=she(),m=ihe(),f=ahe(),v=ohe(),g=che();function h(y=!1){let b=[p.default,d.default,m.default,f.default,v.default,g.default,o.default,c.default,a.default,l.default,u.default];return y?b.push(r.default,s.default):b.push(e.default,n.default),b.push(i.default),b}t.default=h}),uhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must match format "${s}"`,params:({schemaCode:s})=>e._`{format: ${s}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(s,i){let{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:p}=s,{opts:d,errSchemaPath:m,schemaEnv:f,self:v}=p;if(!d.validateFormats)return;c?g():h();function g(){let y=a.scopeValue("formats",{ref:v.formats,code:d.code.formats}),b=a.const("fDef",e._`${y}[${u}]`),x=a.let("fType"),w=a.let("format");a.if(e._`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>a.assign(x,e._`${b}.type || "string"`).assign(w,e._`${b}.validate`),()=>a.assign(x,e._`"string"`).assign(w,b)),s.fail$data((0,e.or)(S(),k()));function S(){return d.strictSchema===!1?e.nil:e._`${u} && !${w}`}function k(){let E=f.$async?e._`(${b}.async ? await ${w}(${o}) : ${w}(${o}))`:e._`${w}(${o})`,R=e._`(typeof ${w} == "function" ? ${E} : ${w}.test(${o}))`;return e._`${w} && ${w} !== true && ${x} === ${i} && !${R}`}}function h(){let y=v.formats[l];if(!y){S();return}if(y===!0)return;let[b,x,w]=k(y);b===i&&s.pass(E());function S(){if(d.strictSchema===!1){v.logger.warn(R());return}throw Error(R());function R(){return`unknown format "${l}" ignored in schema at path "${m}"`}}function k(R){let O=R instanceof RegExp?(0,e.regexpCode)(R):d.code.formats?e._`${d.code.formats}${(0,e.getProperty)(l)}`:void 0,C=a.scopeValue("formats",{key:l,ref:R,code:O});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,e._`${C}.validate`]:["string",R,C]}function E(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!f.$async)throw Error("async format in sync schema");return e._`await ${w}(${o})`}return typeof x=="function"?e._`${w}(${o})`:e._`${w}.test(${o})`}}}};t.default=n}),phe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=uhe(),r=[e.default];t.default=r}),dhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),mhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mfe(),r=Kfe(),n=lhe(),s=phe(),i=dhe(),a=[e.default,r.default,(0,n.default)(),s.default,i.metadataVocabulary,i.contentVocabulary];t.default=a}),fhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),hhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=fhe(),n=QE(),s=iy(),i=rt(),a={message:({params:{discrError:c,tagName:l}})=>c===r.DiscrError.Tag?`tag "${l}" must be string`:`value of tag "${l}" must be in oneOf`,params:({params:{discrError:c,tag:l,tagName:u}})=>e._`{error: ${c}, tag: ${u}, tagValue: ${l}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:a,code(c){let{gen:l,data:u,schema:p,parentSchema:d,it:m}=c,{oneOf:f}=d;if(!m.opts.discriminator)throw Error("discriminator: requires discriminator option");let v=p.propertyName;if(typeof v!="string")throw Error("discriminator: requires propertyName");if(p.mapping)throw Error("discriminator: mapping is not supported");if(!f)throw Error("discriminator: requires oneOf keyword");let g=l.let("valid",!1),h=l.const("tag",e._`${u}${(0,e.getProperty)(v)}`);l.if(e._`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:v})),c.ok(g);function y(){let w=x();l.if(!1);for(let S in w)l.elseIf(e._`${h} === ${S}`),l.assign(g,b(w[S]));l.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:v}),l.endIf()}function b(w){let S=l.name("valid"),k=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(k,e.Name),S}function x(){var w;let S={},k=R(d),E=!0;for(let $=0;${e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),DF=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=Nfe(),n=mhe(),s=hhe(),i=ghe(),a=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(f=>this.addVocabulary(f)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let f=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(f,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=sy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var p=JE();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return p.default}});var d=iy();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})}),vhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(C,$){return{validate:C,compare:$}}t.fullFormats={date:e(i,a),time:e(c(!0),l),"date-time":e(d(!0),m),"iso-time":e(c(),u),"iso-date-time":e(d(),f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:O,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:b,int32:{type:"number",validate:S},int64:{type:"number",validate:k},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,f),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(C){return C%4===0&&(C%100!==0||C%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i(C){let $=n.exec(C);if(!$)return!1;let q=+$[1],B=+$[2],re=+$[3];return B>=1&&B<=12&&re>=1&&re<=(B===2&&r(q)?29:s[B])}function a(C,$){if(C&&$)return C>$?1:C<$?-1:0}var o=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function c(C){return function($){let q=o.exec($);if(!q)return!1;let B=+q[1],re=+q[2],G=+q[3],yt=q[4],Cr=q[5]==="-"?-1:1,Fe=+(q[6]||0),K=+(q[7]||0);if(Fe>23||K>59||C&&!yt)return!1;if(B<=23&&re<=59&&G<60)return!0;let j=re-K*Cr,W=B-Fe*Cr-(j<0?1:0);return(W===23||W===-1)&&(j===59||j===-1)&&G<61}}function l(C,$){if(!(C&&$))return;let q=new Date("2020-01-01T"+C).valueOf(),B=new Date("2020-01-01T"+$).valueOf();if(q&&B)return q-B}function u(C,$){if(!(C&&$))return;let q=o.exec(C),B=o.exec($);if(q&&B)return C=q[1]+q[2]+q[3],$=B[1]+B[2]+B[3],C>$?1:C<$?-1:0}var p=/t|\s/i;function d(C){let $=c(C);return function(q){let B=q.split(p);return B.length===2&&i(B[0])&&$(B[1])}}function m(C,$){if(!(C&&$))return;let q=new Date(C).valueOf(),B=new Date($).valueOf();if(q&&B)return q-B}function f(C,$){if(!(C&&$))return;let[q,B]=C.split(p),[re,G]=$.split(p),yt=a(q,re);if(yt!==void 0)return yt||l(B,G)}var v=/\/|:/,g=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function h(C){return v.test(C)&&g.test(C)}var y=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function b(C){return y.lastIndex=0,y.test(C)}var x=-2147483648,w=2147483647;function S(C){return Number.isInteger(C)&&C<=w&&C>=x}function k(C){return Number.isInteger(C)}function E(){return!0}var R=/[^\\]\\Z/;function O(C){if(R.test(C))return!1;try{return new RegExp(C),!0}catch{return!1}}}),yhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=DF(),r=De(),n=r.operators,s={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:c})=>r.str`should be ${s[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${s[o].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(s),type:"string",schemaType:"string",$data:!0,error:i,code(o){let{gen:c,data:l,schemaCode:u,keyword:p,it:d}=o,{opts:m,self:f}=d;if(!m.validateFormats)return;let v=new e.KeywordCxt(d,f.RULES.all.format.definition,"format");v.$data?g():h();function g(){let b=c.scopeValue("formats",{ref:f.formats,code:m.code.formats}),x=c.const("fmt",r._`${b}[${v.schemaCode}]`);o.fail$data((0,r.or)(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,y(x)))}function h(){let b=v.schema,x=f.formats[b];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw Error(`"${p}": format "${b}" does not define "compare" function`);let w=c.scopeValue("formats",{key:b,ref:x,code:m.code.formats?r._`${m.code.formats}${(0,r.getProperty)(b)}`:void 0});o.fail$data(y(w))}function y(b){return r._`${b}.compare(${l}, ${u}) ${s[p].fail} 0`}},dependencies:["format"]};var a=o=>(o.addKeyword(t.formatLimitDefinition),o);t.default=a}),bhe=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=vhe(),n=yhe(),s=De(),i=new s.Name("fullFormats"),a=new s.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,i),l;let[p,d]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,i],m=u.formats||r.formatNames;return c(l,m,p,d),u.keywords&&(0,n.default)(l),l};o.get=(l,u="full")=>{let p=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!p)throw Error(`Unknown format "${l}"`);return p};function c(l,u,p,d){var m,f;(m=(f=l.opts.code).formats)!==null&&m!==void 0||(f.formats=s._`require("ajv-formats/dist/formats").${d}`);for(let v of u)l.addFormat(v,p[v])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o}),xhe=50;function MF(t=xhe){let e=new AbortController;return(0,zF.setMaxListeners)(t,e.signal),e}var Vi=class extends Error{};function UF(){return process.versions.bun!==void 0}var _he=typeof global=="object"&&global&&global.Object===Object&&global,whe=_he,She=typeof self=="object"&&self&&self.Object===Object&&self,khe=whe||She||Function("return this")(),XE=khe,Ehe=XE.Symbol,hv=Ehe,qF=Object.prototype,The=qF.hasOwnProperty,Rhe=qF.toString,nd=hv?hv.toStringTag:void 0;function Phe(t){var e=The.call(t,nd),r=t[nd];try{t[nd]=void 0;var n=!0}catch{}var s=Rhe.call(t);return n&&(e?t[nd]=r:delete t[nd]),s}var Ihe=Phe,Che=Object.prototype,Ohe=Che.toString;function jhe(t){return Ohe.call(t)}var Ahe=jhe,Nhe="[object Null]",Dhe="[object Undefined]",O6=hv?hv.toStringTag:void 0;function zhe(t){return t==null?t===void 0?Dhe:Nhe:O6&&O6 in Object(t)?Ihe(t):Ahe(t)}var Mhe=zhe;function $he(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var FF=$he,Lhe="[object AsyncFunction]",Uhe="[object Function]",qhe="[object GeneratorFunction]",Fhe="[object Proxy]";function Hhe(t){if(!FF(t))return!1;var e=Mhe(t);return e==Uhe||e==qhe||e==Lhe||e==Fhe}var Bhe=Hhe,Whe=XE["__core-js_shared__"],oE=Whe,j6=(function(){var t=/[^.]+$/.exec(oE&&oE.keys&&oE.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Zhe(t){return!!j6&&j6 in t}var Ghe=Zhe,Vhe=Function.prototype,Khe=Vhe.toString;function Jhe(t){if(t!=null){try{return Khe.call(t)}catch{}try{return t+""}catch{}}return""}var Qhe=Jhe,Yhe=/[\\^$.*+?()[\]{}|]/g,Xhe=/^\[object .+?Constructor\]$/,ege=Function.prototype,tge=Object.prototype,rge=ege.toString,nge=tge.hasOwnProperty,sge=RegExp("^"+rge.call(nge).replace(Yhe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ige(t){if(!FF(t)||Ghe(t))return!1;var e=Bhe(t)?sge:Xhe;return e.test(Qhe(t))}var age=ige;function oge(t,e){return t?.[e]}var cge=oge;function lge(t,e){var r=cge(t,e);return age(r)?r:void 0}var HF=lge,uge=HF(Object,"create"),Ed=uge;function pge(){this.__data__=Ed?Ed(null):{},this.size=0}var dge=pge;function mge(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var fge=mge,hge="__lodash_hash_undefined__",gge=Object.prototype,vge=gge.hasOwnProperty;function yge(t){var e=this.__data__;if(Ed){var r=e[t];return r===hge?void 0:r}return vge.call(e,t)?e[t]:void 0}var bge=yge,xge=Object.prototype,_ge=xge.hasOwnProperty;function wge(t){var e=this.__data__;return Ed?e[t]!==void 0:_ge.call(e,t)}var Sge=wge,kge="__lodash_hash_undefined__";function Ege(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Ed&&e===void 0?kge:e,this}var Tge=Ege;function ll(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Lge=$ge;function Uge(t,e){var r=this.__data__,n=ay(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var qge=Uge;function ul(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e(process.env.CLAUDE_CONFIG_DIR??(0,ZF.join)((0,WF.homedir)(),".claude")).normalize("NFC"),()=>process.env.CLAUDE_CONFIG_DIR);function Ja(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}function ae(t,e,r,n,s){if(n==="m")throw TypeError("Private method is not writable");if(n==="a"&&!s)throw TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!s:!e.has(t))throw TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(t,r):s?s.value=r:e.set(t,r),r}function D(t,e,r,n){if(r==="a"&&!n)throw TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}var VF=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return VF=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),r=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};function Td(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}var xE=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){let e=Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return Error(JSON.stringify(t))}catch{}}return Error(t)},Ee=class extends Error{},Kr=class t extends Ee{constructor(e,r,n,s){super(`${t.makeMessage(e,r,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("request-id"),this.error=r}static makeMessage(e,r,n){let s=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,r,n,s){if(!e||!s)return new Wc({message:n,cause:xE(r)});let i=r;return e===400?new vv(e,i,n,s):e===401?new yv(e,i,n,s):e===403?new bv(e,i,n,s):e===404?new xv(e,i,n,s):e===409?new _v(e,i,n,s):e===422?new wv(e,i,n,s):e===429?new Sv(e,i,n,s):e>=500?new kv(e,i,n,s):new t(e,i,n,s)}},Rn=class extends Kr{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Wc=class extends Kr{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}},gv=class extends Wc{constructor({message:e}={}){super({message:e??"Request timed out."})}},vv=class extends Kr{},yv=class extends Kr{},bv=class extends Kr{},xv=class extends Kr{},_v=class extends Kr{},wv=class extends Kr{},Sv=class extends Kr{},kv=class extends Kr{},ive=/^[a-z][a-z0-9+.-]*:/i,ave=t=>ive.test(t),_E=t=>(_E=Array.isArray,_E(t)),N6=_E;function wE(t){return typeof t!="object"?{}:t??{}}function ove(t){if(!t)return!0;for(let e in t)return!1;return!0}function cve(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var lve=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new Ee(`${t} must be an integer`);if(e<0)throw new Ee(`${t} must be a positive integer`);return e},KF=t=>{try{return JSON.parse(t)}catch{return}},uve=t=>new Promise(e=>setTimeout(e,t)),Mc="0.74.0",pve=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function dve(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var mve=()=>{let t=dve();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":z6(Deno.build.os),"X-Stainless-Arch":D6(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":z6(globalThis.process.platform??"unknown"),"X-Stainless-Arch":D6(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=fve();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function fve(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:r}of t){let n=r.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,a=n[3]||0;return{browser:e,version:`${s}.${i}.${a}`}}}return null}var D6=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",z6=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),M6,hve=()=>M6??(M6=mve());function gve(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function JF(...t){let e=globalThis.ReadableStream;if(typeof e>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function QF(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return JF({start(){},async pull(r){let{done:n,value:s}=await e.next();n?r.close():r.enqueue(s)},async cancel(){await e.return?.()}})}function tT(t){if(t[Symbol.asyncIterator])return t;let e=t.getReader();return{async next(){try{let r=await e.read();return r?.done&&e.releaseLock(),r}catch(r){throw e.releaseLock(),r}},async return(){let r=e.cancel();return e.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function vve(t){if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await t[Symbol.asyncIterator]().return?.();return}let e=t.getReader(),r=e.cancel();e.releaseLock(),await r}var yve=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});function bve(t){let e=0;for(let s of t)e+=s.length;let r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var $6;function rT(t){let e;return($6??(e=new globalThis.TextEncoder,$6=e.encode.bind(e)))(t)}var L6;function U6(t){let e;return(L6??(e=new globalThis.TextDecoder,L6=e.decode.bind(e)))(t)}var kn,En,Ya=class{constructor(){kn.set(this,void 0),En.set(this,void 0),ae(this,kn,new Uint8Array,"f"),ae(this,En,null,"f")}decode(e){if(e==null)return[];let r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?rT(e):e;ae(this,kn,bve([D(this,kn,"f"),r]),"f");let n=[],s;for(;(s=xve(D(this,kn,"f"),D(this,En,"f")))!=null;){if(s.carriage&&D(this,En,"f")==null){ae(this,En,s.index,"f");continue}if(D(this,En,"f")!=null&&(s.index!==D(this,En,"f")+1||s.carriage)){n.push(U6(D(this,kn,"f").subarray(0,D(this,En,"f")-1))),ae(this,kn,D(this,kn,"f").subarray(D(this,En,"f")),"f"),ae(this,En,null,"f");continue}let i=D(this,En,"f")!==null?s.preceding-1:s.preceding,a=U6(D(this,kn,"f").subarray(0,i));n.push(a),ae(this,kn,D(this,kn,"f").subarray(s.index),"f"),ae(this,En,null,"f")}return n}flush(){return D(this,kn,"f").length?this.decode(` -`):[]}};kn=new WeakMap,En=new WeakMap;Ya.NEWLINE_CHARS=new Set([` -`,"\r"]);Ya.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function xve(t,e){for(let r=e??0;r{if(t){if(cve(Ev,t))return t;Gr(r).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(Ev))}`)}};function xd(){}function Bg(t,e,r){return!e||Ev[t]>Ev[r]?xd:e[t].bind(e)}var wve={error:xd,warn:xd,info:xd,debug:xd},F6=new WeakMap;function Gr(t){let e=t.logger,r=t.logLevel??"off";if(!e)return wve;let n=F6.get(e);if(n&&n[0]===r)return n[1];let s={error:Bg("error",e,r),warn:Bg("warn",e,r),info:Bg("info",e,r),debug:Bg("debug",e,r)};return F6.set(e,[r,s]),s}var Ka=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,r])=>[e,e.toLowerCase()==="x-api-key"||e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t),sd,Xa=class t{constructor(e,r,n){this.iterator=e,sd.set(this,void 0),this.controller=r,ae(this,sd,n,"f")}static fromSSEResponse(e,r,n){let s=!1,i=n?Gr(n):console;async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of Sve(e,r)){if(c.event==="completion")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event==="message_start"||c.event==="message_delta"||c.event==="message_stop"||c.event==="content_block_start"||c.event==="content_block_delta"||c.event==="content_block_stop")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event!=="ping"&&c.event==="error")throw new Kr(void 0,KF(c.data)??c.data,void 0,e.headers)}o=!0}catch(c){if(Td(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}static fromReadableStream(e,r,n){let s=!1;async function*i(){let o=new Ya,c=tT(e);for await(let l of c)for(let u of o.decode(l))yield u;for(let l of o.flush())yield l}async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of i())o||c&&(yield JSON.parse(c));o=!0}catch(c){if(Td(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}[(sd=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],r=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let a=n.next();e.push(a),r.push(a)}return i.shift()}});return[new t(()=>s(e),this.controller,D(this,sd,"f")),new t(()=>s(r),this.controller,D(this,sd,"f"))]}toReadableStream(){let e=this,r;return JF({async start(){r=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await r.next();if(i)return n.close();let a=rT(JSON.stringify(s)+` -`);n.enqueue(a)}catch(s){n.error(s)}},async cancel(){await r.return?.()}})}};async function*Sve(t,e){if(!t.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");let r=new SE,n=new Ya,s=tT(t.body);for await(let i of kve(s))for(let a of n.decode(i)){let o=r.decode(a);o&&(yield o)}for(let i of n.flush()){let a=r.decode(i);a&&(yield a)}}async function*kve(t){let e=new Uint8Array;for await(let r of t){if(r==null)continue;let n=r instanceof ArrayBuffer?new Uint8Array(r):typeof r=="string"?rT(r):r,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=_ve(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var SE=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(` -`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,s]=Eve(e,":");return s.startsWith(" ")&&(s=s.substring(1)),r==="event"?this.event=s:r==="data"&&this.data.push(s),null}};function Eve(t,e){let r=t.indexOf(e);return r!==-1?[t.substring(0,r),e,t.substring(r+e.length)]:[t,"",""]}async function YF(t,e){let{response:r,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,a=await(async()=>{if(e.options.stream)return Gr(t).debug("response",r.status,r.url,r.headers,r.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(r,e.controller):Xa.fromSSEResponse(r,e.controller);if(r.status===204)return null;if(e.options.__binaryResponse)return r;let o=r.headers.get("content-type")?.split(";")[0]?.trim();if(o?.includes("application/json")||o?.endsWith("+json")){if(r.headers.get("content-length")==="0")return;let c=await r.json();return XF(c,r)}return await r.text()})();return Gr(t).debug(`[${n}] response parsed`,Ka({retryOfRequestLogID:s,url:r.url,status:r.status,body:a,durationMs:Date.now()-i})),a}function XF(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("request-id"),enumerable:!1})}var _d,Tv=class t extends Promise{constructor(e,r,n=YF){super(s=>{s(null)}),this.responsePromise=r,this.parseResponse=n,_d.set(this,void 0),ae(this,_d,e,"f")}_thenUnwrap(e){return new t(D(this,_d,"f"),this.responsePromise,async(r,n)=>XF(e(await this.parseResponse(r,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:r,request_id:r.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(D(this,_d,"f"),e))),this.parsedPromise}then(e,r){return this.parse().then(e,r)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};_d=new WeakMap;var Wg,Rv=class{constructor(e,r,n,s){Wg.set(this,void 0),ae(this,Wg,e,"f"),this.options=s,this.response=r,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new Ee("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await D(this,Wg,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(Wg=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let r of e.getPaginatedItems())yield r}},kE=class extends Tv{constructor(e,r,n){super(e,r,async(s,i)=>new n(s,i.response,await YF(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let r of e)yield r}},eo=class extends Rv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.first_id=n.first_id||null,this.last_id=n.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let r=this.first_id;return r?{...this.options,query:{...wE(this.options.query),before_id:r}}:null}let e=this.last_id;return e?{...this.options,query:{...wE(this.options.query),after_id:e}}:null}},Pv=class extends Rv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.next_page=n.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...wE(this.options.query),page:e}}:null}},e8=()=>{if(typeof File>"u"){let{process:t}=globalThis,e=typeof t?.versions?.node=="string"&&parseInt(t.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Fc(t,e,r){return e8(),new File(t,e??"unknown_file",r)}function lv(t,e){let r=typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"";return e?r.split(/[\\/]/).pop()||void 0:r}var t8=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",nT=async(t,e,r=!0)=>({...t,body:await Rve(t.body,e,r)}),H6=new WeakMap;function Tve(t){let e=typeof t=="function"?t:t.fetch,r=H6.get(e);if(r)return r;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return H6.set(e,n),n}var Rve=async(t,e,r=!0)=>{if(!await Tve(e))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let n=new FormData;return await Promise.all(Object.entries(t||{}).map(([s,i])=>EE(n,s,i,r))),n},Pve=t=>t instanceof Blob&&"name"in t,EE=async(t,e,r,n)=>{if(r!==void 0){if(r==null)throw TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")t.append(e,String(r));else if(r instanceof Response){let s={},i=r.headers.get("Content-Type");i&&(s={type:i}),t.append(e,Fc([await r.blob()],lv(r,n),s))}else if(t8(r))t.append(e,Fc([await new Response(QF(r)).blob()],lv(r,n)));else if(Pve(r))t.append(e,Fc([r],lv(r,n),{type:r.type}));else if(Array.isArray(r))await Promise.all(r.map(s=>EE(t,e+"[]",s,n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([s,i])=>EE(t,`${e}[${s}]`,i,n)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}},r8=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",Ive=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&r8(t),Cve=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function Ove(t,e,r){if(e8(),t=await t,e||(e=lv(t,!0)),Ive(t))return t instanceof File&&e==null&&r==null?t:Fc([await t.arrayBuffer()],e??t.name,{type:t.type,lastModified:t.lastModified,...r});if(Cve(t)){let s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),Fc(await TE(s),e,r)}let n=await TE(t);if(!r?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(r={...r,type:s})}return Fc(n,e,r)}async function TE(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(r8(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(t8(t))for await(let r of t)e.push(...await TE(r));else{let r=t?.constructor?.name;throw Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${jve(t)}`)}return e}function jve(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(e=>`"${e}"`).join(", ")}]`}var Pn=class{constructor(e){this._client=e}},n8=Symbol.for("brand.privateNullableHeaders");function*Ave(t){if(!t)return;if(n8 in t){let{values:n,nulls:s}=t;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,r;t instanceof Headers?r=t.entries():N6(t)?r=t:(e=!0,r=Object.entries(t??{}));for(let n of r){let s=n[0];if(typeof s!="string")throw TypeError("expected header name to be a string");let i=N6(n[1])?n[1]:[n[1]],a=!1;for(let o of i)o!==void 0&&(e&&!a&&(a=!0,yield[s,null]),yield[s,o])}}var Ve=t=>{let e=new Headers,r=new Set;for(let n of t){let s=new Set;for(let[i,a]of Ave(n)){let o=i.toLowerCase();s.has(o)||(e.delete(i),s.add(o)),a===null?(e.delete(i),r.add(o)):(e.append(i,a),r.delete(o))}}return{[n8]:!0,values:e,nulls:r}},kd=Symbol("anthropic.sdk.stainlessHelper");function uv(t){return typeof t=="object"&&t!==null&&kd in t}function s8(t,e){let r=new Set;if(t)for(let n of t)uv(n)&&r.add(n[kd]);if(e){for(let n of e)if(uv(n)&&r.add(n[kd]),Array.isArray(n.content))for(let s of n.content)uv(s)&&r.add(s[kd])}return Array.from(r)}function i8(t,e){let r=s8(t,e);return r.length===0?{}:{"x-stainless-helper":r.join(", ")}}function Nve(t){return uv(t)?{"x-stainless-helper":t[kd]}:{}}function a8(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var B6=Object.freeze(Object.create(null)),Dve=(t=a8)=>function(e,...r){if(e.length===1)return e[0];let n=!1,s=[],i=e.reduce((l,u,p)=>{/[?#]/.test(u)&&(n=!0);let d=r[p],m=(n?encodeURIComponent:t)(""+d);return p!==r.length&&(d==null||typeof d=="object"&&d.toString===Object.getPrototypeOf(Object.getPrototypeOf(d.hasOwnProperty??B6)??B6)?.toString)&&(m=d+"",s.push({start:l.length+u.length,length:m.length,error:`Value of type ${Object.prototype.toString.call(d).slice(8,-1)} is not a valid path parameter`})),l+u+(p===r.length?"":m)},""),a=i.split(/[?#]/,1)[0],o=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=o.exec(a))!==null;)s.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(s.sort((l,u)=>l.start-u.start),s.length>0){let l=0,u=s.reduce((p,d)=>{let m=" ".repeat(d.start-l),f="^".repeat(d.length);return l=d.start+d.length,p+m+f},"");throw new Ee(`Path parameters result in path with invalid segments: + deps: ${u}}`};var s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(c){let[l,u]=i(c);a(c,l),o(c,u)}};function i({schema:c}){let l={},u={};for(let p in c){if(p==="__proto__")continue;let d=Array.isArray(c[p])?l:u;d[p]=c[p]}return[l,u]}function a(c,l=c.schema){let{gen:u,data:p,it:d}=c;if(Object.keys(l).length===0)return;let m=u.let("missing");for(let f in l){let v=l[f];if(v.length===0)continue;let g=(0,n.propertyInData)(u,p,f,d.opts.ownProperties);c.setParams({property:f,depsCount:v.length,deps:v.join(", ")}),d.allErrors?u.if(g,()=>{for(let h of v)(0,n.checkReportMissingProp)(c,h)}):(u.if(e._`${g} && (${(0,n.checkMissingProp)(c,v,m)})`),(0,n.reportMissingProp)(c,m),u.else())}}t.validatePropertyDeps=a;function o(c,l=c.schema){let{gen:u,data:p,keyword:d,it:m}=c,f=u.name("valid");for(let v in l)(0,r.alwaysValidSchema)(m,l[v])||(u.if((0,n.propertyInData)(u,p,v,m.opts.ownProperties),()=>{let g=c.subschema({keyword:d,schemaProp:v},f);c.mergeValidEvaluated(g,f)},()=>u.var(f,!0)),c.ok(f))}t.validateSchemaDeps=o,t.default=s}),ehe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"property name must be valid",params:({params:i})=>e._`{propertyName: ${i.propertyName}}`},s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(i){let{gen:a,schema:o,data:c,it:l}=i;if((0,r.alwaysValidSchema)(l,o))return;let u=a.name("valid");a.forIn("key",c,p=>{i.setParams({propertyName:p}),i.subschema({keyword:"propertyNames",data:p,dataTypes:["string"],propertyName:p,compositeRule:!0},u),a.if((0,e.not)(u),()=>{i.error(!0),!l.allErrors&&a.break()})}),i.ok(u)}};t.default=s}),NF=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=De(),n=Xi(),s=rt(),i={message:"must NOT have additional properties",params:({params:o})=>r._`{additionalProperty: ${o.additionalProperty}}`},a={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:i,code(o){let{gen:c,schema:l,parentSchema:u,data:p,errsCount:d,it:m}=o;if(!d)throw Error("ajv implementation error");let{allErrors:f,opts:v}=m;if(m.props=!0,v.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(m,l))return;let g=(0,e.allSchemaProperties)(u.properties),h=(0,e.allSchemaProperties)(u.patternProperties);y(),o.ok(r._`${d} === ${n.default.errors}`);function y(){c.forIn("key",p,k=>{!g.length&&!h.length?w(k):c.if(b(k),()=>w(k))})}function b(k){let E;if(g.length>8){let R=(0,s.schemaRefOrVal)(m,u.properties,"properties");E=(0,e.isOwnProperty)(c,R,k)}else g.length?E=(0,r.or)(...g.map(R=>r._`${k} === ${R}`)):E=r.nil;return h.length&&(E=(0,r.or)(E,...h.map(R=>r._`${(0,e.usePattern)(o,R)}.test(${k})`))),(0,r.not)(E)}function x(k){c.code(r._`delete ${p}[${k}]`)}function w(k){if(v.removeAdditional==="all"||v.removeAdditional&&l===!1){x(k);return}if(l===!1){o.setParams({additionalProperty:k}),o.error(),!f&&c.break();return}if(typeof l=="object"&&!(0,s.alwaysValidSchema)(m,l)){let E=c.name("valid");v.removeAdditional==="failing"?(S(k,E,!1),c.if((0,r.not)(E),()=>{o.reset(),x(k)})):(S(k,E),!f&&c.if((0,r.not)(E),()=>c.break()))}}function S(k,E,R){let O={keyword:"additionalProperties",dataProp:k,dataPropType:s.Type.Str};R===!1&&Object.assign(O,{compositeRule:!0,createErrors:!1,allErrors:!1}),o.subschema(O,E)}}};t.default=a}),the=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=sy(),r=xs(),n=rt(),s=NF(),i={keyword:"properties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,parentSchema:l,data:u,it:p}=a;p.opts.removeAdditional==="all"&&l.additionalProperties===void 0&&s.default.code(new e.KeywordCxt(p,s.default,"additionalProperties"));let d=(0,r.allSchemaProperties)(c);for(let h of d)p.definedProperties.add(h);p.opts.unevaluated&&d.length&&p.props!==!0&&(p.props=n.mergeEvaluated.props(o,(0,n.toHash)(d),p.props));let m=d.filter(h=>!(0,n.alwaysValidSchema)(p,c[h]));if(m.length===0)return;let f=o.name("valid");for(let h of m)v(h)?g(h):(o.if((0,r.propertyInData)(o,u,h,p.opts.ownProperties)),g(h),!p.allErrors&&o.else().var(f,!0),o.endIf()),a.it.definedProperties.add(h),a.ok(f);function v(h){return p.opts.useDefaults&&!p.compositeRule&&c[h].default!==void 0}function g(h){a.subschema({keyword:"properties",schemaProp:h,dataProp:h},f)}}};t.default=i}),rhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r=De(),n=rt(),s=rt(),i={keyword:"patternProperties",type:"object",schemaType:"object",code(a){let{gen:o,schema:c,data:l,parentSchema:u,it:p}=a,{opts:d}=p,m=(0,e.allSchemaProperties)(c),f=m.filter(w=>(0,n.alwaysValidSchema)(p,c[w]));if(m.length===0||f.length===m.length&&(!p.opts.unevaluated||p.props===!0))return;let v=d.strictSchema&&!d.allowMatchingProperties&&u.properties,g=o.name("valid");p.props!==!0&&!(p.props instanceof r.Name)&&(p.props=(0,s.evaluatedPropsToName)(o,p.props));let{props:h}=p;y();function y(){for(let w of m)v&&b(w),p.allErrors?x(w):(o.var(g,!0),x(w),o.if(g))}function b(w){for(let S in v)new RegExp(w).test(S)&&(0,n.checkStrictMode)(p,`property ${S} matches pattern ${w} (use allowMatchingProperties)`)}function x(w){o.forIn("key",l,S=>{o.if(r._`${(0,e.usePattern)(a,w)}.test(${S})`,()=>{let k=f.includes(w);k||a.subschema({keyword:"patternProperties",schemaProp:w,dataProp:S,dataPropType:s.Type.Str},g),p.opts.unevaluated&&h!==!0?o.assign(r._`${h}[${S}]`,!0):!k&&!p.allErrors&&o.if((0,r.not)(g),()=>o.break())})})}}};t.default=i}),nhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(n){let{gen:s,schema:i,it:a}=n;if((0,e.alwaysValidSchema)(a,i)){n.fail();return}let o=s.name("valid");n.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},o),n.failResult(o,()=>n.reset(),()=>n.error())},error:{message:"must NOT be valid"}};t.default=r}),she=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=xs(),r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:e.validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r}),ihe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:"must match exactly one schema in oneOf",params:({params:i})=>e._`{passingSchemas: ${i.passing}}`},s={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:n,code(i){let{gen:a,schema:o,parentSchema:c,it:l}=i;if(!Array.isArray(o))throw Error("ajv implementation error");if(l.opts.discriminator&&c.discriminator)return;let u=o,p=a.let("valid",!1),d=a.let("passing",null),m=a.name("_valid");i.setParams({passing:d}),a.block(f),i.result(p,()=>i.reset(),()=>i.error(!0));function f(){u.forEach((v,g)=>{let h;(0,r.alwaysValidSchema)(l,v)?a.var(m,!0):h=i.subschema({keyword:"oneOf",schemaProp:g,compositeRule:!0},m),g>0&&a.if(e._`${m} && ${p}`).assign(p,!1).assign(d,e._`[${d}, ${g}]`).else(),a.if(m,()=>{a.assign(p,!0),a.assign(d,g),h&&i.mergeEvaluated(h,e.Name)})})}}};t.default=s}),ahe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:"allOf",schemaType:"array",code(n){let{gen:s,schema:i,it:a}=n;if(!Array.isArray(i))throw Error("ajv implementation error");let o=s.name("valid");i.forEach((c,l)=>{if((0,e.alwaysValidSchema)(a,c))return;let u=n.subschema({keyword:"allOf",schemaProp:l},o);n.ok(o),n.mergeEvaluated(u)})}};t.default=r}),ohe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=rt(),n={message:({params:a})=>e.str`must match "${a.ifClause}" schema`,params:({params:a})=>e._`{failingKeyword: ${a.ifClause}}`},s={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:n,code(a){let{gen:o,parentSchema:c,it:l}=a;c.then===void 0&&c.else===void 0&&(0,r.checkStrictMode)(l,'"if" without "then" and "else" is ignored');let u=i(l,"then"),p=i(l,"else");if(!u&&!p)return;let d=o.let("valid",!0),m=o.name("_valid");if(f(),a.reset(),u&&p){let g=o.let("ifClause");a.setParams({ifClause:g}),o.if(m,v("then",g),v("else",g))}else u?o.if(m,v("then")):o.if((0,e.not)(m),v("else"));a.pass(d,()=>a.error(!0));function f(){let g=a.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},m);a.mergeEvaluated(g)}function v(g,h){return()=>{let y=a.subschema({keyword:g},m);o.assign(d,m),a.mergeValidEvaluated(y,d),h?o.assign(h,e._`${g}`):a.setParams({ifClause:g})}}}};function i(a,o){let c=a.schema[o];return c!==void 0&&!(0,r.alwaysValidSchema)(a,c)}t.default=s}),che=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=rt(),r={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:n,parentSchema:s,it:i}){s.if===void 0&&(0,e.checkStrictMode)(i,`"${n}" without "if" is ignored`)}};t.default=r}),lhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=jF(),r=Jfe(),n=AF(),s=Qfe(),i=Yfe(),a=Xfe(),o=ehe(),c=NF(),l=the(),u=rhe(),p=nhe(),d=she(),m=ihe(),f=ahe(),v=ohe(),g=che();function h(y=!1){let b=[p.default,d.default,m.default,f.default,v.default,g.default,o.default,c.default,a.default,l.default,u.default];return y?b.push(r.default,s.default):b.push(e.default,n.default),b.push(i.default),b}t.default=h}),uhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r={message:({schemaCode:s})=>e.str`must match format "${s}"`,params:({schemaCode:s})=>e._`{format: ${s}}`},n={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:r,code(s,i){let{gen:a,data:o,$data:c,schema:l,schemaCode:u,it:p}=s,{opts:d,errSchemaPath:m,schemaEnv:f,self:v}=p;if(!d.validateFormats)return;c?g():h();function g(){let y=a.scopeValue("formats",{ref:v.formats,code:d.code.formats}),b=a.const("fDef",e._`${y}[${u}]`),x=a.let("fType"),w=a.let("format");a.if(e._`typeof ${b} == "object" && !(${b} instanceof RegExp)`,()=>a.assign(x,e._`${b}.type || "string"`).assign(w,e._`${b}.validate`),()=>a.assign(x,e._`"string"`).assign(w,b)),s.fail$data((0,e.or)(S(),k()));function S(){return d.strictSchema===!1?e.nil:e._`${u} && !${w}`}function k(){let E=f.$async?e._`(${b}.async ? await ${w}(${o}) : ${w}(${o}))`:e._`${w}(${o})`,R=e._`(typeof ${w} == "function" ? ${E} : ${w}.test(${o}))`;return e._`${w} && ${w} !== true && ${x} === ${i} && !${R}`}}function h(){let y=v.formats[l];if(!y){S();return}if(y===!0)return;let[b,x,w]=k(y);b===i&&s.pass(E());function S(){if(d.strictSchema===!1){v.logger.warn(R());return}throw Error(R());function R(){return`unknown format "${l}" ignored in schema at path "${m}"`}}function k(R){let O=R instanceof RegExp?(0,e.regexpCode)(R):d.code.formats?e._`${d.code.formats}${(0,e.getProperty)(l)}`:void 0,C=a.scopeValue("formats",{key:l,ref:R,code:O});return typeof R=="object"&&!(R instanceof RegExp)?[R.type||"string",R.validate,e._`${C}.validate`]:["string",R,C]}function E(){if(typeof y=="object"&&!(y instanceof RegExp)&&y.async){if(!f.$async)throw Error("async format in sync schema");return e._`await ${w}(${o})`}return typeof x=="function"?e._`${w}(${o})`:e._`${w}.test(${o})`}}}};t.default=n}),phe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=uhe(),r=[e.default];t.default=r}),dhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]}),mhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=Mfe(),r=Kfe(),n=lhe(),s=phe(),i=dhe(),a=[e.default,r.default,(0,n.default)(),s.default,i.metadataVocabulary,i.contentVocabulary];t.default=a}),fhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0;var e;(function(r){r.Tag="tag",r.Mapping="mapping"})(e||(t.DiscrError=e={}))}),hhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0});var e=De(),r=fhe(),n=QE(),s=iy(),i=rt(),a={message:({params:{discrError:c,tagName:l}})=>c===r.DiscrError.Tag?`tag "${l}" must be string`:`value of tag "${l}" must be in oneOf`,params:({params:{discrError:c,tag:l,tagName:u}})=>e._`{error: ${c}, tag: ${u}, tagValue: ${l}}`},o={keyword:"discriminator",type:"object",schemaType:"object",error:a,code(c){let{gen:l,data:u,schema:p,parentSchema:d,it:m}=c,{oneOf:f}=d;if(!m.opts.discriminator)throw Error("discriminator: requires discriminator option");let v=p.propertyName;if(typeof v!="string")throw Error("discriminator: requires propertyName");if(p.mapping)throw Error("discriminator: mapping is not supported");if(!f)throw Error("discriminator: requires oneOf keyword");let g=l.let("valid",!1),h=l.const("tag",e._`${u}${(0,e.getProperty)(v)}`);l.if(e._`typeof ${h} == "string"`,()=>y(),()=>c.error(!1,{discrError:r.DiscrError.Tag,tag:h,tagName:v})),c.ok(g);function y(){let w=x();l.if(!1);for(let S in w)l.elseIf(e._`${h} === ${S}`),l.assign(g,b(w[S]));l.else(),c.error(!1,{discrError:r.DiscrError.Mapping,tag:h,tagName:v}),l.endIf()}function b(w){let S=l.name("valid"),k=c.subschema({keyword:"oneOf",schemaProp:w},S);return c.mergeEvaluated(k,e.Name),S}function x(){var w;let S={},k=R(d),E=!0;for(let $=0;${e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}),DF=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=t.Ajv=void 0;var r=Nfe(),n=mhe(),s=hhe(),i=ghe(),a=["/properties"],o="http://json-schema.org/draft-07/schema";class c extends r.default{_addVocabularies(){super._addVocabularies(),n.default.forEach(f=>this.addVocabulary(f)),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let f=this.opts.$data?this.$dataMetaSchema(i,a):i;this.addMetaSchema(f,o,!1),this.refs["http://json-schema.org/schema"]=o}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}}t.Ajv=c,e.exports=t=c,e.exports.Ajv=c,Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var l=sy();Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=De();Object.defineProperty(t,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var p=JE();Object.defineProperty(t,"ValidationError",{enumerable:!0,get:function(){return p.default}});var d=iy();Object.defineProperty(t,"MissingRefError",{enumerable:!0,get:function(){return d.default}})}),vhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatNames=t.fastFormats=t.fullFormats=void 0;function e(C,$){return{validate:C,compare:$}}t.fullFormats={date:e(i,a),time:e(c(!0),l),"date-time":e(d(!0),m),"iso-time":e(c(),u),"iso-date-time":e(d(),f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:O,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:b,int32:{type:"number",validate:S},int64:{type:"number",validate:k},float:{type:"number",validate:E},double:{type:"number",validate:E},password:!0,binary:!0},t.fastFormats={...t.fullFormats,date:e(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,a),time:e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,m),"iso-time":e(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":e(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,f),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},t.formatNames=Object.keys(t.fullFormats);function r(C){return C%4===0&&(C%100!==0||C%400===0)}var n=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,s=[0,31,28,31,30,31,30,31,31,30,31,30,31];function i(C){let $=n.exec(C);if(!$)return!1;let q=+$[1],B=+$[2],re=+$[3];return B>=1&&B<=12&&re>=1&&re<=(B===2&&r(q)?29:s[B])}function a(C,$){if(C&&$)return C>$?1:C<$?-1:0}var o=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function c(C){return function($){let q=o.exec($);if(!q)return!1;let B=+q[1],re=+q[2],G=+q[3],yt=q[4],Cr=q[5]==="-"?-1:1,Fe=+(q[6]||0),K=+(q[7]||0);if(Fe>23||K>59||C&&!yt)return!1;if(B<=23&&re<=59&&G<60)return!0;let j=re-K*Cr,W=B-Fe*Cr-(j<0?1:0);return(W===23||W===-1)&&(j===59||j===-1)&&G<61}}function l(C,$){if(!(C&&$))return;let q=new Date("2020-01-01T"+C).valueOf(),B=new Date("2020-01-01T"+$).valueOf();if(q&&B)return q-B}function u(C,$){if(!(C&&$))return;let q=o.exec(C),B=o.exec($);if(q&&B)return C=q[1]+q[2]+q[3],$=B[1]+B[2]+B[3],C>$?1:C<$?-1:0}var p=/t|\s/i;function d(C){let $=c(C);return function(q){let B=q.split(p);return B.length===2&&i(B[0])&&$(B[1])}}function m(C,$){if(!(C&&$))return;let q=new Date(C).valueOf(),B=new Date($).valueOf();if(q&&B)return q-B}function f(C,$){if(!(C&&$))return;let[q,B]=C.split(p),[re,G]=$.split(p),yt=a(q,re);if(yt!==void 0)return yt||l(B,G)}var v=/\/|:/,g=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function h(C){return v.test(C)&&g.test(C)}var y=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function b(C){return y.lastIndex=0,y.test(C)}var x=-2147483648,w=2147483647;function S(C){return Number.isInteger(C)&&C<=w&&C>=x}function k(C){return Number.isInteger(C)}function E(){return!0}var R=/[^\\]\\Z/;function O(C){if(R.test(C))return!1;try{return new RegExp(C),!0}catch{return!1}}}),yhe=ne(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.formatLimitDefinition=void 0;var e=DF(),r=De(),n=r.operators,s={formatMaximum:{okStr:"<=",ok:n.LTE,fail:n.GT},formatMinimum:{okStr:">=",ok:n.GTE,fail:n.LT},formatExclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},formatExclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}},i={message:({keyword:o,schemaCode:c})=>r.str`should be ${s[o].okStr} ${c}`,params:({keyword:o,schemaCode:c})=>r._`{comparison: ${s[o].okStr}, limit: ${c}}`};t.formatLimitDefinition={keyword:Object.keys(s),type:"string",schemaType:"string",$data:!0,error:i,code(o){let{gen:c,data:l,schemaCode:u,keyword:p,it:d}=o,{opts:m,self:f}=d;if(!m.validateFormats)return;let v=new e.KeywordCxt(d,f.RULES.all.format.definition,"format");v.$data?g():h();function g(){let b=c.scopeValue("formats",{ref:f.formats,code:m.code.formats}),x=c.const("fmt",r._`${b}[${v.schemaCode}]`);o.fail$data((0,r.or)(r._`typeof ${x} != "object"`,r._`${x} instanceof RegExp`,r._`typeof ${x}.compare != "function"`,y(x)))}function h(){let b=v.schema,x=f.formats[b];if(!x||x===!0)return;if(typeof x!="object"||x instanceof RegExp||typeof x.compare!="function")throw Error(`"${p}": format "${b}" does not define "compare" function`);let w=c.scopeValue("formats",{key:b,ref:x,code:m.code.formats?r._`${m.code.formats}${(0,r.getProperty)(b)}`:void 0});o.fail$data(y(w))}function y(b){return r._`${b}.compare(${l}, ${u}) ${s[p].fail} 0`}},dependencies:["format"]};var a=o=>(o.addKeyword(t.formatLimitDefinition),o);t.default=a}),bhe=ne((t,e)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=vhe(),n=yhe(),s=De(),i=new s.Name("fullFormats"),a=new s.Name("fastFormats"),o=(l,u={keywords:!0})=>{if(Array.isArray(u))return c(l,u,r.fullFormats,i),l;let[p,d]=u.mode==="fast"?[r.fastFormats,a]:[r.fullFormats,i],m=u.formats||r.formatNames;return c(l,m,p,d),u.keywords&&(0,n.default)(l),l};o.get=(l,u="full")=>{let p=(u==="fast"?r.fastFormats:r.fullFormats)[l];if(!p)throw Error(`Unknown format "${l}"`);return p};function c(l,u,p,d){var m,f;(m=(f=l.opts.code).formats)!==null&&m!==void 0||(f.formats=s._`require("ajv-formats/dist/formats").${d}`);for(let v of u)l.addFormat(v,p[v])}e.exports=t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.default=o}),xhe=50;function MF(t=xhe){let e=new AbortController;return(0,zF.setMaxListeners)(t,e.signal),e}var Vi=class extends Error{};function UF(){return process.versions.bun!==void 0}var _he=typeof global=="object"&&global&&global.Object===Object&&global,whe=_he,She=typeof self=="object"&&self&&self.Object===Object&&self,khe=whe||She||Function("return this")(),XE=khe,Ehe=XE.Symbol,hv=Ehe,qF=Object.prototype,The=qF.hasOwnProperty,Rhe=qF.toString,nd=hv?hv.toStringTag:void 0;function Phe(t){var e=The.call(t,nd),r=t[nd];try{t[nd]=void 0;var n=!0}catch{}var s=Rhe.call(t);return n&&(e?t[nd]=r:delete t[nd]),s}var Ihe=Phe,Che=Object.prototype,Ohe=Che.toString;function jhe(t){return Ohe.call(t)}var Ahe=jhe,Nhe="[object Null]",Dhe="[object Undefined]",O6=hv?hv.toStringTag:void 0;function zhe(t){return t==null?t===void 0?Dhe:Nhe:O6&&O6 in Object(t)?Ihe(t):Ahe(t)}var Mhe=zhe;function $he(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var FF=$he,Lhe="[object AsyncFunction]",Uhe="[object Function]",qhe="[object GeneratorFunction]",Fhe="[object Proxy]";function Hhe(t){if(!FF(t))return!1;var e=Mhe(t);return e==Uhe||e==qhe||e==Lhe||e==Fhe}var Bhe=Hhe,Whe=XE["__core-js_shared__"],oE=Whe,j6=(function(){var t=/[^.]+$/.exec(oE&&oE.keys&&oE.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function Zhe(t){return!!j6&&j6 in t}var Ghe=Zhe,Vhe=Function.prototype,Khe=Vhe.toString;function Jhe(t){if(t!=null){try{return Khe.call(t)}catch{}try{return t+""}catch{}}return""}var Qhe=Jhe,Yhe=/[\\^$.*+?()[\]{}|]/g,Xhe=/^\[object .+?Constructor\]$/,ege=Function.prototype,tge=Object.prototype,rge=ege.toString,nge=tge.hasOwnProperty,sge=RegExp("^"+rge.call(nge).replace(Yhe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ige(t){if(!FF(t)||Ghe(t))return!1;var e=Bhe(t)?sge:Xhe;return e.test(Qhe(t))}var age=ige;function oge(t,e){return t?.[e]}var cge=oge;function lge(t,e){var r=cge(t,e);return age(r)?r:void 0}var HF=lge,uge=HF(Object,"create"),Ed=uge;function pge(){this.__data__=Ed?Ed(null):{},this.size=0}var dge=pge;function mge(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var fge=mge,hge="__lodash_hash_undefined__",gge=Object.prototype,vge=gge.hasOwnProperty;function yge(t){var e=this.__data__;if(Ed){var r=e[t];return r===hge?void 0:r}return vge.call(e,t)?e[t]:void 0}var bge=yge,xge=Object.prototype,_ge=xge.hasOwnProperty;function wge(t){var e=this.__data__;return Ed?e[t]!==void 0:_ge.call(e,t)}var Sge=wge,kge="__lodash_hash_undefined__";function Ege(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Ed&&e===void 0?kge:e,this}var Tge=Ege;function ll(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}var Lge=$ge;function Uge(t,e){var r=this.__data__,n=ay(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var qge=Uge;function ul(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e(process.env.CLAUDE_CONFIG_DIR??(0,ZF.join)((0,WF.homedir)(),".claude")).normalize("NFC"),()=>process.env.CLAUDE_CONFIG_DIR);function Qa(t){if(!t)return!1;if(typeof t=="boolean")return t;let e=t.toLowerCase().trim();return["1","true","yes","on"].includes(e)}function ae(t,e,r,n,s){if(n==="m")throw TypeError("Private method is not writable");if(n==="a"&&!s)throw TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!s:!e.has(t))throw TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(t,r):s?s.value=r:e.set(t,r),r}function D(t,e,r,n){if(r==="a"&&!n)throw TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}var VF=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return VF=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),r=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^r()&15>>+n/4).toString(16))};function Td(t){return typeof t=="object"&&t!==null&&("name"in t&&t.name==="AbortError"||"message"in t&&String(t.message).includes("FetchRequestCanceledException"))}var xE=t=>{if(t instanceof Error)return t;if(typeof t=="object"&&t!==null){try{if(Object.prototype.toString.call(t)==="[object Error]"){let e=Error(t.message,t.cause?{cause:t.cause}:{});return t.stack&&(e.stack=t.stack),t.cause&&!e.cause&&(e.cause=t.cause),t.name&&(e.name=t.name),e}}catch{}try{return Error(JSON.stringify(t))}catch{}}return Error(t)},Ee=class extends Error{},Kr=class t extends Ee{constructor(e,r,n,s){super(`${t.makeMessage(e,r,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("request-id"),this.error=r}static makeMessage(e,r,n){let s=r?.message?typeof r.message=="string"?r.message:JSON.stringify(r.message):r?JSON.stringify(r):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,r,n,s){if(!e||!s)return new Wc({message:n,cause:xE(r)});let i=r;return e===400?new vv(e,i,n,s):e===401?new yv(e,i,n,s):e===403?new bv(e,i,n,s):e===404?new xv(e,i,n,s):e===409?new _v(e,i,n,s):e===422?new wv(e,i,n,s):e===429?new Sv(e,i,n,s):e>=500?new kv(e,i,n,s):new t(e,i,n,s)}},Rn=class extends Kr{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Wc=class extends Kr{constructor({message:e,cause:r}){super(void 0,void 0,e||"Connection error.",void 0),r&&(this.cause=r)}},gv=class extends Wc{constructor({message:e}={}){super({message:e??"Request timed out."})}},vv=class extends Kr{},yv=class extends Kr{},bv=class extends Kr{},xv=class extends Kr{},_v=class extends Kr{},wv=class extends Kr{},Sv=class extends Kr{},kv=class extends Kr{},ive=/^[a-z][a-z0-9+.-]*:/i,ave=t=>ive.test(t),_E=t=>(_E=Array.isArray,_E(t)),N6=_E;function wE(t){return typeof t!="object"?{}:t??{}}function ove(t){if(!t)return!0;for(let e in t)return!1;return!0}function cve(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var lve=(t,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new Ee(`${t} must be an integer`);if(e<0)throw new Ee(`${t} must be a positive integer`);return e},KF=t=>{try{return JSON.parse(t)}catch{return}},uve=t=>new Promise(e=>setTimeout(e,t)),Mc="0.74.0",pve=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function dve(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var mve=()=>{let t=dve();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":z6(Deno.build.os),"X-Stainless-Arch":D6(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":z6(globalThis.process.platform??"unknown"),"X-Stainless-Arch":D6(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=fve();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Mc,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function fve(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:r}of t){let n=r.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,a=n[3]||0;return{browser:e,version:`${s}.${i}.${a}`}}}return null}var D6=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",z6=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),M6,hve=()=>M6??(M6=mve());function gve(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function JF(...t){let e=globalThis.ReadableStream;if(typeof e>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...t)}function QF(t){let e=Symbol.asyncIterator in t?t[Symbol.asyncIterator]():t[Symbol.iterator]();return JF({start(){},async pull(r){let{done:n,value:s}=await e.next();n?r.close():r.enqueue(s)},async cancel(){await e.return?.()}})}function tT(t){if(t[Symbol.asyncIterator])return t;let e=t.getReader();return{async next(){try{let r=await e.read();return r?.done&&e.releaseLock(),r}catch(r){throw e.releaseLock(),r}},async return(){let r=e.cancel();return e.releaseLock(),await r,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function vve(t){if(t===null||typeof t!="object")return;if(t[Symbol.asyncIterator]){await t[Symbol.asyncIterator]().return?.();return}let e=t.getReader(),r=e.cancel();e.releaseLock(),await r}var yve=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});function bve(t){let e=0;for(let s of t)e+=s.length;let r=new Uint8Array(e),n=0;for(let s of t)r.set(s,n),n+=s.length;return r}var $6;function rT(t){let e;return($6??(e=new globalThis.TextEncoder,$6=e.encode.bind(e)))(t)}var L6;function U6(t){let e;return(L6??(e=new globalThis.TextDecoder,L6=e.decode.bind(e)))(t)}var kn,En,Xa=class{constructor(){kn.set(this,void 0),En.set(this,void 0),ae(this,kn,new Uint8Array,"f"),ae(this,En,null,"f")}decode(e){if(e==null)return[];let r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?rT(e):e;ae(this,kn,bve([D(this,kn,"f"),r]),"f");let n=[],s;for(;(s=xve(D(this,kn,"f"),D(this,En,"f")))!=null;){if(s.carriage&&D(this,En,"f")==null){ae(this,En,s.index,"f");continue}if(D(this,En,"f")!=null&&(s.index!==D(this,En,"f")+1||s.carriage)){n.push(U6(D(this,kn,"f").subarray(0,D(this,En,"f")-1))),ae(this,kn,D(this,kn,"f").subarray(D(this,En,"f")),"f"),ae(this,En,null,"f");continue}let i=D(this,En,"f")!==null?s.preceding-1:s.preceding,a=U6(D(this,kn,"f").subarray(0,i));n.push(a),ae(this,kn,D(this,kn,"f").subarray(s.index),"f"),ae(this,En,null,"f")}return n}flush(){return D(this,kn,"f").length?this.decode(` +`):[]}};kn=new WeakMap,En=new WeakMap;Xa.NEWLINE_CHARS=new Set([` +`,"\r"]);Xa.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function xve(t,e){for(let r=e??0;r{if(t){if(cve(Ev,t))return t;Gr(r).warn(`${e} was set to ${JSON.stringify(t)}, expected one of ${JSON.stringify(Object.keys(Ev))}`)}};function xd(){}function Bg(t,e,r){return!e||Ev[t]>Ev[r]?xd:e[t].bind(e)}var wve={error:xd,warn:xd,info:xd,debug:xd},F6=new WeakMap;function Gr(t){let e=t.logger,r=t.logLevel??"off";if(!e)return wve;let n=F6.get(e);if(n&&n[0]===r)return n[1];let s={error:Bg("error",e,r),warn:Bg("warn",e,r),info:Bg("info",e,r),debug:Bg("debug",e,r)};return F6.set(e,[r,s]),s}var Ja=t=>(t.options&&(t.options={...t.options},delete t.options.headers),t.headers&&(t.headers=Object.fromEntries((t.headers instanceof Headers?[...t.headers]:Object.entries(t.headers)).map(([e,r])=>[e,e.toLowerCase()==="x-api-key"||e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":r]))),"retryOfRequestLogID"in t&&(t.retryOfRequestLogID&&(t.retryOf=t.retryOfRequestLogID),delete t.retryOfRequestLogID),t),sd,eo=class t{constructor(e,r,n){this.iterator=e,sd.set(this,void 0),this.controller=r,ae(this,sd,n,"f")}static fromSSEResponse(e,r,n){let s=!1,i=n?Gr(n):console;async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of Sve(e,r)){if(c.event==="completion")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event==="message_start"||c.event==="message_delta"||c.event==="message_stop"||c.event==="content_block_start"||c.event==="content_block_delta"||c.event==="content_block_stop")try{yield JSON.parse(c.data)}catch(l){throw i.error("Could not parse message into JSON:",c.data),i.error("From chunk:",c.raw),l}if(c.event!=="ping"&&c.event==="error")throw new Kr(void 0,KF(c.data)??c.data,void 0,e.headers)}o=!0}catch(c){if(Td(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}static fromReadableStream(e,r,n){let s=!1;async function*i(){let o=new Xa,c=tT(e);for await(let l of c)for(let u of o.decode(l))yield u;for(let l of o.flush())yield l}async function*a(){if(s)throw new Ee("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let o=!1;try{for await(let c of i())o||c&&(yield JSON.parse(c));o=!0}catch(c){if(Td(c))return;throw c}finally{o||r.abort()}}return new t(a,r,n)}[(sd=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],r=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let a=n.next();e.push(a),r.push(a)}return i.shift()}});return[new t(()=>s(e),this.controller,D(this,sd,"f")),new t(()=>s(r),this.controller,D(this,sd,"f"))]}toReadableStream(){let e=this,r;return JF({async start(){r=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await r.next();if(i)return n.close();let a=rT(JSON.stringify(s)+` +`);n.enqueue(a)}catch(s){n.error(s)}},async cancel(){await r.return?.()}})}};async function*Sve(t,e){if(!t.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");let r=new SE,n=new Xa,s=tT(t.body);for await(let i of kve(s))for(let a of n.decode(i)){let o=r.decode(a);o&&(yield o)}for(let i of n.flush()){let a=r.decode(i);a&&(yield a)}}async function*kve(t){let e=new Uint8Array;for await(let r of t){if(r==null)continue;let n=r instanceof ArrayBuffer?new Uint8Array(r):typeof r=="string"?rT(r):r,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=_ve(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var SE=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(` +`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[r,n,s]=Eve(e,":");return s.startsWith(" ")&&(s=s.substring(1)),r==="event"?this.event=s:r==="data"&&this.data.push(s),null}};function Eve(t,e){let r=t.indexOf(e);return r!==-1?[t.substring(0,r),e,t.substring(r+e.length)]:[t,"",""]}async function YF(t,e){let{response:r,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,a=await(async()=>{if(e.options.stream)return Gr(t).debug("response",r.status,r.url,r.headers,r.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(r,e.controller):eo.fromSSEResponse(r,e.controller);if(r.status===204)return null;if(e.options.__binaryResponse)return r;let o=r.headers.get("content-type")?.split(";")[0]?.trim();if(o?.includes("application/json")||o?.endsWith("+json")){if(r.headers.get("content-length")==="0")return;let c=await r.json();return XF(c,r)}return await r.text()})();return Gr(t).debug(`[${n}] response parsed`,Ja({retryOfRequestLogID:s,url:r.url,status:r.status,body:a,durationMs:Date.now()-i})),a}function XF(t,e){return!t||typeof t!="object"||Array.isArray(t)?t:Object.defineProperty(t,"_request_id",{value:e.headers.get("request-id"),enumerable:!1})}var _d,Tv=class t extends Promise{constructor(e,r,n=YF){super(s=>{s(null)}),this.responsePromise=r,this.parseResponse=n,_d.set(this,void 0),ae(this,_d,e,"f")}_thenUnwrap(e){return new t(D(this,_d,"f"),this.responsePromise,async(r,n)=>XF(e(await this.parseResponse(r,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,r]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:r,request_id:r.headers.get("request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(D(this,_d,"f"),e))),this.parsedPromise}then(e,r){return this.parse().then(e,r)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};_d=new WeakMap;var Wg,Rv=class{constructor(e,r,n,s){Wg.set(this,void 0),ae(this,Wg,e,"f"),this.options=s,this.response=r,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new Ee("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await D(this,Wg,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(Wg=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let r of e.getPaginatedItems())yield r}},kE=class extends Tv{constructor(e,r,n){super(e,r,async(s,i)=>new n(s,i.response,await YF(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let r of e)yield r}},to=class extends Rv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.first_id=n.first_id||null,this.last_id=n.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let r=this.first_id;return r?{...this.options,query:{...wE(this.options.query),before_id:r}}:null}let e=this.last_id;return e?{...this.options,query:{...wE(this.options.query),after_id:e}}:null}},Pv=class extends Rv{constructor(e,r,n,s){super(e,r,n,s),this.data=n.data||[],this.has_more=n.has_more||!1,this.next_page=n.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.next_page;return e?{...this.options,query:{...wE(this.options.query),page:e}}:null}},e8=()=>{if(typeof File>"u"){let{process:t}=globalThis,e=typeof t?.versions?.node=="string"&&parseInt(t.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Fc(t,e,r){return e8(),new File(t,e??"unknown_file",r)}function lv(t,e){let r=typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"";return e?r.split(/[\\/]/).pop()||void 0:r}var t8=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function",nT=async(t,e,r=!0)=>({...t,body:await Rve(t.body,e,r)}),H6=new WeakMap;function Tve(t){let e=typeof t=="function"?t:t.fetch,r=H6.get(e);if(r)return r;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return H6.set(e,n),n}var Rve=async(t,e,r=!0)=>{if(!await Tve(e))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let n=new FormData;return await Promise.all(Object.entries(t||{}).map(([s,i])=>EE(n,s,i,r))),n},Pve=t=>t instanceof Blob&&"name"in t,EE=async(t,e,r,n)=>{if(r!==void 0){if(r==null)throw TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")t.append(e,String(r));else if(r instanceof Response){let s={},i=r.headers.get("Content-Type");i&&(s={type:i}),t.append(e,Fc([await r.blob()],lv(r,n),s))}else if(t8(r))t.append(e,Fc([await new Response(QF(r)).blob()],lv(r,n)));else if(Pve(r))t.append(e,Fc([r],lv(r,n),{type:r.type}));else if(Array.isArray(r))await Promise.all(r.map(s=>EE(t,e+"[]",s,n)));else if(typeof r=="object")await Promise.all(Object.entries(r).map(([s,i])=>EE(t,`${e}[${s}]`,i,n)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${r} instead`)}},r8=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",Ive=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&r8(t),Cve=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function Ove(t,e,r){if(e8(),t=await t,e||(e=lv(t,!0)),Ive(t))return t instanceof File&&e==null&&r==null?t:Fc([await t.arrayBuffer()],e??t.name,{type:t.type,lastModified:t.lastModified,...r});if(Cve(t)){let s=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),Fc(await TE(s),e,r)}let n=await TE(t);if(!r?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(r={...r,type:s})}return Fc(n,e,r)}async function TE(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(r8(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(t8(t))for await(let r of t)e.push(...await TE(r));else{let r=t?.constructor?.name;throw Error(`Unexpected data type: ${typeof t}${r?`; constructor: ${r}`:""}${jve(t)}`)}return e}function jve(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(e=>`"${e}"`).join(", ")}]`}var Pn=class{constructor(e){this._client=e}},n8=Symbol.for("brand.privateNullableHeaders");function*Ave(t){if(!t)return;if(n8 in t){let{values:n,nulls:s}=t;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,r;t instanceof Headers?r=t.entries():N6(t)?r=t:(e=!0,r=Object.entries(t??{}));for(let n of r){let s=n[0];if(typeof s!="string")throw TypeError("expected header name to be a string");let i=N6(n[1])?n[1]:[n[1]],a=!1;for(let o of i)o!==void 0&&(e&&!a&&(a=!0,yield[s,null]),yield[s,o])}}var Ve=t=>{let e=new Headers,r=new Set;for(let n of t){let s=new Set;for(let[i,a]of Ave(n)){let o=i.toLowerCase();s.has(o)||(e.delete(i),s.add(o)),a===null?(e.delete(i),r.add(o)):(e.append(i,a),r.delete(o))}}return{[n8]:!0,values:e,nulls:r}},kd=Symbol("anthropic.sdk.stainlessHelper");function uv(t){return typeof t=="object"&&t!==null&&kd in t}function s8(t,e){let r=new Set;if(t)for(let n of t)uv(n)&&r.add(n[kd]);if(e){for(let n of e)if(uv(n)&&r.add(n[kd]),Array.isArray(n.content))for(let s of n.content)uv(s)&&r.add(s[kd])}return Array.from(r)}function i8(t,e){let r=s8(t,e);return r.length===0?{}:{"x-stainless-helper":r.join(", ")}}function Nve(t){return uv(t)?{"x-stainless-helper":t[kd]}:{}}function a8(t){return t.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var B6=Object.freeze(Object.create(null)),Dve=(t=a8)=>function(e,...r){if(e.length===1)return e[0];let n=!1,s=[],i=e.reduce((l,u,p)=>{/[?#]/.test(u)&&(n=!0);let d=r[p],m=(n?encodeURIComponent:t)(""+d);return p!==r.length&&(d==null||typeof d=="object"&&d.toString===Object.getPrototypeOf(Object.getPrototypeOf(d.hasOwnProperty??B6)??B6)?.toString)&&(m=d+"",s.push({start:l.length+u.length,length:m.length,error:`Value of type ${Object.prototype.toString.call(d).slice(8,-1)} is not a valid path parameter`})),l+u+(p===r.length?"":m)},""),a=i.split(/[?#]/,1)[0],o=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=o.exec(a))!==null;)s.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(s.sort((l,u)=>l.start-u.start),s.length>0){let l=0,u=s.reduce((p,d)=>{let m=" ".repeat(d.start-l),f="^".repeat(d.length);return l=d.start+d.length,p+m+f},"");throw new Ee(`Path parameters result in path with invalid segments: ${s.map(p=>p.error).join(` `)} ${i} -${u}`)}return i},Tr=Dve(a8),Iv=class extends Pn{list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/files",eo,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}download(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}/content`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}retrieveMetadata(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}upload(e,r){let{betas:n,...s}=e;return this._client.post("/v1/files",nT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},Nve(s.file),r?.headers])},this._client))}},Cv=class extends Pn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}?beta=true`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models?beta=true",eo,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},o8={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function c8(t){return t?.output_format??t?.output_config?.format}function W6(t,e,r){let n=c8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>{if(s.type==="text"){let i=Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(i,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return s}),parsed_output:null}:l8(t,e,r)}function l8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=zve(e,i.text);n===null&&(n=a);let o=Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1});return Object.defineProperty(o,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a},enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function zve(t,e){let r=c8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Mve=t=>{let e=0,r=[];for(;e{if(t.length===0)return t;let e=t[t.length-1];switch(e.type){case"separator":return t=t.slice(0,t.length-1),$c(t);case"number":let r=e.value[e.value.length-1];if(r==="."||r==="-")return t=t.slice(0,t.length-1),$c(t);case"string":let n=t[t.length-2];if(n?.type==="delimiter")return t=t.slice(0,t.length-1),$c(t);if(n?.type==="brace"&&n.value==="{")return t=t.slice(0,t.length-1),$c(t);break;case"delimiter":return t=t.slice(0,t.length-1),$c(t)}return t},$ve=t=>{let e=[];return t.map(r=>{r.type==="brace"&&(r.value==="{"?e.push("}"):e.splice(e.lastIndexOf("}"),1)),r.type==="paren"&&(r.value==="["?e.push("]"):e.splice(e.lastIndexOf("]"),1))}),e.length>0&&e.reverse().map(r=>{r==="}"?t.push({type:"brace",value:"}"}):r==="]"&&t.push({type:"paren",value:"]"})}),t},Lve=t=>{let e="";return t.map(r=>{r.type==="string"?e+='"'+r.value+'"':e+=r.value}),e},u8=t=>JSON.parse(Lve($ve($c(Mve(t))))),Zn,Hi,Ac,id,Zg,ad,od,Gg,cd,oi,ld,Vg,Kg,Za,Jg,Qg,ud,cE,Z6,Yg,lE,uE,pE,G6,V6="__json_buf";function K6(t){return t.type==="tool_use"||t.type==="server_tool_use"||t.type==="mcp_tool_use"}var RE=class t{constructor(e,r){Zn.add(this),this.messages=[],this.receivedMessages=[],Hi.set(this,void 0),Ac.set(this,null),this.controller=new AbortController,id.set(this,void 0),Zg.set(this,()=>{}),ad.set(this,()=>{}),od.set(this,void 0),Gg.set(this,()=>{}),cd.set(this,()=>{}),oi.set(this,{}),ld.set(this,!1),Vg.set(this,!1),Kg.set(this,!1),Za.set(this,!1),Jg.set(this,void 0),Qg.set(this,void 0),ud.set(this,void 0),Yg.set(this,n=>{if(ae(this,Vg,!0,"f"),Td(n)&&(n=new Rn),n instanceof Rn)return ae(this,Kg,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,id,new Promise((n,s)=>{ae(this,Zg,n,"f"),ae(this,ad,s,"f")}),"f"),ae(this,od,new Promise((n,s)=>{ae(this,Gg,n,"f"),ae(this,cd,s,"f")}),"f"),D(this,id,"f").catch(()=>{}),D(this,od,"f").catch(()=>{}),ae(this,Ac,e,"f"),ae(this,ud,r?.logger??console,"f")}get response(){return D(this,Jg,"f")}get request_id(){return D(this,Qg,"f")}async withResponse(){ae(this,Za,!0,"f");let e=await D(this,id,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Ac,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,Yg,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Zn,"m",lE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Zn,"m",uE).call(this,c);if(o.controller.signal?.aborted)throw new Rn;D(this,Zn,"m",pE).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,Jg,e,"f"),ae(this,Qg,e?.headers.get("request-id"),"f"),D(this,Zg,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,ld,"f")}get errored(){return D(this,Vg,"f")}get aborted(){return D(this,Kg,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,oi,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Za,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Za,!0,"f"),await D(this,od,"f")}get currentMessage(){return D(this,Hi,"f")}async finalMessage(){return await this.done(),D(this,Zn,"m",cE).call(this)}async finalText(){return await this.done(),D(this,Zn,"m",Z6).call(this)}_emit(e,...r){if(D(this,ld,"f"))return;e==="end"&&(ae(this,ld,!0,"f"),D(this,Gg,"f").call(this));let n=D(this,oi,"f")[e];if(n&&(D(this,oi,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Za,"f")&&!n?.length&&Promise.reject(s),D(this,ad,"f").call(this,s),D(this,cd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Za,"f")&&!n?.length&&Promise.reject(s),D(this,ad,"f").call(this,s),D(this,cd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Zn,"m",cE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Zn,"m",lE).call(this),this._connected(null);let i=Xa.fromReadableStream(e,this.controller);for await(let a of i)D(this,Zn,"m",uE).call(this,a);if(i.controller.signal?.aborted)throw new Rn;D(this,Zn,"m",pE).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Hi=new WeakMap,Ac=new WeakMap,id=new WeakMap,Zg=new WeakMap,ad=new WeakMap,od=new WeakMap,Gg=new WeakMap,cd=new WeakMap,oi=new WeakMap,ld=new WeakMap,Vg=new WeakMap,Kg=new WeakMap,Za=new WeakMap,Jg=new WeakMap,Qg=new WeakMap,ud=new WeakMap,Yg=new WeakMap,Zn=new WeakSet,cE=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},Z6=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},lE=function(){this.ended||ae(this,Hi,void 0,"f")},uE=function(e){if(this.ended)return;let r=D(this,Zn,"m",G6).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{K6(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}case"compaction_delta":{n.type==="compaction"&&n.content&&this._emit("compaction",n.content);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(W6(r,D(this,Ac,"f"),{logger:D(this,ud,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Hi,r,"f");break}case"content_block_start":case"message_delta":break}},pE=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Hi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Hi,void 0,"f"),W6(e,D(this,Ac,"f"),{logger:D(this,ud,"f")})},G6=function(e){let r=D(this,Hi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.container=e.delta.container,r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,r.context_management=e.context_management,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),e.usage.iterations!=null&&(r.usage.iterations=e.usage.iterations),r;case"content_block_start":return r.content.push(e.content_block),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&K6(n)){let s=n[V6]||"";s+=e.delta.partial_json;let i={...n};if(Object.defineProperty(i,V6,{value:s,enumerable:!1,writable:!0}),s)try{i.input=u8(s)}catch(a){let o=new Ee(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${a}. JSON: ${s}`);D(this,Yg,"f").call(this,o)}r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}case"compaction_delta":{n?.type==="compaction"&&(r.content[e.index]={...n,content:(n.content||"")+e.delta.content});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Xa(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Ov=class extends Error{constructor(e){let r=typeof e=="string"?e:e.map(n=>n.type==="text"?n.text:`[${n.type}]`).join(" ");super(r),this.name="ToolError",this.content=e}},Uve=1e5,qve=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: +${u}`)}return i},Tr=Dve(a8),Iv=class extends Pn{list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/files",to,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}download(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}/content`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}retrieveMetadata(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/files/${e}`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"files-api-2025-04-14"].toString()},n?.headers])})}upload(e,r){let{betas:n,...s}=e;return this._client.post("/v1/files",nT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"files-api-2025-04-14"].toString()},Nve(s.file),r?.headers])},this._client))}},Cv=class extends Pn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}?beta=true`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models?beta=true",to,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},o8={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function c8(t){return t?.output_format??t?.output_config?.format}function W6(t,e,r){let n=c8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>{if(s.type==="text"){let i=Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(i,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return s}),parsed_output:null}:l8(t,e,r)}function l8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=zve(e,i.text);n===null&&(n=a);let o=Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1});return Object.defineProperty(o,"parsed",{get(){return r.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),a},enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function zve(t,e){let r=c8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Mve=t=>{let e=0,r=[];for(;e{if(t.length===0)return t;let e=t[t.length-1];switch(e.type){case"separator":return t=t.slice(0,t.length-1),$c(t);case"number":let r=e.value[e.value.length-1];if(r==="."||r==="-")return t=t.slice(0,t.length-1),$c(t);case"string":let n=t[t.length-2];if(n?.type==="delimiter")return t=t.slice(0,t.length-1),$c(t);if(n?.type==="brace"&&n.value==="{")return t=t.slice(0,t.length-1),$c(t);break;case"delimiter":return t=t.slice(0,t.length-1),$c(t)}return t},$ve=t=>{let e=[];return t.map(r=>{r.type==="brace"&&(r.value==="{"?e.push("}"):e.splice(e.lastIndexOf("}"),1)),r.type==="paren"&&(r.value==="["?e.push("]"):e.splice(e.lastIndexOf("]"),1))}),e.length>0&&e.reverse().map(r=>{r==="}"?t.push({type:"brace",value:"}"}):r==="]"&&t.push({type:"paren",value:"]"})}),t},Lve=t=>{let e="";return t.map(r=>{r.type==="string"?e+='"'+r.value+'"':e+=r.value}),e},u8=t=>JSON.parse(Lve($ve($c(Mve(t))))),Zn,Hi,Ac,id,Zg,ad,od,Gg,cd,oi,ld,Vg,Kg,Ga,Jg,Qg,ud,cE,Z6,Yg,lE,uE,pE,G6,V6="__json_buf";function K6(t){return t.type==="tool_use"||t.type==="server_tool_use"||t.type==="mcp_tool_use"}var RE=class t{constructor(e,r){Zn.add(this),this.messages=[],this.receivedMessages=[],Hi.set(this,void 0),Ac.set(this,null),this.controller=new AbortController,id.set(this,void 0),Zg.set(this,()=>{}),ad.set(this,()=>{}),od.set(this,void 0),Gg.set(this,()=>{}),cd.set(this,()=>{}),oi.set(this,{}),ld.set(this,!1),Vg.set(this,!1),Kg.set(this,!1),Ga.set(this,!1),Jg.set(this,void 0),Qg.set(this,void 0),ud.set(this,void 0),Yg.set(this,n=>{if(ae(this,Vg,!0,"f"),Td(n)&&(n=new Rn),n instanceof Rn)return ae(this,Kg,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,id,new Promise((n,s)=>{ae(this,Zg,n,"f"),ae(this,ad,s,"f")}),"f"),ae(this,od,new Promise((n,s)=>{ae(this,Gg,n,"f"),ae(this,cd,s,"f")}),"f"),D(this,id,"f").catch(()=>{}),D(this,od,"f").catch(()=>{}),ae(this,Ac,e,"f"),ae(this,ud,r?.logger??console,"f")}get response(){return D(this,Jg,"f")}get request_id(){return D(this,Qg,"f")}async withResponse(){ae(this,Ga,!0,"f");let e=await D(this,id,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Ac,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,Yg,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Zn,"m",lE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Zn,"m",uE).call(this,c);if(o.controller.signal?.aborted)throw new Rn;D(this,Zn,"m",pE).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,Jg,e,"f"),ae(this,Qg,e?.headers.get("request-id"),"f"),D(this,Zg,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,ld,"f")}get errored(){return D(this,Vg,"f")}get aborted(){return D(this,Kg,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,oi,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,oi,"f")[e]||(D(this,oi,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Ga,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Ga,!0,"f"),await D(this,od,"f")}get currentMessage(){return D(this,Hi,"f")}async finalMessage(){return await this.done(),D(this,Zn,"m",cE).call(this)}async finalText(){return await this.done(),D(this,Zn,"m",Z6).call(this)}_emit(e,...r){if(D(this,ld,"f"))return;e==="end"&&(ae(this,ld,!0,"f"),D(this,Gg,"f").call(this));let n=D(this,oi,"f")[e];if(n&&(D(this,oi,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Ga,"f")&&!n?.length&&Promise.reject(s),D(this,ad,"f").call(this,s),D(this,cd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Ga,"f")&&!n?.length&&Promise.reject(s),D(this,ad,"f").call(this,s),D(this,cd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Zn,"m",cE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Zn,"m",lE).call(this),this._connected(null);let i=eo.fromReadableStream(e,this.controller);for await(let a of i)D(this,Zn,"m",uE).call(this,a);if(i.controller.signal?.aborted)throw new Rn;D(this,Zn,"m",pE).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Hi=new WeakMap,Ac=new WeakMap,id=new WeakMap,Zg=new WeakMap,ad=new WeakMap,od=new WeakMap,Gg=new WeakMap,cd=new WeakMap,oi=new WeakMap,ld=new WeakMap,Vg=new WeakMap,Kg=new WeakMap,Ga=new WeakMap,Jg=new WeakMap,Qg=new WeakMap,ud=new WeakMap,Yg=new WeakMap,Zn=new WeakSet,cE=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},Z6=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},lE=function(){this.ended||ae(this,Hi,void 0,"f")},uE=function(e){if(this.ended)return;let r=D(this,Zn,"m",G6).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{K6(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}case"compaction_delta":{n.type==="compaction"&&n.content&&this._emit("compaction",n.content);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(W6(r,D(this,Ac,"f"),{logger:D(this,ud,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Hi,r,"f");break}case"content_block_start":case"message_delta":break}},pE=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Hi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Hi,void 0,"f"),W6(e,D(this,Ac,"f"),{logger:D(this,ud,"f")})},G6=function(e){let r=D(this,Hi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.container=e.delta.container,r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,r.context_management=e.context_management,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),e.usage.iterations!=null&&(r.usage.iterations=e.usage.iterations),r;case"content_block_start":return r.content.push(e.content_block),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&K6(n)){let s=n[V6]||"";s+=e.delta.partial_json;let i={...n};if(Object.defineProperty(i,V6,{value:s,enumerable:!1,writable:!0}),s)try{i.input=u8(s)}catch(a){let o=new Ee(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${a}. JSON: ${s}`);D(this,Yg,"f").call(this,o)}r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}case"compaction_delta":{n?.type==="compaction"&&(r.content[e.index]={...n,content:(n.content||"")+e.delta.content});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new eo(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Ov=class extends Error{constructor(e){let r=typeof e=="string"?e:e.map(n=>n.type==="text"?n.text:`[${n.type}]`).join(" ");super(r),this.name="ToolError",this.content=e}},Uve=1e5,qve=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include: 1. Task Overview The user's core request and success criteria Any clarifications or constraints they specified @@ -1311,26 +1311,26 @@ User preferences or style requirements Domain-specific details that aren't obvious Any promises made to the user Be concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task. -Wrap your summary in tags.`,pd,Nc,Ga,sr,dd,Sn,ui,Bi,md,J6,PE;function Q6(){let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}}var jv=class{constructor(e,r,n){pd.add(this),this.client=e,Nc.set(this,!1),Ga.set(this,!1),sr.set(this,void 0),dd.set(this,void 0),Sn.set(this,void 0),ui.set(this,void 0),Bi.set(this,void 0),md.set(this,0),ae(this,sr,{params:{...r,messages:structuredClone(r.messages)}},"f");let s=["BetaToolRunner",...s8(r.tools,r.messages)].join(", ");ae(this,dd,{...n,headers:Ve([{"x-stainless-helper":s},n?.headers])},"f"),ae(this,Bi,Q6(),"f")}async*[(Nc=new WeakMap,Ga=new WeakMap,sr=new WeakMap,dd=new WeakMap,Sn=new WeakMap,ui=new WeakMap,Bi=new WeakMap,md=new WeakMap,pd=new WeakSet,J6=async function(){let e=D(this,sr,"f").params.compactionControl;if(!e||!e.enabled)return!1;let r=0;if(D(this,Sn,"f")!==void 0)try{let c=await D(this,Sn,"f");r=c.usage.input_tokens+(c.usage.cache_creation_input_tokens??0)+(c.usage.cache_read_input_tokens??0)+c.usage.output_tokens}catch{return!1}let n=e.contextTokenThreshold??Uve;if(ru.type!=="tool_use");l.length===0?a.pop():c.content=l}}let o=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:i}]}],max_tokens:D(this,sr,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(o.content[0]?.type!=="text")throw new Ee("Expected text response for compaction");return D(this,sr,"f").params.messages=[{role:"user",content:o.content}],!0},Symbol.asyncIterator)](){var e;if(D(this,Nc,"f"))throw new Ee("Cannot iterate over a consumed stream");ae(this,Nc,!0,"f"),ae(this,Ga,!0,"f"),ae(this,ui,void 0,"f");try{for(;;){let r;try{if(D(this,sr,"f").params.max_iterations&&D(this,md,"f")>=D(this,sr,"f").params.max_iterations)break;ae(this,Ga,!1,"f"),ae(this,ui,void 0,"f"),ae(this,md,(e=D(this,md,"f"),e++,e),"f"),ae(this,Sn,void 0,"f");let{max_iterations:n,compactionControl:s,...i}=D(this,sr,"f").params;if(i.stream?(r=this.client.beta.messages.stream({...i},D(this,dd,"f")),ae(this,Sn,r.finalMessage(),"f"),D(this,Sn,"f").catch(()=>{}),yield r):(ae(this,Sn,this.client.beta.messages.create({...i,stream:!1},D(this,dd,"f")),"f"),yield D(this,Sn,"f")),!await D(this,pd,"m",J6).call(this)){if(!D(this,Ga,"f")){let{role:o,content:c}=await D(this,Sn,"f");D(this,sr,"f").params.messages.push({role:o,content:c})}let a=await D(this,pd,"m",PE).call(this,D(this,sr,"f").params.messages.at(-1));if(a)D(this,sr,"f").params.messages.push(a);else if(!D(this,Ga,"f"))break}}finally{r&&r.abort()}}if(!D(this,Sn,"f"))throw new Ee("ToolRunner concluded without a message from the server");D(this,Bi,"f").resolve(await D(this,Sn,"f"))}catch(r){throw ae(this,Nc,!1,"f"),D(this,Bi,"f").promise.catch(()=>{}),D(this,Bi,"f").reject(r),ae(this,Bi,Q6(),"f"),r}}setMessagesParams(e){typeof e=="function"?D(this,sr,"f").params=e(D(this,sr,"f").params):D(this,sr,"f").params=e,ae(this,Ga,!0,"f"),ae(this,ui,void 0,"f")}async generateToolResponse(){let e=await D(this,Sn,"f")??this.params.messages.at(-1);return e?D(this,pd,"m",PE).call(this,e):null}done(){return D(this,Bi,"f").promise}async runUntilDone(){if(!D(this,Nc,"f"))for await(let e of this);return this.done()}get params(){return D(this,sr,"f").params}pushMessages(...e){this.setMessagesParams(r=>({...r,messages:[...r.messages,...e]}))}then(e,r){return this.runUntilDone().then(e,r)}};PE=async function(t){return D(this,ui,"f")!==void 0?D(this,ui,"f"):(ae(this,ui,Fve(D(this,sr,"f").params,t),"f"),D(this,ui,"f"))};async function Fve(t,e=t.messages.at(-1)){if(!e||e.role!=="assistant"||!e.content||typeof e.content=="string")return null;let r=e.content.filter(n=>n.type==="tool_use");return r.length===0?null:{role:"user",content:await Promise.all(r.map(async n=>{let s=t.tools.find(i=>("name"in i?i.name:i.mcp_server_name)===n.name);if(!s||!("run"in s))return{type:"tool_result",tool_use_id:n.id,content:`Error: Tool '${n.name}' not found`,is_error:!0};try{let i=n.input;"parse"in s&&s.parse&&(i=s.parse(i));let a=await s.run(i);return{type:"tool_result",tool_use_id:n.id,content:a}}catch(i){return{type:"tool_result",tool_use_id:n.id,content:i instanceof Ov?i.content:`Error: ${i instanceof Error?i.message:String(i)}`,is_error:!0}}}))}}var Av=class t{constructor(e,r){this.iterator=e,this.controller=r}async*decoder(){let e=new Ya;for await(let r of this.iterator)for(let n of e.decode(r))yield JSON.parse(n);for(let r of e.flush())yield JSON.parse(r)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,r){if(!e.body)throw r.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");return new t(tT(e.body),r)}},Nv=class extends Pn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/messages/batches?beta=true",{body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",eo,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}cancel(e,r={},n){let{betas:s}=r??{};return this._client.post(Tr`/v1/messages/batches/${e}/cancel?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}async results(e,r={},n){let s=await this.retrieve(e);if(!s.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);let{betas:i}=r??{};return this._client.get(s.results_url,{...n,headers:Ve([{"anthropic-beta":[...i??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},n?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((a,o)=>Av.fromResponse(o.response,o.controller))}},Y6={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},Hve=["claude-opus-4-6"],to=class extends Pn{constructor(){super(...arguments),this.batches=new Nv(this._client)}create(e,r){let n=X6(e),{betas:s,...i}=n;i.model in Y6&&console.warn(`The model '${i.model}' is deprecated and will reach end-of-life on ${Y6[i.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),i.model in Hve&&i.thinking&&i.thinking.type==="enabled"&&console.warn(`Using Claude with ${i.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let a=this._client._options.timeout;if(!i.stream&&a==null){let c=o8[i.model]??void 0;a=this._client.calculateNonstreamingTimeout(i.max_tokens,c)}let o=i8(i.tools,i.messages);return this._client.post("/v1/messages?beta=true",{body:i,timeout:a??6e5,...r,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},o,r?.headers]),stream:n.stream??!1})}parse(e,r){return r={...r,headers:Ve([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},r?.headers])},this.create(e,r).then(n=>l8(n,e,{logger:this._client.logger??console}))}stream(e,r){return RE.createMessage(this,e,r)}countTokens(e,r){let n=X6(e),{betas:s,...i}=n;return this._client.post("/v1/messages/count_tokens?beta=true",{body:i,...r,headers:Ve([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},r?.headers])})}toolRunner(e,r){return new jv(this._client,e,r)}};function X6(t){if(!t.output_format)return t;if(t.output_config?.format)throw new Ee("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:e,...r}=t;return{...r,output_config:{...t.output_config,format:e}}}to.Batches=Nv;to.BetaToolRunner=jv;to.ToolError=Ov;var Dv=class extends Pn{create(e,r={},n){let{betas:s,...i}=r??{};return this._client.post(Tr`/v1/skills/${e}/versions?beta=true`,nT({body:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])},this._client))}retrieve(e,r,n){let{skill_id:s,betas:i}=r;return this._client.get(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e,r={},n){let{betas:s,...i}=r??{};return this._client.getAPIList(Tr`/v1/skills/${e}/versions?beta=true`,Pv,{query:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}delete(e,r,n){let{skill_id:s,betas:i}=r;return this._client.delete(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}},Rd=class extends Pn{constructor(){super(...arguments),this.versions=new Dv(this._client)}create(e={},r){let{betas:n,...s}=e??{};return this._client.post("/v1/skills?beta=true",nT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])},this._client,!1))}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/skills?beta=true",Pv,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}};Rd.Versions=Dv;var Ji=class extends Pn{constructor(){super(...arguments),this.models=new Cv(this._client),this.messages=new to(this._client),this.files=new Iv(this._client),this.skills=new Rd(this._client)}};Ji.Models=Cv;Ji.Messages=to;Ji.Files=Iv;Ji.Skills=Rd;var zv=class extends Pn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/complete",{body:s,timeout:this._client._options.timeout??6e5,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers]),stream:e.stream??!1})}};function p8(t){return t?.output_config?.format}function eF(t,e,r){let n=p8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>s.type==="text"?Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1}):s),parsed_output:null}:d8(t,e,r)}function d8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=Bve(e,i.text);return n===null&&(n=a),Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function Bve(t,e){let r=p8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Gn,Wi,Dc,fd,Xg,hd,gd,ev,vd,ci,yd,tv,rv,Va,nv,sv,bd,dE,tF,mE,fE,hE,gE,rF,nF="__json_buf";function sF(t){return t.type==="tool_use"||t.type==="server_tool_use"}var IE=class t{constructor(e,r){Gn.add(this),this.messages=[],this.receivedMessages=[],Wi.set(this,void 0),Dc.set(this,null),this.controller=new AbortController,fd.set(this,void 0),Xg.set(this,()=>{}),hd.set(this,()=>{}),gd.set(this,void 0),ev.set(this,()=>{}),vd.set(this,()=>{}),ci.set(this,{}),yd.set(this,!1),tv.set(this,!1),rv.set(this,!1),Va.set(this,!1),nv.set(this,void 0),sv.set(this,void 0),bd.set(this,void 0),mE.set(this,n=>{if(ae(this,tv,!0,"f"),Td(n)&&(n=new Rn),n instanceof Rn)return ae(this,rv,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,fd,new Promise((n,s)=>{ae(this,Xg,n,"f"),ae(this,hd,s,"f")}),"f"),ae(this,gd,new Promise((n,s)=>{ae(this,ev,n,"f"),ae(this,vd,s,"f")}),"f"),D(this,fd,"f").catch(()=>{}),D(this,gd,"f").catch(()=>{}),ae(this,Dc,e,"f"),ae(this,bd,r?.logger??console,"f")}get response(){return D(this,nv,"f")}get request_id(){return D(this,sv,"f")}async withResponse(){ae(this,Va,!0,"f");let e=await D(this,fd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Dc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,mE,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Gn,"m",fE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Gn,"m",hE).call(this,c);if(o.controller.signal?.aborted)throw new Rn;D(this,Gn,"m",gE).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,nv,e,"f"),ae(this,sv,e?.headers.get("request-id"),"f"),D(this,Xg,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,yd,"f")}get errored(){return D(this,tv,"f")}get aborted(){return D(this,rv,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,ci,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Va,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Va,!0,"f"),await D(this,gd,"f")}get currentMessage(){return D(this,Wi,"f")}async finalMessage(){return await this.done(),D(this,Gn,"m",dE).call(this)}async finalText(){return await this.done(),D(this,Gn,"m",tF).call(this)}_emit(e,...r){if(D(this,yd,"f"))return;e==="end"&&(ae(this,yd,!0,"f"),D(this,ev,"f").call(this));let n=D(this,ci,"f")[e];if(n&&(D(this,ci,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Va,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Va,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Gn,"m",dE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Gn,"m",fE).call(this),this._connected(null);let i=Xa.fromReadableStream(e,this.controller);for await(let a of i)D(this,Gn,"m",hE).call(this,a);if(i.controller.signal?.aborted)throw new Rn;D(this,Gn,"m",gE).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Wi=new WeakMap,Dc=new WeakMap,fd=new WeakMap,Xg=new WeakMap,hd=new WeakMap,gd=new WeakMap,ev=new WeakMap,vd=new WeakMap,ci=new WeakMap,yd=new WeakMap,tv=new WeakMap,rv=new WeakMap,Va=new WeakMap,nv=new WeakMap,sv=new WeakMap,bd=new WeakMap,mE=new WeakMap,Gn=new WeakSet,dE=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},tF=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},fE=function(){this.ended||ae(this,Wi,void 0,"f")},hE=function(e){if(this.ended)return;let r=D(this,Gn,"m",rF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{sF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(eF(r,D(this,Dc,"f"),{logger:D(this,bd,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Wi,r,"f");break}case"content_block_start":case"message_delta":break}},gE=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Wi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Wi,void 0,"f"),eF(e,D(this,Dc,"f"),{logger:D(this,bd,"f")})},rF=function(e){let r=D(this,Wi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),r;case"content_block_start":return r.content.push({...e.content_block}),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&sF(n)){let s=n[nF]||"";s+=e.delta.partial_json;let i={...n};Object.defineProperty(i,nF,{value:s,enumerable:!1,writable:!0}),s&&(i.input=u8(s)),r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Xa(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Mv=class extends Pn{create(e,r){return this._client.post("/v1/messages/batches",{body:e,...r})}retrieve(e,r){return this._client.get(Tr`/v1/messages/batches/${e}`,r)}list(e={},r){return this._client.getAPIList("/v1/messages/batches",eo,{query:e,...r})}delete(e,r){return this._client.delete(Tr`/v1/messages/batches/${e}`,r)}cancel(e,r){return this._client.post(Tr`/v1/messages/batches/${e}/cancel`,r)}async results(e,r){let n=await this.retrieve(e);if(!n.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${n.processing_status} - ${n.id}`);return this._client.get(n.results_url,{...r,headers:Ve([{Accept:"application/binary"},r?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((s,i)=>Av.fromResponse(i.response,i.controller))}},Pd=class extends Pn{constructor(){super(...arguments),this.batches=new Mv(this._client)}create(e,r){e.model in iF&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${iF[e.model]} -Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),e.model in Wve&&e.thinking&&e.thinking.type==="enabled"&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!e.stream&&n==null){let i=o8[e.model]??void 0;n=this._client.calculateNonstreamingTimeout(e.max_tokens,i)}let s=i8(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:n??6e5,...r,headers:Ve([s,r?.headers]),stream:e.stream??!1})}parse(e,r){return this.create(e,r).then(n=>d8(n,e,{logger:this._client.logger??console}))}stream(e,r){return IE.createMessage(this,e,r,{logger:this._client.logger??console})}countTokens(e,r){return this._client.post("/v1/messages/count_tokens",{body:e,...r})}},iF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026"},Wve=["claude-opus-4-6"];Pd.Batches=Mv;var $v=class extends Pn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models",eo,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},iv=t=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[t]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(t)?.trim()},CE,sT,pv,m8,Zve="\\n\\nHuman:",Gve="\\n\\nAssistant:",Kt=class{constructor({baseURL:e=iv("ANTHROPIC_BASE_URL"),apiKey:r=iv("ANTHROPIC_API_KEY")??null,authToken:n=iv("ANTHROPIC_AUTH_TOKEN")??null,...s}={}){CE.add(this),pv.set(this,void 0);let i={apiKey:r,authToken:n,...s,baseURL:e||"https://api.anthropic.com"};if(!i.dangerouslyAllowBrowser&&pve())throw new Ee(`It looks like you're running in a browser-like environment. +Wrap your summary in tags.`,pd,Nc,Va,sr,dd,Sn,ui,Bi,md,J6,PE;function Q6(){let t,e;return{promise:new Promise((r,n)=>{t=r,e=n}),resolve:t,reject:e}}var jv=class{constructor(e,r,n){pd.add(this),this.client=e,Nc.set(this,!1),Va.set(this,!1),sr.set(this,void 0),dd.set(this,void 0),Sn.set(this,void 0),ui.set(this,void 0),Bi.set(this,void 0),md.set(this,0),ae(this,sr,{params:{...r,messages:structuredClone(r.messages)}},"f");let s=["BetaToolRunner",...s8(r.tools,r.messages)].join(", ");ae(this,dd,{...n,headers:Ve([{"x-stainless-helper":s},n?.headers])},"f"),ae(this,Bi,Q6(),"f")}async*[(Nc=new WeakMap,Va=new WeakMap,sr=new WeakMap,dd=new WeakMap,Sn=new WeakMap,ui=new WeakMap,Bi=new WeakMap,md=new WeakMap,pd=new WeakSet,J6=async function(){let e=D(this,sr,"f").params.compactionControl;if(!e||!e.enabled)return!1;let r=0;if(D(this,Sn,"f")!==void 0)try{let c=await D(this,Sn,"f");r=c.usage.input_tokens+(c.usage.cache_creation_input_tokens??0)+(c.usage.cache_read_input_tokens??0)+c.usage.output_tokens}catch{return!1}let n=e.contextTokenThreshold??Uve;if(ru.type!=="tool_use");l.length===0?a.pop():c.content=l}}let o=await this.client.beta.messages.create({model:s,messages:[...a,{role:"user",content:[{type:"text",text:i}]}],max_tokens:D(this,sr,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(o.content[0]?.type!=="text")throw new Ee("Expected text response for compaction");return D(this,sr,"f").params.messages=[{role:"user",content:o.content}],!0},Symbol.asyncIterator)](){var e;if(D(this,Nc,"f"))throw new Ee("Cannot iterate over a consumed stream");ae(this,Nc,!0,"f"),ae(this,Va,!0,"f"),ae(this,ui,void 0,"f");try{for(;;){let r;try{if(D(this,sr,"f").params.max_iterations&&D(this,md,"f")>=D(this,sr,"f").params.max_iterations)break;ae(this,Va,!1,"f"),ae(this,ui,void 0,"f"),ae(this,md,(e=D(this,md,"f"),e++,e),"f"),ae(this,Sn,void 0,"f");let{max_iterations:n,compactionControl:s,...i}=D(this,sr,"f").params;if(i.stream?(r=this.client.beta.messages.stream({...i},D(this,dd,"f")),ae(this,Sn,r.finalMessage(),"f"),D(this,Sn,"f").catch(()=>{}),yield r):(ae(this,Sn,this.client.beta.messages.create({...i,stream:!1},D(this,dd,"f")),"f"),yield D(this,Sn,"f")),!await D(this,pd,"m",J6).call(this)){if(!D(this,Va,"f")){let{role:o,content:c}=await D(this,Sn,"f");D(this,sr,"f").params.messages.push({role:o,content:c})}let a=await D(this,pd,"m",PE).call(this,D(this,sr,"f").params.messages.at(-1));if(a)D(this,sr,"f").params.messages.push(a);else if(!D(this,Va,"f"))break}}finally{r&&r.abort()}}if(!D(this,Sn,"f"))throw new Ee("ToolRunner concluded without a message from the server");D(this,Bi,"f").resolve(await D(this,Sn,"f"))}catch(r){throw ae(this,Nc,!1,"f"),D(this,Bi,"f").promise.catch(()=>{}),D(this,Bi,"f").reject(r),ae(this,Bi,Q6(),"f"),r}}setMessagesParams(e){typeof e=="function"?D(this,sr,"f").params=e(D(this,sr,"f").params):D(this,sr,"f").params=e,ae(this,Va,!0,"f"),ae(this,ui,void 0,"f")}async generateToolResponse(){let e=await D(this,Sn,"f")??this.params.messages.at(-1);return e?D(this,pd,"m",PE).call(this,e):null}done(){return D(this,Bi,"f").promise}async runUntilDone(){if(!D(this,Nc,"f"))for await(let e of this);return this.done()}get params(){return D(this,sr,"f").params}pushMessages(...e){this.setMessagesParams(r=>({...r,messages:[...r.messages,...e]}))}then(e,r){return this.runUntilDone().then(e,r)}};PE=async function(t){return D(this,ui,"f")!==void 0?D(this,ui,"f"):(ae(this,ui,Fve(D(this,sr,"f").params,t),"f"),D(this,ui,"f"))};async function Fve(t,e=t.messages.at(-1)){if(!e||e.role!=="assistant"||!e.content||typeof e.content=="string")return null;let r=e.content.filter(n=>n.type==="tool_use");return r.length===0?null:{role:"user",content:await Promise.all(r.map(async n=>{let s=t.tools.find(i=>("name"in i?i.name:i.mcp_server_name)===n.name);if(!s||!("run"in s))return{type:"tool_result",tool_use_id:n.id,content:`Error: Tool '${n.name}' not found`,is_error:!0};try{let i=n.input;"parse"in s&&s.parse&&(i=s.parse(i));let a=await s.run(i);return{type:"tool_result",tool_use_id:n.id,content:a}}catch(i){return{type:"tool_result",tool_use_id:n.id,content:i instanceof Ov?i.content:`Error: ${i instanceof Error?i.message:String(i)}`,is_error:!0}}}))}}var Av=class t{constructor(e,r){this.iterator=e,this.controller=r}async*decoder(){let e=new Xa;for await(let r of this.iterator)for(let n of e.decode(r))yield JSON.parse(n);for(let r of e.flush())yield JSON.parse(r)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(e,r){if(!e.body)throw r.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new Ee("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new Ee("Attempted to iterate over a response with no body");return new t(tT(e.body),r)}},Nv=class extends Pn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/messages/batches?beta=true",{body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/messages/batches?beta=true",to,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"message-batches-2024-09-24"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/messages/batches/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}cancel(e,r={},n){let{betas:s}=r??{};return this._client.post(Tr`/v1/messages/batches/${e}/cancel?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"message-batches-2024-09-24"].toString()},n?.headers])})}async results(e,r={},n){let s=await this.retrieve(e);if(!s.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${s.processing_status} - ${s.id}`);let{betas:i}=r??{};return this._client.get(s.results_url,{...n,headers:Ve([{"anthropic-beta":[...i??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},n?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((a,o)=>Av.fromResponse(o.response,o.controller))}},Y6={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"},Hve=["claude-opus-4-6"],ro=class extends Pn{constructor(){super(...arguments),this.batches=new Nv(this._client)}create(e,r){let n=X6(e),{betas:s,...i}=n;i.model in Y6&&console.warn(`The model '${i.model}' is deprecated and will reach end-of-life on ${Y6[i.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),i.model in Hve&&i.thinking&&i.thinking.type==="enabled"&&console.warn(`Using Claude with ${i.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let a=this._client._options.timeout;if(!i.stream&&a==null){let c=o8[i.model]??void 0;a=this._client.calculateNonstreamingTimeout(i.max_tokens,c)}let o=i8(i.tools,i.messages);return this._client.post("/v1/messages?beta=true",{body:i,timeout:a??6e5,...r,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},o,r?.headers]),stream:n.stream??!1})}parse(e,r){return r={...r,headers:Ve([{"anthropic-beta":[...e.betas??[],"structured-outputs-2025-12-15"].toString()},r?.headers])},this.create(e,r).then(n=>l8(n,e,{logger:this._client.logger??console}))}stream(e,r){return RE.createMessage(this,e,r)}countTokens(e,r){let n=X6(e),{betas:s,...i}=n;return this._client.post("/v1/messages/count_tokens?beta=true",{body:i,...r,headers:Ve([{"anthropic-beta":[...s??[],"token-counting-2024-11-01"].toString()},r?.headers])})}toolRunner(e,r){return new jv(this._client,e,r)}};function X6(t){if(!t.output_format)return t;if(t.output_config?.format)throw new Ee("Both output_format and output_config.format were provided. Please use only output_config.format (output_format is deprecated).");let{output_format:e,...r}=t;return{...r,output_config:{...t.output_config,format:e}}}ro.Batches=Nv;ro.BetaToolRunner=jv;ro.ToolError=Ov;var Dv=class extends Pn{create(e,r={},n){let{betas:s,...i}=r??{};return this._client.post(Tr`/v1/skills/${e}/versions?beta=true`,nT({body:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])},this._client))}retrieve(e,r,n){let{skill_id:s,betas:i}=r;return this._client.get(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e,r={},n){let{betas:s,...i}=r??{};return this._client.getAPIList(Tr`/v1/skills/${e}/versions?beta=true`,Pv,{query:i,...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}delete(e,r,n){let{skill_id:s,betas:i}=r;return this._client.delete(Tr`/v1/skills/${s}/versions/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...i??[],"skills-2025-10-02"].toString()},n?.headers])})}},Rd=class extends Pn{constructor(){super(...arguments),this.versions=new Dv(this._client)}create(e={},r){let{betas:n,...s}=e??{};return this._client.post("/v1/skills?beta=true",nT({body:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])},this._client,!1))}retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/skills?beta=true",Pv,{query:s,...r,headers:Ve([{"anthropic-beta":[...n??[],"skills-2025-10-02"].toString()},r?.headers])})}delete(e,r={},n){let{betas:s}=r??{};return this._client.delete(Tr`/v1/skills/${e}?beta=true`,{...n,headers:Ve([{"anthropic-beta":[...s??[],"skills-2025-10-02"].toString()},n?.headers])})}};Rd.Versions=Dv;var Ji=class extends Pn{constructor(){super(...arguments),this.models=new Cv(this._client),this.messages=new ro(this._client),this.files=new Iv(this._client),this.skills=new Rd(this._client)}};Ji.Models=Cv;Ji.Messages=ro;Ji.Files=Iv;Ji.Skills=Rd;var zv=class extends Pn{create(e,r){let{betas:n,...s}=e;return this._client.post("/v1/complete",{body:s,timeout:this._client._options.timeout??6e5,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers]),stream:e.stream??!1})}};function p8(t){return t?.output_config?.format}function eF(t,e,r){let n=p8(e);return!e||!("parse"in(n??{}))?{...t,content:t.content.map(s=>s.type==="text"?Object.defineProperty({...s},"parsed_output",{value:null,enumerable:!1}):s),parsed_output:null}:d8(t,e,r)}function d8(t,e,r){let n=null,s=t.content.map(i=>{if(i.type==="text"){let a=Bve(e,i.text);return n===null&&(n=a),Object.defineProperty({...i},"parsed_output",{value:a,enumerable:!1})}return i});return{...t,content:s,parsed_output:n}}function Bve(t,e){let r=p8(t);if(r?.type!=="json_schema")return null;try{return"parse"in r?r.parse(e):JSON.parse(e)}catch(n){throw new Ee(`Failed to parse structured output: ${n}`)}}var Gn,Wi,Dc,fd,Xg,hd,gd,ev,vd,ci,yd,tv,rv,Ka,nv,sv,bd,dE,tF,mE,fE,hE,gE,rF,nF="__json_buf";function sF(t){return t.type==="tool_use"||t.type==="server_tool_use"}var IE=class t{constructor(e,r){Gn.add(this),this.messages=[],this.receivedMessages=[],Wi.set(this,void 0),Dc.set(this,null),this.controller=new AbortController,fd.set(this,void 0),Xg.set(this,()=>{}),hd.set(this,()=>{}),gd.set(this,void 0),ev.set(this,()=>{}),vd.set(this,()=>{}),ci.set(this,{}),yd.set(this,!1),tv.set(this,!1),rv.set(this,!1),Ka.set(this,!1),nv.set(this,void 0),sv.set(this,void 0),bd.set(this,void 0),mE.set(this,n=>{if(ae(this,tv,!0,"f"),Td(n)&&(n=new Rn),n instanceof Rn)return ae(this,rv,!0,"f"),this._emit("abort",n);if(n instanceof Ee)return this._emit("error",n);if(n instanceof Error){let s=new Ee(n.message);return s.cause=n,this._emit("error",s)}return this._emit("error",new Ee(String(n)))}),ae(this,fd,new Promise((n,s)=>{ae(this,Xg,n,"f"),ae(this,hd,s,"f")}),"f"),ae(this,gd,new Promise((n,s)=>{ae(this,ev,n,"f"),ae(this,vd,s,"f")}),"f"),D(this,fd,"f").catch(()=>{}),D(this,gd,"f").catch(()=>{}),ae(this,Dc,e,"f"),ae(this,bd,r?.logger??console,"f")}get response(){return D(this,nv,"f")}get request_id(){return D(this,sv,"f")}async withResponse(){ae(this,Ka,!0,"f");let e=await D(this,fd,"f");if(!e)throw Error("Could not resolve a `Response` object");return{data:this,response:e,request_id:e.headers.get("request-id")}}static fromReadableStream(e){let r=new t(null);return r._run(()=>r._fromReadableStream(e)),r}static createMessage(e,r,n,{logger:s}={}){let i=new t(r,{logger:s});for(let a of r.messages)i._addMessageParam(a);return ae(i,Dc,{...r,stream:!0},"f"),i._run(()=>i._createMessage(e,{...r,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),i}_run(e){e().then(()=>{this._emitFinal(),this._emit("end")},D(this,mE,"f"))}_addMessageParam(e){this.messages.push(e)}_addMessage(e,r=!0){this.receivedMessages.push(e),r&&this._emit("message",e)}async _createMessage(e,r,n){let s=n?.signal,i;s&&(s.aborted&&this.controller.abort(),i=this.controller.abort.bind(this.controller),s.addEventListener("abort",i));try{D(this,Gn,"m",fE).call(this);let{response:a,data:o}=await e.create({...r,stream:!0},{...n,signal:this.controller.signal}).withResponse();this._connected(a);for await(let c of o)D(this,Gn,"m",hE).call(this,c);if(o.controller.signal?.aborted)throw new Rn;D(this,Gn,"m",gE).call(this)}finally{s&&i&&s.removeEventListener("abort",i)}}_connected(e){this.ended||(ae(this,nv,e,"f"),ae(this,sv,e?.headers.get("request-id"),"f"),D(this,Xg,"f").call(this,e),this._emit("connect"))}get ended(){return D(this,yd,"f")}get errored(){return D(this,tv,"f")}get aborted(){return D(this,rv,"f")}abort(){this.controller.abort()}on(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r}),this}off(e,r){let n=D(this,ci,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===r);return s>=0&&n.splice(s,1),this}once(e,r){return(D(this,ci,"f")[e]||(D(this,ci,"f")[e]=[])).push({listener:r,once:!0}),this}emitted(e){return new Promise((r,n)=>{ae(this,Ka,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,r)})}async done(){ae(this,Ka,!0,"f"),await D(this,gd,"f")}get currentMessage(){return D(this,Wi,"f")}async finalMessage(){return await this.done(),D(this,Gn,"m",dE).call(this)}async finalText(){return await this.done(),D(this,Gn,"m",tF).call(this)}_emit(e,...r){if(D(this,yd,"f"))return;e==="end"&&(ae(this,yd,!0,"f"),D(this,ev,"f").call(this));let n=D(this,ci,"f")[e];if(n&&(D(this,ci,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...r))),e==="abort"){let s=r[0];!D(this,Ka,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=r[0];!D(this,Ka,"f")&&!n?.length&&Promise.reject(s),D(this,hd,"f").call(this,s),D(this,vd,"f").call(this,s),this._emit("end")}}_emitFinal(){this.receivedMessages.at(-1)&&this._emit("finalMessage",D(this,Gn,"m",dE).call(this))}async _fromReadableStream(e,r){let n=r?.signal,s;n&&(n.aborted&&this.controller.abort(),s=this.controller.abort.bind(this.controller),n.addEventListener("abort",s));try{D(this,Gn,"m",fE).call(this),this._connected(null);let i=eo.fromReadableStream(e,this.controller);for await(let a of i)D(this,Gn,"m",hE).call(this,a);if(i.controller.signal?.aborted)throw new Rn;D(this,Gn,"m",gE).call(this)}finally{n&&s&&n.removeEventListener("abort",s)}}[(Wi=new WeakMap,Dc=new WeakMap,fd=new WeakMap,Xg=new WeakMap,hd=new WeakMap,gd=new WeakMap,ev=new WeakMap,vd=new WeakMap,ci=new WeakMap,yd=new WeakMap,tv=new WeakMap,rv=new WeakMap,Ka=new WeakMap,nv=new WeakMap,sv=new WeakMap,bd=new WeakMap,mE=new WeakMap,Gn=new WeakSet,dE=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},tF=function(){if(this.receivedMessages.length===0)throw new Ee("stream ended without producing a Message with role=assistant");let e=this.receivedMessages.at(-1).content.filter(r=>r.type==="text").map(r=>r.text);if(e.length===0)throw new Ee("stream ended without producing a content block with type=text");return e.join(" ")},fE=function(){this.ended||ae(this,Wi,void 0,"f")},hE=function(e){if(this.ended)return;let r=D(this,Gn,"m",rF).call(this,e);switch(this._emit("streamEvent",e,r),e.type){case"content_block_delta":{let n=r.content.at(-1);switch(e.delta.type){case"text_delta":{n.type==="text"&&this._emit("text",e.delta.text,n.text||"");break}case"citations_delta":{n.type==="text"&&this._emit("citation",e.delta.citation,n.citations??[]);break}case"input_json_delta":{sF(n)&&n.input&&this._emit("inputJson",e.delta.partial_json,n.input);break}case"thinking_delta":{n.type==="thinking"&&this._emit("thinking",e.delta.thinking,n.thinking);break}case"signature_delta":{n.type==="thinking"&&this._emit("signature",n.signature);break}default:e.delta}break}case"message_stop":{this._addMessageParam(r),this._addMessage(eF(r,D(this,Dc,"f"),{logger:D(this,bd,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",r.content.at(-1));break}case"message_start":{ae(this,Wi,r,"f");break}case"content_block_start":case"message_delta":break}},gE=function(){if(this.ended)throw new Ee("stream has ended, this shouldn't happen");let e=D(this,Wi,"f");if(!e)throw new Ee("request ended without sending any chunks");return ae(this,Wi,void 0,"f"),eF(e,D(this,Dc,"f"),{logger:D(this,bd,"f")})},rF=function(e){let r=D(this,Wi,"f");if(e.type==="message_start"){if(r)throw new Ee(`Unexpected event order, got ${e.type} before receiving "message_stop"`);return e.message}if(!r)throw new Ee(`Unexpected event order, got ${e.type} before "message_start"`);switch(e.type){case"message_stop":return r;case"message_delta":return r.stop_reason=e.delta.stop_reason,r.stop_sequence=e.delta.stop_sequence,r.usage.output_tokens=e.usage.output_tokens,e.usage.input_tokens!=null&&(r.usage.input_tokens=e.usage.input_tokens),e.usage.cache_creation_input_tokens!=null&&(r.usage.cache_creation_input_tokens=e.usage.cache_creation_input_tokens),e.usage.cache_read_input_tokens!=null&&(r.usage.cache_read_input_tokens=e.usage.cache_read_input_tokens),e.usage.server_tool_use!=null&&(r.usage.server_tool_use=e.usage.server_tool_use),r;case"content_block_start":return r.content.push({...e.content_block}),r;case"content_block_delta":{let n=r.content.at(e.index);switch(e.delta.type){case"text_delta":{n?.type==="text"&&(r.content[e.index]={...n,text:(n.text||"")+e.delta.text});break}case"citations_delta":{n?.type==="text"&&(r.content[e.index]={...n,citations:[...n.citations??[],e.delta.citation]});break}case"input_json_delta":{if(n&&sF(n)){let s=n[nF]||"";s+=e.delta.partial_json;let i={...n};Object.defineProperty(i,nF,{value:s,enumerable:!1,writable:!0}),s&&(i.input=u8(s)),r.content[e.index]=i}break}case"thinking_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,thinking:n.thinking+e.delta.thinking});break}case"signature_delta":{n?.type==="thinking"&&(r.content[e.index]={...n,signature:e.delta.signature});break}default:e.delta}return r}case"content_block_stop":return r}},Symbol.asyncIterator)](){let e=[],r=[],n=!1;return this.on("streamEvent",s=>{let i=r.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of r)s.resolve(void 0);r.length=0}),this.on("abort",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),this.on("error",s=>{n=!0;for(let i of r)i.reject(s);r.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((s,i)=>r.push({resolve:s,reject:i})).then(s=>s?{value:s,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new eo(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};var Mv=class extends Pn{create(e,r){return this._client.post("/v1/messages/batches",{body:e,...r})}retrieve(e,r){return this._client.get(Tr`/v1/messages/batches/${e}`,r)}list(e={},r){return this._client.getAPIList("/v1/messages/batches",to,{query:e,...r})}delete(e,r){return this._client.delete(Tr`/v1/messages/batches/${e}`,r)}cancel(e,r){return this._client.post(Tr`/v1/messages/batches/${e}/cancel`,r)}async results(e,r){let n=await this.retrieve(e);if(!n.results_url)throw new Ee(`No batch \`results_url\`; Has it finished processing? ${n.processing_status} - ${n.id}`);return this._client.get(n.results_url,{...r,headers:Ve([{Accept:"application/binary"},r?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((s,i)=>Av.fromResponse(i.response,i.controller))}},Pd=class extends Pn{constructor(){super(...arguments),this.batches=new Mv(this._client)}create(e,r){e.model in iF&&console.warn(`The model '${e.model}' is deprecated and will reach end-of-life on ${iF[e.model]} +Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`),e.model in Wve&&e.thinking&&e.thinking.type==="enabled"&&console.warn(`Using Claude with ${e.model} and 'thinking.type=enabled' is deprecated. Use 'thinking.type=adaptive' instead which results in better model performance in our testing: https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking`);let n=this._client._options.timeout;if(!e.stream&&n==null){let i=o8[e.model]??void 0;n=this._client.calculateNonstreamingTimeout(e.max_tokens,i)}let s=i8(e.tools,e.messages);return this._client.post("/v1/messages",{body:e,timeout:n??6e5,...r,headers:Ve([s,r?.headers]),stream:e.stream??!1})}parse(e,r){return this.create(e,r).then(n=>d8(n,e,{logger:this._client.logger??console}))}stream(e,r){return IE.createMessage(this,e,r,{logger:this._client.logger??console})}countTokens(e,r){return this._client.post("/v1/messages/count_tokens",{body:e,...r})}},iF={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026","claude-3-5-haiku-latest":"February 19th, 2026","claude-3-5-haiku-20241022":"February 19th, 2026"},Wve=["claude-opus-4-6"];Pd.Batches=Mv;var $v=class extends Pn{retrieve(e,r={},n){let{betas:s}=r??{};return this._client.get(Tr`/v1/models/${e}`,{...n,headers:Ve([{...s?.toString()!=null?{"anthropic-beta":s?.toString()}:void 0},n?.headers])})}list(e={},r){let{betas:n,...s}=e??{};return this._client.getAPIList("/v1/models",to,{query:s,...r,headers:Ve([{...n?.toString()!=null?{"anthropic-beta":n?.toString()}:void 0},r?.headers])})}},iv=t=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[t]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(t)?.trim()},CE,sT,pv,m8,Zve="\\n\\nHuman:",Gve="\\n\\nAssistant:",Kt=class{constructor({baseURL:e=iv("ANTHROPIC_BASE_URL"),apiKey:r=iv("ANTHROPIC_API_KEY")??null,authToken:n=iv("ANTHROPIC_AUTH_TOKEN")??null,...s}={}){CE.add(this),pv.set(this,void 0);let i={apiKey:r,authToken:n,...s,baseURL:e||"https://api.anthropic.com"};if(!i.dangerouslyAllowBrowser&&pve())throw new Ee(`It looks like you're running in a browser-like environment. This is disabled by default, as it risks exposing your secret API credentials to attackers. If you understand the risks and have appropriate mitigations in place, you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g., new Anthropic({ apiKey, dangerouslyAllowBrowser: true }); -`);this.baseURL=i.baseURL,this.timeout=i.timeout??sT.DEFAULT_TIMEOUT,this.logger=i.logger??console;let a="warn";this.logLevel=a,this.logLevel=q6(i.logLevel,"ClientOptions.logLevel",this)??q6(iv("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??a,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??gve(),ae(this,pv,yve,"f"),this._options=i,this.apiKey=typeof r=="string"?r:null,this.authToken=n}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:r}){if(!(e.get("x-api-key")||e.get("authorization"))&&!(this.apiKey&&e.get("x-api-key"))&&!r.has("x-api-key")&&!(this.authToken&&e.get("authorization"))&&!r.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return Ve([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(this.apiKey!=null)return Ve([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(this.authToken!=null)return Ve([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new Ee(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Mc}`}defaultIdempotencyKey(){return`stainless-node-retry-${VF()}`}makeStatusError(e,r,n,s){return Kr.generate(e,r,n,s)}buildURL(e,r,n){let s=!D(this,CE,"m",m8).call(this)&&n||this.baseURL,i=ave(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return ove(a)||(r={...a,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(i.search=this.stringifyQuery(r)),i.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:r,options:n}){}get(e,r){return this.methodRequest("get",e,r)}post(e,r){return this.methodRequest("post",e,r)}patch(e,r){return this.methodRequest("patch",e,r)}put(e,r){return this.methodRequest("put",e,r)}delete(e,r){return this.methodRequest("delete",e,r)}methodRequest(e,r,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:r,...s})))}request(e,r=null){return new Tv(this,this.makeRequest(e,r,void 0))}async makeRequest(e,r,n){let s=await e,i=s.maxRetries??this.maxRetries;r==null&&(r=i),await this.prepareOptions(s);let{req:a,url:o,timeout:c}=await this.buildRequest(s,{retryCount:i-r});await this.prepareRequest(a,{url:o,options:s});let l="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(Gr(this).debug(`[${l}] sending request`,Ka({retryOfRequestLogID:n,method:s.method,url:o,options:s,headers:a.headers})),s.signal?.aborted)throw new Rn;let d=new AbortController,m=await this.fetchWithTimeout(o,a,c,d).catch(xE),f=Date.now();if(m instanceof globalThis.Error){let h=`retrying, ${r} attempts remaining`;if(s.signal?.aborted)throw new Rn;let y=Td(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(r)return Gr(this).info(`[${l}] connection ${y?"timed out":"failed"} - ${h}`),Gr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (${h})`,Ka({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),this.retryRequest(s,r,n??l);throw Gr(this).info(`[${l}] connection ${y?"timed out":"failed"} - error; no more retries left`),Gr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (error; no more retries left)`,Ka({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),y?new gv:new Wc({cause:m})}let v=[...m.headers.entries()].filter(([h])=>h==="request-id").map(([h,y])=>", "+h+": "+JSON.stringify(y)).join(""),g=`[${l}${u}${v}] ${a.method} ${o} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${f-p}ms`;if(!m.ok){let h=await this.shouldRetry(m);if(r&&h){let S=`retrying, ${r} attempts remaining`;return await vve(m.body),Gr(this).info(`${g} - ${S}`),Gr(this).debug(`[${l}] response error (${S})`,Ka({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),this.retryRequest(s,r,n??l,m.headers)}let y=h?"error; no more retries left":"error; not retryable";Gr(this).info(`${g} - ${y}`);let b=await m.text().catch(S=>xE(S).message),x=KF(b),w=x?void 0:b;throw Gr(this).debug(`[${l}] response error (${y})`,Ka({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,message:w,durationMs:Date.now()-p})),this.makeStatusError(m.status,x,w,m.headers)}return Gr(this).info(g),Gr(this).debug(`[${l}] response start`,Ka({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),{response:m,options:s,controller:d,requestLogID:l,retryOfRequestLogID:n,startTime:p}}getAPIList(e,r,n){return this.requestAPIList(r,n&&"then"in n?n.then(s=>({method:"get",path:e,...s})):{method:"get",path:e,...n})}requestAPIList(e,r){let n=this.makeRequest(r,null,void 0);return new kE(this,n,e)}async fetchWithTimeout(e,r,n,s){let{signal:i,method:a,...o}=r||{},c=this._makeAbort(s);i&&i.addEventListener("abort",c,{once:!0});let l=setTimeout(c,n),u=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,p={signal:s.signal,...u?{duplex:"half"}:{},method:"GET",...o};a&&(p.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,p)}finally{clearTimeout(l)}}async shouldRetry(e){let r=e.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,r,n,s){let i,a=s?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(i=c)}let o=s?.get("retry-after");if(o&&!i){let c=parseFloat(o);Number.isNaN(c)?i=Date.parse(o)-Date.now():i=c*1e3}if(!(i&&0<=i&&i<6e4)){let c=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(r,c)}return await uve(i),this.makeRequest(e,r-1,n)}calculateDefaultRetryTimeoutMillis(e,r){let n=r-e,s=Math.min(.5*Math.pow(2,n),8),i=1-Math.random()*.25;return s*i*1e3}calculateNonstreamingTimeout(e,r){if(36e5*e/128e3>6e5||r!=null&&e>r)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:r=0}={}){let n={...e},{method:s,path:i,query:a,defaultBaseURL:o}=n,c=this.buildURL(i,a,o);"timeout"in n&&lve("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:u}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:l,retryCount:r});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:c,timeout:n.timeout}}async buildHeaders({options:e,method:r,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&r!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let a=Ve([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...hve(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:r}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=Ve([r]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:QF(e)}:D(this,pv,"f").call(this,{body:e,headers:n})}};sT=Kt,pv=new WeakMap,CE=new WeakSet,m8=function(){return this.baseURL!=="https://api.anthropic.com"};Kt.Anthropic=sT;Kt.HUMAN_PROMPT=Zve;Kt.AI_PROMPT=Gve;Kt.DEFAULT_TIMEOUT=6e5;Kt.AnthropicError=Ee;Kt.APIError=Kr;Kt.APIConnectionError=Wc;Kt.APIConnectionTimeoutError=gv;Kt.APIUserAbortError=Rn;Kt.NotFoundError=xv;Kt.ConflictError=_v;Kt.RateLimitError=Sv;Kt.BadRequestError=vv;Kt.AuthenticationError=yv;Kt.InternalServerError=kv;Kt.PermissionDeniedError=bv;Kt.UnprocessableEntityError=wv;Kt.toFile=Ove;var Zc=class extends Kt{constructor(){super(...arguments),this.completions=new zv(this),this.messages=new Pd(this),this.models=new $v(this),this.beta=new Ji(this)}};Zc.Completions=zv;Zc.Messages=Pd;Zc.Models=$v;Zc.Beta=Ji;function OE(t){return t instanceof Error?t.message:String(t)}function dv(t){if(t&&typeof t=="object"&&"code"in t&&typeof t.code=="string")return t.code}function Vve(t){return dv(t)==="ENOENT"}var Hc,zc=null;function Kve(){if(zc)return zc;if(!Ja(process.env.DEBUG_CLAUDE_AGENT_SDK))return Hc=null,zc=Promise.resolve(),zc;let t=(0,jE.join)(GF(),"debug");return Hc=(0,jE.join)(t,`sdk-${(0,f8.randomUUID)()}.txt`),process.stderr.write(`SDK debug logs: ${Hc} +`);this.baseURL=i.baseURL,this.timeout=i.timeout??sT.DEFAULT_TIMEOUT,this.logger=i.logger??console;let a="warn";this.logLevel=a,this.logLevel=q6(i.logLevel,"ClientOptions.logLevel",this)??q6(iv("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??a,this.fetchOptions=i.fetchOptions,this.maxRetries=i.maxRetries??2,this.fetch=i.fetch??gve(),ae(this,pv,yve,"f"),this._options=i,this.apiKey=typeof r=="string"?r:null,this.authToken=n}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:r}){if(!(e.get("x-api-key")||e.get("authorization"))&&!(this.apiKey&&e.get("x-api-key"))&&!r.has("x-api-key")&&!(this.authToken&&e.get("authorization"))&&!r.has("authorization"))throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(e){return Ve([await this.apiKeyAuth(e),await this.bearerAuth(e)])}async apiKeyAuth(e){if(this.apiKey!=null)return Ve([{"X-Api-Key":this.apiKey}])}async bearerAuth(e){if(this.authToken!=null)return Ve([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(e){return Object.entries(e).filter(([r,n])=>typeof n<"u").map(([r,n])=>{if(typeof n=="string"||typeof n=="number"||typeof n=="boolean")return`${encodeURIComponent(r)}=${encodeURIComponent(n)}`;if(n===null)return`${encodeURIComponent(r)}=`;throw new Ee(`Cannot stringify type ${typeof n}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Mc}`}defaultIdempotencyKey(){return`stainless-node-retry-${VF()}`}makeStatusError(e,r,n,s){return Kr.generate(e,r,n,s)}buildURL(e,r,n){let s=!D(this,CE,"m",m8).call(this)&&n||this.baseURL,i=ave(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return ove(a)||(r={...a,...r}),typeof r=="object"&&r&&!Array.isArray(r)&&(i.search=this.stringifyQuery(r)),i.toString()}_calculateNonstreamingTimeout(e){if(3600*e/128e3>600)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 6e5}async prepareOptions(e){}async prepareRequest(e,{url:r,options:n}){}get(e,r){return this.methodRequest("get",e,r)}post(e,r){return this.methodRequest("post",e,r)}patch(e,r){return this.methodRequest("patch",e,r)}put(e,r){return this.methodRequest("put",e,r)}delete(e,r){return this.methodRequest("delete",e,r)}methodRequest(e,r,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:r,...s})))}request(e,r=null){return new Tv(this,this.makeRequest(e,r,void 0))}async makeRequest(e,r,n){let s=await e,i=s.maxRetries??this.maxRetries;r==null&&(r=i),await this.prepareOptions(s);let{req:a,url:o,timeout:c}=await this.buildRequest(s,{retryCount:i-r});await this.prepareRequest(a,{url:o,options:s});let l="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(Gr(this).debug(`[${l}] sending request`,Ja({retryOfRequestLogID:n,method:s.method,url:o,options:s,headers:a.headers})),s.signal?.aborted)throw new Rn;let d=new AbortController,m=await this.fetchWithTimeout(o,a,c,d).catch(xE),f=Date.now();if(m instanceof globalThis.Error){let h=`retrying, ${r} attempts remaining`;if(s.signal?.aborted)throw new Rn;let y=Td(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(r)return Gr(this).info(`[${l}] connection ${y?"timed out":"failed"} - ${h}`),Gr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (${h})`,Ja({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),this.retryRequest(s,r,n??l);throw Gr(this).info(`[${l}] connection ${y?"timed out":"failed"} - error; no more retries left`),Gr(this).debug(`[${l}] connection ${y?"timed out":"failed"} (error; no more retries left)`,Ja({retryOfRequestLogID:n,url:o,durationMs:f-p,message:m.message})),y?new gv:new Wc({cause:m})}let v=[...m.headers.entries()].filter(([h])=>h==="request-id").map(([h,y])=>", "+h+": "+JSON.stringify(y)).join(""),g=`[${l}${u}${v}] ${a.method} ${o} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${f-p}ms`;if(!m.ok){let h=await this.shouldRetry(m);if(r&&h){let S=`retrying, ${r} attempts remaining`;return await vve(m.body),Gr(this).info(`${g} - ${S}`),Gr(this).debug(`[${l}] response error (${S})`,Ja({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),this.retryRequest(s,r,n??l,m.headers)}let y=h?"error; no more retries left":"error; not retryable";Gr(this).info(`${g} - ${y}`);let b=await m.text().catch(S=>xE(S).message),x=KF(b),w=x?void 0:b;throw Gr(this).debug(`[${l}] response error (${y})`,Ja({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,message:w,durationMs:Date.now()-p})),this.makeStatusError(m.status,x,w,m.headers)}return Gr(this).info(g),Gr(this).debug(`[${l}] response start`,Ja({retryOfRequestLogID:n,url:m.url,status:m.status,headers:m.headers,durationMs:f-p})),{response:m,options:s,controller:d,requestLogID:l,retryOfRequestLogID:n,startTime:p}}getAPIList(e,r,n){return this.requestAPIList(r,n&&"then"in n?n.then(s=>({method:"get",path:e,...s})):{method:"get",path:e,...n})}requestAPIList(e,r){let n=this.makeRequest(r,null,void 0);return new kE(this,n,e)}async fetchWithTimeout(e,r,n,s){let{signal:i,method:a,...o}=r||{},c=this._makeAbort(s);i&&i.addEventListener("abort",c,{once:!0});let l=setTimeout(c,n),u=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,p={signal:s.signal,...u?{duplex:"half"}:{},method:"GET",...o};a&&(p.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,p)}finally{clearTimeout(l)}}async shouldRetry(e){let r=e.headers.get("x-should-retry");return r==="true"?!0:r==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,r,n,s){let i,a=s?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(i=c)}let o=s?.get("retry-after");if(o&&!i){let c=parseFloat(o);Number.isNaN(c)?i=Date.parse(o)-Date.now():i=c*1e3}if(!(i&&0<=i&&i<6e4)){let c=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(r,c)}return await uve(i),this.makeRequest(e,r-1,n)}calculateDefaultRetryTimeoutMillis(e,r){let n=r-e,s=Math.min(.5*Math.pow(2,n),8),i=1-Math.random()*.25;return s*i*1e3}calculateNonstreamingTimeout(e,r){if(36e5*e/128e3>6e5||r!=null&&e>r)throw new Ee("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 6e5}async buildRequest(e,{retryCount:r=0}={}){let n={...e},{method:s,path:i,query:a,defaultBaseURL:o}=n,c=this.buildURL(i,a,o);"timeout"in n&&lve("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:l,body:u}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:l,retryCount:r});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:c,timeout:n.timeout}}async buildHeaders({options:e,method:r,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&r!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let a=Ve([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...hve(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:e,headers:r}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=Ve([r]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:QF(e)}:D(this,pv,"f").call(this,{body:e,headers:n})}};sT=Kt,pv=new WeakMap,CE=new WeakSet,m8=function(){return this.baseURL!=="https://api.anthropic.com"};Kt.Anthropic=sT;Kt.HUMAN_PROMPT=Zve;Kt.AI_PROMPT=Gve;Kt.DEFAULT_TIMEOUT=6e5;Kt.AnthropicError=Ee;Kt.APIError=Kr;Kt.APIConnectionError=Wc;Kt.APIConnectionTimeoutError=gv;Kt.APIUserAbortError=Rn;Kt.NotFoundError=xv;Kt.ConflictError=_v;Kt.RateLimitError=Sv;Kt.BadRequestError=vv;Kt.AuthenticationError=yv;Kt.InternalServerError=kv;Kt.PermissionDeniedError=bv;Kt.UnprocessableEntityError=wv;Kt.toFile=Ove;var Zc=class extends Kt{constructor(){super(...arguments),this.completions=new zv(this),this.messages=new Pd(this),this.models=new $v(this),this.beta=new Ji(this)}};Zc.Completions=zv;Zc.Messages=Pd;Zc.Models=$v;Zc.Beta=Ji;function OE(t){return t instanceof Error?t.message:String(t)}function dv(t){if(t&&typeof t=="object"&&"code"in t&&typeof t.code=="string")return t.code}function Vve(t){return dv(t)==="ENOENT"}var Hc,zc=null;function Kve(){if(zc)return zc;if(!Qa(process.env.DEBUG_CLAUDE_AGENT_SDK))return Hc=null,zc=Promise.resolve(),zc;let t=(0,jE.join)(GF(),"debug");return Hc=(0,jE.join)(t,`sdk-${(0,f8.randomUUID)()}.txt`),process.stderr.write(`SDK debug logs: ${Hc} `),zc=(0,cy.mkdir)(t,{recursive:!0}).then(()=>{}).catch(()=>{}),zc}function Hs(t){if(Hc===null)return;let e=`${new Date().toISOString()} ${t} -`;Kve().then(()=>{Hc&&(0,cy.appendFile)(Hc,e).catch(()=>{})})}function g8(){let t=new Set;return{subscribe(e){return t.add(e),()=>{t.delete(e)}},emit(...e){for(let r of t)r(...e)},clear(){t.clear()}}}function Jve(){let t="";if(typeof process<"u"&&typeof process.cwd=="function"&&typeof AE.realpathSync=="function"){let e=(0,h8.cwd)();try{t=(0,AE.realpathSync)(e).normalize("NFC")}catch{t=e.normalize("NFC")}}return{originalCwd:t,projectRoot:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,turnHookDurationMs:0,turnToolDurationMs:0,turnClassifierDurationMs:0,turnToolCount:0,turnHookCount:0,turnClassifierCount:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,kairosActive:!1,strictToolResultPairing:!1,memoryToggledOff:!1,sdkAgentProgressSummariesEnabled:!1,userMsgOptIn:!1,clientType:"cli",sessionSource:void 0,questionPreviewFormat:void 0,sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,flagSettingsInline:null,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,statsStore:null,sessionId:(0,iT.randomUUID)(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,lastAPIRequest:null,lastAPIRequestMessages:null,lastClassifierRequests:null,cachedClaudeMdContent:null,inMemoryErrorLog:[],inlinePlugins:[],chromeFlagOverride:void 0,useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,scheduledTasksEnabled:!1,sessionCronTasks:[],sessionCreatedTeams:new Set,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,needsAutoModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,directConnectServerUrl:void 0,systemPromptSectionCache:new Map,lastEmittedDate:null,additionalDirectoriesForClaudeMd:[],allowedChannels:[],hasDevChannels:!1,sessionProjectDir:null,promptCache1hAllowlist:null,afkModeHeaderLatched:null,fastModeHeaderLatched:null,cacheEditingHeaderLatched:null,thinkingClearLatched:null,promptId:null,lastMainRequestId:void 0,lastApiCompletionTimestamp:null,pendingPostCompaction:!1}}var Qve=Jve();function Yve(){return Qve.sessionId}var Xve=g8(),LMe=Xve.subscribe,eye=g8(),UMe=eye.subscribe;function tye({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,maxBufferBytes:n=1/0,immediateMode:s=!1}){let i=[],a=0,o=null,c=null;function l(){o&&(clearTimeout(o),o=null)}function u(){c&&(t(c.join("")),c=null),i.length!==0&&(t(i.join("")),i=[],a=0,l())}function p(){o||(o=setTimeout(u,e))}function d(){if(c){c.push(...i),i=[],a=0,l();return}let m=i;i=[],a=0,l(),c=m,setImmediate(()=>{let f=c;c=null,f&&t(f.join(""))})}return{write(m){if(s){t(m);return}i.push(m),a+=m.length,p(),(i.length>=r||a>=n)&&d()},flush:u,dispose(){u()}}}var aF=new Set;function rye(t){return aF.add(t),()=>aF.delete(t)}var nye=ea(t=>{if(!t||t.trim()==="")return null;let e=t.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(i=>i.startsWith("!")),n=e.some(i=>!i.startsWith("!"));if(r&&n)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:r?[]:s,exclude:r?s:[],isExclusive:r}});function sye(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let i=t.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("1p event:")&&e.push("1p");let s=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function iye(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function aye(t,e){if(!e)return!0;let r=sye(t);return iye(r,e)}var oye={cwd(){return process.cwd()},existsSync(t){let e=[];try{let s=Zt(e,Vt`fs.existsSync(${t})`,0);return Re.existsSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},async stat(t){return(0,or.stat)(t)},async readdir(t){return(0,or.readdir)(t,{withFileTypes:!0})},async unlink(t){return(0,or.unlink)(t)},async rmdir(t){return(0,or.rmdir)(t)},async rm(t,e){return(0,or.rm)(t,e)},async mkdir(t,e){try{await(0,or.mkdir)(t,{recursive:!0,...e})}catch(r){if(dv(r)!=="EEXIST")throw r}},async readFile(t,e){return(0,or.readFile)(t,{encoding:e.encoding})},async rename(t,e){return(0,or.rename)(t,e)},statSync(t){let e=[];try{let s=Zt(e,Vt`fs.statSync(${t})`,0);return Re.statSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},lstatSync(t){let e=[];try{let s=Zt(e,Vt`fs.lstatSync(${t})`,0);return Re.lstatSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readFileSync(${t})`,0);return Re.readFileSync(t,{encoding:e.encoding})}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readFileBytesSync(t){let e=[];try{let s=Zt(e,Vt`fs.readFileBytesSync(${t})`,0);return Re.readFileSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readSync(${t}, ${e.length} bytes)`,0),a;try{a=Re.openSync(t,"r");let o=Buffer.alloc(e.length),c=Re.readSync(a,o,0,e.length,0);return{buffer:o,bytesRead:c}}finally{a&&Re.closeSync(a)}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},appendFileSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.appendFileSync(${t}, ${e.length} chars)`,0);if(r?.mode!==void 0)try{let o=Re.openSync(t,"ax",r.mode);try{Re.appendFileSync(o,e)}finally{Re.closeSync(o)}return}catch(o){if(dv(o)!=="EEXIST")throw o}Re.appendFileSync(t,e)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},copyFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.copyFileSync(${t} → ${e})`,0);Re.copyFileSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},unlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.unlinkSync(${t})`,0);Re.unlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},renameSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.renameSync(${t} → ${e})`,0);Re.renameSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},linkSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.linkSync(${t} → ${e})`,0);Re.linkSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},symlinkSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.symlinkSync(${t} → ${e})`,0);Re.symlinkSync(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},readlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.readlinkSync(${t})`,0);return Re.readlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},realpathSync(t){let e=[];try{let s=Zt(e,Vt`fs.realpathSync(${t})`,0);return Re.realpathSync(t).normalize("NFC")}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},mkdirSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.mkdirSync(${t})`,0),a={recursive:!0};e?.mode!==void 0&&(a.mode=e.mode);try{Re.mkdirSync(t,a)}catch(o){if(dv(o)!=="EEXIST")throw o}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirSync(${t})`,0);return Re.readdirSync(t,{withFileTypes:!0})}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readdirStringSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirStringSync(${t})`,0);return Re.readdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},isDirEmptySync(t){let e=[];try{let s=Zt(e,Vt`fs.isDirEmptySync(${t})`,0);return this.readdirSync(t).length===0}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.rmdirSync(${t})`,0);Re.rmdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.rmSync(${t})`,0);Re.rmSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},createWriteStream(t){return Re.createWriteStream(t)},async readFileBytes(t,e){if(e===void 0)return(0,or.readFile)(t);let r=await(0,or.open)(t,"r");try{let{size:n}=await r.stat(),s=Math.min(n,e),i=Buffer.allocUnsafe(s),a=0;for(;a{let t=process.env.CLAUDE_CODE_DEBUG_LOG_LEVEL?.toLowerCase().trim();return t&&Object.hasOwn(NE,t)?t:"debug"}),dye=!1,DE=ea(()=>dye||Ja(process.env.DEBUG)||Ja(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||v8()||process.argv.some(t=>t.startsWith("--debug="))||y8()!==null),mye=ea(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return nye(e)}),v8=ea(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e")),y8=ea(()=>{for(let t=0;t"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=mye();return aye(t,e)}var hye=!1,av=null,vE=Promise.resolve();async function gye(t,e,r,n){t&&await(0,ta.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,ta.appendFile)(r,n),x8()}function vye(){}function yye(){if(!av){let t=null;av=tye({writeFn:e=>{let r=b8(),n=(0,dl.dirname)(r),s=t!==n;if(t=n,DE()){if(s)try{oF().mkdirSync(n)}catch{}oF().appendFileSync(r,e),x8();return}vE=vE.then(gye.bind(null,s,n,r,e)).catch(vye)},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:DE()}),rye(async()=>{av?.dispose(),await vE})}return av}function Zi(t,{level:e}={level:"debug"}){if(NE[e]{Hc&&(0,cy.appendFile)(Hc,e).catch(()=>{})})}function g8(){let t=new Set;return{subscribe(e){return t.add(e),()=>{t.delete(e)}},emit(...e){for(let r of t)r(...e)},clear(){t.clear()}}}function Jve(){let t="";if(typeof process<"u"&&typeof process.cwd=="function"&&typeof AE.realpathSync=="function"){let e=(0,h8.cwd)();try{t=(0,AE.realpathSync)(e).normalize("NFC")}catch{t=e.normalize("NFC")}}return{originalCwd:t,projectRoot:t,totalCostUSD:0,totalAPIDuration:0,totalAPIDurationWithoutRetries:0,totalToolDuration:0,turnHookDurationMs:0,turnToolDurationMs:0,turnClassifierDurationMs:0,turnToolCount:0,turnHookCount:0,turnClassifierCount:0,startTime:Date.now(),lastInteractionTime:Date.now(),totalLinesAdded:0,totalLinesRemoved:0,hasUnknownModelCost:!1,cwd:t,modelUsage:{},mainLoopModelOverride:void 0,initialMainLoopModel:null,modelStrings:null,isInteractive:!1,kairosActive:!1,strictToolResultPairing:!1,memoryToggledOff:!1,sdkAgentProgressSummariesEnabled:!1,userMsgOptIn:!1,clientType:"cli",sessionSource:void 0,questionPreviewFormat:void 0,sessionIngressToken:void 0,oauthTokenFromFd:void 0,apiKeyFromFd:void 0,flagSettingsPath:void 0,flagSettingsInline:null,allowedSettingSources:["userSettings","projectSettings","localSettings","flagSettings","policySettings"],meter:null,sessionCounter:null,locCounter:null,prCounter:null,commitCounter:null,costCounter:null,tokenCounter:null,codeEditToolDecisionCounter:null,activeTimeCounter:null,statsStore:null,sessionId:(0,iT.randomUUID)(),parentSessionId:void 0,loggerProvider:null,eventLogger:null,meterProvider:null,tracerProvider:null,agentColorMap:new Map,agentColorIndex:0,lastAPIRequest:null,lastAPIRequestMessages:null,lastClassifierRequests:null,cachedClaudeMdContent:null,inMemoryErrorLog:[],inlinePlugins:[],chromeFlagOverride:void 0,useCoworkPlugins:!1,sessionBypassPermissionsMode:!1,scheduledTasksEnabled:!1,sessionCronTasks:[],sessionCreatedTeams:new Set,sessionTrustAccepted:!1,sessionPersistenceDisabled:!1,hasExitedPlanMode:!1,needsPlanModeExitAttachment:!1,needsAutoModeExitAttachment:!1,lspRecommendationShownThisSession:!1,initJsonSchema:null,registeredHooks:null,planSlugCache:new Map,teleportedSessionInfo:null,invokedSkills:new Map,slowOperations:[],sdkBetas:void 0,mainThreadAgentType:void 0,isRemoteMode:!1,directConnectServerUrl:void 0,systemPromptSectionCache:new Map,lastEmittedDate:null,additionalDirectoriesForClaudeMd:[],allowedChannels:[],hasDevChannels:!1,sessionProjectDir:null,promptCache1hAllowlist:null,afkModeHeaderLatched:null,fastModeHeaderLatched:null,cacheEditingHeaderLatched:null,thinkingClearLatched:null,promptId:null,lastMainRequestId:void 0,lastApiCompletionTimestamp:null,pendingPostCompaction:!1}}var Qve=Jve();function Yve(){return Qve.sessionId}var Xve=g8(),LMe=Xve.subscribe,eye=g8(),UMe=eye.subscribe;function tye({writeFn:t,flushIntervalMs:e=1e3,maxBufferSize:r=100,maxBufferBytes:n=1/0,immediateMode:s=!1}){let i=[],a=0,o=null,c=null;function l(){o&&(clearTimeout(o),o=null)}function u(){c&&(t(c.join("")),c=null),i.length!==0&&(t(i.join("")),i=[],a=0,l())}function p(){o||(o=setTimeout(u,e))}function d(){if(c){c.push(...i),i=[],a=0,l();return}let m=i;i=[],a=0,l(),c=m,setImmediate(()=>{let f=c;c=null,f&&t(f.join(""))})}return{write(m){if(s){t(m);return}i.push(m),a+=m.length,p(),(i.length>=r||a>=n)&&d()},flush:u,dispose(){u()}}}var aF=new Set;function rye(t){return aF.add(t),()=>aF.delete(t)}var nye=ea(t=>{if(!t||t.trim()==="")return null;let e=t.split(",").map(i=>i.trim()).filter(Boolean);if(e.length===0)return null;let r=e.some(i=>i.startsWith("!")),n=e.some(i=>!i.startsWith("!"));if(r&&n)return null;let s=e.map(i=>i.replace(/^!/,"").toLowerCase());return{include:r?[]:s,exclude:r?s:[],isExclusive:r}});function sye(t){let e=[],r=t.match(/^MCP server ["']([^"']+)["']/);if(r&&r[1])e.push("mcp"),e.push(r[1].toLowerCase());else{let i=t.match(/^([^:[]+):/);i&&i[1]&&e.push(i[1].trim().toLowerCase())}let n=t.match(/^\[([^\]]+)]/);n&&n[1]&&e.push(n[1].trim().toLowerCase()),t.toLowerCase().includes("1p event:")&&e.push("1p");let s=t.match(/:\s*([^:]+?)(?:\s+(?:type|mode|status|event))?:/);if(s&&s[1]){let i=s[1].trim().toLowerCase();i.length<30&&!i.includes(" ")&&e.push(i)}return Array.from(new Set(e))}function iye(t,e){return e?t.length===0?!1:e.isExclusive?!t.some(r=>e.exclude.includes(r)):t.some(r=>e.include.includes(r)):!0}function aye(t,e){if(!e)return!0;let r=sye(t);return iye(r,e)}var oye={cwd(){return process.cwd()},existsSync(t){let e=[];try{let s=Zt(e,Vt`fs.existsSync(${t})`,0);return Re.existsSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},async stat(t){return(0,or.stat)(t)},async readdir(t){return(0,or.readdir)(t,{withFileTypes:!0})},async unlink(t){return(0,or.unlink)(t)},async rmdir(t){return(0,or.rmdir)(t)},async rm(t,e){return(0,or.rm)(t,e)},async mkdir(t,e){try{await(0,or.mkdir)(t,{recursive:!0,...e})}catch(r){if(dv(r)!=="EEXIST")throw r}},async readFile(t,e){return(0,or.readFile)(t,{encoding:e.encoding})},async rename(t,e){return(0,or.rename)(t,e)},statSync(t){let e=[];try{let s=Zt(e,Vt`fs.statSync(${t})`,0);return Re.statSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},lstatSync(t){let e=[];try{let s=Zt(e,Vt`fs.lstatSync(${t})`,0);return Re.lstatSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readFileSync(${t})`,0);return Re.readFileSync(t,{encoding:e.encoding})}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readFileBytesSync(t){let e=[];try{let s=Zt(e,Vt`fs.readFileBytesSync(${t})`,0);return Re.readFileSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.readSync(${t}, ${e.length} bytes)`,0),a;try{a=Re.openSync(t,"r");let o=Buffer.alloc(e.length),c=Re.readSync(a,o,0,e.length,0);return{buffer:o,bytesRead:c}}finally{a&&Re.closeSync(a)}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},appendFileSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.appendFileSync(${t}, ${e.length} chars)`,0);if(r?.mode!==void 0)try{let o=Re.openSync(t,"ax",r.mode);try{Re.appendFileSync(o,e)}finally{Re.closeSync(o)}return}catch(o){if(dv(o)!=="EEXIST")throw o}Re.appendFileSync(t,e)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},copyFileSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.copyFileSync(${t} → ${e})`,0);Re.copyFileSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},unlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.unlinkSync(${t})`,0);Re.unlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},renameSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.renameSync(${t} → ${e})`,0);Re.renameSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},linkSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.linkSync(${t} → ${e})`,0);Re.linkSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},symlinkSync(t,e,r){let n=[];try{let a=Zt(n,Vt`fs.symlinkSync(${t} → ${e})`,0);Re.symlinkSync(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}},readlinkSync(t){let e=[];try{let s=Zt(e,Vt`fs.readlinkSync(${t})`,0);return Re.readlinkSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},realpathSync(t){let e=[];try{let s=Zt(e,Vt`fs.realpathSync(${t})`,0);return Re.realpathSync(t).normalize("NFC")}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},mkdirSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.mkdirSync(${t})`,0),a={recursive:!0};e?.mode!==void 0&&(a.mode=e.mode);try{Re.mkdirSync(t,a)}catch(o){if(dv(o)!=="EEXIST")throw o}}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},readdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirSync(${t})`,0);return Re.readdirSync(t,{withFileTypes:!0})}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},readdirStringSync(t){let e=[];try{let s=Zt(e,Vt`fs.readdirStringSync(${t})`,0);return Re.readdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},isDirEmptySync(t){let e=[];try{let s=Zt(e,Vt`fs.isDirEmptySync(${t})`,0);return this.readdirSync(t).length===0}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmdirSync(t){let e=[];try{let s=Zt(e,Vt`fs.rmdirSync(${t})`,0);Re.rmdirSync(t)}catch(s){var r=s,n=1}finally{Gt(e,r,n)}},rmSync(t,e){let r=[];try{let i=Zt(r,Vt`fs.rmSync(${t})`,0);Re.rmSync(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}},createWriteStream(t){return Re.createWriteStream(t)},async readFileBytes(t,e){if(e===void 0)return(0,or.readFile)(t);let r=await(0,or.open)(t,"r");try{let{size:n}=await r.stat(),s=Math.min(n,e),i=Buffer.allocUnsafe(s),a=0;for(;a{let t=process.env.CLAUDE_CODE_DEBUG_LOG_LEVEL?.toLowerCase().trim();return t&&Object.hasOwn(NE,t)?t:"debug"}),dye=!1,DE=ea(()=>dye||Qa(process.env.DEBUG)||Qa(process.env.DEBUG_SDK)||process.argv.includes("--debug")||process.argv.includes("-d")||v8()||process.argv.some(t=>t.startsWith("--debug="))||y8()!==null),mye=ea(()=>{let t=process.argv.find(r=>r.startsWith("--debug="));if(!t)return null;let e=t.substring(8);return nye(e)}),v8=ea(()=>process.argv.includes("--debug-to-stderr")||process.argv.includes("-d2e")),y8=ea(()=>{for(let t=0;t"u"||typeof process.versions>"u"||typeof process.versions.node>"u")return!1;let e=mye();return aye(t,e)}var hye=!1,av=null,vE=Promise.resolve();async function gye(t,e,r,n){t&&await(0,ta.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,ta.appendFile)(r,n),x8()}function vye(){}function yye(){if(!av){let t=null;av=tye({writeFn:e=>{let r=b8(),n=(0,dl.dirname)(r),s=t!==n;if(t=n,DE()){if(s)try{oF().mkdirSync(n)}catch{}oF().appendFileSync(r,e),x8();return}vE=vE.then(gye.bind(null,s,n,r,e)).catch(vye)},flushIntervalMs:1e3,maxBufferSize:100,immediateMode:DE()}),rye(async()=>{av?.dispose(),await vE})}return av}function Zi(t,{level:e}={level:"debug"}){if(NE[e]{try{let t=b8(),e=(0,dl.dirname)(t),r=(0,dl.join)(e,"latest");await(0,ta.unlink)(r).catch(()=>{}),await(0,ta.symlink)(t,r)}catch{}}),qMe=(()=>{let t=process.env.CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS;if(t!==void 0){let e=Number(t);if(!Number.isNaN(e)&&e>=0)return e}return 1/0})(),bye={[Symbol.dispose](){}};function xye(){return bye}var Vt=xye;function pi(t,e,r){let n=[];try{let a=Zt(n,Vt`JSON.stringify(${t})`,0);return JSON.stringify(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}}var _8=(t,e)=>{let r=[];try{let i=Zt(r,Vt`JSON.parse(${t})`,0);return typeof e>"u"?JSON.parse(t):JSON.parse(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}};function _ye(t){let e=t.trim();return e.startsWith("{")&&e.endsWith("}")}function wye(t,e){let r={...t};if(e){let n=r.settings;if(n&&!_ye(n))throw Error("Cannot use both a settings file path and the sandbox option. Include the sandbox configuration in your settings file instead.");let s={sandbox:e};if(n)try{s={..._8(n),sandbox:e}}catch{}r.settings=pi(s)}return r}var Sye=2e3,zE=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||MF(),this.initialize()}getDefaultExecutable(){return UF()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:s,env:i,signal:a}=e,o=Ja(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr?"pipe":"ignore",c=(0,$F.spawn)(r,n,{cwd:s,stdio:["pipe","pipe",o],signal:a,env:i,windowsHide:!0});return(Ja(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr)&&c.stderr.on("data",l=>{let u=l.toString();Hs(u),this.options.stderr&&this.options.stderr(u)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],agent:r,betas:n,cwd:s,executable:i=this.getDefaultExecutable(),executableArgs:a=[],extraArgs:o={},pathToClaudeCodeExecutable:c,env:l={...process.env},thinkingConfig:u,maxTurns:p,maxBudgetUsd:d,taskBudget:m,model:f,fallbackModel:v,jsonSchema:g,permissionMode:h,allowDangerouslySkipPermissions:y,permissionPromptToolName:b,continueConversation:x,resume:w,settingSources:S,allowedTools:k=[],disallowedTools:E=[],tools:R,mcpServers:O,strictMcpConfig:C,canUseTool:$,includePartialMessages:q,plugins:B,sandbox:re}=this.options,G=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u)switch(u.type){case"enabled":u.budgetTokens===void 0?G.push("--thinking","adaptive"):G.push("--max-thinking-tokens",u.budgetTokens.toString());break;case"disabled":G.push("--thinking","disabled");break;case"adaptive":G.push("--thinking","adaptive");break}if(this.options.effort&&G.push("--effort",this.options.effort),p&&G.push("--max-turns",p.toString()),d!==void 0&&G.push("--max-budget-usd",d.toString()),m&&G.push("--task-budget",m.total.toString()),f&&G.push("--model",f),r&&G.push("--agent",r),n&&n.length>0&&G.push("--betas",n.join(",")),g&&G.push("--json-schema",pi(g)),this.options.debugFile?G.push("--debug-file",this.options.debugFile):this.options.debug&&G.push("--debug"),Ja(l.DEBUG_CLAUDE_AGENT_SDK)&&G.push("--debug-to-stderr"),$){if(b)throw Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");G.push("--permission-prompt-tool","stdio")}else b&&G.push("--permission-prompt-tool",b);if(x&&G.push("--continue"),w&&G.push("--resume",w),this.options.proactive&&G.push("--proactive"),this.options.assistant&&G.push("--assistant"),this.options.channels&&this.options.channels.length>0&&G.push("--channels",...this.options.channels),k.length>0&&G.push("--allowedTools",k.join(",")),E.length>0&&G.push("--disallowedTools",E.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?G.push("--tools",""):G.push("--tools",R.join(",")):G.push("--tools","default")),O&&Object.keys(O).length>0&&G.push("--mcp-config",pi({mcpServers:O})),S!==void 0&&G.push(`--setting-sources=${S.join(",")}`),C&&G.push("--strict-mcp-config"),h&&G.push("--permission-mode",h),y&&G.push("--allow-dangerously-skip-permissions"),v){if(f&&v===f)throw Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");G.push("--fallback-model",v)}this.options.includeHookEvents&&G.push("--include-hook-events"),q&&G.push("--include-partial-messages");for(let T of e)G.push("--add-dir",T);if(B&&B.length>0)for(let T of B)if(T.type==="local")G.push("--plugin-dir",T.path);else throw Error(`Unsupported plugin type: ${T.type}`);this.options.forkSession&&G.push("--fork-session"),this.options.resumeSessionAt&&G.push("--resume-session-at",this.options.resumeSessionAt),this.options.sessionId&&G.push("--session-id",this.options.sessionId),this.options.persistSession===!1&&G.push("--no-session-persistence");let yt={...o??{}};this.options.settings&&(yt.settings=this.options.settings);let Cr=wye(yt,re);for(let[T,I]of Object.entries(Cr))I===null?G.push(`--${T}`):G.push(`--${T}`,I);l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete l.NODE_OPTIONS,Ja(l.DEBUG_CLAUDE_AGENT_SDK)?l.DEBUG="1":delete l.DEBUG;let Fe=kye(c),K=Fe?c:i,j=Fe?[...a,...G]:[...a,c,...G],W={command:K,args:j,cwd:s,env:l,signal:this.abortController.signal};this.options.spawnClaudeCodeProcess?(Hs(`Spawning Claude Code (custom): ${K} ${j.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(W)):(Hs(`Spawning Claude Code: ${K} ${j.join(" ")}`),this.process=this.spawnLocalProcess(W)),this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let M=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=M,this.abortHandler=M,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",T=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else if(Vve(T)){let I=Fe?`Claude Code native binary not found at ${c}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${c}. Is options.pathToClaudeCodeExecutable set?`;this.exitError=ReferenceError(I),Hs(this.exitError.message)}else this.exitError=Error(`Failed to spawn Claude Code process: ${T.message}`),Hs(this.exitError.message)}),this.process.on("exit",(T,I)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else{let H=this.getProcessExitError(T,I);H&&(this.exitError=H,Hs(H.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return Error(`Claude Code process exited with code ${e}`);if(r)return Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Vi("Operation aborted");if(!this.ready||!this.processStdin)throw Error("ProcessTransport is not ready for writing");if(this.processStdin.writableEnded){Hs("[ProcessTransport] Dropping write to ended stdin stream");return}if(this.process?.killed||this.process?.exitCode!==null)throw Error("Cannot write to terminated process");if(this.exitError)throw Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Hs(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||Hs("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,Error(`Failed to write to process stdin: ${OE(r)}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:r}of this.exitListeners)this.process?.off("exit",r);this.exitListeners=[];let e=this.process;e&&!e.killed&&e.exitCode===null?(setTimeout(r=>{r.killed||r.exitCode!==null||(r.kill("SIGTERM"),setTimeout(n=>{n.exitCode===null&&n.kill("SIGKILL")},5e3,r).unref())},Sye,e).unref(),e.once("exit",()=>{this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)})):this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw Error("ProcessTransport output stream not available");let e=(0,LF.createInterface)({input:this.processStdout});try{for await(let r of e)if(r.trim()){let n;try{n=_8(r)}catch{Hs(`Non-JSON stdout: ${r}`);continue}yield n}await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(n,s)=>{let i=this.getProcessExitError(n,s);e(i)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let n=this.exitListeners.findIndex(s=>s.handler===r);n!==-1&&this.exitListeners.splice(n,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let n=(i,a)=>{if(this.abortController.signal.aborted){r(new Vi("Operation aborted"));return}let o=this.getProcessExitError(i,a);o?r(o):e()};this.process.once("exit",n);let s=i=>{this.process.off("exit",n),r(i)};this.process.once("error",s),this.process.once("exit",()=>{this.process.off("error",s)})})}};function kye(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(e=>t.endsWith(e))}var Lv=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},ME=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},$E=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;onElicitation;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Lv;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;lastErrorResultText;setIsSingleUserTurn(e){this.isSingleUserTurn=e}hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0||this.onElicitation!==void 0}constructor(e,r,n,s,i,a=new Map,o,c,l){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=s,this.abortController=i,this.jsonSchema=o,this.initConfig=c,this.onElicitation=l;for(let[u,p]of a)this.connectSdkMcpServer(u,p);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}async stopTask(e){await this.request({subtype:"stop_task",task_id:e})}close(){this.cleanup()}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{for(let n of this.cancelControllers.values())n.abort();this.cancelControllers.clear(),this.transport.close();let r=Error("Query closed before response received");for(let{reject:n}of this.pendingControlResponses.values())n(r);this.pendingControlResponses.clear();for(let{reject:n}of this.pendingMcpResponses.values())n(r);this.pendingMcpResponses.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r.handler(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="system"&&e.subtype==="post_turn_summary"||(e.type==="result"?(this.lastErrorResultText=e.is_error?e.subtype==="success"?e.result:e.errors.join("; "):void 0,this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zi("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())):e.type==="system"&&e.subtype==="session_state_changed"||(this.lastErrorResultText=void 0),this.inputStream.enqueue(e))}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){if(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.lastErrorResultText!==void 0&&!(e instanceof Vi)){let r=Error(`Claude Code returned an error result: ${this.lastErrorResultText}`);Zi(`[Query.readMessages] Replacing exit error with result text. Original: ${OE(e)}`),this.inputStream.error(r),this.cleanup(r);return}this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let n=await this.processControlRequest(e,r.signal);if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(pi(s)+` +`;if(v8()){uye(r);return}yye().write(r)}function b8(){return y8()??process.env.CLAUDE_CODE_DEBUG_LOGS_DIR??(0,dl.join)(GF(),"debug",`${Yve()}.txt`)}var x8=ea(async()=>{try{let t=b8(),e=(0,dl.dirname)(t),r=(0,dl.join)(e,"latest");await(0,ta.unlink)(r).catch(()=>{}),await(0,ta.symlink)(t,r)}catch{}}),qMe=(()=>{let t=process.env.CLAUDE_CODE_SLOW_OPERATION_THRESHOLD_MS;if(t!==void 0){let e=Number(t);if(!Number.isNaN(e)&&e>=0)return e}return 1/0})(),bye={[Symbol.dispose](){}};function xye(){return bye}var Vt=xye;function pi(t,e,r){let n=[];try{let a=Zt(n,Vt`JSON.stringify(${t})`,0);return JSON.stringify(t,e,r)}catch(a){var s=a,i=1}finally{Gt(n,s,i)}}var _8=(t,e)=>{let r=[];try{let i=Zt(r,Vt`JSON.parse(${t})`,0);return typeof e>"u"?JSON.parse(t):JSON.parse(t,e)}catch(i){var n=i,s=1}finally{Gt(r,n,s)}};function _ye(t){let e=t.trim();return e.startsWith("{")&&e.endsWith("}")}function wye(t,e){let r={...t};if(e){let n=r.settings;if(n&&!_ye(n))throw Error("Cannot use both a settings file path and the sandbox option. Include the sandbox configuration in your settings file instead.");let s={sandbox:e};if(n)try{s={..._8(n),sandbox:e}}catch{}r.settings=pi(s)}return r}var Sye=2e3,zE=class{options;process;processStdin;processStdout;ready=!1;abortController;exitError;exitListeners=[];processExitHandler;abortHandler;constructor(e){this.options=e,this.abortController=e.abortController||MF(),this.initialize()}getDefaultExecutable(){return UF()?"bun":"node"}spawnLocalProcess(e){let{command:r,args:n,cwd:s,env:i,signal:a}=e,o=Qa(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr?"pipe":"ignore",c=(0,$F.spawn)(r,n,{cwd:s,stdio:["pipe","pipe",o],signal:a,env:i,windowsHide:!0});return(Qa(i.DEBUG_CLAUDE_AGENT_SDK)||this.options.stderr)&&c.stderr.on("data",l=>{let u=l.toString();Hs(u),this.options.stderr&&this.options.stderr(u)}),{stdin:c.stdin,stdout:c.stdout,get killed(){return c.killed},get exitCode(){return c.exitCode},kill:c.kill.bind(c),on:c.on.bind(c),once:c.once.bind(c),off:c.off.bind(c)}}initialize(){try{let{additionalDirectories:e=[],agent:r,betas:n,cwd:s,executable:i=this.getDefaultExecutable(),executableArgs:a=[],extraArgs:o={},pathToClaudeCodeExecutable:c,env:l={...process.env},thinkingConfig:u,maxTurns:p,maxBudgetUsd:d,taskBudget:m,model:f,fallbackModel:v,jsonSchema:g,permissionMode:h,allowDangerouslySkipPermissions:y,permissionPromptToolName:b,continueConversation:x,resume:w,settingSources:S,allowedTools:k=[],disallowedTools:E=[],tools:R,mcpServers:O,strictMcpConfig:C,canUseTool:$,includePartialMessages:q,plugins:B,sandbox:re}=this.options,G=["--output-format","stream-json","--verbose","--input-format","stream-json"];if(u)switch(u.type){case"enabled":u.budgetTokens===void 0?G.push("--thinking","adaptive"):G.push("--max-thinking-tokens",u.budgetTokens.toString());break;case"disabled":G.push("--thinking","disabled");break;case"adaptive":G.push("--thinking","adaptive");break}if(this.options.effort&&G.push("--effort",this.options.effort),p&&G.push("--max-turns",p.toString()),d!==void 0&&G.push("--max-budget-usd",d.toString()),m&&G.push("--task-budget",m.total.toString()),f&&G.push("--model",f),r&&G.push("--agent",r),n&&n.length>0&&G.push("--betas",n.join(",")),g&&G.push("--json-schema",pi(g)),this.options.debugFile?G.push("--debug-file",this.options.debugFile):this.options.debug&&G.push("--debug"),Qa(l.DEBUG_CLAUDE_AGENT_SDK)&&G.push("--debug-to-stderr"),$){if(b)throw Error("canUseTool callback cannot be used with permissionPromptToolName. Please use one or the other.");G.push("--permission-prompt-tool","stdio")}else b&&G.push("--permission-prompt-tool",b);if(x&&G.push("--continue"),w&&G.push("--resume",w),this.options.proactive&&G.push("--proactive"),this.options.assistant&&G.push("--assistant"),this.options.channels&&this.options.channels.length>0&&G.push("--channels",...this.options.channels),k.length>0&&G.push("--allowedTools",k.join(",")),E.length>0&&G.push("--disallowedTools",E.join(",")),R!==void 0&&(Array.isArray(R)?R.length===0?G.push("--tools",""):G.push("--tools",R.join(",")):G.push("--tools","default")),O&&Object.keys(O).length>0&&G.push("--mcp-config",pi({mcpServers:O})),S!==void 0&&G.push(`--setting-sources=${S.join(",")}`),C&&G.push("--strict-mcp-config"),h&&G.push("--permission-mode",h),y&&G.push("--allow-dangerously-skip-permissions"),v){if(f&&v===f)throw Error("Fallback model cannot be the same as the main model. Please specify a different model for fallbackModel option.");G.push("--fallback-model",v)}this.options.includeHookEvents&&G.push("--include-hook-events"),q&&G.push("--include-partial-messages");for(let T of e)G.push("--add-dir",T);if(B&&B.length>0)for(let T of B)if(T.type==="local")G.push("--plugin-dir",T.path);else throw Error(`Unsupported plugin type: ${T.type}`);this.options.forkSession&&G.push("--fork-session"),this.options.resumeSessionAt&&G.push("--resume-session-at",this.options.resumeSessionAt),this.options.sessionId&&G.push("--session-id",this.options.sessionId),this.options.persistSession===!1&&G.push("--no-session-persistence");let yt={...o??{}};this.options.settings&&(yt.settings=this.options.settings);let Cr=wye(yt,re);for(let[T,I]of Object.entries(Cr))I===null?G.push(`--${T}`):G.push(`--${T}`,I);l.CLAUDE_CODE_ENTRYPOINT||(l.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),delete l.NODE_OPTIONS,Qa(l.DEBUG_CLAUDE_AGENT_SDK)?l.DEBUG="1":delete l.DEBUG;let Fe=kye(c),K=Fe?c:i,j=Fe?[...a,...G]:[...a,c,...G],W={command:K,args:j,cwd:s,env:l,signal:this.abortController.signal};this.options.spawnClaudeCodeProcess?(Hs(`Spawning Claude Code (custom): ${K} ${j.join(" ")}`),this.process=this.options.spawnClaudeCodeProcess(W)):(Hs(`Spawning Claude Code: ${K} ${j.join(" ")}`),this.process=this.spawnLocalProcess(W)),this.processStdin=this.process.stdin,this.processStdout=this.process.stdout;let M=()=>{this.process&&!this.process.killed&&this.process.kill("SIGTERM")};this.processExitHandler=M,this.abortHandler=M,process.on("exit",this.processExitHandler),this.abortController.signal.addEventListener("abort",this.abortHandler),this.process.on("error",T=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else if(Vve(T)){let I=Fe?`Claude Code native binary not found at ${c}. Please ensure Claude Code is installed via native installer or specify a valid path with options.pathToClaudeCodeExecutable.`:`Claude Code executable not found at ${c}. Is options.pathToClaudeCodeExecutable set?`;this.exitError=ReferenceError(I),Hs(this.exitError.message)}else this.exitError=Error(`Failed to spawn Claude Code process: ${T.message}`),Hs(this.exitError.message)}),this.process.on("exit",(T,I)=>{if(this.ready=!1,this.abortController.signal.aborted)this.exitError=new Vi("Claude Code process aborted by user");else{let H=this.getProcessExitError(T,I);H&&(this.exitError=H,Hs(H.message))}}),this.ready=!0}catch(e){throw this.ready=!1,e}}getProcessExitError(e,r){if(e!==0&&e!==null)return Error(`Claude Code process exited with code ${e}`);if(r)return Error(`Claude Code process terminated by signal ${r}`)}write(e){if(this.abortController.signal.aborted)throw new Vi("Operation aborted");if(!this.ready||!this.processStdin)throw Error("ProcessTransport is not ready for writing");if(this.processStdin.writableEnded){Hs("[ProcessTransport] Dropping write to ended stdin stream");return}if(this.process?.killed||this.process?.exitCode!==null)throw Error("Cannot write to terminated process");if(this.exitError)throw Error(`Cannot write to process that exited with error: ${this.exitError.message}`);Hs(`[ProcessTransport] Writing to stdin: ${e.substring(0,100)}`);try{this.processStdin.write(e)||Hs("[ProcessTransport] Write buffer full, data queued")}catch(r){throw this.ready=!1,Error(`Failed to write to process stdin: ${OE(r)}`)}}close(){this.processStdin&&(this.processStdin.end(),this.processStdin=void 0),this.abortHandler&&(this.abortController.signal.removeEventListener("abort",this.abortHandler),this.abortHandler=void 0);for(let{handler:r}of this.exitListeners)this.process?.off("exit",r);this.exitListeners=[];let e=this.process;e&&!e.killed&&e.exitCode===null?(setTimeout(r=>{r.killed||r.exitCode!==null||(r.kill("SIGTERM"),setTimeout(n=>{n.exitCode===null&&n.kill("SIGKILL")},5e3,r).unref())},Sye,e).unref(),e.once("exit",()=>{this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0)})):this.processExitHandler&&(process.off("exit",this.processExitHandler),this.processExitHandler=void 0),this.ready=!1}isReady(){return this.ready}async*readMessages(){if(!this.processStdout)throw Error("ProcessTransport output stream not available");let e=(0,LF.createInterface)({input:this.processStdout});try{for await(let r of e)if(r.trim()){let n;try{n=_8(r)}catch{Hs(`Non-JSON stdout: ${r}`);continue}yield n}await this.waitForExit()}catch(r){throw r}finally{e.close()}}endInput(){this.processStdin&&this.processStdin.end()}getInputStream(){return this.processStdin}onExit(e){if(!this.process)return()=>{};let r=(n,s)=>{let i=this.getProcessExitError(n,s);e(i)};return this.process.on("exit",r),this.exitListeners.push({callback:e,handler:r}),()=>{this.process&&this.process.off("exit",r);let n=this.exitListeners.findIndex(s=>s.handler===r);n!==-1&&this.exitListeners.splice(n,1)}}async waitForExit(){if(!this.process){if(this.exitError)throw this.exitError;return}if(this.process.exitCode!==null||this.process.killed){if(this.exitError)throw this.exitError;return}return new Promise((e,r)=>{let n=(i,a)=>{if(this.abortController.signal.aborted){r(new Vi("Operation aborted"));return}let o=this.getProcessExitError(i,a);o?r(o):e()};this.process.once("exit",n);let s=i=>{this.process.off("exit",n),r(i)};this.process.once("error",s),this.process.once("exit",()=>{this.process.off("error",s)})})}};function kye(t){return![".js",".mjs",".tsx",".ts",".jsx"].some(e=>t.endsWith(e))}var Lv=class{returned;queue=[];readResolve;readReject;isDone=!1;hasError;started=!1;constructor(e){this.returned=e}[Symbol.asyncIterator](){if(this.started)throw Error("Stream can only be iterated once");return this.started=!0,this}next(){return this.queue.length>0?Promise.resolve({done:!1,value:this.queue.shift()}):this.isDone?Promise.resolve({done:!0,value:void 0}):this.hasError?Promise.reject(this.hasError):new Promise((e,r)=>{this.readResolve=e,this.readReject=r})}enqueue(e){if(this.readResolve){let r=this.readResolve;this.readResolve=void 0,this.readReject=void 0,r({done:!1,value:e})}else this.queue.push(e)}done(){if(this.isDone=!0,this.readResolve){let e=this.readResolve;this.readResolve=void 0,this.readReject=void 0,e({done:!0,value:void 0})}}error(e){if(this.hasError=e,this.readReject){let r=this.readReject;this.readResolve=void 0,this.readReject=void 0,r(e)}}return(){return this.isDone=!0,this.returned&&this.returned(),Promise.resolve({done:!0,value:void 0})}},ME=class{sendMcpMessage;isClosed=!1;constructor(e){this.sendMcpMessage=e}onclose;onerror;onmessage;async start(){}async send(e){if(this.isClosed)throw Error("Transport is closed");this.sendMcpMessage(e)}async close(){this.isClosed||(this.isClosed=!0,this.onclose?.())}},$E=class{transport;isSingleUserTurn;canUseTool;hooks;abortController;jsonSchema;initConfig;onElicitation;pendingControlResponses=new Map;cleanupPerformed=!1;sdkMessages;inputStream=new Lv;initialization;cancelControllers=new Map;hookCallbacks=new Map;nextCallbackId=0;sdkMcpTransports=new Map;sdkMcpServerInstances=new Map;pendingMcpResponses=new Map;firstResultReceivedResolve;firstResultReceived=!1;lastErrorResultText;setIsSingleUserTurn(e){this.isSingleUserTurn=e}hasBidirectionalNeeds(){return this.sdkMcpTransports.size>0||this.hooks!==void 0&&Object.keys(this.hooks).length>0||this.canUseTool!==void 0||this.onElicitation!==void 0}constructor(e,r,n,s,i,a=new Map,o,c,l){this.transport=e,this.isSingleUserTurn=r,this.canUseTool=n,this.hooks=s,this.abortController=i,this.jsonSchema=o,this.initConfig=c,this.onElicitation=l;for(let[u,p]of a)this.connectSdkMcpServer(u,p);this.sdkMessages=this.readSdkMessages(),this.readMessages(),this.initialization=this.initialize(),this.initialization.catch(()=>{})}setError(e){this.inputStream.error(e)}async stopTask(e){await this.request({subtype:"stop_task",task_id:e})}close(){this.cleanup()}cleanup(e){if(!this.cleanupPerformed){this.cleanupPerformed=!0;try{for(let n of this.cancelControllers.values())n.abort();this.cancelControllers.clear(),this.transport.close();let r=Error("Query closed before response received");for(let{reject:n}of this.pendingControlResponses.values())n(r);this.pendingControlResponses.clear();for(let{reject:n}of this.pendingMcpResponses.values())n(r);this.pendingMcpResponses.clear(),this.hookCallbacks.clear();for(let n of this.sdkMcpTransports.values())try{n.close()}catch{}this.sdkMcpTransports.clear(),e?this.inputStream.error(e):this.inputStream.done()}catch{}}}next(...[e]){return this.sdkMessages.next(e)}return(e){return this.sdkMessages.return(e)}throw(e){return this.sdkMessages.throw(e)}[Symbol.asyncIterator](){return this.sdkMessages}[Symbol.asyncDispose](){return this.sdkMessages[Symbol.asyncDispose]()}async readMessages(){try{for await(let e of this.transport.readMessages()){if(e.type==="control_response"){let r=this.pendingControlResponses.get(e.response.request_id);r&&r.handler(e.response);continue}else if(e.type==="control_request"){this.handleControlRequest(e);continue}else if(e.type==="control_cancel_request"){this.handleControlCancelRequest(e);continue}else if(e.type==="keep_alive")continue;e.type==="system"&&e.subtype==="post_turn_summary"||(e.type==="result"?(this.lastErrorResultText=e.is_error?e.subtype==="success"?e.result:e.errors.join("; "):void 0,this.firstResultReceived=!0,this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.isSingleUserTurn&&(Zi("[Query.readMessages] First result received for single-turn query, closing stdin"),this.transport.endInput())):e.type==="system"&&e.subtype==="session_state_changed"||(this.lastErrorResultText=void 0),this.inputStream.enqueue(e))}this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.inputStream.done(),this.cleanup()}catch(e){if(this.firstResultReceivedResolve&&this.firstResultReceivedResolve(),this.lastErrorResultText!==void 0&&!(e instanceof Vi)){let r=Error(`Claude Code returned an error result: ${this.lastErrorResultText}`);Zi(`[Query.readMessages] Replacing exit error with result text. Original: ${OE(e)}`),this.inputStream.error(r),this.cleanup(r);return}this.inputStream.error(e),this.cleanup(e)}}async handleControlRequest(e){let r=new AbortController;this.cancelControllers.set(e.request_id,r);try{let n=await this.processControlRequest(e,r.signal);if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"success",request_id:e.request_id,response:n}};await Promise.resolve(this.transport.write(pi(s)+` `))}catch(n){if(this.cleanupPerformed)return;let s={type:"control_response",response:{subtype:"error",request_id:e.request_id,error:OE(n)}};await Promise.resolve(this.transport.write(pi(s)+` `))}finally{this.cancelControllers.delete(e.request_id)}}handleControlCancelRequest(e){let r=this.cancelControllers.get(e.request_id);r&&(r.abort(),this.cancelControllers.delete(e.request_id))}async processControlRequest(e,r){if(e.request.subtype==="can_use_tool"){if(!this.canUseTool)throw Error("canUseTool callback is not provided.");return{...await this.canUseTool(e.request.tool_name,e.request.input,{signal:r,suggestions:e.request.permission_suggestions,blockedPath:e.request.blocked_path,decisionReason:e.request.decision_reason,title:e.request.title,displayName:e.request.display_name,description:e.request.description,toolUseID:e.request.tool_use_id,agentID:e.request.agent_id}),toolUseID:e.request.tool_use_id}}else{if(e.request.subtype==="hook_callback")return await this.handleHookCallbacks(e.request.callback_id,e.request.input,e.request.tool_use_id,r);if(e.request.subtype==="mcp_message"){let n=e.request,s=this.sdkMcpTransports.get(n.server_name);if(!s)throw Error(`SDK MCP server not found: ${n.server_name}`);return"method"in n.message&&"id"in n.message&&n.message.id!==null?{mcp_response:await this.handleMcpControlRequest(n.server_name,n,s)}:(s.onmessage&&s.onmessage(n.message),{mcp_response:{jsonrpc:"2.0",result:{},id:0}})}else if(e.request.subtype==="elicitation"){let n=e.request;return this.onElicitation?await this.onElicitation({serverName:n.mcp_server_name,message:n.message,mode:n.mode,url:n.url,elicitationId:n.elicitation_id,requestedSchema:n.requested_schema},{signal:r}):{action:"decline"}}}throw Error("Unsupported control request subtype: "+e.request.subtype)}async*readSdkMessages(){for await(let e of this.inputStream)yield e}async initialize(){let e;if(this.hooks){e={};for(let[s,i]of Object.entries(this.hooks))i.length>0&&(e[s]=i.map(a=>{let o=[];for(let c of a.hooks){let l=`hook_${this.nextCallbackId++}`;this.hookCallbacks.set(l,c),o.push(l)}return{matcher:a.matcher,hookCallbackIds:o,timeout:a.timeout}}))}let r=this.sdkMcpTransports.size>0?Array.from(this.sdkMcpTransports.keys()):void 0,n={subtype:"initialize",hooks:e,sdkMcpServers:r,jsonSchema:this.jsonSchema,systemPrompt:this.initConfig?.systemPrompt,appendSystemPrompt:this.initConfig?.appendSystemPrompt,agents:this.initConfig?.agents,promptSuggestions:this.initConfig?.promptSuggestions,agentProgressSummaries:this.initConfig?.agentProgressSummaries};return(await this.request(n)).response}async interrupt(){await this.request({subtype:"interrupt"})}async setPermissionMode(e){await this.request({subtype:"set_permission_mode",mode:e})}async setModel(e){await this.request({subtype:"set_model",model:e})}async setMaxThinkingTokens(e){await this.request({subtype:"set_max_thinking_tokens",max_thinking_tokens:e})}async applyFlagSettings(e){await this.request({subtype:"apply_flag_settings",settings:e})}async getSettings(){return(await this.request({subtype:"get_settings"})).response}async rewindFiles(e,r){return(await this.request({subtype:"rewind_files",user_message_id:e,dry_run:r?.dryRun})).response}async cancelAsyncMessage(e){return(await this.request({subtype:"cancel_async_message",message_uuid:e})).response.cancelled}async seedReadState(e,r){await this.request({subtype:"seed_read_state",path:e,mtime:r})}async enableRemoteControl(e){return(await this.request({subtype:"remote_control",enabled:e})).response}async setProactive(e){await this.request({subtype:"set_proactive",enabled:e})}async generateSessionTitle(e,r){return(await this.request({subtype:"generate_session_title",description:e,persist:r?.persist})).response.title}async askSideQuestion(e){return(await this.request({subtype:"side_question",question:e})).response.response}async processPendingPermissionRequests(e){for(let r of e)r.request.subtype==="can_use_tool"&&this.handleControlRequest(r).catch(()=>{})}request(e){let r=Math.random().toString(36).substring(2,15),n={request_id:r,type:"control_request",request:e};return new Promise((s,i)=>{this.pendingControlResponses.set(r,{handler:a=>{this.pendingControlResponses.delete(r),a.subtype==="success"?s(a):(i(Error(a.error)),a.pending_permission_requests&&this.processPendingPermissionRequests(a.pending_permission_requests))},reject:i}),Promise.resolve(this.transport.write(pi(n)+` `))})}async initializationResult(){return this.initialization}async supportedCommands(){return(await this.initialization).commands}async supportedModels(){return(await this.initialization).models}async supportedAgents(){return(await this.initialization).agents}async reconnectMcpServer(e){await this.request({subtype:"mcp_reconnect",serverName:e})}async toggleMcpServer(e,r){await this.request({subtype:"mcp_toggle",serverName:e,enabled:r})}async enableChannel(e){await this.request({subtype:"channel_enable",serverName:e})}async mcpAuthenticate(e){return(await this.request({subtype:"mcp_authenticate",serverName:e})).response}async mcpClearAuth(e){return(await this.request({subtype:"mcp_clear_auth",serverName:e})).response}async mcpSubmitOAuthCallbackUrl(e,r){return(await this.request({subtype:"mcp_oauth_callback_url",serverName:e,callbackUrl:r})).response}async claudeAuthenticate(e){return(await this.request({subtype:"claude_authenticate",loginWithClaudeAi:e})).response}async claudeOAuthCallback(e,r){return(await this.request({subtype:"claude_oauth_callback",authorizationCode:e,state:r})).response}async claudeOAuthWaitForCompletion(){return(await this.request({subtype:"claude_oauth_wait_for_completion"})).response}async mcpServerStatus(){return(await this.request({subtype:"mcp_status"})).response.mcpServers}async getContextUsage(){return(await this.request({subtype:"get_context_usage"})).response}async reloadPlugins(){return(await this.request({subtype:"reload_plugins"})).response}async setMcpServers(e){let r={},n={};for(let[o,c]of Object.entries(e))c.type==="sdk"&&"instance"in c?r[o]=c.instance:n[o]=c;let s=new Set(this.sdkMcpServerInstances.keys()),i=new Set(Object.keys(r));for(let o of s)i.has(o)||await this.disconnectSdkMcpServer(o);for(let[o,c]of Object.entries(r))s.has(o)||this.connectSdkMcpServer(o,c);let a={};for(let o of Object.keys(r))a[o]={type:"sdk",name:o};return(await this.request({subtype:"mcp_set_servers",servers:{...n,...a}})).response}async accountInfo(){return(await this.initialization).account}async streamInput(e){Zi("[Query.streamInput] Starting to process input stream");try{let r=0;for await(let n of e){if(r++,Zi(`[Query.streamInput] Processing message ${r}: ${n.type}`),this.abortController?.signal.aborted)break;await Promise.resolve(this.transport.write(pi(n)+` `))}Zi(`[Query.streamInput] Finished processing ${r} messages from input stream`),r>0&&this.hasBidirectionalNeeds()&&(Zi("[Query.streamInput] Has bidirectional needs, waiting for first result"),await this.waitForFirstResult()),Zi("[Query] Calling transport.endInput() to close stdin to CLI process"),this.transport.endInput()}catch(r){if(!(r instanceof Vi))throw r}}waitForFirstResult(){return this.firstResultReceived?(Zi("[Query.waitForFirstResult] Result already received, returning immediately"),Promise.resolve()):new Promise(e=>{if(this.abortController?.signal.aborted){e();return}this.abortController?.signal.addEventListener("abort",()=>e(),{once:!0}),this.firstResultReceivedResolve=e})}handleHookCallbacks(e,r,n,s){let i=this.hookCallbacks.get(e);if(!i)throw Error(`No hook callback found for ID: ${e}`);return i(r,n,{signal:s})}connectSdkMcpServer(e,r){let n=new ME(s=>this.sendMcpServerMessageToCli(e,s));this.sdkMcpTransports.set(e,n),this.sdkMcpServerInstances.set(e,r),r.connect(n)}async disconnectSdkMcpServer(e){let r=this.sdkMcpTransports.get(e);r&&(await r.close(),this.sdkMcpTransports.delete(e)),this.sdkMcpServerInstances.delete(e)}sendMcpServerMessageToCli(e,r){if("id"in r&&r.id!==null&&r.id!==void 0){let s=`${e}:${r.id}`,i=this.pendingMcpResponses.get(s);if(i){i.resolve(r),this.pendingMcpResponses.delete(s);return}}let n={type:"control_request",request_id:(0,iT.randomUUID)(),request:{subtype:"mcp_message",server_name:e,message:r}};this.transport.write(pi(n)+` -`)}handleMcpControlRequest(e,r,n){let s="id"in r.message?r.message.id:null,i=`${e}:${s}`;return new Promise((a,o)=>{let c=()=>{this.pendingMcpResponses.delete(i)},l=p=>{c(),a(p)},u=p=>{c(),o(p)};if(this.pendingMcpResponses.set(i,{resolve:l,reject:u}),n.onmessage)n.onmessage(r.message);else{c(),o(Error("No message handler registered"));return}})}},Eye=5e3,UE=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw Error("Session ID not available until after receiving messages");return this._sessionId}constructor(e){e.resume&&(this._sessionId=e.resume),this.inputStream=new Lv;let r=e.pathToClaudeCodeExecutable;if(!r){let i=(0,w8.fileURLToPath)(ySe.url),a=(0,LE.join)(i,"..");r=(0,LE.join)(a,"cli.js")}let n={...e.env??process.env};n.CLAUDE_CODE_ENTRYPOINT||(n.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=MF();let s=new zE({abortController:this.abortController,pathToClaudeCodeExecutable:r,env:n,executable:e.executable??(UF()?"bun":"node"),executableArgs:e.executableArgs??[],extraArgs:{},thinkingConfig:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:e.model,fallbackModel:void 0,permissionMode:e.permissionMode??"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:e.resume,settingSources:[],allowedTools:e.allowedTools??[],disallowedTools:e.disallowedTools??[],mcpServers:{},strictMcpConfig:!1,canUseTool:!!e.canUseTool,hooks:!!e.hooks,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new $E(s,!1,e.canUseTool,e.hooks,this.abortController,new Map),this.query.streamInput(this.inputStream).catch(i=>this.abortController.abort(i))}async send(e){if(this.closed)throw Error("Cannot send to closed session");let r=typeof e=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null}:e;this.inputStream.enqueue(r)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:e,done:r}=await this.queryIterator.next();if(r||(e.type==="system"&&e.subtype==="init"&&(this._sessionId=e.session_id),yield e,e.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),setTimeout(()=>{this.abortController.signal.aborted||this.abortController.abort()},Eye).unref())}async[Symbol.asyncDispose](){this.close()}};function Tye(t){return new UE(t)}var FMe=(0,k8.promisify)(S8.execFile);var HMe=Buffer.from('{"type":"attribution-snapshot"'),BMe=Buffer.from('{"type":"system"'),Rye=10,WMe=Buffer.from([Rye]);var tt;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw Error()}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let a of s)i[a]=a;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(let o of i)a[o]=s[o];return t.objectValues(a)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},t.find=(s,i)=>{for(let a of s)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(tt||(tt={}));var cF;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(cF||(cF={}));var ce=tt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Gi=t=>{switch(typeof t){case"undefined":return ce.undefined;case"string":return ce.string;case"number":return Number.isNaN(t)?ce.nan:ce.number;case"boolean":return ce.boolean;case"function":return ce.function;case"bigint":return ce.bigint;case"symbol":return ce.symbol;case"object":return Array.isArray(t)?ce.array:t===null?ce.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ce.promise:typeof Map<"u"&&t instanceof Map?ce.map:typeof Set<"u"&&t instanceof Set?ce.set:typeof Date<"u"&&t instanceof Date?ce.date:ce.object;default:return ce.unknown}},V=tt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kn=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;cr.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Kn.create=t=>new Kn(t);var Pye=(t,e)=>{let r;switch(t.code){case V.invalid_type:t.received===ce.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case V.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,tt.jsonStringifyReplacer)}`;break;case V.unrecognized_keys:r=`Unrecognized key(s) in object: ${tt.joinValues(t.keys,", ")}`;break;case V.invalid_union:r="Invalid input";break;case V.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tt.joinValues(t.options)}`;break;case V.invalid_enum_value:r=`Invalid enum value. Expected ${tt.joinValues(t.options)}, received '${t.received}'`;break;case V.invalid_arguments:r="Invalid function arguments";break;case V.invalid_return_type:r="Invalid function return type";break;case V.invalid_date:r="Invalid date";break;case V.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:tt.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case V.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case V.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case V.custom:r="Invalid input";break;case V.invalid_intersection_types:r="Intersection results could not be merged";break;case V.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case V.not_finite:r="Number must be finite";break;default:r=e.defaultError,tt.assertNever(t)}return{message:r}},Id=Pye,Iye=Id;function qE(){return Iye}var FE=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",c=n.filter(l=>!!l).slice().reverse();for(let l of c)o=l(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}};function te(t,e){let r=qE(),n=FE({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Id?void 0:Id].filter(s=>!!s)});t.common.issues.push(n)}var Jr=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,a=await s.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},_e=Object.freeze({status:"aborted"}),wd=t=>({status:"dirty",value:t}),gn=t=>({status:"valid",value:t}),lF=t=>t.status==="aborted",uF=t=>t.status==="dirty",Gc=t=>t.status==="valid",Uv=t=>typeof Promise<"u"&&t instanceof Promise,ue;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ue||(ue={}));var Jn=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},pF=(t,e)=>{if(Gc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Kn(t.common.issues);return this._error=r,this._error}}};function Ie(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:o}=t;return i.code==="invalid_enum_value"?{message:o??a.defaultError}:typeof a.data>"u"?{message:o??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:o??r??a.defaultError}},description:s}}var ze=class{get description(){return this._def.description}_getType(e){return Gi(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Jr,ctx:{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Uv(r))throw Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parseSync({data:e,path:n.path,parent:n});return pF(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Gc(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>Gc(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Uv(s)?s:Promise.resolve(s));return pF(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let a=e(s),o=()=>i.addIssue({code:V.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new ys({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return gs.create(this,this._def)}nullable(){return fi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Qi.create(this)}promise(){return ro.create(this,this._def)}or(e){return Qc.create([this,e],this._def)}and(e){return Yc.create(this,e,this._def)}transform(e){return new ys({...Ie(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new nl({...Ie(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new qv({typeName:we.ZodBranded,type:this,...Ie(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new sl({...Ie(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return Fv.create(this,e)}readonly(){return il.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Cye=/^c[^\s-]{8,}$/i,Oye=/^[0-9a-z]+$/,jye=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Aye=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Nye=/^[a-z0-9_-]{21}$/i,Dye=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zye=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Mye=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$ye="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yE,Lye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Uye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,qye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Fye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hye=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bye=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,E8="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Wye=new RegExp(`^${E8}$`);function T8(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Zye(t){return new RegExp(`^${T8(t)}$`)}function Gye(t){let e=`${E8}T${T8(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Vye(t,e){return!!((e==="v4"||!e)&&Lye.test(t)||(e==="v6"||!e)&&qye.test(t))}function Kye(t,e){if(!Dye.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Jye(t,e){return!!((e==="v4"||!e)&&Uye.test(t)||(e==="v6"||!e)&&Fye.test(t))}var Vc=class t extends ze{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ce.string){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.string,received:s.parsedType}),_e}let r=new Jr,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:V.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,a=e.data.lengthe.test(s),{validation:r,code:V.invalid_string,...ue.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ue.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ue.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ue.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ue.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ue.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ue.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ue.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ue.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ue.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ue.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ue.errToObj(r)})}nonempty(e){return this.min(1,ue.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Vc({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Ie(t)});function Qye(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}var Cd=class t extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ce.number){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.number,received:s.parsedType}),_e}let r,n=new Jr;for(let s of this._def.checks)s.kind==="int"?tt.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:V.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?Qye(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_finite,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ue.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&tt.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Cd({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Ie(t)});var Od=class t extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ce.bigint)return this._getInvalidInput(e);let r,n=new Jr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.bigint,received:r.parsedType}),_e}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Od({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Ie(t)});var jd=class extends ze{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ce.boolean){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.boolean,received:r.parsedType}),_e}return gn(e.data)}};jd.create=t=>new jd({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Ie(t)});var Ad=class t extends ze{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ce.date){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.date,received:s.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_date}),_e}let r=new Jr,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:V.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):tt.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:ue.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ue.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ad({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Ie(t)});var Nd=class extends ze{_parse(e){if(this._getType(e)!==ce.symbol){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.symbol,received:r.parsedType}),_e}return gn(e.data)}};Nd.create=t=>new Nd({typeName:we.ZodSymbol,...Ie(t)});var Kc=class extends ze{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.undefined,received:r.parsedType}),_e}return gn(e.data)}};Kc.create=t=>new Kc({typeName:we.ZodUndefined,...Ie(t)});var Jc=class extends ze{_parse(e){if(this._getType(e)!==ce.null){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.null,received:r.parsedType}),_e}return gn(e.data)}};Jc.create=t=>new Jc({typeName:we.ZodNull,...Ie(t)});var Dd=class extends ze{constructor(){super(...arguments),this._any=!0}_parse(e){return gn(e.data)}};Dd.create=t=>new Dd({typeName:we.ZodAny,...Ie(t)});var Ki=class extends ze{constructor(){super(...arguments),this._unknown=!0}_parse(e){return gn(e.data)}};Ki.create=t=>new Ki({typeName:we.ZodUnknown,...Ie(t)});var Bs=class extends ze{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.never,received:r.parsedType}),_e}};Bs.create=t=>new Bs({typeName:we.ZodNever,...Ie(t)});var zd=class extends ze{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.void,received:r.parsedType}),_e}return gn(e.data)}};zd.create=t=>new zd({typeName:we.ZodVoid,...Ie(t)});var Qi=class t extends ze{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==ce.array)return te(r,{code:V.invalid_type,expected:ce.array,received:r.parsedType}),_e;if(s.exactLength!==null){let a=r.data.length>s.exactLength.value,o=r.data.lengths.maxLength.value&&(te(r,{code:V.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,o)=>s.type._parseAsync(new Jn(r,a,r.path,o)))).then(a=>Jr.mergeArray(n,a));let i=[...r.data].map((a,o)=>s.type._parseSync(new Jn(r,a,r.path,o)));return Jr.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ue.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ue.toString(r)}})}nonempty(e){return this.min(1,e)}};Qi.create=(t,e)=>new Qi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Ie(e)});function Lc(t){if(t instanceof In){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=gs.create(Lc(n))}return new In({...t._def,shape:()=>e})}else return t instanceof Qi?new Qi({...t._def,type:Lc(t.element)}):t instanceof gs?gs.create(Lc(t.unwrap())):t instanceof fi?fi.create(Lc(t.unwrap())):t instanceof mi?mi.create(t.items.map(e=>Lc(e))):t}var In=class t extends ze{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=tt.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ce.object){let c=this._getOrReturnCtx(e);return te(c,{code:V.invalid_type,expected:ce.object,received:c.parsedType}),_e}let{status:r,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Bs&&this._def.unknownKeys==="strip"))for(let c in n.data)i.includes(c)||a.push(c);let o=[];for(let c of i){let l=s[c],u=n.data[c];o.push({key:{status:"valid",value:c},value:l._parse(new Jn(n,u,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof Bs){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)o.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(c==="strict")a.length>0&&(te(n,{code:V.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let u=n.data[l];o.push({key:{status:"valid",value:l},value:c._parse(new Jn(n,u,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of o){let u=await l.key,p=await l.value;c.push({key:u,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Jr.mergeObjectSync(r,c)):Jr.mergeObjectSync(r,o)}get shape(){return this._def.shape()}strict(e){return ue.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:ue.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of tt.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of tt.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Lc(this)}partial(e){let r={};for(let n of tt.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of tt.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof gs;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return R8(tt.objectKeys(this.shape))}};In.create=(t,e)=>new In({shape:()=>t,unknownKeys:"strip",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});In.strictCreate=(t,e)=>new In({shape:()=>t,unknownKeys:"strict",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});In.lazycreate=(t,e)=>new In({shape:t,unknownKeys:"strip",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});var Qc=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(o=>new Kn(o.ctx.common.issues));return te(r,{code:V.invalid_union,unionErrors:a}),_e}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(s);{let i,a=[];for(let c of n){let l={...r,common:{...r.common,issues:[]},parent:null},u=c._parseSync({data:r.data,path:r.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let o=a.map(c=>new Kn(c));return te(r,{code:V.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};Qc.create=(t,e)=>new Qc({options:t,typeName:we.ZodUnion,...Ie(e)});var li=t=>t instanceof Xc?li(t.schema):t instanceof ys?li(t.innerType()):t instanceof el?[t.value]:t instanceof tl?t.options:t instanceof rl?tt.objectValues(t.enum):t instanceof nl?li(t._def.innerType):t instanceof Kc?[void 0]:t instanceof Jc?[null]:t instanceof gs?[void 0,...li(t.unwrap())]:t instanceof fi?[null,...li(t.unwrap())]:t instanceof qv||t instanceof il?li(t.unwrap()):t instanceof sl?li(t._def.innerType):[],HE=class t extends ze{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.object)return te(r,{code:V.invalid_type,expected:ce.object,received:r.parsedType}),_e;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:V.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let a=li(i.shape[e]);if(!a.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(s.has(o))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...Ie(n)})}};function BE(t,e){let r=Gi(t),n=Gi(e);if(t===e)return{valid:!0,data:t};if(r===ce.object&&n===ce.object){let s=tt.objectKeys(e),i=tt.objectKeys(t).filter(o=>s.indexOf(o)!==-1),a={...t,...e};for(let o of i){let c=BE(t[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(r===ce.array&&n===ce.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(lF(i)||lF(a))return _e;let o=BE(i.value,a.value);return o.valid?((uF(i)||uF(a))&&r.dirty(),{status:r.value,value:o.data}):(te(n,{code:V.invalid_intersection_types}),_e)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Yc.create=(t,e,r)=>new Yc({left:t,right:e,typeName:we.ZodIntersection,...Ie(r)});var mi=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.array)return te(n,{code:V.invalid_type,expected:ce.array,received:n.parsedType}),_e;if(n.data.lengththis._def.items.length&&(te(n,{code:V.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((i,a)=>{let o=this._def.items[a]||this._def.rest;return o?o._parse(new Jn(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>Jr.mergeArray(r,i)):Jr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};mi.create=(t,e)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new mi({items:t,typeName:we.ZodTuple,rest:null,...Ie(e)})};var WE=class t extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.object)return te(n,{code:V.invalid_type,expected:ce.object,received:n.parsedType}),_e;let s=[],i=this._def.keyType,a=this._def.valueType;for(let o in n.data)s.push({key:i._parse(new Jn(n,o,n.path,o)),value:a._parse(new Jn(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?Jr.mergeObjectAsync(r,s):Jr.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof ze?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Ie(n)}):new t({keyType:Vc.create(),valueType:e,typeName:we.ZodRecord,...Ie(r)})}},Md=class extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.map)return te(n,{code:V.invalid_type,expected:ce.map,received:n.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],l)=>({key:s._parse(new Jn(n,o,n.path,[l,"key"])),value:i._parse(new Jn(n,c,n.path,[l,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of a){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of a){let{key:l,value:u}=c;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}}}};Md.create=(t,e,r)=>new Md({valueType:e,keyType:t,typeName:we.ZodMap,...Ie(r)});var $d=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.set)return te(n,{code:V.invalid_type,expected:ce.set,received:n.parsedType}),_e;let s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(te(n,{code:V.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let l=new Set;for(let u of c){if(u.status==="aborted")return _e;u.status==="dirty"&&r.dirty(),l.add(u.value)}return{status:r.value,value:l}}let o=[...n.data.values()].map((c,l)=>i._parse(new Jn(n,c,n.path,l)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ue.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};$d.create=(t,e)=>new $d({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Ie(e)});var ZE=class t extends ze{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.function)return te(r,{code:V.invalid_type,expected:ce.function,received:r.parsedType}),_e;function n(o,c){return FE({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qE(),Id].filter(l=>!!l),issueData:{code:V.invalid_arguments,argumentsError:c}})}function s(o,c){return FE({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qE(),Id].filter(l=>!!l),issueData:{code:V.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof ro){let o=this;return gn(async function(...c){let l=new Kn([]),u=await o._def.args.parseAsync(c,i).catch(d=>{throw l.addIssue(n(c,d)),l}),p=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(d=>{throw l.addIssue(s(p,d)),l})})}else{let o=this;return gn(function(...c){let l=o._def.args.safeParse(c,i);if(!l.success)throw new Kn([n(c,l.error)]);let u=Reflect.apply(a,this,l.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Kn([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:mi.create(e).rest(Ki.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||mi.create([]).rest(Ki.create()),returns:r||Ki.create(),typeName:we.ZodFunction,...Ie(n)})}},Xc=class extends ze{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Xc.create=(t,e)=>new Xc({getter:t,typeName:we.ZodLazy,...Ie(e)});var el=class extends ze{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return te(r,{received:r.data,code:V.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};el.create=(t,e)=>new el({value:t,typeName:we.ZodLiteral,...Ie(e)});function R8(t,e){return new tl({values:t,typeName:we.ZodEnum,...Ie(e)})}var tl=class t extends ze{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:tt.joinValues(n),received:r.parsedType,code:V.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{received:r.data,code:V.invalid_enum_value,options:n}),_e}return gn(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};tl.create=R8;var rl=class extends ze{_parse(e){let r=tt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ce.string&&n.parsedType!==ce.number){let s=tt.objectValues(r);return te(n,{expected:tt.joinValues(s),received:n.parsedType,code:V.invalid_type}),_e}if(this._cache||(this._cache=new Set(tt.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=tt.objectValues(r);return te(n,{received:n.data,code:V.invalid_enum_value,options:s}),_e}return gn(e.data)}get enum(){return this._def.values}};rl.create=(t,e)=>new rl({values:t,typeName:we.ZodNativeEnum,...Ie(e)});var ro=class extends ze{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.promise&&r.common.async===!1)return te(r,{code:V.invalid_type,expected:ce.promise,received:r.parsedType}),_e;let n=r.parsedType===ce.promise?r.data:Promise.resolve(r.data);return gn(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};ro.create=(t,e)=>new ro({type:t,typeName:we.ZodPromise,...Ie(e)});var ys=class extends ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{te(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(r.value==="aborted")return _e;let c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?_e:c.status==="dirty"||r.value==="dirty"?wd(c.value):c});{if(r.value==="aborted")return _e;let o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?_e:o.status==="dirty"||r.value==="dirty"?wd(o.value):o}}if(s.type==="refinement"){let a=o=>{let c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value).then(()=>({status:r.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Gc(a))return _e;let o=s.transform(a.value,i);if(o instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>Gc(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:r.value,value:o})):_e);tt.assertNever(s)}};ys.create=(t,e,r)=>new ys({schema:t,typeName:we.ZodEffects,effect:e,...Ie(r)});ys.createWithPreprocess=(t,e,r)=>new ys({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Ie(r)});var gs=class extends ze{_parse(e){return this._getType(e)===ce.undefined?gn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};gs.create=(t,e)=>new gs({innerType:t,typeName:we.ZodOptional,...Ie(e)});var fi=class extends ze{_parse(e){return this._getType(e)===ce.null?gn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};fi.create=(t,e)=>new fi({innerType:t,typeName:we.ZodNullable,...Ie(e)});var nl=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ce.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};nl.create=(t,e)=>new nl({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ie(e)});var sl=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Uv(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};sl.create=(t,e)=>new sl({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ie(e)});var Ld=class extends ze{_parse(e){if(this._getType(e)!==ce.nan){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.nan,received:r.parsedType}),_e}return{status:"valid",value:e.data}}};Ld.create=t=>new Ld({typeName:we.ZodNaN,...Ie(t)});var qv=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Fv=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),wd(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:we.ZodPipeline})}},il=class extends ze{_parse(e){let r=this._def.innerType._parse(e),n=s=>(Gc(s)&&(s.value=Object.freeze(s.value)),s);return Uv(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};il.create=(t,e)=>new il({innerType:t,typeName:we.ZodReadonly,...Ie(e)});var ZMe={object:In.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var GMe=Vc.create,VMe=Cd.create,KMe=Ld.create,JMe=Od.create,QMe=jd.create,YMe=Ad.create,XMe=Nd.create,e4e=Kc.create,t4e=Jc.create,r4e=Dd.create,n4e=Ki.create,s4e=Bs.create,i4e=zd.create,a4e=Qi.create,o4e=In.create,c4e=In.strictCreate,l4e=Qc.create,u4e=HE.create,p4e=Yc.create,d4e=mi.create,m4e=WE.create,f4e=Md.create,h4e=$d.create,g4e=ZE.create,v4e=Xc.create,y4e=el.create,b4e=tl.create,x4e=rl.create,_4e=ro.create,w4e=ys.create,S4e=gs.create,k4e=fi.create,E4e=ys.createWithPreprocess,T4e=Fv.create,P8={};io(P8,{version:()=>L9,util:()=>Be,treeifyError:()=>U8,toJSONSchema:()=>jH,toDotPath:()=>q8,safeParseAsync:()=>vT,safeParse:()=>hT,registry:()=>jT,regexes:()=>yT,prettifyError:()=>F8,parseAsync:()=>Zv,parse:()=>Wv,locales:()=>OT,isValidJWT:()=>l5,isValidBase64URL:()=>a5,isValidBase64:()=>wT,globalRegistry:()=>Qa,globalConfig:()=>Hv,function:()=>OH,formatError:()=>pT,flattenError:()=>uT,config:()=>Qr,clone:()=>_s,_xid:()=>BT,_void:()=>gH,_uuidv7:()=>MT,_uuidv6:()=>zT,_uuidv4:()=>DT,_uuid:()=>NT,_url:()=>$T,_uppercase:()=>nR,_unknown:()=>Jv,_union:()=>Yxe,_undefined:()=>dH,_ulid:()=>HT,_uint64:()=>uH,_uint32:()=>sH,_tuple:()=>EH,_trim:()=>lR,_transform:()=>o_e,_toUpperCase:()=>pR,_toLowerCase:()=>uR,_templateLiteral:()=>g_e,_symbol:()=>pH,_success:()=>d_e,_stringbool:()=>IH,_stringFormat:()=>CH,_string:()=>W5,_startsWith:()=>iR,_size:()=>eR,_set:()=>n_e,_safeParseAsync:()=>gT,_safeParse:()=>fT,_regex:()=>tR,_refine:()=>PH,_record:()=>t_e,_readonly:()=>h_e,_property:()=>kH,_promise:()=>y_e,_positive:()=>xH,_pipe:()=>f_e,_parseAsync:()=>mT,_parse:()=>dT,_overwrite:()=>co,_optional:()=>c_e,_number:()=>Y5,_nullable:()=>l_e,_null:()=>mH,_normalize:()=>cR,_nonpositive:()=>wH,_nonoptional:()=>p_e,_nonnegative:()=>SH,_never:()=>hH,_negative:()=>_H,_nativeEnum:()=>i_e,_nanoid:()=>UT,_nan:()=>bH,_multipleOf:()=>Hd,_minSize:()=>Bd,_minLength:()=>ol,_min:()=>Tn,_mime:()=>oR,_maxSize:()=>fy,_maxLength:()=>hy,_max:()=>vs,_map:()=>r_e,_lte:()=>vs,_lt:()=>no,_lowercase:()=>rR,_literal:()=>a_e,_length:()=>gy,_lazy:()=>v_e,_ksuid:()=>WT,_jwt:()=>XT,_isoTime:()=>J5,_isoDuration:()=>Q5,_isoDateTime:()=>V5,_isoDate:()=>K5,_ipv6:()=>GT,_ipv4:()=>ZT,_intersection:()=>e_e,_int64:()=>lH,_int32:()=>nH,_int:()=>eH,_includes:()=>sR,_guid:()=>Kv,_gte:()=>Tn,_gt:()=>so,_float64:()=>rH,_float32:()=>tH,_file:()=>TH,_enum:()=>s_e,_endsWith:()=>aR,_emoji:()=>LT,_email:()=>AT,_e164:()=>YT,_discriminatedUnion:()=>Xxe,_default:()=>u_e,_date:()=>vH,_custom:()=>RH,_cuid2:()=>FT,_cuid:()=>qT,_coercedString:()=>Z5,_coercedNumber:()=>X5,_coercedDate:()=>yH,_coercedBoolean:()=>aH,_coercedBigint:()=>cH,_cidrv6:()=>KT,_cidrv4:()=>VT,_catch:()=>m_e,_boolean:()=>iH,_bigint:()=>oH,_base64url:()=>QT,_base64:()=>JT,_array:()=>dR,_any:()=>fH,TimePrecision:()=>G5,NEVER:()=>I8,JSONSchemaGenerator:()=>Wd,JSONSchema:()=>b_e,Doc:()=>Gv,$output:()=>H5,$input:()=>B5,$constructor:()=>A,$brand:()=>C8,$ZodXID:()=>K9,$ZodVoid:()=>b5,$ZodUnknown:()=>Vv,$ZodUnion:()=>PT,$ZodUndefined:()=>h5,$ZodUUID:()=>q9,$ZodURL:()=>H9,$ZodULID:()=>V9,$ZodType:()=>Pe,$ZodTuple:()=>my,$ZodTransform:()=>IT,$ZodTemplateLiteral:()=>$5,$ZodSymbol:()=>f5,$ZodSuccess:()=>N5,$ZodStringFormat:()=>Et,$ZodString:()=>Kd,$ZodSet:()=>E5,$ZodRegistry:()=>Fd,$ZodRecord:()=>S5,$ZodRealError:()=>Gd,$ZodReadonly:()=>M5,$ZodPromise:()=>L5,$ZodPrefault:()=>j5,$ZodPipe:()=>CT,$ZodOptional:()=>I5,$ZodObject:()=>RT,$ZodNumberFormat:()=>d5,$ZodNumber:()=>ST,$ZodNullable:()=>C5,$ZodNull:()=>g5,$ZodNonOptional:()=>A5,$ZodNever:()=>y5,$ZodNanoID:()=>W9,$ZodNaN:()=>z5,$ZodMap:()=>k5,$ZodLiteral:()=>R5,$ZodLazy:()=>U5,$ZodKSUID:()=>J9,$ZodJWT:()=>u5,$ZodIntersection:()=>w5,$ZodISOTime:()=>X9,$ZodISODuration:()=>e5,$ZodISODateTime:()=>Q9,$ZodISODate:()=>Y9,$ZodIPv6:()=>r5,$ZodIPv4:()=>t5,$ZodGUID:()=>U9,$ZodFunction:()=>Qv,$ZodFile:()=>P5,$ZodError:()=>lT,$ZodEnum:()=>T5,$ZodEmoji:()=>B9,$ZodEmail:()=>F9,$ZodE164:()=>c5,$ZodDiscriminatedUnion:()=>_5,$ZodDefault:()=>O5,$ZodDate:()=>x5,$ZodCustomStringFormat:()=>p5,$ZodCustom:()=>q5,$ZodCheckUpperCase:()=>j9,$ZodCheckStringFormat:()=>Vd,$ZodCheckStartsWith:()=>N9,$ZodCheckSizeEquals:()=>T9,$ZodCheckRegex:()=>C9,$ZodCheckProperty:()=>z9,$ZodCheckOverwrite:()=>$9,$ZodCheckNumberFormat:()=>w9,$ZodCheckMultipleOf:()=>_9,$ZodCheckMinSize:()=>E9,$ZodCheckMinLength:()=>P9,$ZodCheckMimeType:()=>M9,$ZodCheckMaxSize:()=>k9,$ZodCheckMaxLength:()=>R9,$ZodCheckLowerCase:()=>O9,$ZodCheckLessThan:()=>xT,$ZodCheckLengthEquals:()=>I9,$ZodCheckIncludes:()=>A9,$ZodCheckGreaterThan:()=>_T,$ZodCheckEndsWith:()=>D9,$ZodCheckBigIntFormat:()=>S9,$ZodCheck:()=>Yt,$ZodCatch:()=>D5,$ZodCUID2:()=>G9,$ZodCUID:()=>Z9,$ZodCIDRv6:()=>s5,$ZodCIDRv4:()=>n5,$ZodBoolean:()=>kT,$ZodBigIntFormat:()=>m5,$ZodBigInt:()=>ET,$ZodBase64URL:()=>o5,$ZodBase64:()=>i5,$ZodAsyncError:()=>Yi,$ZodArray:()=>TT,$ZodAny:()=>v5});var I8=Object.freeze({status:"aborted"});function A(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var C8=Symbol("zod_brand"),Yi=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Hv={};function Qr(t){return t&&Object.assign(Hv,t),Hv}var Be={};io(Be,{unwrapMessage:()=>Sd,stringifyPrimitive:()=>Oe,required:()=>fbe,randomString:()=>ibe,propertyKeyTypes:()=>Bv,promiseAllObject:()=>sbe,primitiveTypes:()=>N8,prefixIssues:()=>Vn,pick:()=>lbe,partial:()=>mbe,optionalKeys:()=>D8,omit:()=>ube,numKeys:()=>abe,nullish:()=>ao,normalizeParams:()=>J,merge:()=>dbe,jsonStringifyReplacer:()=>O8,joinValues:()=>ee,issue:()=>$8,isPlainObject:()=>qd,isObject:()=>Ud,getSizableOrigin:()=>py,getParsedType:()=>obe,getLengthableOrigin:()=>dy,getEnumValues:()=>aT,getElementAtPath:()=>nbe,floatSafeRemainder:()=>j8,finalizeIssue:()=>bs,extend:()=>pbe,escapeRegex:()=>oo,esc:()=>Uc,defineLazy:()=>dt,createTransparentProxy:()=>cbe,clone:()=>_s,cleanRegex:()=>uy,cleanEnum:()=>hbe,captureStackTrace:()=>cT,cached:()=>ly,assignProp:()=>oT,assertNotEqual:()=>Xye,assertNever:()=>tbe,assertIs:()=>ebe,assertEqual:()=>Yye,assert:()=>rbe,allowsEval:()=>A8,aborted:()=>Bc,NUMBER_FORMAT_RANGES:()=>z8,Class:()=>GE,BIGINT_FORMAT_RANGES:()=>M8});function Yye(t){return t}function Xye(t){return t}function ebe(t){}function tbe(t){throw Error()}function rbe(t){}function aT(t){let e=Object.values(t).filter(r=>typeof r=="number");return Object.entries(t).filter(([r,n])=>e.indexOf(+r)===-1).map(([r,n])=>n)}function ee(t,e="|"){return t.map(r=>Oe(r)).join(e)}function O8(t,e){return typeof e=="bigint"?e.toString():e}function ly(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}throw Error("cached value already set")}}}function ao(t){return t==null}function uy(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function j8(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function dt(t,e,r){Object.defineProperty(t,e,{get(){{let n=r();return t[e]=n,n}throw Error("cached value already set")},set(n){Object.defineProperty(t,e,{value:n})},configurable:!0})}function oT(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nbe(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function sbe(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function Ud(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var A8=ly(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function qd(t){if(Ud(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Ud(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function abe(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var obe=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},Bv=new Set(["string","number","symbol"]),N8=new Set(["string","number","bigint","boolean","symbol","undefined"]);function oo(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _s(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function J(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function cbe(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Oe(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function D8(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var z8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},M8={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function lbe(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return _s(t,{...t._zod.def,shape:r,checks:[]})}function ube(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return _s(t,{...t._zod.def,shape:r,checks:[]})}function pbe(t,e){if(!qd(e))throw Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return oT(this,"shape",n),n},checks:[]};return _s(t,r)}function dbe(t,e){return _s(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return oT(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function mbe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return _s(e,{...e._zod.def,shape:s,checks:[]})}function fbe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return _s(e,{...e._zod.def,shape:s,checks:[]})}function Bc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Sd(t){return typeof t=="string"?t:t?.message}function bs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Sd(t.inst?._zod.def?.error?.(t))??Sd(e?.error?.(t))??Sd(r.customError?.(t))??Sd(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,!e?.reportInput&&delete n.input,n}function py(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function dy(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function $8(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function hbe(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var GE=class{constructor(...e){}},L8=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,O8,2)},enumerable:!0})},lT=A("$ZodError",L8),Gd=A("$ZodError",L8,{Parent:Error});function uT(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function pT(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c{var o,c;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(u=>s({issues:u},l.path));else if(l.code==="invalid_key")s({issues:l.issues},l.path);else if(l.code==="invalid_element")s({issues:l.issues},l.path);else{let u=[...a,...l.path];if(u.length===0){n.errors.push(r(l));continue}let p=n,d=0;for(;dn.path.length-s.path.length);for(let n of r)e.push(`\u2716 ${n.message}`),n.path?.length&&e.push(` \u2192 at ${q8(n.path)}`);return e.join(` -`)}var dT=t=>(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Yi;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>bs(c,i,Qr())));throw cT(o,s?.callee),o}return a.value},Wv=dT(Gd),mT=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>bs(c,i,Qr())));throw cT(o,s?.callee),o}return a.value},Zv=mT(Gd),fT=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Yi;return i.issues.length?{success:!1,error:new(t??lT)(i.issues.map(a=>bs(a,s,Qr())))}:{success:!0,data:i.value}},hT=fT(Gd),gT=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>bs(a,s,Qr())))}:{success:!0,data:i.value}},vT=gT(Gd),yT={};io(yT,{xid:()=>Z8,uuid7:()=>bbe,uuid6:()=>ybe,uuid4:()=>vbe,uuid:()=>al,uppercase:()=>b9,unicodeEmail:()=>wbe,undefined:()=>v9,ulid:()=>W8,time:()=>l9,string:()=>p9,rfc5322Email:()=>_be,number:()=>f9,null:()=>g9,nanoid:()=>V8,lowercase:()=>y9,ksuid:()=>G8,ipv6:()=>e9,ipv4:()=>X8,integer:()=>m9,html5Email:()=>xbe,hostname:()=>s9,guid:()=>J8,extendedDuration:()=>gbe,emoji:()=>Y8,email:()=>Q8,e164:()=>i9,duration:()=>K8,domain:()=>Ebe,datetime:()=>u9,date:()=>o9,cuid2:()=>B8,cuid:()=>H8,cidrv6:()=>r9,cidrv4:()=>t9,browserEmail:()=>Sbe,boolean:()=>h9,bigint:()=>d9,base64url:()=>bT,base64:()=>n9,_emoji:()=>kbe});var H8=/^[cC][^\s-]{8,}$/,B8=/^[0-9a-z]+$/,W8=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Z8=/^[0-9a-vA-V]{20}$/,G8=/^[A-Za-z0-9]{27}$/,V8=/^[a-zA-Z0-9_-]{21}$/,K8=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,gbe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,J8=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,al=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,vbe=al(4),ybe=al(6),bbe=al(7),Q8=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,xbe=/^[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])?)*$/,_be=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,wbe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Sbe=/^[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])?)*$/,kbe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Y8(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var X8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,e9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,t9=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,r9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,n9=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bT=/^[A-Za-z0-9_-]*$/,s9=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,Ebe=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,i9=/^\+(?:[0-9]){6,14}[0-9]$/,a9="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",o9=new RegExp(`^${a9}$`);function c9(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function l9(t){return new RegExp(`^${c9(t)}$`)}function u9(t){let e=c9({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${a9}T(?:${n})$`)}var p9=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},d9=/^\d+n?$/,m9=/^\d+$/,f9=/^-?\d+(?:\.\d+)?/i,h9=/true|false/i,g9=/null/i,v9=/undefined/i,y9=/^[^A-Z]*$/,b9=/^[^a-z]*$/,Yt=A("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),x9={number:"number",bigint:"bigint",object:"date"},xT=A("$ZodCheckLessThan",(t,e)=>{Yt.init(t,e);let r=x9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Yt.init(t,e);let r=x9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),_9=A("$ZodCheckMultipleOf",(t,e)=>{Yt.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):j8(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),w9=A("$ZodCheckNumberFormat",(t,e)=>{Yt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=z8[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=m9)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}}),S9=A("$ZodCheckBigIntFormat",(t,e)=>{Yt.init(t,e);let[r,n]=M8[e.format];t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=s=>{let i=s.value;in&&s.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inst:t})}}),k9=A("$ZodCheckMaxSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;n.size<=e.maximum||r.issues.push({origin:py(n),code:"too_big",maximum:e.maximum,input:n,inst:t,continue:!e.abort})}}),E9=A("$ZodCheckMinSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;n.size>=e.minimum||r.issues.push({origin:py(n),code:"too_small",minimum:e.minimum,input:n,inst:t,continue:!e.abort})}}),T9=A("$ZodCheckSizeEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.size,n.maximum=e.size,n.size=e.size}),t._zod.check=r=>{let n=r.value,s=n.size;if(s===e.size)return;let i=s>e.size;r.issues.push({origin:py(n),...i?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),R9=A("$ZodCheckMaxLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;if(n.length<=e.maximum)return;let s=dy(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),P9=A("$ZodCheckMinLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;if(n.length>=e.minimum)return;let s=dy(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),I9=A("$ZodCheckLengthEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!ao(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.length,n.maximum=e.length,n.length=e.length}),t._zod.check=r=>{let n=r.value,s=n.length;if(s===e.length)return;let i=dy(n),a=s>e.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),Vd=A("$ZodCheckStringFormat",(t,e)=>{var r,n;Yt.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),C9=A("$ZodCheckRegex",(t,e)=>{Vd.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),O9=A("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=y9),Vd.init(t,e)}),j9=A("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=b9),Vd.init(t,e)}),A9=A("$ZodCheckIncludes",(t,e)=>{Yt.init(t,e);let r=oo(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),N9=A("$ZodCheckStartsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`^${oo(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),D9=A("$ZodCheckEndsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`.*${oo(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function dF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues))}var z9=A("$ZodCheckProperty",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(s=>dF(s,r,e.property));dF(n,r,e.property)}}),M9=A("$ZodCheckMimeType",(t,e)=>{Yt.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t})}}),$9=A("$ZodCheckOverwrite",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),Gv=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(` +`)}handleMcpControlRequest(e,r,n){let s="id"in r.message?r.message.id:null,i=`${e}:${s}`;return new Promise((a,o)=>{let c=()=>{this.pendingMcpResponses.delete(i)},l=p=>{c(),a(p)},u=p=>{c(),o(p)};if(this.pendingMcpResponses.set(i,{resolve:l,reject:u}),n.onmessage)n.onmessage(r.message);else{c(),o(Error("No message handler registered"));return}})}},Eye=5e3,UE=class{closed=!1;inputStream;query;queryIterator=null;abortController;_sessionId=null;get sessionId(){if(this._sessionId===null)throw Error("Session ID not available until after receiving messages");return this._sessionId}constructor(e){e.resume&&(this._sessionId=e.resume),this.inputStream=new Lv;let r=e.pathToClaudeCodeExecutable;if(!r){let i=(0,w8.fileURLToPath)(ySe.url),a=(0,LE.join)(i,"..");r=(0,LE.join)(a,"cli.js")}let n={...e.env??process.env};n.CLAUDE_CODE_ENTRYPOINT||(n.CLAUDE_CODE_ENTRYPOINT="sdk-ts"),this.abortController=MF();let s=new zE({abortController:this.abortController,pathToClaudeCodeExecutable:r,env:n,executable:e.executable??(UF()?"bun":"node"),executableArgs:e.executableArgs??[],extraArgs:{},thinkingConfig:void 0,maxTurns:void 0,maxBudgetUsd:void 0,model:e.model,fallbackModel:void 0,permissionMode:e.permissionMode??"default",allowDangerouslySkipPermissions:!1,continueConversation:!1,resume:e.resume,settingSources:[],allowedTools:e.allowedTools??[],disallowedTools:e.disallowedTools??[],mcpServers:{},strictMcpConfig:!1,canUseTool:!!e.canUseTool,hooks:!!e.hooks,includePartialMessages:!1,forkSession:!1,resumeSessionAt:void 0});this.query=new $E(s,!1,e.canUseTool,e.hooks,this.abortController,new Map),this.query.streamInput(this.inputStream).catch(i=>this.abortController.abort(i))}async send(e){if(this.closed)throw Error("Cannot send to closed session");let r=typeof e=="string"?{type:"user",session_id:"",message:{role:"user",content:[{type:"text",text:e}]},parent_tool_use_id:null}:e;this.inputStream.enqueue(r)}async*stream(){for(this.queryIterator||(this.queryIterator=this.query[Symbol.asyncIterator]());;){let{value:e,done:r}=await this.queryIterator.next();if(r||(e.type==="system"&&e.subtype==="init"&&(this._sessionId=e.session_id),yield e,e.type==="result"))return}}close(){this.closed||(this.closed=!0,this.inputStream.done(),setTimeout(()=>{this.abortController.signal.aborted||this.abortController.abort()},Eye).unref())}async[Symbol.asyncDispose](){this.close()}};function Tye(t){return new UE(t)}var FMe=(0,k8.promisify)(S8.execFile);var HMe=Buffer.from('{"type":"attribution-snapshot"'),BMe=Buffer.from('{"type":"system"'),Rye=10,WMe=Buffer.from([Rye]);var tt;(function(t){t.assertEqual=s=>{};function e(s){}t.assertIs=e;function r(s){throw Error()}t.assertNever=r,t.arrayToEnum=s=>{let i={};for(let a of s)i[a]=a;return i},t.getValidEnumValues=s=>{let i=t.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),a={};for(let o of i)a[o]=s[o];return t.objectValues(a)},t.objectValues=s=>t.objectKeys(s).map(function(i){return s[i]}),t.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let i=[];for(let a in s)Object.prototype.hasOwnProperty.call(s,a)&&i.push(a);return i},t.find=(s,i)=>{for(let a of s)if(i(a))return a},t.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function n(s,i=" | "){return s.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}t.joinValues=n,t.jsonStringifyReplacer=(s,i)=>typeof i=="bigint"?i.toString():i})(tt||(tt={}));var cF;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(cF||(cF={}));var ce=tt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Gi=t=>{switch(typeof t){case"undefined":return ce.undefined;case"string":return ce.string;case"number":return Number.isNaN(t)?ce.nan:ce.number;case"boolean":return ce.boolean;case"function":return ce.function;case"bigint":return ce.bigint;case"symbol":return ce.symbol;case"object":return Array.isArray(t)?ce.array:t===null?ce.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?ce.promise:typeof Map<"u"&&t instanceof Map?ce.map:typeof Set<"u"&&t instanceof Set?ce.set:typeof Date<"u"&&t instanceof Date?ce.date:ce.object;default:return ce.unknown}},V=tt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Kn=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}format(e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(s);else if(a.code==="invalid_return_type")s(a.returnTypeError);else if(a.code==="invalid_arguments")s(a.argumentsError);else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;cr.message){let r={},n=[];for(let s of this.issues)if(s.path.length>0){let i=s.path[0];r[i]=r[i]||[],r[i].push(e(s))}else n.push(e(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Kn.create=t=>new Kn(t);var Pye=(t,e)=>{let r;switch(t.code){case V.invalid_type:t.received===ce.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case V.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,tt.jsonStringifyReplacer)}`;break;case V.unrecognized_keys:r=`Unrecognized key(s) in object: ${tt.joinValues(t.keys,", ")}`;break;case V.invalid_union:r="Invalid input";break;case V.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${tt.joinValues(t.options)}`;break;case V.invalid_enum_value:r=`Invalid enum value. Expected ${tt.joinValues(t.options)}, received '${t.received}'`;break;case V.invalid_arguments:r="Invalid function arguments";break;case V.invalid_return_type:r="Invalid function return type";break;case V.invalid_date:r="Invalid date";break;case V.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:tt.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case V.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case V.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case V.custom:r="Invalid input";break;case V.invalid_intersection_types:r="Intersection results could not be merged";break;case V.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case V.not_finite:r="Number must be finite";break;default:r=e.defaultError,tt.assertNever(t)}return{message:r}},Id=Pye,Iye=Id;function qE(){return Iye}var FE=t=>{let{data:e,path:r,errorMaps:n,issueData:s}=t,i=[...r,...s.path||[]],a={...s,path:i};if(s.message!==void 0)return{...s,path:i,message:s.message};let o="",c=n.filter(l=>!!l).slice().reverse();for(let l of c)o=l(a,{data:e,defaultError:o}).message;return{...s,path:i,message:o}};function te(t,e){let r=qE(),n=FE({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Id?void 0:Id].filter(s=>!!s)});t.common.issues.push(n)}var Jr=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let s of r){if(s.status==="aborted")return _e;s.status==="dirty"&&e.dirty(),n.push(s.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let s of r){let i=await s.key,a=await s.value;n.push({key:i,value:a})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let s of r){let{key:i,value:a}=s;if(i.status==="aborted"||a.status==="aborted")return _e;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||s.alwaysSet)&&(n[i.value]=a.value)}return{status:e.value,value:n}}},_e=Object.freeze({status:"aborted"}),wd=t=>({status:"dirty",value:t}),gn=t=>({status:"valid",value:t}),lF=t=>t.status==="aborted",uF=t=>t.status==="dirty",Gc=t=>t.status==="valid",Uv=t=>typeof Promise<"u"&&t instanceof Promise,ue;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(ue||(ue={}));var Jn=class{constructor(e,r,n,s){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},pF=(t,e)=>{if(Gc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Kn(t.common.issues);return this._error=r,this._error}}};function Ie(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:s}=t;if(e&&(r||n))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:s}:{errorMap:(i,a)=>{let{message:o}=t;return i.code==="invalid_enum_value"?{message:o??a.defaultError}:typeof a.data>"u"?{message:o??n??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:o??r??a.defaultError}},description:s}}var ze=class{get description(){return this._def.description}_getType(e){return Gi(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Jr,ctx:{common:e.parent.common,data:e.data,parsedType:Gi(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Uv(r))throw Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parseSync({data:e,path:n.path,parent:n});return pF(n,s)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return Gc(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>Gc(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Gi(e)},s=this._parse({data:e,path:n.path,parent:n}),i=await(Uv(s)?s:Promise.resolve(s));return pF(n,i)}refine(e,r){let n=s=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(s):r;return this._refinement((s,i)=>{let a=e(s),o=()=>i.addIssue({code:V.custom,...n(s)});return typeof Promise<"u"&&a instanceof Promise?a.then(c=>c?!0:(o(),!1)):a?!0:(o(),!1)})}refinement(e,r){return this._refinement((n,s)=>e(n)?!0:(s.addIssue(typeof r=="function"?r(n,s):r),!1))}_refinement(e){return new ys({schema:this,typeName:we.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return gs.create(this,this._def)}nullable(){return fi.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Qi.create(this)}promise(){return no.create(this,this._def)}or(e){return Qc.create([this,e],this._def)}and(e){return Yc.create(this,e,this._def)}transform(e){return new ys({...Ie(this._def),schema:this,typeName:we.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new nl({...Ie(this._def),innerType:this,defaultValue:r,typeName:we.ZodDefault})}brand(){return new qv({typeName:we.ZodBranded,type:this,...Ie(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new sl({...Ie(this._def),innerType:this,catchValue:r,typeName:we.ZodCatch})}describe(e){return new this.constructor({...this._def,description:e})}pipe(e){return Fv.create(this,e)}readonly(){return il.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Cye=/^c[^\s-]{8,}$/i,Oye=/^[0-9a-z]+$/,jye=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Aye=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Nye=/^[a-z0-9_-]{21}$/i,Dye=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zye=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Mye=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$ye="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",yE,Lye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Uye=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,qye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Fye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hye=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bye=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,E8="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Wye=new RegExp(`^${E8}$`);function T8(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function Zye(t){return new RegExp(`^${T8(t)}$`)}function Gye(t){let e=`${E8}T${T8(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function Vye(t,e){return!!((e==="v4"||!e)&&Lye.test(t)||(e==="v6"||!e)&&qye.test(t))}function Kye(t,e){if(!Dye.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),s=JSON.parse(atob(n));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||e&&s.alg!==e)}catch{return!1}}function Jye(t,e){return!!((e==="v4"||!e)&&Uye.test(t)||(e==="v6"||!e)&&Fye.test(t))}var Vc=class t extends ze{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==ce.string){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.string,received:s.parsedType}),_e}let r=new Jr,n;for(let s of this._def.checks)if(s.kind==="min")e.data.lengths.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:V.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){let i=e.data.length>s.value,a=e.data.lengthe.test(s),{validation:r,code:V.invalid_string,...ue.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...ue.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ue.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...ue.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...ue.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...ue.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...ue.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...ue.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...ue.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...ue.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...ue.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...ue.errToObj(r)})}nonempty(e){return this.min(1,ue.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Vc({checks:[],typeName:we.ZodString,coerce:t?.coerce??!1,...Ie(t)});function Qye(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}var Cd=class t extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==ce.number){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.number,received:s.parsedType}),_e}let r,n=new Jr;for(let s of this._def.checks)s.kind==="int"?tt.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:V.invalid_type,expected:"integer",received:"float",message:s.message}),n.dirty()):s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),n.dirty()):s.kind==="multipleOf"?Qye(e.data,s.value)!==0&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_finite,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ue.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuee.kind==="int"||e.kind==="multipleOf"&&tt.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.valuenew Cd({checks:[],typeName:we.ZodNumber,coerce:t?.coerce||!1,...Ie(t)});var Od=class t extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==ce.bigint)return this._getInvalidInput(e);let r,n=new Jr;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.datas.value:e.data>=s.value)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),n.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),te(r,{code:V.not_multiple_of,multipleOf:s.value,message:s.message}),n.dirty()):tt.assertNever(s);return{status:n.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.bigint,received:r.parsedType}),_e}gte(e,r){return this.setLimit("min",e,!0,ue.toString(r))}gt(e,r){return this.setLimit("min",e,!1,ue.toString(r))}lte(e,r){return this.setLimit("max",e,!0,ue.toString(r))}lt(e,r){return this.setLimit("max",e,!1,ue.toString(r))}setLimit(e,r,n,s){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:ue.toString(s)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ue.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:ue.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Od({checks:[],typeName:we.ZodBigInt,coerce:t?.coerce??!1,...Ie(t)});var jd=class extends ze{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==ce.boolean){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.boolean,received:r.parsedType}),_e}return gn(e.data)}};jd.create=t=>new jd({typeName:we.ZodBoolean,coerce:t?.coerce||!1,...Ie(t)});var Ad=class t extends ze{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==ce.date){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_type,expected:ce.date,received:s.parsedType}),_e}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return te(s,{code:V.invalid_date}),_e}let r=new Jr,n;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()s.value&&(n=this._getOrReturnCtx(e,n),te(n,{code:V.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):tt.assertNever(s);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:ue.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:ue.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.valuenew Ad({checks:[],coerce:t?.coerce||!1,typeName:we.ZodDate,...Ie(t)});var Nd=class extends ze{_parse(e){if(this._getType(e)!==ce.symbol){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.symbol,received:r.parsedType}),_e}return gn(e.data)}};Nd.create=t=>new Nd({typeName:we.ZodSymbol,...Ie(t)});var Kc=class extends ze{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.undefined,received:r.parsedType}),_e}return gn(e.data)}};Kc.create=t=>new Kc({typeName:we.ZodUndefined,...Ie(t)});var Jc=class extends ze{_parse(e){if(this._getType(e)!==ce.null){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.null,received:r.parsedType}),_e}return gn(e.data)}};Jc.create=t=>new Jc({typeName:we.ZodNull,...Ie(t)});var Dd=class extends ze{constructor(){super(...arguments),this._any=!0}_parse(e){return gn(e.data)}};Dd.create=t=>new Dd({typeName:we.ZodAny,...Ie(t)});var Ki=class extends ze{constructor(){super(...arguments),this._unknown=!0}_parse(e){return gn(e.data)}};Ki.create=t=>new Ki({typeName:we.ZodUnknown,...Ie(t)});var Bs=class extends ze{_parse(e){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.never,received:r.parsedType}),_e}};Bs.create=t=>new Bs({typeName:we.ZodNever,...Ie(t)});var zd=class extends ze{_parse(e){if(this._getType(e)!==ce.undefined){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.void,received:r.parsedType}),_e}return gn(e.data)}};zd.create=t=>new zd({typeName:we.ZodVoid,...Ie(t)});var Qi=class t extends ze{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),s=this._def;if(r.parsedType!==ce.array)return te(r,{code:V.invalid_type,expected:ce.array,received:r.parsedType}),_e;if(s.exactLength!==null){let a=r.data.length>s.exactLength.value,o=r.data.lengths.maxLength.value&&(te(r,{code:V.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((a,o)=>s.type._parseAsync(new Jn(r,a,r.path,o)))).then(a=>Jr.mergeArray(n,a));let i=[...r.data].map((a,o)=>s.type._parseSync(new Jn(r,a,r.path,o)));return Jr.mergeArray(n,i)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:ue.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:ue.toString(r)}})}nonempty(e){return this.min(1,e)}};Qi.create=(t,e)=>new Qi({type:t,minLength:null,maxLength:null,exactLength:null,typeName:we.ZodArray,...Ie(e)});function Lc(t){if(t instanceof In){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=gs.create(Lc(n))}return new In({...t._def,shape:()=>e})}else return t instanceof Qi?new Qi({...t._def,type:Lc(t.element)}):t instanceof gs?gs.create(Lc(t.unwrap())):t instanceof fi?fi.create(Lc(t.unwrap())):t instanceof mi?mi.create(t.items.map(e=>Lc(e))):t}var In=class t extends ze{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=tt.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==ce.object){let c=this._getOrReturnCtx(e);return te(c,{code:V.invalid_type,expected:ce.object,received:c.parsedType}),_e}let{status:r,ctx:n}=this._processInputParams(e),{shape:s,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Bs&&this._def.unknownKeys==="strip"))for(let c in n.data)i.includes(c)||a.push(c);let o=[];for(let c of i){let l=s[c],u=n.data[c];o.push({key:{status:"valid",value:c},value:l._parse(new Jn(n,u,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof Bs){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)o.push({key:{status:"valid",value:l},value:{status:"valid",value:n.data[l]}});else if(c==="strict")a.length>0&&(te(n,{code:V.unrecognized_keys,keys:a}),r.dirty());else if(c!=="strip")throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let u=n.data[l];o.push({key:{status:"valid",value:l},value:c._parse(new Jn(n,u,n.path,l)),alwaysSet:l in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of o){let u=await l.key,p=await l.value;c.push({key:u,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Jr.mergeObjectSync(r,c)):Jr.mergeObjectSync(r,o)}get shape(){return this._def.shape()}strict(e){return ue.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:ue.errToObj(e).message??s}:{message:s}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:we.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};for(let n of tt.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of tt.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return Lc(this)}partial(e){let r={};for(let n of tt.objectKeys(this.shape)){let s=this.shape[n];e&&!e[n]?r[n]=s:r[n]=s.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of tt.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof gs;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return R8(tt.objectKeys(this.shape))}};In.create=(t,e)=>new In({shape:()=>t,unknownKeys:"strip",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});In.strictCreate=(t,e)=>new In({shape:()=>t,unknownKeys:"strict",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});In.lazycreate=(t,e)=>new In({shape:t,unknownKeys:"strip",catchall:Bs.create(),typeName:we.ZodObject,...Ie(e)});var Qc=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function s(i){for(let o of i)if(o.result.status==="valid")return o.result;for(let o of i)if(o.result.status==="dirty")return r.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(o=>new Kn(o.ctx.common.issues));return te(r,{code:V.invalid_union,unionErrors:a}),_e}if(r.common.async)return Promise.all(n.map(async i=>{let a={...r,common:{...r.common,issues:[]},parent:null};return{result:await i._parseAsync({data:r.data,path:r.path,parent:a}),ctx:a}})).then(s);{let i,a=[];for(let c of n){let l={...r,common:{...r.common,issues:[]},parent:null},u=c._parseSync({data:r.data,path:r.path,parent:l});if(u.status==="valid")return u;u.status==="dirty"&&!i&&(i={result:u,ctx:l}),l.common.issues.length&&a.push(l.common.issues)}if(i)return r.common.issues.push(...i.ctx.common.issues),i.result;let o=a.map(c=>new Kn(c));return te(r,{code:V.invalid_union,unionErrors:o}),_e}}get options(){return this._def.options}};Qc.create=(t,e)=>new Qc({options:t,typeName:we.ZodUnion,...Ie(e)});var li=t=>t instanceof Xc?li(t.schema):t instanceof ys?li(t.innerType()):t instanceof el?[t.value]:t instanceof tl?t.options:t instanceof rl?tt.objectValues(t.enum):t instanceof nl?li(t._def.innerType):t instanceof Kc?[void 0]:t instanceof Jc?[null]:t instanceof gs?[void 0,...li(t.unwrap())]:t instanceof fi?[null,...li(t.unwrap())]:t instanceof qv||t instanceof il?li(t.unwrap()):t instanceof sl?li(t._def.innerType):[],HE=class t extends ze{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.object)return te(r,{code:V.invalid_type,expected:ce.object,received:r.parsedType}),_e;let n=this.discriminator,s=r.data[n],i=this.optionsMap.get(s);return i?r.common.async?i._parseAsync({data:r.data,path:r.path,parent:r}):i._parseSync({data:r.data,path:r.path,parent:r}):(te(r,{code:V.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),_e)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let s=new Map;for(let i of r){let a=li(i.shape[e]);if(!a.length)throw Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let o of a){if(s.has(o))throw Error(`Discriminator property ${String(e)} has duplicate value ${String(o)}`);s.set(o,i)}}return new t({typeName:we.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:s,...Ie(n)})}};function BE(t,e){let r=Gi(t),n=Gi(e);if(t===e)return{valid:!0,data:t};if(r===ce.object&&n===ce.object){let s=tt.objectKeys(e),i=tt.objectKeys(t).filter(o=>s.indexOf(o)!==-1),a={...t,...e};for(let o of i){let c=BE(t[o],e[o]);if(!c.valid)return{valid:!1};a[o]=c.data}return{valid:!0,data:a}}else if(r===ce.array&&n===ce.array){if(t.length!==e.length)return{valid:!1};let s=[];for(let i=0;i{if(lF(i)||lF(a))return _e;let o=BE(i.value,a.value);return o.valid?((uF(i)||uF(a))&&r.dirty(),{status:r.value,value:o.data}):(te(n,{code:V.invalid_intersection_types}),_e)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([i,a])=>s(i,a)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Yc.create=(t,e,r)=>new Yc({left:t,right:e,typeName:we.ZodIntersection,...Ie(r)});var mi=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.array)return te(n,{code:V.invalid_type,expected:ce.array,received:n.parsedType}),_e;if(n.data.lengththis._def.items.length&&(te(n,{code:V.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((i,a)=>{let o=this._def.items[a]||this._def.rest;return o?o._parse(new Jn(n,i,n.path,a)):null}).filter(i=>!!i);return n.common.async?Promise.all(s).then(i=>Jr.mergeArray(r,i)):Jr.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};mi.create=(t,e)=>{if(!Array.isArray(t))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new mi({items:t,typeName:we.ZodTuple,rest:null,...Ie(e)})};var WE=class t extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.object)return te(n,{code:V.invalid_type,expected:ce.object,received:n.parsedType}),_e;let s=[],i=this._def.keyType,a=this._def.valueType;for(let o in n.data)s.push({key:i._parse(new Jn(n,o,n.path,o)),value:a._parse(new Jn(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?Jr.mergeObjectAsync(r,s):Jr.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof ze?new t({keyType:e,valueType:r,typeName:we.ZodRecord,...Ie(n)}):new t({keyType:Vc.create(),valueType:e,typeName:we.ZodRecord,...Ie(r)})}},Md=class extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.map)return te(n,{code:V.invalid_type,expected:ce.map,received:n.parsedType}),_e;let s=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([o,c],l)=>({key:s._parse(new Jn(n,o,n.path,[l,"key"])),value:i._parse(new Jn(n,c,n.path,[l,"value"]))}));if(n.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of a){let l=await c.key,u=await c.value;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}})}else{let o=new Map;for(let c of a){let{key:l,value:u}=c;if(l.status==="aborted"||u.status==="aborted")return _e;(l.status==="dirty"||u.status==="dirty")&&r.dirty(),o.set(l.value,u.value)}return{status:r.value,value:o}}}};Md.create=(t,e,r)=>new Md({valueType:e,keyType:t,typeName:we.ZodMap,...Ie(r)});var $d=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==ce.set)return te(n,{code:V.invalid_type,expected:ce.set,received:n.parsedType}),_e;let s=this._def;s.minSize!==null&&n.data.sizes.maxSize.value&&(te(n,{code:V.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let i=this._def.valueType;function a(c){let l=new Set;for(let u of c){if(u.status==="aborted")return _e;u.status==="dirty"&&r.dirty(),l.add(u.value)}return{status:r.value,value:l}}let o=[...n.data.values()].map((c,l)=>i._parse(new Jn(n,c,n.path,l)));return n.common.async?Promise.all(o).then(c=>a(c)):a(o)}min(e,r){return new t({...this._def,minSize:{value:e,message:ue.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:ue.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};$d.create=(t,e)=>new $d({valueType:t,minSize:null,maxSize:null,typeName:we.ZodSet,...Ie(e)});var ZE=class t extends ze{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.function)return te(r,{code:V.invalid_type,expected:ce.function,received:r.parsedType}),_e;function n(o,c){return FE({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qE(),Id].filter(l=>!!l),issueData:{code:V.invalid_arguments,argumentsError:c}})}function s(o,c){return FE({data:o,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qE(),Id].filter(l=>!!l),issueData:{code:V.invalid_return_type,returnTypeError:c}})}let i={errorMap:r.common.contextualErrorMap},a=r.data;if(this._def.returns instanceof no){let o=this;return gn(async function(...c){let l=new Kn([]),u=await o._def.args.parseAsync(c,i).catch(d=>{throw l.addIssue(n(c,d)),l}),p=await Reflect.apply(a,this,u);return await o._def.returns._def.type.parseAsync(p,i).catch(d=>{throw l.addIssue(s(p,d)),l})})}else{let o=this;return gn(function(...c){let l=o._def.args.safeParse(c,i);if(!l.success)throw new Kn([n(c,l.error)]);let u=Reflect.apply(a,this,l.data),p=o._def.returns.safeParse(u,i);if(!p.success)throw new Kn([s(u,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:mi.create(e).rest(Ki.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||mi.create([]).rest(Ki.create()),returns:r||Ki.create(),typeName:we.ZodFunction,...Ie(n)})}},Xc=class extends ze{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Xc.create=(t,e)=>new Xc({getter:t,typeName:we.ZodLazy,...Ie(e)});var el=class extends ze{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return te(r,{received:r.data,code:V.invalid_literal,expected:this._def.value}),_e}return{status:"valid",value:e.data}}get value(){return this._def.value}};el.create=(t,e)=>new el({value:t,typeName:we.ZodLiteral,...Ie(e)});function R8(t,e){return new tl({values:t,typeName:we.ZodEnum,...Ie(e)})}var tl=class t extends ze{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{expected:tt.joinValues(n),received:r.parsedType,code:V.invalid_type}),_e}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return te(r,{received:r.data,code:V.invalid_enum_value,options:n}),_e}return gn(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};tl.create=R8;var rl=class extends ze{_parse(e){let r=tt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==ce.string&&n.parsedType!==ce.number){let s=tt.objectValues(r);return te(n,{expected:tt.joinValues(s),received:n.parsedType,code:V.invalid_type}),_e}if(this._cache||(this._cache=new Set(tt.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let s=tt.objectValues(r);return te(n,{received:n.data,code:V.invalid_enum_value,options:s}),_e}return gn(e.data)}get enum(){return this._def.values}};rl.create=(t,e)=>new rl({values:t,typeName:we.ZodNativeEnum,...Ie(e)});var no=class extends ze{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==ce.promise&&r.common.async===!1)return te(r,{code:V.invalid_type,expected:ce.promise,received:r.parsedType}),_e;let n=r.parsedType===ce.promise?r.data:Promise.resolve(r.data);return gn(n.then(s=>this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};no.create=(t,e)=>new no({type:t,typeName:we.ZodPromise,...Ie(e)});var ys=class extends ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===we.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),s=this._def.effect||null,i={addIssue:a=>{te(n,a),a.fatal?r.abort():r.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),s.type==="preprocess"){let a=s.transform(n.data,i);if(n.common.async)return Promise.resolve(a).then(async o=>{if(r.value==="aborted")return _e;let c=await this._def.schema._parseAsync({data:o,path:n.path,parent:n});return c.status==="aborted"?_e:c.status==="dirty"||r.value==="dirty"?wd(c.value):c});{if(r.value==="aborted")return _e;let o=this._def.schema._parseSync({data:a,path:n.path,parent:n});return o.status==="aborted"?_e:o.status==="dirty"||r.value==="dirty"?wd(o.value):o}}if(s.type==="refinement"){let a=o=>{let c=s.refinement(o,i);if(n.common.async)return Promise.resolve(c);if(c instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value),{status:r.value,value:o.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>o.status==="aborted"?_e:(o.status==="dirty"&&r.dirty(),a(o.value).then(()=>({status:r.value,value:o.value}))))}if(s.type==="transform")if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Gc(a))return _e;let o=s.transform(a.value,i);if(o instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:o}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>Gc(a)?Promise.resolve(s.transform(a.value,i)).then(o=>({status:r.value,value:o})):_e);tt.assertNever(s)}};ys.create=(t,e,r)=>new ys({schema:t,typeName:we.ZodEffects,effect:e,...Ie(r)});ys.createWithPreprocess=(t,e,r)=>new ys({schema:e,effect:{type:"preprocess",transform:t},typeName:we.ZodEffects,...Ie(r)});var gs=class extends ze{_parse(e){return this._getType(e)===ce.undefined?gn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};gs.create=(t,e)=>new gs({innerType:t,typeName:we.ZodOptional,...Ie(e)});var fi=class extends ze{_parse(e){return this._getType(e)===ce.null?gn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};fi.create=(t,e)=>new fi({innerType:t,typeName:we.ZodNullable,...Ie(e)});var nl=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===ce.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};nl.create=(t,e)=>new nl({innerType:t,typeName:we.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Ie(e)});var sl=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Uv(s)?s.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Kn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};sl.create=(t,e)=>new sl({innerType:t,typeName:we.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Ie(e)});var Ld=class extends ze{_parse(e){if(this._getType(e)!==ce.nan){let r=this._getOrReturnCtx(e);return te(r,{code:V.invalid_type,expected:ce.nan,received:r.parsedType}),_e}return{status:"valid",value:e.data}}};Ld.create=t=>new Ld({typeName:we.ZodNaN,...Ie(t)});var qv=class extends ze{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Fv=class t extends ze{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),wd(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?_e:s.status==="dirty"?(r.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:we.ZodPipeline})}},il=class extends ze{_parse(e){let r=this._def.innerType._parse(e),n=s=>(Gc(s)&&(s.value=Object.freeze(s.value)),s);return Uv(r)?r.then(s=>n(s)):n(r)}unwrap(){return this._def.innerType}};il.create=(t,e)=>new il({innerType:t,typeName:we.ZodReadonly,...Ie(e)});var ZMe={object:In.lazycreate},we;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(we||(we={}));var GMe=Vc.create,VMe=Cd.create,KMe=Ld.create,JMe=Od.create,QMe=jd.create,YMe=Ad.create,XMe=Nd.create,e4e=Kc.create,t4e=Jc.create,r4e=Dd.create,n4e=Ki.create,s4e=Bs.create,i4e=zd.create,a4e=Qi.create,o4e=In.create,c4e=In.strictCreate,l4e=Qc.create,u4e=HE.create,p4e=Yc.create,d4e=mi.create,m4e=WE.create,f4e=Md.create,h4e=$d.create,g4e=ZE.create,v4e=Xc.create,y4e=el.create,b4e=tl.create,x4e=rl.create,_4e=no.create,w4e=ys.create,S4e=gs.create,k4e=fi.create,E4e=ys.createWithPreprocess,T4e=Fv.create,P8={};ao(P8,{version:()=>L9,util:()=>Be,treeifyError:()=>U8,toJSONSchema:()=>jH,toDotPath:()=>q8,safeParseAsync:()=>vT,safeParse:()=>hT,registry:()=>jT,regexes:()=>yT,prettifyError:()=>F8,parseAsync:()=>Zv,parse:()=>Wv,locales:()=>OT,isValidJWT:()=>l5,isValidBase64URL:()=>a5,isValidBase64:()=>wT,globalRegistry:()=>Ya,globalConfig:()=>Hv,function:()=>OH,formatError:()=>pT,flattenError:()=>uT,config:()=>Qr,clone:()=>_s,_xid:()=>BT,_void:()=>gH,_uuidv7:()=>MT,_uuidv6:()=>zT,_uuidv4:()=>DT,_uuid:()=>NT,_url:()=>$T,_uppercase:()=>nR,_unknown:()=>Jv,_union:()=>Yxe,_undefined:()=>dH,_ulid:()=>HT,_uint64:()=>uH,_uint32:()=>sH,_tuple:()=>EH,_trim:()=>lR,_transform:()=>o_e,_toUpperCase:()=>pR,_toLowerCase:()=>uR,_templateLiteral:()=>g_e,_symbol:()=>pH,_success:()=>d_e,_stringbool:()=>IH,_stringFormat:()=>CH,_string:()=>W5,_startsWith:()=>iR,_size:()=>eR,_set:()=>n_e,_safeParseAsync:()=>gT,_safeParse:()=>fT,_regex:()=>tR,_refine:()=>PH,_record:()=>t_e,_readonly:()=>h_e,_property:()=>kH,_promise:()=>y_e,_positive:()=>xH,_pipe:()=>f_e,_parseAsync:()=>mT,_parse:()=>dT,_overwrite:()=>lo,_optional:()=>c_e,_number:()=>Y5,_nullable:()=>l_e,_null:()=>mH,_normalize:()=>cR,_nonpositive:()=>wH,_nonoptional:()=>p_e,_nonnegative:()=>SH,_never:()=>hH,_negative:()=>_H,_nativeEnum:()=>i_e,_nanoid:()=>UT,_nan:()=>bH,_multipleOf:()=>Hd,_minSize:()=>Bd,_minLength:()=>ol,_min:()=>Tn,_mime:()=>oR,_maxSize:()=>fy,_maxLength:()=>hy,_max:()=>vs,_map:()=>r_e,_lte:()=>vs,_lt:()=>so,_lowercase:()=>rR,_literal:()=>a_e,_length:()=>gy,_lazy:()=>v_e,_ksuid:()=>WT,_jwt:()=>XT,_isoTime:()=>J5,_isoDuration:()=>Q5,_isoDateTime:()=>V5,_isoDate:()=>K5,_ipv6:()=>GT,_ipv4:()=>ZT,_intersection:()=>e_e,_int64:()=>lH,_int32:()=>nH,_int:()=>eH,_includes:()=>sR,_guid:()=>Kv,_gte:()=>Tn,_gt:()=>io,_float64:()=>rH,_float32:()=>tH,_file:()=>TH,_enum:()=>s_e,_endsWith:()=>aR,_emoji:()=>LT,_email:()=>AT,_e164:()=>YT,_discriminatedUnion:()=>Xxe,_default:()=>u_e,_date:()=>vH,_custom:()=>RH,_cuid2:()=>FT,_cuid:()=>qT,_coercedString:()=>Z5,_coercedNumber:()=>X5,_coercedDate:()=>yH,_coercedBoolean:()=>aH,_coercedBigint:()=>cH,_cidrv6:()=>KT,_cidrv4:()=>VT,_catch:()=>m_e,_boolean:()=>iH,_bigint:()=>oH,_base64url:()=>QT,_base64:()=>JT,_array:()=>dR,_any:()=>fH,TimePrecision:()=>G5,NEVER:()=>I8,JSONSchemaGenerator:()=>Wd,JSONSchema:()=>b_e,Doc:()=>Gv,$output:()=>H5,$input:()=>B5,$constructor:()=>A,$brand:()=>C8,$ZodXID:()=>K9,$ZodVoid:()=>b5,$ZodUnknown:()=>Vv,$ZodUnion:()=>PT,$ZodUndefined:()=>h5,$ZodUUID:()=>q9,$ZodURL:()=>H9,$ZodULID:()=>V9,$ZodType:()=>Pe,$ZodTuple:()=>my,$ZodTransform:()=>IT,$ZodTemplateLiteral:()=>$5,$ZodSymbol:()=>f5,$ZodSuccess:()=>N5,$ZodStringFormat:()=>Et,$ZodString:()=>Kd,$ZodSet:()=>E5,$ZodRegistry:()=>Fd,$ZodRecord:()=>S5,$ZodRealError:()=>Gd,$ZodReadonly:()=>M5,$ZodPromise:()=>L5,$ZodPrefault:()=>j5,$ZodPipe:()=>CT,$ZodOptional:()=>I5,$ZodObject:()=>RT,$ZodNumberFormat:()=>d5,$ZodNumber:()=>ST,$ZodNullable:()=>C5,$ZodNull:()=>g5,$ZodNonOptional:()=>A5,$ZodNever:()=>y5,$ZodNanoID:()=>W9,$ZodNaN:()=>z5,$ZodMap:()=>k5,$ZodLiteral:()=>R5,$ZodLazy:()=>U5,$ZodKSUID:()=>J9,$ZodJWT:()=>u5,$ZodIntersection:()=>w5,$ZodISOTime:()=>X9,$ZodISODuration:()=>e5,$ZodISODateTime:()=>Q9,$ZodISODate:()=>Y9,$ZodIPv6:()=>r5,$ZodIPv4:()=>t5,$ZodGUID:()=>U9,$ZodFunction:()=>Qv,$ZodFile:()=>P5,$ZodError:()=>lT,$ZodEnum:()=>T5,$ZodEmoji:()=>B9,$ZodEmail:()=>F9,$ZodE164:()=>c5,$ZodDiscriminatedUnion:()=>_5,$ZodDefault:()=>O5,$ZodDate:()=>x5,$ZodCustomStringFormat:()=>p5,$ZodCustom:()=>q5,$ZodCheckUpperCase:()=>j9,$ZodCheckStringFormat:()=>Vd,$ZodCheckStartsWith:()=>N9,$ZodCheckSizeEquals:()=>T9,$ZodCheckRegex:()=>C9,$ZodCheckProperty:()=>z9,$ZodCheckOverwrite:()=>$9,$ZodCheckNumberFormat:()=>w9,$ZodCheckMultipleOf:()=>_9,$ZodCheckMinSize:()=>E9,$ZodCheckMinLength:()=>P9,$ZodCheckMimeType:()=>M9,$ZodCheckMaxSize:()=>k9,$ZodCheckMaxLength:()=>R9,$ZodCheckLowerCase:()=>O9,$ZodCheckLessThan:()=>xT,$ZodCheckLengthEquals:()=>I9,$ZodCheckIncludes:()=>A9,$ZodCheckGreaterThan:()=>_T,$ZodCheckEndsWith:()=>D9,$ZodCheckBigIntFormat:()=>S9,$ZodCheck:()=>Yt,$ZodCatch:()=>D5,$ZodCUID2:()=>G9,$ZodCUID:()=>Z9,$ZodCIDRv6:()=>s5,$ZodCIDRv4:()=>n5,$ZodBoolean:()=>kT,$ZodBigIntFormat:()=>m5,$ZodBigInt:()=>ET,$ZodBase64URL:()=>o5,$ZodBase64:()=>i5,$ZodAsyncError:()=>Yi,$ZodArray:()=>TT,$ZodAny:()=>v5});var I8=Object.freeze({status:"aborted"});function A(t,e,r){function n(o,c){var l;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(l=o._zod).traits??(l.traits=new Set),o._zod.traits.add(t),e(o,c);for(let u in a.prototype)u in o||Object.defineProperty(o,u,{value:a.prototype[u].bind(o)});o._zod.constr=a,o._zod.def=c}let s=r?.Parent??Object;class i extends s{}Object.defineProperty(i,"name",{value:t});function a(o){var c;let l=r?.Parent?new i:this;n(l,o),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:o=>r?.Parent&&o instanceof r.Parent?!0:o?._zod?.traits?.has(t)}),Object.defineProperty(a,"name",{value:t}),a}var C8=Symbol("zod_brand"),Yi=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Hv={};function Qr(t){return t&&Object.assign(Hv,t),Hv}var Be={};ao(Be,{unwrapMessage:()=>Sd,stringifyPrimitive:()=>Oe,required:()=>fbe,randomString:()=>ibe,propertyKeyTypes:()=>Bv,promiseAllObject:()=>sbe,primitiveTypes:()=>N8,prefixIssues:()=>Vn,pick:()=>lbe,partial:()=>mbe,optionalKeys:()=>D8,omit:()=>ube,numKeys:()=>abe,nullish:()=>oo,normalizeParams:()=>J,merge:()=>dbe,jsonStringifyReplacer:()=>O8,joinValues:()=>ee,issue:()=>$8,isPlainObject:()=>qd,isObject:()=>Ud,getSizableOrigin:()=>py,getParsedType:()=>obe,getLengthableOrigin:()=>dy,getEnumValues:()=>aT,getElementAtPath:()=>nbe,floatSafeRemainder:()=>j8,finalizeIssue:()=>bs,extend:()=>pbe,escapeRegex:()=>co,esc:()=>Uc,defineLazy:()=>dt,createTransparentProxy:()=>cbe,clone:()=>_s,cleanRegex:()=>uy,cleanEnum:()=>hbe,captureStackTrace:()=>cT,cached:()=>ly,assignProp:()=>oT,assertNotEqual:()=>Xye,assertNever:()=>tbe,assertIs:()=>ebe,assertEqual:()=>Yye,assert:()=>rbe,allowsEval:()=>A8,aborted:()=>Bc,NUMBER_FORMAT_RANGES:()=>z8,Class:()=>GE,BIGINT_FORMAT_RANGES:()=>M8});function Yye(t){return t}function Xye(t){return t}function ebe(t){}function tbe(t){throw Error()}function rbe(t){}function aT(t){let e=Object.values(t).filter(r=>typeof r=="number");return Object.entries(t).filter(([r,n])=>e.indexOf(+r)===-1).map(([r,n])=>n)}function ee(t,e="|"){return t.map(r=>Oe(r)).join(e)}function O8(t,e){return typeof e=="bigint"?e.toString():e}function ly(t){return{get value(){{let e=t();return Object.defineProperty(this,"value",{value:e}),e}throw Error("cached value already set")}}}function oo(t){return t==null}function uy(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}function j8(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,s=r>n?r:n,i=Number.parseInt(t.toFixed(s).replace(".","")),a=Number.parseInt(e.toFixed(s).replace(".",""));return i%a/10**s}function dt(t,e,r){Object.defineProperty(t,e,{get(){{let n=r();return t[e]=n,n}throw Error("cached value already set")},set(n){Object.defineProperty(t,e,{value:n})},configurable:!0})}function oT(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nbe(t,e){return e?e.reduce((r,n)=>r?.[n],t):t}function sbe(t){let e=Object.keys(t),r=e.map(n=>t[n]);return Promise.all(r).then(n=>{let s={};for(let i=0;i{};function Ud(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var A8=ly(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function qd(t){if(Ud(t)===!1)return!1;let e=t.constructor;if(e===void 0)return!0;let r=e.prototype;return!(Ud(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function abe(t){let e=0;for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&e++;return e}var obe=t=>{let e=typeof t;switch(e){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(t)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(t)?"array":t===null?"null":t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?"promise":typeof Map<"u"&&t instanceof Map?"map":typeof Set<"u"&&t instanceof Set?"set":typeof Date<"u"&&t instanceof Date?"date":typeof File<"u"&&t instanceof File?"file":"object";default:throw Error(`Unknown data type: ${e}`)}},Bv=new Set(["string","number","symbol"]),N8=new Set(["string","number","bigint","boolean","symbol","undefined"]);function co(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _s(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function J(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function cbe(t){let e;return new Proxy({},{get(r,n,s){return e??(e=t()),Reflect.get(e,n,s)},set(r,n,s,i){return e??(e=t()),Reflect.set(e,n,s,i)},has(r,n){return e??(e=t()),Reflect.has(e,n)},deleteProperty(r,n){return e??(e=t()),Reflect.deleteProperty(e,n)},ownKeys(r){return e??(e=t()),Reflect.ownKeys(e)},getOwnPropertyDescriptor(r,n){return e??(e=t()),Reflect.getOwnPropertyDescriptor(e,n)},defineProperty(r,n,s){return e??(e=t()),Reflect.defineProperty(e,n,s)}})}function Oe(t){return typeof t=="bigint"?t.toString()+"n":typeof t=="string"?`"${t}"`:`${t}`}function D8(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var z8={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},M8={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function lbe(t,e){let r={},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&(r[s]=n.shape[s])}return _s(t,{...t._zod.def,shape:r,checks:[]})}function ube(t,e){let r={...t._zod.def.shape},n=t._zod.def;for(let s in e){if(!(s in n.shape))throw Error(`Unrecognized key: "${s}"`);e[s]&&delete r[s]}return _s(t,{...t._zod.def,shape:r,checks:[]})}function pbe(t,e){if(!qd(e))throw Error("Invalid input to extend: expected a plain object");let r={...t._zod.def,get shape(){let n={...t._zod.def.shape,...e};return oT(this,"shape",n),n},checks:[]};return _s(t,r)}function dbe(t,e){return _s(t,{...t._zod.def,get shape(){let r={...t._zod.def.shape,...e._zod.def.shape};return oT(this,"shape",r),r},catchall:e._zod.def.catchall,checks:[]})}function mbe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in n))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=t?new t({type:"optional",innerType:n[i]}):n[i])}else for(let i in n)s[i]=t?new t({type:"optional",innerType:n[i]}):n[i];return _s(e,{...e._zod.def,shape:s,checks:[]})}function fbe(t,e,r){let n=e._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new t({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new t({type:"nonoptional",innerType:n[i]});return _s(e,{...e._zod.def,shape:s,checks:[]})}function Bc(t,e=0){for(let r=e;r{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function Sd(t){return typeof t=="string"?t:t?.message}function bs(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let s=Sd(t.inst?._zod.def?.error?.(t))??Sd(e?.error?.(t))??Sd(r.customError?.(t))??Sd(r.localeError?.(t))??"Invalid input";n.message=s}return delete n.inst,delete n.continue,!e?.reportInput&&delete n.input,n}function py(t){return t instanceof Set?"set":t instanceof Map?"map":t instanceof File?"file":"unknown"}function dy(t){return Array.isArray(t)?"array":typeof t=="string"?"string":"unknown"}function $8(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}function hbe(t){return Object.entries(t).filter(([e,r])=>Number.isNaN(Number.parseInt(e,10))).map(e=>e[1])}var GE=class{constructor(...e){}},L8=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),Object.defineProperty(t,"message",{get(){return JSON.stringify(e,O8,2)},enumerable:!0})},lT=A("$ZodError",L8),Gd=A("$ZodError",L8,{Parent:Error});function uT(t,e=r=>r.message){let r={},n=[];for(let s of t.issues)s.path.length>0?(r[s.path[0]]=r[s.path[0]]||[],r[s.path[0]].push(e(s))):n.push(e(s));return{formErrors:n,fieldErrors:r}}function pT(t,e){let r=e||function(i){return i.message},n={_errors:[]},s=i=>{for(let a of i.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(o=>s({issues:o}));else if(a.code==="invalid_key")s({issues:a.issues});else if(a.code==="invalid_element")s({issues:a.issues});else if(a.path.length===0)n._errors.push(r(a));else{let o=n,c=0;for(;c{var o,c;for(let l of i.issues)if(l.code==="invalid_union"&&l.errors.length)l.errors.map(u=>s({issues:u},l.path));else if(l.code==="invalid_key")s({issues:l.issues},l.path);else if(l.code==="invalid_element")s({issues:l.issues},l.path);else{let u=[...a,...l.path];if(u.length===0){n.errors.push(r(l));continue}let p=n,d=0;for(;dn.path.length-s.path.length);for(let n of r)e.push(`\u2716 ${n.message}`),n.path?.length&&e.push(` \u2192 at ${q8(n.path)}`);return e.join(` +`)}var dT=t=>(e,r,n,s)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new Yi;if(a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>bs(c,i,Qr())));throw cT(o,s?.callee),o}return a.value},Wv=dT(Gd),mT=t=>async(e,r,n,s)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},a=e._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){let o=new(s?.Err??t)(a.issues.map(c=>bs(c,i,Qr())));throw cT(o,s?.callee),o}return a.value},Zv=mT(Gd),fT=t=>(e,r,n)=>{let s=n?{...n,async:!1}:{async:!1},i=e._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Yi;return i.issues.length?{success:!1,error:new(t??lT)(i.issues.map(a=>bs(a,s,Qr())))}:{success:!0,data:i.value}},hT=fT(Gd),gT=t=>async(e,r,n)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=e._zod.run({value:r,issues:[]},s);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new t(i.issues.map(a=>bs(a,s,Qr())))}:{success:!0,data:i.value}},vT=gT(Gd),yT={};ao(yT,{xid:()=>Z8,uuid7:()=>bbe,uuid6:()=>ybe,uuid4:()=>vbe,uuid:()=>al,uppercase:()=>b9,unicodeEmail:()=>wbe,undefined:()=>v9,ulid:()=>W8,time:()=>l9,string:()=>p9,rfc5322Email:()=>_be,number:()=>f9,null:()=>g9,nanoid:()=>V8,lowercase:()=>y9,ksuid:()=>G8,ipv6:()=>e9,ipv4:()=>X8,integer:()=>m9,html5Email:()=>xbe,hostname:()=>s9,guid:()=>J8,extendedDuration:()=>gbe,emoji:()=>Y8,email:()=>Q8,e164:()=>i9,duration:()=>K8,domain:()=>Ebe,datetime:()=>u9,date:()=>o9,cuid2:()=>B8,cuid:()=>H8,cidrv6:()=>r9,cidrv4:()=>t9,browserEmail:()=>Sbe,boolean:()=>h9,bigint:()=>d9,base64url:()=>bT,base64:()=>n9,_emoji:()=>kbe});var H8=/^[cC][^\s-]{8,}$/,B8=/^[0-9a-z]+$/,W8=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Z8=/^[0-9a-vA-V]{20}$/,G8=/^[A-Za-z0-9]{27}$/,V8=/^[a-zA-Z0-9_-]{21}$/,K8=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,gbe=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,J8=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,al=t=>t?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${t}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/,vbe=al(4),ybe=al(6),bbe=al(7),Q8=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,xbe=/^[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])?)*$/,_be=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,wbe=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Sbe=/^[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])?)*$/,kbe="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Y8(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var X8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,e9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/,t9=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,r9=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,n9=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bT=/^[A-Za-z0-9_-]*$/,s9=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,Ebe=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,i9=/^\+(?:[0-9]){6,14}[0-9]$/,a9="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",o9=new RegExp(`^${a9}$`);function c9(t){return typeof t.precision=="number"?t.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":t.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${t.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function l9(t){return new RegExp(`^${c9(t)}$`)}function u9(t){let e=c9({precision:t.precision}),r=["Z"];t.local&&r.push(""),t.offset&&r.push("([+-]\\d{2}:\\d{2})");let n=`${e}(?:${r.join("|")})`;return new RegExp(`^${a9}T(?:${n})$`)}var p9=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},d9=/^\d+n?$/,m9=/^\d+$/,f9=/^-?\d+(?:\.\d+)?/i,h9=/true|false/i,g9=/null/i,v9=/undefined/i,y9=/^[^A-Z]*$/,b9=/^[^a-z]*$/,Yt=A("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),x9={number:"number",bigint:"bigint",object:"date"},xT=A("$ZodCheckLessThan",(t,e)=>{Yt.init(t,e);let r=x9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.maximum:s.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?n.value<=e.value:n.value{Yt.init(t,e);let r=x9[typeof e.value];t._zod.onattach.push(n=>{let s=n._zod.bag,i=(e.inclusive?s.minimum:s.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>i&&(e.inclusive?s.minimum=e.value:s.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}}),_9=A("$ZodCheckMultipleOf",(t,e)=>{Yt.init(t,e),t._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=e.value)}),t._zod.check=r=>{if(typeof r.value!=typeof e.value)throw Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%e.value===BigInt(0):j8(r.value,e.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:e.value,input:r.value,inst:t,continue:!e.abort})}}),w9=A("$ZodCheckNumberFormat",(t,e)=>{Yt.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[s,i]=z8[e.format];t._zod.onattach.push(a=>{let o=a._zod.bag;o.format=e.format,o.minimum=s,o.maximum=i,r&&(o.pattern=m9)}),t._zod.check=a=>{let o=a.value;if(r){if(!Number.isInteger(o)){a.issues.push({expected:n,format:e.format,code:"invalid_type",input:o,inst:t});return}if(!Number.isSafeInteger(o)){o>0?a.issues.push({input:o,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort}):a.issues.push({input:o,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,continue:!e.abort});return}}oi&&a.issues.push({origin:"number",input:o,code:"too_big",maximum:i,inst:t})}}),S9=A("$ZodCheckBigIntFormat",(t,e)=>{Yt.init(t,e);let[r,n]=M8[e.format];t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,i.minimum=r,i.maximum=n}),t._zod.check=s=>{let i=s.value;in&&s.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inst:t})}}),k9=A("$ZodCheckMaxSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;n.size<=e.maximum||r.issues.push({origin:py(n),code:"too_big",maximum:e.maximum,input:n,inst:t,continue:!e.abort})}}),E9=A("$ZodCheckMinSize",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;n.size>=e.minimum||r.issues.push({origin:py(n),code:"too_small",minimum:e.minimum,input:n,inst:t,continue:!e.abort})}}),T9=A("$ZodCheckSizeEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.size!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.size,n.maximum=e.size,n.size=e.size}),t._zod.check=r=>{let n=r.value,s=n.size;if(s===e.size)return;let i=s>e.size;r.issues.push({origin:py(n),...i?{code:"too_big",maximum:e.size}:{code:"too_small",minimum:e.size},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),R9=A("$ZodCheckMaxLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{let n=r.value;if(n.length<=e.maximum)return;let s=dy(n);r.issues.push({origin:s,code:"too_big",maximum:e.maximum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),P9=A("$ZodCheckMinLength",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>n&&(r._zod.bag.minimum=e.minimum)}),t._zod.check=r=>{let n=r.value;if(n.length>=e.minimum)return;let s=dy(n);r.issues.push({origin:s,code:"too_small",minimum:e.minimum,inclusive:!0,input:n,inst:t,continue:!e.abort})}}),I9=A("$ZodCheckLengthEquals",(t,e)=>{Yt.init(t,e),t._zod.when=r=>{let n=r.value;return!oo(n)&&n.length!==void 0},t._zod.onattach.push(r=>{let n=r._zod.bag;n.minimum=e.length,n.maximum=e.length,n.length=e.length}),t._zod.check=r=>{let n=r.value,s=n.length;if(s===e.length)return;let i=dy(n),a=s>e.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:r.value,inst:t,continue:!e.abort})}}),Vd=A("$ZodCheckStringFormat",(t,e)=>{var r,n;Yt.init(t,e),t._zod.onattach.push(s=>{let i=s._zod.bag;i.format=e.format,e.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=s=>{e.pattern.lastIndex=0,!e.pattern.test(s.value)&&s.issues.push({origin:"string",code:"invalid_format",format:e.format,input:s.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})}),C9=A("$ZodCheckRegex",(t,e)=>{Vd.init(t,e),t._zod.check=r=>{e.pattern.lastIndex=0,!e.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:e.pattern.toString(),inst:t,continue:!e.abort})}}),O9=A("$ZodCheckLowerCase",(t,e)=>{e.pattern??(e.pattern=y9),Vd.init(t,e)}),j9=A("$ZodCheckUpperCase",(t,e)=>{e.pattern??(e.pattern=b9),Vd.init(t,e)}),A9=A("$ZodCheckIncludes",(t,e)=>{Yt.init(t,e);let r=co(e.includes),n=new RegExp(typeof e.position=="number"?`^.{${e.position}}${r}`:r);e.pattern=n,t._zod.onattach.push(s=>{let i=s._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),t._zod.check=s=>{s.value.includes(e.includes,e.position)||s.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:s.value,inst:t,continue:!e.abort})}}),N9=A("$ZodCheckStartsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`^${co(e.prefix)}.*`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.startsWith(e.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:n.value,inst:t,continue:!e.abort})}}),D9=A("$ZodCheckEndsWith",(t,e)=>{Yt.init(t,e);let r=new RegExp(`.*${co(e.suffix)}$`);e.pattern??(e.pattern=r),t._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),t._zod.check=n=>{n.value.endsWith(e.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:n.value,inst:t,continue:!e.abort})}});function dF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues))}var z9=A("$ZodCheckProperty",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{let n=e.schema._zod.run({value:r.value[e.property],issues:[]},{});if(n instanceof Promise)return n.then(s=>dF(s,r,e.property));dF(n,r,e.property)}}),M9=A("$ZodCheckMimeType",(t,e)=>{Yt.init(t,e);let r=new Set(e.mime);t._zod.onattach.push(n=>{n._zod.bag.mime=e.mime}),t._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:e.mime,input:n.value.type,inst:t})}}),$9=A("$ZodCheckOverwrite",(t,e)=>{Yt.init(t,e),t._zod.check=r=>{r.value=e.tx(r.value)}}),Gv=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(` `).filter(i=>i),n=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(n)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let e=Function,r=this?.args,n=[...(this?.content??[""]).map(s=>` ${s}`)];return new e(...r,n.join(` `))}},L9={major:4,minor:0,patch:0},Pe=A("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=L9;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let s of n)for(let i of s._zod.onattach)i(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let s=(i,a,o)=>{let c=Bc(i),l;for(let u of a){if(u._zod.when){if(!u._zod.when(i))continue}else if(c)continue;let p=i.issues.length,d=u._zod.check(i);if(d instanceof Promise&&o?.async===!1)throw new Yi;if(l||d instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await d,i.issues.length!==p&&(c||(c=Bc(i,p)))});else{if(i.issues.length===p)continue;c||(c=Bc(i,p))}}return l?l.then(()=>i):i};t._zod.run=(i,a)=>{let o=t._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Yi;return o.then(c=>s(c,n,a))}return s(o,n,a)}}t["~standard"]={validate:s=>{try{let i=hT(t,s);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return vT(t,s).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}}),Kd=A("$ZodString",(t,e)=>{Pe.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??p9(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Et=A("$ZodStringFormat",(t,e)=>{Vd.init(t,e),Kd.init(t,e)}),U9=A("$ZodGUID",(t,e)=>{e.pattern??(e.pattern=J8),Et.init(t,e)}),q9=A("$ZodUUID",(t,e)=>{if(e.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(r===void 0)throw Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=al(r))}else e.pattern??(e.pattern=al());Et.init(t,e)}),F9=A("$ZodEmail",(t,e)=>{e.pattern??(e.pattern=Q8),Et.init(t,e)}),H9=A("$ZodURL",(t,e)=>{Et.init(t,e),t._zod.check=r=>{try{let n=r.value,s=new URL(n),i=s.href;e.hostname&&(e.hostname.lastIndex=0,!e.hostname.test(s.hostname)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:s9.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,!e.protocol.test(s.protocol.endsWith(":")?s.protocol.slice(0,-1):s.protocol)&&r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),!n.endsWith("/")&&i.endsWith("/")?r.value=i.slice(0,-1):r.value=i;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}}),B9=A("$ZodEmoji",(t,e)=>{e.pattern??(e.pattern=Y8()),Et.init(t,e)}),W9=A("$ZodNanoID",(t,e)=>{e.pattern??(e.pattern=V8),Et.init(t,e)}),Z9=A("$ZodCUID",(t,e)=>{e.pattern??(e.pattern=H8),Et.init(t,e)}),G9=A("$ZodCUID2",(t,e)=>{e.pattern??(e.pattern=B8),Et.init(t,e)}),V9=A("$ZodULID",(t,e)=>{e.pattern??(e.pattern=W8),Et.init(t,e)}),K9=A("$ZodXID",(t,e)=>{e.pattern??(e.pattern=Z8),Et.init(t,e)}),J9=A("$ZodKSUID",(t,e)=>{e.pattern??(e.pattern=G8),Et.init(t,e)}),Q9=A("$ZodISODateTime",(t,e)=>{e.pattern??(e.pattern=u9(e)),Et.init(t,e)}),Y9=A("$ZodISODate",(t,e)=>{e.pattern??(e.pattern=o9),Et.init(t,e)}),X9=A("$ZodISOTime",(t,e)=>{e.pattern??(e.pattern=l9(e)),Et.init(t,e)}),e5=A("$ZodISODuration",(t,e)=>{e.pattern??(e.pattern=K8),Et.init(t,e)}),t5=A("$ZodIPv4",(t,e)=>{e.pattern??(e.pattern=X8),Et.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv4"})}),r5=A("$ZodIPv6",(t,e)=>{e.pattern??(e.pattern=e9),Et.init(t,e),t._zod.onattach.push(r=>{let n=r._zod.bag;n.format="ipv6"}),t._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:t,continue:!e.abort})}}}),n5=A("$ZodCIDRv4",(t,e)=>{e.pattern??(e.pattern=t9),Et.init(t,e)}),s5=A("$ZodCIDRv6",(t,e)=>{e.pattern??(e.pattern=r9),Et.init(t,e),t._zod.check=r=>{let[n,s]=r.value.split("/");try{if(!s)throw Error();let i=Number(s);if(`${i}`!==s||i<0||i>128)throw Error();new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:t,continue:!e.abort})}}});function wT(t){if(t==="")return!0;if(t.length%4!==0)return!1;try{return atob(t),!0}catch{return!1}}var i5=A("$ZodBase64",(t,e)=>{e.pattern??(e.pattern=n9),Et.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64"}),t._zod.check=r=>{wT(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:t,continue:!e.abort})}});function a5(t){if(!bT.test(t))return!1;let e=t.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=e.padEnd(Math.ceil(e.length/4)*4,"=");return wT(r)}var o5=A("$ZodBase64URL",(t,e)=>{e.pattern??(e.pattern=bT),Et.init(t,e),t._zod.onattach.push(r=>{r._zod.bag.contentEncoding="base64url"}),t._zod.check=r=>{a5(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:t,continue:!e.abort})}}),c5=A("$ZodE164",(t,e)=>{e.pattern??(e.pattern=i9),Et.init(t,e)});function l5(t,e=null){try{let r=t.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let s=JSON.parse(atob(n));return!("typ"in s&&s?.typ!=="JWT"||!s.alg||e&&(!("alg"in s)||s.alg!==e))}catch{return!1}}var u5=A("$ZodJWT",(t,e)=>{Et.init(t,e),t._zod.check=r=>{l5(r.value,e.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:t,continue:!e.abort})}}),p5=A("$ZodCustomStringFormat",(t,e)=>{Et.init(t,e),t._zod.check=r=>{e.fn(r.value)||r.issues.push({code:"invalid_format",format:e.format,input:r.value,inst:t,continue:!e.abort})}}),ST=A("$ZodNumber",(t,e)=>{Pe.init(t,e),t._zod.pattern=t._zod.bag.pattern??f9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let s=r.value;if(typeof s=="number"&&!Number.isNaN(s)&&Number.isFinite(s))return r;let i=typeof s=="number"?Number.isNaN(s)?"NaN":Number.isFinite(s)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:s,inst:t,...i?{received:i}:{}}),r}}),d5=A("$ZodNumber",(t,e)=>{w9.init(t,e),ST.init(t,e)}),kT=A("$ZodBoolean",(t,e)=>{Pe.init(t,e),t._zod.pattern=h9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=!!r.value}catch{}let s=r.value;return typeof s=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:s,inst:t}),r}}),ET=A("$ZodBigInt",(t,e)=>{Pe.init(t,e),t._zod.pattern=d9,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:t}),r}}),m5=A("$ZodBigInt",(t,e)=>{S9.init(t,e),ET.init(t,e)}),f5=A("$ZodSymbol",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:s,inst:t}),r}}),h5=A("$ZodUndefined",(t,e)=>{Pe.init(t,e),t._zod.pattern=v9,t._zod.values=new Set([void 0]),t._zod.optin="optional",t._zod.optout="optional",t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:s,inst:t}),r}}),g5=A("$ZodNull",(t,e)=>{Pe.init(t,e),t._zod.pattern=g9,t._zod.values=new Set([null]),t._zod.parse=(r,n)=>{let s=r.value;return s===null||r.issues.push({expected:"null",code:"invalid_type",input:s,inst:t}),r}}),v5=A("$ZodAny",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),Vv=A("$ZodUnknown",(t,e)=>{Pe.init(t,e),t._zod.parse=r=>r}),y5=A("$ZodNever",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:t}),r)}),b5=A("$ZodVoid",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return typeof s>"u"||r.issues.push({expected:"void",code:"invalid_type",input:s,inst:t}),r}}),x5=A("$ZodDate",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=new Date(r.value)}catch{}let s=r.value,i=s instanceof Date;return i&&!Number.isNaN(s.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:s,...i?{received:"Invalid Date"}:{},inst:t}),r}});function mF(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var TT=A("$ZodArray",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!Array.isArray(s))return r.issues.push({expected:"array",code:"invalid_type",input:s,inst:t}),r;r.value=Array(s.length);let i=[];for(let a=0;amF(l,r,a))):mF(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function ov(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}function fF(t,e,r,n){t.issues.length?n[r]===void 0?r in n?e.value[r]=void 0:e.value[r]=t.value:e.issues.push(...Vn(r,t.issues)):t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}var RT=A("$ZodObject",(t,e)=>{Pe.init(t,e);let r=ly(()=>{let u=Object.keys(e.shape);for(let d of u)if(!(e.shape[d]instanceof Pe))throw Error(`Invalid element at key "${d}": expected a Zod schema`);let p=D8(e.shape);return{shape:e.shape,keys:u,keySet:new Set(u),numKeys:u.length,optionalKeys:new Set(p)}});dt(t._zod,"propValues",()=>{let u=e.shape,p={};for(let d in u){let m=u[d]._zod;if(m.values){p[d]??(p[d]=new Set);for(let f of m.values)p[d].add(f)}}return p});let n=u=>{let p=new Gv(["shape","payload","ctx"]),d=r.value,m=h=>{let y=Uc(h);return`shape[${y}]._zod.run({ value: input[${y}], issues: [] }, ctx)`};p.write("const input = payload.value;");let f=Object.create(null),v=0;for(let h of d.keys)f[h]=`key_${v++}`;p.write("const newResult = {}");for(let h of d.keys)if(d.optionalKeys.has(h)){let y=f[h];p.write(`const ${y} = ${m(h)};`);let b=Uc(h);p.write(` if (${y}.issues.length) { @@ -1355,9 +1355,9 @@ new Anthropic({ apiKey, dangerouslyAllowBrowser: true }); if (${y}.issues.length) payload.issues = payload.issues.concat(${y}.issues.map(iss => ({ ...iss, path: iss.path ? [${Uc(h)}, ...iss.path] : [${Uc(h)}] - })));`),p.write(`newResult[${Uc(h)}] = ${y}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let g=p.compile();return(h,y)=>g(u,h,y)},s,i=Ud,a=!Hv.jitless,o=a&&A8.value,c=e.catchall,l;t._zod.parse=(u,p)=>{l??(l=r.value);let d=u.value;if(!i(d))return u.issues.push({expected:"object",code:"invalid_type",input:d,inst:t}),u;let m=[];if(a&&o&&p?.async===!1&&p.jitless!==!0)s||(s=n(e.shape)),u=s(u,p);else{u.value={};let y=l.shape;for(let b of l.keys){let x=y[b],w=x._zod.run({value:d[b],issues:[]},p),S=x._zod.optin==="optional"&&x._zod.optout==="optional";w instanceof Promise?m.push(w.then(k=>S?fF(k,u,b,d):ov(k,u,b))):S?fF(w,u,b,d):ov(w,u,b)}}if(!c)return m.length?Promise.all(m).then(()=>u):u;let f=[],v=l.keySet,g=c._zod,h=g.def.type;for(let y of Object.keys(d)){if(v.has(y))continue;if(h==="never"){f.push(y);continue}let b=g.run({value:d[y],issues:[]},p);b instanceof Promise?m.push(b.then(x=>ov(x,u,y))):ov(b,u,y)}return f.length&&u.issues.push({code:"unrecognized_keys",keys:f,input:d,inst:t}),m.length?Promise.all(m).then(()=>u):u}});function hF(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>bs(i,n,Qr())))}),e}var PT=A("$ZodUnion",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),dt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),dt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),dt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>uy(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>hF(a,r,t,n)):hF(i,r,t,n)}}),_5=A("$ZodDiscriminatedUnion",(t,e)=>{PT.init(t,e);let r=t._zod.parse;dt(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=ly(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!Ud(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),w5=A("$ZodIntersection",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([o,c])=>gF(r,o,c)):gF(r,i,a)}});function VE(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(qd(t)&&qd(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=VE(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Pe.init(t,e);let r=e.items,n=r.length-[...r].reverse().findIndex(s=>s._zod.optin!=="optional");t._zod.parse=(s,i)=>{let a=s.value;if(!Array.isArray(a))return s.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),s;s.value=[];let o=[];if(!e.rest){let l=a.length>r.length,u=a.length=a.length&&c>=n)continue;let u=l._zod.run({value:a[c],issues:[]},i);u instanceof Promise?o.push(u.then(p=>cv(p,s,c))):cv(u,s,c)}if(e.rest){let l=a.slice(r.length);for(let u of l){c++;let p=e.rest._zod.run({value:u,issues:[]},i);p instanceof Promise?o.push(p.then(d=>cv(d,s,c))):cv(p,s,c)}}return o.length?Promise.all(o).then(()=>s):s}});function cv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var S5=A("$ZodRecord",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!qd(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Vn(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Vn(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>bs(l,n,Qr())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Vn(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Vn(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}}),k5=A("$ZodMap",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:s,inst:t}),r;let i=[];r.value=new Map;for(let[a,o]of s){let c=e.keyType._zod.run({value:a,issues:[]},n),l=e.valueType._zod.run({value:o,issues:[]},n);c instanceof Promise||l instanceof Promise?i.push(Promise.all([c,l]).then(([u,p])=>{vF(u,p,r,a,s,t,n)})):vF(c,l,r,a,s,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function vF(t,e,r,n,s,i,a){t.issues.length&&(Bv.has(typeof n)?r.issues.push(...Vn(n,t.issues)):r.issues.push({origin:"map",code:"invalid_key",input:s,inst:i,issues:t.issues.map(o=>bs(o,a,Qr()))})),e.issues.length&&(Bv.has(typeof n)?r.issues.push(...Vn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:s,inst:i,key:n,issues:e.issues.map(o=>bs(o,a,Qr()))})),r.value.set(t.value,e.value)}var E5=A("$ZodSet",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Set))return r.issues.push({input:s,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of s){let o=e.valueType._zod.run({value:a,issues:[]},n);o instanceof Promise?i.push(o.then(c=>yF(c,r))):yF(o,r)}return i.length?Promise.all(i).then(()=>r):r}});function yF(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var T5=A("$ZodEnum",(t,e)=>{Pe.init(t,e);let r=aT(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>Bv.has(typeof n)).map(n=>typeof n=="string"?oo(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),R5=A("$ZodLiteral",(t,e)=>{Pe.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?oo(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),P5=A("$ZodFile",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return s instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:s,inst:t}),r}}),IT=A("$ZodTransform",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(r.value=i,r));if(s instanceof Promise)throw new Yi;return r.value=s,r}}),I5=A("$ZodOptional",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",t._zod.optout="optional",dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${uy(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),C5=A("$ZodNullable",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${uy(r.source)}|null)$`):void 0}),dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),O5=A("$ZodDefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>bF(i,e)):bF(s,e)}});function bF(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var j5=A("$ZodPrefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),A5=A("$ZodNonOptional",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>xF(i,t)):xF(s,t)}});function xF(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var N5=A("$ZodSuccess",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.issues.length===0,r)):(r.value=s.issues.length===0,r)}}),D5=A("$ZodCatch",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>bs(a,n,Qr()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>bs(i,n,Qr()))},input:r.value}),r.issues=[]),r)}}),z5=A("$ZodNaN",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),CT=A("$ZodPipe",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>e.in._zod.values),dt(t._zod,"optin",()=>e.in._zod.optin),dt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>_F(i,e,n)):_F(s,e,n)}});function _F(t,e,r){return Bc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var M5=A("$ZodReadonly",(t,e)=>{Pe.init(t,e),dt(t._zod,"propValues",()=>e.innerType._zod.propValues),dt(t._zod,"values",()=>e.innerType._zod.values),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(wF):wF(s)}});function wF(t){return t.value=Object.freeze(t.value),t}var $5=A("$ZodTemplateLiteral",(t,e)=>{Pe.init(t,e);let r=[];for(let n of e.parts)if(n instanceof Pe){if(!n._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let s=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!s)throw Error(`Invalid template literal part: ${n._zod.traits}`);let i=s.startsWith("^")?1:0,a=s.endsWith("$")?s.length-1:s.length;r.push(s.slice(i,a))}else if(n===null||N8.has(typeof n))r.push(oo(`${n}`));else throw Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,s)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"template_literal",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:"template_literal",pattern:t._zod.pattern.source}),n)}),L5=A("$ZodPromise",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(s=>e.innerType._zod.run({value:s,issues:[]},n))}),U5=A("$ZodLazy",(t,e)=>{Pe.init(t,e),dt(t._zod,"innerType",()=>e.getter()),dt(t._zod,"pattern",()=>t._zod.innerType._zod.pattern),dt(t._zod,"propValues",()=>t._zod.innerType._zod.propValues),dt(t._zod,"optin",()=>t._zod.innerType._zod.optin),dt(t._zod,"optout",()=>t._zod.innerType._zod.optout),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),q5=A("$ZodCustom",(t,e)=>{Yt.init(t,e),Pe.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>SF(i,r,n,t));SF(s,r,n,t)}});function SF(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push($8(s))}}var OT={};io(OT,{zhTW:()=>Qxe,zhCN:()=>Kxe,vi:()=>Gxe,ur:()=>Wxe,ua:()=>Hxe,tr:()=>qxe,th:()=>$xe,ta:()=>zxe,sv:()=>Nxe,sl:()=>jxe,ru:()=>Cxe,pt:()=>Pxe,ps:()=>kxe,pl:()=>Txe,ota:()=>wxe,no:()=>xxe,nl:()=>yxe,ms:()=>gxe,mk:()=>fxe,ko:()=>dxe,kh:()=>uxe,ja:()=>cxe,it:()=>axe,id:()=>sxe,hu:()=>rxe,he:()=>exe,frCA:()=>Ybe,fr:()=>Jbe,fi:()=>Vbe,fa:()=>Zbe,es:()=>Bbe,eo:()=>Fbe,en:()=>F5,de:()=>Mbe,cs:()=>Dbe,ca:()=>Abe,be:()=>Obe,az:()=>Ibe,ar:()=>Rbe});var Tbe=()=>{let t={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return s=>{switch(s.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${s.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Oe(s.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${s.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${n[i.format]??s.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${s.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${s.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${s.keys.length>1?"\u0629":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function Rbe(){return{localeError:Tbe()}}var Pbe=()=>{let t={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${s.expected}, daxil olan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Oe(s.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${n[i.format]??s.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${s.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${s.keys.length>1?"lar":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${s.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function Ibe(){return{localeError:Pbe()}}function kF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Cbe=()=>{let t={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0456\u045E";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${s.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=kF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.maximum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=kF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.minimum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${s.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${s.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Obe(){return{localeError:Cbe()}}var jbe=()=>{let t={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${s.expected}, s'ha rebut ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Valor inv\xE0lid: s'esperava ${Oe(s.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${ee(s.values," o ")}`;case"too_big":{let i=s.inclusive?"com a m\xE0xim":"menys de",a=e(s.origin);return a?`Massa gran: s'esperava que ${s.origin??"el valor"} contingu\xE9s ${i} ${s.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${s.origin??"el valor"} fos ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"com a m\xEDnim":"m\xE9s de",a=e(s.origin);return a?`Massa petit: s'esperava que ${s.origin} contingu\xE9s ${i} ${s.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${s.origin} fos ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${s.divisor}`;case"unrecognized_keys":return`Clau${s.keys.length>1?"s":""} no reconeguda${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${s.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${s.origin}`;default:return"Entrada inv\xE0lida"}}};function Abe(){return{localeError:jbe()}}var Nbe=()=>{let t={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(s))return"pole";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return s=>{switch(s.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${s.expected}, obdr\u017Eeno ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Oe(s.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${n[i.format]??s.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${s.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${ee(s.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${s.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${s.origin}`;default:return"Neplatn\xFD vstup"}}};function Dbe(){return{localeError:Nbe()}}var zbe=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"Zahl";case"object":{if(Array.isArray(s))return"Array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return s=>{switch(s.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${s.expected}, erhalten ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Oe(s.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ist`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ist`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${s.divisor} sein`;case"unrecognized_keys":return`${s.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${s.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${s.origin}`;default:return"Ung\xFCltige Eingabe"}}};function Mbe(){return{localeError:zbe()}}var $be=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Lbe=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${$be(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Oe(n.values[0])}`:`Invalid option: expected one of ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function F5(){return{localeError:Lbe()}}var Ube=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"nombro";case"object":{if(Array.isArray(t))return"tabelo";if(t===null)return"senvalora";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},qbe=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(n){return t[n]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return n=>{switch(n.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${n.expected}, ricevi\u011Dis ${Ube(n.input)}`;case"invalid_value":return n.values.length===1?`Nevalida enigo: atendi\u011Dis ${Oe(n.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Tro malgranda: atendi\u011Dis ke ${n.origin} havu ${s}${n.minimum.toString()} ${i.unit}`:`Tro malgranda: atendi\u011Dis ke ${n.origin} estu ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${r[s.format]??n.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${n.divisor}`;case"unrecognized_keys":return`Nekonata${n.keys.length>1?"j":""} \u015Dlosilo${n.keys.length>1?"j":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${n.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${n.origin}`;default:return"Nevalida enigo"}}};function Fbe(){return{localeError:qbe()}}var Hbe=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"arreglo";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype)return s.constructor.name}}return i},n={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${s.expected}, recibido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: se esperaba ${Oe(s.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Demasiado grande: se esperaba que ${s.origin??"valor"} tuviera ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${s.origin??"valor"} fuera ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Demasiado peque\xF1o: se esperaba que ${s.origin} tuviera ${i}${s.minimum.toString()} ${a.unit}`:`Demasiado peque\xF1o: se esperaba que ${s.origin} fuera ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Llave${s.keys.length>1?"s":""} desconocida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${s.origin}`;default:return"Entrada inv\xE1lida"}}};function Bbe(){return{localeError:Hbe()}}var Wbe=()=>{let t={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0622\u0631\u0627\u06CC\u0647";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return s=>{switch(s.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${s.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${r(s.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return s.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Oe(s.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${ee(s.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${n[i.format]??s.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${s.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${s.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${ee(s.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${s.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${s.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Zbe(){return{localeError:Wbe()}}var Gbe=()=>{let t={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return s=>{switch(s.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${s.expected}, oli ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Oe(s.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${i}${s.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${i}${s.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${n[i.format]??s.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${s.divisor} monikerta`;case"unrecognized_keys":return`${s.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${ee(s.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function Vbe(){return{localeError:Gbe()}}var Kbe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombre";case"object":{if(Array.isArray(s))return"tableau";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : ${s.expected} attendu, ${r(s.input)} re\xE7u`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : ${Oe(s.values[0])} attendu`:`Option invalide : une valeur parmi ${ee(s.values,"|")} attendue`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Trop grand : ${s.origin??"valeur"} doit ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${s.origin??"valeur"} doit \xEAtre ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Trop petit : ${s.origin} doit ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : ${s.origin} doit \xEAtre ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Jbe(){return{localeError:Kbe()}}var Qbe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${s.expected}, re\xE7u ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : attendu ${Oe(s.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u2264":"<",a=e(s.origin);return a?`Trop grand : attendu que ${s.origin??"la valeur"} ait ${i}${s.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${s.origin??"la valeur"} soit ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u2265":">",a=e(s.origin);return a?`Trop petit : attendu que ${s.origin} ait ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${s.origin} soit ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Ybe(){return{localeError:Qbe()}}var Xbe=()=>{let t={string:{unit:"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u05E7\u05DC\u05D8",email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",emoji:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",date:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",time:"\u05D6\u05DE\u05DF ISO",duration:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",ipv4:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",ipv6:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",cidrv4:"\u05D8\u05D5\u05D5\u05D7 IPv4",cidrv6:"\u05D8\u05D5\u05D5\u05D7 IPv6",base64:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",base64url:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",json_string:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",e164:"\u05DE\u05E1\u05E4\u05E8 E.164",jwt:"JWT",template_literal:"\u05E7\u05DC\u05D8"};return s=>{switch(s.code){case"invalid_type":return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${s.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${Oe(s.values[0])}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()} ${a.unit??"elements"}`:`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()} ${a.unit}`:`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1"${i.prefix}"`:i.format==="ends_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${i.suffix}"`:i.format==="includes"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${i.includes}"`:i.format==="regex"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${i.pattern}`:`${n[i.format]??s.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${s.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${s.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${s.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function exe(){return{localeError:Xbe()}}var txe=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(s))return"t\xF6mb";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return s=>{switch(s.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${s.expected}, a kapott \xE9rt\xE9k ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Oe(s.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`T\xFAl nagy: ${s.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${s.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${s.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} m\xE9rete t\xFAl kicsi ${i}${s.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} t\xFAl kicsi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${n[i.format]??s.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${s.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${s.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${s.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function rxe(){return{localeError:txe()}}var nxe=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak valid: diharapkan ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak valid: diharapkan ${Oe(s.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: diharapkan ${s.origin??"value"} memiliki ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${s.origin??"value"} menjadi ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: diharapkan ${s.origin} memiliki ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${s.origin} menjadi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${n[i.format]??s.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${s.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${s.origin}`;default:return"Input tidak valid"}}};function sxe(){return{localeError:nxe()}}var ixe=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numero";case"object":{if(Array.isArray(s))return"vettore";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input non valido: atteso ${s.expected}, ricevuto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input non valido: atteso ${Oe(s.values[0])}`:`Opzione non valida: atteso uno tra ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Troppo grande: ${s.origin??"valore"} deve avere ${i}${s.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${s.origin??"valore"} deve essere ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Troppo piccolo: ${s.origin} deve avere ${i}${s.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${s.origin} deve essere ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${s.divisor}`;case"unrecognized_keys":return`Chiav${s.keys.length>1?"i":"e"} non riconosciut${s.keys.length>1?"e":"a"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${s.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${s.origin}`;default:return"Input non valido"}}};function axe(){return{localeError:ixe()}}var oxe=()=>{let t={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(s))return"\u914D\u5217";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${s.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${r(s.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return s.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Oe(s.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${ee(s.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let i=s.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=e(s.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${a.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let i=s.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=e(s.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${a.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${s.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${s.keys.length>1?"\u7FA4":""}: ${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function cxe(){return{localeError:oxe()}}var lxe=()=>{let t={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(s))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(s===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return s=>{switch(s.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Oe(s.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${s.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${ee(s.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function uxe(){return{localeError:lxe()}}var pxe=()=>{let t={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return s=>{switch(s.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${s.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${r(s.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return s.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Oe(s.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${ee(s.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let i=s.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()} ${i}${a}`}case"too_small":{let i=s.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()} ${i}${a}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${n[i.format]??s.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${s.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${ee(s.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${s.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${s.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function dxe(){return{localeError:pxe()}}var mxe=()=>{let t={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(s))return"\u043D\u0438\u0437\u0430";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return s=>{switch(s.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Invalid input: expected ${Oe(s.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${s.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${s.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function fxe(){return{localeError:mxe()}}var hxe=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombor";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak sah: dijangka ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak sah: dijangka ${Oe(s.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: dijangka ${s.origin??"nilai"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${s.origin??"nilai"} adalah ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: dijangka ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${s.origin} adalah ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${n[i.format]??s.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${s.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${s.origin}`;default:return"Input tidak sah"}}};function gxe(){return{localeError:hxe()}}var vxe=()=>{let t={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"getal";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return s=>{switch(s.code){case"invalid_type":return`Ongeldige invoer: verwacht ${s.expected}, ontving ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ongeldige invoer: verwacht ${Oe(s.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} ${a.unit??"elementen"} bevat`:`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} is`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} ${a.unit} bevat`:`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} is`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${s.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${s.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${s.origin}`;default:return"Ongeldige invoer"}}};function yxe(){return{localeError:vxe()}}var bxe=()=>{let t={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"tall";case"object":{if(Array.isArray(s))return"liste";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Ugyldig input: forventet ${s.expected}, fikk ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ugyldig verdi: forventet ${Oe(s.values[0])}`:`Ugyldig valg: forventet en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${n[i.format]??s.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${s.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${s.origin}`;default:return"Ugyldig input"}}};function xxe(){return{localeError:bxe()}}var _xe=()=>{let t={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numara";case"object":{if(Array.isArray(s))return"saf";if(s===null)return"gayb";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return s=>{switch(s.code){case"invalid_type":return`F\xE2sit giren: umulan ${s.expected}, al\u0131nan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`F\xE2sit giren: umulan ${Oe(s.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let i=s;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${n[i.format]??s.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${s.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${s.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function wxe(){return{localeError:_xe()}}var Sxe=()=>{let t={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0627\u0631\u06D0";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return s=>{switch(s.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${s.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${r(s.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return s.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Oe(s.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${ee(s.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0648\u064A`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0648\u064A`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${n[i.format]??s.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${s.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${s.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${s.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${s.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function kxe(){return{localeError:Sxe()}}var Exe=()=>{let t={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"liczba";case"object":{if(Array.isArray(s))return"tablica";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return s=>{switch(s.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${s.expected}, otrzymano ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Oe(s.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${n[i.format]??s.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${s.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${s.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${s.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function Txe(){return{localeError:Exe()}}var Rxe=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"array";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${s.expected}, recebido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: esperado ${Oe(s.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Muito grande: esperado que ${s.origin??"valor"} tivesse ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${s.origin??"valor"} fosse ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Muito pequeno: esperado que ${s.origin} tivesse ${i}${s.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${s.origin} fosse ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${n[i.format]??s.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Chave${s.keys.length>1?"s":""} desconhecida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${s.origin}`;default:return"Campo inv\xE1lido"}}};function Pxe(){return{localeError:Rxe()}}function EF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Ixe=()=>{let t={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${s.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Oe(s.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=EF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.maximum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=EF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.minimum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${s.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0438":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${s.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function Cxe(){return{localeError:Ixe()}}var Oxe=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(s))return"tabela";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return s=>{switch(s.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${s.expected}, prejeto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Oe(s.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} imelo ${i}${s.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${s.origin} imelo ${i}${s.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${n[i.format]??s.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${s.divisor}`;case"unrecognized_keys":return`Neprepoznan${s.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${s.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${s.origin}`;default:return"Neveljaven vnos"}}};function jxe(){return{localeError:Oxe()}}var Axe=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"antal";case"object":{if(Array.isArray(s))return"lista";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return s=>{switch(s.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${s.expected}, fick ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Oe(s.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${n[i.format]??s.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${s.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${s.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function Nxe(){return{localeError:Axe()}}var Dxe=()=>{let t={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(s))return"\u0B85\u0BA3\u0BBF";if(s===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Oe(s.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${ee(s.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${s.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${s.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function zxe(){return{localeError:Dxe()}}var Mxe=()=>{let t={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(s))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(s===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return s=>{switch(s.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${s.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Oe(s.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${s.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function $xe(){return{localeError:Mxe()}}var Lxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Uxe=()=>{let t={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function e(n){return t[n]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return n=>{switch(n.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${n.expected}, al\u0131nan ${Lxe(n.input)}`;case"invalid_value":return n.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Oe(n.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()} ${i.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()} ${i.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Ge\xE7ersiz metin: "${s.prefix}" ile ba\u015Flamal\u0131`:s.format==="ends_with"?`Ge\xE7ersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Ge\xE7ersiz metin: "${s.includes}" i\xE7ermeli`:s.format==="regex"?`Ge\xE7ersiz metin: ${s.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[s.format]??n.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${n.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${n.keys.length>1?"lar":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${n.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function qxe(){return{localeError:Uxe()}}var Fxe=()=>{let t={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${s.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} \u0431\u0443\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0456":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${s.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Hxe(){return{localeError:Fxe()}}var Bxe=()=>{let t={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(s))return"\u0622\u0631\u06D2";if(s===null)return"\u0646\u0644";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return s=>{switch(s.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${s.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${r(s.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return s.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Oe(s.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${ee(s.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${s.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u06D2 ${i}${s.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u0627 ${i}${s.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${s.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${s.keys.length>1?"\u0632":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function Wxe(){return{localeError:Bxe()}}var Zxe=()=>{let t={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(s))return"m\u1EA3ng";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return s=>{switch(s.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${s.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Oe(s.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${n[i.format]??s.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${s.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${ee(s.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function Gxe(){return{localeError:Zxe()}}var Vxe=()=>{let t={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(s))return"\u6570\u7EC4";if(s===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${s.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Oe(s.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${n[i.format]??s.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${s.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${s.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function Kxe(){return{localeError:Vxe()}}var Jxe=()=>{let t={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${s.expected}\uFF0C\u4F46\u6536\u5230 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Oe(s.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${s.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${s.keys.length>1?"\u5011":""}\uFF1A${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function Qxe(){return{localeError:Jxe()}}var H5=Symbol("ZodOutput"),B5=Symbol("ZodInput"),Fd=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function jT(){return new Fd}var Qa=jT();function W5(t,e){return new t({type:"string",...J(e)})}function Z5(t,e){return new t({type:"string",coerce:!0,...J(e)})}function AT(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...J(e)})}function Kv(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...J(e)})}function NT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...J(e)})}function DT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(e)})}function zT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(e)})}function MT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(e)})}function $T(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...J(e)})}function LT(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...J(e)})}function UT(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(e)})}function qT(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...J(e)})}function FT(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(e)})}function HT(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...J(e)})}function BT(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...J(e)})}function WT(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(e)})}function ZT(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(e)})}function GT(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(e)})}function VT(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(e)})}function KT(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(e)})}function JT(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...J(e)})}function QT(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...J(e)})}function YT(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...J(e)})}function XT(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...J(e)})}var G5={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function V5(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(e)})}function K5(t,e){return new t({type:"string",format:"date",check:"string_format",...J(e)})}function J5(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...J(e)})}function Q5(t,e){return new t({type:"string",format:"duration",check:"string_format",...J(e)})}function Y5(t,e){return new t({type:"number",checks:[],...J(e)})}function X5(t,e){return new t({type:"number",coerce:!0,checks:[],...J(e)})}function eH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...J(e)})}function tH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...J(e)})}function rH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...J(e)})}function nH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...J(e)})}function sH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...J(e)})}function iH(t,e){return new t({type:"boolean",...J(e)})}function aH(t,e){return new t({type:"boolean",coerce:!0,...J(e)})}function oH(t,e){return new t({type:"bigint",...J(e)})}function cH(t,e){return new t({type:"bigint",coerce:!0,...J(e)})}function lH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...J(e)})}function uH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...J(e)})}function pH(t,e){return new t({type:"symbol",...J(e)})}function dH(t,e){return new t({type:"undefined",...J(e)})}function mH(t,e){return new t({type:"null",...J(e)})}function fH(t){return new t({type:"any"})}function Jv(t){return new t({type:"unknown"})}function hH(t,e){return new t({type:"never",...J(e)})}function gH(t,e){return new t({type:"void",...J(e)})}function vH(t,e){return new t({type:"date",...J(e)})}function yH(t,e){return new t({type:"date",coerce:!0,...J(e)})}function bH(t,e){return new t({type:"nan",...J(e)})}function no(t,e){return new xT({check:"less_than",...J(e),value:t,inclusive:!1})}function vs(t,e){return new xT({check:"less_than",...J(e),value:t,inclusive:!0})}function so(t,e){return new _T({check:"greater_than",...J(e),value:t,inclusive:!1})}function Tn(t,e){return new _T({check:"greater_than",...J(e),value:t,inclusive:!0})}function xH(t){return so(0,t)}function _H(t){return no(0,t)}function wH(t){return vs(0,t)}function SH(t){return Tn(0,t)}function Hd(t,e){return new _9({check:"multiple_of",...J(e),value:t})}function fy(t,e){return new k9({check:"max_size",...J(e),maximum:t})}function Bd(t,e){return new E9({check:"min_size",...J(e),minimum:t})}function eR(t,e){return new T9({check:"size_equals",...J(e),size:t})}function hy(t,e){return new R9({check:"max_length",...J(e),maximum:t})}function ol(t,e){return new P9({check:"min_length",...J(e),minimum:t})}function gy(t,e){return new I9({check:"length_equals",...J(e),length:t})}function tR(t,e){return new C9({check:"string_format",format:"regex",...J(e),pattern:t})}function rR(t){return new O9({check:"string_format",format:"lowercase",...J(t)})}function nR(t){return new j9({check:"string_format",format:"uppercase",...J(t)})}function sR(t,e){return new A9({check:"string_format",format:"includes",...J(e),includes:t})}function iR(t,e){return new N9({check:"string_format",format:"starts_with",...J(e),prefix:t})}function aR(t,e){return new D9({check:"string_format",format:"ends_with",...J(e),suffix:t})}function kH(t,e,r){return new z9({check:"property",property:t,schema:e,...J(r)})}function oR(t,e){return new M9({check:"mime_type",mime:t,...J(e)})}function co(t){return new $9({check:"overwrite",tx:t})}function cR(t){return co(e=>e.normalize(t))}function lR(){return co(t=>t.trim())}function uR(){return co(t=>t.toLowerCase())}function pR(){return co(t=>t.toUpperCase())}function dR(t,e,r){return new t({type:"array",element:e,...J(r)})}function Yxe(t,e,r){return new t({type:"union",options:e,...J(r)})}function Xxe(t,e,r,n){return new t({type:"union",options:r,discriminator:e,...J(n)})}function e_e(t,e,r){return new t({type:"intersection",left:e,right:r})}function EH(t,e,r,n){let s=r instanceof Pe;return new t({type:"tuple",items:e,rest:s?r:null,...J(s?n:r)})}function t_e(t,e,r,n){return new t({type:"record",keyType:e,valueType:r,...J(n)})}function r_e(t,e,r,n){return new t({type:"map",keyType:e,valueType:r,...J(n)})}function n_e(t,e,r){return new t({type:"set",valueType:e,...J(r)})}function s_e(t,e,r){let n=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new t({type:"enum",entries:n,...J(r)})}function i_e(t,e,r){return new t({type:"enum",entries:e,...J(r)})}function a_e(t,e,r){return new t({type:"literal",values:Array.isArray(e)?e:[e],...J(r)})}function TH(t,e){return new t({type:"file",...J(e)})}function o_e(t,e){return new t({type:"transform",transform:e})}function c_e(t,e){return new t({type:"optional",innerType:e})}function l_e(t,e){return new t({type:"nullable",innerType:e})}function u_e(t,e,r){return new t({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}function p_e(t,e,r){return new t({type:"nonoptional",innerType:e,...J(r)})}function d_e(t,e){return new t({type:"success",innerType:e})}function m_e(t,e,r){return new t({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}function f_e(t,e,r){return new t({type:"pipe",in:e,out:r})}function h_e(t,e){return new t({type:"readonly",innerType:e})}function g_e(t,e,r){return new t({type:"template_literal",parts:e,...J(r)})}function v_e(t,e){return new t({type:"lazy",getter:e})}function y_e(t,e){return new t({type:"promise",innerType:e})}function RH(t,e,r){let n=J(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function PH(t,e,r){return new t({type:"custom",check:"custom",fn:e,...J(r)})}function IH(t,e){let r=J(e),n=r.truthy??["true","1","yes","on","y","enabled"],s=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(d=>typeof d=="string"?d.toLowerCase():d),s=s.map(d=>typeof d=="string"?d.toLowerCase():d));let i=new Set(n),a=new Set(s),o=t.Pipe??CT,c=t.Boolean??kT,l=t.String??Kd,u=new(t.Transform??IT)({type:"transform",transform:(d,m)=>{let f=d;return r.case!=="sensitive"&&(f=f.toLowerCase()),i.has(f)?!0:a.has(f)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:m.value,inst:u}),{})},error:r.error}),p=new o({type:"pipe",in:new l({type:"string",error:r.error}),out:u,error:r.error});return new o({type:"pipe",in:p,out:new c({type:"boolean",error:r.error}),error:r.error})}function CH(t,e,r,n={}){let s=J(n),i={...J(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...s};return r instanceof RegExp&&(i.pattern=r),new t(i)}var Qv=class{constructor(e){this._def=e,this.def=e}implement(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=(...n)=>{let s=this._def.input?Wv(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=e(...s);return this._def.output?Wv(this._def.output,i,void 0,{callee:r}):i};return r}implementAsync(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=async(...n)=>{let s=this._def.input?await Zv(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=await e(...s);return this._def.output?Zv(this._def.output,i,void 0,{callee:r}):i};return r}input(...e){let r=this.constructor;return Array.isArray(e[0])?new r({type:"function",input:new my({type:"tuple",items:e[0],rest:e[1]}),output:this._def.output}):new r({type:"function",input:e[0],output:this._def.output})}output(e){return new this.constructor({type:"function",input:this._def.input,output:e})}};function OH(t){return new Qv({type:"function",input:Array.isArray(t?.input)?EH(my,t?.input):t?.input??dR(TT,Jv(Vv)),output:t?.output??Jv(Vv)})}var Wd=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??Qa,this.target=e?.target??"draft-2020-12",this.unrepresentable=e?.unrepresentable??"throw",this.override=e?.override??(()=>{}),this.io=e?.io??"output",this.seen=new Map}process(e,r={path:[],schemaPath:[]}){var n;let s=e._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};this.seen.set(e,o);let c=e._zod.toJSONSchema?.();if(c)o.schema=c;else{let u={...r,schemaPath:[...r.schemaPath,e],path:r.path},p=e._zod.parent;if(p)o.ref=p,this.process(p,u),this.seen.get(p).isParent=!0;else{let d=o.schema;switch(s.type){case"string":{let m=d;m.type="string";let{minimum:f,maximum:v,format:g,patterns:h,contentEncoding:y}=e._zod.bag;if(typeof f=="number"&&(m.minLength=f),typeof v=="number"&&(m.maxLength=v),g&&(m.format=i[g]??g,m.format===""&&delete m.format),y&&(m.contentEncoding=y),h&&h.size>0){let b=[...h];b.length===1?m.pattern=b[0].source:b.length>1&&(o.schema.allOf=[...b.map(x=>({...this.target==="draft-7"?{type:"string"}:{},pattern:x.source}))])}break}case"number":{let m=d,{minimum:f,maximum:v,format:g,multipleOf:h,exclusiveMaximum:y,exclusiveMinimum:b}=e._zod.bag;typeof g=="string"&&g.includes("int")?m.type="integer":m.type="number",typeof b=="number"&&(m.exclusiveMinimum=b),typeof f=="number"&&(m.minimum=f,typeof b=="number"&&(b>=f?delete m.minimum:delete m.exclusiveMinimum)),typeof y=="number"&&(m.exclusiveMaximum=y),typeof v=="number"&&(m.maximum=v,typeof y=="number"&&(y<=v?delete m.maximum:delete m.exclusiveMaximum)),typeof h=="number"&&(m.multipleOf=h);break}case"boolean":{let m=d;m.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{d.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{d.not={};break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let m=d,{minimum:f,maximum:v}=e._zod.bag;typeof f=="number"&&(m.minItems=f),typeof v=="number"&&(m.maxItems=v),m.type="array",m.items=this.process(s.element,{...u,path:[...u.path,"items"]});break}case"object":{let m=d;m.type="object",m.properties={};let f=s.shape;for(let h in f)m.properties[h]=this.process(f[h],{...u,path:[...u.path,"properties",h]});let v=new Set(Object.keys(f)),g=new Set([...v].filter(h=>{let y=s.shape[h]._zod;return this.io==="input"?y.optin===void 0:y.optout===void 0}));g.size>0&&(m.required=Array.from(g)),s.catchall?._zod.def.type==="never"?m.additionalProperties=!1:s.catchall?s.catchall&&(m.additionalProperties=this.process(s.catchall,{...u,path:[...u.path,"additionalProperties"]})):this.io==="output"&&(m.additionalProperties=!1);break}case"union":{let m=d;m.anyOf=s.options.map((f,v)=>this.process(f,{...u,path:[...u.path,"anyOf",v]}));break}case"intersection":{let m=d,f=this.process(s.left,{...u,path:[...u.path,"allOf",0]}),v=this.process(s.right,{...u,path:[...u.path,"allOf",1]}),g=y=>"allOf"in y&&Object.keys(y).length===1,h=[...g(f)?f.allOf:[f],...g(v)?v.allOf:[v]];m.allOf=h;break}case"tuple":{let m=d;m.type="array";let f=s.items.map((h,y)=>this.process(h,{...u,path:[...u.path,"prefixItems",y]}));if(this.target==="draft-2020-12"?m.prefixItems=f:m.items=f,s.rest){let h=this.process(s.rest,{...u,path:[...u.path,"items"]});this.target==="draft-2020-12"?m.items=h:m.additionalItems=h}s.rest&&(m.items=this.process(s.rest,{...u,path:[...u.path,"items"]}));let{minimum:v,maximum:g}=e._zod.bag;typeof v=="number"&&(m.minItems=v),typeof g=="number"&&(m.maxItems=g);break}case"record":{let m=d;m.type="object",m.propertyNames=this.process(s.keyType,{...u,path:[...u.path,"propertyNames"]}),m.additionalProperties=this.process(s.valueType,{...u,path:[...u.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let m=d,f=aT(s.entries);f.every(v=>typeof v=="number")&&(m.type="number"),f.every(v=>typeof v=="string")&&(m.type="string"),m.enum=f;break}case"literal":{let m=d,f=[];for(let v of s.values)if(v===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof v=="bigint"){if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(v))}else f.push(v);if(f.length!==0)if(f.length===1){let v=f[0];m.type=v===null?"null":typeof v,m.const=v}else f.every(v=>typeof v=="number")&&(m.type="number"),f.every(v=>typeof v=="string")&&(m.type="string"),f.every(v=>typeof v=="boolean")&&(m.type="string"),f.every(v=>v===null)&&(m.type="null"),m.enum=f;break}case"file":{let m=d,f={type:"string",format:"binary",contentEncoding:"binary"},{minimum:v,maximum:g,mime:h}=e._zod.bag;v!==void 0&&(f.minLength=v),g!==void 0&&(f.maxLength=g),h?h.length===1?(f.contentMediaType=h[0],Object.assign(m,f)):m.anyOf=h.map(y=>({...f,contentMediaType:y})):Object.assign(m,f);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let m=this.process(s.innerType,u);d.anyOf=[m,{type:"null"}];break}case"nonoptional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"success":{let m=d;m.type="boolean";break}case"default":{this.process(s.innerType,u),o.ref=s.innerType,d.default=JSON.parse(JSON.stringify(s.defaultValue));break}case"prefault":{this.process(s.innerType,u),o.ref=s.innerType,this.io==="input"&&(d._prefault=JSON.parse(JSON.stringify(s.defaultValue)));break}case"catch":{this.process(s.innerType,u),o.ref=s.innerType;let m;try{m=s.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}d.default=m;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let m=d,f=e._zod.pattern;if(!f)throw Error("Pattern not found in template literal");m.type="string",m.pattern=f.source;break}case"pipe":{let m=this.io==="input"?s.in._zod.def.type==="transform"?s.out:s.in:s.out;this.process(m,u),o.ref=m;break}case"readonly":{this.process(s.innerType,u),o.ref=s.innerType,d.readOnly=!0;break}case"promise":{this.process(s.innerType,u),o.ref=s.innerType;break}case"optional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"lazy":{let m=e._zod.innerType;this.process(m,u),o.ref=m;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}default:}}}let l=this.metadataRegistry.get(e);return l&&Object.assign(o.schema,l),this.io==="input"&&ir(e)&&(delete o.schema.examples,delete o.schema.default),this.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,r){let n={cycles:r?.cycles??"ref",reused:r?.reused??"inline",external:r?.external??void 0},s=this.seen.get(e);if(!s)throw Error("Unprocessed schema. This is a bug in Zod.");let i=u=>{let p=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let f=n.external.registry.get(u[0])?.id;if(f)return{ref:n.external.uri(f)};let v=u[1].defId??u[1].schema.id??`schema${this.counter++}`;return u[1].defId=v,{defId:v,ref:`${n.external.uri("__shared")}#/${p}/${v}`}}if(u[1]===s)return{ref:"#"};let d=`#/${p}/`,m=u[1].schema.id??`__schema${this.counter++}`;return{defId:m,ref:d+m}},a=u=>{if(u[1].schema.$ref)return;let p=u[1],{ref:d,defId:m}=i(u);p.def={...p.schema},m&&(p.defId=m);let f=p.schema;for(let v in f)delete f[v];f.$ref=d};for(let u of this.seen.entries()){let p=u[1];if(e===u[0]){a(u);continue}if(n.external){let d=n.external.registry.get(u[0])?.id;if(e!==u[0]&&d){a(u);continue}}if(this.metadataRegistry.get(u[0])?.id){a(u);continue}if(p.cycle){if(n.cycles==="throw")throw Error(`Cycle detected: #/${p.cycle?.join("/")}/ + })));`),p.write(`newResult[${Uc(h)}] = ${y}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");let g=p.compile();return(h,y)=>g(u,h,y)},s,i=Ud,a=!Hv.jitless,o=a&&A8.value,c=e.catchall,l;t._zod.parse=(u,p)=>{l??(l=r.value);let d=u.value;if(!i(d))return u.issues.push({expected:"object",code:"invalid_type",input:d,inst:t}),u;let m=[];if(a&&o&&p?.async===!1&&p.jitless!==!0)s||(s=n(e.shape)),u=s(u,p);else{u.value={};let y=l.shape;for(let b of l.keys){let x=y[b],w=x._zod.run({value:d[b],issues:[]},p),S=x._zod.optin==="optional"&&x._zod.optout==="optional";w instanceof Promise?m.push(w.then(k=>S?fF(k,u,b,d):ov(k,u,b))):S?fF(w,u,b,d):ov(w,u,b)}}if(!c)return m.length?Promise.all(m).then(()=>u):u;let f=[],v=l.keySet,g=c._zod,h=g.def.type;for(let y of Object.keys(d)){if(v.has(y))continue;if(h==="never"){f.push(y);continue}let b=g.run({value:d[y],issues:[]},p);b instanceof Promise?m.push(b.then(x=>ov(x,u,y))):ov(b,u,y)}return f.length&&u.issues.push({code:"unrecognized_keys",keys:f,input:d,inst:t}),m.length?Promise.all(m).then(()=>u):u}});function hF(t,e,r,n){for(let s of t)if(s.issues.length===0)return e.value=s.value,e;return e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(s=>s.issues.map(i=>bs(i,n,Qr())))}),e}var PT=A("$ZodUnion",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.options.some(r=>r._zod.optin==="optional")?"optional":void 0),dt(t._zod,"optout",()=>e.options.some(r=>r._zod.optout==="optional")?"optional":void 0),dt(t._zod,"values",()=>{if(e.options.every(r=>r._zod.values))return new Set(e.options.flatMap(r=>Array.from(r._zod.values)))}),dt(t._zod,"pattern",()=>{if(e.options.every(r=>r._zod.pattern)){let r=e.options.map(n=>n._zod.pattern);return new RegExp(`^(${r.map(n=>uy(n.source)).join("|")})$`)}}),t._zod.parse=(r,n)=>{let s=!1,i=[];for(let a of e.options){let o=a._zod.run({value:r.value,issues:[]},n);if(o instanceof Promise)i.push(o),s=!0;else{if(o.issues.length===0)return o;i.push(o)}}return s?Promise.all(i).then(a=>hF(a,r,t,n)):hF(i,r,t,n)}}),_5=A("$ZodDiscriminatedUnion",(t,e)=>{PT.init(t,e);let r=t._zod.parse;dt(t._zod,"propValues",()=>{let s={};for(let i of e.options){let a=i._zod.propValues;if(!a||Object.keys(a).length===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(i)}"`);for(let[o,c]of Object.entries(a)){s[o]||(s[o]=new Set);for(let l of c)s[o].add(l)}}return s});let n=ly(()=>{let s=e.options,i=new Map;for(let a of s){let o=a._zod.propValues[e.discriminator];if(!o||o.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(a)}"`);for(let c of o){if(i.has(c))throw Error(`Duplicate discriminator value "${String(c)}"`);i.set(c,a)}}return i});t._zod.parse=(s,i)=>{let a=s.value;if(!Ud(a))return s.issues.push({code:"invalid_type",expected:"object",input:a,inst:t}),s;let o=n.value.get(a?.[e.discriminator]);return o?o._zod.run(s,i):e.unionFallback?r(s,i):(s.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:a,path:[e.discriminator],inst:t}),s)}}),w5=A("$ZodIntersection",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value,i=e.left._zod.run({value:s,issues:[]},n),a=e.right._zod.run({value:s,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([o,c])=>gF(r,o,c)):gF(r,i,a)}});function VE(t,e){if(t===e)return{valid:!0,data:t};if(t instanceof Date&&e instanceof Date&&+t==+e)return{valid:!0,data:t};if(qd(t)&&qd(e)){let r=Object.keys(e),n=Object.keys(t).filter(i=>r.indexOf(i)!==-1),s={...t,...e};for(let i of n){let a=VE(t[i],e[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};s[i]=a.data}return{valid:!0,data:s}}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n{Pe.init(t,e);let r=e.items,n=r.length-[...r].reverse().findIndex(s=>s._zod.optin!=="optional");t._zod.parse=(s,i)=>{let a=s.value;if(!Array.isArray(a))return s.issues.push({input:a,inst:t,expected:"tuple",code:"invalid_type"}),s;s.value=[];let o=[];if(!e.rest){let l=a.length>r.length,u=a.length=a.length&&c>=n)continue;let u=l._zod.run({value:a[c],issues:[]},i);u instanceof Promise?o.push(u.then(p=>cv(p,s,c))):cv(u,s,c)}if(e.rest){let l=a.slice(r.length);for(let u of l){c++;let p=e.rest._zod.run({value:u,issues:[]},i);p instanceof Promise?o.push(p.then(d=>cv(d,s,c))):cv(p,s,c)}}return o.length?Promise.all(o).then(()=>s):s}});function cv(t,e,r){t.issues.length&&e.issues.push(...Vn(r,t.issues)),e.value[r]=t.value}var S5=A("$ZodRecord",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!qd(s))return r.issues.push({expected:"record",code:"invalid_type",input:s,inst:t}),r;let i=[];if(e.keyType._zod.values){let a=e.keyType._zod.values;r.value={};for(let c of a)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){let l=e.valueType._zod.run({value:s[c],issues:[]},n);l instanceof Promise?i.push(l.then(u=>{u.issues.length&&r.issues.push(...Vn(c,u.issues)),r.value[c]=u.value})):(l.issues.length&&r.issues.push(...Vn(c,l.issues)),r.value[c]=l.value)}let o;for(let c in s)a.has(c)||(o=o??[],o.push(c));o&&o.length>0&&r.issues.push({code:"unrecognized_keys",input:s,inst:t,keys:o})}else{r.value={};for(let a of Reflect.ownKeys(s)){if(a==="__proto__")continue;let o=e.keyType._zod.run({value:a,issues:[]},n);if(o instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(o.issues.length){r.issues.push({origin:"record",code:"invalid_key",issues:o.issues.map(l=>bs(l,n,Qr())),input:a,path:[a],inst:t}),r.value[o.value]=o.value;continue}let c=e.valueType._zod.run({value:s[a],issues:[]},n);c instanceof Promise?i.push(c.then(l=>{l.issues.length&&r.issues.push(...Vn(a,l.issues)),r.value[o.value]=l.value})):(c.issues.length&&r.issues.push(...Vn(a,c.issues)),r.value[o.value]=c.value)}}return i.length?Promise.all(i).then(()=>r):r}}),k5=A("$ZodMap",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:s,inst:t}),r;let i=[];r.value=new Map;for(let[a,o]of s){let c=e.keyType._zod.run({value:a,issues:[]},n),l=e.valueType._zod.run({value:o,issues:[]},n);c instanceof Promise||l instanceof Promise?i.push(Promise.all([c,l]).then(([u,p])=>{vF(u,p,r,a,s,t,n)})):vF(c,l,r,a,s,t,n)}return i.length?Promise.all(i).then(()=>r):r}});function vF(t,e,r,n,s,i,a){t.issues.length&&(Bv.has(typeof n)?r.issues.push(...Vn(n,t.issues)):r.issues.push({origin:"map",code:"invalid_key",input:s,inst:i,issues:t.issues.map(o=>bs(o,a,Qr()))})),e.issues.length&&(Bv.has(typeof n)?r.issues.push(...Vn(n,e.issues)):r.issues.push({origin:"map",code:"invalid_element",input:s,inst:i,key:n,issues:e.issues.map(o=>bs(o,a,Qr()))})),r.value.set(t.value,e.value)}var E5=A("$ZodSet",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;if(!(s instanceof Set))return r.issues.push({input:s,inst:t,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let a of s){let o=e.valueType._zod.run({value:a,issues:[]},n);o instanceof Promise?i.push(o.then(c=>yF(c,r))):yF(o,r)}return i.length?Promise.all(i).then(()=>r):r}});function yF(t,e){t.issues.length&&e.issues.push(...t.issues),e.value.add(t.value)}var T5=A("$ZodEnum",(t,e)=>{Pe.init(t,e);let r=aT(e.entries);t._zod.values=new Set(r),t._zod.pattern=new RegExp(`^(${r.filter(n=>Bv.has(typeof n)).map(n=>typeof n=="string"?co(n):n.toString()).join("|")})$`),t._zod.parse=(n,s)=>{let i=n.value;return t._zod.values.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:t}),n}}),R5=A("$ZodLiteral",(t,e)=>{Pe.init(t,e),t._zod.values=new Set(e.values),t._zod.pattern=new RegExp(`^(${e.values.map(r=>typeof r=="string"?co(r):r?r.toString():String(r)).join("|")})$`),t._zod.parse=(r,n)=>{let s=r.value;return t._zod.values.has(s)||r.issues.push({code:"invalid_value",values:e.values,input:s,inst:t}),r}}),P5=A("$ZodFile",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=r.value;return s instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:s,inst:t}),r}}),IT=A("$ZodTransform",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.transform(r.value,r);if(n.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(r.value=i,r));if(s instanceof Promise)throw new Yi;return r.value=s,r}}),I5=A("$ZodOptional",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",t._zod.optout="optional",dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${uy(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>e.innerType._zod.optin==="optional"?e.innerType._zod.run(r,n):r.value===void 0?r:e.innerType._zod.run(r,n)}),C5=A("$ZodNullable",(t,e)=>{Pe.init(t,e),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${uy(r.source)}|null)$`):void 0}),dt(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)}),O5=A("$ZodDefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{if(r.value===void 0)return r.value=e.defaultValue,r;let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>bF(i,e)):bF(s,e)}});function bF(t,e){return t.value===void 0&&(t.value=e.defaultValue),t}var j5=A("$ZodPrefault",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>(r.value===void 0&&(r.value=e.defaultValue),e.innerType._zod.run(r,n))}),A5=A("$ZodNonOptional",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>{let r=e.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>xF(i,t)):xF(s,t)}});function xF(t,e){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:e}),t}var N5=A("$ZodSuccess",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.issues.length===0,r)):(r.value=s.issues.length===0,r)}}),D5=A("$ZodCatch",(t,e)=>{Pe.init(t,e),t._zod.optin="optional",dt(t._zod,"optout",()=>e.innerType._zod.optout),dt(t._zod,"values",()=>e.innerType._zod.values),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(i=>(r.value=i.value,i.issues.length&&(r.value=e.catchValue({...r,error:{issues:i.issues.map(a=>bs(a,n,Qr()))},input:r.value}),r.issues=[]),r)):(r.value=s.value,s.issues.length&&(r.value=e.catchValue({...r,error:{issues:s.issues.map(i=>bs(i,n,Qr()))},input:r.value}),r.issues=[]),r)}}),z5=A("$ZodNaN",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:t,expected:"nan",code:"invalid_type"}),r)}),CT=A("$ZodPipe",(t,e)=>{Pe.init(t,e),dt(t._zod,"values",()=>e.in._zod.values),dt(t._zod,"optin",()=>e.in._zod.optin),dt(t._zod,"optout",()=>e.out._zod.optout),t._zod.parse=(r,n)=>{let s=e.in._zod.run(r,n);return s instanceof Promise?s.then(i=>_F(i,e,n)):_F(s,e,n)}});function _F(t,e,r){return Bc(t)?t:e.out._zod.run({value:t.value,issues:t.issues},r)}var M5=A("$ZodReadonly",(t,e)=>{Pe.init(t,e),dt(t._zod,"propValues",()=>e.innerType._zod.propValues),dt(t._zod,"values",()=>e.innerType._zod.values),dt(t._zod,"optin",()=>e.innerType._zod.optin),dt(t._zod,"optout",()=>e.innerType._zod.optout),t._zod.parse=(r,n)=>{let s=e.innerType._zod.run(r,n);return s instanceof Promise?s.then(wF):wF(s)}});function wF(t){return t.value=Object.freeze(t.value),t}var $5=A("$ZodTemplateLiteral",(t,e)=>{Pe.init(t,e);let r=[];for(let n of e.parts)if(n instanceof Pe){if(!n._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let s=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!s)throw Error(`Invalid template literal part: ${n._zod.traits}`);let i=s.startsWith("^")?1:0,a=s.endsWith("$")?s.length-1:s.length;r.push(s.slice(i,a))}else if(n===null||N8.has(typeof n))r.push(co(`${n}`));else throw Error(`Invalid template literal part: ${n}`);t._zod.pattern=new RegExp(`^${r.join("")}$`),t._zod.parse=(n,s)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:t,expected:"template_literal",code:"invalid_type"}),n):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:t,code:"invalid_format",format:"template_literal",pattern:t._zod.pattern.source}),n)}),L5=A("$ZodPromise",(t,e)=>{Pe.init(t,e),t._zod.parse=(r,n)=>Promise.resolve(r.value).then(s=>e.innerType._zod.run({value:s,issues:[]},n))}),U5=A("$ZodLazy",(t,e)=>{Pe.init(t,e),dt(t._zod,"innerType",()=>e.getter()),dt(t._zod,"pattern",()=>t._zod.innerType._zod.pattern),dt(t._zod,"propValues",()=>t._zod.innerType._zod.propValues),dt(t._zod,"optin",()=>t._zod.innerType._zod.optin),dt(t._zod,"optout",()=>t._zod.innerType._zod.optout),t._zod.parse=(r,n)=>t._zod.innerType._zod.run(r,n)}),q5=A("$ZodCustom",(t,e)=>{Yt.init(t,e),Pe.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,s=e.fn(n);if(s instanceof Promise)return s.then(i=>SF(i,r,n,t));SF(s,r,n,t)}});function SF(t,e,r,n){if(!t){let s={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(s.params=n._zod.def.params),e.issues.push($8(s))}}var OT={};ao(OT,{zhTW:()=>Qxe,zhCN:()=>Kxe,vi:()=>Gxe,ur:()=>Wxe,ua:()=>Hxe,tr:()=>qxe,th:()=>$xe,ta:()=>zxe,sv:()=>Nxe,sl:()=>jxe,ru:()=>Cxe,pt:()=>Pxe,ps:()=>kxe,pl:()=>Txe,ota:()=>wxe,no:()=>xxe,nl:()=>yxe,ms:()=>gxe,mk:()=>fxe,ko:()=>dxe,kh:()=>uxe,ja:()=>cxe,it:()=>axe,id:()=>sxe,hu:()=>rxe,he:()=>exe,frCA:()=>Ybe,fr:()=>Jbe,fi:()=>Vbe,fa:()=>Zbe,es:()=>Bbe,eo:()=>Fbe,en:()=>F5,de:()=>Mbe,cs:()=>Dbe,ca:()=>Abe,be:()=>Obe,az:()=>Ibe,ar:()=>Rbe});var Tbe=()=>{let t={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return s=>{switch(s.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${s.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${Oe(s.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${s.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()} ${a.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${s.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${s.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${n[i.format]??s.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${s.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${s.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${s.keys.length>1?"\u0629":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${s.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function Rbe(){return{localeError:Tbe()}}var Pbe=()=>{let t={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${s.expected}, daxil olan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${Oe(s.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()} ${a.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${s.origin??"d\u0259y\u0259r"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${n[i.format]??s.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${s.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${s.keys.length>1?"lar":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${s.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function Ibe(){return{localeError:Pbe()}}function kF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Cbe=()=>{let t={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0456\u045E";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${s.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=kF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.maximum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=kF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${a.verb} ${i}${s.minimum.toString()} ${c}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${s.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${s.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${s.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function Obe(){return{localeError:Cbe()}}var jbe=()=>{let t={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${s.expected}, s'ha rebut ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Valor inv\xE0lid: s'esperava ${Oe(s.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${ee(s.values," o ")}`;case"too_big":{let i=s.inclusive?"com a m\xE0xim":"menys de",a=e(s.origin);return a?`Massa gran: s'esperava que ${s.origin??"el valor"} contingu\xE9s ${i} ${s.maximum.toString()} ${a.unit??"elements"}`:`Massa gran: s'esperava que ${s.origin??"el valor"} fos ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"com a m\xEDnim":"m\xE9s de",a=e(s.origin);return a?`Massa petit: s'esperava que ${s.origin} contingu\xE9s ${i} ${s.minimum.toString()} ${a.unit}`:`Massa petit: s'esperava que ${s.origin} fos ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${s.divisor}`;case"unrecognized_keys":return`Clau${s.keys.length>1?"s":""} no reconeguda${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${s.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${s.origin}`;default:return"Entrada inv\xE0lida"}}};function Abe(){return{localeError:jbe()}}var Nbe=()=>{let t={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(s))return"pole";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return s=>{switch(s.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${s.expected}, obdr\u017Eeno ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${Oe(s.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.maximum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED m\xEDt ${i}${s.minimum.toString()} ${a.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${s.origin??"hodnota"} mus\xED b\xFDt ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${n[i.format]??s.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${s.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${ee(s.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${s.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${s.origin}`;default:return"Neplatn\xFD vstup"}}};function Dbe(){return{localeError:Nbe()}}var zbe=()=>{let t={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"Zahl";case"object":{if(Array.isArray(s))return"Array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return s=>{switch(s.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${s.expected}, erhalten ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ung\xFCltige Eingabe: erwartet ${Oe(s.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ${a.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${s.origin??"Wert"} ${i}${s.maximum.toString()} ist`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ${a.unit} hat`:`Zu klein: erwartet, dass ${s.origin} ${i}${s.minimum.toString()} ist`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${s.divisor} sein`;case"unrecognized_keys":return`${s.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${s.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${s.origin}`;default:return"Ung\xFCltige Eingabe"}}};function Mbe(){return{localeError:zbe()}}var $be=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Lbe=()=>{let t={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function e(n){return t[n]??null}let r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return n=>{switch(n.code){case"invalid_type":return`Invalid input: expected ${n.expected}, received ${$be(n.input)}`;case"invalid_value":return n.values.length===1?`Invalid input: expected ${Oe(n.values[0])}`:`Invalid option: expected one of ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Too big: expected ${n.origin??"value"} to have ${s}${n.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${n.origin??"value"} to be ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Too small: expected ${n.origin} to have ${s}${n.minimum.toString()} ${i.unit}`:`Too small: expected ${n.origin} to be ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Invalid string: must start with "${s.prefix}"`:s.format==="ends_with"?`Invalid string: must end with "${s.suffix}"`:s.format==="includes"?`Invalid string: must include "${s.includes}"`:s.format==="regex"?`Invalid string: must match pattern ${s.pattern}`:`Invalid ${r[s.format]??n.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${n.divisor}`;case"unrecognized_keys":return`Unrecognized key${n.keys.length>1?"s":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Invalid key in ${n.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${n.origin}`;default:return"Invalid input"}}};function F5(){return{localeError:Lbe()}}var Ube=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"nombro";case"object":{if(Array.isArray(t))return"tabelo";if(t===null)return"senvalora";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},qbe=()=>{let t={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function e(n){return t[n]??null}let r={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return n=>{switch(n.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${n.expected}, ricevi\u011Dis ${Ube(n.input)}`;case"invalid_value":return n.values.length===1?`Nevalida enigo: atendi\u011Dis ${Oe(n.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${n.origin??"valoro"} havu ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`Tro malgranda: atendi\u011Dis ke ${n.origin} havu ${s}${n.minimum.toString()} ${i.unit}`:`Tro malgranda: atendi\u011Dis ke ${n.origin} estu ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${s.prefix}"`:s.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${s.suffix}"`:s.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${s.includes}"`:s.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${s.pattern}`:`Nevalida ${r[s.format]??n.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${n.divisor}`;case"unrecognized_keys":return`Nekonata${n.keys.length>1?"j":""} \u015Dlosilo${n.keys.length>1?"j":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${n.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${n.origin}`;default:return"Nevalida enigo"}}};function Fbe(){return{localeError:qbe()}}var Hbe=()=>{let t={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"arreglo";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype)return s.constructor.name}}return i},n={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${s.expected}, recibido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: se esperaba ${Oe(s.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Demasiado grande: se esperaba que ${s.origin??"valor"} tuviera ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Demasiado grande: se esperaba que ${s.origin??"valor"} fuera ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Demasiado peque\xF1o: se esperaba que ${s.origin} tuviera ${i}${s.minimum.toString()} ${a.unit}`:`Demasiado peque\xF1o: se esperaba que ${s.origin} fuera ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${n[i.format]??s.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Llave${s.keys.length>1?"s":""} desconocida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${s.origin}`;default:return"Entrada inv\xE1lida"}}};function Bbe(){return{localeError:Hbe()}}var Wbe=()=>{let t={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0622\u0631\u0627\u06CC\u0647";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return s=>{switch(s.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${s.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${r(s.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return s.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${Oe(s.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${ee(s.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${s.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${n[i.format]??s.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${s.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${s.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${ee(s.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${s.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${s.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function Zbe(){return{localeError:Wbe()}}var Gbe=()=>{let t={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return s=>{switch(s.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${s.expected}, oli ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${Oe(s.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Liian suuri: ${a.subject} t\xE4ytyy olla ${i}${s.maximum.toString()} ${a.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Liian pieni: ${a.subject} t\xE4ytyy olla ${i}${s.minimum.toString()} ${a.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${n[i.format]??s.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${s.divisor} monikerta`;case"unrecognized_keys":return`${s.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${ee(s.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function Vbe(){return{localeError:Gbe()}}var Kbe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombre";case"object":{if(Array.isArray(s))return"tableau";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : ${s.expected} attendu, ${r(s.input)} re\xE7u`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : ${Oe(s.values[0])} attendu`:`Option invalide : une valeur parmi ${ee(s.values,"|")} attendue`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Trop grand : ${s.origin??"valeur"} doit ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${s.origin??"valeur"} doit \xEAtre ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Trop petit : ${s.origin} doit ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : ${s.origin} doit \xEAtre ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Jbe(){return{localeError:Kbe()}}var Qbe=()=>{let t={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return s=>{switch(s.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${s.expected}, re\xE7u ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entr\xE9e invalide : attendu ${Oe(s.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u2264":"<",a=e(s.origin);return a?`Trop grand : attendu que ${s.origin??"la valeur"} ait ${i}${s.maximum.toString()} ${a.unit}`:`Trop grand : attendu que ${s.origin??"la valeur"} soit ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u2265":">",a=e(s.origin);return a?`Trop petit : attendu que ${s.origin} ait ${i}${s.minimum.toString()} ${a.unit}`:`Trop petit : attendu que ${s.origin} soit ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${n[i.format]??s.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${s.divisor}`;case"unrecognized_keys":return`Cl\xE9${s.keys.length>1?"s":""} non reconnue${s.keys.length>1?"s":""} : ${ee(s.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${s.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${s.origin}`;default:return"Entr\xE9e invalide"}}};function Ybe(){return{localeError:Qbe()}}var Xbe=()=>{let t={string:{unit:"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u05E7\u05DC\u05D8",email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",emoji:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",date:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",time:"\u05D6\u05DE\u05DF ISO",duration:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",ipv4:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",ipv6:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",cidrv4:"\u05D8\u05D5\u05D5\u05D7 IPv4",cidrv6:"\u05D8\u05D5\u05D5\u05D7 IPv6",base64:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",base64url:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",json_string:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",e164:"\u05DE\u05E1\u05E4\u05E8 E.164",jwt:"JWT",template_literal:"\u05E7\u05DC\u05D8"};return s=>{switch(s.code){case"invalid_type":return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${s.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${Oe(s.values[0])}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()} ${a.unit??"elements"}`:`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${s.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()} ${a.unit}`:`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${s.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1"${i.prefix}"`:i.format==="ends_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${i.suffix}"`:i.format==="includes"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${i.includes}"`:i.format==="regex"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${i.pattern}`:`${n[i.format]??s.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${s.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${s.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${s.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${s.origin}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function exe(){return{localeError:Xbe()}}var txe=()=>{let t={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(s))return"t\xF6mb";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return s=>{switch(s.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${s.expected}, a kapott \xE9rt\xE9k ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${Oe(s.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`T\xFAl nagy: ${s.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${s.maximum.toString()} ${a.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${s.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} m\xE9rete t\xFAl kicsi ${i}${s.minimum.toString()} ${a.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${s.origin} t\xFAl kicsi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${n[i.format]??s.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${s.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${s.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${s.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function rxe(){return{localeError:txe()}}var nxe=()=>{let t={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak valid: diharapkan ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak valid: diharapkan ${Oe(s.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: diharapkan ${s.origin??"value"} memiliki ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: diharapkan ${s.origin??"value"} menjadi ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: diharapkan ${s.origin} memiliki ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: diharapkan ${s.origin} menjadi ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${n[i.format]??s.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${s.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${s.origin}`;default:return"Input tidak valid"}}};function sxe(){return{localeError:nxe()}}var ixe=()=>{let t={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numero";case"object":{if(Array.isArray(s))return"vettore";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input non valido: atteso ${s.expected}, ricevuto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input non valido: atteso ${Oe(s.values[0])}`:`Opzione non valida: atteso uno tra ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Troppo grande: ${s.origin??"valore"} deve avere ${i}${s.maximum.toString()} ${a.unit??"elementi"}`:`Troppo grande: ${s.origin??"valore"} deve essere ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Troppo piccolo: ${s.origin} deve avere ${i}${s.minimum.toString()} ${a.unit}`:`Troppo piccolo: ${s.origin} deve essere ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${s.divisor}`;case"unrecognized_keys":return`Chiav${s.keys.length>1?"i":"e"} non riconosciut${s.keys.length>1?"e":"a"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${s.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${s.origin}`;default:return"Input non valido"}}};function axe(){return{localeError:ixe()}}var oxe=()=>{let t={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(s))return"\u914D\u5217";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${s.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${r(s.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return s.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${Oe(s.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${ee(s.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let i=s.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",a=e(s.origin);return a?`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${a.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${s.origin??"\u5024"}\u306F${s.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let i=s.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",a=e(s.origin);return a?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${a.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${s.origin}\u306F${s.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${s.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${s.keys.length>1?"\u7FA4":""}: ${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${s.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function cxe(){return{localeError:oxe()}}var lxe=()=>{let t={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(s))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(s===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return s=>{switch(s.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${Oe(s.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()} ${a.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()} ${a.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${s.origin} ${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${s.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${ee(s.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${s.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function uxe(){return{localeError:lxe()}}var pxe=()=>{let t={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return s=>{switch(s.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${s.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${r(s.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return s.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${Oe(s.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${ee(s.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let i=s.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",a=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${s.maximum.toString()} ${i}${a}`}case"too_small":{let i=s.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",a=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",o=e(s.origin),c=o?.unit??"\uC694\uC18C";return o?`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()}${c} ${i}${a}`:`${s.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${s.minimum.toString()} ${i}${a}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${n[i.format]??s.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${s.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${ee(s.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${s.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${s.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function dxe(){return{localeError:pxe()}}var mxe=()=>{let t={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(s))return"\u043D\u0438\u0437\u0430";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return s=>{switch(s.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Invalid input: expected ${Oe(s.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${s.minimum.toString()} ${a.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${s.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${s.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${s.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function fxe(){return{localeError:mxe()}}var hxe=()=>{let t={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"nombor";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Input tidak sah: dijangka ${s.expected}, diterima ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Input tidak sah: dijangka ${Oe(s.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Terlalu besar: dijangka ${s.origin??"nilai"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"elemen"}`:`Terlalu besar: dijangka ${s.origin??"nilai"} adalah ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Terlalu kecil: dijangka ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Terlalu kecil: dijangka ${s.origin} adalah ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${n[i.format]??s.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${s.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${ee(s.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${s.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${s.origin}`;default:return"Input tidak sah"}}};function gxe(){return{localeError:hxe()}}var vxe=()=>{let t={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"getal";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return s=>{switch(s.code){case"invalid_type":return`Ongeldige invoer: verwacht ${s.expected}, ontving ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ongeldige invoer: verwacht ${Oe(s.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} ${a.unit??"elementen"} bevat`:`Te lang: verwacht dat ${s.origin??"waarde"} ${i}${s.maximum.toString()} is`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} ${a.unit} bevat`:`Te kort: verwacht dat ${s.origin} ${i}${s.minimum.toString()} is`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${n[i.format]??s.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${s.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${s.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${s.origin}`;default:return"Ongeldige invoer"}}};function yxe(){return{localeError:vxe()}}var bxe=()=>{let t={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"tall";case"object":{if(Array.isArray(s))return"liste";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`Ugyldig input: forventet ${s.expected}, fikk ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ugyldig verdi: forventet ${Oe(s.values[0])}`:`Ugyldig valg: forventet en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()} ${a.unit??"elementer"}`:`For stor(t): forventet ${s.origin??"value"} til \xE5 ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()} ${a.unit}`:`For lite(n): forventet ${s.origin} til \xE5 ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${n[i.format]??s.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${s.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${s.origin}`;default:return"Ugyldig input"}}};function xxe(){return{localeError:bxe()}}var _xe=()=>{let t={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"numara";case"object":{if(Array.isArray(s))return"saf";if(s===null)return"gayb";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return s=>{switch(s.code){case"invalid_type":return`F\xE2sit giren: umulan ${s.expected}, al\u0131nan ${r(s.input)}`;case"invalid_value":return s.values.length===1?`F\xE2sit giren: umulan ${Oe(s.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} ${a.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${s.origin??"value"}, ${i}${s.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} ${a.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${s.origin}, ${i}${s.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let i=s;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${n[i.format]??s.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${s.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${s.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function wxe(){return{localeError:_xe()}}var Sxe=()=>{let t={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(s))return"\u0627\u0631\u06D0";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return s=>{switch(s.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${s.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${r(s.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return s.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${Oe(s.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${ee(s.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${s.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${s.maximum.toString()} \u0648\u064A`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} ${a.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${s.origin} \u0628\u0627\u06CC\u062F ${i}${s.minimum.toString()} \u0648\u064A`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${n[i.format]??s.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${s.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${s.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${s.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${s.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function kxe(){return{localeError:Sxe()}}var Exe=()=>{let t={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"liczba";case"object":{if(Array.isArray(s))return"tablica";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return s=>{switch(s.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${s.expected}, otrzymano ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${Oe(s.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.maximum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${s.minimum.toString()} ${a.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${s.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${n[i.format]??s.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${s.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${s.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${s.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function Txe(){return{localeError:Exe()}}var Rxe=()=>{let t={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(s))return"array";if(s===null)return"nulo";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return s=>{switch(s.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${s.expected}, recebido ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Entrada inv\xE1lida: esperado ${Oe(s.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Muito grande: esperado que ${s.origin??"valor"} tivesse ${i}${s.maximum.toString()} ${a.unit??"elementos"}`:`Muito grande: esperado que ${s.origin??"valor"} fosse ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Muito pequeno: esperado que ${s.origin} tivesse ${i}${s.minimum.toString()} ${a.unit}`:`Muito pequeno: esperado que ${s.origin} fosse ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${n[i.format]??s.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${s.divisor}`;case"unrecognized_keys":return`Chave${s.keys.length>1?"s":""} desconhecida${s.keys.length>1?"s":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${s.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${s.origin}`;default:return"Campo inv\xE1lido"}}};function Pxe(){return{localeError:Rxe()}}function EF(t,e,r,n){let s=Math.abs(t),i=s%10,a=s%100;return a>=11&&a<=19?n:i===1?e:i>=2&&i<=4?r:n}var Ixe=()=>{let t={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${s.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${Oe(s.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);if(a){let o=Number(s.maximum),c=EF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.maximum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);if(a){let o=Number(s.minimum),c=EF(o,a.unit.one,a.unit.few,a.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${s.minimum.toString()} ${c}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${s.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${s.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0438":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${s.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function Cxe(){return{localeError:Ixe()}}var Oxe=()=>{let t={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(s))return"tabela";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return s=>{switch(s.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${s.expected}, prejeto ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${Oe(s.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} imelo ${i}${s.maximum.toString()} ${a.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${s.origin??"vrednost"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Premajhno: pri\u010Dakovano, da bo ${s.origin} imelo ${i}${s.minimum.toString()} ${a.unit}`:`Premajhno: pri\u010Dakovano, da bo ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${n[i.format]??s.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${s.divisor}`;case"unrecognized_keys":return`Neprepoznan${s.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${s.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${s.origin}`;default:return"Neveljaven vnos"}}};function jxe(){return{localeError:Oxe()}}var Axe=()=>{let t={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"antal";case"object":{if(Array.isArray(s))return"lista";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return s=>{switch(s.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${s.expected}, fick ${r(s.input)}`;case"invalid_value":return s.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${Oe(s.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`F\xF6r stor(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()} ${a.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${s.origin??"v\xE4rdet"} att ha ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()} ${a.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${s.origin??"v\xE4rdet"} att ha ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${n[i.format]??s.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${s.divisor}`;case"unrecognized_keys":return`${s.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${ee(s.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${s.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${s.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function Nxe(){return{localeError:Axe()}}var Dxe=()=>{let t={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(s))return"\u0B85\u0BA3\u0BBF";if(s===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return s=>{switch(s.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${Oe(s.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${ee(s.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} ${a.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${s.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} ${a.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${s.origin} ${i}${s.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${s.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${s.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${s.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function zxe(){return{localeError:Dxe()}}var Mxe=()=>{let t={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(s))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(s===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return s=>{switch(s.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${s.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${Oe(s.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()} ${a.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",a=e(s.origin);return a?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()} ${a.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${s.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${n[i.format]??s.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${s.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${ee(s.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${s.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function $xe(){return{localeError:Mxe()}}var Lxe=t=>{let e=typeof t;switch(e){case"number":return Number.isNaN(t)?"NaN":"number";case"object":{if(Array.isArray(t))return"array";if(t===null)return"null";if(Object.getPrototypeOf(t)!==Object.prototype&&t.constructor)return t.constructor.name}}return e},Uxe=()=>{let t={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function e(n){return t[n]??null}let r={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return n=>{switch(n.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${n.expected}, al\u0131nan ${Lxe(n.input)}`;case"invalid_value":return n.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${Oe(n.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${ee(n.values,"|")}`;case"too_big":{let s=n.inclusive?"<=":"<",i=e(n.origin);return i?`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()} ${i.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${n.origin??"de\u011Fer"} ${s}${n.maximum.toString()}`}case"too_small":{let s=n.inclusive?">=":">",i=e(n.origin);return i?`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()} ${i.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${n.origin} ${s}${n.minimum.toString()}`}case"invalid_format":{let s=n;return s.format==="starts_with"?`Ge\xE7ersiz metin: "${s.prefix}" ile ba\u015Flamal\u0131`:s.format==="ends_with"?`Ge\xE7ersiz metin: "${s.suffix}" ile bitmeli`:s.format==="includes"?`Ge\xE7ersiz metin: "${s.includes}" i\xE7ermeli`:s.format==="regex"?`Ge\xE7ersiz metin: ${s.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${r[s.format]??n.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${n.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${n.keys.length>1?"lar":""}: ${ee(n.keys,", ")}`;case"invalid_key":return`${n.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${n.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function qxe(){return{localeError:Uxe()}}var Fxe=()=>{let t={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(s))return"\u043C\u0430\u0441\u0438\u0432";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return s=>{switch(s.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${s.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${Oe(s.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${s.origin} \u0431\u0443\u0434\u0435 ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${s.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${s.keys.length>1?"\u0456":""}: ${ee(s.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${s.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${s.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Hxe(){return{localeError:Fxe()}}var Bxe=()=>{let t={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(s))return"\u0622\u0631\u06D2";if(s===null)return"\u0646\u0644";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return s=>{switch(s.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${s.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${r(s.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return s.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${Oe(s.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${ee(s.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${s.maximum.toString()} ${a.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${s.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${s.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u06D2 ${i}${s.minimum.toString()} ${a.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${s.origin} \u06A9\u0627 ${i}${s.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${s.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${s.keys.length>1?"\u0632":""}: ${ee(s.keys,"\u060C ")}`;case"invalid_key":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${s.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function Wxe(){return{localeError:Bxe()}}var Zxe=()=>{let t={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(s))return"m\u1EA3ng";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return s=>{switch(s.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${s.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${Oe(s.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${a.verb} ${i}${s.maximum.toString()} ${a.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${s.origin??"gi\xE1 tr\u1ECB"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${a.verb} ${i}${s.minimum.toString()} ${a.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${n[i.format]??s.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${s.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${ee(s.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${s.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function Gxe(){return{localeError:Zxe()}}var Vxe=()=>{let t={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(s))return"\u6570\u7EC4";if(s===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${s.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${Oe(s.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()} ${a.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${s.origin??"\u503C"} ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()} ${a.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${s.origin} ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${n[i.format]??s.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${s.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${ee(s.keys,", ")}`;case"invalid_key":return`${s.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${s.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function Kxe(){return{localeError:Vxe()}}var Jxe=()=>{let t={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function e(s){return t[s]??null}let r=s=>{let i=typeof s;switch(i){case"number":return Number.isNaN(s)?"NaN":"number";case"object":{if(Array.isArray(s))return"array";if(s===null)return"null";if(Object.getPrototypeOf(s)!==Object.prototype&&s.constructor)return s.constructor.name}}return i},n={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return s=>{switch(s.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${s.expected}\uFF0C\u4F46\u6536\u5230 ${r(s.input)}`;case"invalid_value":return s.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${Oe(s.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${ee(s.values,"|")}`;case"too_big":{let i=s.inclusive?"<=":"<",a=e(s.origin);return a?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()} ${a.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${s.origin??"\u503C"} \u61C9\u70BA ${i}${s.maximum.toString()}`}case"too_small":{let i=s.inclusive?">=":">",a=e(s.origin);return a?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()} ${a.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${s.origin} \u61C9\u70BA ${i}${s.minimum.toString()}`}case"invalid_format":{let i=s;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${n[i.format]??s.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${s.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${s.keys.length>1?"\u5011":""}\uFF1A${ee(s.keys,"\u3001")}`;case"invalid_key":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${s.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function Qxe(){return{localeError:Jxe()}}var H5=Symbol("ZodOutput"),B5=Symbol("ZodInput"),Fd=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];if(this._map.set(e,n),n&&typeof n=="object"&&"id"in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}remove(e){return this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};return delete n.id,{...n,...this._map.get(e)}}return this._map.get(e)}has(e){return this._map.has(e)}};function jT(){return new Fd}var Ya=jT();function W5(t,e){return new t({type:"string",...J(e)})}function Z5(t,e){return new t({type:"string",coerce:!0,...J(e)})}function AT(t,e){return new t({type:"string",format:"email",check:"string_format",abort:!1,...J(e)})}function Kv(t,e){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...J(e)})}function NT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...J(e)})}function DT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(e)})}function zT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(e)})}function MT(t,e){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(e)})}function $T(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...J(e)})}function LT(t,e){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...J(e)})}function UT(t,e){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(e)})}function qT(t,e){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...J(e)})}function FT(t,e){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(e)})}function HT(t,e){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...J(e)})}function BT(t,e){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...J(e)})}function WT(t,e){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(e)})}function ZT(t,e){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(e)})}function GT(t,e){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(e)})}function VT(t,e){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(e)})}function KT(t,e){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(e)})}function JT(t,e){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...J(e)})}function QT(t,e){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...J(e)})}function YT(t,e){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...J(e)})}function XT(t,e){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...J(e)})}var G5={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function V5(t,e){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(e)})}function K5(t,e){return new t({type:"string",format:"date",check:"string_format",...J(e)})}function J5(t,e){return new t({type:"string",format:"time",check:"string_format",precision:null,...J(e)})}function Q5(t,e){return new t({type:"string",format:"duration",check:"string_format",...J(e)})}function Y5(t,e){return new t({type:"number",checks:[],...J(e)})}function X5(t,e){return new t({type:"number",coerce:!0,checks:[],...J(e)})}function eH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...J(e)})}function tH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...J(e)})}function rH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...J(e)})}function nH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...J(e)})}function sH(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...J(e)})}function iH(t,e){return new t({type:"boolean",...J(e)})}function aH(t,e){return new t({type:"boolean",coerce:!0,...J(e)})}function oH(t,e){return new t({type:"bigint",...J(e)})}function cH(t,e){return new t({type:"bigint",coerce:!0,...J(e)})}function lH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...J(e)})}function uH(t,e){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...J(e)})}function pH(t,e){return new t({type:"symbol",...J(e)})}function dH(t,e){return new t({type:"undefined",...J(e)})}function mH(t,e){return new t({type:"null",...J(e)})}function fH(t){return new t({type:"any"})}function Jv(t){return new t({type:"unknown"})}function hH(t,e){return new t({type:"never",...J(e)})}function gH(t,e){return new t({type:"void",...J(e)})}function vH(t,e){return new t({type:"date",...J(e)})}function yH(t,e){return new t({type:"date",coerce:!0,...J(e)})}function bH(t,e){return new t({type:"nan",...J(e)})}function so(t,e){return new xT({check:"less_than",...J(e),value:t,inclusive:!1})}function vs(t,e){return new xT({check:"less_than",...J(e),value:t,inclusive:!0})}function io(t,e){return new _T({check:"greater_than",...J(e),value:t,inclusive:!1})}function Tn(t,e){return new _T({check:"greater_than",...J(e),value:t,inclusive:!0})}function xH(t){return io(0,t)}function _H(t){return so(0,t)}function wH(t){return vs(0,t)}function SH(t){return Tn(0,t)}function Hd(t,e){return new _9({check:"multiple_of",...J(e),value:t})}function fy(t,e){return new k9({check:"max_size",...J(e),maximum:t})}function Bd(t,e){return new E9({check:"min_size",...J(e),minimum:t})}function eR(t,e){return new T9({check:"size_equals",...J(e),size:t})}function hy(t,e){return new R9({check:"max_length",...J(e),maximum:t})}function ol(t,e){return new P9({check:"min_length",...J(e),minimum:t})}function gy(t,e){return new I9({check:"length_equals",...J(e),length:t})}function tR(t,e){return new C9({check:"string_format",format:"regex",...J(e),pattern:t})}function rR(t){return new O9({check:"string_format",format:"lowercase",...J(t)})}function nR(t){return new j9({check:"string_format",format:"uppercase",...J(t)})}function sR(t,e){return new A9({check:"string_format",format:"includes",...J(e),includes:t})}function iR(t,e){return new N9({check:"string_format",format:"starts_with",...J(e),prefix:t})}function aR(t,e){return new D9({check:"string_format",format:"ends_with",...J(e),suffix:t})}function kH(t,e,r){return new z9({check:"property",property:t,schema:e,...J(r)})}function oR(t,e){return new M9({check:"mime_type",mime:t,...J(e)})}function lo(t){return new $9({check:"overwrite",tx:t})}function cR(t){return lo(e=>e.normalize(t))}function lR(){return lo(t=>t.trim())}function uR(){return lo(t=>t.toLowerCase())}function pR(){return lo(t=>t.toUpperCase())}function dR(t,e,r){return new t({type:"array",element:e,...J(r)})}function Yxe(t,e,r){return new t({type:"union",options:e,...J(r)})}function Xxe(t,e,r,n){return new t({type:"union",options:r,discriminator:e,...J(n)})}function e_e(t,e,r){return new t({type:"intersection",left:e,right:r})}function EH(t,e,r,n){let s=r instanceof Pe;return new t({type:"tuple",items:e,rest:s?r:null,...J(s?n:r)})}function t_e(t,e,r,n){return new t({type:"record",keyType:e,valueType:r,...J(n)})}function r_e(t,e,r,n){return new t({type:"map",keyType:e,valueType:r,...J(n)})}function n_e(t,e,r){return new t({type:"set",valueType:e,...J(r)})}function s_e(t,e,r){let n=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new t({type:"enum",entries:n,...J(r)})}function i_e(t,e,r){return new t({type:"enum",entries:e,...J(r)})}function a_e(t,e,r){return new t({type:"literal",values:Array.isArray(e)?e:[e],...J(r)})}function TH(t,e){return new t({type:"file",...J(e)})}function o_e(t,e){return new t({type:"transform",transform:e})}function c_e(t,e){return new t({type:"optional",innerType:e})}function l_e(t,e){return new t({type:"nullable",innerType:e})}function u_e(t,e,r){return new t({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():r}})}function p_e(t,e,r){return new t({type:"nonoptional",innerType:e,...J(r)})}function d_e(t,e){return new t({type:"success",innerType:e})}function m_e(t,e,r){return new t({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}function f_e(t,e,r){return new t({type:"pipe",in:e,out:r})}function h_e(t,e){return new t({type:"readonly",innerType:e})}function g_e(t,e,r){return new t({type:"template_literal",parts:e,...J(r)})}function v_e(t,e){return new t({type:"lazy",getter:e})}function y_e(t,e){return new t({type:"promise",innerType:e})}function RH(t,e,r){let n=J(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}function PH(t,e,r){return new t({type:"custom",check:"custom",fn:e,...J(r)})}function IH(t,e){let r=J(e),n=r.truthy??["true","1","yes","on","y","enabled"],s=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(d=>typeof d=="string"?d.toLowerCase():d),s=s.map(d=>typeof d=="string"?d.toLowerCase():d));let i=new Set(n),a=new Set(s),o=t.Pipe??CT,c=t.Boolean??kT,l=t.String??Kd,u=new(t.Transform??IT)({type:"transform",transform:(d,m)=>{let f=d;return r.case!=="sensitive"&&(f=f.toLowerCase()),i.has(f)?!0:a.has(f)?!1:(m.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...a],input:m.value,inst:u}),{})},error:r.error}),p=new o({type:"pipe",in:new l({type:"string",error:r.error}),out:u,error:r.error});return new o({type:"pipe",in:p,out:new c({type:"boolean",error:r.error}),error:r.error})}function CH(t,e,r,n={}){let s=J(n),i={...J(n),check:"string_format",type:"string",format:e,fn:typeof r=="function"?r:a=>r.test(a),...s};return r instanceof RegExp&&(i.pattern=r),new t(i)}var Qv=class{constructor(e){this._def=e,this.def=e}implement(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=(...n)=>{let s=this._def.input?Wv(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=e(...s);return this._def.output?Wv(this._def.output,i,void 0,{callee:r}):i};return r}implementAsync(e){if(typeof e!="function")throw Error("implement() must be called with a function");let r=async(...n)=>{let s=this._def.input?await Zv(this._def.input,n,void 0,{callee:r}):n;if(!Array.isArray(s))throw Error("Invalid arguments schema: not an array or tuple schema.");let i=await e(...s);return this._def.output?Zv(this._def.output,i,void 0,{callee:r}):i};return r}input(...e){let r=this.constructor;return Array.isArray(e[0])?new r({type:"function",input:new my({type:"tuple",items:e[0],rest:e[1]}),output:this._def.output}):new r({type:"function",input:e[0],output:this._def.output})}output(e){return new this.constructor({type:"function",input:this._def.input,output:e})}};function OH(t){return new Qv({type:"function",input:Array.isArray(t?.input)?EH(my,t?.input):t?.input??dR(TT,Jv(Vv)),output:t?.output??Jv(Vv)})}var Wd=class{constructor(e){this.counter=0,this.metadataRegistry=e?.metadata??Ya,this.target=e?.target??"draft-2020-12",this.unrepresentable=e?.unrepresentable??"throw",this.override=e?.override??(()=>{}),this.io=e?.io??"output",this.seen=new Map}process(e,r={path:[],schemaPath:[]}){var n;let s=e._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},a=this.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:r.path};this.seen.set(e,o);let c=e._zod.toJSONSchema?.();if(c)o.schema=c;else{let u={...r,schemaPath:[...r.schemaPath,e],path:r.path},p=e._zod.parent;if(p)o.ref=p,this.process(p,u),this.seen.get(p).isParent=!0;else{let d=o.schema;switch(s.type){case"string":{let m=d;m.type="string";let{minimum:f,maximum:v,format:g,patterns:h,contentEncoding:y}=e._zod.bag;if(typeof f=="number"&&(m.minLength=f),typeof v=="number"&&(m.maxLength=v),g&&(m.format=i[g]??g,m.format===""&&delete m.format),y&&(m.contentEncoding=y),h&&h.size>0){let b=[...h];b.length===1?m.pattern=b[0].source:b.length>1&&(o.schema.allOf=[...b.map(x=>({...this.target==="draft-7"?{type:"string"}:{},pattern:x.source}))])}break}case"number":{let m=d,{minimum:f,maximum:v,format:g,multipleOf:h,exclusiveMaximum:y,exclusiveMinimum:b}=e._zod.bag;typeof g=="string"&&g.includes("int")?m.type="integer":m.type="number",typeof b=="number"&&(m.exclusiveMinimum=b),typeof f=="number"&&(m.minimum=f,typeof b=="number"&&(b>=f?delete m.minimum:delete m.exclusiveMinimum)),typeof y=="number"&&(m.exclusiveMaximum=y),typeof v=="number"&&(m.maximum=v,typeof y=="number"&&(y<=v?delete m.maximum:delete m.exclusiveMaximum)),typeof h=="number"&&(m.multipleOf=h);break}case"boolean":{let m=d;m.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{d.type="null";break}case"any":break;case"unknown":break;case"undefined":case"never":{d.not={};break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let m=d,{minimum:f,maximum:v}=e._zod.bag;typeof f=="number"&&(m.minItems=f),typeof v=="number"&&(m.maxItems=v),m.type="array",m.items=this.process(s.element,{...u,path:[...u.path,"items"]});break}case"object":{let m=d;m.type="object",m.properties={};let f=s.shape;for(let h in f)m.properties[h]=this.process(f[h],{...u,path:[...u.path,"properties",h]});let v=new Set(Object.keys(f)),g=new Set([...v].filter(h=>{let y=s.shape[h]._zod;return this.io==="input"?y.optin===void 0:y.optout===void 0}));g.size>0&&(m.required=Array.from(g)),s.catchall?._zod.def.type==="never"?m.additionalProperties=!1:s.catchall?s.catchall&&(m.additionalProperties=this.process(s.catchall,{...u,path:[...u.path,"additionalProperties"]})):this.io==="output"&&(m.additionalProperties=!1);break}case"union":{let m=d;m.anyOf=s.options.map((f,v)=>this.process(f,{...u,path:[...u.path,"anyOf",v]}));break}case"intersection":{let m=d,f=this.process(s.left,{...u,path:[...u.path,"allOf",0]}),v=this.process(s.right,{...u,path:[...u.path,"allOf",1]}),g=y=>"allOf"in y&&Object.keys(y).length===1,h=[...g(f)?f.allOf:[f],...g(v)?v.allOf:[v]];m.allOf=h;break}case"tuple":{let m=d;m.type="array";let f=s.items.map((h,y)=>this.process(h,{...u,path:[...u.path,"prefixItems",y]}));if(this.target==="draft-2020-12"?m.prefixItems=f:m.items=f,s.rest){let h=this.process(s.rest,{...u,path:[...u.path,"items"]});this.target==="draft-2020-12"?m.items=h:m.additionalItems=h}s.rest&&(m.items=this.process(s.rest,{...u,path:[...u.path,"items"]}));let{minimum:v,maximum:g}=e._zod.bag;typeof v=="number"&&(m.minItems=v),typeof g=="number"&&(m.maxItems=g);break}case"record":{let m=d;m.type="object",m.propertyNames=this.process(s.keyType,{...u,path:[...u.path,"propertyNames"]}),m.additionalProperties=this.process(s.valueType,{...u,path:[...u.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let m=d,f=aT(s.entries);f.every(v=>typeof v=="number")&&(m.type="number"),f.every(v=>typeof v=="string")&&(m.type="string"),m.enum=f;break}case"literal":{let m=d,f=[];for(let v of s.values)if(v===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof v=="bigint"){if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");f.push(Number(v))}else f.push(v);if(f.length!==0)if(f.length===1){let v=f[0];m.type=v===null?"null":typeof v,m.const=v}else f.every(v=>typeof v=="number")&&(m.type="number"),f.every(v=>typeof v=="string")&&(m.type="string"),f.every(v=>typeof v=="boolean")&&(m.type="string"),f.every(v=>v===null)&&(m.type="null"),m.enum=f;break}case"file":{let m=d,f={type:"string",format:"binary",contentEncoding:"binary"},{minimum:v,maximum:g,mime:h}=e._zod.bag;v!==void 0&&(f.minLength=v),g!==void 0&&(f.maxLength=g),h?h.length===1?(f.contentMediaType=h[0],Object.assign(m,f)):m.anyOf=h.map(y=>({...f,contentMediaType:y})):Object.assign(m,f);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let m=this.process(s.innerType,u);d.anyOf=[m,{type:"null"}];break}case"nonoptional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"success":{let m=d;m.type="boolean";break}case"default":{this.process(s.innerType,u),o.ref=s.innerType,d.default=JSON.parse(JSON.stringify(s.defaultValue));break}case"prefault":{this.process(s.innerType,u),o.ref=s.innerType,this.io==="input"&&(d._prefault=JSON.parse(JSON.stringify(s.defaultValue)));break}case"catch":{this.process(s.innerType,u),o.ref=s.innerType;let m;try{m=s.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}d.default=m;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let m=d,f=e._zod.pattern;if(!f)throw Error("Pattern not found in template literal");m.type="string",m.pattern=f.source;break}case"pipe":{let m=this.io==="input"?s.in._zod.def.type==="transform"?s.out:s.in:s.out;this.process(m,u),o.ref=m;break}case"readonly":{this.process(s.innerType,u),o.ref=s.innerType,d.readOnly=!0;break}case"promise":{this.process(s.innerType,u),o.ref=s.innerType;break}case"optional":{this.process(s.innerType,u),o.ref=s.innerType;break}case"lazy":{let m=e._zod.innerType;this.process(m,u),o.ref=m;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}default:}}}let l=this.metadataRegistry.get(e);return l&&Object.assign(o.schema,l),this.io==="input"&&ir(e)&&(delete o.schema.examples,delete o.schema.default),this.io==="input"&&o.schema._prefault&&((n=o.schema).default??(n.default=o.schema._prefault)),delete o.schema._prefault,this.seen.get(e).schema}emit(e,r){let n={cycles:r?.cycles??"ref",reused:r?.reused??"inline",external:r?.external??void 0},s=this.seen.get(e);if(!s)throw Error("Unprocessed schema. This is a bug in Zod.");let i=u=>{let p=this.target==="draft-2020-12"?"$defs":"definitions";if(n.external){let f=n.external.registry.get(u[0])?.id;if(f)return{ref:n.external.uri(f)};let v=u[1].defId??u[1].schema.id??`schema${this.counter++}`;return u[1].defId=v,{defId:v,ref:`${n.external.uri("__shared")}#/${p}/${v}`}}if(u[1]===s)return{ref:"#"};let d=`#/${p}/`,m=u[1].schema.id??`__schema${this.counter++}`;return{defId:m,ref:d+m}},a=u=>{if(u[1].schema.$ref)return;let p=u[1],{ref:d,defId:m}=i(u);p.def={...p.schema},m&&(p.defId=m);let f=p.schema;for(let v in f)delete f[v];f.$ref=d};for(let u of this.seen.entries()){let p=u[1];if(e===u[0]){a(u);continue}if(n.external){let d=n.external.registry.get(u[0])?.id;if(e!==u[0]&&d){a(u);continue}}if(this.metadataRegistry.get(u[0])?.id){a(u);continue}if(p.cycle){if(n.cycles==="throw")throw Error(`Cycle detected: #/${p.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);n.cycles==="ref"&&a(u);continue}if(p.count>1&&n.reused==="ref"){a(u);continue}}let o=(u,p)=>{let d=this.seen.get(u),m=d.def??d.schema,f={...m};if(d.ref===null)return;let v=d.ref;if(d.ref=null,v){o(v,p);let g=this.seen.get(v).schema;g.$ref&&p.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(g)):(Object.assign(m,g),Object.assign(m,f))}d.isParent||this.override({zodSchema:u,jsonSchema:m,path:d.path??[]})};for(let u of[...this.seen.entries()].reverse())o(u[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,s.def);let l=n.external?.defs??{};for(let u of this.seen.entries()){let p=u[1];p.def&&p.defId&&(l[p.defId]=p.def)}!n.external&&Object.keys(l).length>0&&(this.target==="draft-2020-12"?c.$defs=l:c.definitions=l);try{return JSON.parse(JSON.stringify(c))}catch{throw Error("Error converting schema to JSON.")}}};function jH(t,e){if(t instanceof Fd){let n=new Wd(e),s={};for(let o of t._idmap.entries()){let[c,l]=o;n.process(l)}let i={},a={registry:t,uri:e?.uri||(o=>o),defs:s};for(let o of t._idmap.entries()){let[c,l]=o;i[c]=n.emit(l,{...e,external:a})}if(Object.keys(s).length>0){let o=n.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[o]:s}}return{schemas:i}}let r=new Wd(e);return r.process(t),r.emit(t,e)}function ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;switch(n.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return ir(n.element,r);case"object":{for(let s in n.shape)if(ir(n.shape[s],r))return!0;return!1}case"union":{for(let s of n.options)if(ir(s,r))return!0;return!1}case"intersection":return ir(n.left,r)||ir(n.right,r);case"tuple":{for(let s of n.items)if(ir(s,r))return!0;return!!(n.rest&&ir(n.rest,r))}case"record":return ir(n.keyType,r)||ir(n.valueType,r);case"map":return ir(n.keyType,r)||ir(n.valueType,r);case"set":return ir(n.valueType,r);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ir(n.innerType,r);case"lazy":return ir(n.getter(),r);case"default":return ir(n.innerType,r);case"prefault":return ir(n.innerType,r);case"custom":return!1;case"transform":return!0;case"pipe":return ir(n.in,r)||ir(n.out,r);case"success":return!1;case"catch":return!1;default:}throw Error(`Unknown schema type: ${n.type}`)}var b_e={},x_e=A("ZodMiniType",(t,e)=>{if(!t._zod)throw Error("Uninitialized schema in ZodMiniType.");Pe.init(t,e),t.def=e,t.parse=(r,n)=>Wv(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>hT(t,r,n),t.parseAsync=async(r,n)=>Zv(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>vT(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>_s(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t)}),R4e=A("ZodMiniObject",(t,e)=>{RT.init(t,e),x_e.init(t,e),Be.defineLazy(t,"shape",()=>e.shape)});var qc={};io(qc,{xid:()=>N_e,void:()=>t0e,uuidv7:()=>R_e,uuidv6:()=>T_e,uuidv4:()=>E_e,uuid:()=>k_e,url:()=>P_e,uppercase:()=>nR,unknown:()=>$t,union:()=>vt,undefined:()=>X_e,ulid:()=>A_e,uint64:()=>Q_e,uint32:()=>V_e,tuple:()=>i0e,trim:()=>lR,treeifyError:()=>U8,transform:()=>FR,toUpperCase:()=>pR,toLowerCase:()=>uR,toJSONSchema:()=>jH,templateLiteral:()=>f0e,symbol:()=>Y_e,superRefine:()=>S3,success:()=>d0e,stringbool:()=>v0e,stringFormat:()=>B_e,string:()=>U,strictObject:()=>s0e,startsWith:()=>iR,size:()=>eR,setErrorMap:()=>x0e,set:()=>c0e,safeParseAsync:()=>qH,safeParse:()=>UH,registry:()=>jT,regexes:()=>yT,regex:()=>tR,refine:()=>w3,record:()=>Ot,readonly:()=>h3,property:()=>kH,promise:()=>h0e,prettifyError:()=>F8,preprocess:()=>ZR,prefault:()=>c3,positive:()=>xH,pipe:()=>ey,partialRecord:()=>a0e,parseAsync:()=>LH,parse:()=>$H,overwrite:()=>co,optional:()=>Lt,object:()=>oe,number:()=>mt,nullish:()=>p0e,nullable:()=>Xv,null:()=>_y,normalize:()=>cR,nonpositive:()=>wH,nonoptional:()=>l3,nonnegative:()=>SH,never:()=>wy,negative:()=>_H,nativeEnum:()=>l0e,nanoid:()=>C_e,nan:()=>m0e,multipleOf:()=>Hd,minSize:()=>Bd,minLength:()=>ol,mime:()=>oR,maxSize:()=>fy,maxLength:()=>hy,map:()=>o0e,lte:()=>vs,lt:()=>no,lowercase:()=>rR,looseObject:()=>Vr,locales:()=>OT,literal:()=>de,length:()=>gy,lazy:()=>y3,ksuid:()=>D_e,keyof:()=>n0e,jwt:()=>H_e,json:()=>y0e,iso:()=>mR,ipv6:()=>M_e,ipv4:()=>z_e,intersection:()=>ky,int64:()=>J_e,int32:()=>G_e,int:()=>KE,instanceof:()=>g0e,includes:()=>sR,guid:()=>S_e,gte:()=>Tn,gt:()=>so,globalRegistry:()=>Qa,getErrorMap:()=>_0e,function:()=>OH,formatError:()=>pT,float64:()=>Z_e,float32:()=>W_e,flattenError:()=>uT,file:()=>u0e,enum:()=>vn,endsWith:()=>aR,emoji:()=>I_e,email:()=>w_e,e164:()=>F_e,discriminatedUnion:()=>LR,date:()=>r0e,custom:()=>_3,cuid2:()=>j_e,cuid:()=>O_e,core:()=>P8,config:()=>Qr,coerce:()=>k3,clone:()=>_s,cidrv6:()=>L_e,cidrv4:()=>$_e,check:()=>x3,catch:()=>d3,boolean:()=>ar,bigint:()=>K_e,base64url:()=>q_e,base64:()=>U_e,array:()=>We,any:()=>e0e,_default:()=>a3,_ZodString:()=>yR,ZodXID:()=>TR,ZodVoid:()=>KH,ZodUnknown:()=>GH,ZodUnion:()=>$R,ZodUndefined:()=>BH,ZodUUID:()=>di,ZodURL:()=>xR,ZodULID:()=>ER,ZodType:()=>Me,ZodTuple:()=>XH,ZodTransform:()=>qR,ZodTemplateLiteral:()=>g3,ZodSymbol:()=>HH,ZodSuccess:()=>u3,ZodStringFormat:()=>jt,ZodString:()=>vy,ZodSet:()=>t3,ZodRecord:()=>UR,ZodRealError:()=>Jd,ZodReadonly:()=>f3,ZodPromise:()=>b3,ZodPrefault:()=>o3,ZodPipe:()=>WR,ZodOptional:()=>HR,ZodObject:()=>Sy,ZodNumberFormat:()=>ml,ZodNumber:()=>yy,ZodNullable:()=>s3,ZodNull:()=>WH,ZodNonOptional:()=>BR,ZodNever:()=>VH,ZodNanoID:()=>wR,ZodNaN:()=>m3,ZodMap:()=>e3,ZodLiteral:()=>r3,ZodLazy:()=>v3,ZodKSUID:()=>RR,ZodJWT:()=>DR,ZodIssueCode:()=>b0e,ZodIntersection:()=>YH,ZodISOTime:()=>gR,ZodISODuration:()=>vR,ZodISODateTime:()=>fR,ZodISODate:()=>hR,ZodIPv6:()=>IR,ZodIPv4:()=>PR,ZodGUID:()=>Yv,ZodFile:()=>n3,ZodError:()=>__e,ZodEnum:()=>Zd,ZodEmoji:()=>_R,ZodEmail:()=>bR,ZodE164:()=>NR,ZodDiscriminatedUnion:()=>QH,ZodDefault:()=>i3,ZodDate:()=>MR,ZodCustomStringFormat:()=>FH,ZodCustom:()=>Ey,ZodCatch:()=>p3,ZodCUID2:()=>kR,ZodCUID:()=>SR,ZodCIDRv6:()=>OR,ZodCIDRv4:()=>CR,ZodBoolean:()=>by,ZodBigIntFormat:()=>zR,ZodBigInt:()=>xy,ZodBase64URL:()=>AR,ZodBase64:()=>jR,ZodArray:()=>JH,ZodAny:()=>ZH,TimePrecision:()=>G5,NEVER:()=>I8,$output:()=>H5,$input:()=>B5,$brand:()=>C8});var mR={};io(mR,{time:()=>DH,duration:()=>zH,datetime:()=>AH,date:()=>NH,ZodISOTime:()=>gR,ZodISODuration:()=>vR,ZodISODateTime:()=>fR,ZodISODate:()=>hR});var fR=A("ZodISODateTime",(t,e)=>{Q9.init(t,e),jt.init(t,e)});function AH(t){return V5(fR,t)}var hR=A("ZodISODate",(t,e)=>{Y9.init(t,e),jt.init(t,e)});function NH(t){return K5(hR,t)}var gR=A("ZodISOTime",(t,e)=>{X9.init(t,e),jt.init(t,e)});function DH(t){return J5(gR,t)}var vR=A("ZodISODuration",(t,e)=>{e5.init(t,e),jt.init(t,e)});function zH(t){return Q5(vR,t)}var MH=(t,e)=>{lT.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>pT(t,r)},flatten:{value:r=>uT(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},__e=A("ZodError",MH),Jd=A("ZodError",MH,{Parent:Error}),$H=dT(Jd),LH=mT(Jd),UH=fT(Jd),qH=gT(Jd),Me=A("ZodType",(t,e)=>(Pe.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>_s(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>$H(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>UH(t,r,n),t.parseAsync=async(r,n)=>LH(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>qH(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(w3(r,n)),t.superRefine=r=>t.check(S3(r)),t.overwrite=r=>t.check(co(r)),t.optional=()=>Lt(t),t.nullable=()=>Xv(t),t.nullish=()=>Lt(Xv(t)),t.nonoptional=r=>l3(t,r),t.array=()=>We(t),t.or=r=>vt([t,r]),t.and=r=>ky(t,r),t.transform=r=>ey(t,FR(r)),t.default=r=>a3(t,r),t.prefault=r=>c3(t,r),t.catch=r=>d3(t,r),t.pipe=r=>ey(t,r),t.readonly=()=>h3(t),t.describe=r=>{let n=t.clone();return Qa.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Qa.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Qa.get(t);let n=t.clone();return Qa.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),yR=A("_ZodString",(t,e)=>{Kd.init(t,e),Me.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(tR(...n)),t.includes=(...n)=>t.check(sR(...n)),t.startsWith=(...n)=>t.check(iR(...n)),t.endsWith=(...n)=>t.check(aR(...n)),t.min=(...n)=>t.check(ol(...n)),t.max=(...n)=>t.check(hy(...n)),t.length=(...n)=>t.check(gy(...n)),t.nonempty=(...n)=>t.check(ol(1,...n)),t.lowercase=n=>t.check(rR(n)),t.uppercase=n=>t.check(nR(n)),t.trim=()=>t.check(lR()),t.normalize=(...n)=>t.check(cR(...n)),t.toLowerCase=()=>t.check(uR()),t.toUpperCase=()=>t.check(pR())}),vy=A("ZodString",(t,e)=>{Kd.init(t,e),yR.init(t,e),t.email=r=>t.check(AT(bR,r)),t.url=r=>t.check($T(xR,r)),t.jwt=r=>t.check(XT(DR,r)),t.emoji=r=>t.check(LT(_R,r)),t.guid=r=>t.check(Kv(Yv,r)),t.uuid=r=>t.check(NT(di,r)),t.uuidv4=r=>t.check(DT(di,r)),t.uuidv6=r=>t.check(zT(di,r)),t.uuidv7=r=>t.check(MT(di,r)),t.nanoid=r=>t.check(UT(wR,r)),t.guid=r=>t.check(Kv(Yv,r)),t.cuid=r=>t.check(qT(SR,r)),t.cuid2=r=>t.check(FT(kR,r)),t.ulid=r=>t.check(HT(ER,r)),t.base64=r=>t.check(JT(jR,r)),t.base64url=r=>t.check(QT(AR,r)),t.xid=r=>t.check(BT(TR,r)),t.ksuid=r=>t.check(WT(RR,r)),t.ipv4=r=>t.check(ZT(PR,r)),t.ipv6=r=>t.check(GT(IR,r)),t.cidrv4=r=>t.check(VT(CR,r)),t.cidrv6=r=>t.check(KT(OR,r)),t.e164=r=>t.check(YT(NR,r)),t.datetime=r=>t.check(AH(r)),t.date=r=>t.check(NH(r)),t.time=r=>t.check(DH(r)),t.duration=r=>t.check(zH(r))});function U(t){return W5(vy,t)}var jt=A("ZodStringFormat",(t,e)=>{Et.init(t,e),yR.init(t,e)}),bR=A("ZodEmail",(t,e)=>{F9.init(t,e),jt.init(t,e)});function w_e(t){return AT(bR,t)}var Yv=A("ZodGUID",(t,e)=>{U9.init(t,e),jt.init(t,e)});function S_e(t){return Kv(Yv,t)}var di=A("ZodUUID",(t,e)=>{q9.init(t,e),jt.init(t,e)});function k_e(t){return NT(di,t)}function E_e(t){return DT(di,t)}function T_e(t){return zT(di,t)}function R_e(t){return MT(di,t)}var xR=A("ZodURL",(t,e)=>{H9.init(t,e),jt.init(t,e)});function P_e(t){return $T(xR,t)}var _R=A("ZodEmoji",(t,e)=>{B9.init(t,e),jt.init(t,e)});function I_e(t){return LT(_R,t)}var wR=A("ZodNanoID",(t,e)=>{W9.init(t,e),jt.init(t,e)});function C_e(t){return UT(wR,t)}var SR=A("ZodCUID",(t,e)=>{Z9.init(t,e),jt.init(t,e)});function O_e(t){return qT(SR,t)}var kR=A("ZodCUID2",(t,e)=>{G9.init(t,e),jt.init(t,e)});function j_e(t){return FT(kR,t)}var ER=A("ZodULID",(t,e)=>{V9.init(t,e),jt.init(t,e)});function A_e(t){return HT(ER,t)}var TR=A("ZodXID",(t,e)=>{K9.init(t,e),jt.init(t,e)});function N_e(t){return BT(TR,t)}var RR=A("ZodKSUID",(t,e)=>{J9.init(t,e),jt.init(t,e)});function D_e(t){return WT(RR,t)}var PR=A("ZodIPv4",(t,e)=>{t5.init(t,e),jt.init(t,e)});function z_e(t){return ZT(PR,t)}var IR=A("ZodIPv6",(t,e)=>{r5.init(t,e),jt.init(t,e)});function M_e(t){return GT(IR,t)}var CR=A("ZodCIDRv4",(t,e)=>{n5.init(t,e),jt.init(t,e)});function $_e(t){return VT(CR,t)}var OR=A("ZodCIDRv6",(t,e)=>{s5.init(t,e),jt.init(t,e)});function L_e(t){return KT(OR,t)}var jR=A("ZodBase64",(t,e)=>{i5.init(t,e),jt.init(t,e)});function U_e(t){return JT(jR,t)}var AR=A("ZodBase64URL",(t,e)=>{o5.init(t,e),jt.init(t,e)});function q_e(t){return QT(AR,t)}var NR=A("ZodE164",(t,e)=>{c5.init(t,e),jt.init(t,e)});function F_e(t){return YT(NR,t)}var DR=A("ZodJWT",(t,e)=>{u5.init(t,e),jt.init(t,e)});function H_e(t){return XT(DR,t)}var FH=A("ZodCustomStringFormat",(t,e)=>{p5.init(t,e),jt.init(t,e)});function B_e(t,e,r={}){return CH(FH,t,e,r)}var yy=A("ZodNumber",(t,e)=>{ST.init(t,e),Me.init(t,e),t.gt=(n,s)=>t.check(so(n,s)),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.lt=(n,s)=>t.check(no(n,s)),t.lte=(n,s)=>t.check(vs(n,s)),t.max=(n,s)=>t.check(vs(n,s)),t.int=n=>t.check(KE(n)),t.safe=n=>t.check(KE(n)),t.positive=n=>t.check(so(0,n)),t.nonnegative=n=>t.check(Tn(0,n)),t.negative=n=>t.check(no(0,n)),t.nonpositive=n=>t.check(vs(0,n)),t.multipleOf=(n,s)=>t.check(Hd(n,s)),t.step=(n,s)=>t.check(Hd(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function mt(t){return Y5(yy,t)}var ml=A("ZodNumberFormat",(t,e)=>{d5.init(t,e),yy.init(t,e)});function KE(t){return eH(ml,t)}function W_e(t){return tH(ml,t)}function Z_e(t){return rH(ml,t)}function G_e(t){return nH(ml,t)}function V_e(t){return sH(ml,t)}var by=A("ZodBoolean",(t,e)=>{kT.init(t,e),Me.init(t,e)});function ar(t){return iH(by,t)}var xy=A("ZodBigInt",(t,e)=>{ET.init(t,e),Me.init(t,e),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.gt=(n,s)=>t.check(so(n,s)),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.lt=(n,s)=>t.check(no(n,s)),t.lte=(n,s)=>t.check(vs(n,s)),t.max=(n,s)=>t.check(vs(n,s)),t.positive=n=>t.check(so(BigInt(0),n)),t.negative=n=>t.check(no(BigInt(0),n)),t.nonpositive=n=>t.check(vs(BigInt(0),n)),t.nonnegative=n=>t.check(Tn(BigInt(0),n)),t.multipleOf=(n,s)=>t.check(Hd(n,s));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function K_e(t){return oH(xy,t)}var zR=A("ZodBigIntFormat",(t,e)=>{m5.init(t,e),xy.init(t,e)});function J_e(t){return lH(zR,t)}function Q_e(t){return uH(zR,t)}var HH=A("ZodSymbol",(t,e)=>{f5.init(t,e),Me.init(t,e)});function Y_e(t){return pH(HH,t)}var BH=A("ZodUndefined",(t,e)=>{h5.init(t,e),Me.init(t,e)});function X_e(t){return dH(BH,t)}var WH=A("ZodNull",(t,e)=>{g5.init(t,e),Me.init(t,e)});function _y(t){return mH(WH,t)}var ZH=A("ZodAny",(t,e)=>{v5.init(t,e),Me.init(t,e)});function e0e(){return fH(ZH)}var GH=A("ZodUnknown",(t,e)=>{Vv.init(t,e),Me.init(t,e)});function $t(){return Jv(GH)}var VH=A("ZodNever",(t,e)=>{y5.init(t,e),Me.init(t,e)});function wy(t){return hH(VH,t)}var KH=A("ZodVoid",(t,e)=>{b5.init(t,e),Me.init(t,e)});function t0e(t){return gH(KH,t)}var MR=A("ZodDate",(t,e)=>{x5.init(t,e),Me.init(t,e),t.min=(n,s)=>t.check(Tn(n,s)),t.max=(n,s)=>t.check(vs(n,s));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function r0e(t){return vH(MR,t)}var JH=A("ZodArray",(t,e)=>{TT.init(t,e),Me.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(ol(r,n)),t.nonempty=r=>t.check(ol(1,r)),t.max=(r,n)=>t.check(hy(r,n)),t.length=(r,n)=>t.check(gy(r,n)),t.unwrap=()=>t.element});function We(t,e){return dR(JH,t,e)}function n0e(t){let e=t._zod.def.shape;return de(Object.keys(e))}var Sy=A("ZodObject",(t,e)=>{RT.init(t,e),Me.init(t,e),Be.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:$t()}),t.loose=()=>t.clone({...t._zod.def,catchall:$t()}),t.strict=()=>t.clone({...t._zod.def,catchall:wy()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Be.extend(t,r),t.merge=r=>Be.merge(t,r),t.pick=r=>Be.pick(t,r),t.omit=r=>Be.omit(t,r),t.partial=(...r)=>Be.partial(HR,t,r[0]),t.required=(...r)=>Be.required(BR,t,r[0])});function oe(t,e){let r={type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},...Be.normalizeParams(e)};return new Sy(r)}function s0e(t,e){return new Sy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:wy(),...Be.normalizeParams(e)})}function Vr(t,e){return new Sy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:$t(),...Be.normalizeParams(e)})}var $R=A("ZodUnion",(t,e)=>{PT.init(t,e),Me.init(t,e),t.options=e.options});function vt(t,e){return new $R({type:"union",options:t,...Be.normalizeParams(e)})}var QH=A("ZodDiscriminatedUnion",(t,e)=>{$R.init(t,e),_5.init(t,e)});function LR(t,e,r){return new QH({type:"union",options:e,discriminator:t,...Be.normalizeParams(r)})}var YH=A("ZodIntersection",(t,e)=>{w5.init(t,e),Me.init(t,e)});function ky(t,e){return new YH({type:"intersection",left:t,right:e})}var XH=A("ZodTuple",(t,e)=>{my.init(t,e),Me.init(t,e),t.rest=r=>t.clone({...t._zod.def,rest:r})});function i0e(t,e,r){let n=e instanceof Pe,s=n?r:e;return new XH({type:"tuple",items:t,rest:n?e:null,...Be.normalizeParams(s)})}var UR=A("ZodRecord",(t,e)=>{S5.init(t,e),Me.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Ot(t,e,r){return new UR({type:"record",keyType:t,valueType:e,...Be.normalizeParams(r)})}function a0e(t,e,r){return new UR({type:"record",keyType:vt([t,wy()]),valueType:e,...Be.normalizeParams(r)})}var e3=A("ZodMap",(t,e)=>{k5.init(t,e),Me.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function o0e(t,e,r){return new e3({type:"map",keyType:t,valueType:e,...Be.normalizeParams(r)})}var t3=A("ZodSet",(t,e)=>{E5.init(t,e),Me.init(t,e),t.min=(...r)=>t.check(Bd(...r)),t.nonempty=r=>t.check(Bd(1,r)),t.max=(...r)=>t.check(fy(...r)),t.size=(...r)=>t.check(eR(...r))});function c0e(t,e){return new t3({type:"set",valueType:t,...Be.normalizeParams(e)})}var Zd=A("ZodEnum",(t,e)=>{T5.init(t,e),Me.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new Zd({...e,checks:[],...Be.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw Error(`Key ${a} not found in enum`);return new Zd({...e,checks:[],...Be.normalizeParams(s),entries:i})}});function vn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Zd({type:"enum",entries:r,...Be.normalizeParams(e)})}function l0e(t,e){return new Zd({type:"enum",entries:t,...Be.normalizeParams(e)})}var r3=A("ZodLiteral",(t,e)=>{R5.init(t,e),Me.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function de(t,e){return new r3({type:"literal",values:Array.isArray(t)?t:[t],...Be.normalizeParams(e)})}var n3=A("ZodFile",(t,e)=>{P5.init(t,e),Me.init(t,e),t.min=(r,n)=>t.check(Bd(r,n)),t.max=(r,n)=>t.check(fy(r,n)),t.mime=(r,n)=>t.check(oR(Array.isArray(r)?r:[r],n))});function u0e(t){return TH(n3,t)}var qR=A("ZodTransform",(t,e)=>{IT.init(t,e),Me.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(Be.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(Be.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function FR(t){return new qR({type:"transform",transform:t})}var HR=A("ZodOptional",(t,e)=>{I5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Lt(t){return new HR({type:"optional",innerType:t})}var s3=A("ZodNullable",(t,e)=>{C5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Xv(t){return new s3({type:"nullable",innerType:t})}function p0e(t){return Lt(Xv(t))}var i3=A("ZodDefault",(t,e)=>{O5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function a3(t,e){return new i3({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var o3=A("ZodPrefault",(t,e)=>{j5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function c3(t,e){return new o3({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var BR=A("ZodNonOptional",(t,e)=>{A5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function l3(t,e){return new BR({type:"nonoptional",innerType:t,...Be.normalizeParams(e)})}var u3=A("ZodSuccess",(t,e)=>{N5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function d0e(t){return new u3({type:"success",innerType:t})}var p3=A("ZodCatch",(t,e)=>{D5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function d3(t,e){return new p3({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var m3=A("ZodNaN",(t,e)=>{z5.init(t,e),Me.init(t,e)});function m0e(t){return bH(m3,t)}var WR=A("ZodPipe",(t,e)=>{CT.init(t,e),Me.init(t,e),t.in=e.in,t.out=e.out});function ey(t,e){return new WR({type:"pipe",in:t,out:e})}var f3=A("ZodReadonly",(t,e)=>{M5.init(t,e),Me.init(t,e)});function h3(t){return new f3({type:"readonly",innerType:t})}var g3=A("ZodTemplateLiteral",(t,e)=>{$5.init(t,e),Me.init(t,e)});function f0e(t,e){return new g3({type:"template_literal",parts:t,...Be.normalizeParams(e)})}var v3=A("ZodLazy",(t,e)=>{U5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.getter()});function y3(t){return new v3({type:"lazy",getter:t})}var b3=A("ZodPromise",(t,e)=>{L5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function h0e(t){return new b3({type:"promise",innerType:t})}var Ey=A("ZodCustom",(t,e)=>{q5.init(t,e),Me.init(t,e)});function x3(t,e){let r=new Yt({check:"custom",...Be.normalizeParams(e)});return r._zod.check=t,r}function _3(t,e){return RH(Ey,t??(()=>!0),e)}function w3(t,e={}){return PH(Ey,t,e)}function S3(t,e){let r=x3(n=>(n.addIssue=s=>{if(typeof s=="string")n.issues.push(Be.issue(s,n.value,r._zod.def));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(Be.issue(i))}},t(n.value,n)),e);return r}function g0e(t,e={error:`Input not instance of ${t.name}`}){let r=new Ey({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...Be.normalizeParams(e)});return r._zod.bag.Class=t,r}var v0e=(...t)=>IH({Pipe:WR,Boolean:by,String:vy,Transform:qR},...t);function y0e(t){let e=y3(()=>vt([U(t),mt(),ar(),_y(),We(e),Ot(U(),e)]));return e}function ZR(t,e){return ey(FR(t),e)}var b0e={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function x0e(t){Qr({customError:t})}function _0e(){return Qr().customError}var k3={};io(k3,{string:()=>w0e,number:()=>S0e,date:()=>T0e,boolean:()=>k0e,bigint:()=>E0e});function w0e(t){return Z5(vy,t)}function S0e(t){return X5(yy,t)}function k0e(t){return aH(by,t)}function E0e(t){return cH(xy,t)}function T0e(t){return yH(MR,t)}Qr(F5());var R0e="io.modelcontextprotocol/related-task",Ty="2.0",Rr=_3(t=>t!==null&&(typeof t=="object"||typeof t=="function")),E3=vt([U(),mt().int()]),T3=U(),P4e=Vr({ttl:vt([mt(),_y()]).optional(),pollInterval:mt().optional()}),P0e=oe({ttl:mt().optional()}),I0e=oe({taskId:U()}),GR=Vr({progressToken:E3.optional(),[R0e]:I0e.optional()}),Cn=oe({_meta:GR.optional()}),Ry=Cn.extend({task:P0e.optional()});var Pr=oe({method:U(),params:Cn.loose().optional()}),Qn=oe({_meta:GR.optional()}),Yn=oe({method:U(),params:Qn.loose().optional()}),Ir=Vr({_meta:GR.optional()}),Py=vt([U(),mt().int()]),C0e=oe({jsonrpc:de(Ty),id:Py,...Pr.shape}).strict();var O0e=oe({jsonrpc:de(Ty),...Yn.shape}).strict();var R3=oe({jsonrpc:de(Ty),id:Py,result:Ir}).strict();var TF;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(TF||(TF={}));var P3=oe({jsonrpc:de(Ty),id:Py.optional(),error:oe({code:mt().int(),message:U(),data:$t().optional()})}).strict();var I4e=vt([C0e,O0e,R3,P3]),C4e=vt([R3,P3]),I3=Ir.strict(),j0e=Qn.extend({requestId:Py.optional(),reason:U().optional()}),C3=Yn.extend({method:de("notifications/cancelled"),params:j0e}),A0e=oe({src:U(),mimeType:U().optional(),sizes:We(U()).optional(),theme:vn(["light","dark"]).optional()}),Qd=oe({icons:We(A0e).optional()}),cl=oe({name:U(),title:U().optional()}),O3=cl.extend({...cl.shape,...Qd.shape,version:U(),websiteUrl:U().optional(),description:U().optional()}),N0e=ky(oe({applyDefaults:ar().optional()}),Ot(U(),$t())),D0e=ZR(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,ky(oe({form:N0e.optional(),url:Rr.optional()}),Ot(U(),$t()).optional())),z0e=Vr({list:Rr.optional(),cancel:Rr.optional(),requests:Vr({sampling:Vr({createMessage:Rr.optional()}).optional(),elicitation:Vr({create:Rr.optional()}).optional()}).optional()}),M0e=Vr({list:Rr.optional(),cancel:Rr.optional(),requests:Vr({tools:Vr({call:Rr.optional()}).optional()}).optional()}),$0e=oe({experimental:Ot(U(),Rr).optional(),sampling:oe({context:Rr.optional(),tools:Rr.optional()}).optional(),elicitation:D0e.optional(),roots:oe({listChanged:ar().optional()}).optional(),tasks:z0e.optional()}),L0e=Cn.extend({protocolVersion:U(),capabilities:$0e,clientInfo:O3}),U0e=Pr.extend({method:de("initialize"),params:L0e}),q0e=oe({experimental:Ot(U(),Rr).optional(),logging:Rr.optional(),completions:Rr.optional(),prompts:oe({listChanged:ar().optional()}).optional(),resources:oe({subscribe:ar().optional(),listChanged:ar().optional()}).optional(),tools:oe({listChanged:ar().optional()}).optional(),tasks:M0e.optional()}),F0e=Ir.extend({protocolVersion:U(),capabilities:q0e,serverInfo:O3,instructions:U().optional()}),H0e=Yn.extend({method:de("notifications/initialized"),params:Qn.optional()}),j3=Pr.extend({method:de("ping"),params:Cn.optional()}),B0e=oe({progress:mt(),total:Lt(mt()),message:Lt(U())}),W0e=oe({...Qn.shape,...B0e.shape,progressToken:E3}),A3=Yn.extend({method:de("notifications/progress"),params:W0e}),Z0e=Cn.extend({cursor:T3.optional()}),Yd=Pr.extend({params:Z0e.optional()}),Xd=Ir.extend({nextCursor:T3.optional()}),G0e=vn(["working","input_required","completed","failed","cancelled"]),em=oe({taskId:U(),status:G0e,ttl:vt([mt(),_y()]),createdAt:U(),lastUpdatedAt:U(),pollInterval:Lt(mt()),statusMessage:Lt(U())}),N3=Ir.extend({task:em}),V0e=Qn.merge(em),D3=Yn.extend({method:de("notifications/tasks/status"),params:V0e}),z3=Pr.extend({method:de("tasks/get"),params:Cn.extend({taskId:U()})}),M3=Ir.merge(em),$3=Pr.extend({method:de("tasks/result"),params:Cn.extend({taskId:U()})}),O4e=Ir.loose(),L3=Yd.extend({method:de("tasks/list")}),U3=Xd.extend({tasks:We(em)}),q3=Pr.extend({method:de("tasks/cancel"),params:Cn.extend({taskId:U()})}),j4e=Ir.merge(em),F3=oe({uri:U(),mimeType:Lt(U()),_meta:Ot(U(),$t()).optional()}),H3=F3.extend({text:U()}),VR=U().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),B3=F3.extend({blob:VR}),tm=vn(["user","assistant"]),fl=oe({audience:We(tm).optional(),priority:mt().min(0).max(1).optional(),lastModified:mR.datetime({offset:!0}).optional()}),W3=oe({...cl.shape,...Qd.shape,uri:U(),description:Lt(U()),mimeType:Lt(U()),annotations:fl.optional(),_meta:Lt(Vr({}))}),K0e=oe({...cl.shape,...Qd.shape,uriTemplate:U(),description:Lt(U()),mimeType:Lt(U()),annotations:fl.optional(),_meta:Lt(Vr({}))}),J0e=Yd.extend({method:de("resources/list")}),Q0e=Xd.extend({resources:We(W3)}),Y0e=Yd.extend({method:de("resources/templates/list")}),X0e=Xd.extend({resourceTemplates:We(K0e)}),KR=Cn.extend({uri:U()}),ewe=KR,twe=Pr.extend({method:de("resources/read"),params:ewe}),rwe=Ir.extend({contents:We(vt([H3,B3]))}),nwe=Yn.extend({method:de("notifications/resources/list_changed"),params:Qn.optional()}),swe=KR,iwe=Pr.extend({method:de("resources/subscribe"),params:swe}),awe=KR,owe=Pr.extend({method:de("resources/unsubscribe"),params:awe}),cwe=Qn.extend({uri:U()}),lwe=Yn.extend({method:de("notifications/resources/updated"),params:cwe}),uwe=oe({name:U(),description:Lt(U()),required:Lt(ar())}),pwe=oe({...cl.shape,...Qd.shape,description:Lt(U()),arguments:Lt(We(uwe)),_meta:Lt(Vr({}))}),dwe=Yd.extend({method:de("prompts/list")}),mwe=Xd.extend({prompts:We(pwe)}),fwe=Cn.extend({name:U(),arguments:Ot(U(),U()).optional()}),hwe=Pr.extend({method:de("prompts/get"),params:fwe}),JR=oe({type:de("text"),text:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),QR=oe({type:de("image"),data:VR,mimeType:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),YR=oe({type:de("audio"),data:VR,mimeType:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),gwe=oe({type:de("tool_use"),name:U(),id:U(),input:Ot(U(),$t()),_meta:Ot(U(),$t()).optional()}),vwe=oe({type:de("resource"),resource:vt([H3,B3]),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),ywe=W3.extend({type:de("resource_link")}),XR=vt([JR,QR,YR,ywe,vwe]),bwe=oe({role:tm,content:XR}),xwe=Ir.extend({description:U().optional(),messages:We(bwe)}),_we=Yn.extend({method:de("notifications/prompts/list_changed"),params:Qn.optional()}),wwe=oe({title:U().optional(),readOnlyHint:ar().optional(),destructiveHint:ar().optional(),idempotentHint:ar().optional(),openWorldHint:ar().optional()}),Swe=oe({taskSupport:vn(["required","optional","forbidden"]).optional()}),Z3=oe({...cl.shape,...Qd.shape,description:U().optional(),inputSchema:oe({type:de("object"),properties:Ot(U(),Rr).optional(),required:We(U()).optional()}).catchall($t()),outputSchema:oe({type:de("object"),properties:Ot(U(),Rr).optional(),required:We(U()).optional()}).catchall($t()).optional(),annotations:wwe.optional(),execution:Swe.optional(),_meta:Ot(U(),$t()).optional()}),kwe=Yd.extend({method:de("tools/list")}),Ewe=Xd.extend({tools:We(Z3)}),G3=Ir.extend({content:We(XR).default([]),structuredContent:Ot(U(),$t()).optional(),isError:ar().optional()}),A4e=G3.or(Ir.extend({toolResult:$t()})),Twe=Ry.extend({name:U(),arguments:Ot(U(),$t()).optional()}),Rwe=Pr.extend({method:de("tools/call"),params:Twe}),Pwe=Yn.extend({method:de("notifications/tools/list_changed"),params:Qn.optional()}),N4e=oe({autoRefresh:ar().default(!0),debounceMs:mt().int().nonnegative().default(300)}),V3=vn(["debug","info","notice","warning","error","critical","alert","emergency"]),Iwe=Cn.extend({level:V3}),Cwe=Pr.extend({method:de("logging/setLevel"),params:Iwe}),Owe=Qn.extend({level:V3,logger:U().optional(),data:$t()}),jwe=Yn.extend({method:de("notifications/message"),params:Owe}),Awe=oe({name:U().optional()}),Nwe=oe({hints:We(Awe).optional(),costPriority:mt().min(0).max(1).optional(),speedPriority:mt().min(0).max(1).optional(),intelligencePriority:mt().min(0).max(1).optional()}),Dwe=oe({mode:vn(["auto","required","none"]).optional()}),zwe=oe({type:de("tool_result"),toolUseId:U().describe("The unique identifier for the corresponding tool call."),content:We(XR).default([]),structuredContent:oe({}).loose().optional(),isError:ar().optional(),_meta:Ot(U(),$t()).optional()}),Mwe=LR("type",[JR,QR,YR]),ty=LR("type",[JR,QR,YR,gwe,zwe]),$we=oe({role:tm,content:vt([ty,We(ty)]),_meta:Ot(U(),$t()).optional()}),Lwe=Ry.extend({messages:We($we),modelPreferences:Nwe.optional(),systemPrompt:U().optional(),includeContext:vn(["none","thisServer","allServers"]).optional(),temperature:mt().optional(),maxTokens:mt().int(),stopSequences:We(U()).optional(),metadata:Rr.optional(),tools:We(Z3).optional(),toolChoice:Dwe.optional()}),Uwe=Pr.extend({method:de("sampling/createMessage"),params:Lwe}),qwe=Ir.extend({model:U(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens"]).or(U())),role:tm,content:Mwe}),Fwe=Ir.extend({model:U(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens","toolUse"]).or(U())),role:tm,content:vt([ty,We(ty)])}),Hwe=oe({type:de("boolean"),title:U().optional(),description:U().optional(),default:ar().optional()}),Bwe=oe({type:de("string"),title:U().optional(),description:U().optional(),minLength:mt().optional(),maxLength:mt().optional(),format:vn(["email","uri","date","date-time"]).optional(),default:U().optional()}),Wwe=oe({type:vn(["number","integer"]),title:U().optional(),description:U().optional(),minimum:mt().optional(),maximum:mt().optional(),default:mt().optional()}),Zwe=oe({type:de("string"),title:U().optional(),description:U().optional(),enum:We(U()),default:U().optional()}),Gwe=oe({type:de("string"),title:U().optional(),description:U().optional(),oneOf:We(oe({const:U(),title:U()})),default:U().optional()}),Vwe=oe({type:de("string"),title:U().optional(),description:U().optional(),enum:We(U()),enumNames:We(U()).optional(),default:U().optional()}),Kwe=vt([Zwe,Gwe]),Jwe=oe({type:de("array"),title:U().optional(),description:U().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({type:de("string"),enum:We(U())}),default:We(U()).optional()}),Qwe=oe({type:de("array"),title:U().optional(),description:U().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({anyOf:We(oe({const:U(),title:U()}))}),default:We(U()).optional()}),Ywe=vt([Jwe,Qwe]),Xwe=vt([Vwe,Kwe,Ywe]),eSe=vt([Xwe,Hwe,Bwe,Wwe]),tSe=Ry.extend({mode:de("form").optional(),message:U(),requestedSchema:oe({type:de("object"),properties:Ot(U(),eSe),required:We(U()).optional()})}),rSe=Ry.extend({mode:de("url"),message:U(),elicitationId:U(),url:U().url()}),nSe=vt([tSe,rSe]),sSe=Pr.extend({method:de("elicitation/create"),params:nSe}),iSe=Qn.extend({elicitationId:U()}),aSe=Yn.extend({method:de("notifications/elicitation/complete"),params:iSe}),oSe=Ir.extend({action:vn(["accept","decline","cancel"]),content:ZR(t=>t===null?void 0:t,Ot(U(),vt([U(),mt(),ar(),We(U())])).optional())}),cSe=oe({type:de("ref/resource"),uri:U()}),lSe=oe({type:de("ref/prompt"),name:U()}),uSe=Cn.extend({ref:vt([lSe,cSe]),argument:oe({name:U(),value:U()}),context:oe({arguments:Ot(U(),U()).optional()}).optional()}),pSe=Pr.extend({method:de("completion/complete"),params:uSe});var dSe=Ir.extend({completion:Vr({values:We(U()).max(100),total:Lt(mt().int()),hasMore:Lt(ar())})}),mSe=oe({uri:U().startsWith("file://"),name:U().optional(),_meta:Ot(U(),$t()).optional()}),fSe=Pr.extend({method:de("roots/list"),params:Cn.optional()}),hSe=Ir.extend({roots:We(mSe)}),gSe=Yn.extend({method:de("notifications/roots/list_changed"),params:Qn.optional()}),D4e=vt([j3,U0e,pSe,Cwe,hwe,dwe,J0e,Y0e,twe,iwe,owe,Rwe,kwe,z3,$3,L3,q3]),z4e=vt([C3,A3,H0e,gSe,D3]),M4e=vt([I3,qwe,Fwe,oSe,hSe,M3,U3,N3]),$4e=vt([j3,Uwe,sSe,fSe,z3,$3,L3,q3]),L4e=vt([C3,A3,jwe,lwe,nwe,Pwe,_we,D3,aSe]),U4e=vt([I3,F0e,dSe,xwe,mwe,Q0e,X0e,rwe,G3,Ewe,M3,U3,N3]);var q4e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var F4e=PF(DF(),1),H4e=PF(bhe(),1);var RF;(function(t){t.Completable="McpCompletable"})(RF||(RF={}));function vSe(t){let e;return()=>e??=t()}var B4e=vSe(()=>qc.object({session_id:qc.string(),ws_url:qc.string(),work_dir:qc.string().optional(),session_key:qc.string().optional()}));function K3(t){return Tye(t)}var ws=Y(require("fs"),1),hl=Y(require("path"),1),Q3=Y(require("os"),1),Y3=Y(require("readline"),1);se();var e1=hl.default.join(Q3.default.homedir(),".claude","projects"),J3=["[MEMORY]","MEMORY PROCESSING START","MEMORY PROCESSING CONTINUED","PROGRESS SUMMARY CHECKPOINT","expert observation and knowledge extraction","","pragmatic code reviewer"],bSe=1440*60*1e3;function X3(t){let e={deleted:0,failed:0,errors:[]};if(t.length===0)return e;let r;try{r=eB()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of t){if(!_Se(n)){e.errors.push(`Invalid session ID format: ${n}`),e.failed++;continue}let s=!1;for(let i of r)if(tB(i,n)){s=!0,e.deleted++;break}s||_.debug("CLEANUP","Session file not found (may already be cleaned up)",{claudeSessionId:n})}return e.deleted>0&&_.info("CLEANUP",`Deleted ${e.deleted} memory session files`,{sessionIds:t.slice(0,5),total:t.length}),e}async function t1(t=bSe){let e={deleted:0,failed:0,errors:[]},r;try{r=eB()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of r){let s;try{s=ws.default.readdirSync(n).filter(i=>i.endsWith(".jsonl"))}catch{continue}for(let i of s){let a=hl.default.join(n,i);try{if(!await xSe(a))continue;let c=i.replace(".jsonl","");tB(n,c)&&e.deleted++}catch(o){e.failed++,e.errors.push(`Failed to check ${i}: ${o}`)}}}return e.deleted>0&&_.info("CLEANUP",`Ephemeral session cleanup: deleted ${e.deleted} session files`),e}async function xSe(t){try{let e=ws.default.createReadStream(t,{encoding:"utf8"}),r=Y3.default.createInterface({input:e,crlfDelay:1/0}),n=!1;for await(let s of r)try{let i=JSON.parse(s);if(i.type==="last-prompt"&&i.lastPrompt&&J3.some(a=>i.lastPrompt.includes(a)))return r.close(),e.destroy(),!0;if(i.type==="user"){if(n)continue;n=!0;let a="",o=i.message?.content;if(typeof o=="string")a=o;else if(Array.isArray(o)){for(let c of o)if(c?.type==="text"&&c.text){a=c.text;break}}if(a&&J3.some(c=>a.includes(c)))return r.close(),e.destroy(),!0}}catch{}return r.close(),e.destroy(),!1}catch{return!1}}function eB(){return ws.default.existsSync(e1)?ws.default.readdirSync(e1).map(t=>hl.default.join(e1,t)).filter(t=>{try{return ws.default.statSync(t).isDirectory()}catch{return!1}}):[]}function tB(t,e){let r=!1,n=hl.default.join(t,`${e}.jsonl`);if(ws.default.existsSync(n))try{ws.default.unlinkSync(n),r=!0}catch(i){_.warn("CLEANUP","Failed to delete session JSONL",{claudeSessionId:e,error:String(i)})}let s=hl.default.join(t,e);if(ws.default.existsSync(s))try{ws.default.statSync(s).isDirectory()&&(ws.default.rmSync(s,{recursive:!0,force:!0}),r=!0)}catch(i){_.warn("CLEANUP","Failed to delete session directory",{claudeSessionId:e,error:String(i)})}return r}function _Se(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}var rB=1e5,Iy=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n,s=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"];if(!e.memorySessionId)throw new Error(`Session ${e.sessionDbId} has no memory_session_id - this should not happen`);_.info("SDK","Starting SDK V2 session",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,lastPromptNumber:e.lastPromptNumber});let o=I6(),c=this.createSDKSession(i,s,a);try{let l=et.getInstance().getActiveMode(),p=e.lastPromptNumber===1?u6(e.project,e.contentSessionId,e.userPrompt,l):Xk(e.userPrompt,e.lastPromptNumber,e.contentSessionId,l);e.conversationHistory.push({role:"user",content:p}),await c.send(p),await this.processStreamResponse(c,e,r,n),this.captureClaudeSessionId(c,e);for await(let m of this.sessionManager.getMessageBatchIterator(e.sessionDbId)){if(e.abortController.signal.aborted){_.warn("SDK","Session aborted",{sessionId:e.sessionDbId});break}let f=m.filter(g=>g.type==="observation"),v=m.filter(g=>g.type==="summarize");if(m.length>1&&_.info("SDK","Processing batch",{sessionId:e.sessionDbId,total:m.length,observations:f.length,summarizes:v.length}),f.length>0){for(let y of f)y.cwd&&(n=y.cwd),y.prompt_number!==void 0&&(e.lastPromptNumber=y.prompt_number);let g=f.map(y=>({id:0,tool_name:y.tool_name,tool_input:JSON.stringify(y.tool_input),tool_output:JSON.stringify(y.tool_response),created_at_epoch:y._originalTimestamp??Date.now(),cwd:y.cwd})),h=f.length===1?Yk(g[0]):p6(g);if(e.conversationHistory.push({role:"user",content:h}),e.conversationHistory.length>12){let y=e.conversationHistory.slice(0,2),b=e.conversationHistory.slice(-10);e.conversationHistory.length=0,e.conversationHistory.push(...y,...b)}await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}for(let g of v){if(e.abortController.signal.aborted)break;let h=d6({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:g.last_assistant_message||""},l);e.conversationHistory.push({role:"user",content:h}),await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}}let d=Date.now()-e.startTime;_.success("SDK","V2 Agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`})}finally{if(this.captureClaudeSessionId(c,e),c.close(),e.claudeSessionIds.length>0)try{let l=X3(e.claudeSessionIds);l.deleted>0&&_.info("SDK","Cleaned up Claude session files",{sessionId:e.sessionDbId,deletedFiles:l.deleted,trackedIds:e.claudeSessionIds.length})}catch(l){_.warn("SDK","Failed to clean up Claude session files",{sessionId:e.sessionDbId},l)}o&&o()}}async processStreamResponse(e,r,n,s){let i=r.earliestPendingTimestamp;for await(let a of e.stream())if(a.type==="assistant"){let o=a.message.content,c=Array.isArray(o)?o.filter(m=>m.type==="text").map(m=>m.text).join(` +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`);n.cycles==="ref"&&a(u);continue}if(p.count>1&&n.reused==="ref"){a(u);continue}}let o=(u,p)=>{let d=this.seen.get(u),m=d.def??d.schema,f={...m};if(d.ref===null)return;let v=d.ref;if(d.ref=null,v){o(v,p);let g=this.seen.get(v).schema;g.$ref&&p.target==="draft-7"?(m.allOf=m.allOf??[],m.allOf.push(g)):(Object.assign(m,g),Object.assign(m,f))}d.isParent||this.override({zodSchema:u,jsonSchema:m,path:d.path??[]})};for(let u of[...this.seen.entries()].reverse())o(u[0],{target:this.target});let c={};this.target==="draft-2020-12"?c.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?c.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),Object.assign(c,s.def);let l=n.external?.defs??{};for(let u of this.seen.entries()){let p=u[1];p.def&&p.defId&&(l[p.defId]=p.def)}!n.external&&Object.keys(l).length>0&&(this.target==="draft-2020-12"?c.$defs=l:c.definitions=l);try{return JSON.parse(JSON.stringify(c))}catch{throw Error("Error converting schema to JSON.")}}};function jH(t,e){if(t instanceof Fd){let n=new Wd(e),s={};for(let o of t._idmap.entries()){let[c,l]=o;n.process(l)}let i={},a={registry:t,uri:e?.uri||(o=>o),defs:s};for(let o of t._idmap.entries()){let[c,l]=o;i[c]=n.emit(l,{...e,external:a})}if(Object.keys(s).length>0){let o=n.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[o]:s}}return{schemas:i}}let r=new Wd(e);return r.process(t),r.emit(t,e)}function ir(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;switch(n.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return ir(n.element,r);case"object":{for(let s in n.shape)if(ir(n.shape[s],r))return!0;return!1}case"union":{for(let s of n.options)if(ir(s,r))return!0;return!1}case"intersection":return ir(n.left,r)||ir(n.right,r);case"tuple":{for(let s of n.items)if(ir(s,r))return!0;return!!(n.rest&&ir(n.rest,r))}case"record":return ir(n.keyType,r)||ir(n.valueType,r);case"map":return ir(n.keyType,r)||ir(n.valueType,r);case"set":return ir(n.valueType,r);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return ir(n.innerType,r);case"lazy":return ir(n.getter(),r);case"default":return ir(n.innerType,r);case"prefault":return ir(n.innerType,r);case"custom":return!1;case"transform":return!0;case"pipe":return ir(n.in,r)||ir(n.out,r);case"success":return!1;case"catch":return!1;default:}throw Error(`Unknown schema type: ${n.type}`)}var b_e={},x_e=A("ZodMiniType",(t,e)=>{if(!t._zod)throw Error("Uninitialized schema in ZodMiniType.");Pe.init(t,e),t.def=e,t.parse=(r,n)=>Wv(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>hT(t,r,n),t.parseAsync=async(r,n)=>Zv(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>vT(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>_s(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t)}),R4e=A("ZodMiniObject",(t,e)=>{RT.init(t,e),x_e.init(t,e),Be.defineLazy(t,"shape",()=>e.shape)});var qc={};ao(qc,{xid:()=>N_e,void:()=>t0e,uuidv7:()=>R_e,uuidv6:()=>T_e,uuidv4:()=>E_e,uuid:()=>k_e,url:()=>P_e,uppercase:()=>nR,unknown:()=>$t,union:()=>vt,undefined:()=>X_e,ulid:()=>A_e,uint64:()=>Q_e,uint32:()=>V_e,tuple:()=>i0e,trim:()=>lR,treeifyError:()=>U8,transform:()=>FR,toUpperCase:()=>pR,toLowerCase:()=>uR,toJSONSchema:()=>jH,templateLiteral:()=>f0e,symbol:()=>Y_e,superRefine:()=>S3,success:()=>d0e,stringbool:()=>v0e,stringFormat:()=>B_e,string:()=>U,strictObject:()=>s0e,startsWith:()=>iR,size:()=>eR,setErrorMap:()=>x0e,set:()=>c0e,safeParseAsync:()=>qH,safeParse:()=>UH,registry:()=>jT,regexes:()=>yT,regex:()=>tR,refine:()=>w3,record:()=>Ot,readonly:()=>h3,property:()=>kH,promise:()=>h0e,prettifyError:()=>F8,preprocess:()=>ZR,prefault:()=>c3,positive:()=>xH,pipe:()=>ey,partialRecord:()=>a0e,parseAsync:()=>LH,parse:()=>$H,overwrite:()=>lo,optional:()=>Lt,object:()=>oe,number:()=>mt,nullish:()=>p0e,nullable:()=>Xv,null:()=>_y,normalize:()=>cR,nonpositive:()=>wH,nonoptional:()=>l3,nonnegative:()=>SH,never:()=>wy,negative:()=>_H,nativeEnum:()=>l0e,nanoid:()=>C_e,nan:()=>m0e,multipleOf:()=>Hd,minSize:()=>Bd,minLength:()=>ol,mime:()=>oR,maxSize:()=>fy,maxLength:()=>hy,map:()=>o0e,lte:()=>vs,lt:()=>so,lowercase:()=>rR,looseObject:()=>Vr,locales:()=>OT,literal:()=>de,length:()=>gy,lazy:()=>y3,ksuid:()=>D_e,keyof:()=>n0e,jwt:()=>H_e,json:()=>y0e,iso:()=>mR,ipv6:()=>M_e,ipv4:()=>z_e,intersection:()=>ky,int64:()=>J_e,int32:()=>G_e,int:()=>KE,instanceof:()=>g0e,includes:()=>sR,guid:()=>S_e,gte:()=>Tn,gt:()=>io,globalRegistry:()=>Ya,getErrorMap:()=>_0e,function:()=>OH,formatError:()=>pT,float64:()=>Z_e,float32:()=>W_e,flattenError:()=>uT,file:()=>u0e,enum:()=>vn,endsWith:()=>aR,emoji:()=>I_e,email:()=>w_e,e164:()=>F_e,discriminatedUnion:()=>LR,date:()=>r0e,custom:()=>_3,cuid2:()=>j_e,cuid:()=>O_e,core:()=>P8,config:()=>Qr,coerce:()=>k3,clone:()=>_s,cidrv6:()=>L_e,cidrv4:()=>$_e,check:()=>x3,catch:()=>d3,boolean:()=>ar,bigint:()=>K_e,base64url:()=>q_e,base64:()=>U_e,array:()=>We,any:()=>e0e,_default:()=>a3,_ZodString:()=>yR,ZodXID:()=>TR,ZodVoid:()=>KH,ZodUnknown:()=>GH,ZodUnion:()=>$R,ZodUndefined:()=>BH,ZodUUID:()=>di,ZodURL:()=>xR,ZodULID:()=>ER,ZodType:()=>Me,ZodTuple:()=>XH,ZodTransform:()=>qR,ZodTemplateLiteral:()=>g3,ZodSymbol:()=>HH,ZodSuccess:()=>u3,ZodStringFormat:()=>jt,ZodString:()=>vy,ZodSet:()=>t3,ZodRecord:()=>UR,ZodRealError:()=>Jd,ZodReadonly:()=>f3,ZodPromise:()=>b3,ZodPrefault:()=>o3,ZodPipe:()=>WR,ZodOptional:()=>HR,ZodObject:()=>Sy,ZodNumberFormat:()=>ml,ZodNumber:()=>yy,ZodNullable:()=>s3,ZodNull:()=>WH,ZodNonOptional:()=>BR,ZodNever:()=>VH,ZodNanoID:()=>wR,ZodNaN:()=>m3,ZodMap:()=>e3,ZodLiteral:()=>r3,ZodLazy:()=>v3,ZodKSUID:()=>RR,ZodJWT:()=>DR,ZodIssueCode:()=>b0e,ZodIntersection:()=>YH,ZodISOTime:()=>gR,ZodISODuration:()=>vR,ZodISODateTime:()=>fR,ZodISODate:()=>hR,ZodIPv6:()=>IR,ZodIPv4:()=>PR,ZodGUID:()=>Yv,ZodFile:()=>n3,ZodError:()=>__e,ZodEnum:()=>Zd,ZodEmoji:()=>_R,ZodEmail:()=>bR,ZodE164:()=>NR,ZodDiscriminatedUnion:()=>QH,ZodDefault:()=>i3,ZodDate:()=>MR,ZodCustomStringFormat:()=>FH,ZodCustom:()=>Ey,ZodCatch:()=>p3,ZodCUID2:()=>kR,ZodCUID:()=>SR,ZodCIDRv6:()=>OR,ZodCIDRv4:()=>CR,ZodBoolean:()=>by,ZodBigIntFormat:()=>zR,ZodBigInt:()=>xy,ZodBase64URL:()=>AR,ZodBase64:()=>jR,ZodArray:()=>JH,ZodAny:()=>ZH,TimePrecision:()=>G5,NEVER:()=>I8,$output:()=>H5,$input:()=>B5,$brand:()=>C8});var mR={};ao(mR,{time:()=>DH,duration:()=>zH,datetime:()=>AH,date:()=>NH,ZodISOTime:()=>gR,ZodISODuration:()=>vR,ZodISODateTime:()=>fR,ZodISODate:()=>hR});var fR=A("ZodISODateTime",(t,e)=>{Q9.init(t,e),jt.init(t,e)});function AH(t){return V5(fR,t)}var hR=A("ZodISODate",(t,e)=>{Y9.init(t,e),jt.init(t,e)});function NH(t){return K5(hR,t)}var gR=A("ZodISOTime",(t,e)=>{X9.init(t,e),jt.init(t,e)});function DH(t){return J5(gR,t)}var vR=A("ZodISODuration",(t,e)=>{e5.init(t,e),jt.init(t,e)});function zH(t){return Q5(vR,t)}var MH=(t,e)=>{lT.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>pT(t,r)},flatten:{value:r=>uT(t,r)},addIssue:{value:r=>t.issues.push(r)},addIssues:{value:r=>t.issues.push(...r)},isEmpty:{get(){return t.issues.length===0}}})},__e=A("ZodError",MH),Jd=A("ZodError",MH,{Parent:Error}),$H=dT(Jd),LH=mT(Jd),UH=fT(Jd),qH=gT(Jd),Me=A("ZodType",(t,e)=>(Pe.init(t,e),t.def=e,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),t.clone=(r,n)=>_s(t,r,n),t.brand=()=>t,t.register=(r,n)=>(r.add(t,n),t),t.parse=(r,n)=>$H(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>UH(t,r,n),t.parseAsync=async(r,n)=>LH(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>qH(t,r,n),t.spa=t.safeParseAsync,t.refine=(r,n)=>t.check(w3(r,n)),t.superRefine=r=>t.check(S3(r)),t.overwrite=r=>t.check(lo(r)),t.optional=()=>Lt(t),t.nullable=()=>Xv(t),t.nullish=()=>Lt(Xv(t)),t.nonoptional=r=>l3(t,r),t.array=()=>We(t),t.or=r=>vt([t,r]),t.and=r=>ky(t,r),t.transform=r=>ey(t,FR(r)),t.default=r=>a3(t,r),t.prefault=r=>c3(t,r),t.catch=r=>d3(t,r),t.pipe=r=>ey(t,r),t.readonly=()=>h3(t),t.describe=r=>{let n=t.clone();return Ya.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Ya.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Ya.get(t);let n=t.clone();return Ya.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t)),yR=A("_ZodString",(t,e)=>{Kd.init(t,e),Me.init(t,e);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(tR(...n)),t.includes=(...n)=>t.check(sR(...n)),t.startsWith=(...n)=>t.check(iR(...n)),t.endsWith=(...n)=>t.check(aR(...n)),t.min=(...n)=>t.check(ol(...n)),t.max=(...n)=>t.check(hy(...n)),t.length=(...n)=>t.check(gy(...n)),t.nonempty=(...n)=>t.check(ol(1,...n)),t.lowercase=n=>t.check(rR(n)),t.uppercase=n=>t.check(nR(n)),t.trim=()=>t.check(lR()),t.normalize=(...n)=>t.check(cR(...n)),t.toLowerCase=()=>t.check(uR()),t.toUpperCase=()=>t.check(pR())}),vy=A("ZodString",(t,e)=>{Kd.init(t,e),yR.init(t,e),t.email=r=>t.check(AT(bR,r)),t.url=r=>t.check($T(xR,r)),t.jwt=r=>t.check(XT(DR,r)),t.emoji=r=>t.check(LT(_R,r)),t.guid=r=>t.check(Kv(Yv,r)),t.uuid=r=>t.check(NT(di,r)),t.uuidv4=r=>t.check(DT(di,r)),t.uuidv6=r=>t.check(zT(di,r)),t.uuidv7=r=>t.check(MT(di,r)),t.nanoid=r=>t.check(UT(wR,r)),t.guid=r=>t.check(Kv(Yv,r)),t.cuid=r=>t.check(qT(SR,r)),t.cuid2=r=>t.check(FT(kR,r)),t.ulid=r=>t.check(HT(ER,r)),t.base64=r=>t.check(JT(jR,r)),t.base64url=r=>t.check(QT(AR,r)),t.xid=r=>t.check(BT(TR,r)),t.ksuid=r=>t.check(WT(RR,r)),t.ipv4=r=>t.check(ZT(PR,r)),t.ipv6=r=>t.check(GT(IR,r)),t.cidrv4=r=>t.check(VT(CR,r)),t.cidrv6=r=>t.check(KT(OR,r)),t.e164=r=>t.check(YT(NR,r)),t.datetime=r=>t.check(AH(r)),t.date=r=>t.check(NH(r)),t.time=r=>t.check(DH(r)),t.duration=r=>t.check(zH(r))});function U(t){return W5(vy,t)}var jt=A("ZodStringFormat",(t,e)=>{Et.init(t,e),yR.init(t,e)}),bR=A("ZodEmail",(t,e)=>{F9.init(t,e),jt.init(t,e)});function w_e(t){return AT(bR,t)}var Yv=A("ZodGUID",(t,e)=>{U9.init(t,e),jt.init(t,e)});function S_e(t){return Kv(Yv,t)}var di=A("ZodUUID",(t,e)=>{q9.init(t,e),jt.init(t,e)});function k_e(t){return NT(di,t)}function E_e(t){return DT(di,t)}function T_e(t){return zT(di,t)}function R_e(t){return MT(di,t)}var xR=A("ZodURL",(t,e)=>{H9.init(t,e),jt.init(t,e)});function P_e(t){return $T(xR,t)}var _R=A("ZodEmoji",(t,e)=>{B9.init(t,e),jt.init(t,e)});function I_e(t){return LT(_R,t)}var wR=A("ZodNanoID",(t,e)=>{W9.init(t,e),jt.init(t,e)});function C_e(t){return UT(wR,t)}var SR=A("ZodCUID",(t,e)=>{Z9.init(t,e),jt.init(t,e)});function O_e(t){return qT(SR,t)}var kR=A("ZodCUID2",(t,e)=>{G9.init(t,e),jt.init(t,e)});function j_e(t){return FT(kR,t)}var ER=A("ZodULID",(t,e)=>{V9.init(t,e),jt.init(t,e)});function A_e(t){return HT(ER,t)}var TR=A("ZodXID",(t,e)=>{K9.init(t,e),jt.init(t,e)});function N_e(t){return BT(TR,t)}var RR=A("ZodKSUID",(t,e)=>{J9.init(t,e),jt.init(t,e)});function D_e(t){return WT(RR,t)}var PR=A("ZodIPv4",(t,e)=>{t5.init(t,e),jt.init(t,e)});function z_e(t){return ZT(PR,t)}var IR=A("ZodIPv6",(t,e)=>{r5.init(t,e),jt.init(t,e)});function M_e(t){return GT(IR,t)}var CR=A("ZodCIDRv4",(t,e)=>{n5.init(t,e),jt.init(t,e)});function $_e(t){return VT(CR,t)}var OR=A("ZodCIDRv6",(t,e)=>{s5.init(t,e),jt.init(t,e)});function L_e(t){return KT(OR,t)}var jR=A("ZodBase64",(t,e)=>{i5.init(t,e),jt.init(t,e)});function U_e(t){return JT(jR,t)}var AR=A("ZodBase64URL",(t,e)=>{o5.init(t,e),jt.init(t,e)});function q_e(t){return QT(AR,t)}var NR=A("ZodE164",(t,e)=>{c5.init(t,e),jt.init(t,e)});function F_e(t){return YT(NR,t)}var DR=A("ZodJWT",(t,e)=>{u5.init(t,e),jt.init(t,e)});function H_e(t){return XT(DR,t)}var FH=A("ZodCustomStringFormat",(t,e)=>{p5.init(t,e),jt.init(t,e)});function B_e(t,e,r={}){return CH(FH,t,e,r)}var yy=A("ZodNumber",(t,e)=>{ST.init(t,e),Me.init(t,e),t.gt=(n,s)=>t.check(io(n,s)),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.lt=(n,s)=>t.check(so(n,s)),t.lte=(n,s)=>t.check(vs(n,s)),t.max=(n,s)=>t.check(vs(n,s)),t.int=n=>t.check(KE(n)),t.safe=n=>t.check(KE(n)),t.positive=n=>t.check(io(0,n)),t.nonnegative=n=>t.check(Tn(0,n)),t.negative=n=>t.check(so(0,n)),t.nonpositive=n=>t.check(vs(0,n)),t.multipleOf=(n,s)=>t.check(Hd(n,s)),t.step=(n,s)=>t.check(Hd(n,s)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function mt(t){return Y5(yy,t)}var ml=A("ZodNumberFormat",(t,e)=>{d5.init(t,e),yy.init(t,e)});function KE(t){return eH(ml,t)}function W_e(t){return tH(ml,t)}function Z_e(t){return rH(ml,t)}function G_e(t){return nH(ml,t)}function V_e(t){return sH(ml,t)}var by=A("ZodBoolean",(t,e)=>{kT.init(t,e),Me.init(t,e)});function ar(t){return iH(by,t)}var xy=A("ZodBigInt",(t,e)=>{ET.init(t,e),Me.init(t,e),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.gt=(n,s)=>t.check(io(n,s)),t.gte=(n,s)=>t.check(Tn(n,s)),t.min=(n,s)=>t.check(Tn(n,s)),t.lt=(n,s)=>t.check(so(n,s)),t.lte=(n,s)=>t.check(vs(n,s)),t.max=(n,s)=>t.check(vs(n,s)),t.positive=n=>t.check(io(BigInt(0),n)),t.negative=n=>t.check(so(BigInt(0),n)),t.nonpositive=n=>t.check(vs(BigInt(0),n)),t.nonnegative=n=>t.check(Tn(BigInt(0),n)),t.multipleOf=(n,s)=>t.check(Hd(n,s));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function K_e(t){return oH(xy,t)}var zR=A("ZodBigIntFormat",(t,e)=>{m5.init(t,e),xy.init(t,e)});function J_e(t){return lH(zR,t)}function Q_e(t){return uH(zR,t)}var HH=A("ZodSymbol",(t,e)=>{f5.init(t,e),Me.init(t,e)});function Y_e(t){return pH(HH,t)}var BH=A("ZodUndefined",(t,e)=>{h5.init(t,e),Me.init(t,e)});function X_e(t){return dH(BH,t)}var WH=A("ZodNull",(t,e)=>{g5.init(t,e),Me.init(t,e)});function _y(t){return mH(WH,t)}var ZH=A("ZodAny",(t,e)=>{v5.init(t,e),Me.init(t,e)});function e0e(){return fH(ZH)}var GH=A("ZodUnknown",(t,e)=>{Vv.init(t,e),Me.init(t,e)});function $t(){return Jv(GH)}var VH=A("ZodNever",(t,e)=>{y5.init(t,e),Me.init(t,e)});function wy(t){return hH(VH,t)}var KH=A("ZodVoid",(t,e)=>{b5.init(t,e),Me.init(t,e)});function t0e(t){return gH(KH,t)}var MR=A("ZodDate",(t,e)=>{x5.init(t,e),Me.init(t,e),t.min=(n,s)=>t.check(Tn(n,s)),t.max=(n,s)=>t.check(vs(n,s));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function r0e(t){return vH(MR,t)}var JH=A("ZodArray",(t,e)=>{TT.init(t,e),Me.init(t,e),t.element=e.element,t.min=(r,n)=>t.check(ol(r,n)),t.nonempty=r=>t.check(ol(1,r)),t.max=(r,n)=>t.check(hy(r,n)),t.length=(r,n)=>t.check(gy(r,n)),t.unwrap=()=>t.element});function We(t,e){return dR(JH,t,e)}function n0e(t){let e=t._zod.def.shape;return de(Object.keys(e))}var Sy=A("ZodObject",(t,e)=>{RT.init(t,e),Me.init(t,e),Be.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>vn(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:$t()}),t.loose=()=>t.clone({...t._zod.def,catchall:$t()}),t.strict=()=>t.clone({...t._zod.def,catchall:wy()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>Be.extend(t,r),t.merge=r=>Be.merge(t,r),t.pick=r=>Be.pick(t,r),t.omit=r=>Be.omit(t,r),t.partial=(...r)=>Be.partial(HR,t,r[0]),t.required=(...r)=>Be.required(BR,t,r[0])});function oe(t,e){let r={type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},...Be.normalizeParams(e)};return new Sy(r)}function s0e(t,e){return new Sy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:wy(),...Be.normalizeParams(e)})}function Vr(t,e){return new Sy({type:"object",get shape(){return Be.assignProp(this,"shape",{...t}),this.shape},catchall:$t(),...Be.normalizeParams(e)})}var $R=A("ZodUnion",(t,e)=>{PT.init(t,e),Me.init(t,e),t.options=e.options});function vt(t,e){return new $R({type:"union",options:t,...Be.normalizeParams(e)})}var QH=A("ZodDiscriminatedUnion",(t,e)=>{$R.init(t,e),_5.init(t,e)});function LR(t,e,r){return new QH({type:"union",options:e,discriminator:t,...Be.normalizeParams(r)})}var YH=A("ZodIntersection",(t,e)=>{w5.init(t,e),Me.init(t,e)});function ky(t,e){return new YH({type:"intersection",left:t,right:e})}var XH=A("ZodTuple",(t,e)=>{my.init(t,e),Me.init(t,e),t.rest=r=>t.clone({...t._zod.def,rest:r})});function i0e(t,e,r){let n=e instanceof Pe,s=n?r:e;return new XH({type:"tuple",items:t,rest:n?e:null,...Be.normalizeParams(s)})}var UR=A("ZodRecord",(t,e)=>{S5.init(t,e),Me.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function Ot(t,e,r){return new UR({type:"record",keyType:t,valueType:e,...Be.normalizeParams(r)})}function a0e(t,e,r){return new UR({type:"record",keyType:vt([t,wy()]),valueType:e,...Be.normalizeParams(r)})}var e3=A("ZodMap",(t,e)=>{k5.init(t,e),Me.init(t,e),t.keyType=e.keyType,t.valueType=e.valueType});function o0e(t,e,r){return new e3({type:"map",keyType:t,valueType:e,...Be.normalizeParams(r)})}var t3=A("ZodSet",(t,e)=>{E5.init(t,e),Me.init(t,e),t.min=(...r)=>t.check(Bd(...r)),t.nonempty=r=>t.check(Bd(1,r)),t.max=(...r)=>t.check(fy(...r)),t.size=(...r)=>t.check(eR(...r))});function c0e(t,e){return new t3({type:"set",valueType:t,...Be.normalizeParams(e)})}var Zd=A("ZodEnum",(t,e)=>{T5.init(t,e),Me.init(t,e),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,s)=>{let i={};for(let a of n)if(r.has(a))i[a]=e.entries[a];else throw Error(`Key ${a} not found in enum`);return new Zd({...e,checks:[],...Be.normalizeParams(s),entries:i})},t.exclude=(n,s)=>{let i={...e.entries};for(let a of n)if(r.has(a))delete i[a];else throw Error(`Key ${a} not found in enum`);return new Zd({...e,checks:[],...Be.normalizeParams(s),entries:i})}});function vn(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Zd({type:"enum",entries:r,...Be.normalizeParams(e)})}function l0e(t,e){return new Zd({type:"enum",entries:t,...Be.normalizeParams(e)})}var r3=A("ZodLiteral",(t,e)=>{R5.init(t,e),Me.init(t,e),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function de(t,e){return new r3({type:"literal",values:Array.isArray(t)?t:[t],...Be.normalizeParams(e)})}var n3=A("ZodFile",(t,e)=>{P5.init(t,e),Me.init(t,e),t.min=(r,n)=>t.check(Bd(r,n)),t.max=(r,n)=>t.check(fy(r,n)),t.mime=(r,n)=>t.check(oR(Array.isArray(r)?r:[r],n))});function u0e(t){return TH(n3,t)}var qR=A("ZodTransform",(t,e)=>{IT.init(t,e),Me.init(t,e),t._zod.parse=(r,n)=>{r.addIssue=i=>{if(typeof i=="string")r.issues.push(Be.issue(i,r.value,e));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=t),a.continue??(a.continue=!0),r.issues.push(Be.issue(a))}};let s=e.transform(r.value,r);return s instanceof Promise?s.then(i=>(r.value=i,r)):(r.value=s,r)}});function FR(t){return new qR({type:"transform",transform:t})}var HR=A("ZodOptional",(t,e)=>{I5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Lt(t){return new HR({type:"optional",innerType:t})}var s3=A("ZodNullable",(t,e)=>{C5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function Xv(t){return new s3({type:"nullable",innerType:t})}function p0e(t){return Lt(Xv(t))}var i3=A("ZodDefault",(t,e)=>{O5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function a3(t,e){return new i3({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var o3=A("ZodPrefault",(t,e)=>{j5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function c3(t,e){return new o3({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():e}})}var BR=A("ZodNonOptional",(t,e)=>{A5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function l3(t,e){return new BR({type:"nonoptional",innerType:t,...Be.normalizeParams(e)})}var u3=A("ZodSuccess",(t,e)=>{N5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function d0e(t){return new u3({type:"success",innerType:t})}var p3=A("ZodCatch",(t,e)=>{D5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function d3(t,e){return new p3({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var m3=A("ZodNaN",(t,e)=>{z5.init(t,e),Me.init(t,e)});function m0e(t){return bH(m3,t)}var WR=A("ZodPipe",(t,e)=>{CT.init(t,e),Me.init(t,e),t.in=e.in,t.out=e.out});function ey(t,e){return new WR({type:"pipe",in:t,out:e})}var f3=A("ZodReadonly",(t,e)=>{M5.init(t,e),Me.init(t,e)});function h3(t){return new f3({type:"readonly",innerType:t})}var g3=A("ZodTemplateLiteral",(t,e)=>{$5.init(t,e),Me.init(t,e)});function f0e(t,e){return new g3({type:"template_literal",parts:t,...Be.normalizeParams(e)})}var v3=A("ZodLazy",(t,e)=>{U5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.getter()});function y3(t){return new v3({type:"lazy",getter:t})}var b3=A("ZodPromise",(t,e)=>{L5.init(t,e),Me.init(t,e),t.unwrap=()=>t._zod.def.innerType});function h0e(t){return new b3({type:"promise",innerType:t})}var Ey=A("ZodCustom",(t,e)=>{q5.init(t,e),Me.init(t,e)});function x3(t,e){let r=new Yt({check:"custom",...Be.normalizeParams(e)});return r._zod.check=t,r}function _3(t,e){return RH(Ey,t??(()=>!0),e)}function w3(t,e={}){return PH(Ey,t,e)}function S3(t,e){let r=x3(n=>(n.addIssue=s=>{if(typeof s=="string")n.issues.push(Be.issue(s,n.value,r._zod.def));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(Be.issue(i))}},t(n.value,n)),e);return r}function g0e(t,e={error:`Input not instance of ${t.name}`}){let r=new Ey({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...Be.normalizeParams(e)});return r._zod.bag.Class=t,r}var v0e=(...t)=>IH({Pipe:WR,Boolean:by,String:vy,Transform:qR},...t);function y0e(t){let e=y3(()=>vt([U(t),mt(),ar(),_y(),We(e),Ot(U(),e)]));return e}function ZR(t,e){return ey(FR(t),e)}var b0e={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function x0e(t){Qr({customError:t})}function _0e(){return Qr().customError}var k3={};ao(k3,{string:()=>w0e,number:()=>S0e,date:()=>T0e,boolean:()=>k0e,bigint:()=>E0e});function w0e(t){return Z5(vy,t)}function S0e(t){return X5(yy,t)}function k0e(t){return aH(by,t)}function E0e(t){return cH(xy,t)}function T0e(t){return yH(MR,t)}Qr(F5());var R0e="io.modelcontextprotocol/related-task",Ty="2.0",Rr=_3(t=>t!==null&&(typeof t=="object"||typeof t=="function")),E3=vt([U(),mt().int()]),T3=U(),P4e=Vr({ttl:vt([mt(),_y()]).optional(),pollInterval:mt().optional()}),P0e=oe({ttl:mt().optional()}),I0e=oe({taskId:U()}),GR=Vr({progressToken:E3.optional(),[R0e]:I0e.optional()}),Cn=oe({_meta:GR.optional()}),Ry=Cn.extend({task:P0e.optional()});var Pr=oe({method:U(),params:Cn.loose().optional()}),Qn=oe({_meta:GR.optional()}),Yn=oe({method:U(),params:Qn.loose().optional()}),Ir=Vr({_meta:GR.optional()}),Py=vt([U(),mt().int()]),C0e=oe({jsonrpc:de(Ty),id:Py,...Pr.shape}).strict();var O0e=oe({jsonrpc:de(Ty),...Yn.shape}).strict();var R3=oe({jsonrpc:de(Ty),id:Py,result:Ir}).strict();var TF;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(TF||(TF={}));var P3=oe({jsonrpc:de(Ty),id:Py.optional(),error:oe({code:mt().int(),message:U(),data:$t().optional()})}).strict();var I4e=vt([C0e,O0e,R3,P3]),C4e=vt([R3,P3]),I3=Ir.strict(),j0e=Qn.extend({requestId:Py.optional(),reason:U().optional()}),C3=Yn.extend({method:de("notifications/cancelled"),params:j0e}),A0e=oe({src:U(),mimeType:U().optional(),sizes:We(U()).optional(),theme:vn(["light","dark"]).optional()}),Qd=oe({icons:We(A0e).optional()}),cl=oe({name:U(),title:U().optional()}),O3=cl.extend({...cl.shape,...Qd.shape,version:U(),websiteUrl:U().optional(),description:U().optional()}),N0e=ky(oe({applyDefaults:ar().optional()}),Ot(U(),$t())),D0e=ZR(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,ky(oe({form:N0e.optional(),url:Rr.optional()}),Ot(U(),$t()).optional())),z0e=Vr({list:Rr.optional(),cancel:Rr.optional(),requests:Vr({sampling:Vr({createMessage:Rr.optional()}).optional(),elicitation:Vr({create:Rr.optional()}).optional()}).optional()}),M0e=Vr({list:Rr.optional(),cancel:Rr.optional(),requests:Vr({tools:Vr({call:Rr.optional()}).optional()}).optional()}),$0e=oe({experimental:Ot(U(),Rr).optional(),sampling:oe({context:Rr.optional(),tools:Rr.optional()}).optional(),elicitation:D0e.optional(),roots:oe({listChanged:ar().optional()}).optional(),tasks:z0e.optional()}),L0e=Cn.extend({protocolVersion:U(),capabilities:$0e,clientInfo:O3}),U0e=Pr.extend({method:de("initialize"),params:L0e}),q0e=oe({experimental:Ot(U(),Rr).optional(),logging:Rr.optional(),completions:Rr.optional(),prompts:oe({listChanged:ar().optional()}).optional(),resources:oe({subscribe:ar().optional(),listChanged:ar().optional()}).optional(),tools:oe({listChanged:ar().optional()}).optional(),tasks:M0e.optional()}),F0e=Ir.extend({protocolVersion:U(),capabilities:q0e,serverInfo:O3,instructions:U().optional()}),H0e=Yn.extend({method:de("notifications/initialized"),params:Qn.optional()}),j3=Pr.extend({method:de("ping"),params:Cn.optional()}),B0e=oe({progress:mt(),total:Lt(mt()),message:Lt(U())}),W0e=oe({...Qn.shape,...B0e.shape,progressToken:E3}),A3=Yn.extend({method:de("notifications/progress"),params:W0e}),Z0e=Cn.extend({cursor:T3.optional()}),Yd=Pr.extend({params:Z0e.optional()}),Xd=Ir.extend({nextCursor:T3.optional()}),G0e=vn(["working","input_required","completed","failed","cancelled"]),em=oe({taskId:U(),status:G0e,ttl:vt([mt(),_y()]),createdAt:U(),lastUpdatedAt:U(),pollInterval:Lt(mt()),statusMessage:Lt(U())}),N3=Ir.extend({task:em}),V0e=Qn.merge(em),D3=Yn.extend({method:de("notifications/tasks/status"),params:V0e}),z3=Pr.extend({method:de("tasks/get"),params:Cn.extend({taskId:U()})}),M3=Ir.merge(em),$3=Pr.extend({method:de("tasks/result"),params:Cn.extend({taskId:U()})}),O4e=Ir.loose(),L3=Yd.extend({method:de("tasks/list")}),U3=Xd.extend({tasks:We(em)}),q3=Pr.extend({method:de("tasks/cancel"),params:Cn.extend({taskId:U()})}),j4e=Ir.merge(em),F3=oe({uri:U(),mimeType:Lt(U()),_meta:Ot(U(),$t()).optional()}),H3=F3.extend({text:U()}),VR=U().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),B3=F3.extend({blob:VR}),tm=vn(["user","assistant"]),fl=oe({audience:We(tm).optional(),priority:mt().min(0).max(1).optional(),lastModified:mR.datetime({offset:!0}).optional()}),W3=oe({...cl.shape,...Qd.shape,uri:U(),description:Lt(U()),mimeType:Lt(U()),annotations:fl.optional(),_meta:Lt(Vr({}))}),K0e=oe({...cl.shape,...Qd.shape,uriTemplate:U(),description:Lt(U()),mimeType:Lt(U()),annotations:fl.optional(),_meta:Lt(Vr({}))}),J0e=Yd.extend({method:de("resources/list")}),Q0e=Xd.extend({resources:We(W3)}),Y0e=Yd.extend({method:de("resources/templates/list")}),X0e=Xd.extend({resourceTemplates:We(K0e)}),KR=Cn.extend({uri:U()}),ewe=KR,twe=Pr.extend({method:de("resources/read"),params:ewe}),rwe=Ir.extend({contents:We(vt([H3,B3]))}),nwe=Yn.extend({method:de("notifications/resources/list_changed"),params:Qn.optional()}),swe=KR,iwe=Pr.extend({method:de("resources/subscribe"),params:swe}),awe=KR,owe=Pr.extend({method:de("resources/unsubscribe"),params:awe}),cwe=Qn.extend({uri:U()}),lwe=Yn.extend({method:de("notifications/resources/updated"),params:cwe}),uwe=oe({name:U(),description:Lt(U()),required:Lt(ar())}),pwe=oe({...cl.shape,...Qd.shape,description:Lt(U()),arguments:Lt(We(uwe)),_meta:Lt(Vr({}))}),dwe=Yd.extend({method:de("prompts/list")}),mwe=Xd.extend({prompts:We(pwe)}),fwe=Cn.extend({name:U(),arguments:Ot(U(),U()).optional()}),hwe=Pr.extend({method:de("prompts/get"),params:fwe}),JR=oe({type:de("text"),text:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),QR=oe({type:de("image"),data:VR,mimeType:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),YR=oe({type:de("audio"),data:VR,mimeType:U(),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),gwe=oe({type:de("tool_use"),name:U(),id:U(),input:Ot(U(),$t()),_meta:Ot(U(),$t()).optional()}),vwe=oe({type:de("resource"),resource:vt([H3,B3]),annotations:fl.optional(),_meta:Ot(U(),$t()).optional()}),ywe=W3.extend({type:de("resource_link")}),XR=vt([JR,QR,YR,ywe,vwe]),bwe=oe({role:tm,content:XR}),xwe=Ir.extend({description:U().optional(),messages:We(bwe)}),_we=Yn.extend({method:de("notifications/prompts/list_changed"),params:Qn.optional()}),wwe=oe({title:U().optional(),readOnlyHint:ar().optional(),destructiveHint:ar().optional(),idempotentHint:ar().optional(),openWorldHint:ar().optional()}),Swe=oe({taskSupport:vn(["required","optional","forbidden"]).optional()}),Z3=oe({...cl.shape,...Qd.shape,description:U().optional(),inputSchema:oe({type:de("object"),properties:Ot(U(),Rr).optional(),required:We(U()).optional()}).catchall($t()),outputSchema:oe({type:de("object"),properties:Ot(U(),Rr).optional(),required:We(U()).optional()}).catchall($t()).optional(),annotations:wwe.optional(),execution:Swe.optional(),_meta:Ot(U(),$t()).optional()}),kwe=Yd.extend({method:de("tools/list")}),Ewe=Xd.extend({tools:We(Z3)}),G3=Ir.extend({content:We(XR).default([]),structuredContent:Ot(U(),$t()).optional(),isError:ar().optional()}),A4e=G3.or(Ir.extend({toolResult:$t()})),Twe=Ry.extend({name:U(),arguments:Ot(U(),$t()).optional()}),Rwe=Pr.extend({method:de("tools/call"),params:Twe}),Pwe=Yn.extend({method:de("notifications/tools/list_changed"),params:Qn.optional()}),N4e=oe({autoRefresh:ar().default(!0),debounceMs:mt().int().nonnegative().default(300)}),V3=vn(["debug","info","notice","warning","error","critical","alert","emergency"]),Iwe=Cn.extend({level:V3}),Cwe=Pr.extend({method:de("logging/setLevel"),params:Iwe}),Owe=Qn.extend({level:V3,logger:U().optional(),data:$t()}),jwe=Yn.extend({method:de("notifications/message"),params:Owe}),Awe=oe({name:U().optional()}),Nwe=oe({hints:We(Awe).optional(),costPriority:mt().min(0).max(1).optional(),speedPriority:mt().min(0).max(1).optional(),intelligencePriority:mt().min(0).max(1).optional()}),Dwe=oe({mode:vn(["auto","required","none"]).optional()}),zwe=oe({type:de("tool_result"),toolUseId:U().describe("The unique identifier for the corresponding tool call."),content:We(XR).default([]),structuredContent:oe({}).loose().optional(),isError:ar().optional(),_meta:Ot(U(),$t()).optional()}),Mwe=LR("type",[JR,QR,YR]),ty=LR("type",[JR,QR,YR,gwe,zwe]),$we=oe({role:tm,content:vt([ty,We(ty)]),_meta:Ot(U(),$t()).optional()}),Lwe=Ry.extend({messages:We($we),modelPreferences:Nwe.optional(),systemPrompt:U().optional(),includeContext:vn(["none","thisServer","allServers"]).optional(),temperature:mt().optional(),maxTokens:mt().int(),stopSequences:We(U()).optional(),metadata:Rr.optional(),tools:We(Z3).optional(),toolChoice:Dwe.optional()}),Uwe=Pr.extend({method:de("sampling/createMessage"),params:Lwe}),qwe=Ir.extend({model:U(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens"]).or(U())),role:tm,content:Mwe}),Fwe=Ir.extend({model:U(),stopReason:Lt(vn(["endTurn","stopSequence","maxTokens","toolUse"]).or(U())),role:tm,content:vt([ty,We(ty)])}),Hwe=oe({type:de("boolean"),title:U().optional(),description:U().optional(),default:ar().optional()}),Bwe=oe({type:de("string"),title:U().optional(),description:U().optional(),minLength:mt().optional(),maxLength:mt().optional(),format:vn(["email","uri","date","date-time"]).optional(),default:U().optional()}),Wwe=oe({type:vn(["number","integer"]),title:U().optional(),description:U().optional(),minimum:mt().optional(),maximum:mt().optional(),default:mt().optional()}),Zwe=oe({type:de("string"),title:U().optional(),description:U().optional(),enum:We(U()),default:U().optional()}),Gwe=oe({type:de("string"),title:U().optional(),description:U().optional(),oneOf:We(oe({const:U(),title:U()})),default:U().optional()}),Vwe=oe({type:de("string"),title:U().optional(),description:U().optional(),enum:We(U()),enumNames:We(U()).optional(),default:U().optional()}),Kwe=vt([Zwe,Gwe]),Jwe=oe({type:de("array"),title:U().optional(),description:U().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({type:de("string"),enum:We(U())}),default:We(U()).optional()}),Qwe=oe({type:de("array"),title:U().optional(),description:U().optional(),minItems:mt().optional(),maxItems:mt().optional(),items:oe({anyOf:We(oe({const:U(),title:U()}))}),default:We(U()).optional()}),Ywe=vt([Jwe,Qwe]),Xwe=vt([Vwe,Kwe,Ywe]),eSe=vt([Xwe,Hwe,Bwe,Wwe]),tSe=Ry.extend({mode:de("form").optional(),message:U(),requestedSchema:oe({type:de("object"),properties:Ot(U(),eSe),required:We(U()).optional()})}),rSe=Ry.extend({mode:de("url"),message:U(),elicitationId:U(),url:U().url()}),nSe=vt([tSe,rSe]),sSe=Pr.extend({method:de("elicitation/create"),params:nSe}),iSe=Qn.extend({elicitationId:U()}),aSe=Yn.extend({method:de("notifications/elicitation/complete"),params:iSe}),oSe=Ir.extend({action:vn(["accept","decline","cancel"]),content:ZR(t=>t===null?void 0:t,Ot(U(),vt([U(),mt(),ar(),We(U())])).optional())}),cSe=oe({type:de("ref/resource"),uri:U()}),lSe=oe({type:de("ref/prompt"),name:U()}),uSe=Cn.extend({ref:vt([lSe,cSe]),argument:oe({name:U(),value:U()}),context:oe({arguments:Ot(U(),U()).optional()}).optional()}),pSe=Pr.extend({method:de("completion/complete"),params:uSe});var dSe=Ir.extend({completion:Vr({values:We(U()).max(100),total:Lt(mt().int()),hasMore:Lt(ar())})}),mSe=oe({uri:U().startsWith("file://"),name:U().optional(),_meta:Ot(U(),$t()).optional()}),fSe=Pr.extend({method:de("roots/list"),params:Cn.optional()}),hSe=Ir.extend({roots:We(mSe)}),gSe=Yn.extend({method:de("notifications/roots/list_changed"),params:Qn.optional()}),D4e=vt([j3,U0e,pSe,Cwe,hwe,dwe,J0e,Y0e,twe,iwe,owe,Rwe,kwe,z3,$3,L3,q3]),z4e=vt([C3,A3,H0e,gSe,D3]),M4e=vt([I3,qwe,Fwe,oSe,hSe,M3,U3,N3]),$4e=vt([j3,Uwe,sSe,fSe,z3,$3,L3,q3]),L4e=vt([C3,A3,jwe,lwe,nwe,Pwe,_we,D3,aSe]),U4e=vt([I3,F0e,dSe,xwe,mwe,Q0e,X0e,rwe,G3,Ewe,M3,U3,N3]);var q4e=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var F4e=PF(DF(),1),H4e=PF(bhe(),1);var RF;(function(t){t.Completable="McpCompletable"})(RF||(RF={}));function vSe(t){let e;return()=>e??=t()}var B4e=vSe(()=>qc.object({session_id:qc.string(),ws_url:qc.string(),work_dir:qc.string().optional(),session_key:qc.string().optional()}));function K3(t){return Tye(t)}var ws=Y(require("fs"),1),hl=Y(require("path"),1),Q3=Y(require("os"),1),Y3=Y(require("readline"),1);se();var e1=hl.default.join(Q3.default.homedir(),".claude","projects"),J3=["[MEMORY]","MEMORY PROCESSING START","MEMORY PROCESSING CONTINUED","PROGRESS SUMMARY CHECKPOINT","expert observation and knowledge extraction","","pragmatic code reviewer"],bSe=1440*60*1e3;function X3(t){let e={deleted:0,failed:0,errors:[]};if(t.length===0)return e;let r;try{r=eB()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of t){if(!_Se(n)){e.errors.push(`Invalid session ID format: ${n}`),e.failed++;continue}let s=!1;for(let i of r)if(tB(i,n)){s=!0,e.deleted++;break}s||_.debug("CLEANUP","Session file not found (may already be cleaned up)",{claudeSessionId:n})}return e.deleted>0&&_.info("CLEANUP",`Deleted ${e.deleted} memory session files`,{sessionIds:t.slice(0,5),total:t.length}),e}async function t1(t=bSe){let e={deleted:0,failed:0,errors:[]},r;try{r=eB()}catch(n){return e.errors.push(`Failed to read projects directory: ${n}`),e}for(let n of r){let s;try{s=ws.default.readdirSync(n).filter(i=>i.endsWith(".jsonl"))}catch{continue}for(let i of s){let a=hl.default.join(n,i);try{if(!await xSe(a))continue;let c=i.replace(".jsonl","");tB(n,c)&&e.deleted++}catch(o){e.failed++,e.errors.push(`Failed to check ${i}: ${o}`)}}}return e.deleted>0&&_.info("CLEANUP",`Ephemeral session cleanup: deleted ${e.deleted} session files`),e}async function xSe(t){try{let e=ws.default.createReadStream(t,{encoding:"utf8"}),r=Y3.default.createInterface({input:e,crlfDelay:1/0}),n=!1;for await(let s of r)try{let i=JSON.parse(s);if(i.type==="last-prompt"&&i.lastPrompt&&J3.some(a=>i.lastPrompt.includes(a)))return r.close(),e.destroy(),!0;if(i.type==="user"){if(n)continue;n=!0;let a="",o=i.message?.content;if(typeof o=="string")a=o;else if(Array.isArray(o)){for(let c of o)if(c?.type==="text"&&c.text){a=c.text;break}}if(a&&J3.some(c=>a.includes(c)))return r.close(),e.destroy(),!0}}catch{}return r.close(),e.destroy(),!1}catch{return!1}}function eB(){return ws.default.existsSync(e1)?ws.default.readdirSync(e1).map(t=>hl.default.join(e1,t)).filter(t=>{try{return ws.default.statSync(t).isDirectory()}catch{return!1}}):[]}function tB(t,e){let r=!1,n=hl.default.join(t,`${e}.jsonl`);if(ws.default.existsSync(n))try{ws.default.unlinkSync(n),r=!0}catch(i){_.warn("CLEANUP","Failed to delete session JSONL",{claudeSessionId:e,error:String(i)})}let s=hl.default.join(t,e);if(ws.default.existsSync(s))try{ws.default.statSync(s).isDirectory()&&(ws.default.rmSync(s,{recursive:!0,force:!0}),r=!0)}catch(i){_.warn("CLEANUP","Failed to delete session directory",{claudeSessionId:e,error:String(i)})}return r}function _Se(t){return/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)}var rB=1e5,Iy=class{dbManager;sessionManager;constructor(e,r){this.dbManager=e,this.sessionManager=r}async startSession(e,r){let n,s=this.findClaudeExecutable(),i=this.getModelId(),a=["Bash","Read","Write","Edit","Grep","Glob","WebFetch","WebSearch","Task","NotebookEdit","AskUserQuestion","TodoWrite"];if(!e.memorySessionId)throw new Error(`Session ${e.sessionDbId} has no memory_session_id - this should not happen`);_.info("SDK","Starting SDK V2 session",{sessionDbId:e.sessionDbId,contentSessionId:e.contentSessionId,memorySessionId:e.memorySessionId,lastPromptNumber:e.lastPromptNumber});let o=I6(),c=this.createSDKSession(i,s,a);try{let l=et.getInstance().getActiveMode(),p=e.lastPromptNumber===1?u6(e.project,e.contentSessionId,e.userPrompt,l):Xk(e.userPrompt,e.lastPromptNumber,e.contentSessionId,l);e.conversationHistory.push({role:"user",content:p}),await c.send(p),await this.processStreamResponse(c,e,r,n),this.captureClaudeSessionId(c,e);for await(let m of this.sessionManager.getMessageBatchIterator(e.sessionDbId)){if(e.abortController.signal.aborted){_.warn("SDK","Session aborted",{sessionId:e.sessionDbId});break}let f=m.filter(g=>g.type==="observation"),v=m.filter(g=>g.type==="summarize");if(m.length>1&&_.info("SDK","Processing batch",{sessionId:e.sessionDbId,total:m.length,observations:f.length,summarizes:v.length}),f.length>0){for(let y of f)y.cwd&&(n=y.cwd),y.prompt_number!==void 0&&(e.lastPromptNumber=y.prompt_number);let g=f.map(y=>({id:0,tool_name:y.tool_name,tool_input:JSON.stringify(y.tool_input),tool_output:JSON.stringify(y.tool_response),created_at_epoch:y._originalTimestamp??Date.now(),cwd:y.cwd})),h=f.length===1?Yk(g[0]):p6(g);if(e.conversationHistory.push({role:"user",content:h}),e.conversationHistory.length>12){let y=e.conversationHistory.slice(0,2),b=e.conversationHistory.slice(-10);e.conversationHistory.length=0,e.conversationHistory.push(...y,...b)}await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}for(let g of v){if(e.abortController.signal.aborted)break;let h=d6({id:e.sessionDbId,memory_session_id:e.memorySessionId,project:e.project,user_prompt:e.userPrompt,last_assistant_message:g.last_assistant_message||""},l);e.conversationHistory.push({role:"user",content:h}),await c.send(h),await this.processStreamResponse(c,e,r,n),c=await this.maybeRotateSession(c,e,i,s,a,l,r,n)}}let d=Date.now()-e.startTime;_.success("SDK","V2 Agent completed",{sessionId:e.sessionDbId,duration:`${(d/1e3).toFixed(1)}s`})}finally{if(this.captureClaudeSessionId(c,e),c.close(),e.claudeSessionIds.length>0)try{let l=X3(e.claudeSessionIds);l.deleted>0&&_.info("SDK","Cleaned up Claude session files",{sessionId:e.sessionDbId,deletedFiles:l.deleted,trackedIds:e.claudeSessionIds.length})}catch(l){_.warn("SDK","Failed to clean up Claude session files",{sessionId:e.sessionDbId},l)}o&&o()}}async processStreamResponse(e,r,n,s){let i=r.earliestPendingTimestamp;for await(let a of e.stream())if(a.type==="assistant"){let o=a.message.content,c=Array.isArray(o)?o.filter(m=>m.type==="text").map(m=>m.text).join(` `):typeof o=="string"?o:"",l=c.length,u=r.cumulativeInputTokens+r.cumulativeOutputTokens,p=a.message.usage;p&&(r.cumulativeInputTokens+=p.input_tokens||0,r.cumulativeOutputTokens+=p.output_tokens||0,p.cache_creation_input_tokens&&(r.cumulativeInputTokens+=p.cache_creation_input_tokens),_.debug("SDK","Token usage captured",{sessionId:r.sessionDbId,inputTokens:p.input_tokens,outputTokens:p.output_tokens,cumulativeInput:r.cumulativeInputTokens,cumulativeOutput:r.cumulativeOutputTokens}));let d=r.cumulativeInputTokens+r.cumulativeOutputTokens-u;if(l>0){let m=l>100?c.substring(0,100)+"...":c;_.dataOut("SDK",`V2 Response received (${l} chars)`,{sessionId:r.sessionDbId,promptNumber:r.lastPromptNumber},m)}await aE(c,r,this.dbManager,this.sessionManager,n,d,i,"SDK",s)}}createSDKSession(e,r,n){return K3({model:e,disallowedTools:n,pathToClaudeCodeExecutable:r})}async maybeRotateSession(e,r,n,s,i,a,o,c){let l=r.cumulativeInputTokens+r.cumulativeOutputTokens;if(l<=rB)return e;_.info("SDK","Rotating SDK session due to token limit",{totalTokens:l,threshold:rB});try{e.close()}catch(d){_.warn("SDK","Error closing session during rotation",{},d)}let u=this.createSDKSession(n,s,i),p=Xk(r.userPrompt,r.lastPromptNumber,r.contentSessionId,a);return await u.send(p),await this.processStreamResponse(u,r,o,c),this.captureClaudeSessionId(u,r),r.cumulativeInputTokens=0,r.cumulativeOutputTokens=0,u}captureClaudeSessionId(e,r){try{let n=e.sessionId;n&&!r.claudeSessionIds.includes(n)&&(r.claudeSessionIds.push(n),_.debug("SDK","Captured Claude session ID for cleanup",{sessionId:r.sessionDbId,claudeSessionId:n,totalTracked:r.claudeSessionIds.length}))}catch{}}findClaudeExecutable(){let e=je.loadFromFile(Ht);if(e.CLAUDE_CODE_PATH){let{existsSync:r}=require("fs");if(!r(e.CLAUDE_CODE_PATH))throw new Error(`CLAUDE_CODE_PATH is set to "${e.CLAUDE_CODE_PATH}" but the file does not exist.`);return e.CLAUDE_CODE_PATH}try{let r=(0,nB.execSync)(process.platform==="win32"?"where claude":"which claude",{encoding:"utf8",windowsHide:!0,stdio:["ignore","pipe","ignore"]}).trim().split(` `)[0].trim();if(r)return r}catch(r){_.debug("SDK","Claude executable auto-detection failed",{},r)}throw new Error(`Claude executable not found. Please either: 1. Add "claude" to your system PATH, or @@ -1388,7 +1388,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs. SELECT up.id, up.content_session_id, s.project, up.prompt_number, up.prompt_text, up.created_at, up.created_at_epoch FROM user_prompts up JOIN sdk_sessions s ON up.content_session_id = s.content_session_id - `,a=[];n&&(i+=" WHERE s.project = ?",a.push(n)),i+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",a.push(r+1,e);let c=s.prepare(i).all(...a);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,s,i){let a=wSe[e];if(!a||!a.includes(r))throw new Error(`Disallowed query: table=${e}`);let o=this.dbManager.getSessionStore().db,c=`SELECT ${r} FROM ${e}`,l=[];i&&(c+=" WHERE project = ?",l.push(i)),c+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",l.push(s+1,n);let p=o.prepare(c).all(...l);return{items:p.slice(0,s),hasMore:p.length>s,offset:n,limit:s}}};var aB=require("path");se();jc();Hn();var hi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid"||e==="vector",fellBack:!1,strategy:e}}};var Tt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};se();var gl=class extends hi{constructor(r,n){super();this.vectorSync=r;this.sessionStore=n}vectorSync;sessionStore;name="vector";canHandle(r){return!!r.query&&!!this.vectorSync}async search(r){let{query:n,searchType:s="all",obsType:i,concepts:a,files:o,limit:c=Tt.DEFAULT_LIMIT,project:l,orderBy:u="date_desc"}=r;if(!n)return this.emptyResult("vector");let p=s==="all"||s==="observations",d=s==="all"||s==="sessions",m=s==="all"||s==="prompts",f=[],v=[],g=[];try{let h=this.buildWhereFilter(s);_.debug("SEARCH","VectorSearchStrategy: Querying vector DB",{query:n,searchType:s});let y=await this.vectorSync.query(n,Tt.CHROMA_BATCH_SIZE,h);if(_.debug("SEARCH","VectorSearchStrategy: Vector DB returned matches",{matchCount:y.ids.length}),y.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"vector"};let b=this.filterByRecency(y);_.debug("SEARCH","VectorSearchStrategy: Filtered by recency",{count:b.length});let x=this.categorizeByDocType(b,{searchObservations:p,searchSessions:d,searchPrompts:m});if(x.obsIds.length>0){let w={type:i,concepts:a,files:o,orderBy:u,limit:c,project:l};f=this.sessionStore.getObservationsByIds(x.obsIds,w)}return x.sessionIds.length>0&&(v=this.sessionStore.getSessionSummariesByIds(x.sessionIds,{orderBy:u,limit:c,project:l})),x.promptIds.length>0&&(g=this.sessionStore.getUserPromptsByIds(x.promptIds,{orderBy:u,limit:c,project:l})),_.debug("SEARCH","VectorSearchStrategy: Hydrated results",{observations:f.length,sessions:v.length,prompts:g.length}),{results:{observations:f,sessions:v,prompts:g},usedChroma:!0,fellBack:!1,strategy:"vector"}}catch(h){return _.error("SEARCH","VectorSearchStrategy: Search failed",{},h),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"vector"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-Tt.RECENCY_WINDOW_MS;return r.metadatas.map((s,i)=>({id:r.ids[i],meta:s})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let s=[],i=[],a=[];for(let o of r){let c=o.meta?.doc_type;c==="observation"&&n.searchObservations?s.push(o.id):c==="session_summary"&&n.searchSessions?i.push(o.id):c==="user_prompt"&&n.searchPrompts&&a.push(o.id)}return{obsIds:s,sessionIds:i,promptIds:a}}};se();var rm=class extends hi{constructor(r){super();this.sessionSearch=r}sessionSearch;name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:s,concepts:i,files:a,limit:o=Tt.DEFAULT_LIMIT,offset:c=0,project:l,dateRange:u,orderBy:p="date_desc"}=r,d=n==="all"||n==="observations",m=n==="all"||n==="sessions",f=n==="all"||n==="prompts",v=[],g=[],h=[],y={limit:o,offset:c,orderBy:p,project:l,dateRange:u};_.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!u,hasProject:!!l});try{if(d){let b={...y,type:s,concepts:i,files:a};v=this.sessionSearch.searchObservations(void 0,b)}return m&&(g=this.sessionSearch.searchSessions(void 0,y)),f&&(h=this.sessionSearch.searchUserPrompts(void 0,y)),_.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:v.length,sessions:g.length,prompts:h.length}),{results:{observations:v,sessions:g,prompts:h},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return _.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:s,project:i,dateRange:a,orderBy:o})}};se();var nm=class extends hi{constructor(r,n,s){super();this.vectorSync=r;this.sessionStore=n;this.sessionSearch=s}vectorSync;sessionStore;sessionSearch;name="hybrid";canHandle(r){return!!this.vectorSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:s=Tt.DEFAULT_LIMIT,project:i}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let l=this.sessionSearch.findByConcept(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let u=l.map(m=>m.id),p=await this.vectorSync.query(r,Math.min(u.length,Tt.CHROMA_BATCH_SIZE)),d=this.intersectWithRanking(u,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:d.length}),d.length>0){let m=this.sessionStore.getObservationsByIds(d,{limit:s});return m.sort((f,v)=>d.indexOf(f.id)-d.indexOf(v.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return _.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},l),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o},l=Array.isArray(r)?r.join(", "):r;try{_.debug("SEARCH","HybridSearchStrategy: findByType",{type:l});let u=this.sessionSearch.findByType(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let p=u.map(f=>f.id),d=await this.vectorSync.query(l,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((v,g)=>m.indexOf(v.id)-m.indexOf(g.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return _.error("SEARCH","HybridSearchStrategy: findByType failed",{},u),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let l=this.sessionSearch.findByFile(r,c);_.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:l.observations.length,sessions:l.sessions.length});let u=l.sessions;if(l.observations.length===0)return{observations:[],sessions:u,usedChroma:!1};let p=l.observations.map(f=>f.id),d=await this.vectorSync.query(r,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((v,g)=>m.indexOf(v.id)-m.indexOf(g.id)),{observations:f,sessions:u,usedChroma:!0}}return{observations:[],sessions:u,usedChroma:!1}}catch(l){_.error("SEARCH","HybridSearchStrategy: findByFile failed",{},l);let u=this.sessionSearch.findByFile(r,c);return{observations:u.observations,sessions:u.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let s=new Set(r),i=[];for(let a of n)s.has(a)&&!i.includes(a)&&i.push(a);return i}};Hn();jc();var SSe=4,sm=class{formatSearchResults(e,r,n=!1){let s=e.observations.length+e.sessions.length+e.prompts.length;if(s===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let i=this.combineResults(e);i.sort((l,u)=>u.epoch-l.epoch);let a=process.cwd(),o=Ba(i,l=>l.created_at),c=[];c.push(`Found ${s} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[l,u]of o){c.push(`### ${l}`),c.push("");let p=new Map;for(let d of u){let m="General";if(d.type==="observation"){let f=d.data;m=hs(f.files_modified,a,f.files_read)}p.has(m)||p.set(m,[]),p.get(m).push(d)}for(let[d,m]of p){c.push(`**${d}**`),c.push(this.formatSearchTableHeader());let f="";for(let v of m)if(v.type==="observation"){let g=this.formatObservationSearchRow(v.data,f);c.push(g.row),f=g.time}else if(v.type==="session"){let g=this.formatSessionSearchRow(v.data,f);c.push(g.row),f=g.time}else{let g=this.formatPromptSearchRow(v.data,f);c.push(g.row),f=g.time}c.push("")}}return c.join(` + `,a=[];n&&(i+=" WHERE s.project = ?",a.push(n)),i+=" ORDER BY up.created_at_epoch DESC LIMIT ? OFFSET ?",a.push(r+1,e);let c=s.prepare(i).all(...a);return{items:c.slice(0,r),hasMore:c.length>r,offset:e,limit:r}}paginate(e,r,n,s,i){let a=wSe[e];if(!a||!a.includes(r))throw new Error(`Disallowed query: table=${e}`);let o=this.dbManager.getSessionStore().db,c=`SELECT ${r} FROM ${e}`,l=[];i&&(c+=" WHERE project = ?",l.push(i)),c+=" ORDER BY created_at_epoch DESC LIMIT ? OFFSET ?",l.push(s+1,n);let p=o.prepare(c).all(...l);return{items:p.slice(0,s),hasMore:p.length>s,offset:n,limit:s}}};var aB=require("path");se();jc();Hn();var hi=class{emptyResult(e){return{results:{observations:[],sessions:[],prompts:[]},usedChroma:e==="chroma"||e==="hybrid"||e==="vector",fellBack:!1,strategy:e}}};var Tt={RECENCY_WINDOW_DAYS:90,RECENCY_WINDOW_MS:7776e6,DEFAULT_LIMIT:20,CHROMA_BATCH_SIZE:100};se();var gl=class extends hi{constructor(r,n){super();this.vectorSync=r;this.sessionStore=n}vectorSync;sessionStore;name="vector";canHandle(r){return!!r.query&&!!this.vectorSync}async search(r){let{query:n,searchType:s="all",obsType:i,concepts:a,files:o,limit:c=Tt.DEFAULT_LIMIT,project:l,orderBy:u="date_desc"}=r;if(!n)return this.emptyResult("vector");let p=s==="all"||s==="observations",d=s==="all"||s==="sessions",m=s==="all"||s==="prompts",f=[],v=[],g=[];try{let h=this.buildWhereFilter(s);_.debug("SEARCH","VectorSearchStrategy: Querying vector DB",{query:n,searchType:s});let y=await this.vectorSync.query(n,Tt.CHROMA_BATCH_SIZE,h);if(_.debug("SEARCH","VectorSearchStrategy: Vector DB returned matches",{matchCount:y.ids.length}),y.ids.length===0)return{results:{observations:[],sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"vector"};let b=this.filterByRecency(y);_.debug("SEARCH","VectorSearchStrategy: Filtered by recency",{count:b.length});let x=this.categorizeByDocType(b,{searchObservations:p,searchSessions:d,searchPrompts:m});if(x.obsIds.length>0){let w={type:i,concepts:a,files:o,orderBy:u,limit:c,project:l};f=this.sessionStore.getObservationsByIds(x.obsIds,w)}return x.sessionIds.length>0&&(v=this.sessionStore.getSessionSummariesByIds(x.sessionIds,{orderBy:u,limit:c,project:l})),x.promptIds.length>0&&(g=this.sessionStore.getUserPromptsByIds(x.promptIds,{orderBy:u,limit:c,project:l})),_.debug("SEARCH","VectorSearchStrategy: Hydrated results",{observations:f.length,sessions:v.length,prompts:g.length}),{results:{observations:f,sessions:v,prompts:g},usedChroma:!0,fellBack:!1,strategy:"vector"}}catch(h){return _.error("SEARCH","VectorSearchStrategy: Search failed",{},h),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"vector"}}}buildWhereFilter(r){switch(r){case"observations":return{doc_type:"observation"};case"sessions":return{doc_type:"session_summary"};case"prompts":return{doc_type:"user_prompt"};default:return}}filterByRecency(r){let n=Date.now()-Tt.RECENCY_WINDOW_MS;return r.metadatas.map((s,i)=>({id:r.ids[i],meta:s})).filter(s=>s.meta&&s.meta.created_at_epoch>n)}categorizeByDocType(r,n){let s=[],i=[],a=[];for(let o of r){let c=o.meta?.doc_type;c==="observation"&&n.searchObservations?s.push(o.id):c==="session_summary"&&n.searchSessions?i.push(o.id):c==="user_prompt"&&n.searchPrompts&&a.push(o.id)}return{obsIds:s,sessionIds:i,promptIds:a}}};se();var rm=class extends hi{constructor(r){super();this.sessionSearch=r}sessionSearch;name="sqlite";canHandle(r){return!r.query||r.strategyHint==="sqlite"}async search(r){let{searchType:n="all",obsType:s,concepts:i,files:a,limit:o=Tt.DEFAULT_LIMIT,offset:c=0,project:l,dateRange:u,orderBy:p="date_desc"}=r,d=n==="all"||n==="observations",m=n==="all"||n==="sessions",f=n==="all"||n==="prompts",v=[],g=[],h=[],y={limit:o,offset:c,orderBy:p,project:l,dateRange:u};_.debug("SEARCH","SQLiteSearchStrategy: Filter-only query",{searchType:n,hasDateRange:!!u,hasProject:!!l});try{if(d){let b={...y,type:s,concepts:i,files:a};v=this.sessionSearch.searchObservations(void 0,b)}return m&&(g=this.sessionSearch.searchSessions(void 0,y)),f&&(h=this.sessionSearch.searchUserPrompts(void 0,y)),_.debug("SEARCH","SQLiteSearchStrategy: Results",{observations:v.length,sessions:g.length,prompts:h.length}),{results:{observations:v,sessions:g,prompts:h},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}catch(b){return _.error("SEARCH","SQLiteSearchStrategy: Search failed",{},b),this.emptyResult("sqlite")}}findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByConcept(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByType(r,{limit:s,project:i,dateRange:a,orderBy:o})}findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o="date_desc"}=n;return this.sessionSearch.findByFile(r,{limit:s,project:i,dateRange:a,orderBy:o})}};se();var nm=class extends hi{constructor(r,n,s){super();this.vectorSync=r;this.sessionStore=n;this.sessionSearch=s}vectorSync;sessionStore;sessionSearch;name="hybrid";canHandle(r){return!!this.vectorSync&&(!!r.concepts||!!r.files||!!r.type&&!!r.query||r.strategyHint==="hybrid")}async search(r){let{query:n,limit:s=Tt.DEFAULT_LIMIT,project:i}=r;return n?this.emptyResult("hybrid"):this.emptyResult("hybrid")}async findByConcept(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByConcept",{concept:r});let l=this.sessionSearch.findByConcept(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:l.length}),l.length===0)return this.emptyResult("hybrid");let u=l.map(m=>m.id),p=await this.vectorSync.query(r,Math.min(u.length,Tt.CHROMA_BATCH_SIZE)),d=this.intersectWithRanking(u,p.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:d.length}),d.length>0){let m=this.sessionStore.getObservationsByIds(d,{limit:s});return m.sort((f,v)=>d.indexOf(f.id)-d.indexOf(v.id)),{results:{observations:m,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(l){return _.error("SEARCH","HybridSearchStrategy: findByConcept failed",{},l),{results:{observations:this.sessionSearch.findByConcept(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByType(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o},l=Array.isArray(r)?r.join(", "):r;try{_.debug("SEARCH","HybridSearchStrategy: findByType",{type:l});let u=this.sessionSearch.findByType(r,c);if(_.debug("SEARCH","HybridSearchStrategy: Found metadata matches",{count:u.length}),u.length===0)return this.emptyResult("hybrid");let p=u.map(f=>f.id),d=await this.vectorSync.query(l,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked by semantic relevance",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((v,g)=>m.indexOf(v.id)-m.indexOf(g.id)),{results:{observations:f,sessions:[],prompts:[]},usedChroma:!0,fellBack:!1,strategy:"hybrid"}}return this.emptyResult("hybrid")}catch(u){return _.error("SEARCH","HybridSearchStrategy: findByType failed",{},u),{results:{observations:this.sessionSearch.findByType(r,c),sessions:[],prompts:[]},usedChroma:!1,fellBack:!0,strategy:"hybrid"}}}async findByFile(r,n){let{limit:s=Tt.DEFAULT_LIMIT,project:i,dateRange:a,orderBy:o}=n,c={limit:s,project:i,dateRange:a,orderBy:o};try{_.debug("SEARCH","HybridSearchStrategy: findByFile",{filePath:r});let l=this.sessionSearch.findByFile(r,c);_.debug("SEARCH","HybridSearchStrategy: Found file matches",{observations:l.observations.length,sessions:l.sessions.length});let u=l.sessions;if(l.observations.length===0)return{observations:[],sessions:u,usedChroma:!1};let p=l.observations.map(f=>f.id),d=await this.vectorSync.query(r,Math.min(p.length,Tt.CHROMA_BATCH_SIZE)),m=this.intersectWithRanking(p,d.ids);if(_.debug("SEARCH","HybridSearchStrategy: Ranked observations",{count:m.length}),m.length>0){let f=this.sessionStore.getObservationsByIds(m,{limit:s});return f.sort((v,g)=>m.indexOf(v.id)-m.indexOf(g.id)),{observations:f,sessions:u,usedChroma:!0}}return{observations:[],sessions:u,usedChroma:!1}}catch(l){_.error("SEARCH","HybridSearchStrategy: findByFile failed",{},l);let u=this.sessionSearch.findByFile(r,c);return{observations:u.observations,sessions:u.sessions,usedChroma:!1}}}intersectWithRanking(r,n){let s=new Set(r),i=[];for(let a of n)s.has(a)&&!i.includes(a)&&i.push(a);return i}};Hn();jc();var SSe=4,sm=class{formatSearchResults(e,r,n=!1){let s=e.observations.length+e.sessions.length+e.prompts.length;if(s===0)return n?this.formatChromaFailureMessage():`No results found matching "${r}"`;let i=this.combineResults(e);i.sort((l,u)=>u.epoch-l.epoch);let a=process.cwd(),o=Wa(i,l=>l.created_at),c=[];c.push(`Found ${s} result(s) matching "${r}" (${e.observations.length} obs, ${e.sessions.length} sessions, ${e.prompts.length} prompts)`),c.push("");for(let[l,u]of o){c.push(`### ${l}`),c.push("");let p=new Map;for(let d of u){let m="General";if(d.type==="observation"){let f=d.data;m=hs(f.files_modified,a,f.files_read)}p.has(m)||p.set(m,[]),p.get(m).push(d)}for(let[d,m]of p){c.push(`**${d}**`),c.push(this.formatSearchTableHeader());let f="";for(let v of m)if(v.type==="observation"){let g=this.formatObservationSearchRow(v.data,f);c.push(g.row),f=g.time}else if(v.type==="session"){let g=this.formatSessionSearchRow(v.data,f);c.push(g.row),f=g.time}else{let g=this.formatPromptSearchRow(v.data,f);c.push(g.row),f=g.time}c.push("")}}return c.join(` `)}combineResults(e){return[...e.observations.map(r=>({type:"observation",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.sessions.map(r=>({type:"session",data:r,epoch:r.created_at_epoch,created_at:r.created_at})),...e.prompts.map(r=>({type:"prompt",data:r,epoch:r.created_at_epoch,created_at:r.created_at}))]}formatSearchTableHeader(){return`| ID | Time | T | Title | Read | |----|------|---|-------|------|`}formatTableHeader(){return`| ID | Time | T | Title | Read | Work | |-----|------|---|-------|------|------|`}formatObservationSearchRow(e,r){let n=`#${e.id}`,s=Wr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e);return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | ~${o} |`,time:s}}formatSessionSearchRow(e,r){let n=`#S${e.id}`,s=Wr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatPromptSearchRow(e,r){let n=`#P${e.id}`,s=Wr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return{row:`| ${n} | ${s===r?'"':s} | ${i} | ${a} | - |`,time:s}}formatObservationIndex(e,r){let n=`#${e.id}`,s=Wr(e.created_at_epoch),i=et.getInstance().getTypeIcon(e.type),a=e.title||"Untitled",o=this.estimateReadTokens(e),c=et.getInstance().getWorkEmoji(e.type),l=e.discovery_tokens||0,u=l>0?`${c} ${l}`:"-";return`| ${n} | ${s} | ${i} | ${a} | ~${o} | ${u} |`}formatSessionIndex(e,r){let n=`#S${e.id}`,s=Wr(e.created_at_epoch),i="\u{1F3AF}",a=e.request||`Session ${e.memory_session_id?.substring(0,8)||"unknown"}`;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}formatPromptIndex(e,r){let n=`#P${e.id}`,s=Wr(e.created_at_epoch),i="\u{1F4AC}",a=e.prompt_text.length>60?e.prompt_text.substring(0,57)+"...":e.prompt_text;return`| ${n} | ${s} | ${i} | ${a} | - | - |`}estimateReadTokens(e){let r=(e.title?.length||0)+(e.subtitle?.length||0)+(e.narrative?.length||0)+(e.facts?.length||0);return Math.ceil(r/SSe)}formatChromaFailureMessage(){return`Vector search failed - semantic search unavailable. @@ -1407,14 +1407,14 @@ Search Strategy: Tips: - Filter by type: obs_type="bugfix,feature" - Filter by date: dateStart="2025-01-01" -- Sort: orderBy="date_desc" or "date_asc"`}};Hn();jc();var lo=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=this.findAnchorIndex(e,r,n);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(i=>i.type==="observation"&&i.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let i=parseInt(r.slice(1),10);return e.findIndex(a=>a.type==="session"&&a.data.id===i)}let s=e.findIndex(i=>i.epoch>=n);return s===-1?e.length-1:s}formatTimeline(e,r,n={}){let{query:s,depthBefore:i,depthAfter:a,cwd:o=process.cwd()}=n;if(e.length===0)return s?`Found observation matching "${s}", but no timeline context available.`:"No timeline items found";let c=[];if(s&&r){let p=e.find(m=>m.type==="observation"&&m.data.id===r),d=p?p.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${s}"`),c.push(`**Anchor:** Observation #${r} - ${d}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");i!==void 0&&a!==void 0?c.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let l=this.groupByDay(e),u=this.sortDaysChronologically(l);for(let[p,d]of u){c.push(`### ${p}`),c.push("");let m=null,f="",v=!1;for(let g of d){let h=this.isAnchorItem(g,r);if(g.type==="session"){v&&(c.push(""),v=!1,m=null,f="");let y=g.data,b=y.request||"Session summary",x=h?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${y.id}** ${b} (${Bn(g.epoch)})${x}`),c.push("")}else if(g.type==="prompt"){v&&(c.push(""),v=!1,m=null,f="");let y=g.data,b=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;c.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${Bn(g.epoch)})`),c.push(`> ${b}`),c.push("")}else if(g.type==="observation"){let y=g.data,b=hs(y.files_modified,o,y.files_read);b!==m&&(v&&c.push(""),c.push(`**${b}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),m=b,v=!0,f="");let x=et.getInstance().getTypeIcon(y.type),w=Wr(g.epoch),S=y.title||"Untitled",k=Oc(y.narrative),R=w!==f?w:'"';f=w;let O=h?" <- **ANCHOR**":"";c.push(`| #${y.id} | ${R} | ${x} | ${S}${O} | ~${k} |`)}}v&&c.push("")}return c.join(` -`)}groupByDay(e){let r=new Map;for(let n of e){let s=ii(n.epoch);r.has(s)||r.set(s,[]),r.get(s).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let s=new Date(r[0]).getTime(),i=new Date(n[0]).getTime();return s-i})}isAnchorItem(e,r){return r===null?!1:typeof r=="number"&&e.type==="observation"?e.data.id===r:typeof r=="string"&&r.startsWith("S")&&e.type==="session"?`S${e.data.id}`===r:!1}};se();var im=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.sqliteStrategy=new rm(e),n&&(this.vectorStrategy=new gl(n,r),this.hybridStrategy=new nm(n,r,e)),this.resultFormatter=new sm,this.timelineBuilder=new lo}sessionSearch;sessionStore;vectorSync;vectorStrategy=null;sqliteStrategy;hybridStrategy=null;resultFormatter;timelineBuilder;async search(e){let r=this.normalizeParams(e);return await this.executeWithFallback(r)}async executeWithFallback(e){if(!e.query)return _.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.vectorStrategy){_.debug("SEARCH","Orchestrator: Using vector semantic search",{});let r=await this.vectorStrategy.search(e);return r.usedChroma?r:(_.debug("SEARCH","Orchestrator: Vector search failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return _.debug("SEARCH","Orchestrator: Vector DB not available",{}),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByConcept(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByConcept(e,n):{results:{observations:this.sqliteStrategy.findByConcept(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByType(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByType(e,n):{results:{observations:this.sqliteStrategy.findByType(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByFile(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByFile(e,n):{...this.sqliteStrategy.findByFile(e,n),usedChroma:!1}}getTimeline(e,r,n,s,i){let a=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(a,r,n,s,i)}formatTimeline(e,r,n={}){return this.timelineBuilder.formatTimeline(e,r,n)}formatSearchResults(e,r,n=!1){return this.resultFormatter.formatSearchResults(e,r,n)}getFormatter(){return this.resultFormatter}getTimelineBuilder(){return this.timelineBuilder}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obsType=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean),delete r.obs_type),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&!r.searchType&&["observations","sessions","prompts"].includes(r.type)&&(r.searchType=r.type,delete r.type),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}isVectorDbAvailable(){return!!this.vectorSync}isChromaAvailable(){return this.isVectorDbAvailable()}};var Oy=class{constructor(e,r,n,s,i){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.formatter=s;this.timelineService=i;this.orchestrator=new im(e,r,n),this.timelineBuilder=new lo}sessionSearch;sessionStore;vectorSync;formatter;timelineService;orchestrator;timelineBuilder;async queryVector(e,r,n){return await this.vectorSync.query(e,r,n)}normalizeParams(e){let r={...e};return r.filePath&&!r.files&&(r.files=r.filePath,delete r.filePath),r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r.isFolder==="true"?r.isFolder=!0:r.isFolder==="false"&&(r.isFolder=!1),r}async search(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,concepts:a,files:o,format:c,...l}=r,u=[],p=[],d=[],m=!1,f=!s||s==="observations",v=!s||s==="sessions",g=!s||s==="prompts";if(!n||n==="*"){_.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...l,type:i,concepts:a,files:o};f&&(u=this.sessionSearch.searchObservations(void 0,E)),v&&(p=this.sessionSearch.searchSessions(void 0,l)),g&&(d=this.sessionSearch.searchUserPrompts(void 0,l))}else if(this.vectorSync){let E=!1;_.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:s||"all"});let R;s==="observations"?R={doc_type:"observation"}:s==="sessions"?R={doc_type:"session_summary"}:s==="prompts"&&(R={doc_type:"user_prompt"});let O=await this.queryVector(n,100,R);if(E=!0,_.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:O.ids.length}),O.ids.length>0){let C=Date.now()-Tt.RECENCY_WINDOW_MS,$=O.metadatas.map((G,yt)=>({id:O.ids[yt],meta:G,isRecent:G&&G.created_at_epoch>C})).filter(G=>G.isRecent);_.debug("SEARCH","Results within 90-day window",{count:$.length});let q=[],B=[],re=[];for(let G of $){let yt=G.meta?.doc_type;yt==="observation"&&f?q.push(G.id):yt==="session_summary"&&v?B.push(G.id):yt==="user_prompt"&&g&&re.push(G.id)}if(_.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:B.length,prompts:d.length}),q.length>0){let G={...l,type:i,concepts:a,files:o};u=this.sessionStore.getObservationsByIds(q,G)}B.length>0&&(p=this.sessionStore.getSessionSummariesByIds(B,{orderBy:"date_desc",limit:l.limit,project:l.project})),re.length>0&&(d=this.sessionStore.getUserPromptsByIds(re,{orderBy:"date_desc",limit:l.limit,project:l.project})),_.debug("SEARCH","Hydrated results from SQLite",{observations:u.length,sessions:p.length,prompts:d.length})}else _.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(m=!0,_.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),_.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),u=[],p=[],d=[]);let h=u.length+p.length+d.length;if(c==="json")return{observations:u,sessions:p,prompts:d,totalResults:h,query:n||""};if(h===0)return m?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. +- Sort: orderBy="date_desc" or "date_asc"`}};Hn();jc();var uo=class{buildTimeline(e){let r=[...e.observations.map(n=>({type:"observation",data:n,epoch:n.created_at_epoch})),...e.sessions.map(n=>({type:"session",data:n,epoch:n.created_at_epoch})),...e.prompts.map(n=>({type:"prompt",data:n,epoch:n.created_at_epoch}))];return r.sort((n,s)=>n.epoch-s.epoch),r}filterByDepth(e,r,n,s,i){if(e.length===0)return e;let a=this.findAnchorIndex(e,r,n);if(a===-1)return e;let o=Math.max(0,a-s),c=Math.min(e.length,a+i+1);return e.slice(o,c)}findAnchorIndex(e,r,n){if(typeof r=="number")return e.findIndex(i=>i.type==="observation"&&i.data.id===r);if(typeof r=="string"&&r.startsWith("S")){let i=parseInt(r.slice(1),10);return e.findIndex(a=>a.type==="session"&&a.data.id===i)}let s=e.findIndex(i=>i.epoch>=n);return s===-1?e.length-1:s}formatTimeline(e,r,n={}){let{query:s,depthBefore:i,depthAfter:a,cwd:o=process.cwd()}=n;if(e.length===0)return s?`Found observation matching "${s}", but no timeline context available.`:"No timeline items found";let c=[];if(s&&r){let p=e.find(m=>m.type==="observation"&&m.data.id===r),d=p?p.data.title||"Untitled":"Unknown";c.push(`# Timeline for query: "${s}"`),c.push(`**Anchor:** Observation #${r} - ${d}`)}else r?c.push(`# Timeline around anchor: ${r}`):c.push("# Timeline");i!==void 0&&a!==void 0?c.push(`**Window:** ${i} records before -> ${a} records after | **Items:** ${e.length}`):c.push(`**Items:** ${e.length}`),c.push("");let l=this.groupByDay(e),u=this.sortDaysChronologically(l);for(let[p,d]of u){c.push(`### ${p}`),c.push("");let m=null,f="",v=!1;for(let g of d){let h=this.isAnchorItem(g,r);if(g.type==="session"){v&&(c.push(""),v=!1,m=null,f="");let y=g.data,b=y.request||"Session summary",x=h?" <- **ANCHOR**":"";c.push(`**\u{1F3AF} #S${y.id}** ${b} (${Bn(g.epoch)})${x}`),c.push("")}else if(g.type==="prompt"){v&&(c.push(""),v=!1,m=null,f="");let y=g.data,b=y.prompt_text.length>100?y.prompt_text.substring(0,100)+"...":y.prompt_text;c.push(`**\u{1F4AC} User Prompt #${y.prompt_number}** (${Bn(g.epoch)})`),c.push(`> ${b}`),c.push("")}else if(g.type==="observation"){let y=g.data,b=hs(y.files_modified,o,y.files_read);b!==m&&(v&&c.push(""),c.push(`**${b}**`),c.push("| ID | Time | T | Title | Tokens |"),c.push("|----|------|---|-------|--------|"),m=b,v=!0,f="");let x=et.getInstance().getTypeIcon(y.type),w=Wr(g.epoch),S=y.title||"Untitled",k=Oc(y.narrative),R=w!==f?w:'"';f=w;let O=h?" <- **ANCHOR**":"";c.push(`| #${y.id} | ${R} | ${x} | ${S}${O} | ~${k} |`)}}v&&c.push("")}return c.join(` +`)}groupByDay(e){let r=new Map;for(let n of e){let s=ii(n.epoch);r.has(s)||r.set(s,[]),r.get(s).push(n)}return r}sortDaysChronologically(e){return Array.from(e.entries()).sort((r,n)=>{let s=new Date(r[0]).getTime(),i=new Date(n[0]).getTime();return s-i})}isAnchorItem(e,r){return r===null?!1:typeof r=="number"&&e.type==="observation"?e.data.id===r:typeof r=="string"&&r.startsWith("S")&&e.type==="session"?`S${e.data.id}`===r:!1}};se();var im=class{constructor(e,r,n){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.sqliteStrategy=new rm(e),n&&(this.vectorStrategy=new gl(n,r),this.hybridStrategy=new nm(n,r,e)),this.resultFormatter=new sm,this.timelineBuilder=new uo}sessionSearch;sessionStore;vectorSync;vectorStrategy=null;sqliteStrategy;hybridStrategy=null;resultFormatter;timelineBuilder;async search(e){let r=this.normalizeParams(e);return await this.executeWithFallback(r)}async executeWithFallback(e){if(!e.query)return _.debug("SEARCH","Orchestrator: Filter-only query, using SQLite",{}),await this.sqliteStrategy.search(e);if(this.vectorStrategy){_.debug("SEARCH","Orchestrator: Using vector semantic search",{});let r=await this.vectorStrategy.search(e);return r.usedChroma?r:(_.debug("SEARCH","Orchestrator: Vector search failed, falling back to SQLite",{}),{...await this.sqliteStrategy.search({...e,query:void 0}),fellBack:!0})}return _.debug("SEARCH","Orchestrator: Vector DB not available",{}),{results:{observations:[],sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByConcept(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByConcept(e,n):{results:{observations:this.sqliteStrategy.findByConcept(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByType(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByType(e,n):{results:{observations:this.sqliteStrategy.findByType(e,n),sessions:[],prompts:[]},usedChroma:!1,fellBack:!1,strategy:"sqlite"}}async findByFile(e,r){let n=this.normalizeParams(r);return this.hybridStrategy?await this.hybridStrategy.findByFile(e,n):{...this.sqliteStrategy.findByFile(e,n),usedChroma:!1}}getTimeline(e,r,n,s,i){let a=this.timelineBuilder.buildTimeline(e);return this.timelineBuilder.filterByDepth(a,r,n,s,i)}formatTimeline(e,r,n={}){return this.timelineBuilder.formatTimeline(e,r,n)}formatSearchResults(e,r,n=!1){return this.resultFormatter.formatSearchResults(e,r,n)}getFormatter(){return this.resultFormatter}getTimelineBuilder(){return this.timelineBuilder}normalizeParams(e){let r={...e};return r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obsType=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean),delete r.obs_type),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&!r.searchType&&["observations","sessions","prompts"].includes(r.type)&&(r.searchType=r.type,delete r.type),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r}isVectorDbAvailable(){return!!this.vectorSync}isChromaAvailable(){return this.isVectorDbAvailable()}};var Oy=class{constructor(e,r,n,s,i){this.sessionSearch=e;this.sessionStore=r;this.vectorSync=n;this.formatter=s;this.timelineService=i;this.orchestrator=new im(e,r,n),this.timelineBuilder=new uo}sessionSearch;sessionStore;vectorSync;formatter;timelineService;orchestrator;timelineBuilder;async queryVector(e,r,n){return await this.vectorSync.query(e,r,n)}normalizeParams(e){let r={...e};return r.filePath&&!r.files&&(r.files=r.filePath,delete r.filePath),r.concepts&&typeof r.concepts=="string"&&(r.concepts=r.concepts.split(",").map(n=>n.trim()).filter(Boolean)),r.files&&typeof r.files=="string"&&(r.files=r.files.split(",").map(n=>n.trim()).filter(Boolean)),r.obs_type&&typeof r.obs_type=="string"&&(r.obs_type=r.obs_type.split(",").map(n=>n.trim()).filter(Boolean)),r.type&&typeof r.type=="string"&&r.type.includes(",")&&(r.type=r.type.split(",").map(n=>n.trim()).filter(Boolean)),(r.dateStart||r.dateEnd)&&(r.dateRange={start:r.dateStart,end:r.dateEnd},delete r.dateStart,delete r.dateEnd),r.isFolder==="true"?r.isFolder=!0:r.isFolder==="false"&&(r.isFolder=!1),r}async search(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,concepts:a,files:o,format:c,...l}=r,u=[],p=[],d=[],m=!1,f=!s||s==="observations",v=!s||s==="sessions",g=!s||s==="prompts";if(!n||n==="*"){_.debug("SEARCH","Filter-only query (no query text), using direct SQLite filtering",{enablesDateFilters:!0});let E={...l,type:i,concepts:a,files:o};f&&(u=this.sessionSearch.searchObservations(void 0,E)),v&&(p=this.sessionSearch.searchSessions(void 0,l)),g&&(d=this.sessionSearch.searchUserPrompts(void 0,l))}else if(this.vectorSync){let E=!1;_.debug("SEARCH","Using ChromaDB semantic search",{typeFilter:s||"all"});let R;s==="observations"?R={doc_type:"observation"}:s==="sessions"?R={doc_type:"session_summary"}:s==="prompts"&&(R={doc_type:"user_prompt"});let O=await this.queryVector(n,100,R);if(E=!0,_.debug("SEARCH","ChromaDB returned semantic matches",{matchCount:O.ids.length}),O.ids.length>0){let C=Date.now()-Tt.RECENCY_WINDOW_MS,$=O.metadatas.map((G,yt)=>({id:O.ids[yt],meta:G,isRecent:G&&G.created_at_epoch>C})).filter(G=>G.isRecent);_.debug("SEARCH","Results within 90-day window",{count:$.length});let q=[],B=[],re=[];for(let G of $){let yt=G.meta?.doc_type;yt==="observation"&&f?q.push(G.id):yt==="session_summary"&&v?B.push(G.id):yt==="user_prompt"&&g&&re.push(G.id)}if(_.debug("SEARCH","Categorized results by type",{observations:q.length,sessions:B.length,prompts:d.length}),q.length>0){let G={...l,type:i,concepts:a,files:o};u=this.sessionStore.getObservationsByIds(q,G)}B.length>0&&(p=this.sessionStore.getSessionSummariesByIds(B,{orderBy:"date_desc",limit:l.limit,project:l.project})),re.length>0&&(d=this.sessionStore.getUserPromptsByIds(re,{orderBy:"date_desc",limit:l.limit,project:l.project})),_.debug("SEARCH","Hydrated results from SQLite",{observations:u.length,sessions:p.length,prompts:d.length})}else _.debug("SEARCH","ChromaDB found no matches (final result, no FTS5 fallback)",{})}else n&&(m=!0,_.debug("SEARCH","ChromaDB not initialized - semantic search unavailable",{}),_.debug("SEARCH","Install UVX/Python to enable vector search",{url:"https://docs.astral.sh/uv/getting-started/installation/"}),u=[],p=[],d=[]);let h=u.length+p.length+d.length;if(c==="json")return{observations:u,sessions:p,prompts:d,totalResults:h,query:n||""};if(h===0)return m?{content:[{type:"text",text:`Vector search failed - semantic search unavailable. To enable semantic search: 1. Install uv: https://docs.astral.sh/uv/getting-started/installation/ 2. Restart the worker: npm run worker:restart -Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found${n&&n!=="*"?` matching "${n}"`:""}`}]};let y=[...u.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];l.orderBy==="date_desc"?y.sort((E,R)=>R.epoch-E.epoch):l.orderBy==="date_asc"&&y.sort((E,R)=>E.epoch-R.epoch);let b=y.slice(0,l.limit||20),x=process.cwd(),w=Ba(b,E=>E.created_at),S=[],k=n&&n!=="*"?` matching "${n}"`:"";S.push(`Found ${h} result(s)${k} (${u.length} obs, ${p.length} sessions, ${d.length} prompts)`),S.push("");for(let[E,R]of w){S.push(`### ${E}`),S.push("");let O=new Map;for(let C of R){let $="General";C.type==="observation"&&($=hs(C.data.files_modified,x,C.data.files_read)),O.has($)||O.set($,[]),O.get($).push(C)}for(let[C,$]of O){S.push(`**${C}**`),S.push(this.formatter.formatSearchTableHeader());let q="";for(let B of $)if(B.type==="observation"){let re=this.formatter.formatObservationSearchRow(B.data,q);S.push(re.row),q=re.time}else if(B.type==="session"){let re=this.formatter.formatSessionSearchRow(B.data,q);S.push(re.row),q=re.time}else{let re=this.formatter.formatUserPromptSearchRow(B.data,q);S.push(re.row),q=re.time}S.push("")}}return{content:[{type:"text",text:S.join(` +Note: You can still use filter-only searches (date ranges, types, files) without a query term.`}]}:{content:[{type:"text",text:`No results found${n&&n!=="*"?` matching "${n}"`:""}`}]};let y=[...u.map(E=>({type:"observation",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...p.map(E=>({type:"session",data:E,epoch:E.created_at_epoch,created_at:E.created_at})),...d.map(E=>({type:"prompt",data:E,epoch:E.created_at_epoch,created_at:E.created_at}))];l.orderBy==="date_desc"?y.sort((E,R)=>R.epoch-E.epoch):l.orderBy==="date_asc"&&y.sort((E,R)=>E.epoch-R.epoch);let b=y.slice(0,l.limit||20),x=process.cwd(),w=Wa(b,E=>E.created_at),S=[],k=n&&n!=="*"?` matching "${n}"`:"";S.push(`Found ${h} result(s)${k} (${u.length} obs, ${p.length} sessions, ${d.length} prompts)`),S.push("");for(let[E,R]of w){S.push(`### ${E}`),S.push("");let O=new Map;for(let C of R){let $="General";C.type==="observation"&&($=hs(C.data.files_modified,x,C.data.files_read)),O.has($)||O.set($,[]),O.get($).push(C)}for(let[C,$]of O){S.push(`**${C}**`),S.push(this.formatter.formatSearchTableHeader());let q="";for(let B of $)if(B.type==="observation"){let re=this.formatter.formatObservationSearchRow(B.data,q);S.push(re.row),q=re.time}else if(B.type==="session"){let re=this.formatter.formatSessionSearchRow(B.data,q);S.push(re.row),q=re.time}else{let re=this.formatter.formatUserPromptSearchRow(B.data,q);S.push(re.row),q=re.time}S.push("")}}return{content:[{type:"text",text:S.join(` `)}]}}async semanticSearchWithScores(e){let r=this.normalizeParams(e),{query:n,type:s,obs_type:i,project:a,limit:o=20,dateStart:c,dateEnd:l}=r,u=[],p=!1,d=!!this.vectorSync;if(!n||n==="*"){let m={limit:o,project:a,type:i},f=this.sessionSearch.searchObservations(void 0,m);for(let v of f)u.push({id:v.id,type:"observation",title:v.title||"Untitled",content:v.narrative||v.text||"",project:v.project||"",timestamp:v.created_at,score:0,obsType:v.type});return{results:u.slice(0,o),query:n||"",usedSemantic:!1,vectorDbAvailable:d}}if(this.vectorSync)try{let m;s==="observations"?m={doc_type:"observation"}:s==="sessions"?m={doc_type:"session_summary"}:s==="prompts"&&(m={doc_type:"user_prompt"});let f=await this.queryVector(n,100,m);if(p=!0,f.ids.length>0){let v=new Map,g=new Map,h=Date.now()-Tt.RECENCY_WINDOW_MS;for(let w=0;wh){let k=f.ids[w],E=f.distances[w]||0,R=Math.max(0,Math.min(1,1-E/2));(!v.has(k)||R>v.get(k))&&(v.set(k,R),g.set(k,S.doc_type))}}let y=[],b=[],x=[];for(let[w,S]of g)S==="observation"&&(!s||s==="observations")?y.push(w):S==="session_summary"&&(!s||s==="sessions")?b.push(w):S==="user_prompt"&&(!s||s==="prompts")&&x.push(w);if(y.length>0){let w={type:i,project:a},S=this.sessionStore.getObservationsByIds(y,w);for(let k of S)u.push({id:k.id,type:"observation",title:k.title||"Untitled",content:k.narrative||k.text||"",project:k.project||"",timestamp:k.created_at,score:v.get(k.id)||0,obsType:k.type})}if(b.length>0){let w=this.sessionStore.getSessionSummariesByIds(b,{project:a});for(let S of w)u.push({id:S.id,type:"summary",title:S.request||"Session Summary",content:S.learned||S.completed||"",project:S.project||"",timestamp:S.created_at,score:v.get(S.id)||0})}if(x.length>0){let w=this.sessionStore.getUserPromptsByIds(x,{project:a});for(let S of w)u.push({id:S.id,type:"prompt",title:`Prompt #${S.prompt_number}`,content:S.prompt_text||"",project:S.project||"",timestamp:S.created_at,score:v.get(S.id)||0})}u.sort((w,S)=>S.score-w.score)}}catch(m){_.error("SEARCH","Semantic search failed",{},m),p=!1}return{results:u.slice(0,o),query:n,usedSemantic:p,vectorDbAvailable:d}}async timeline(e){let{anchor:r,query:n,depth_before:s=10,depth_after:i=10,project:a}=e,o=process.cwd();if(!r&&!n)return{content:[{type:"text",text:'Error: Must provide either "anchor" or "query" parameter'}],isError:!0};if(r&&n)return{content:[{type:"text",text:'Error: Cannot provide both "anchor" and "query" parameters. Use one or the other.'}],isError:!0};let c,l,u;if(n){let g=[];if(this.vectorSync)try{_.debug("SEARCH","Using hybrid semantic search for timeline query",{});let y=await this.queryVector(n,100);if(_.debug("SEARCH","Chroma returned semantic matches for timeline",{matchCount:y?.ids?.length??0}),y?.ids&&y.ids.length>0){let b=Date.now()-Tt.RECENCY_WINDOW_MS,x=y.ids.filter((w,S)=>{let k=y.metadatas[S];return k&&k.created_at_epoch>b});x.length>0&&(g=this.sessionStore.getObservationsByIds(x,{orderBy:"date_desc",limit:1}))}}catch(y){_.error("SEARCH","Chroma search failed for timeline, continuing without semantic results",{},y)}if(g.length===0)return{content:[{type:"text",text:`No observations found matching "${n}". Try a different search query.`}]};let h=g[0];c=h.id,l=h.created_at_epoch,_.debug("SEARCH","Query mode: Using observation as timeline anchor",{observationId:h.id}),u=this.sessionStore.getTimelineAroundObservation(h.id,h.created_at_epoch,s,i,a)}else if(typeof r=="number"){let g=this.sessionStore.getObservationById(r);if(!g)return{content:[{type:"text",text:`Observation #${r} not found`}],isError:!0};c=r,l=g.created_at_epoch,u=this.sessionStore.getTimelineAroundObservation(r,l,s,i,a)}else if(typeof r=="string")if(r.startsWith("S")||r.startsWith("#S")){let g=r.replace(/^#?S/,""),h=parseInt(g,10),y=this.sessionStore.getSessionSummariesByIds([h]);if(y.length===0)return{content:[{type:"text",text:`Session #${h} not found`}],isError:!0};l=y[0].created_at_epoch,c=`S${h}`,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else{let g=new Date(r);if(isNaN(g.getTime()))return{content:[{type:"text",text:`Invalid timestamp: ${r}`}],isError:!0};l=g.getTime(),c=r,u=this.sessionStore.getTimelineAroundTimestamp(l,s,i,a)}else return{content:[{type:"text",text:'Invalid anchor: must be observation ID (number), session ID (e.g., "S123"), or ISO timestamp'}],isError:!0};let p=[...(u.observations||[]).map(g=>({type:"observation",data:g,epoch:g.created_at_epoch})),...(u.sessions||[]).map(g=>({type:"session",data:g,epoch:g.created_at_epoch})),...(u.prompts||[]).map(g=>({type:"prompt",data:g,epoch:g.created_at_epoch}))];p.sort((g,h)=>g.epoch-h.epoch);let d=this.timelineService.filterByDepth(p,c,l,s,i);if(!d||d.length===0)return{content:[{type:"text",text:n?`Found observation matching "${n}", but no timeline context available (${s} records before, ${i} records after).`:`No context found around anchor (${s} records before, ${i} records after)`}]};let m=[];if(n){let g=d.find(y=>y.type==="observation"&&y.data.id===c),h=g&&g.type==="observation"?g.data.title||"Untitled":"Unknown";m.push(`# Timeline for query: "${n}"`),m.push(`**Anchor:** Observation #${c} - ${h}`)}else m.push(`# Timeline around anchor: ${c}`);m.push(`**Window:** ${s} records before -> ${i} records after | **Items:** ${d?.length??0}`),m.push("");let f=new Map;for(let g of d){let h=ii(g.epoch);f.has(h)||f.set(h,[]),f.get(h).push(g)}let v=Array.from(f.entries()).sort((g,h)=>{let y=new Date(g[0]).getTime(),b=new Date(h[0]).getTime();return y-b});for(let[g,h]of v){m.push(`### ${g}`),m.push("");let y=null,b="",x=!1;for(let w of h){let S=typeof c=="number"&&w.type==="observation"&&w.data.id===c||typeof c=="string"&&c.startsWith("S")&&w.type==="session"&&`S${w.data.id}`===c;if(w.type==="session"){x&&(m.push(""),x=!1,y=null,b="");let k=w.data,E=k.request||"Session summary",R=S?" <- **ANCHOR**":"";m.push(`**\u{1F3AF} #S${k.id}** ${E} (${Bn(w.epoch)})${R}`),m.push("")}else if(w.type==="prompt"){x&&(m.push(""),x=!1,y=null,b="");let k=w.data,E=k.prompt_text.length>100?k.prompt_text.substring(0,100)+"...":k.prompt_text;m.push(`**\u{1F4AC} User Prompt #${k.prompt_number}** (${Bn(w.epoch)})`),m.push(`> ${E}`),m.push("")}else if(w.type==="observation"){let k=w.data,E=hs(k.files_modified,o,k.files_read);E!==y&&(x&&m.push(""),m.push(`**${E}**`),m.push("| ID | Time | T | Title | Tokens |"),m.push("|----|------|---|-------|--------|"),y=E,x=!0,b="");let R=et.getInstance().getTypeIcon(k.type),O=Wr(w.epoch),C=k.title||"Untitled",$=Oc(k.narrative),B=O!==b?O:'"';b=O;let re=S?" <- **ANCHOR**":"";m.push(`| #${k.id} | ${B} | ${R} | ${C}${re} | ~${$} |`)}}x&&m.push("")}return{content:[{type:"text",text:m.join(` `)}]}}async decisions(e){let r=this.normalizeParams(e),{query:n,...s}=r,i=[];if(this.vectorSync)try{if(n){_.debug("SEARCH","Using Chroma semantic search with type=decision filter",{});let l=(await this.queryVector(n,Math.min((s.limit||20)*2,100),{type:"decision"})).ids;l.length>0&&(i=this.sessionStore.getObservationsByIds(l,{...s,type:"decision"}),i.sort((u,p)=>l.indexOf(u.id)-l.indexOf(p.id)))}else{_.debug("SEARCH","Using metadata-first + semantic ranking for decisions",{});let c=this.sessionSearch.findByType("decision",s);if(c.length>0){let l=c.map(d=>d.id),u=await this.queryVector("decision",Math.min(l.length,100)),p=[];for(let d of u.ids)l.includes(d)&&!p.includes(d)&&p.push(d);p.length>0&&(i=this.sessionStore.getObservationsByIds(p,{limit:s.limit||20}),i.sort((d,m)=>p.indexOf(d.id)-p.indexOf(m.id)))}}}catch(c){_.error("SEARCH","Chroma search failed for decisions, falling back to metadata search",{},c)}if(i.length===0&&(i=this.sessionSearch.findByType("decision",s)),i.length===0)return{content:[{type:"text",text:"No decision observations found"}]};let a=`Found ${i.length} decision(s) @@ -1444,7 +1444,7 @@ ${this.formatter.formatTableHeader()}`,o=i.map((c,l)=>this.formatter.formatUserP ${this.formatter.formatTableHeader()}`,o=i.map((c,l)=>this.formatter.formatObservationIndex(c,l));return{content:[{type:"text",text:a+` `+o.join(` -`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...s}=r,i=Array.isArray(n)?n[0]:n,a=[],o=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let d=this.sessionSearch.findByFile(i,s);if(_.debug("SEARCH","Found results for file",{file:i,observations:d.observations.length,sessions:d.sessions.length}),o=d.sessions,d.observations.length>0){let m=d.observations.map(g=>g.id),f=await this.queryVector(i,Math.min(m.length,100)),v=[];for(let g of f.ids)m.includes(g)&&!v.includes(g)&&v.push(g);_.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:v.length}),v.length>0&&(a=this.sessionStore.getObservationsByIds(v,{limit:s.limit||20}),a.sort((g,h)=>v.indexOf(g.id)-v.indexOf(h.id)))}}if(a.length===0&&o.length===0){_.debug("SEARCH","Using SQLite-only file search",{});let d=this.sessionSearch.findByFile(i,s);a=d.observations,o=d.sessions}let c=a.length+o.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${i}"`}]};let l=[...a.map(d=>({type:"observation",data:d,epoch:d.created_at_epoch,created_at:d.created_at})),...o.map(d=>({type:"session",data:d,epoch:d.created_at_epoch,created_at:d.created_at}))];l.sort((d,m)=>m.epoch-d.epoch);let u=Ba(l,d=>d.created_at),p=[];p.push(`Found ${c} result(s) for file "${i}"`),p.push("");for(let[d,m]of u){p.push(`### ${d}`),p.push(""),p.push(this.formatter.formatTableHeader());for(let f of m)f.type==="observation"?p.push(this.formatter.formatObservationIndex(f.data,0)):p.push(this.formatter.formatSessionIndex(f.data,0));p.push("")}return{content:[{type:"text",text:p.join(` +`)}]}}async findByFile(e){let r=this.normalizeParams(e),{files:n,...s}=r,i=Array.isArray(n)?n[0]:n,a=[],o=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for file search",{});let d=this.sessionSearch.findByFile(i,s);if(_.debug("SEARCH","Found results for file",{file:i,observations:d.observations.length,sessions:d.sessions.length}),o=d.sessions,d.observations.length>0){let m=d.observations.map(g=>g.id),f=await this.queryVector(i,Math.min(m.length,100)),v=[];for(let g of f.ids)m.includes(g)&&!v.includes(g)&&v.push(g);_.debug("SEARCH","Chroma ranked observations by semantic relevance",{count:v.length}),v.length>0&&(a=this.sessionStore.getObservationsByIds(v,{limit:s.limit||20}),a.sort((g,h)=>v.indexOf(g.id)-v.indexOf(h.id)))}}if(a.length===0&&o.length===0){_.debug("SEARCH","Using SQLite-only file search",{});let d=this.sessionSearch.findByFile(i,s);a=d.observations,o=d.sessions}let c=a.length+o.length;if(c===0)return{content:[{type:"text",text:`No results found for file "${i}"`}]};let l=[...a.map(d=>({type:"observation",data:d,epoch:d.created_at_epoch,created_at:d.created_at})),...o.map(d=>({type:"session",data:d,epoch:d.created_at_epoch,created_at:d.created_at}))];l.sort((d,m)=>m.epoch-d.epoch);let u=Wa(l,d=>d.created_at),p=[];p.push(`Found ${c} result(s) for file "${i}"`),p.push("");for(let[d,m]of u){p.push(`### ${d}`),p.push(""),p.push(this.formatter.formatTableHeader());for(let f of m)f.type==="observation"?p.push(this.formatter.formatObservationIndex(f.data,0)):p.push(this.formatter.formatSessionIndex(f.data,0));p.push("")}return{content:[{type:"text",text:p.join(` `)}]}}async findByType(e){let r=this.normalizeParams(e),{type:n,...s}=r,i=Array.isArray(n)?n.join(", "):n,a=[];if(this.vectorSync){_.debug("SEARCH","Using metadata-first + semantic ranking for type search",{});let l=this.sessionSearch.findByType(n,s);if(_.debug("SEARCH","Found observations with type",{type:i,count:l.length}),l.length>0){let u=l.map(m=>m.id),p=await this.queryVector(i,Math.min(u.length,100)),d=[];for(let m of p.ids)u.includes(m)&&!d.includes(m)&&d.push(m);_.debug("SEARCH","Chroma ranked results by semantic relevance",{count:d.length}),d.length>0&&(a=this.sessionStore.getObservationsByIds(d,{limit:s.limit||20}),a.sort((m,f)=>d.indexOf(m.id)-d.indexOf(f.id)))}}if(a.length===0&&(_.debug("SEARCH","Using SQLite-only type search",{}),a=this.sessionSearch.findByType(n,s)),a.length===0)return{content:[{type:"text",text:`No observations found with type "${i}"`}]};let o=`Found ${a.length} observation(s) with type "${i}" ${this.formatter.formatTableHeader()}`,c=a.map((l,u)=>this.formatter.formatObservationIndex(l,u));return{content:[{type:"text",text:o+` @@ -1545,7 +1545,7 @@ Tips: GROUP BY p.id `).all(s):v=c.prepare("SELECT * FROM user_prompts").all();let g={exportedAt:new Date().toISOString(),project:s||"all",stats:{sessions:m.length,summaries:f.length,observations:d.length,prompts:v.length},sessions:m,summaries:f,observations:d,prompts:v},h=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.json`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.json`;n.setHeader("Content-Disposition",`attachment; filename="${h}"`),n.setHeader("Content-Type","application/json"),n.json(g);return}if(i==="csv"){let f=[["id","type","title","project","created_at","text","files_read","files_modified"].join(",")];for(let g of d){let h=[g.id,`"${(g.type||"").replace(/"/g,'""')}"`,`"${(g.title||"").replace(/"/g,'""')}"`,`"${(g.project||"").replace(/"/g,'""')}"`,g.created_at||"",`"${(g.text||"").replace(/"/g,'""').substring(0,500)}"`,`"${(g.files_read||"").replace(/"/g,'""')}"`,`"${(g.files_modified||"").replace(/"/g,'""')}"`];f.push(h.join(","))}let v=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.csv`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.csv`;n.setHeader("Content-Disposition",`attachment; filename="${v}"`),n.setHeader("Content-Type","text/csv"),n.send(f.join(` `));return}if(i==="markdown"||i==="md"){let m=["# Pilot Memory Export","",`**Exported:** ${new Date().toISOString()}`,`**Project:** ${s||"All"}`,`**Total Memories:** ${d.length}`,"","---",""];for(let v of d){let g=v.created_at?new Date(v.created_at).toLocaleString():"Unknown";if(m.push(`## #${v.id}: ${v.title||"Untitled"}`),m.push(""),m.push(`- **Type:** ${v.type||"unknown"}`),m.push(`- **Project:** ${v.project||"none"}`),m.push(`- **Date:** ${g}`),v.files_read)try{let h=JSON.parse(v.files_read);h.length>0&&m.push(`- **Files Read:** ${h.join(", ")}`)}catch{}if(v.files_modified)try{let h=JSON.parse(v.files_modified);h.length>0&&m.push(`- **Files Modified:** ${h.join(", ")}`)}catch{}m.push(""),m.push(v.text||"*No content*"),m.push(""),m.push("---"),m.push("")}let f=s?`pilot-memory-export-${s}-${new Date().toISOString().split("T")[0]}.md`:`pilot-memory-export-${new Date().toISOString().split("T")[0]}.md`;n.setHeader("Content-Disposition",`attachment; filename="${f}"`),n.setHeader("Content-Type","text/markdown"),n.send(m.join(` -`));return}});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ha)),i=new s(this.dbManager.getSessionStore().db,3),a=i.getQueueMessages(),o=i.getRecentlyProcessed(20,30),c=i.getStuckCount(300*1e3),l=i.getSessionsWithPendingMessages();n.json({queue:{messages:a,totalPending:a.filter(u=>u.status==="pending").length,totalProcessing:a.filter(u=>u.status==="processing").length,totalFailed:a.filter(u=>u.status==="failed").length,stuckCount:c},recentlyProcessed:o,sessionsWithPendingWork:l})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let s=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),i=await this.workerService.processPendingQueues(s);n.json({success:!0,...i})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ha)),a=new s(this.dbManager.getSessionStore().db,3).clearFailed();_.info("QUEUE","Cleared failed queue messages",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ha)),a=new s(this.dbManager.getSessionStore().db,3).clearAll();_.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleRetryMessage=this.wrapHandler((r,n)=>{let s=parseInt(r.params.id,10);if(isNaN(s)){n.status(400).json({error:"Invalid message ID"});return}let{PendingMessageStore:i}=(Fi(),Dl(Ha));new i(this.dbManager.getSessionStore().db,3).retryMessage(s)?(_.info("QUEUE","Retried failed message",{messageId:s}),n.json({success:!0,messageId:s})):n.status(404).json({error:"Message not found or not in failed status"})});handleDeleteObservation=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;this.dbManager.getSessionStore().deleteObservation(s)?(_.info("DATA","Deleted observation",{id:s}),n.json({success:!0,id:s})):this.notFound(n,`Observation #${s} not found`)});handleBulkDeleteObservations=this.wrapHandler((r,n)=>{let{ids:s}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json({success:!0,deletedCount:0});return}if(!s.every(o=>typeof o=="number"&&Number.isInteger(o))){this.badRequest(n,"All ids must be integers");return}let a=this.dbManager.getSessionStore().deleteObservations(s);_.info("DATA","Bulk deleted observations",{count:a,requested:s.length}),n.json({success:!0,deletedCount:a})});handleGetAnalyticsTimeline=this.wrapHandler((r,n)=>{let s=r.query.range||"30d",i=r.query.project,a=this.dbManager.getSessionStore().db,o=30;s==="7d"?o=7:s==="90d"?o=90:s==="all"&&(o=365*10);let c=Date.now()-o*24*60*60*1e3,l=i?"AND project = ?":"",u=i?[c,i]:[c],p=a.prepare(` +`));return}});handleGetPendingQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ba)),i=new s(this.dbManager.getSessionStore().db,3),a=i.getQueueMessages(),o=i.getRecentlyProcessed(20,30),c=i.getStuckCount(300*1e3),l=i.getSessionsWithPendingMessages();n.json({queue:{messages:a,totalPending:a.filter(u=>u.status==="pending").length,totalProcessing:a.filter(u=>u.status==="processing").length,totalFailed:a.filter(u=>u.status==="failed").length,stuckCount:c},recentlyProcessed:o,sessionsWithPendingWork:l})});handleProcessPendingQueue=this.wrapHandler(async(r,n)=>{let s=Math.min(Math.max(parseInt(r.body.sessionLimit,10)||10,1),100),i=await this.workerService.processPendingQueues(s);n.json({success:!0,...i})});handleClearFailedQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ba)),a=new s(this.dbManager.getSessionStore().db,3).clearFailed();_.info("QUEUE","Cleared failed queue messages",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleClearAllQueue=this.wrapHandler((r,n)=>{let{PendingMessageStore:s}=(Fi(),Dl(Ba)),a=new s(this.dbManager.getSessionStore().db,3).clearAll();_.warn("QUEUE","Cleared ALL queue messages (pending, processing, failed)",{clearedCount:a}),n.json({success:!0,clearedCount:a})});handleRetryMessage=this.wrapHandler((r,n)=>{let s=parseInt(r.params.id,10);if(isNaN(s)){n.status(400).json({error:"Invalid message ID"});return}let{PendingMessageStore:i}=(Fi(),Dl(Ba));new i(this.dbManager.getSessionStore().db,3).retryMessage(s)?(_.info("QUEUE","Retried failed message",{messageId:s}),n.json({success:!0,messageId:s})):n.status(404).json({error:"Message not found or not in failed status"})});handleDeleteObservation=this.wrapHandler((r,n)=>{let s=this.parseIntParam(r,n,"id");if(s===null)return;this.dbManager.getSessionStore().deleteObservation(s)?(_.info("DATA","Deleted observation",{id:s}),n.json({success:!0,id:s})):this.notFound(n,`Observation #${s} not found`)});handleBulkDeleteObservations=this.wrapHandler((r,n)=>{let{ids:s}=r.body;if(!s||!Array.isArray(s)){this.badRequest(n,"ids must be an array of numbers");return}if(s.length===0){n.json({success:!0,deletedCount:0});return}if(!s.every(o=>typeof o=="number"&&Number.isInteger(o))){this.badRequest(n,"All ids must be integers");return}let a=this.dbManager.getSessionStore().deleteObservations(s);_.info("DATA","Bulk deleted observations",{count:a,requested:s.length}),n.json({success:!0,deletedCount:a})});handleGetAnalyticsTimeline=this.wrapHandler((r,n)=>{let s=r.query.range||"30d",i=r.query.project,a=this.dbManager.getSessionStore().db,o=30;s==="7d"?o=7:s==="90d"?o=90:s==="all"&&(o=365*10);let c=Date.now()-o*24*60*60*1e3,l=i?"AND project = ?":"",u=i?[c,i]:[c],p=a.prepare(` SELECT date(created_at_epoch / 1000, 'unixepoch', 'localtime') as date, COUNT(*) as count @@ -1598,10 +1598,10 @@ Tips: WHERE created_at_epoch >= ? ${l} GROUP BY type ORDER BY tokens DESC - `).all(...u);n.json({range:s,project:i||"all",totals:{totalTokens:p.totalTokens||0,avgTokensPerObservation:Math.round(p.avgTokens||0),totalObservations:p.totalObservations||0},daily:d,byType:m})})};var Ss=require("node:fs"),bl=require("node:path"),SB=require("node:os");se();var yl=require("node:fs/promises"),yB=require("node:os"),i1=require("node:path"),TSe="https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",RSe=1440*60*1e3,At=.01,PSe=3e3,lm={"claude-opus-4-7":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:6},"claude-opus-4-6":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:6},"claude-opus-4-5":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-opus-4-1":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-opus-4":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4-6":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4-5":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-7-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-5-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-haiku-4-5":{inputCostPerToken:1e-6,outputCostPerToken:5e-6,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-5-haiku":{inputCostPerToken:8e-7,outputCostPerToken:4e-6,cacheWriteCostPerToken:1e-6,cacheReadCostPerToken:8e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4o":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4o-mini":{inputCostPerToken:15e-8,outputCostPerToken:6e-7,cacheWriteCostPerToken:15e-8,cacheReadCostPerToken:75e-9,webSearchCostPerRequest:At,fastMultiplier:1},"gemini-2.5-pro":{inputCostPerToken:125e-8,outputCostPerToken:1e-5,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:315e-9,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5.4":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5.4-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1":{inputCostPerToken:2e-6,outputCostPerToken:8e-6,cacheWriteCostPerToken:2e-6,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1-nano":{inputCostPerToken:1e-7,outputCostPerToken:4e-7,cacheWriteCostPerToken:1e-7,cacheReadCostPerToken:25e-9,webSearchCostPerRequest:At,fastMultiplier:1},o3:{inputCostPerToken:1e-5,outputCostPerToken:4e-5,cacheWriteCostPerToken:1e-5,cacheReadCostPerToken:25e-7,webSearchCostPerRequest:At,fastMultiplier:1},"o4-mini":{inputCostPerToken:11e-7,outputCostPerToken:44e-7,cacheWriteCostPerToken:11e-7,cacheReadCostPerToken:275e-9,webSearchCostPerRequest:At,fastMultiplier:1}};var gB={"anthropic--claude-4.6-opus":"claude-opus-4-6","anthropic--claude-4.6-sonnet":"claude-sonnet-4-6","anthropic--claude-4.5-opus":"claude-opus-4-5","anthropic--claude-4.5-sonnet":"claude-sonnet-4-5","anthropic--claude-4.5-haiku":"claude-haiku-4-5"},uo=null,vB={},Uy=new Map,s1=new Set;function bB(){return(0,i1.join)((0,yB.homedir)(),".cache","pilot-console-pricing")}function xB(){return(0,i1.join)(bB(),"litellm-pricing.json")}function ISe(t){return t.input_cost_per_token===void 0||t.output_cost_per_token===void 0?null:{inputCostPerToken:t.input_cost_per_token,outputCostPerToken:t.output_cost_per_token,cacheWriteCostPerToken:t.cache_creation_input_token_cost??t.input_cost_per_token*1.25,cacheReadCostPerToken:t.cache_read_input_token_cost??t.input_cost_per_token*.1,webSearchCostPerRequest:At,fastMultiplier:t.provider_specific_entry?.fast??1}}async function CSe(){let t=new AbortController,e=setTimeout(()=>t.abort(),PSe);try{let r=await fetch(TSe,{signal:t.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);let n=await r.json(),s=new Map;for(let[i,a]of Object.entries(n)){let o=ISe(a);if(!o)continue;s.set(i,o);let c=i.replace(/^[^/]+\//,"");c!==i&&!s.has(c)&&s.set(c,o)}return await(0,yl.mkdir)(bB(),{recursive:!0}),await(0,yl.writeFile)(xB(),JSON.stringify({timestamp:Date.now(),data:Object.fromEntries(s)})),s}finally{clearTimeout(e)}}async function OSe(){try{let t=await(0,yl.readFile)(xB(),"utf-8"),e=JSON.parse(t);return Date.now()-e.timestamp>RSe?null:new Map(Object.entries(e.data))}catch{return null}}async function _B(){let t=await OSe();if(t){uo=t,Uy.clear();return}try{uo=await CSe()}catch{uo=new Map(Object.entries(lm))}Uy.clear()}function jSe(t){return Object.hasOwn(vB,t)?vB[t]:Object.hasOwn(gB,t)?gB[t]:t}function ASe(t){return t.replace(/@.*$/,"").replace(/-\d{8}$/,"").replace(/^[^/]+\//,"")}function NSe(t){let e=Uy.get(t);if(e!==void 0)return e;let r=jSe(ASe(t)),n=null;if(uo?.has(r))n=uo.get(r);else if(Object.hasOwn(lm,r))n=lm[r];else{for(let[s,i]of Object.entries(lm))if(r.startsWith(s+"-")||r===s){n=i;break}if(!n&&uo){for(let[s,i]of uo)if(r.startsWith(s+"-")){n=i;break}}if(!n){for(let[s,i]of Object.entries(lm))if(r.startsWith(s)){n=i;break}}}return Uy.set(t,n),n}var DSe=new Set(["","synthetic","unknown",""]);function qy(t,e,r,n,s,i,a="standard"){if(DSe.has(t))return 0;let o=NSe(t);return o?(a==="fast"?o.fastMultiplier:1)*(e*o.inputCostPerToken+r*o.outputCostPerToken+n*o.cacheWriteCostPerToken+s*o.cacheReadCostPerToken+i*o.webSearchCostPerRequest):(s1.add(t),0)}function po(){let t=Array.from(s1);return s1.clear(),t}var zSe=(0,bl.join)((0,SB.homedir)(),".claude","projects"),MSe=50,$Se=600*1e3,wB=5*1024*1024;function LSe(t){let e=0;for(let[r,n]of Object.entries(t))e+=qy(r,n.input,n.output,n.cacheCreate,n.cacheRead,0,"standard");return Math.round(e*1e4)/1e4}var Fy=class t{cache=new Map;pathCache=new Map;projectsBase;constructor(e){this.projectsBase=e??zSe}static encodeProjectRoot(e){return e.replace(/\//g,"-")}resolveJsonlPath(e,r){let n=this.pathCache.get(e);if(n&&(0,Ss.existsSync)(n))return n;let s=`${e}.jsonl`;if(r){let i=t.encodeProjectRoot(r),a=(0,bl.join)(this.projectsBase,i,s);if((0,Ss.existsSync)(a))return this.pathCache.set(e,a),a}if(!(0,Ss.existsSync)(this.projectsBase))return null;try{for(let i of(0,Ss.readdirSync)(this.projectsBase,{withFileTypes:!0})){if(!i.isDirectory())continue;let a=(0,bl.join)(this.projectsBase,i.name,s);if((0,Ss.existsSync)(a))return this.pathCache.set(e,a),a}}catch{}return null}parseJsonlFile(e){let r;try{let x=(0,Ss.statSync)(e);if(x.size>wB)return _.warn("SESSION",`File exceeds ${wB} bytes, skipping`,{path:e,size:x.size}),null;r=x.mtimeMs}catch{return null}let n=this.cache.get(e);if(n&&Date.now()-n.timestamp<$Se&&n.mtimeMs===r)return n.stats;let s;try{s=(0,Ss.readFileSync)(e,"utf-8")}catch{return null}let i=s.split(` -`).filter(x=>x.trim().length>0),a=null,o=0,c=0,l=!1,u={},p={},d={input:0,output:0,cacheRead:0,cacheCreate:0},m={},f=[];for(let x of i){let w;try{w=JSON.parse(x)}catch{continue}let S=w.type;if(!S)continue;a===null&&w.sessionId&&(a=w.sessionId);let k=w.timestamp;if(k){let E=new Date(k);isNaN(E.getTime())||f.push(E.getTime())}if(S==="user"){let E=w.content;Array.isArray(E)?E.some(O=>typeof O=="object"&&O!==null&&O.type==="text")&&o++:o++}else if(S==="assistant"){let E=w.message;if(!E)continue;c++;let R=E.model;if(R===""&&!E.isApiErrorMessage){let $=E.content;if(Array.isArray($))for(let q of $)typeof q=="object"&&q!==null&&q.type==="text"&&q.text==="No response requested."&&(l=!0)}R&&R!==""&&R!=="unknown"&&(u[R]=(u[R]??0)+1);let O=E.usage;if(O){let $=O.input_tokens??0,q=O.output_tokens??0,B=O.cache_read_input_tokens??0,re=O.cache_creation_input_tokens??0;d.input+=$,d.output+=q,d.cacheRead+=B,d.cacheCreate+=re;let G=R||"unknown";m[G]||(m[G]={input:0,output:0,cacheRead:0,cacheCreate:0}),m[G].input+=$,m[G].output+=q,m[G].cacheRead+=B,m[G].cacheCreate+=re}let C=E.content;if(Array.isArray(C)){for(let $ of C)if(typeof $=="object"&&$!==null&&$.type==="tool_use"){let q=$.name??"unknown";p[q]=(p[q]??0)+1}}}}let v=0,g=null,h=null;f.length>0&&(f.sort((x,w)=>x-w),g=new Date(f[0]).toISOString(),h=new Date(f[f.length-1]).toISOString(),v=Math.round((f[f.length-1]-f[0])/6e4*10)/10);let y={};for(let[x,w]of Object.entries(p).sort(([,S],[,k])=>k-S))y[x]=w;a||(a=(0,bl.basename)(e).replace(/\.jsonl$/,""));let b={sessionId:a,turns:c,userMessages:o,assistantMessages:c,durationMinutes:v,models:u,tokens:d,tools:y,firstMessage:g,lastMessage:h,isResumed:l,costUsd:LSe(m)};if(this.cache.size>=MSe){let x=this.cache.keys().next().value;x!==void 0&&this.cache.delete(x)}return this.cache.set(e,{stats:b,timestamp:Date.now(),mtimeMs:r}),b}getStats(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFile(n):null}};Ln();var Gy=class extends Se{constructor(r){super();this.searchManager=r}searchManager;setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/search/semantic",this.handleSemanticSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.search(r.query);n.json(s)});handleSemanticSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.semanticSearchWithScores(r.query);n.json(s)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.timeline(r.query);n.json(s)});handleDecisions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.decisions(r.query);n.json(s)});handleChanges=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.changes(r.query);n.json(s)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.howItWorks(r.query);n.json(s)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchObservations(r.query);n.json(s)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchSessions(r.query);n.json(s)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchUserPrompts(r.query);n.json(s)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByConcept(r.query);n.json(s)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByFile(r.query);n.json(s)});handleSearchByType=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByType(r.query);n.json(s)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getRecentContext(r.query);n.json(s)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getContextTimeline(r.query);n.json(s)});handleContextPreview=this.wrapHandler(async(r,n)=>{let s=r.query.project;if(!s){this.badRequest(n,"Project parameter is required");return}let{generateContext:i}=await Promise.resolve().then(()=>(v1(),g1)),a=`/preview/${s}`,o=await i({session_id:"preview-"+Date.now(),cwd:a},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(o)});handleContextInject=this.wrapHandler(async(r,n)=>{let s=r.query.projects||r.query.project,i=r.query.colors==="true";if(!s){this.badRequest(n,"Project(s) parameter is required");return}let a=s.split(",").map(d=>d.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(v1(),g1)),l=`/context/${a[a.length-1]}`,u=r.query.planPath,p=await o({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,planPath:u||void 0},i);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(p)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getTimelineByQuery(r.query);n.json(s)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Pilot Memory Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:(()=>{let s=th();return[`curl "${s}/api/search/observations?query=authentication&limit=5"`,`curl "${s}/api/search/by-type?type=bugfix&limit=10"`,`curl "${s}/api/context/recent?project=pilot-memory&limit=3"`,`curl "${s}/api/context/timeline?anchor=123&depth_before=5&depth_after=5"`]})()})})};var fo=require("fs"),Vy=require("path");se();Or();var Ky=class extends Se{getLogFilePath(){let e=je.get("CLAUDE_PILOT_DATA_DIR"),r=(0,Vy.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,Vy.join)(r,`pilot-memory-${n}.log`)}getLogsDir(){let e=je.get("CLAUDE_PILOT_DATA_DIR");return(0,Vy.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,fo.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let s=parseInt(e.query.lines||"1000",10),i=Math.min(s,1e4),o=(0,fo.readFileSync)(n,"utf-8").split(` + `).all(...u);n.json({range:s,project:i||"all",totals:{totalTokens:p.totalTokens||0,avgTokensPerObservation:Math.round(p.avgTokens||0),totalObservations:p.totalObservations||0},daily:d,byType:m})})};var Ss=require("node:fs"),bl=require("node:path"),SB=require("node:os");se();var yl=require("node:fs/promises"),yB=require("node:os"),i1=require("node:path"),TSe="https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json",RSe=1440*60*1e3,At=.01,PSe=3e3,lm={"claude-opus-4-7":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:6},"claude-opus-4-6":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:6},"claude-opus-4-5":{inputCostPerToken:5e-6,outputCostPerToken:25e-6,cacheWriteCostPerToken:625e-8,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-opus-4-1":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-opus-4":{inputCostPerToken:15e-6,outputCostPerToken:75e-6,cacheWriteCostPerToken:1875e-8,cacheReadCostPerToken:15e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4-6":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4-5":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-sonnet-4":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-7-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-5-sonnet":{inputCostPerToken:3e-6,outputCostPerToken:15e-6,cacheWriteCostPerToken:375e-8,cacheReadCostPerToken:3e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-haiku-4-5":{inputCostPerToken:1e-6,outputCostPerToken:5e-6,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:At,fastMultiplier:1},"claude-3-5-haiku":{inputCostPerToken:8e-7,outputCostPerToken:4e-6,cacheWriteCostPerToken:1e-6,cacheReadCostPerToken:8e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4o":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4o-mini":{inputCostPerToken:15e-8,outputCostPerToken:6e-7,cacheWriteCostPerToken:15e-8,cacheReadCostPerToken:75e-9,webSearchCostPerRequest:At,fastMultiplier:1},"gemini-2.5-pro":{inputCostPerToken:125e-8,outputCostPerToken:1e-5,cacheWriteCostPerToken:125e-8,cacheReadCostPerToken:315e-9,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5.4":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5.4-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5":{inputCostPerToken:25e-7,outputCostPerToken:1e-5,cacheWriteCostPerToken:25e-7,cacheReadCostPerToken:125e-8,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-5-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:2e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1":{inputCostPerToken:2e-6,outputCostPerToken:8e-6,cacheWriteCostPerToken:2e-6,cacheReadCostPerToken:5e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1-mini":{inputCostPerToken:4e-7,outputCostPerToken:16e-7,cacheWriteCostPerToken:4e-7,cacheReadCostPerToken:1e-7,webSearchCostPerRequest:At,fastMultiplier:1},"gpt-4.1-nano":{inputCostPerToken:1e-7,outputCostPerToken:4e-7,cacheWriteCostPerToken:1e-7,cacheReadCostPerToken:25e-9,webSearchCostPerRequest:At,fastMultiplier:1},o3:{inputCostPerToken:1e-5,outputCostPerToken:4e-5,cacheWriteCostPerToken:1e-5,cacheReadCostPerToken:25e-7,webSearchCostPerRequest:At,fastMultiplier:1},"o4-mini":{inputCostPerToken:11e-7,outputCostPerToken:44e-7,cacheWriteCostPerToken:11e-7,cacheReadCostPerToken:275e-9,webSearchCostPerRequest:At,fastMultiplier:1}};var gB={"anthropic--claude-4.6-opus":"claude-opus-4-6","anthropic--claude-4.6-sonnet":"claude-sonnet-4-6","anthropic--claude-4.5-opus":"claude-opus-4-5","anthropic--claude-4.5-sonnet":"claude-sonnet-4-5","anthropic--claude-4.5-haiku":"claude-haiku-4-5"},po=null,vB={},Uy=new Map,s1=new Set;function bB(){return(0,i1.join)((0,yB.homedir)(),".cache","pilot-console-pricing")}function xB(){return(0,i1.join)(bB(),"litellm-pricing.json")}function ISe(t){return t.input_cost_per_token===void 0||t.output_cost_per_token===void 0?null:{inputCostPerToken:t.input_cost_per_token,outputCostPerToken:t.output_cost_per_token,cacheWriteCostPerToken:t.cache_creation_input_token_cost??t.input_cost_per_token*1.25,cacheReadCostPerToken:t.cache_read_input_token_cost??t.input_cost_per_token*.1,webSearchCostPerRequest:At,fastMultiplier:t.provider_specific_entry?.fast??1}}async function CSe(){let t=new AbortController,e=setTimeout(()=>t.abort(),PSe);try{let r=await fetch(TSe,{signal:t.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);let n=await r.json(),s=new Map;for(let[i,a]of Object.entries(n)){let o=ISe(a);if(!o)continue;s.set(i,o);let c=i.replace(/^[^/]+\//,"");c!==i&&!s.has(c)&&s.set(c,o)}return await(0,yl.mkdir)(bB(),{recursive:!0}),await(0,yl.writeFile)(xB(),JSON.stringify({timestamp:Date.now(),data:Object.fromEntries(s)})),s}finally{clearTimeout(e)}}async function OSe(){try{let t=await(0,yl.readFile)(xB(),"utf-8"),e=JSON.parse(t);return Date.now()-e.timestamp>RSe?null:new Map(Object.entries(e.data))}catch{return null}}async function _B(){let t=await OSe();if(t){po=t,Uy.clear();return}try{po=await CSe()}catch{po=new Map(Object.entries(lm))}Uy.clear()}function jSe(t){return Object.hasOwn(vB,t)?vB[t]:Object.hasOwn(gB,t)?gB[t]:t}function ASe(t){return t.replace(/@.*$/,"").replace(/-\d{8}$/,"").replace(/^[^/]+\//,"")}function NSe(t){let e=Uy.get(t);if(e!==void 0)return e;let r=jSe(ASe(t)),n=null;if(po?.has(r))n=po.get(r);else if(Object.hasOwn(lm,r))n=lm[r];else{for(let[s,i]of Object.entries(lm))if(r.startsWith(s+"-")||r===s){n=i;break}if(!n&&po){for(let[s,i]of po)if(r.startsWith(s+"-")){n=i;break}}if(!n){for(let[s,i]of Object.entries(lm))if(r.startsWith(s)){n=i;break}}}return Uy.set(t,n),n}var DSe=new Set(["","synthetic","unknown",""]);function qy(t,e,r,n,s,i,a="standard"){if(DSe.has(t))return 0;let o=NSe(t);return o?(a==="fast"?o.fastMultiplier:1)*(e*o.inputCostPerToken+r*o.outputCostPerToken+n*o.cacheWriteCostPerToken+s*o.cacheReadCostPerToken+i*o.webSearchCostPerRequest):(s1.add(t),0)}function mo(){let t=Array.from(s1);return s1.clear(),t}var zSe=(0,bl.join)((0,SB.homedir)(),".claude","projects"),MSe=50,$Se=600*1e3,wB=5*1024*1024;function LSe(t){let e=0;for(let[r,n]of Object.entries(t))e+=qy(r,n.input,n.output,n.cacheCreate,n.cacheRead,0,"standard");return Math.round(e*1e4)/1e4}var Fy=class t{cache=new Map;pathCache=new Map;projectsBase;constructor(e){this.projectsBase=e??zSe}static encodeProjectRoot(e){return e.replace(/\//g,"-")}resolveJsonlPath(e,r){let n=this.pathCache.get(e);if(n&&(0,Ss.existsSync)(n))return n;let s=`${e}.jsonl`;if(r){let i=t.encodeProjectRoot(r),a=(0,bl.join)(this.projectsBase,i,s);if((0,Ss.existsSync)(a))return this.pathCache.set(e,a),a}if(!(0,Ss.existsSync)(this.projectsBase))return null;try{for(let i of(0,Ss.readdirSync)(this.projectsBase,{withFileTypes:!0})){if(!i.isDirectory())continue;let a=(0,bl.join)(this.projectsBase,i.name,s);if((0,Ss.existsSync)(a))return this.pathCache.set(e,a),a}}catch{}return null}parseJsonlFile(e){let r;try{let x=(0,Ss.statSync)(e);if(x.size>wB)return _.warn("SESSION",`File exceeds ${wB} bytes, skipping`,{path:e,size:x.size}),null;r=x.mtimeMs}catch{return null}let n=this.cache.get(e);if(n&&Date.now()-n.timestamp<$Se&&n.mtimeMs===r)return n.stats;let s;try{s=(0,Ss.readFileSync)(e,"utf-8")}catch{return null}let i=s.split(` +`).filter(x=>x.trim().length>0),a=null,o=0,c=0,l=!1,u={},p={},d={input:0,output:0,cacheRead:0,cacheCreate:0},m={},f=[];for(let x of i){let w;try{w=JSON.parse(x)}catch{continue}let S=w.type;if(!S)continue;a===null&&w.sessionId&&(a=w.sessionId);let k=w.timestamp;if(k){let E=new Date(k);isNaN(E.getTime())||f.push(E.getTime())}if(S==="user"){let E=w.content;Array.isArray(E)?E.some(O=>typeof O=="object"&&O!==null&&O.type==="text")&&o++:o++}else if(S==="assistant"){let E=w.message;if(!E)continue;c++;let R=E.model;if(R===""&&!E.isApiErrorMessage){let $=E.content;if(Array.isArray($))for(let q of $)typeof q=="object"&&q!==null&&q.type==="text"&&q.text==="No response requested."&&(l=!0)}R&&R!==""&&R!=="unknown"&&(u[R]=(u[R]??0)+1);let O=E.usage;if(O){let $=O.input_tokens??0,q=O.output_tokens??0,B=O.cache_read_input_tokens??0,re=O.cache_creation_input_tokens??0;d.input+=$,d.output+=q,d.cacheRead+=B,d.cacheCreate+=re;let G=R||"unknown";m[G]||(m[G]={input:0,output:0,cacheRead:0,cacheCreate:0}),m[G].input+=$,m[G].output+=q,m[G].cacheRead+=B,m[G].cacheCreate+=re}let C=E.content;if(Array.isArray(C)){for(let $ of C)if(typeof $=="object"&&$!==null&&$.type==="tool_use"){let q=$.name??"unknown";p[q]=(p[q]??0)+1}}}}let v=0,g=null,h=null;f.length>0&&(f.sort((x,w)=>x-w),g=new Date(f[0]).toISOString(),h=new Date(f[f.length-1]).toISOString(),v=Math.round((f[f.length-1]-f[0])/6e4*10)/10);let y={};for(let[x,w]of Object.entries(p).sort(([,S],[,k])=>k-S))y[x]=w;a||(a=(0,bl.basename)(e).replace(/\.jsonl$/,""));let b={sessionId:a,turns:c,userMessages:o,assistantMessages:c,durationMinutes:v,models:u,tokens:d,tools:y,firstMessage:g,lastMessage:h,isResumed:l,costUsd:LSe(m)};if(this.cache.size>=MSe){let x=this.cache.keys().next().value;x!==void 0&&this.cache.delete(x)}return this.cache.set(e,{stats:b,timestamp:Date.now(),mtimeMs:r}),b}getStats(e,r){let n=this.resolveJsonlPath(e,r);return n?this.parseJsonlFile(n):null}};Ln();var Gy=class extends Se{constructor(r){super();this.searchManager=r}searchManager;setupRoutes(r){r.get("/api/search",this.handleUnifiedSearch.bind(this)),r.get("/api/search/semantic",this.handleSemanticSearch.bind(this)),r.get("/api/timeline",this.handleUnifiedTimeline.bind(this)),r.get("/api/decisions",this.handleDecisions.bind(this)),r.get("/api/changes",this.handleChanges.bind(this)),r.get("/api/how-it-works",this.handleHowItWorks.bind(this)),r.get("/api/search/observations",this.handleSearchObservations.bind(this)),r.get("/api/search/sessions",this.handleSearchSessions.bind(this)),r.get("/api/search/prompts",this.handleSearchPrompts.bind(this)),r.get("/api/search/by-concept",this.handleSearchByConcept.bind(this)),r.get("/api/search/by-file",this.handleSearchByFile.bind(this)),r.get("/api/search/by-type",this.handleSearchByType.bind(this)),r.get("/api/context/recent",this.handleGetRecentContext.bind(this)),r.get("/api/context/timeline",this.handleGetContextTimeline.bind(this)),r.get("/api/context/preview",this.handleContextPreview.bind(this)),r.get("/api/context/inject",this.handleContextInject.bind(this)),r.get("/api/timeline/by-query",this.handleGetTimelineByQuery.bind(this)),r.get("/api/search/help",this.handleSearchHelp.bind(this))}handleUnifiedSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.search(r.query);n.json(s)});handleSemanticSearch=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.semanticSearchWithScores(r.query);n.json(s)});handleUnifiedTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.timeline(r.query);n.json(s)});handleDecisions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.decisions(r.query);n.json(s)});handleChanges=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.changes(r.query);n.json(s)});handleHowItWorks=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.howItWorks(r.query);n.json(s)});handleSearchObservations=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchObservations(r.query);n.json(s)});handleSearchSessions=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchSessions(r.query);n.json(s)});handleSearchPrompts=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.searchUserPrompts(r.query);n.json(s)});handleSearchByConcept=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByConcept(r.query);n.json(s)});handleSearchByFile=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByFile(r.query);n.json(s)});handleSearchByType=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.findByType(r.query);n.json(s)});handleGetRecentContext=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getRecentContext(r.query);n.json(s)});handleGetContextTimeline=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getContextTimeline(r.query);n.json(s)});handleContextPreview=this.wrapHandler(async(r,n)=>{let s=r.query.project;if(!s){this.badRequest(n,"Project parameter is required");return}let{generateContext:i}=await Promise.resolve().then(()=>(v1(),g1)),a=`/preview/${s}`,o=await i({session_id:"preview-"+Date.now(),cwd:a},!0);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(o)});handleContextInject=this.wrapHandler(async(r,n)=>{let s=r.query.projects||r.query.project,i=r.query.colors==="true";if(!s){this.badRequest(n,"Project(s) parameter is required");return}let a=s.split(",").map(d=>d.trim()).filter(Boolean);if(a.length===0){this.badRequest(n,"At least one project is required");return}let{generateContext:o}=await Promise.resolve().then(()=>(v1(),g1)),l=`/context/${a[a.length-1]}`,u=r.query.planPath,p=await o({session_id:"context-inject-"+Date.now(),cwd:l,projects:a,planPath:u||void 0},i);n.setHeader("Content-Type","text/plain; charset=utf-8"),n.send(p)});handleGetTimelineByQuery=this.wrapHandler(async(r,n)=>{let s=await this.searchManager.getTimelineByQuery(r.query);n.json(s)});handleSearchHelp=this.wrapHandler((r,n)=>{n.json({title:"Pilot Memory Search API",description:"HTTP API for searching persistent memory",endpoints:[{path:"/api/search/observations",method:"GET",description:"Search observations using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/sessions",method:"GET",description:"Search session summaries using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)"}},{path:"/api/search/prompts",method:"GET",description:"Search user prompts using full-text search",parameters:{query:"Search query (required)",limit:"Number of results (default: 20)",project:"Filter by project name (optional)"}},{path:"/api/search/by-concept",method:"GET",description:"Find observations by concept tag",parameters:{concept:"Concept tag (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-file",method:"GET",description:"Find observations and sessions by file path",parameters:{filePath:"File path or partial path (required)",limit:"Number of results per type (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/by-type",method:"GET",description:"Find observations by type",parameters:{type:"Observation type (required): discovery, decision, bugfix, feature, refactor",limit:"Number of results (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/context/recent",method:"GET",description:"Get recent session context including summaries and observations",parameters:{project:"Project name (default: current directory)",limit:"Number of recent sessions (default: 3)"}},{path:"/api/context/timeline",method:"GET",description:"Get unified timeline around a specific point in time",parameters:{anchor:'Anchor point: observation ID, session ID (e.g., "S123"), or ISO timestamp (required)',depth_before:"Number of records before anchor (default: 10)",depth_after:"Number of records after anchor (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/timeline/by-query",method:"GET",description:"Search for best match, then get timeline around it",parameters:{query:"Search query (required)",mode:'Search mode: "auto", "observations", or "sessions" (default: "auto")',depth_before:"Number of records before match (default: 10)",depth_after:"Number of records after match (default: 10)",project:"Filter by project name (optional)"}},{path:"/api/search/help",method:"GET",description:"Get this help documentation"}],examples:(()=>{let s=th();return[`curl "${s}/api/search/observations?query=authentication&limit=5"`,`curl "${s}/api/search/by-type?type=bugfix&limit=10"`,`curl "${s}/api/context/recent?project=pilot-memory&limit=3"`,`curl "${s}/api/context/timeline?anchor=123&depth_before=5&depth_after=5"`]})()})})};var ho=require("fs"),Vy=require("path");se();Or();var Ky=class extends Se{getLogFilePath(){let e=je.get("CLAUDE_PILOT_DATA_DIR"),r=(0,Vy.join)(e,"logs"),n=new Date().toISOString().split("T")[0];return(0,Vy.join)(r,`pilot-memory-${n}.log`)}getLogsDir(){let e=je.get("CLAUDE_PILOT_DATA_DIR");return(0,Vy.join)(e,"logs")}setupRoutes(e){e.get("/api/logs",this.handleGetLogs.bind(this)),e.post("/api/logs/clear",this.handleClearLogs.bind(this))}handleGetLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,ho.existsSync)(n)){r.json({logs:"",path:n,exists:!1});return}let s=parseInt(e.query.lines||"1000",10),i=Math.min(s,1e4),o=(0,ho.readFileSync)(n,"utf-8").split(` `),c=Math.max(0,o.length-i),l=o.slice(c).join(` -`);r.json({logs:l,path:n,exists:!0,totalLines:o.length,returnedLines:o.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,fo.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,fo.writeFileSync)(n,"","utf-8"),_.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};se();var Jy=class extends Se{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}dbManager;defaultProject;setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:s,title:i,project:a}=r.body,o=a||this.defaultProject;if(!s||typeof s!="string"||s.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),l=this.dbManager.getChromaSync(),u=c.getOrCreateManualSession(o),p={type:"discovery",title:i||s.substring(0,60).trim()+(s.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:s,concepts:[],files_read:[],files_modified:[]},d=c.storeObservation(u,o,p,0,0);_.info("MEMORY","Manual observation saved",{id:d.id,project:o,title:p.title}),l.syncObservation(d.id,u,o,p,0,d.createdAtEpoch,0).catch(m=>{_.error("MEMORY","ChromaDB sync failed",{id:d.id},m)}),n.json({success:!0,id:d.id,title:p.title,project:o,message:`Memory saved as observation #${d.id}`})})};var TW=Y(Kp(),1),Yr=Y(require("path"),1),$e=require("fs"),fm=require("zlib"),RW=require("stream/promises"),Sl=require("os");se();var Qy=class extends Error{constructor(){super("Decompressed size exceeds limit"),this.name="DecompressionLimitError"}},Yy=class t extends Se{constructor(r){super();this.dbManager=r;this.backupDir=Yr.default.join((0,Sl.homedir)(),".pilot/memory","backups"),this.ensureBackupDir()}dbManager;backupDir;static BACKUP_FILENAME_RE=/^pilot-memory-[\w-]+\.(backup\.gz|backup\.json|metadata\.json)$/;isValidBackupFilename(r){return t.BACKUP_FILENAME_RE.test(r)}setupRoutes(r){r.get("/api/backups",this.handleListBackups.bind(this)),r.post("/api/backups/create",this.handleCreateBackup.bind(this)),r.delete("/api/backups/:filename",this.handleDeleteBackup.bind(this)),r.get("/api/backups/:filename/download",this.handleDownloadBackup.bind(this)),r.post("/api/backups/:filename/restore",this.handleRestoreBackup.bind(this)),r.post("/api/backups/restore/upload",TW.default.raw({limit:"500mb",type:"application/gzip"}),this.handleRestoreFromUpload.bind(this)),r.get("/api/backups/:filename/info",this.handleGetBackupInfo.bind(this))}handleListBackups=this.wrapHandler((r,n)=>{let s=[];if((0,$e.existsSync)(this.backupDir)){let i=(0,$e.readdirSync)(this.backupDir).filter(a=>a.endsWith(".backup.gz")||a.endsWith(".backup.json")).sort((a,o)=>o.localeCompare(a));for(let a of i){let o=Yr.default.join(this.backupDir,a),c=(0,$e.statSync)(o),l={filename:a,path:o,createdAt:c.mtime.toISOString(),sizeBytes:c.size},u=o.replace(/\.(backup\.gz|backup\.json)$/,".metadata.json");if((0,$e.existsSync)(u))try{l.metadata=JSON.parse((0,$e.readFileSync)(u,"utf-8"))}catch{}s.push(l)}}n.json({backupDir:this.backupDir,backups:s,totalCount:s.length})});handleCreateBackup=this.wrapHandler(async(r,n)=>{let s=r.body.includeSettings!==!1,i=r.body.compress!==!1,o=`pilot-memory-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}`,c=i?`${o}.backup.gz`:`${o}.backup.json`,l=Yr.default.join(this.backupDir,c),u=Yr.default.join(this.backupDir,`${o}.metadata.json`);_.info("BACKUP","Creating backup",{backupPath:l,includeSettings:s,compress:i});let d=this.dbManager.getSessionStore().db,m=d.prepare("SELECT * FROM sdk_sessions").all(),f=d.prepare("SELECT * FROM session_summaries").all(),v=d.prepare("SELECT * FROM observations").all(),g=d.prepare("SELECT * FROM user_prompts").all(),h=null,y=Yr.default.join((0,Sl.homedir)(),".pilot/memory","settings.json");if(s&&(0,$e.existsSync)(y))try{if(h=JSON.parse((0,$e.readFileSync)(y,"utf-8")),h&&typeof h=="object"){let R=["CLAUDE_PILOT_REMOTE_TOKEN"];for(let O of R)O in h&&h[O]&&(h[O]="")}}catch(R){_.warn("BACKUP","Failed to read settings",{},R)}let b=Yr.default.join((0,Sl.homedir)(),".pilot/memory","pilot-memory.db"),x=0;(0,$e.existsSync)(b)&&(x=(0,$e.statSync)(b).size);let w={version:"1.0",createdAt:new Date().toISOString(),data:{sessions:m,summaries:f,observations:v,prompts:g,settings:h}},S={version:"1.0",createdAt:new Date().toISOString(),createdAtEpoch:Date.now(),contents:{database:!0,settings:s&&h!==null},stats:{observations:v.length,sessions:m.length,summaries:f.length,prompts:g.length,dbSizeBytes:x}},k=JSON.stringify(w,null,2);if(i){let R=(0,fm.createGzip)(),O=(0,$e.createWriteStream)(l);await(0,RW.pipeline)((async function*(){yield k})(),R,O)}else(0,$e.writeFileSync)(l,k,"utf-8");(0,$e.writeFileSync)(u,JSON.stringify(S,null,2),"utf-8");let E=(0,$e.statSync)(l);_.info("BACKUP","Backup created successfully",{filename:c,sizeBytes:E.size,observations:v.length}),n.json({success:!0,filename:c,path:l,sizeBytes:E.size,metadata:S})});handleDeleteBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Yr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Yr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}(0,$e.unlinkSync)(i),(0,$e.existsSync)(o)&&(0,$e.unlinkSync)(o),_.info("BACKUP","Backup deleted",{filename:s}),n.json({success:!0,filename:s})});handleDownloadBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Yr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let a=s.replace(/[^a-zA-Z0-9._-]/g,"_");n.setHeader("Content-Disposition",`attachment; filename="${a}"`),n.setHeader("Content-Type",s.endsWith(".gz")?"application/gzip":"application/json"),(0,$e.createReadStream)(i).pipe(n)});handleRestoreBackup=this.wrapHandler(async(r,n)=>{let{filename:s}=r.params,i=r.body.restoreSettings===!0,a=r.body.clearExisting===!0;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let o=Yr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(o)){this.notFound(n,"Backup not found");return}_.info("BACKUP","Starting restore",{filename:s,restoreSettings:i,clearExisting:a});let c;try{if(s.endsWith(".gz")){let d=[],m=(0,fm.createGunzip)(),f=(0,$e.createReadStream)(o);await new Promise((v,g)=>{f.pipe(m).on("data",h=>d.push(h)).on("end",()=>v()).on("error",g)}),c=JSON.parse(Buffer.concat(d).toString("utf-8"))}else c=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch(d){_.error("BACKUP","Failed to read backup",{filename:s},d),this.badRequest(n,"Invalid or corrupted backup file");return}if(!c.data||!c.version){this.badRequest(n,"Invalid backup format");return}let l=this.dbManager.getSessionStore(),u={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},p=l.db.transaction(()=>{if(a&&(l.db.exec(` +`);r.json({logs:l,path:n,exists:!0,totalLines:o.length,returnedLines:o.length-c})});handleClearLogs=this.wrapHandler((e,r)=>{let n=this.getLogFilePath();if(!(0,ho.existsSync)(n)){r.json({success:!0,message:"Log file does not exist",path:n});return}(0,ho.writeFileSync)(n,"","utf-8"),_.info("SYSTEM","Log file cleared via UI",{path:n}),r.json({success:!0,message:"Log file cleared",path:n})})};se();var Jy=class extends Se{constructor(r,n){super();this.dbManager=r;this.defaultProject=n}dbManager;defaultProject;setupRoutes(r){r.post("/api/memory/save",this.handleSaveMemory.bind(this))}handleSaveMemory=this.wrapHandler(async(r,n)=>{let{text:s,title:i,project:a}=r.body,o=a||this.defaultProject;if(!s||typeof s!="string"||s.trim().length===0){this.badRequest(n,"text is required and must be non-empty");return}let c=this.dbManager.getSessionStore(),l=this.dbManager.getChromaSync(),u=c.getOrCreateManualSession(o),p={type:"discovery",title:i||s.substring(0,60).trim()+(s.length>60?"...":""),subtitle:"Manual memory",facts:[],narrative:s,concepts:[],files_read:[],files_modified:[]},d=c.storeObservation(u,o,p,0,0);_.info("MEMORY","Manual observation saved",{id:d.id,project:o,title:p.title}),l.syncObservation(d.id,u,o,p,0,d.createdAtEpoch,0).catch(m=>{_.error("MEMORY","ChromaDB sync failed",{id:d.id},m)}),n.json({success:!0,id:d.id,title:p.title,project:o,message:`Memory saved as observation #${d.id}`})})};var TW=Y(Kp(),1),Yr=Y(require("path"),1),$e=require("fs"),fm=require("zlib"),RW=require("stream/promises"),Sl=require("os");se();var Qy=class extends Error{constructor(){super("Decompressed size exceeds limit"),this.name="DecompressionLimitError"}},Yy=class t extends Se{constructor(r){super();this.dbManager=r;this.backupDir=Yr.default.join((0,Sl.homedir)(),".pilot/memory","backups"),this.ensureBackupDir()}dbManager;backupDir;static BACKUP_FILENAME_RE=/^pilot-memory-[\w-]+\.(backup\.gz|backup\.json|metadata\.json)$/;isValidBackupFilename(r){return t.BACKUP_FILENAME_RE.test(r)}setupRoutes(r){r.get("/api/backups",this.handleListBackups.bind(this)),r.post("/api/backups/create",this.handleCreateBackup.bind(this)),r.delete("/api/backups/:filename",this.handleDeleteBackup.bind(this)),r.get("/api/backups/:filename/download",this.handleDownloadBackup.bind(this)),r.post("/api/backups/:filename/restore",this.handleRestoreBackup.bind(this)),r.post("/api/backups/restore/upload",TW.default.raw({limit:"500mb",type:"application/gzip"}),this.handleRestoreFromUpload.bind(this)),r.get("/api/backups/:filename/info",this.handleGetBackupInfo.bind(this))}handleListBackups=this.wrapHandler((r,n)=>{let s=[];if((0,$e.existsSync)(this.backupDir)){let i=(0,$e.readdirSync)(this.backupDir).filter(a=>a.endsWith(".backup.gz")||a.endsWith(".backup.json")).sort((a,o)=>o.localeCompare(a));for(let a of i){let o=Yr.default.join(this.backupDir,a),c=(0,$e.statSync)(o),l={filename:a,path:o,createdAt:c.mtime.toISOString(),sizeBytes:c.size},u=o.replace(/\.(backup\.gz|backup\.json)$/,".metadata.json");if((0,$e.existsSync)(u))try{l.metadata=JSON.parse((0,$e.readFileSync)(u,"utf-8"))}catch{}s.push(l)}}n.json({backupDir:this.backupDir,backups:s,totalCount:s.length})});handleCreateBackup=this.wrapHandler(async(r,n)=>{let s=r.body.includeSettings!==!1,i=r.body.compress!==!1,o=`pilot-memory-${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}`,c=i?`${o}.backup.gz`:`${o}.backup.json`,l=Yr.default.join(this.backupDir,c),u=Yr.default.join(this.backupDir,`${o}.metadata.json`);_.info("BACKUP","Creating backup",{backupPath:l,includeSettings:s,compress:i});let d=this.dbManager.getSessionStore().db,m=d.prepare("SELECT * FROM sdk_sessions").all(),f=d.prepare("SELECT * FROM session_summaries").all(),v=d.prepare("SELECT * FROM observations").all(),g=d.prepare("SELECT * FROM user_prompts").all(),h=null,y=Yr.default.join((0,Sl.homedir)(),".pilot/memory","settings.json");if(s&&(0,$e.existsSync)(y))try{if(h=JSON.parse((0,$e.readFileSync)(y,"utf-8")),h&&typeof h=="object"){let R=["CLAUDE_PILOT_REMOTE_TOKEN"];for(let O of R)O in h&&h[O]&&(h[O]="")}}catch(R){_.warn("BACKUP","Failed to read settings",{},R)}let b=Yr.default.join((0,Sl.homedir)(),".pilot/memory","pilot-memory.db"),x=0;(0,$e.existsSync)(b)&&(x=(0,$e.statSync)(b).size);let w={version:"1.0",createdAt:new Date().toISOString(),data:{sessions:m,summaries:f,observations:v,prompts:g,settings:h}},S={version:"1.0",createdAt:new Date().toISOString(),createdAtEpoch:Date.now(),contents:{database:!0,settings:s&&h!==null},stats:{observations:v.length,sessions:m.length,summaries:f.length,prompts:g.length,dbSizeBytes:x}},k=JSON.stringify(w,null,2);if(i){let R=(0,fm.createGzip)(),O=(0,$e.createWriteStream)(l);await(0,RW.pipeline)((async function*(){yield k})(),R,O)}else(0,$e.writeFileSync)(l,k,"utf-8");(0,$e.writeFileSync)(u,JSON.stringify(S,null,2),"utf-8");let E=(0,$e.statSync)(l);_.info("BACKUP","Backup created successfully",{filename:c,sizeBytes:E.size,observations:v.length}),n.json({success:!0,filename:c,path:l,sizeBytes:E.size,metadata:S})});handleDeleteBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Yr.default.join(this.backupDir,s),a=s.replace(/\.(backup\.gz|backup\.json)$/,""),o=Yr.default.join(this.backupDir,`${a}.metadata.json`);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}(0,$e.unlinkSync)(i),(0,$e.existsSync)(o)&&(0,$e.unlinkSync)(o),_.info("BACKUP","Backup deleted",{filename:s}),n.json({success:!0,filename:s})});handleDownloadBackup=this.wrapHandler((r,n)=>{let{filename:s}=r.params;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let i=Yr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(i)){this.notFound(n,"Backup not found");return}let a=s.replace(/[^a-zA-Z0-9._-]/g,"_");n.setHeader("Content-Disposition",`attachment; filename="${a}"`),n.setHeader("Content-Type",s.endsWith(".gz")?"application/gzip":"application/json"),(0,$e.createReadStream)(i).pipe(n)});handleRestoreBackup=this.wrapHandler(async(r,n)=>{let{filename:s}=r.params,i=r.body.restoreSettings===!0,a=r.body.clearExisting===!0;if(!this.isValidBackupFilename(s)){this.badRequest(n,"Invalid filename");return}let o=Yr.default.join(this.backupDir,s);if(!(0,$e.existsSync)(o)){this.notFound(n,"Backup not found");return}_.info("BACKUP","Starting restore",{filename:s,restoreSettings:i,clearExisting:a});let c;try{if(s.endsWith(".gz")){let d=[],m=(0,fm.createGunzip)(),f=(0,$e.createReadStream)(o);await new Promise((v,g)=>{f.pipe(m).on("data",h=>d.push(h)).on("end",()=>v()).on("error",g)}),c=JSON.parse(Buffer.concat(d).toString("utf-8"))}else c=JSON.parse((0,$e.readFileSync)(o,"utf-8"))}catch(d){_.error("BACKUP","Failed to read backup",{filename:s},d),this.badRequest(n,"Invalid or corrupted backup file");return}if(!c.data||!c.version){this.badRequest(n,"Invalid backup format");return}let l=this.dbManager.getSessionStore(),u={sessionsRestored:0,sessionsSkipped:0,summariesRestored:0,summariesSkipped:0,observationsRestored:0,observationsSkipped:0,promptsRestored:0,promptsSkipped:0,settingsRestored:!1},p=l.db.transaction(()=>{if(a&&(l.db.exec(` DELETE FROM observations; DELETE FROM session_summaries; DELETE FROM user_prompts; @@ -1890,8 +1890,8 @@ Tips: `)[0].match(/\[([^\]]+)\]/);c&&(s=c[1])}catch{}let i=r.replace("spec/","");return{active:!0,worktreePath:e,branch:r,baseBranch:s,planSlug:i}}catch{return{active:!1,worktreePath:null,branch:null,baseBranch:null,planSlug:null}}}getChangedFiles(e,r,n){try{let s=(0,Xr.execFileSync)("git",["diff","--name-status",`${r}...${n}`],{cwd:e,encoding:"utf-8",timeout:1e4,env:bn}).toString(),i=(0,Xr.execFileSync)("git",["diff","--numstat",`${r}...${n}`],{cwd:e,encoding:"utf-8",timeout:1e4,env:bn}).toString();return this.parseChangedFiles(s,i)}catch{return[]}}parseChangedFiles(e,r){let n=new Map;for(let i of r.split(` `)){if(!i.trim())continue;let a=i.split(" ");a.length>=3&&n.set(a[2],{additions:parseInt(a[0],10)||0,deletions:parseInt(a[1],10)||0})}let s=[];for(let i of e.split(` `)){if(!i.trim())continue;let a=i.split(" ");if(a.length>=2){let o=a[0].charAt(0),c=a[a.length-1],l=n.get(c)||{additions:0,deletions:0};s.push({path:c,status:o,additions:l.additions,deletions:l.deletions})}}return s}getMainRepoRoot(e){try{let r=pb.default.join(e,".git");if((0,mb.existsSync)(r))try{let n=(0,mb.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=pb.default.resolve(e,s,"..","..");return pb.default.dirname(i)}}catch{return e}return e}catch{return null}}countFilesFromStat(e){let r=e.trim().split(` -`);if(r.length===0)return 0;let s=r[r.length-1].match(/(\d+) files? changed/);return s?parseInt(s[1],10):0}};var k1=require("node:fs/promises"),QW=require("node:fs"),YW=require("node:os"),go=require("node:path");se();var oke=/\b(test|pytest|vitest|jest|mocha|spec|coverage|npm\s+test|npx\s+vitest|npx\s+jest)\b/i,cke=/\bgit\s+(push|pull|commit|merge|rebase|checkout|branch|stash|log|diff|status|add|reset|cherry-pick|tag)\b/i,lke=/\b(npm\s+run\s+build|npm\s+publish|pip\s+install|docker|deploy|make\s+build|npm\s+run\s+dev|npm\s+start|pm2|systemctl|brew|cargo\s+build|npm\s+run|build)\b/i,uke=/\b(npm\s+install|pip\s+install|brew\s+install|apt\s+install|cargo\s+add)\b/i,_1=/\b(fix|bug|error|broken|failing|crash|issue|debug|traceback|exception|stack\s*trace|not\s+working|wrong|unexpected|status\s+code|404|500|401|403)\b/i,FW=/\b(add|create|implement|new|build|feature|introduce|set\s*up|scaffold|generate|make\s+(?:a|me|the)|write\s+(?:a|me|the))\b/i,pke=/\b(refactor|clean\s*up|rename|reorganize|simplify|extract|restructure|move|migrate|split)\b/i,dke=/\b(brainstorm|idea|what\s+if|explore|think\s+about|approach|strategy|design|consider|how\s+should|what\s+would|opinion|suggest|recommend)\b/i,HW=/\b(research|investigate|look\s+into|find\s+out|check|search|analyze|review|understand|explain|how\s+does|what\s+is|show\s+me|list|compare)\b/i,mke=/\.(py|js|ts|tsx|jsx|json|yaml|yml|toml|sql|sh|go|rs|java|rb|php|css|html|md|csv|xml)\b/i,fke=/\b(run\s+\S+\.\w+|execute|scrip?t|curl|api\s+\S+|endpoint|request\s+url|fetch\s+\S+|query|database|db\s+\S+)\b/i,hke=/https?:\/\/\S+/i,w1=new Set(["Edit","Write","MultiEdit","FileEditTool","FileWriteTool","NotebookEdit"]),gke=new Set(["Read","Grep","Glob","FileReadTool","GrepTool","GlobTool"]),fb=new Set(["Bash","BashTool","PowerShellTool"]),vke=new Set(["TaskCreate","TaskUpdate","TaskGet","TaskList","TaskOutput","TaskStop","TodoWrite"]),yke=new Set(["WebSearch","WebFetch","ToolSearch"]);function bke(t){return t.some(e=>w1.has(e))}function xke(t){return t.some(e=>gke.has(e))}function _ke(t){return t.some(e=>fb.has(e))}function wke(t){return t.some(e=>vke.has(e))}function Ske(t){return t.some(e=>yke.has(e))}function kke(t){return t.some(e=>e.startsWith("mcp__"))}function Eke(t){return t.some(e=>e==="Skill")}function BW(t){return t.assistantCalls.flatMap(e=>e.tools)}function Tke(t){let e=BW(t);if(e.length===0)return null;if(t.assistantCalls.some(l=>l.hasPlanMode))return"planning";if(t.assistantCalls.some(l=>l.hasAgentSpawn))return"delegation";let r=bke(e),n=xke(e),s=_ke(e),i=wke(e),a=Ske(e),o=kke(e),c=Eke(e);if(s&&!r){let l=t.userMessage;if(oke.test(l))return"testing";if(cke.test(l))return"git";if(lke.test(l)||uke.test(l))return"build/deploy"}return r?"coding":s&&n?"exploration":s?"coding":a||o||n&&!r?"exploration":i&&!r?"planning":c?"general":null}function Rke(t,e){return t==="coding"?_1.test(e)?"debugging":pke.test(e)?"refactoring":FW.test(e)?"feature":"coding":t==="exploration"?HW.test(e)?"exploration":_1.test(e)?"debugging":"exploration":t}function Pke(t){return dke.test(t)?"brainstorming":HW.test(t)?"exploration":_1.test(t)?"debugging":FW.test(t)?"feature":mke.test(t)||fke.test(t)?"coding":hke.test(t)?"exploration":"conversation"}function Ike(t){let e=!1,r=!1,n=0;for(let s of t.assistantCalls){let i=s.tools.some(o=>w1.has(o)),a=s.tools.some(o=>fb.has(o));i&&(r&&n++,e=!0,r=!1),a&&e&&(r=!0)}return n}function Cke(t){return t.assistantCalls.some(e=>e.tools.some(r=>w1.has(r)))}function WW(t){let e=BW(t),r;if(e.length===0)r=Pke(t.userMessage);else{let n=Tke(t);r=n?Rke(n,t.userMessage):"general"}return{...t,category:r,retries:Ike(t),hasEdits:Cke(t)}}function ZW(t){return t?t.split(/&&|\|\||;|\|/).map(r=>r.trim()).filter(Boolean).map(r=>{let n=r.split(/\s+/)[0]??"";return n==="sudo"||n==="env"?r.split(/\s+/)[1]??n:n}).filter(Boolean):[]}var GW=require("node:fs/promises");async function VW(t,e){let r=await(0,GW.open)(t,"r");try{let n=r.createReadStream({encoding:"utf-8"}),s="",i=0;for await(let a of n){s+=a;let o;for(;(o=s.indexOf(` -`))!==-1;){let c=s.slice(0,o);s=s.slice(o+1),c.trim().length>0&&(e(c,i),i++)}}s.trim().length>0&&e(s,i)}finally{await r.close()}}function KW(t){return t.replace(/-/g,"/")}var Rl=["coding","debugging","feature","refactoring","testing","exploration","planning","delegation","git","build/deploy","conversation","brainstorming","general"],JW={coding:"Coding",debugging:"Debugging",feature:"Feature Dev",refactoring:"Refactoring",testing:"Testing",exploration:"Exploration",planning:"Planning",delegation:"Delegation",git:"Git Ops","build/deploy":"Build/Deploy",conversation:"Conversation",brainstorming:"Brainstorming",general:"General"};var XW=process.env.CLAUDE_CONFIG_DIR?(0,go.join)(process.env.CLAUDE_CONFIG_DIR,"projects"):(0,go.join)((0,YW.homedir)(),".claude","projects"),eZ=6e4,Oke=10,ho=new Map;function jke(t){let e=t.dateRange?`${t.dateRange.start.getTime()}:${t.dateRange.end.getTime()}`:"none";return`${t.projectsBase??XW}|${e}`}function S1(t,e){let r=Date.now();for(let[n,s]of ho)r-s.ts>eZ&&ho.delete(n);if(ho.size>=Oke){let n=[...ho.entries()].sort((s,i)=>s[1].ts-i[1].ts)[0];n&&ho.delete(n[0])}ho.set(t,{data:e,ts:r})}function Ake(t){try{return JSON.parse(t)}catch{return null}}function Nke(t){if(!t.message||t.message.role!=="user")return"";let e=t.message.content;return typeof e=="string"?e:Array.isArray(e)?e.filter(r=>r.type==="text").map(r=>r.text).join(" "):""}function Dke(t){return t.filter(e=>e.type==="tool_use").map(e=>e.name)}function zke(t){return t.filter(e=>e.type==="tool_use"&&fb.has(e.name)).flatMap(e=>{let r=e.input?.command;return typeof r=="string"?ZW(r):[]})}function Mke(t,e,r){if(t.type!=="assistant")return null;let n=t.message;if(!n?.usage||!n?.model||n.model===""||n.model==="unknown")return null;let s=n.usage,i={inputTokens:s.input_tokens??0,outputTokens:s.output_tokens??0,cacheCreationInputTokens:s.cache_creation_input_tokens??0,cacheReadInputTokens:s.cache_read_input_tokens??0,webSearchRequests:s.server_tool_use?.web_search_requests??0},a=Dke(n.content??[]),o=s.speed??"standard",c=qy(n.model,i.inputTokens,i.outputTokens,i.cacheCreationInputTokens,i.cacheReadInputTokens,i.webSearchRequests,o),l=t.uuid,u=n.id??(l?`uuid:${l}`:`local:${e}:${r}`);return{model:n.model,usage:i,costUSD:c,tools:a,mcpTools:a.filter(p=>p.startsWith("mcp__")),hasAgentSpawn:a.includes("Agent"),hasPlanMode:a.includes("EnterPlanMode"),speed:o,timestamp:t.timestamp??"",bashCommands:zke(n.content??[]),deduplicationKey:u}}function $ke(t,e){if(!e)return!0;let r=new Date(t).getTime();return Number.isNaN(r)?!0:r>=e.start.getTime()&&r<=e.end.getTime()}function Lke(){let t={};for(let e of Rl)t[e]={turns:0,costUSD:0,retries:0,editTurns:0,oneShotTurns:0};return t}async function Uke(t,e,r,n){let s=[];try{await VW(t,(R,O)=>{let C=Ake(R);C?(C.__lineIndex=O,s.push(C)):_.debug("PARSER","skipping malformed JSONL line",{filePath:t,index:O})})}catch(R){return _.warn("PARSER","failed to read JSONL file",{filePath:t,error:R instanceof Error?R.message:String(R)}),{session:null}}let i=null,a=null,o=[],c=null,l=[],u=()=>{if(c!==null&&l.length>0){let R={userMessage:Nke(c),assistantCalls:l,timestamp:c.timestamp??"",sessionId:i??""};$ke(R.timestamp,n)&&o.push(R)}c=null,l=[]};for(let R of s)if(i===null&&R.sessionId&&(i=R.sessionId),a===null&&typeof R.cwd=="string"&&R.cwd.length>0&&(a=R.cwd),R.type==="user")u(),c=R;else if(R.type==="assistant"){let O=R.__lineIndex,C=Mke(R,t,O);if(!C||r.has(C.deduplicationKey)||c===null)continue;r.add(C.deduplicationKey),l.push(C)}if(u(),o.length===0)return{session:null};i||(i=(0,go.basename)(t).replace(/\.jsonl$/,""));let p=o.map(R=>WW(R)),d="",m="",f=0,v=0,g=0,h=0,y=0,b=0,x={},w={},S={},k={},E=Lke();for(let R of p){(!d||R.timestamp&&R.timestampm&&(m=R.timestamp);let O=E[R.category];O.turns++,O.retries+=R.retries,R.hasEdits&&(O.editTurns++,R.retries===0&&O.oneShotTurns++);for(let C of R.assistantCalls){b++,f+=C.usage.inputTokens,v+=C.usage.outputTokens,g+=C.usage.cacheReadInputTokens,h+=C.usage.cacheCreationInputTokens,y+=C.costUSD,O.costUSD+=C.costUSD;let $=x[C.model]??={calls:0,costUSD:0,tokens:{inputTokens:0,outputTokens:0,cacheCreationInputTokens:0,cacheReadInputTokens:0,webSearchRequests:0}};$.calls++,$.costUSD+=C.costUSD,$.tokens.inputTokens+=C.usage.inputTokens,$.tokens.outputTokens+=C.usage.outputTokens,$.tokens.cacheCreationInputTokens+=C.usage.cacheCreationInputTokens,$.tokens.cacheReadInputTokens+=C.usage.cacheReadInputTokens,$.tokens.webSearchRequests+=C.usage.webSearchRequests;for(let q of C.tools)q.startsWith("mcp__")?(S[q]??={calls:0}).calls++:(w[q]??={calls:0}).calls++;for(let q of C.bashCommands)(k[q]??={calls:0}).calls++}}return{session:{sessionId:i,project:e,firstTimestamp:d,lastTimestamp:m,totalCostUSD:y,totalInputTokens:f,totalOutputTokens:v,totalCacheReadTokens:g,totalCacheWriteTokens:h,apiCalls:b,turns:p,modelBreakdown:x,toolBreakdown:w,mcpBreakdown:S,bashBreakdown:k,categoryBreakdown:E},cwd:a??void 0}}async function hb(t={}){let e=t.projectsBase??XW,r=jke(t),n=ho.get(r);if(n&&Date.now()-n.tsc.isDirectory()).map(c=>c.name)}catch{return S1(r,[]),[]}let i=new Set,a=[];for(let o of s){let c=(0,go.join)(e,o),l=[];try{l=(await(0,k1.readdir)(c)).filter(m=>m.endsWith(".jsonl"))}catch{continue}if(l.length===0)continue;let u=[],p=null;for(let m of l){let f=(0,go.join)(c,m),{session:v,cwd:g}=await Uke(f,o,i,t.dateRange);v&&u.push(v),p===null&&g&&(p=g)}if(u.length===0)continue;let d=p??KW(o);a.push({project:o,projectPath:d,sessions:u,totalCostUSD:u.reduce((m,f)=>m+f.totalCostUSD,0),totalApiCalls:u.reduce((m,f)=>m+f.apiCalls,0)})}return a.sort((o,c)=>c.totalCostUSD-o.totalCostUSD),S1(r,a),a}function tZ(t){if(!t)return"1970-01-01";let e=new Date(t);if(Number.isNaN(e.getTime()))return"1970-01-01";let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}-${n}-${s}`}function qke(t){return tZ(t).slice(0,7)}function rZ(){return{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,models:new Map}}function Fke(t){if(!t.since&&!t.until)return;let e=(s,i)=>{if(!s||!/^\d{8}$/.test(s))return i;let a=Number(s.slice(0,4)),o=Number(s.slice(4,6))-1,c=Number(s.slice(6,8));return new Date(a,o,c,0,0,0,0)},r=e(t.since,new Date(0)),n=t.until?new Date(e(t.until,new Date).getTime()+24*3600*1e3-1):new Date;return{start:r,end:n}}function nZ(t,e,r,n){t.inputTokens+=r.inputTokens,t.outputTokens+=r.outputTokens,t.cacheCreationTokens+=r.cacheCreationInputTokens,t.cacheReadTokens+=r.cacheReadInputTokens;let s=t.models.get(e)??{modelName:e,inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,cost:0};s.inputTokens+=r.inputTokens,s.outputTokens+=r.outputTokens,s.cacheCreationTokens+=r.cacheCreationInputTokens,s.cacheReadTokens+=r.cacheReadInputTokens,s.cost+=n,t.models.set(e,s)}function sZ(t,e,r){let n=e.inputTokens+e.outputTokens+e.cacheCreationTokens+e.cacheReadTokens,s=Array.from(e.models.values()).sort((c,l)=>l.cost-c.cost),i=s.reduce((c,l)=>c+l.cost,0),a=s.map(c=>c.modelName),o={inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheCreationTokens:e.cacheCreationTokens,cacheReadTokens:e.cacheReadTokens,totalTokens:n,totalCost:i,modelsUsed:a,modelBreakdowns:s};return r==="daily"?{date:t,...o}:{month:t,...o}}async function E1(t){let e=Fke(t);return hb({dateRange:e,projectsBase:t.projectsBase})}function*T1(t){for(let e of t)for(let r of e.sessions)for(let n of r.turns)for(let s of n.assistantCalls)yield{timestamp:s.timestamp,model:s.model,tokens:s.usage,cost:s.costUSD}}async function R1(t={}){po();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=tZ(s.timestamp),a=r.get(i)??rZ();nZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{daily:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>sZ(s,i,"daily")),unknownModels:po()}}async function iZ(t={}){po();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=qke(s.timestamp),a=r.get(i)??rZ();nZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{monthly:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>sZ(s,i,"monthly")),unknownModels:po()}}async function aZ(t={}){po();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=r.get(s.model)??{model:s.model,totalCost:0,inputTokens:0,outputTokens:0,totalTokens:0};i.totalCost+=s.cost,i.inputTokens+=s.tokens.inputTokens,i.outputTokens+=s.tokens.outputTokens,i.totalTokens+=s.tokens.inputTokens+s.tokens.outputTokens+s.tokens.cacheCreationInputTokens+s.tokens.cacheReadInputTokens,r.set(s.model,i)}return{models:Array.from(r.values()).sort((s,i)=>i.totalCost-s.totalCost),unknownModels:po()}}var cZ=require("node:child_process"),lZ=require("node:fs"),uZ=require("node:util");se();var Hke=(0,uZ.promisify)(cZ.execFile),pZ=5e3,Bke=15e3,Wke=300*1e3,Zke=8*1024*1024,oZ=new Map;async function Pl(t,e,r){let n=r-Date.now();if(n<=0)return null;let s=Math.min(pZ,n);try{let{stdout:i}=await Hke("git",e,{cwd:t,timeout:s,maxBuffer:Zke});return i.trim()}catch{return null}}async function Gke(t,e){return(0,lZ.existsSync)(t)?await Pl(t,["rev-parse","--is-inside-work-tree"],e)==="true":!1}async function P1(t,e,r){if(await Pl(t,["check-ref-format","--branch",e],r)===null)return!1;let s=await Pl(t,["rev-parse","--verify","--quiet",e],r);return s!==null&&s.length>0}async function Vke(t,e){let r=await Pl(t,["symbolic-ref","refs/remotes/origin/HEAD"],e);if(r){let n=r.replace(/^refs\/remotes\/origin\//,"");if(await P1(t,n,e))return n}return await P1(t,"main",e)?"main":await P1(t,"master",e)?"master":"main"}async function Kke(t,e){return await Pl(t,["rev-parse","HEAD"],e)??""}async function Jke(t,e,r,n){let s=`--since=${e.start.toISOString()}`,i=`--until=${e.end.toISOString()}`,a=await Pl(t,["log",r,s,i,"--format=%aI"],n);return a?a.split(` +`);if(r.length===0)return 0;let s=r[r.length-1].match(/(\d+) files? changed/);return s?parseInt(s[1],10):0}};var k1=require("node:fs/promises"),QW=require("node:fs"),YW=require("node:os"),vo=require("node:path");se();var oke=/\b(test|pytest|vitest|jest|mocha|spec|coverage|npm\s+test|npx\s+vitest|npx\s+jest)\b/i,cke=/\bgit\s+(push|pull|commit|merge|rebase|checkout|branch|stash|log|diff|status|add|reset|cherry-pick|tag)\b/i,lke=/\b(npm\s+run\s+build|npm\s+publish|pip\s+install|docker|deploy|make\s+build|npm\s+run\s+dev|npm\s+start|pm2|systemctl|brew|cargo\s+build|npm\s+run|build)\b/i,uke=/\b(npm\s+install|pip\s+install|brew\s+install|apt\s+install|cargo\s+add)\b/i,_1=/\b(fix|bug|error|broken|failing|crash|issue|debug|traceback|exception|stack\s*trace|not\s+working|wrong|unexpected|status\s+code|404|500|401|403)\b/i,FW=/\b(add|create|implement|new|build|feature|introduce|set\s*up|scaffold|generate|make\s+(?:a|me|the)|write\s+(?:a|me|the))\b/i,pke=/\b(refactor|clean\s*up|rename|reorganize|simplify|extract|restructure|move|migrate|split)\b/i,dke=/\b(brainstorm|idea|what\s+if|explore|think\s+about|approach|strategy|design|consider|how\s+should|what\s+would|opinion|suggest|recommend)\b/i,HW=/\b(research|investigate|look\s+into|find\s+out|check|search|analyze|review|understand|explain|how\s+does|what\s+is|show\s+me|list|compare)\b/i,mke=/\.(py|js|ts|tsx|jsx|json|yaml|yml|toml|sql|sh|go|rs|java|rb|php|css|html|md|csv|xml)\b/i,fke=/\b(run\s+\S+\.\w+|execute|scrip?t|curl|api\s+\S+|endpoint|request\s+url|fetch\s+\S+|query|database|db\s+\S+)\b/i,hke=/https?:\/\/\S+/i,w1=new Set(["Edit","Write","MultiEdit","FileEditTool","FileWriteTool","NotebookEdit"]),gke=new Set(["Read","Grep","Glob","FileReadTool","GrepTool","GlobTool"]),fb=new Set(["Bash","BashTool","PowerShellTool"]),vke=new Set(["TaskCreate","TaskUpdate","TaskGet","TaskList","TaskOutput","TaskStop","TodoWrite"]),yke=new Set(["WebSearch","WebFetch","ToolSearch"]);function bke(t){return t.some(e=>w1.has(e))}function xke(t){return t.some(e=>gke.has(e))}function _ke(t){return t.some(e=>fb.has(e))}function wke(t){return t.some(e=>vke.has(e))}function Ske(t){return t.some(e=>yke.has(e))}function kke(t){return t.some(e=>e.startsWith("mcp__"))}function Eke(t){return t.some(e=>e==="Skill")}function BW(t){return t.assistantCalls.flatMap(e=>e.tools)}function Tke(t){let e=BW(t);if(e.length===0)return null;if(t.assistantCalls.some(l=>l.hasPlanMode))return"planning";if(t.assistantCalls.some(l=>l.hasAgentSpawn))return"delegation";let r=bke(e),n=xke(e),s=_ke(e),i=wke(e),a=Ske(e),o=kke(e),c=Eke(e);if(s&&!r){let l=t.userMessage;if(oke.test(l))return"testing";if(cke.test(l))return"git";if(lke.test(l)||uke.test(l))return"build/deploy"}return r?"coding":s&&n?"exploration":s?"coding":a||o||n&&!r?"exploration":i&&!r?"planning":c?"general":null}function Rke(t,e){return t==="coding"?_1.test(e)?"debugging":pke.test(e)?"refactoring":FW.test(e)?"feature":"coding":t==="exploration"?HW.test(e)?"exploration":_1.test(e)?"debugging":"exploration":t}function Pke(t){return dke.test(t)?"brainstorming":HW.test(t)?"exploration":_1.test(t)?"debugging":FW.test(t)?"feature":mke.test(t)||fke.test(t)?"coding":hke.test(t)?"exploration":"conversation"}function Ike(t){let e=!1,r=!1,n=0;for(let s of t.assistantCalls){let i=s.tools.some(o=>w1.has(o)),a=s.tools.some(o=>fb.has(o));i&&(r&&n++,e=!0,r=!1),a&&e&&(r=!0)}return n}function Cke(t){return t.assistantCalls.some(e=>e.tools.some(r=>w1.has(r)))}function WW(t){let e=BW(t),r;if(e.length===0)r=Pke(t.userMessage);else{let n=Tke(t);r=n?Rke(n,t.userMessage):"general"}return{...t,category:r,retries:Ike(t),hasEdits:Cke(t)}}function ZW(t){return t?t.split(/&&|\|\||;|\|/).map(r=>r.trim()).filter(Boolean).map(r=>{let n=r.split(/\s+/)[0]??"";return n==="sudo"||n==="env"?r.split(/\s+/)[1]??n:n}).filter(Boolean):[]}var GW=require("node:fs/promises");async function VW(t,e){let r=await(0,GW.open)(t,"r");try{let n=r.createReadStream({encoding:"utf-8"}),s="",i=0;for await(let a of n){s+=a;let o;for(;(o=s.indexOf(` +`))!==-1;){let c=s.slice(0,o);s=s.slice(o+1),c.trim().length>0&&(e(c,i),i++)}}s.trim().length>0&&e(s,i)}finally{await r.close()}}function KW(t){return t.replace(/-/g,"/")}var Rl=["coding","debugging","feature","refactoring","testing","exploration","planning","delegation","git","build/deploy","conversation","brainstorming","general"],JW={coding:"Coding",debugging:"Debugging",feature:"Feature Dev",refactoring:"Refactoring",testing:"Testing",exploration:"Exploration",planning:"Planning",delegation:"Delegation",git:"Git Ops","build/deploy":"Build/Deploy",conversation:"Conversation",brainstorming:"Brainstorming",general:"General"};var XW=process.env.CLAUDE_CONFIG_DIR?(0,vo.join)(process.env.CLAUDE_CONFIG_DIR,"projects"):(0,vo.join)((0,YW.homedir)(),".claude","projects"),eZ=6e4,Oke=10,go=new Map;function jke(t){let e=t.dateRange?`${t.dateRange.start.getTime()}:${t.dateRange.end.getTime()}`:"none";return`${t.projectsBase??XW}|${e}`}function S1(t,e){let r=Date.now();for(let[n,s]of go)r-s.ts>eZ&&go.delete(n);if(go.size>=Oke){let n=[...go.entries()].sort((s,i)=>s[1].ts-i[1].ts)[0];n&&go.delete(n[0])}go.set(t,{data:e,ts:r})}function Ake(t){try{return JSON.parse(t)}catch{return null}}function Nke(t){if(!t.message||t.message.role!=="user")return"";let e=t.message.content;return typeof e=="string"?e:Array.isArray(e)?e.filter(r=>r.type==="text").map(r=>r.text).join(" "):""}function Dke(t){return t.filter(e=>e.type==="tool_use").map(e=>e.name)}function zke(t){return t.filter(e=>e.type==="tool_use"&&fb.has(e.name)).flatMap(e=>{let r=e.input?.command;return typeof r=="string"?ZW(r):[]})}function Mke(t,e,r){if(t.type!=="assistant")return null;let n=t.message;if(!n?.usage||!n?.model||n.model===""||n.model==="unknown")return null;let s=n.usage,i={inputTokens:s.input_tokens??0,outputTokens:s.output_tokens??0,cacheCreationInputTokens:s.cache_creation_input_tokens??0,cacheReadInputTokens:s.cache_read_input_tokens??0,webSearchRequests:s.server_tool_use?.web_search_requests??0},a=Dke(n.content??[]),o=s.speed??"standard",c=qy(n.model,i.inputTokens,i.outputTokens,i.cacheCreationInputTokens,i.cacheReadInputTokens,i.webSearchRequests,o),l=t.uuid,u=n.id??(l?`uuid:${l}`:`local:${e}:${r}`);return{model:n.model,usage:i,costUSD:c,tools:a,mcpTools:a.filter(p=>p.startsWith("mcp__")),hasAgentSpawn:a.includes("Agent"),hasPlanMode:a.includes("EnterPlanMode"),speed:o,timestamp:t.timestamp??"",bashCommands:zke(n.content??[]),deduplicationKey:u}}function $ke(t,e){if(!e)return!0;let r=new Date(t).getTime();return Number.isNaN(r)?!0:r>=e.start.getTime()&&r<=e.end.getTime()}function Lke(){let t={};for(let e of Rl)t[e]={turns:0,costUSD:0,retries:0,editTurns:0,oneShotTurns:0};return t}async function Uke(t,e,r,n){let s=[];try{await VW(t,(R,O)=>{let C=Ake(R);C?(C.__lineIndex=O,s.push(C)):_.debug("PARSER","skipping malformed JSONL line",{filePath:t,index:O})})}catch(R){return _.warn("PARSER","failed to read JSONL file",{filePath:t,error:R instanceof Error?R.message:String(R)}),{session:null}}let i=null,a=null,o=[],c=null,l=[],u=()=>{if(c!==null&&l.length>0){let R={userMessage:Nke(c),assistantCalls:l,timestamp:c.timestamp??"",sessionId:i??""};$ke(R.timestamp,n)&&o.push(R)}c=null,l=[]};for(let R of s)if(i===null&&R.sessionId&&(i=R.sessionId),a===null&&typeof R.cwd=="string"&&R.cwd.length>0&&(a=R.cwd),R.type==="user")u(),c=R;else if(R.type==="assistant"){let O=R.__lineIndex,C=Mke(R,t,O);if(!C||r.has(C.deduplicationKey)||c===null)continue;r.add(C.deduplicationKey),l.push(C)}if(u(),o.length===0)return{session:null};i||(i=(0,vo.basename)(t).replace(/\.jsonl$/,""));let p=o.map(R=>WW(R)),d="",m="",f=0,v=0,g=0,h=0,y=0,b=0,x={},w={},S={},k={},E=Lke();for(let R of p){(!d||R.timestamp&&R.timestampm&&(m=R.timestamp);let O=E[R.category];O.turns++,O.retries+=R.retries,R.hasEdits&&(O.editTurns++,R.retries===0&&O.oneShotTurns++);for(let C of R.assistantCalls){b++,f+=C.usage.inputTokens,v+=C.usage.outputTokens,g+=C.usage.cacheReadInputTokens,h+=C.usage.cacheCreationInputTokens,y+=C.costUSD,O.costUSD+=C.costUSD;let $=x[C.model]??={calls:0,costUSD:0,tokens:{inputTokens:0,outputTokens:0,cacheCreationInputTokens:0,cacheReadInputTokens:0,webSearchRequests:0}};$.calls++,$.costUSD+=C.costUSD,$.tokens.inputTokens+=C.usage.inputTokens,$.tokens.outputTokens+=C.usage.outputTokens,$.tokens.cacheCreationInputTokens+=C.usage.cacheCreationInputTokens,$.tokens.cacheReadInputTokens+=C.usage.cacheReadInputTokens,$.tokens.webSearchRequests+=C.usage.webSearchRequests;for(let q of C.tools)q.startsWith("mcp__")?(S[q]??={calls:0}).calls++:(w[q]??={calls:0}).calls++;for(let q of C.bashCommands)(k[q]??={calls:0}).calls++}}return{session:{sessionId:i,project:e,firstTimestamp:d,lastTimestamp:m,totalCostUSD:y,totalInputTokens:f,totalOutputTokens:v,totalCacheReadTokens:g,totalCacheWriteTokens:h,apiCalls:b,turns:p,modelBreakdown:x,toolBreakdown:w,mcpBreakdown:S,bashBreakdown:k,categoryBreakdown:E},cwd:a??void 0}}async function hb(t={}){let e=t.projectsBase??XW,r=jke(t),n=go.get(r);if(n&&Date.now()-n.tsc.isDirectory()).map(c=>c.name)}catch{return S1(r,[]),[]}let i=new Set,a=[];for(let o of s){let c=(0,vo.join)(e,o),l=[];try{l=(await(0,k1.readdir)(c)).filter(m=>m.endsWith(".jsonl"))}catch{continue}if(l.length===0)continue;let u=[],p=null;for(let m of l){let f=(0,vo.join)(c,m),{session:v,cwd:g}=await Uke(f,o,i,t.dateRange);v&&u.push(v),p===null&&g&&(p=g)}if(u.length===0)continue;let d=p??KW(o);a.push({project:o,projectPath:d,sessions:u,totalCostUSD:u.reduce((m,f)=>m+f.totalCostUSD,0),totalApiCalls:u.reduce((m,f)=>m+f.apiCalls,0)})}return a.sort((o,c)=>c.totalCostUSD-o.totalCostUSD),S1(r,a),a}function tZ(t){if(!t)return"1970-01-01";let e=new Date(t);if(Number.isNaN(e.getTime()))return"1970-01-01";let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}-${n}-${s}`}function qke(t){return tZ(t).slice(0,7)}function rZ(){return{inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,models:new Map}}function Fke(t){if(!t.since&&!t.until)return;let e=(s,i)=>{if(!s||!/^\d{8}$/.test(s))return i;let a=Number(s.slice(0,4)),o=Number(s.slice(4,6))-1,c=Number(s.slice(6,8));return new Date(a,o,c,0,0,0,0)},r=e(t.since,new Date(0)),n=t.until?new Date(e(t.until,new Date).getTime()+24*3600*1e3-1):new Date;return{start:r,end:n}}function nZ(t,e,r,n){t.inputTokens+=r.inputTokens,t.outputTokens+=r.outputTokens,t.cacheCreationTokens+=r.cacheCreationInputTokens,t.cacheReadTokens+=r.cacheReadInputTokens;let s=t.models.get(e)??{modelName:e,inputTokens:0,outputTokens:0,cacheCreationTokens:0,cacheReadTokens:0,cost:0};s.inputTokens+=r.inputTokens,s.outputTokens+=r.outputTokens,s.cacheCreationTokens+=r.cacheCreationInputTokens,s.cacheReadTokens+=r.cacheReadInputTokens,s.cost+=n,t.models.set(e,s)}function sZ(t,e,r){let n=e.inputTokens+e.outputTokens+e.cacheCreationTokens+e.cacheReadTokens,s=Array.from(e.models.values()).sort((c,l)=>l.cost-c.cost),i=s.reduce((c,l)=>c+l.cost,0),a=s.map(c=>c.modelName),o={inputTokens:e.inputTokens,outputTokens:e.outputTokens,cacheCreationTokens:e.cacheCreationTokens,cacheReadTokens:e.cacheReadTokens,totalTokens:n,totalCost:i,modelsUsed:a,modelBreakdowns:s};return r==="daily"?{date:t,...o}:{month:t,...o}}async function E1(t){let e=Fke(t);return hb({dateRange:e,projectsBase:t.projectsBase})}function*T1(t){for(let e of t)for(let r of e.sessions)for(let n of r.turns)for(let s of n.assistantCalls)yield{timestamp:s.timestamp,model:s.model,tokens:s.usage,cost:s.costUSD}}async function R1(t={}){mo();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=tZ(s.timestamp),a=r.get(i)??rZ();nZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{daily:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>sZ(s,i,"daily")),unknownModels:mo()}}async function iZ(t={}){mo();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=qke(s.timestamp),a=r.get(i)??rZ();nZ(a,s.model,s.tokens,s.cost),r.set(i,a)}return{monthly:Array.from(r.entries()).sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>sZ(s,i,"monthly")),unknownModels:mo()}}async function aZ(t={}){mo();let e=await E1(t),r=new Map;for(let s of T1(e)){let i=r.get(s.model)??{model:s.model,totalCost:0,inputTokens:0,outputTokens:0,totalTokens:0};i.totalCost+=s.cost,i.inputTokens+=s.tokens.inputTokens,i.outputTokens+=s.tokens.outputTokens,i.totalTokens+=s.tokens.inputTokens+s.tokens.outputTokens+s.tokens.cacheCreationInputTokens+s.tokens.cacheReadInputTokens,r.set(s.model,i)}return{models:Array.from(r.values()).sort((s,i)=>i.totalCost-s.totalCost),unknownModels:mo()}}var cZ=require("node:child_process"),lZ=require("node:fs"),uZ=require("node:util");se();var Hke=(0,uZ.promisify)(cZ.execFile),pZ=5e3,Bke=15e3,Wke=300*1e3,Zke=8*1024*1024,oZ=new Map;async function Pl(t,e,r){let n=r-Date.now();if(n<=0)return null;let s=Math.min(pZ,n);try{let{stdout:i}=await Hke("git",e,{cwd:t,timeout:s,maxBuffer:Zke});return i.trim()}catch{return null}}async function Gke(t,e){return(0,lZ.existsSync)(t)?await Pl(t,["rev-parse","--is-inside-work-tree"],e)==="true":!1}async function P1(t,e,r){if(await Pl(t,["check-ref-format","--branch",e],r)===null)return!1;let s=await Pl(t,["rev-parse","--verify","--quiet",e],r);return s!==null&&s.length>0}async function Vke(t,e){let r=await Pl(t,["symbolic-ref","refs/remotes/origin/HEAD"],e);if(r){let n=r.replace(/^refs\/remotes\/origin\//,"");if(await P1(t,n,e))return n}return await P1(t,"main",e)?"main":await P1(t,"master",e)?"master":"main"}async function Kke(t,e){return await Pl(t,["rev-parse","HEAD"],e)??""}async function Jke(t,e,r,n){let s=`--since=${e.start.toISOString()}`,i=`--until=${e.end.toISOString()}`,a=await Pl(t,["log",r,s,i,"--format=%aI"],n);return a?a.split(` `).filter(Boolean).map(o=>({timestamp:new Date(o)})):[]}function Qke(t,e){if(!t.firstTimestamp)return 0;let r=new Date(t.firstTimestamp),n=new Date(new Date(t.lastTimestamp||t.firstTimestamp).getTime()+3600*1e3);return e.filter(s=>s.timestamp>=r&&s.timestamp<=n).length}async function Yke(t,e,r){let n=t.projectPath,s=Date.now(),i=Math.min(r.remainingMs,pZ*4),a=s+i,o=(g,h)=>({productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:h,degraded:g});if(r.remainingMs<=0)return o(!0,!1);if(!n||!await Gke(n,a))return r.remainingMs-=Date.now()-s,o(!1,!1);let c=await Kke(n,a),l=`${n}|${e.start.getTime()}|${e.end.getTime()}|${c}`,u=oZ.get(l);if(u&&u.sha===c&&Date.now()-u.ts=a)return r.remainingMs-=Date.now()-s,o(!0,!0);let d=[],m=!1;try{d=await Jke(n,e,p,a)}catch(g){m=!0,_.warn("PARSER","code-quality: commit lookup failed",{cwd:n,error:g instanceof Error?g.message:String(g)})}let f=m||Date.now()>=a,v={productiveSessions:[],productiveCost:0,commitsShipped:0,hasGit:!0,degraded:f};if(!f)for(let g of t.sessions){let h=Qke(g,d);h>0&&(v.productiveSessions.push(g),v.productiveCost+=g.totalCostUSD,v.commitsShipped+=h)}return r.remainingMs-=Date.now()-s,f||oZ.set(l,{result:v,ts:Date.now(),sha:c}),v}async function dZ(t){let e=await hb({dateRange:t.dateRange,projectsBase:t.projectsBase}),r=0,n=0,s=0,i=0,a=0,o=new Map;for(let g of Rl)o.set(g,{editTurns:0,oneShotTurns:0,retries:0});for(let g of e)for(let h of g.sessions){i++,a+=h.totalCostUSD;for(let y of Rl){let b=h.categoryBreakdown[y],x=o.get(y);x.editTurns+=b.editTurns,x.oneShotTurns+=b.oneShotTurns,x.retries+=b.retries,r+=b.editTurns,n+=b.oneShotTurns,s+=b.retries}}let c=Rl.map(g=>{let h=o.get(g);return{category:g,label:JW[g],editTurns:h.editTurns,retries:h.retries,oneShotPct:h.editTurns>0?h.oneShotTurns/h.editTurns:0}}).filter(g=>g.editTurns>0).sort((g,h)=>h.retries-g.retries||h.editTurns-g.editTurns).slice(0,3),l={remainingMs:Bke},u=0,p=0,d=0,m=!1,f=!1,v=[];for(let g of e){let h=await Yke(g,t.dateRange,l);h.hasGit&&(m=!0),h.degraded&&(f=!0,v.push(g.project)),u+=h.productiveCost,p+=h.productiveSessions.length,d+=h.commitsShipped}return{totalEditTurns:r,oneShotTurns:n,oneShotPct:r>0?n/r:0,retries:s,retriesPerEditTurn:r>0?s/r:0,topCategories:c,productive:{cost:u,sessions:p},totalSessions:i,totalCost:a,commitsShipped:d,hasGitData:m,degraded:f,degradedProjects:v}}function Xke(t){switch(t.kind){case"pro":return 20;case"max":return 200;case"custom":return Math.max(0,t.monthlyUsd??0);default:return 0}}function eEe(t){return typeof t!="number"||Number.isNaN(t)?1:Math.min(28,Math.max(1,Math.floor(t)))}function tEe(t,e){let r=eEe(t),n=e.getFullYear(),s=e.getMonth(),i;e.getDate()>=r?i=new Date(n,s,r,0,0,0,0):i=new Date(n,s-1,r,0,0,0,0);let a=new Date(i);return a.setMonth(a.getMonth()+1),{periodStart:i,periodEnd:a}}function rEe(t){return t>=1?"over":t>=.8?"near":"under"}function mZ(t,e,r=new Date){let n=Xke(t),{periodStart:s,periodEnd:i}=tEe(t.resetDay??1,r),a=0;for(let d of e){let m=new Date(d.date+"T00:00:00");m>=s&&m0?a/n:0;return{kind:t.kind,monthlyBudgetUsd:n,spendToDate:a,forecastEndOfPeriod:u,periodStart:s.toISOString().slice(0,10),periodEnd:i.toISOString().slice(0,10),daysElapsed:l,daysTotal:c,status:rEe(p),pctUsed:p}}var vi=Y(require("node:fs"),1),I1=Y(require("node:os"),1),_m=Y(require("node:path"),1),gb=/^\d{8}$/,nEe=300*1e3,vb=class extends Se{cache=new Map;pendingExecutions=new Map;pricingReady=null;constructor(){super(),this.pricingReady=_B().catch(()=>{})}setupRoutes(e){e.get("/api/usage/daily",this.wrapHandler(this.handleDaily.bind(this))),e.get("/api/usage/monthly",this.wrapHandler(this.handleMonthly.bind(this))),e.get("/api/usage/models",this.wrapHandler(this.handleModels.bind(this))),e.get("/api/usage/yield",this.wrapHandler(this.handleYield.bind(this))),e.get("/api/usage/plan",this.wrapHandler(this.handlePlan.bind(this))),e.put("/api/usage/plan",this.wrapHandler(this.handlePlanPut.bind(this)))}async handlePlanPut(e,r){let n=e.body;if(!n||typeof n!="object"){this.badRequest(r,"Request body must be a plan object.");return}if(typeof n.kind!="string"||!["none","pro","max","custom"].includes(n.kind)){this.badRequest(r,"kind must be one of: none, pro, max, custom");return}if(n.monthlyUsd!==void 0&&(typeof n.monthlyUsd!="number"||n.monthlyUsd<0||n.monthlyUsd>1e4)){this.badRequest(r,"monthlyUsd must be a number between 0 and 10000");return}if(n.resetDay!==void 0&&(typeof n.resetDay!="number"||n.resetDay<1||n.resetDay>28)){this.badRequest(r,"resetDay must be a number between 1 and 28");return}let s=_m.join(I1.homedir(),".pilot","config.json"),i={};try{i=JSON.parse(vi.readFileSync(s,"utf-8"))}catch{i={}}let a=i.usage??{},c={...a.plan??{},kind:n.kind};n.monthlyUsd!==void 0&&(c.monthlyUsd=n.monthlyUsd),n.resetDay!==void 0&&(c.resetDay=n.resetDay),i.usage={...a,plan:c},vi.mkdirSync(_m.dirname(s),{recursive:!0});let l=s+".tmp";vi.writeFileSync(l,JSON.stringify(i,null,2),"utf-8"),vi.renameSync(l,s),this.cache.delete("plan"),r.json({available:!0,plan:c})}async handlePlan(e,r){let n=await this.getCachedOrExecute("plan",async()=>{await this.pricingReady;let s=this.readPlanFromConfig(),{daily:i}=await R1({}),a=mZ(s,i.map(o=>({date:o.date,totalCost:o.totalCost})));return{plan:s,progress:a}});r.json({available:!0,...n})}readPlanFromConfig(){let e=_m.join(I1.homedir(),".pilot","config.json");try{let n=JSON.parse(vi.readFileSync(e,"utf-8")).usage?.plan;if(n&&typeof n.kind=="string"&&["none","pro","max","custom"].includes(n.kind))return{kind:n.kind,monthlyUsd:typeof n.monthlyUsd=="number"?n.monthlyUsd:void 0,resetDay:typeof n.resetDay=="number"?n.resetDay:void 0}}catch{}return{kind:"none"}}async handleYield(e,r){let n=e.query.since,s=e.query.until;if(n&&!gb.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!gb.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=`yield-${n??""}-${s??""}`,a=await this.getCachedOrExecute(i,async()=>{await this.pricingReady;let o={start:n?this.parseDate(n):new Date(Date.now()-720*3600*1e3),end:s?new Date(this.parseDate(s).getTime()+24*3600*1e3-1):new Date};return dZ({dateRange:o})});r.json({available:!0,...a})}parseDate(e){let r=Number(e.slice(0,4)),n=Number(e.slice(4,6))-1,s=Number(e.slice(6,8));return new Date(r,n,s)}async handleDaily(e,r){let n=e.query.since,s=e.query.until;if(n&&!gb.test(n)){this.badRequest(r,"Invalid since parameter. Expected YYYYMMDD format.");return}if(s&&!gb.test(s)){this.badRequest(r,"Invalid until parameter. Expected YYYYMMDD format.");return}let i=n||this.defaultSince(),a=`daily-${i}-${s||""}`,o=await this.getCachedOrExecute(a,async()=>(await this.pricingReady,R1({since:i,until:s})));r.json({available:!0,...o})}async handleMonthly(e,r){let s=await this.getCachedOrExecute("monthly",async()=>(await this.pricingReady,iZ({})));r.json({available:!0,...s})}async handleModels(e,r){let s=await this.getCachedOrExecute("models",async()=>(await this.pricingReady,aZ({})));r.json({available:!0,...s})}async getCachedOrExecute(e,r){let n=this.cache.get(e);if(n&&Date.now()-n.timestamp(this.cache.set(e,{data:a,timestamp:Date.now()}),a)).finally(()=>{this.pendingExecutions.delete(e)});return this.pendingExecutions.set(e,i),i}defaultSince(){let e=new Date;e.setDate(e.getDate()-30);let r=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${r}${n}${s}`}};var fZ=require("bun:sqlite"),bb=require("node:fs/promises"),hZ=require("node:os"),C1=require("node:path");var sEe=300*1e3,iEe=1e4,yb=class extends Se{cache=null;pending=null;rtkPath;constructor(){super(),this.rtkPath=Bun.which("rtk")}setupRoutes(e){e.get("/api/tool-savings",this.wrapHandler(this.handleToolSavings.bind(this)))}async handleToolSavings(e,r){let n=await this.getCached();r.json(n)}async getCached(){return this.cache&&Date.now()-this.cache.timestamp{let n={rtk:e,contextMode:r};return this.cache={data:n,timestamp:Date.now()},n}).finally(()=>{this.pending=null}),this.pending)}async fetchRtkStats(){if(!this.rtkPath)return{available:!1,error:"rtk not installed"};try{let e=Bun.spawn([this.rtkPath,"gain","--format","json"],{stdout:"pipe",stderr:"pipe"}),r=setTimeout(()=>{try{e.kill("SIGTERM")}catch{}},iEe);try{let n=await new Response(e.stdout).text();if(await e.exited!==0)return{available:!1,error:"rtk command failed"};let a=JSON.parse(n).summary;return a?{available:!0,totalCommands:a.total_commands,totalInput:a.total_input,totalOutput:a.total_output,totalSaved:a.total_saved,avgSavingsPct:a.avg_savings_pct,totalTimeMs:a.total_time_ms}:{available:!1,error:"Unexpected rtk output"}}finally{clearTimeout(r)}}catch(e){return{available:!1,error:e instanceof Error?e.message:"rtk error"}}}async fetchContextModeStats(){let e=(0,C1.join)((0,hZ.homedir)(),".claude","context-mode","content"),r;try{r=(await(0,bb.readdir)(e)).filter(l=>l.endsWith(".db"))}catch{return{available:!1,error:"context-mode not installed"}}if(r.length===0)return{available:!1,error:"no indexed content"};let n=0,s=0,i=0,a=0,o=0;for(let c of r){let l=(0,C1.join)(e,c);try{let u=await(0,bb.stat)(l);a+=u.size;let p=new fZ.Database(l,{readonly:!0});try{let d=p.query("SELECT COUNT(*) AS sources, COALESCE(SUM(chunk_count), 0) AS chunks, COALESCE(SUM(code_chunk_count), 0) AS codeChunks FROM sources").get();d&&(n+=d.sources??0,s+=d.chunks??0,i+=d.codeChunks??0,o+=1)}finally{p.close()}}catch{}}return o===0?{available:!1,error:"no readable context-mode databases"}:{available:!0,sources:n,chunks:s,codeChunks:i,dbSizeBytes:a,databases:o}}};var O1=require("child_process"),j1=require("fs"),A1=require("os");var xb={valid:!1,tier:null,email:null,daysRemaining:null,isExpired:!1},aEe=300*1e3,_b=class extends Se{cache=null;setupRoutes(e){e.get("/api/license",this.handleGetLicense.bind(this)),e.post("/api/license/activate",this.handleActivate.bind(this))}handleGetLicense=this.wrapHandler((e,r)=>{let n=e.query.refresh==="1";r.json(this.getLicenseInfo(n))});getLicenseInfo(e=!1){if(!e&&this.cache&&Date.now(){let{key:n}=e.body;if(!n||typeof n!="string"){this.badRequest(r,"License key is required");return}let s=this.activateLicense(n.trim());r.json(s)});activateLicense(e){let r=`${(0,A1.homedir)()}/.pilot/bin/pilot`;if(!(0,j1.existsSync)(r))return{success:!1,tier:null,email:null,error:"Pilot binary not found"};try{let s=(0,O1.spawnSync)(r,["activate",e,"--json"],{stdio:"pipe",timeout:1e4,env:$u()}).stdout?.toString().trim();if(!s)return{success:!1,tier:null,email:null,error:"No response from pilot"};let i=JSON.parse(s);return i.success?(this.cache=null,{success:!0,tier:i.tier??null,email:i.email??null,error:null}):{success:!1,tier:null,email:null,error:i.error??"Activation failed"}}catch{return{success:!1,tier:null,email:null,error:"Activation request failed"}}}fetchLicenseFromCLI(){let e=`${(0,A1.homedir)()}/.pilot/bin/pilot`;if(!(0,j1.existsSync)(e))return{...xb};try{let n=(0,O1.spawnSync)(e,["status","--json"],{stdio:"pipe",timeout:5e3,env:$u()}).stdout?.toString().trim();if(!n)return{...xb};let s=JSON.parse(n);return s.success?{valid:!0,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!1}:s.error==="No license found"?{...xb}:{valid:!1,tier:s.tier??null,email:s.email??null,daysRemaining:s.days_remaining??null,isExpired:!0}}catch{return{...xb}}}};var be=Y(require("path"),1),le=require("node:fs");se();var wb=class extends Se{dbManager;constructor(e){super(),this.dbManager=e??null}setupRoutes(e){e.get("/api/extensions",this.handleList.bind(this)),e.get("/api/extensions/:category/:name",this.handleContent.bind(this)),e.put("/api/extensions/:category/:name",this.handleSave.bind(this)),e.post("/api/extensions/:category/:name/rename",this.handleRename.bind(this)),e.delete("/api/extensions/:category/:name",this.handleDelete.bind(this)),e.post("/api/extensions/:category/:name/move",this.handleMove.bind(this))}handleList=this.wrapHandler(async(e,r)=>{let n=e.query.project,s=process.env.HOME||"",i=be.default.join(s,".claude"),a=this.loadPilotManifest(s),o=[];if(o.push(...this.scanMarkdownExtensions(i,"global",a)),o.push(...this.scanSkillExtensions(i,"global",a)),o.push(...this.scanPluginExtensions(s)),n){let c=cr(this.dbManager,n),l=be.default.join(c,".claude");o.push(...this.scanMarkdownExtensions(l,"project",new Set)),o.push(...this.scanSkillExtensions(l,"project"))}else if(e.query.all==="true"&&this.dbManager){let c=this.dbManager.getSessionStore().getAllProjectRoots(),l=new Set;for(let{rootPath:u}of c){if(l.has(u))continue;l.add(u);let p=be.default.join(u,".claude");(0,le.existsSync)(p)&&(o.push(...this.scanMarkdownExtensions(p,"project",new Set)),o.push(...this.scanSkillExtensions(p,"project")))}}r.json({extensions:o})});handleContent=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project,o=e.query.pluginName;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=null;if(o?l=this.resolvePluginExtensionPath(c,o,n,s):l=this.resolveExtensionPath(n,s,i,a,c),!l||!(0,le.existsSync)(l)){r.status(404).json({error:"Extension not found"});return}try{let u=(0,le.readFileSync)(l,"utf-8");r.json({name:s,content:u,format:"markdown"})}catch{r.status(404).json({error:"Extension not found"})}});handleSave=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{content:i,scope:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(!i||typeof i!="string"){r.status(400).json({error:"Missing content"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{(0,le.writeFileSync)(l,i,"utf-8"),r.json({ok:!0})}catch(u){_.error("HTTP",`Failed to save ${l}`,{},u),r.status(500).json({error:"Failed to save extension"})}});handleRename=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{newName:i,scope:a,project:o}=e.body;if(!this.isValidName(s)||!this.isValidName(i)){r.status(400).json({error:"Invalid name"});return}let c=process.env.HOME||"",l=this.resolveExtensionPath(n,s,a,o,c);if(!l){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let u=be.default.dirname(l),p=be.default.join(be.default.dirname(u),i);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(u,p)}else{let u=be.default.extname(l),p=be.default.join(be.default.dirname(l),`${i}${u}`);if((0,le.existsSync)(p)){r.status(409).json({error:"An extension with that name already exists"});return}(0,le.renameSync)(l,p)}r.json({ok:!0,newName:i})}catch{r.status(500).json({error:"Failed to rename extension"})}});handleDelete=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),i=e.query.scope||"global",a=e.query.project;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}let o=process.env.HOME||"",c=this.resolveExtensionPath(n,s,i,a,o);if(!c){r.status(404).json({error:`Extension not found: ${n}/${s}`});return}try{if(n==="skill"){let l=be.default.dirname(c);(0,le.rmSync)(l,{recursive:!0})}else(0,le.unlinkSync)(c);r.json({ok:!0})}catch{r.status(500).json({error:"Failed to delete extension"})}});handleMove=this.wrapHandler(async(e,r)=>{let n=e.params.category,s=decodeURIComponent(e.params.name),{from:i,to:a,project:o}=e.body;if(!this.isValidName(s)){r.status(400).json({error:"Invalid name"});return}if(i!=="project"&&i!=="global"||a!=="project"&&a!=="global"){r.status(400).json({error:"from/to must be 'project' or 'global'"});return}let c=process.env.HOME||"",l=this.performScopeMove(n,s,i,a,o,c);if(!l.ok){r.status(400).json({error:l.error});return}r.json({ok:!0})});scanPluginExtensions(e){let r=be.default.join(e,".claude"),n=this.readEnabledPlugins(r);if(n.size===0)return[];let s=be.default.join(r,"plugins","cache");if(!(0,le.existsSync)(s))return[];let i;try{i=(0,le.readdirSync)(s).filter(c=>{try{return(0,le.statSync)(be.default.join(s,c)).isDirectory()}catch{return!1}})}catch{return[]}let a=new Map;for(let c of i){let l=be.default.join(s,c),u;try{u=(0,le.readdirSync)(l).filter(p=>{try{return(0,le.statSync)(be.default.join(l,p)).isDirectory()}catch{return!1}})}catch{continue}for(let p of u){let d=`${p}@${c}`;if(!n.has(d))continue;let m=be.default.join(l,p),f=null;try{let x=(0,le.readdirSync)(m).filter(S=>{try{return(0,le.statSync)(be.default.join(m,S)).isDirectory()}catch{return!1}}),w=this.pickLatestVersion(x);w&&(f=be.default.join(m,w))}catch{continue}if(!f)continue;let v=this.readPluginDisplayName(f)??p,g=[];for(let[x,w]of Object.entries({commands:"command",rules:"rule",agents:"agent"})){let S=be.default.join(f,x),k=this.scanMarkdownDir(S);for(let E of k)this.fileExists(be.default.join(S,`${E}.md.tmpl`))||g.push({name:E,category:w,scope:"global",filePath:`${x}/${E}.md`,editable:!1,format:"markdown",pluginName:v})}let h=be.default.join(f,"skills"),y=this.scanSkillsDir(h);for(let x of y)g.push({name:x,category:"skill",scope:"global",filePath:`skills/${x}/SKILL.md`,editable:!1,format:"markdown",pluginName:v});let b=a.get(p);(!b||g.length>b.length)&&a.set(p,g)}}let o=[];for(let c of a.values())o.push(...c);return o}pickLatestVersion(e){if(e.length===0)return;if(e.length===1)return e[0];if(e.includes("latest"))return"latest";let r=e.map(n=>{let s=n.match(/^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$/);return{raw:n,major:s?parseInt(s[1],10):-1,minor:s?parseInt(s[2],10):-1,patch:s?parseInt(s[3],10):-1,prerelease:s?.[4]??null,isSemver:s!==null}});return r.sort((n,s)=>n.isSemver&&!s.isSemver?-1:!n.isSemver&&s.isSemver?1:n.isSemver&&s.isSemver?n.major!==s.major?s.major-n.major:n.minor!==s.minor?s.minor-n.minor:n.patch!==s.patch?s.patch-n.patch:!n.prerelease&&s.prerelease?-1:n.prerelease&&!s.prerelease?1:n.prerelease&&s.prerelease?s.prerelease.localeCompare(n.prerelease):0:s.raw.localeCompare(n.raw)),r[0].raw}scanMarkdownDir(e,r,n){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(s=>{try{return!s.endsWith(".md")||!(0,le.statSync)(be.default.join(e,s)).isFile()?!1:r&&n?!r.has(`${n}/${s}`):!0}catch{return!1}}).map(s=>s.replace(/\.md$/,"")).sort():[]}catch{return[]}}scanSkillsDir(e,r){try{return(0,le.existsSync)(e)?(0,le.readdirSync)(e).filter(n=>{try{let s=be.default.join(e,n);return!(!(0,le.statSync)(s).isDirectory()||!(0,le.readdirSync)(s).includes("SKILL.md")||r&&r.has(`skills/${n}/SKILL.md`))}catch{return!1}}).sort():[]}catch{return[]}}loadPilotManifest(e){try{let r=be.default.join(e,".claude",".pilot-manifest.json");if(!(0,le.existsSync)(r))return new Set;let n=JSON.parse((0,le.readFileSync)(r,"utf-8"));return new Set(Array.isArray(n.files)?n.files:[])}catch{return new Set}}performScopeMove(e,r,n,s,i,a){let o=this.resolveExtensionPath(e,r,n,i,a);if(!o)return{ok:!1,error:`Extension not found: ${e}/${r} (scope: ${n})`};let c=s==="global"?be.default.join(a,".claude"):i?be.default.join(cr(this.dbManager,i),".claude"):null;if(!c)return{ok:!1,error:"Cannot determine destination for scope move"};try{if(e==="skill"){let l=be.default.dirname(o),u=be.default.join(c,"skills",r);if(this.dirExists(u))return{ok:!1,error:`Extension '${r}' already exists at destination`};this.copyRecursive(l,u),(0,le.rmSync)(l,{recursive:!0})}else{let l=r.endsWith(".md")?r:`${r}.md`,u=this.categoryToDir(e),p=be.default.join(c,u,l),d=be.default.dirname(p);if(this.dirExists(d)||(0,le.mkdirSync)(d,{recursive:!0}),this.fileExists(p))return{ok:!1,error:`Extension '${r}' already exists at destination`};(0,le.copyFileSync)(o,p),(0,le.unlinkSync)(o)}return{ok:!0}}catch(l){return _.error("HTTP","Extension move failed",{},l),{ok:!1,error:"Failed to move extension"}}}scanMarkdownExtensions(e,r,n){let s=[];for(let i of["rule","command","agent"]){let a=this.categoryToDir(i),o=be.default.join(e,a),c=this.scanMarkdownDir(o,n,a);for(let l of c)s.push({name:l,category:i,scope:r,filePath:`${a}/${l}.md`,editable:!0,format:"markdown"})}return s}scanSkillExtensions(e,r,n){let s=be.default.join(e,"skills");return this.scanSkillsDir(s,n).map(a=>({name:a,category:"skill",scope:r,filePath:`skills/${a}/SKILL.md`,editable:!0,format:"markdown"}))}resolveExtensionPath(e,r,n,s,i){let a=n==="project"?be.default.join(cr(this.dbManager,s),".claude"):be.default.join(i,".claude"),o=null;if(e==="skill"){let c=be.default.join(a,"skills",r,"SKILL.md");o=this.fileExists(c)?c:null}else if(e==="rule"||e==="command"||e==="agent"){let c=this.categoryToDir(e),l=be.default.join(a,c,r.endsWith(".md")?r:`${r}.md`);o=this.fileExists(l)?l:null}return o&&!this.isContainedPath(o,a)?null:o}isContainedPath(e,r){try{if((0,le.lstatSync)(e).isSymbolicLink()){let i=(0,le.realpathSync)(e),a=(0,le.realpathSync)(r);return i.startsWith(a+"/")||i===a}let n=be.default.resolve(e),s=be.default.resolve(r);return n.startsWith(s+"/")||n===s}catch{return!1}}fileExists(e){try{return(0,le.statSync)(e).isFile()}catch{return!1}}dirExists(e){try{return(0,le.statSync)(e).isDirectory()}catch{return!1}}categoryToDir(e){switch(e){case"rule":return"rules";case"command":return"commands";case"agent":return"agents";case"skill":return"skills";default:return e}}isValidName(e){return/^[a-zA-Z0-9_\-\.]+$/.test(e)&&!e.includes("..")}resolvePluginExtensionPath(e,r,n,s){let i=be.default.join(e,".claude","plugins","cache");if(!(0,le.existsSync)(i))return null;try{for(let a of(0,le.readdirSync)(i)){let o=be.default.join(i,a);if((0,le.statSync)(o).isDirectory())for(let c of(0,le.readdirSync)(o)){let l=be.default.join(o,c);if(!(0,le.statSync)(l).isDirectory())continue;let u=(0,le.readdirSync)(l).filter(v=>{try{return(0,le.statSync)(be.default.join(l,v)).isDirectory()}catch{return!1}}),p=this.pickLatestVersion(u);if(!p)continue;let d=be.default.join(l,p);if((this.readPluginDisplayName(d)??c)!==r)continue;let f=this.categoryToDir(n);if(n==="skill"){let v=be.default.join(d,"skills",s,"SKILL.md");if((0,le.existsSync)(v))return v}else{let v=be.default.join(d,f,`${s}.md`);if((0,le.existsSync)(v))return v}}}}catch{}return null}readEnabledPlugins(e){try{let r=be.default.join(e,"settings.json");if(!(0,le.existsSync)(r))return new Set;let s=JSON.parse((0,le.readFileSync)(r,"utf-8"))?.enabledPlugins;return!s||typeof s!="object"||Array.isArray(s)?new Set:new Set(Object.keys(s).filter(i=>s[i]===!0))}catch{return new Set}}readPluginDisplayName(e){for(let r of[".plugin",".claude-plugin"])try{let n=be.default.join(e,r,"plugin.json");if(!(0,le.existsSync)(n))continue;let s=JSON.parse((0,le.readFileSync)(n,"utf-8"));return typeof s?.name=="string"?s.name:null}catch{continue}return null}copyRecursive(e,r){(0,le.mkdirSync)(r,{recursive:!0});for(let n of(0,le.readdirSync)(e)){let s=be.default.join(e,n),i=be.default.join(r,n);(0,le.statSync)(s).isDirectory()?this.copyRecursive(s,i):(0,le.copyFileSync)(s,i)}}};var vr=Y(require("path"),1),ft=Y(require("node:fs"),1);se();var Sb=vr.default.join(process.env.HOME||"",".pilot","config.json"),oEe={rules:"rule",commands:"command",agents:"agent",skills:"skill"},cEe={instructions:"rule",prompts:"command",agents:"agent",skills:"skill"},N1=`# Track only extension directories \u2014 managed by Pilot Shell * !.gitignore @@ -1925,7 +1925,7 @@ ${i} --- ${e}`}async stageApmManifest(e,r){let n=r?`${r}/`:"",s=this.readPilotConfig(),o=[`name: ${(typeof s.teamRemote=="string"?s.teamRemote:"").replace(/\.git$/,"").split("/").pop()||"team-extensions"}`,'version: "1.0.0"','description: "Shared team extensions \u2014 managed by Pilot Shell"',""].join(` -`),c=vr.default.join(e,`.pilot-apm-yml-tmp-${Date.now()}`);ft.writeFileSync(c,o,"utf-8");try{let l=await this.git("hash-object","-w",c);if(l.code!==0)return;let u=l.stdout.trim(),p=n?`${n}apm.yml`:"apm.yml";await this.git("update-index","--add","--cacheinfo",`100644,${u},${p}`)}finally{try{ft.unlinkSync(c)}catch{}}}async isEmptyRepo(){return(await this.git("rev-parse","--verify","origin/HEAD")).code!==0}async getDefaultBranch(){let e=await this.git("symbolic-ref","refs/remotes/origin/HEAD");if(e.code===0){let n=e.stdout.trim().replace("refs/remotes/origin/","");if(n)return n}return"main"}async git(...e){let r=this.claudeDir();try{let n=Bun.spawn(["git",...e],{cwd:r,stdout:"pipe",stderr:"pipe"}),[s,i,a]=await Promise.all([n.exited,new Response(n.stdout).text(),new Response(n.stderr).text()]);return{code:s,stdout:i,stderr:a}}catch(n){return _.error("HTTP",`git ${e[0]} failed`,{},n),{code:1,stdout:"",stderr:n.message}}}};var Ws=Y(require("fs"),1),z1=Y(require("os"),1),Sm=Y(require("path"),1);se();var M1=["sonnet","opus"],dEe=/^claude-[a-z0-9][a-z0-9.\-]*$/;function wm(t,e=!0){if(typeof t!="string"||t.length===0)return!1;let r=t.endsWith("[1m]");if(r&&!e)return!1;let n=r?t.slice(0,-4):t;return n?M1.includes(n)?!0:dEe.test(n):!1}var vo={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet","setup-rules":"opus","create-skill":"opus",prd:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0}},Eb=class t extends Se{configPath;constructor(e){super(),this.configPath=e??Sm.join(z1.homedir(),".pilot","config.json")}setupRoutes(e){e.get("/api/settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/settings",this.wrapHandler(this.handlePut.bind(this)))}readConfig(){try{let e=Ws.readFileSync(this.configPath,"utf-8");return JSON.parse(e)}catch{return{}}}static stripLegacy1m(e){return e.replace("[1m]","")}static stripAliasSuffix(e){if(typeof e!="string"||!e.endsWith("[1m]"))return e;let r=e.slice(0,-4);return M1.includes(r)?r:e}static normalizeModel(e,r=!0){if(typeof e!="string")return null;if(wm(e,r))return e.startsWith("claude-")?e:e.endsWith("[1m]")?e.slice(0,-4):e;let n=e;if(!r&&n.endsWith("[1m]"))return null;let s=n.includes("[1m]")?t.stripLegacy1m(n):n;return wm(s,r)?s:null}mergeWithDefaults(e){let r=t.normalizeModel(e.model)??vo.model,n=typeof e.extendedContext=="boolean"?e.extendedContext:vo.extendedContext,s=e.skills??e.commands,i={...vo.skills};if(s&&typeof s=="object"&&!Array.isArray(s))for(let[w,S]of Object.entries(s)){let k=t.normalizeModel(S);k!==null&&(i[w]=k)}let a=e.agents,o={...vo.agents};if(a&&typeof a=="object"&&!Array.isArray(a))for(let[w,S]of Object.entries(a)){let k=t.normalizeModel(S,!1);k!==null&&(o[w]=k)}let c=e.extendedContextOverrides,l={};if(c&&typeof c=="object"&&!Array.isArray(c))for(let[w,S]of Object.entries(c))typeof S=="boolean"&&(l[w]=S);let u=e.reviewerAgents,p={...vo.reviewerAgents};if(u&&typeof u=="object"&&!Array.isArray(u)){let w=u;typeof w.specReview=="boolean"&&(p.specReview=w.specReview),typeof w.changesReview=="boolean"&&(p.changesReview=w.changesReview)}let d=e.codexReviewers,m={...vo.codexReviewers};if(d&&typeof d=="object"&&!Array.isArray(d)){let w=d;typeof w.specReview=="boolean"&&(m.specReview=w.specReview),typeof w.changesReview=="boolean"&&(m.changesReview=w.changesReview)}let f=Sm.join(z1.homedir(),".claude","plugins","cache","openai-codex"),v=!1;try{v=Ws.existsSync(f)}catch{}let g=e.specWorkflow,h={...vo.specWorkflow};if(g&&typeof g=="object"&&!Array.isArray(g)){let w=g;typeof w.worktreeSupport=="boolean"&&(h.worktreeSupport=w.worktreeSupport),typeof w.askQuestionsDuringPlanning=="boolean"&&(h.askQuestionsDuringPlanning=w.askQuestionsDuringPlanning),typeof w.planApproval=="boolean"&&(h.planApproval=w.planApproval)}let y={model:r,extendedContext:n,extendedContextOverrides:l,skills:i,agents:o,reviewerAgents:p,codexReviewers:m,codexAvailable:v,specWorkflow:h};typeof e.teamRemote=="string"&&(y.teamRemote=e.teamRemote),typeof e.teamRemoteSubfolder=="string"&&(y.teamRemoteSubfolder=e.teamRemoteSubfolder);let x=e.usage?.plan;if(x&&typeof x.kind=="string"&&["none","pro","max","custom"].includes(x.kind)){let w={kind:x.kind};typeof x.monthlyUsd=="number"&&(w.monthlyUsd=x.monthlyUsd),typeof x.resetDay=="number"&&(w.resetDay=x.resetDay),y.usage={plan:w}}return y}validateSettings(e){let r=(n,s)=>`Invalid model '${String(s)}' for ${n}; must be an alias (${M1.join(", ")}) or an explicit 'claude-\u2026' model ID`;if(e.model!==void 0&&!wm(e.model))return r("main session",e.model);if(e.extendedContext!==void 0&&typeof e.extendedContext!="boolean")return"extendedContext must be a boolean";if(e.skills!==void 0){if(typeof e.skills!="object"||Array.isArray(e.skills))return"skills must be an object";for(let[n,s]of Object.entries(e.skills))if(!wm(s))return r(`skill '${n}'`,s)}if(e.agents!==void 0){if(typeof e.agents!="object"||Array.isArray(e.agents))return"agents must be an object";for(let[n,s]of Object.entries(e.agents))if(!wm(s,!1))return r(`agent '${n}'`,s)}if(e.extendedContextOverrides!==void 0){if(typeof e.extendedContextOverrides!="object"||e.extendedContextOverrides===null||Array.isArray(e.extendedContextOverrides))return"extendedContextOverrides must be an object";for(let[n,s]of Object.entries(e.extendedContextOverrides))if(typeof s!="boolean")return`extendedContextOverrides.${n} must be a boolean`}if(e.reviewerAgents!==void 0){if(typeof e.reviewerAgents!="object"||Array.isArray(e.reviewerAgents))return"reviewerAgents must be an object";for(let[n,s]of Object.entries(e.reviewerAgents))if(typeof s!="boolean")return`reviewerAgents.${n} must be a boolean`}if(e.codexReviewers!==void 0){if(typeof e.codexReviewers!="object"||Array.isArray(e.codexReviewers))return"codexReviewers must be an object";for(let[n,s]of Object.entries(e.codexReviewers))if(typeof s!="boolean")return`codexReviewers.${n} must be a boolean`}if(e.specWorkflow!==void 0){if(typeof e.specWorkflow!="object"||Array.isArray(e.specWorkflow))return"specWorkflow must be an object";for(let[n,s]of Object.entries(e.specWorkflow))if(typeof s!="boolean")return`specWorkflow.${n} must be a boolean`}if(e.usage!==void 0){if(typeof e.usage!="object"||Array.isArray(e.usage)||e.usage===null)return"usage must be an object";let n=e.usage;if(n.plan!==void 0){if(typeof n.plan!="object"||Array.isArray(n.plan)||n.plan===null)return"usage.plan must be an object";let s=n.plan;if(s.kind!==void 0&&(typeof s.kind!="string"||!["none","pro","max","custom"].includes(s.kind)))return"usage.plan.kind must be one of: none, pro, max, custom";if(s.monthlyUsd!==void 0&&(typeof s.monthlyUsd!="number"||s.monthlyUsd<0||s.monthlyUsd>1e4))return"usage.plan.monthlyUsd must be a number between 0 and 10000";if(s.resetDay!==void 0&&(typeof s.resetDay!="number"||s.resetDay<1||s.resetDay>28))return"usage.plan.resetDay must be an integer between 1 and 28"}}return null}writeConfigAtomic(e){let r=Sm.dirname(this.configPath);Ws.mkdirSync(r,{recursive:!0});let n=this.configPath+".tmp";Ws.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),Ws.renameSync(n,this.configPath)}async handleGet(e,r){let n=this.readConfig(),s=this.mergeWithDefaults(n);r.json(s)}async handlePut(e,r){let n=e.body,s=this.validateSettings(n);if(s){this.badRequest(r,s);return}let i=this.readConfig();if(n.model!==void 0&&(i.model=t.stripAliasSuffix(n.model)),n.extendedContext!==void 0&&(i.extendedContext=n.extendedContext),n.skills!==void 0){let o=i.skills??{},c={};for(let[l,u]of Object.entries(n.skills))c[l]=t.stripAliasSuffix(u);i.skills={...o,...c},delete i.commands}if(n.extendedContextOverrides!==void 0){let o=i.extendedContextOverrides??{};i.extendedContextOverrides={...o,...n.extendedContextOverrides}}if(n.agents!==void 0){let o=i.agents??{};i.agents={...o,...n.agents}}if(n.reviewerAgents!==void 0){let o=i.reviewerAgents??{};i.reviewerAgents={...o,...n.reviewerAgents}}if(n.codexReviewers!==void 0){let o=i.codexReviewers??{};i.codexReviewers={...o,...n.codexReviewers}}if(n.specWorkflow!==void 0){let o=i.specWorkflow??{};i.specWorkflow={...o,...n.specWorkflow}}if(n.teamRemote!==void 0&&(n.teamRemote===null?delete i.teamRemote:i.teamRemote=n.teamRemote),n.teamRemoteSubfolder!==void 0&&(n.teamRemoteSubfolder===null?delete i.teamRemoteSubfolder:i.teamRemoteSubfolder=n.teamRemoteSubfolder),n.usage!==void 0){let o=i.usage??{},c=n.usage,l={...o};if(c.plan!==void 0){let u=l.plan??{};l.plan={...u,...c.plan}}i.usage=l}try{this.writeConfigAtomic(i)}catch(o){_.error("HTTP","Failed to write settings config",{},o),r.status(500).json({error:"Failed to save settings"});return}let a=this.mergeWithDefaults(i);r.json(a)}};var na=Y(require("fs"),1),Rb=Y(require("path"),1);se();Or();var $1=41777,L1=1024,U1=65535,Tb=class extends Se{settingsPath;constructor(e){super(),this.settingsPath=e??Rb.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json")}setupRoutes(e){e.get("/api/console-settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/console-settings",this.wrapHandler(this.handlePut.bind(this)))}readSettings(){try{let e=na.readFileSync(this.settingsPath,"utf-8"),r=JSON.parse(e);if(r&&typeof r=="object"&&!Array.isArray(r))return r}catch{}return{}}writeSettingsAtomic(e){let r=Rb.dirname(this.settingsPath);na.mkdirSync(r,{recursive:!0});let n=this.settingsPath+".tmp";na.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),na.renameSync(n,this.settingsPath)}resolveWorkerPort(e){let r=e.CLAUDE_PILOT_WORKER_PORT;if(typeof r=="string"&&r.trim()){let n=parseInt(r,10);if(Number.isInteger(n)&&n>=L1&&n<=U1)return n}return $1}async handleGet(e,r){let n=this.readSettings(),s={workerPort:this.resolveWorkerPort(n),defaultPort:$1};r.json(s)}async handlePut(e,r){let s=(e.body??{}).workerPort;if(typeof s!="number"||!Number.isInteger(s)){this.badRequest(r,"workerPort must be an integer");return}if(sU1){this.badRequest(r,`workerPort must be between ${L1} and ${U1}`);return}let i=this.readSettings();i.CLAUDE_PILOT_WORKER_PORT=String(s);try{this.writeSettingsAtomic(i)}catch(o){_.error("HTTP","Failed to write console settings",{},o),r.status(500).json({error:"Failed to save console settings"});return}let a={workerPort:this.resolveWorkerPort(i),defaultPort:$1};r.json(a)}};var qe=require("child_process"),ia=require("fs"),sa=Y(require("path"),1);var Qe={...process.env,GIT_OPTIONAL_LOCKS:"0"},Pb=class extends Se{dbManager;constructor(e){super(),this.dbManager=e??null}getProjectRoot(e){let r=e.query.project;return cr(this.dbManager,r)}setupRoutes(e){e.get("/api/changes/files",this.handleGetFiles.bind(this)),e.get("/api/changes/diff/:file(*)",this.handleGetDiff.bind(this)),e.post("/api/changes/stage",this.handleStage.bind(this)),e.post("/api/changes/unstage",this.handleUnstage.bind(this)),e.get("/api/changes/branches",this.handleGetBranches.bind(this)),e.post("/api/changes/checkout",this.handleCheckout.bind(this)),e.post("/api/changes/branch/create",this.handleCreateBranch.bind(this)),e.delete("/api/changes/branch/:name(*)",this.handleDeleteBranch.bind(this)),e.post("/api/changes/commit",this.handleCommit.bind(this)),e.post("/api/changes/push",this.handlePush.bind(this)),e.post("/api/changes/pull",this.handlePull.bind(this)),e.post("/api/changes/fetch",this.handleFetch.bind(this)),e.get("/api/changes/stash",this.handleListStash.bind(this)),e.post("/api/changes/stash/save",this.handleStashSave.bind(this)),e.post("/api/changes/stash/pop",this.handleStashPop.bind(this)),e.post("/api/changes/stash/apply",this.handleStashApply.bind(this)),e.delete("/api/changes/stash/:index",this.handleStashDrop.bind(this)),e.get("/api/changes/ai-available",this.handleAiAvailable.bind(this)),e.post("/api/changes/generate-message",this.handleGenerateMessage.bind(this))}handleGetFiles=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=this.detectWorktreeContext(n),i=[];if(s.active&&s.branch&&s.baseBranch){let l=this.getChangedFilesInRange(n,`${s.baseBranch}...${s.branch}`);i.push(...l)}let a=this.getChangedFilesFromGit(n,["--cached"]);i.push(...a);let o=this.getChangedFilesFromGit(n,[]);i.push(...o);let c=this.getUntrackedFiles(n);i.push(...c),r.json({files:i,worktree:s})});handleGetDiff=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=e.params.file,i=e.query.staged==="true";if(!s||!this.isValidFilePath(s)){this.badRequest(r,"Invalid or missing file path");return}let a=this.detectWorktreeContext(n);try{let o="",c="";if(a.active&&a.branch&&a.baseBranch)o=this.getDecryptedContent(n,a.baseBranch,s,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]),c=this.gitShowFile(n,a.branch,s),this.hasBinaryContent(c)&&(c=this.reconstructNewFromDiff(n,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]));else if(i){let u=this.runGitDiff(n,["diff","--cached","-U99999","--",s]);if(o=this.reconstructOldFromDiff(u),c=this.reconstructNewFromDiff(n,["diff","--cached","-U99999","--",s]),!u.trim()){o="";let p=sa.default.join(n,s);c=(0,ia.existsSync)(p)?(0,ia.readFileSync)(p,"utf-8"):""}}else{let u=this.runGitDiff(n,["diff","-U99999","HEAD","--",s]);u.trim()?o=this.reconstructOldFromDiff(u):o="";let p=sa.default.join(n,s);c=(0,ia.existsSync)(p)?(0,ia.readFileSync)(p,"utf-8"):""}if(this.hasBinaryContent(c)||this.hasBinaryContent(o)){r.json({binary:!0,path:s});return}o=this.normalizeLineEndings(o),c=this.normalizeLineEndings(c),r.json({path:s,oldContent:o,newContent:c,staged:i})}catch(o){r.status(500).json({error:o.message})}});handleStage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["add","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,staged:s})}catch(a){r.status(500).json({error:a.message})}});handleUnstage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["restore","--staged","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,unstaged:s})}catch(a){r.status(500).json({error:a.message})}});handleGetBranches=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e);try{let s=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim(),a=(0,qe.execFileSync)("git",["branch","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` +`),c=vr.default.join(e,`.pilot-apm-yml-tmp-${Date.now()}`);ft.writeFileSync(c,o,"utf-8");try{let l=await this.git("hash-object","-w",c);if(l.code!==0)return;let u=l.stdout.trim(),p=n?`${n}apm.yml`:"apm.yml";await this.git("update-index","--add","--cacheinfo",`100644,${u},${p}`)}finally{try{ft.unlinkSync(c)}catch{}}}async isEmptyRepo(){return(await this.git("rev-parse","--verify","origin/HEAD")).code!==0}async getDefaultBranch(){let e=await this.git("symbolic-ref","refs/remotes/origin/HEAD");if(e.code===0){let n=e.stdout.trim().replace("refs/remotes/origin/","");if(n)return n}return"main"}async git(...e){let r=this.claudeDir();try{let n=Bun.spawn(["git",...e],{cwd:r,stdout:"pipe",stderr:"pipe"}),[s,i,a]=await Promise.all([n.exited,new Response(n.stdout).text(),new Response(n.stderr).text()]);return{code:s,stdout:i,stderr:a}}catch(n){return _.error("HTTP",`git ${e[0]} failed`,{},n),{code:1,stdout:"",stderr:n.message}}}};var Ws=Y(require("fs"),1),z1=Y(require("os"),1),Sm=Y(require("path"),1);se();var M1=["sonnet","opus"],dEe=/^claude-[a-z0-9][a-z0-9.\-]*$/;function wm(t,e=!0){if(typeof t!="string"||t.length===0)return!1;let r=t.endsWith("[1m]");if(r&&!e)return!1;let n=r?t.slice(0,-4):t;return n?M1.includes(n)?!0:dEe.test(n):!1}var na={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet","setup-rules":"opus","create-skill":"opus",prd:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}},Eb=class t extends Se{configPath;constructor(e){super(),this.configPath=e??Sm.join(z1.homedir(),".pilot","config.json")}setupRoutes(e){e.get("/api/settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/settings",this.wrapHandler(this.handlePut.bind(this)))}readConfig(){try{let e=Ws.readFileSync(this.configPath,"utf-8");return JSON.parse(e)}catch{return{}}}static stripLegacy1m(e){return e.replace("[1m]","")}static stripAliasSuffix(e){if(typeof e!="string"||!e.endsWith("[1m]"))return e;let r=e.slice(0,-4);return M1.includes(r)?r:e}static normalizeModel(e,r=!0){if(typeof e!="string")return null;if(wm(e,r))return e.startsWith("claude-")?e:e.endsWith("[1m]")?e.slice(0,-4):e;let n=e;if(!r&&n.endsWith("[1m]"))return null;let s=n.includes("[1m]")?t.stripLegacy1m(n):n;return wm(s,r)?s:null}mergeWithDefaults(e){let r=t.normalizeModel(e.model)??na.model,n=typeof e.extendedContext=="boolean"?e.extendedContext:na.extendedContext,s=e.skills??e.commands,i={...na.skills};if(s&&typeof s=="object"&&!Array.isArray(s))for(let[k,E]of Object.entries(s)){let R=t.normalizeModel(E);R!==null&&(i[k]=R)}let a=e.agents,o={...na.agents};if(a&&typeof a=="object"&&!Array.isArray(a))for(let[k,E]of Object.entries(a)){let R=t.normalizeModel(E,!1);R!==null&&(o[k]=R)}let c=e.extendedContextOverrides,l={};if(c&&typeof c=="object"&&!Array.isArray(c))for(let[k,E]of Object.entries(c))typeof E=="boolean"&&(l[k]=E);let u=e.reviewerAgents,p={...na.reviewerAgents};if(u&&typeof u=="object"&&!Array.isArray(u)){let k=u;typeof k.specReview=="boolean"&&(p.specReview=k.specReview),typeof k.changesReview=="boolean"&&(p.changesReview=k.changesReview)}let d=e.codexReviewers,m={...na.codexReviewers};if(d&&typeof d=="object"&&!Array.isArray(d)){let k=d;typeof k.specReview=="boolean"&&(m.specReview=k.specReview),typeof k.changesReview=="boolean"&&(m.changesReview=k.changesReview)}let f=Sm.join(z1.homedir(),".claude","plugins","cache","openai-codex"),v=!1;try{v=Ws.existsSync(f)}catch{}let g=e.specWorkflow,h={...na.specWorkflow};if(g&&typeof g=="object"&&!Array.isArray(g)){let k=g;typeof k.worktreeSupport=="boolean"&&(h.worktreeSupport=k.worktreeSupport),typeof k.askQuestionsDuringPlanning=="boolean"&&(h.askQuestionsDuringPlanning=k.askQuestionsDuringPlanning),typeof k.planApproval=="boolean"&&(h.planApproval=k.planApproval)}let y=e.securityScanner,b={...na.securityScanner};if(y&&typeof y=="object"&&!Array.isArray(y)){let k=y;typeof k.credentialScanner=="boolean"&&(b.credentialScanner=k.credentialScanner)}let x={model:r,extendedContext:n,extendedContextOverrides:l,skills:i,agents:o,reviewerAgents:p,codexReviewers:m,codexAvailable:v,specWorkflow:h,securityScanner:b};typeof e.teamRemote=="string"&&(x.teamRemote=e.teamRemote),typeof e.teamRemoteSubfolder=="string"&&(x.teamRemoteSubfolder=e.teamRemoteSubfolder);let S=e.usage?.plan;if(S&&typeof S.kind=="string"&&["none","pro","max","custom"].includes(S.kind)){let k={kind:S.kind};typeof S.monthlyUsd=="number"&&(k.monthlyUsd=S.monthlyUsd),typeof S.resetDay=="number"&&(k.resetDay=S.resetDay),x.usage={plan:k}}return x}validateSettings(e){let r=(n,s)=>`Invalid model '${String(s)}' for ${n}; must be an alias (${M1.join(", ")}) or an explicit 'claude-\u2026' model ID`;if(e.model!==void 0&&!wm(e.model))return r("main session",e.model);if(e.extendedContext!==void 0&&typeof e.extendedContext!="boolean")return"extendedContext must be a boolean";if(e.skills!==void 0){if(typeof e.skills!="object"||Array.isArray(e.skills))return"skills must be an object";for(let[n,s]of Object.entries(e.skills))if(!wm(s))return r(`skill '${n}'`,s)}if(e.agents!==void 0){if(typeof e.agents!="object"||Array.isArray(e.agents))return"agents must be an object";for(let[n,s]of Object.entries(e.agents))if(!wm(s,!1))return r(`agent '${n}'`,s)}if(e.extendedContextOverrides!==void 0){if(typeof e.extendedContextOverrides!="object"||e.extendedContextOverrides===null||Array.isArray(e.extendedContextOverrides))return"extendedContextOverrides must be an object";for(let[n,s]of Object.entries(e.extendedContextOverrides))if(typeof s!="boolean")return`extendedContextOverrides.${n} must be a boolean`}if(e.reviewerAgents!==void 0){if(typeof e.reviewerAgents!="object"||Array.isArray(e.reviewerAgents))return"reviewerAgents must be an object";for(let[n,s]of Object.entries(e.reviewerAgents))if(typeof s!="boolean")return`reviewerAgents.${n} must be a boolean`}if(e.codexReviewers!==void 0){if(typeof e.codexReviewers!="object"||Array.isArray(e.codexReviewers))return"codexReviewers must be an object";for(let[n,s]of Object.entries(e.codexReviewers))if(typeof s!="boolean")return`codexReviewers.${n} must be a boolean`}if(e.specWorkflow!==void 0){if(typeof e.specWorkflow!="object"||Array.isArray(e.specWorkflow))return"specWorkflow must be an object";for(let[n,s]of Object.entries(e.specWorkflow))if(typeof s!="boolean")return`specWorkflow.${n} must be a boolean`}if(e.securityScanner!==void 0){if(typeof e.securityScanner!="object"||Array.isArray(e.securityScanner))return"securityScanner must be an object";for(let[n,s]of Object.entries(e.securityScanner))if(typeof s!="boolean")return`securityScanner.${n} must be a boolean`}if(e.usage!==void 0){if(typeof e.usage!="object"||Array.isArray(e.usage)||e.usage===null)return"usage must be an object";let n=e.usage;if(n.plan!==void 0){if(typeof n.plan!="object"||Array.isArray(n.plan)||n.plan===null)return"usage.plan must be an object";let s=n.plan;if(s.kind!==void 0&&(typeof s.kind!="string"||!["none","pro","max","custom"].includes(s.kind)))return"usage.plan.kind must be one of: none, pro, max, custom";if(s.monthlyUsd!==void 0&&(typeof s.monthlyUsd!="number"||s.monthlyUsd<0||s.monthlyUsd>1e4))return"usage.plan.monthlyUsd must be a number between 0 and 10000";if(s.resetDay!==void 0&&(typeof s.resetDay!="number"||s.resetDay<1||s.resetDay>28))return"usage.plan.resetDay must be an integer between 1 and 28"}}return null}writeConfigAtomic(e){let r=Sm.dirname(this.configPath);Ws.mkdirSync(r,{recursive:!0});let n=this.configPath+".tmp";Ws.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),Ws.renameSync(n,this.configPath)}async handleGet(e,r){let n=this.readConfig(),s=this.mergeWithDefaults(n);r.json(s)}async handlePut(e,r){let n=e.body,s=this.validateSettings(n);if(s){this.badRequest(r,s);return}let i=this.readConfig();if(n.model!==void 0&&(i.model=t.stripAliasSuffix(n.model)),n.extendedContext!==void 0&&(i.extendedContext=n.extendedContext),n.skills!==void 0){let o=i.skills??{},c={};for(let[l,u]of Object.entries(n.skills))c[l]=t.stripAliasSuffix(u);i.skills={...o,...c},delete i.commands}if(n.extendedContextOverrides!==void 0){let o=i.extendedContextOverrides??{};i.extendedContextOverrides={...o,...n.extendedContextOverrides}}if(n.agents!==void 0){let o=i.agents??{};i.agents={...o,...n.agents}}if(n.reviewerAgents!==void 0){let o=i.reviewerAgents??{};i.reviewerAgents={...o,...n.reviewerAgents}}if(n.codexReviewers!==void 0){let o=i.codexReviewers??{};i.codexReviewers={...o,...n.codexReviewers}}if(n.specWorkflow!==void 0){let o=i.specWorkflow??{};i.specWorkflow={...o,...n.specWorkflow}}if(n.securityScanner!==void 0){let o=i.securityScanner??{};i.securityScanner={...o,...n.securityScanner}}if(n.teamRemote!==void 0&&(n.teamRemote===null?delete i.teamRemote:i.teamRemote=n.teamRemote),n.teamRemoteSubfolder!==void 0&&(n.teamRemoteSubfolder===null?delete i.teamRemoteSubfolder:i.teamRemoteSubfolder=n.teamRemoteSubfolder),n.usage!==void 0){let o=i.usage??{},c=n.usage,l={...o};if(c.plan!==void 0){let u=l.plan??{};l.plan={...u,...c.plan}}i.usage=l}try{this.writeConfigAtomic(i)}catch(o){_.error("HTTP","Failed to write settings config",{},o),r.status(500).json({error:"Failed to save settings"});return}let a=this.mergeWithDefaults(i);r.json(a)}};var sa=Y(require("fs"),1),Rb=Y(require("path"),1);se();Or();var $1=41777,L1=1024,U1=65535,Tb=class extends Se{settingsPath;constructor(e){super(),this.settingsPath=e??Rb.join(je.get("CLAUDE_PILOT_DATA_DIR"),"settings.json")}setupRoutes(e){e.get("/api/console-settings",this.wrapHandler(this.handleGet.bind(this))),e.put("/api/console-settings",this.wrapHandler(this.handlePut.bind(this)))}readSettings(){try{let e=sa.readFileSync(this.settingsPath,"utf-8"),r=JSON.parse(e);if(r&&typeof r=="object"&&!Array.isArray(r))return r}catch{}return{}}writeSettingsAtomic(e){let r=Rb.dirname(this.settingsPath);sa.mkdirSync(r,{recursive:!0});let n=this.settingsPath+".tmp";sa.writeFileSync(n,JSON.stringify(e,null,2),"utf-8"),sa.renameSync(n,this.settingsPath)}resolveWorkerPort(e){let r=e.CLAUDE_PILOT_WORKER_PORT;if(typeof r=="string"&&r.trim()){let n=parseInt(r,10);if(Number.isInteger(n)&&n>=L1&&n<=U1)return n}return $1}async handleGet(e,r){let n=this.readSettings(),s={workerPort:this.resolveWorkerPort(n),defaultPort:$1};r.json(s)}async handlePut(e,r){let s=(e.body??{}).workerPort;if(typeof s!="number"||!Number.isInteger(s)){this.badRequest(r,"workerPort must be an integer");return}if(sU1){this.badRequest(r,`workerPort must be between ${L1} and ${U1}`);return}let i=this.readSettings();i.CLAUDE_PILOT_WORKER_PORT=String(s);try{this.writeSettingsAtomic(i)}catch(o){_.error("HTTP","Failed to write console settings",{},o),r.status(500).json({error:"Failed to save console settings"});return}let a={workerPort:this.resolveWorkerPort(i),defaultPort:$1};r.json(a)}};var qe=require("child_process"),aa=require("fs"),ia=Y(require("path"),1);var Qe={...process.env,GIT_OPTIONAL_LOCKS:"0"},Pb=class extends Se{dbManager;constructor(e){super(),this.dbManager=e??null}getProjectRoot(e){let r=e.query.project;return cr(this.dbManager,r)}setupRoutes(e){e.get("/api/changes/files",this.handleGetFiles.bind(this)),e.get("/api/changes/diff/:file(*)",this.handleGetDiff.bind(this)),e.post("/api/changes/stage",this.handleStage.bind(this)),e.post("/api/changes/unstage",this.handleUnstage.bind(this)),e.get("/api/changes/branches",this.handleGetBranches.bind(this)),e.post("/api/changes/checkout",this.handleCheckout.bind(this)),e.post("/api/changes/branch/create",this.handleCreateBranch.bind(this)),e.delete("/api/changes/branch/:name(*)",this.handleDeleteBranch.bind(this)),e.post("/api/changes/commit",this.handleCommit.bind(this)),e.post("/api/changes/push",this.handlePush.bind(this)),e.post("/api/changes/pull",this.handlePull.bind(this)),e.post("/api/changes/fetch",this.handleFetch.bind(this)),e.get("/api/changes/stash",this.handleListStash.bind(this)),e.post("/api/changes/stash/save",this.handleStashSave.bind(this)),e.post("/api/changes/stash/pop",this.handleStashPop.bind(this)),e.post("/api/changes/stash/apply",this.handleStashApply.bind(this)),e.delete("/api/changes/stash/:index",this.handleStashDrop.bind(this)),e.get("/api/changes/ai-available",this.handleAiAvailable.bind(this)),e.post("/api/changes/generate-message",this.handleGenerateMessage.bind(this))}handleGetFiles=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=this.detectWorktreeContext(n),i=[];if(s.active&&s.branch&&s.baseBranch){let l=this.getChangedFilesInRange(n,`${s.baseBranch}...${s.branch}`);i.push(...l)}let a=this.getChangedFilesFromGit(n,["--cached"]);i.push(...a);let o=this.getChangedFilesFromGit(n,[]);i.push(...o);let c=this.getUntrackedFiles(n);i.push(...c),r.json({files:i,worktree:s})});handleGetDiff=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),s=e.params.file,i=e.query.staged==="true";if(!s||!this.isValidFilePath(s)){this.badRequest(r,"Invalid or missing file path");return}let a=this.detectWorktreeContext(n);try{let o="",c="";if(a.active&&a.branch&&a.baseBranch)o=this.getDecryptedContent(n,a.baseBranch,s,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]),c=this.gitShowFile(n,a.branch,s),this.hasBinaryContent(c)&&(c=this.reconstructNewFromDiff(n,["diff","-U99999",`${a.baseBranch}...${a.branch}`,"--",s]));else if(i){let u=this.runGitDiff(n,["diff","--cached","-U99999","--",s]);if(o=this.reconstructOldFromDiff(u),c=this.reconstructNewFromDiff(n,["diff","--cached","-U99999","--",s]),!u.trim()){o="";let p=ia.default.join(n,s);c=(0,aa.existsSync)(p)?(0,aa.readFileSync)(p,"utf-8"):""}}else{let u=this.runGitDiff(n,["diff","-U99999","HEAD","--",s]);u.trim()?o=this.reconstructOldFromDiff(u):o="";let p=ia.default.join(n,s);c=(0,aa.existsSync)(p)?(0,aa.readFileSync)(p,"utf-8"):""}if(this.hasBinaryContent(c)||this.hasBinaryContent(o)){r.json({binary:!0,path:s});return}o=this.normalizeLineEndings(o),c=this.normalizeLineEndings(c),r.json({path:s,oldContent:o,newContent:c,staged:i})}catch(o){r.status(500).json({error:o.message})}});handleStage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["add","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,staged:s})}catch(a){r.status(500).json({error:a.message})}});handleUnstage=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{files:s}=e.body;if(!s||!Array.isArray(s)||s.length===0){this.badRequest(r,"Missing or empty files array");return}let i=s.filter(a=>!this.isValidFilePath(a));if(i.length>0){this.badRequest(r,`Invalid file paths: ${i.join(", ")}`);return}try{(0,qe.execFileSync)("git",["restore","--staged","--",...s],{cwd:n,encoding:"utf-8",timeout:1e4,env:Qe}),r.json({success:!0,unstaged:s})}catch(a){r.status(500).json({error:a.message})}});handleGetBranches=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e);try{let s=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim(),a=(0,qe.execFileSync)("git",["branch","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` `).map(p=>p.trim()).filter(Boolean).sort((p,d)=>p===s?-1:d===s?1:p.localeCompare(d)),o=[];try{o=(0,qe.execFileSync)("git",["branch","-r","--format=%(refname:short)"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).split(` `).map(d=>d.trim()).filter(d=>d&&!d.endsWith("/HEAD")).sort()}catch{}let c=null,l=0,u=0;try{c=(0,qe.execFileSync)("git",["rev-parse","--abbrev-ref",`${s}@{upstream}`],{cwd:n,encoding:"utf-8",timeout:2e3,env:Qe}).trim();let p=(0,qe.execFileSync)("git",["rev-list","--left-right","--count",`${s}...${c}`],{cwd:n,encoding:"utf-8",timeout:2e3,env:Qe}).trim(),[d,m]=p.split(" ").map(Number);l=d||0,u=m||0}catch{}r.json({current:s,local:a,remote:o,upstream:c,ahead:l,behind:u})}catch(s){r.status(500).json({error:s.message})}});handleCheckout=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{branch:s}=e.body;if(!s||typeof s!="string"||!s.trim()){this.badRequest(r,"Missing or empty branch name");return}if(!this.isValidBranchName(s)){this.badRequest(r,"Invalid branch name");return}try{(0,qe.execFileSync)("git",["checkout",s],{cwd:n,encoding:"utf-8",timeout:15e3,env:Qe}),r.json({success:!0,branch:s})}catch(i){r.status(500).json({error:i.message})}});handleCommit=this.wrapHandler((e,r)=>{let n=this.getProjectRoot(e),{title:s,body:i}=e.body;if(!s||typeof s!="string"||!s.trim()){this.badRequest(r,"Missing or empty commit title");return}try{if(!(0,qe.execFileSync)("git",["diff","--cached","--name-only"],{cwd:n,encoding:"utf-8",timeout:5e3,env:Qe}).trim()){this.badRequest(r,"No staged changes to commit");return}}catch(a){r.status(500).json({error:a.message});return}try{let a=i?.trim()?`${s.trim()} @@ -1943,9 +1943,9 @@ ${s}`;try{let a=(0,qe.execSync)(`echo ${JSON.stringify(i)} | claude -p --model c `)[0].match(/\[([^\]]+)\]/);o&&(n=o[1])}}catch{}return{active:!0,branch:r,baseBranch:n}}catch{return{active:!1,branch:null,baseBranch:null}}}getChangedFilesFromGit(e,r){try{let n=["diff",...r,"--name-status"],s=["diff",...r,"--numstat"],i=(0,qe.execFileSync)("git",n,{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),a=(0,qe.execFileSync)("git",s,{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),o=r.includes("--cached");return this.parseChangedFiles(i,a,o)}catch{return[]}}getUntrackedFiles(e){try{return(0,qe.execFileSync)("git",["ls-files","--others","--exclude-standard"],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}).split(` `).map(n=>n.trim()).filter(Boolean).map(n=>({path:n,status:"?",staged:!1,additions:0,deletions:0}))}catch{return[]}}getChangedFilesInRange(e,r){try{let n=(0,qe.execFileSync)("git",["diff","--name-status",r],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe}),s=(0,qe.execFileSync)("git",["diff","--numstat",r],{cwd:e,encoding:"utf-8",timeout:1e4,env:Qe});return this.parseChangedFiles(n,s,!0)}catch{return[]}}parseChangedFiles(e,r,n){let s=new Map;for(let a of r.split(` `)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=3){let c=o[0],l=o[1],u=o[o.length-1];s.set(u,{additions:c==="-"?0:parseInt(c,10)||0,deletions:l==="-"?0:parseInt(l,10)||0})}}let i=[];for(let a of e.split(` -`)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=2){let c=o[0].charAt(0),l=o[o.length-1],u=s.get(l)||{additions:0,deletions:0};i.push({path:l,status:c,staged:n,...u})}}return i}isValidFilePath(e){return!(!e||e.trim()===""||sa.default.isAbsolute(e)||sa.default.normalize(e).startsWith(".."))}isValidBranchName(e){return!(!e||e.trim()===""||/\.\.|\x00-\x1f|[\x7f~^:?*\[\\]|@\{/.test(e)||e.startsWith("-")||e.startsWith(".")||e.endsWith(".lock"))}gitShowFile(e,r,n){try{return(0,qe.execFileSync)("git",["show",`${r}:${n}`],{cwd:e,encoding:"utf-8",timeout:5e3,env:Qe,maxBuffer:10*1024*1024})}catch{return""}}hasBinaryContent(e){return e.includes("\0")}normalizeLineEndings(e){return e.replace(/\r\n?/g,` -`)}getMainRepoRoot(e){try{let r=sa.default.join(e,".git");if((0,ia.existsSync)(r))try{let n=(0,ia.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=sa.default.resolve(e,s,"..","..");return sa.default.dirname(i)}}catch{return e}return e}catch{return null}}};var wZ=Y(require("path"),1);var Zs=require("node:fs"),yi=Y(require("node:path"),1);function gZ(t){return yi.default.join(yi.default.dirname(t),".annotations")}function F1(t,e){let r=yi.default.basename(e).replace(/\.md$/,".json");if(yi.default.isAbsolute(e))return yi.default.join(gZ(e),r);let n=yi.default.resolve(t,e);return yi.default.join(gZ(n),r)}function mEe(t){(0,Zs.mkdirSync)(yi.default.dirname(t),{recursive:!0})}function q1(t){return{planPath:t,planAnnotations:[],codeReviewAnnotations:[],updatedAt:Date.now()}}function Il(t,e){let r=F1(t,e);if(!(0,Zs.existsSync)(r))return q1(e);try{let n=(0,Zs.readFileSync)(r,"utf-8"),s=JSON.parse(n);if(Array.isArray(s.planAnnotations))return{planPath:s.planPath??e,planAnnotations:s.planAnnotations,codeReviewAnnotations:Array.isArray(s.codeReviewAnnotations)?s.codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now()};if(Array.isArray(s.annotations)){let i=s.annotations.map(a=>({id:a.id,blockId:a.blockId,originalText:a.originalText??"",text:a.text??"",createdAt:a.createdAt??Date.now()}));return{planPath:s.planPath??e,planAnnotations:i,codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now()}}return q1(e)}catch{return q1(e)}}function Ib(t,e){let r=F1(t,e.planPath);mEe(r),(0,Zs.writeFileSync)(r,JSON.stringify({...e,updatedAt:Date.now()},null,2),"utf-8")}function vZ(t,e,r){let n=Il(t,e);Ib(t,{...n,planPath:e,planAnnotations:r})}function yZ(t,e){let r=Il(t,e);Ib(t,{...r,planAnnotations:[]})}function bZ(t,e,r){let n=Il(t,e);Ib(t,{...n,planPath:e,codeReviewAnnotations:r})}function xZ(t,e){let r=Il(t,e);Ib(t,{...r,codeReviewAnnotations:[]})}function _Z(t,e){let r=F1(t,e);try{(0,Zs.unlinkSync)(r)}catch(n){if(n.code!=="ENOENT")throw n}}var Cb=class extends Se{dbManager;constructor(e){super(),this.dbManager=e??null}setupRoutes(e){e.get("/api/annotations",this.handleGet.bind(this)),e.post("/api/annotations/plan",this.handleSavePlan.bind(this)),e.post("/api/annotations/code-review",this.handleSaveCodeReview.bind(this)),e.delete("/api/annotations",this.handleDeleteAll.bind(this)),e.delete("/api/annotations/plan",this.handleClearPlan.bind(this)),e.delete("/api/annotations/code-review",this.handleClearCodeReview.bind(this))}resolvePlanPath(e,r,n){let s=wZ.default.resolve(r,n);return bm(r,s)?s:(this.badRequest(e,"Invalid plan path"),null)}requirePath(e,r){let n=e.query.project,s=e.query.path;if(!s)return this.badRequest(r,"Missing path query parameter"),null;let i=cr(this.dbManager,n),a=this.resolvePlanPath(r,i,s);return a?{projectRoot:i,resolvedPlanPath:a}:null}handleGet=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=Il(n.projectRoot,n.resolvedPlanPath);r.json({planAnnotations:s.planAnnotations,codeReviewAnnotations:s.codeReviewAnnotations})});handleSavePlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}vZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleSaveCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}bZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleDeleteAll=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(_Z(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearPlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(yZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(xZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))})};var TZ=require("os"),RZ=require("path");var xn=require("fs"),Cl=require("path"),SZ=512*1024,kZ=8,H1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",fEe=256-256%H1.length;function hEe(){let t=[];for(;t.lengthSZ)throw new Error(`Payload too large (max ${SZ/1024} KB)`);let n=hEe(),s={data:e,expiresAt:Date.now()+r*1e3};return(0,xn.writeFileSync)(this.safePath(n),JSON.stringify(s),"utf-8"),n}async get(e){let r=this.safePath(e);if(!(0,xn.existsSync)(r))return null;try{let n=JSON.parse((0,xn.readFileSync)(r,"utf-8"));return Date.now()>n.expiresAt?((0,xn.unlinkSync)(r),null):n.data}catch{return null}}sweep(){try{let e=(0,xn.readdirSync)(this.dataDir).filter(n=>n.endsWith(".json")),r=Date.now();for(let n of e){let s=(0,Cl.join)(this.dataDir,n);try{let i=(0,xn.readFileSync)(s,"utf-8"),a=JSON.parse(i);r>a.expiresAt&&(0,xn.unlinkSync)(s)}catch{}}}catch{}}},EZ=4320*60;var gEe=(0,RZ.join)((0,TZ.homedir)(),".pilot","share"),jb=class extends Se{store;constructor(e=gEe){super(),this.store=new Ob(e)}setupRoutes(e){e.post("/api/share",this.handlePost.bind(this)),e.get("/api/share/:id",this.handleGet.bind(this))}handlePost=this.wrapHandler(async(e,r)=>{let{data:n}=e.body;if(typeof n!="string"||!n){this.badRequest(r,"Missing or invalid data field");return}try{let s=await this.store.put(n,EZ);r.status(201).json({id:s})}catch(s){let i=s instanceof Error?s.message:"Failed to store";if(i.includes("too large"))r.status(413).json({error:i});else throw s}});handleGet=this.wrapHandler(async(e,r)=>{let{id:n}=e.params;try{let s=await this.store.get(n);if(s===null){this.notFound(r,"Share not found or expired");return}r.setHeader("Cache-Control","private, no-store"),r.json({data:s})}catch(s){let i=s instanceof Error?s.message:"";if(i.includes("Invalid share ID")||i.includes("traversal"))this.badRequest(r,"Invalid share ID");else throw s}})};var Ab=class{dbManager;sessionManager;startTime;requestMetrics=[];providerRequests=0;providerTokens=0;providerErrors=0;providerName="unknown";METRICS_WINDOW_MS=300*1e3;constructor(e,r,n){this.dbManager=e,this.sessionManager=r,this.startTime=n,setInterval(()=>this.cleanupOldMetrics(),6e4)}recordRequest(e,r,n=!1){this.requestMetrics.push({endpoint:e,responseTimeMs:r,timestamp:Date.now(),error:n})}recordProviderUsage(e,r,n=!1){this.providerName=e,this.providerRequests++,this.providerTokens+=r,n&&this.providerErrors++}cleanupOldMetrics(){let e=Date.now()-this.METRICS_WINDOW_MS;this.requestMetrics=this.requestMetrics.filter(r=>r.timestamp>e)}async getMetrics(){let r=this.dbManager.getSessionStore().db,n=R=>{try{return r.prepare(`SELECT COUNT(*) as count FROM ${R}`).get().count}catch{return 0}},s=n("observations"),i=n("sdk_sessions"),a=n("session_summaries"),o=n("prompts"),{DATA_DIR:c}=await Promise.resolve().then(()=>(er(),xP)),l=await import("fs"),p=(await import("path")).join(c,"pilot-memory.db"),d=0;try{d=l.statSync(p).size}catch{}let m=process.memoryUsage(),f=this.requestMetrics.filter(R=>R.timestamp>Date.now()-this.METRICS_WINDOW_MS),v=f.length,g=f.filter(R=>R.error).length,h=v>0?f.reduce((R,O)=>R+O.responseTimeMs,0)/v:0,y={};for(let R of f)y[R.endpoint]=(y[R.endpoint]||0)+1;let b=Date.now()-6e4,x=0;try{x=r.prepare("SELECT COUNT(*) as count FROM observations WHERE created_at_epoch > ?").get(b).count}catch{}let w=f.filter(R=>R.timestamp>b).length,S=this.sessionManager.isAnySessionProcessing(),k=this.sessionManager.getTotalActiveWork(),E=this.sessionManager.getActiveSessionCount();return{uptime:Math.floor((Date.now()-this.startTime)/1e3),memoryUsage:{heapUsed:m.heapUsed,heapTotal:m.heapTotal,rss:m.rss,external:m.external},database:{observations:s,sessions:i,summaries:a,prompts:o,sizeBytes:d},processing:{activeSessions:E,queueDepth:k,isProcessing:S},requests:{total:v,byEndpoint:y,errors:g,avgResponseTimeMs:Math.round(h)},provider:{name:this.providerName,requestsTotal:this.providerRequests,tokensTotal:this.providerTokens,errorsTotal:this.providerErrors},rates:{observationsPerMinute:x,requestsPerMinute:w}}}async toPrometheus(){let e=await this.getMetrics(),r=[],n=(s,i,a,o="gauge",c={})=>{r.push(`# HELP claude_pilot_${s} ${a}`),r.push(`# TYPE claude_pilot_${s} ${o}`);let l=Object.entries(c).map(([p,d])=>`${p}="${d}"`).join(","),u=l?`{${l}}`:"";r.push(`claude_pilot_${s}${u} ${i}`)};return n("uptime_seconds",e.uptime,"Worker uptime in seconds"),n("memory_heap_used_bytes",e.memoryUsage.heapUsed,"Heap memory used"),n("memory_heap_total_bytes",e.memoryUsage.heapTotal,"Total heap memory"),n("memory_rss_bytes",e.memoryUsage.rss,"Resident set size"),n("database_observations_total",e.database.observations,"Total observations"),n("database_sessions_total",e.database.sessions,"Total sessions"),n("database_summaries_total",e.database.summaries,"Total summaries"),n("database_prompts_total",e.database.prompts,"Total prompts"),n("database_size_bytes",e.database.sizeBytes,"Database file size"),n("processing_active_sessions",e.processing.activeSessions,"Active processing sessions"),n("processing_queue_depth",e.processing.queueDepth,"Queue depth"),n("processing_is_active",e.processing.isProcessing?1:0,"Is processing active"),n("requests_total",e.requests.total,"Total requests in window","counter"),n("requests_errors_total",e.requests.errors,"Total request errors","counter"),n("requests_response_time_avg_ms",e.requests.avgResponseTimeMs,"Average response time"),n("provider_requests_total",e.provider.requestsTotal,"Provider requests","counter",{provider:e.provider.name}),n("provider_tokens_total",e.provider.tokensTotal,"Provider tokens used","counter",{provider:e.provider.name}),n("provider_errors_total",e.provider.errorsTotal,"Provider errors","counter",{provider:e.provider.name}),n("observations_per_minute",e.rates.observationsPerMinute,"Observations created per minute"),n("requests_per_minute",e.rates.requestsPerMinute,"Requests per minute"),r.join(` -`)}};se();er();Or();var vEe=1440*60*1e3,yEe=3e4,Nb=null,Db=null;async function PZ(t){let e=t.getVectorSyncOrNull(),r=new kl(t,e),n=r.getPolicy();if(!n.enabled){_.debug("RETENTION","Auto-cleanup skipped: retention policy is disabled");return}_.info("RETENTION","Running scheduled auto-cleanup",{maxAgeDays:n.maxAgeDays,maxCount:n.maxCount});let s=await r.run();_.info("RETENTION","Auto-cleanup complete",{deleted:s.deleted,archived:s.archived,errors:s.errors.length,duration:s.duration}),await bEe(e)}async function bEe(t){try{let e=je.loadFromFile(Ht),r=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB,10)||Yp,n=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB,10)||Xp,s=Ag(Ll,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});if(!s.evicted)return;_.warn("VECTOR_DB_GUARD","Retention detected oversized vector DB \u2014 evicted, will rebuild on next sync",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled}),t&&await t.close()}catch(e){_.error("VECTOR_DB_GUARD","Post-retention vector DB guard failed (non-fatal)",{},e)}}function IZ(t){B1(),Db=setTimeout(async()=>{try{await PZ(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}Nb=setInterval(async()=>{try{await PZ(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}},vEe),_.info("RETENTION","Scheduled daily auto-cleanup")},yEe),_.info("RETENTION","Retention scheduler initialized (first run in 30s)")}function B1(){Db&&(clearTimeout(Db),Db=null),Nb&&(clearInterval(Nb),Nb=null),_.debug("RETENTION","Retention scheduler stopped")}var zEe={},jEe="8.6.0";function pG(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}function dG(){let t=`${(0,uG.homedir)()}/.pilot/bin/pilot`;if(!(0,sP.existsSync)(t))return _.warn("SYSTEM","Pilot binary not found, skipping license check"),!0;try{return(0,lG.execSync)(`"${t}" verify`,{stdio:"pipe",timeout:5e3,env:$u()}),!0}catch{return!1}}var Fb=class{server;startTime=Date.now();mcpClient;coreReady=!1;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;sessionEventBroadcaster;searchRoutes=null;metricsService=null;initializationComplete;resolveInitialization;cleanupInterval=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Dg,this.sessionManager=new zg(this.dbManager),this.sseBroadcaster=new Mg,this.sdkAgent=new Iy(this.dbManager,this.sessionManager),this.paginationHelper=new Cy(this.dbManager),this.sessionEventBroadcaster=new Ny(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Bo({name:"worker-search-proxy",version:jEe},{capabilities:{}}),this.server=new Tg({getInitializationComplete:()=>this.initializationCompleteFlag,getCoreReady:()=>this.coreReady,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=kw(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")}),process.platform!=="win32"&&process.on("SIGHUP",()=>{process.argv.includes("--daemon")?_.info("SYSTEM","Received SIGHUP in daemon mode, ignoring",{}):(this.isShuttingDown=e.value,r("SIGHUP"))})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{try{let i=new Promise((a,o)=>setTimeout(()=>o(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,i]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()}catch{r.status(503).json({error:"Service initialization timed out"})}}),this.server.registerRoutes(new tb),this.server.registerRoutes(new zy(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new $y(this.sessionManager,this.dbManager,this.sdkAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Ly(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime,new Fy)),this.server.registerRoutes(new Ky),this.server.registerRoutes(new Jy(this.dbManager,"pilot-memory")),this.server.registerRoutes(new Yy(this.dbManager)),this.server.registerRoutes(new Xy(this.dbManager)),this.server.registerRoutes(new lb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Cb(this.dbManager)),this.server.registerRoutes(new jb),this.server.registerRoutes(new ub(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new db),this.metricsService=new Ab(this.dbManager,this.sessionManager,this.startTime),this.server.registerRoutes(new eb(this.metricsService)),this.server.registerRoutes(new vb),this.server.registerRoutes(new yb),this.server.registerRoutes(new _b),this.server.registerRoutes(new wb(this.dbManager)),this.server.registerRoutes(new kb),this.server.registerRoutes(new Eb),this.server.registerRoutes(new Tb),this.server.registerRoutes(new Pb(this.dbManager)),IZ(this.dbManager)}async start(){let e=un(),r=eh(),n=ls();await this.server.listen(e,r),_.info("SYSTEM","Worker started",{bind:r,host:n,port:e,pid:process.pid}),Sa()&&_.info("SYSTEM","WSL2 detected \u2014 Console bound to 0.0.0.0 for Windows host access",{url:`http://localhost:${e}`}),this.initializeBackground().catch(s=>{_.error("SYSTEM","Background initialization failed",{},s)})}async initializeBackground(){try{await oh(),await qu(),await Uu();let{ModeManager:e}=await Promise.resolve().then(()=>(Hn(),f6));e.getInstance().loadMode(),_.info("SYSTEM","Mode loaded: Code Development"),await this.dbManager.initialize();let r=nn(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),n=Tm.default.basename(r);this.dbManager.getSessionStore().upsertProjectRoot(n,r);let{PendingMessageStore:s}=await Promise.resolve().then(()=>(Fi(),Ha)),i=new s(this.dbManager.getSessionStore().db,3),a=300*1e3,o=i.resetStuckMessages(a);o>0&&_.info("SYSTEM",`Recovered ${o} stuck messages from previous session`,{thresholdMinutes:5});let c=new jy,l=new Ay,u=new Oy(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getVectorSync(),c,l);this.searchRoutes=new Gy(u),this.server.registerRoutes(this.searchRoutes),_.info("WORKER","SearchManager initialized and search routes registered"),this.coreReady=!0,_.info("SYSTEM","Core services ready (hooks can proceed)");let p=[Tm.default.join(__dirname,"mcp-server.cjs"),Tm.default.join(__dirname,"..","servers","mcp-server.ts"),Tm.default.join(__dirname,"..","..","servers","mcp-server.ts")],d=p.find(x=>(0,sP.existsSync)(x))||p[0],m=d.endsWith(".ts"),f=new Go({command:m?"bun":"node",args:[d],env:process.env}),v=3e5,g=this.mcpClient.connect(f),h=new Promise((x,w)=>setTimeout(()=>w(new Error("MCP connection timeout after 5 minutes")),v));await Promise.race([g,h]),this.mcpReady=!0,_.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),_.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(x=>{x.sessionsStarted>0&&_.info("SYSTEM",`Auto-recovered ${x.sessionsStarted} sessions with pending work`,{totalPending:x.totalPendingSessions,started:x.sessionsStarted,sessionIds:x.startedSessionIds})}).catch(x=>{_.error("SYSTEM","Auto-recovery of pending queues failed",{},x)});let y=300*1e3,b=3600*1e3;this.cleanupInterval=setInterval(async()=>{try{let x=await this.sessionManager.cleanupStaleSessions(b);x>0&&_.info("SYSTEM",`Periodic cleanup: removed ${x} stale sessions`),await qu(),await Uu(),_.debug("SYSTEM","Periodic cleanup completed")}catch(x){_.error("SYSTEM","Periodic cleanup failed",{},x)}},y),_.info("SYSTEM","Started periodic cleanup (every 5 minutes)")}catch(e){throw _.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return this.sdkAgent}startSessionProcessor(e,r){if(!e)return;e.abortController.signal.aborted&&(e.abortController=new AbortController,_.debug("SYSTEM","Reset AbortController for session restart",{sessionId:e.sessionDbId}));let n=e.sessionDbId,s=this.getActiveAgent(),i=s.constructor.name;_.info("SYSTEM",`Starting generator (${r}) using ${i}`,{sessionId:n}),e.generatorPromise=s.startSession(e,this).catch(a=>{_.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:i},a)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(Fi(),Ha)),n=new r(this.dbManager.getSessionStore().db,3),s=this.dbManager.getSessionStore(),i=1800*1e3,a=Date.now()-i;try{let l=s.db.prepare(` +`)){if(!a.trim())continue;let o=a.split(" ");if(o.length>=2){let c=o[0].charAt(0),l=o[o.length-1],u=s.get(l)||{additions:0,deletions:0};i.push({path:l,status:c,staged:n,...u})}}return i}isValidFilePath(e){return!(!e||e.trim()===""||ia.default.isAbsolute(e)||ia.default.normalize(e).startsWith(".."))}isValidBranchName(e){return!(!e||e.trim()===""||/\.\.|\x00-\x1f|[\x7f~^:?*\[\\]|@\{/.test(e)||e.startsWith("-")||e.startsWith(".")||e.endsWith(".lock"))}gitShowFile(e,r,n){try{return(0,qe.execFileSync)("git",["show",`${r}:${n}`],{cwd:e,encoding:"utf-8",timeout:5e3,env:Qe,maxBuffer:10*1024*1024})}catch{return""}}hasBinaryContent(e){return e.includes("\0")}normalizeLineEndings(e){return e.replace(/\r\n?/g,` +`)}getMainRepoRoot(e){try{let r=ia.default.join(e,".git");if((0,aa.existsSync)(r))try{let n=(0,aa.readFileSync)(r,"utf-8").trim();if(n.startsWith("gitdir:")){let s=n.replace("gitdir:","").trim(),i=ia.default.resolve(e,s,"..","..");return ia.default.dirname(i)}}catch{return e}return e}catch{return null}}};var wZ=Y(require("path"),1);var Zs=require("node:fs"),yi=Y(require("node:path"),1);function gZ(t){return yi.default.join(yi.default.dirname(t),".annotations")}function F1(t,e){let r=yi.default.basename(e).replace(/\.md$/,".json");if(yi.default.isAbsolute(e))return yi.default.join(gZ(e),r);let n=yi.default.resolve(t,e);return yi.default.join(gZ(n),r)}function mEe(t){(0,Zs.mkdirSync)(yi.default.dirname(t),{recursive:!0})}function q1(t){return{planPath:t,planAnnotations:[],codeReviewAnnotations:[],updatedAt:Date.now()}}function Il(t,e){let r=F1(t,e);if(!(0,Zs.existsSync)(r))return q1(e);try{let n=(0,Zs.readFileSync)(r,"utf-8"),s=JSON.parse(n);if(Array.isArray(s.planAnnotations))return{planPath:s.planPath??e,planAnnotations:s.planAnnotations,codeReviewAnnotations:Array.isArray(s.codeReviewAnnotations)?s.codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now()};if(Array.isArray(s.annotations)){let i=s.annotations.map(a=>({id:a.id,blockId:a.blockId,originalText:a.originalText??"",text:a.text??"",createdAt:a.createdAt??Date.now()}));return{planPath:s.planPath??e,planAnnotations:i,codeReviewAnnotations:[],updatedAt:s.updatedAt??Date.now()}}return q1(e)}catch{return q1(e)}}function Ib(t,e){let r=F1(t,e.planPath);mEe(r),(0,Zs.writeFileSync)(r,JSON.stringify({...e,updatedAt:Date.now()},null,2),"utf-8")}function vZ(t,e,r){let n=Il(t,e);Ib(t,{...n,planPath:e,planAnnotations:r})}function yZ(t,e){let r=Il(t,e);Ib(t,{...r,planAnnotations:[]})}function bZ(t,e,r){let n=Il(t,e);Ib(t,{...n,planPath:e,codeReviewAnnotations:r})}function xZ(t,e){let r=Il(t,e);Ib(t,{...r,codeReviewAnnotations:[]})}function _Z(t,e){let r=F1(t,e);try{(0,Zs.unlinkSync)(r)}catch(n){if(n.code!=="ENOENT")throw n}}var Cb=class extends Se{dbManager;constructor(e){super(),this.dbManager=e??null}setupRoutes(e){e.get("/api/annotations",this.handleGet.bind(this)),e.post("/api/annotations/plan",this.handleSavePlan.bind(this)),e.post("/api/annotations/code-review",this.handleSaveCodeReview.bind(this)),e.delete("/api/annotations",this.handleDeleteAll.bind(this)),e.delete("/api/annotations/plan",this.handleClearPlan.bind(this)),e.delete("/api/annotations/code-review",this.handleClearCodeReview.bind(this))}resolvePlanPath(e,r,n){let s=wZ.default.resolve(r,n);return bm(r,s)?s:(this.badRequest(e,"Invalid plan path"),null)}requirePath(e,r){let n=e.query.project,s=e.query.path;if(!s)return this.badRequest(r,"Missing path query parameter"),null;let i=cr(this.dbManager,n),a=this.resolvePlanPath(r,i,s);return a?{projectRoot:i,resolvedPlanPath:a}:null}handleGet=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=Il(n.projectRoot,n.resolvedPlanPath);r.json({planAnnotations:s.planAnnotations,codeReviewAnnotations:s.codeReviewAnnotations})});handleSavePlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}vZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleSaveCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);if(!n)return;let s=e.body.annotations;if(!Array.isArray(s)){this.badRequest(r,"annotations must be an array");return}bZ(n.projectRoot,n.resolvedPlanPath,s),r.json({ok:!0})});handleDeleteAll=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(_Z(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearPlan=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(yZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))});handleClearCodeReview=this.wrapHandler((e,r)=>{let n=this.requirePath(e,r);n&&(xZ(n.projectRoot,n.resolvedPlanPath),r.json({ok:!0}))})};var TZ=require("os"),RZ=require("path");var xn=require("fs"),Cl=require("path"),SZ=512*1024,kZ=8,H1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",fEe=256-256%H1.length;function hEe(){let t=[];for(;t.lengthSZ)throw new Error(`Payload too large (max ${SZ/1024} KB)`);let n=hEe(),s={data:e,expiresAt:Date.now()+r*1e3};return(0,xn.writeFileSync)(this.safePath(n),JSON.stringify(s),"utf-8"),n}async get(e){let r=this.safePath(e);if(!(0,xn.existsSync)(r))return null;try{let n=JSON.parse((0,xn.readFileSync)(r,"utf-8"));return Date.now()>n.expiresAt?((0,xn.unlinkSync)(r),null):n.data}catch{return null}}sweep(){try{let e=(0,xn.readdirSync)(this.dataDir).filter(n=>n.endsWith(".json")),r=Date.now();for(let n of e){let s=(0,Cl.join)(this.dataDir,n);try{let i=(0,xn.readFileSync)(s,"utf-8"),a=JSON.parse(i);r>a.expiresAt&&(0,xn.unlinkSync)(s)}catch{}}}catch{}}},EZ=4320*60;var gEe=(0,RZ.join)((0,TZ.homedir)(),".pilot","share"),jb=class extends Se{store;constructor(e=gEe){super(),this.store=new Ob(e)}setupRoutes(e){e.post("/api/share",this.handlePost.bind(this)),e.get("/api/share/:id",this.handleGet.bind(this))}handlePost=this.wrapHandler(async(e,r)=>{let{data:n}=e.body;if(typeof n!="string"||!n){this.badRequest(r,"Missing or invalid data field");return}try{let s=await this.store.put(n,EZ);r.status(201).json({id:s})}catch(s){let i=s instanceof Error?s.message:"Failed to store";if(i.includes("too large"))r.status(413).json({error:i});else throw s}});handleGet=this.wrapHandler(async(e,r)=>{let{id:n}=e.params;try{let s=await this.store.get(n);if(s===null){this.notFound(r,"Share not found or expired");return}r.setHeader("Cache-Control","private, no-store"),r.json({data:s})}catch(s){let i=s instanceof Error?s.message:"";if(i.includes("Invalid share ID")||i.includes("traversal"))this.badRequest(r,"Invalid share ID");else throw s}})};var Ab=class{dbManager;sessionManager;startTime;requestMetrics=[];providerRequests=0;providerTokens=0;providerErrors=0;providerName="unknown";METRICS_WINDOW_MS=300*1e3;constructor(e,r,n){this.dbManager=e,this.sessionManager=r,this.startTime=n,setInterval(()=>this.cleanupOldMetrics(),6e4)}recordRequest(e,r,n=!1){this.requestMetrics.push({endpoint:e,responseTimeMs:r,timestamp:Date.now(),error:n})}recordProviderUsage(e,r,n=!1){this.providerName=e,this.providerRequests++,this.providerTokens+=r,n&&this.providerErrors++}cleanupOldMetrics(){let e=Date.now()-this.METRICS_WINDOW_MS;this.requestMetrics=this.requestMetrics.filter(r=>r.timestamp>e)}async getMetrics(){let r=this.dbManager.getSessionStore().db,n=R=>{try{return r.prepare(`SELECT COUNT(*) as count FROM ${R}`).get().count}catch{return 0}},s=n("observations"),i=n("sdk_sessions"),a=n("session_summaries"),o=n("prompts"),{DATA_DIR:c}=await Promise.resolve().then(()=>(er(),xP)),l=await import("fs"),p=(await import("path")).join(c,"pilot-memory.db"),d=0;try{d=l.statSync(p).size}catch{}let m=process.memoryUsage(),f=this.requestMetrics.filter(R=>R.timestamp>Date.now()-this.METRICS_WINDOW_MS),v=f.length,g=f.filter(R=>R.error).length,h=v>0?f.reduce((R,O)=>R+O.responseTimeMs,0)/v:0,y={};for(let R of f)y[R.endpoint]=(y[R.endpoint]||0)+1;let b=Date.now()-6e4,x=0;try{x=r.prepare("SELECT COUNT(*) as count FROM observations WHERE created_at_epoch > ?").get(b).count}catch{}let w=f.filter(R=>R.timestamp>b).length,S=this.sessionManager.isAnySessionProcessing(),k=this.sessionManager.getTotalActiveWork(),E=this.sessionManager.getActiveSessionCount();return{uptime:Math.floor((Date.now()-this.startTime)/1e3),memoryUsage:{heapUsed:m.heapUsed,heapTotal:m.heapTotal,rss:m.rss,external:m.external},database:{observations:s,sessions:i,summaries:a,prompts:o,sizeBytes:d},processing:{activeSessions:E,queueDepth:k,isProcessing:S},requests:{total:v,byEndpoint:y,errors:g,avgResponseTimeMs:Math.round(h)},provider:{name:this.providerName,requestsTotal:this.providerRequests,tokensTotal:this.providerTokens,errorsTotal:this.providerErrors},rates:{observationsPerMinute:x,requestsPerMinute:w}}}async toPrometheus(){let e=await this.getMetrics(),r=[],n=(s,i,a,o="gauge",c={})=>{r.push(`# HELP claude_pilot_${s} ${a}`),r.push(`# TYPE claude_pilot_${s} ${o}`);let l=Object.entries(c).map(([p,d])=>`${p}="${d}"`).join(","),u=l?`{${l}}`:"";r.push(`claude_pilot_${s}${u} ${i}`)};return n("uptime_seconds",e.uptime,"Worker uptime in seconds"),n("memory_heap_used_bytes",e.memoryUsage.heapUsed,"Heap memory used"),n("memory_heap_total_bytes",e.memoryUsage.heapTotal,"Total heap memory"),n("memory_rss_bytes",e.memoryUsage.rss,"Resident set size"),n("database_observations_total",e.database.observations,"Total observations"),n("database_sessions_total",e.database.sessions,"Total sessions"),n("database_summaries_total",e.database.summaries,"Total summaries"),n("database_prompts_total",e.database.prompts,"Total prompts"),n("database_size_bytes",e.database.sizeBytes,"Database file size"),n("processing_active_sessions",e.processing.activeSessions,"Active processing sessions"),n("processing_queue_depth",e.processing.queueDepth,"Queue depth"),n("processing_is_active",e.processing.isProcessing?1:0,"Is processing active"),n("requests_total",e.requests.total,"Total requests in window","counter"),n("requests_errors_total",e.requests.errors,"Total request errors","counter"),n("requests_response_time_avg_ms",e.requests.avgResponseTimeMs,"Average response time"),n("provider_requests_total",e.provider.requestsTotal,"Provider requests","counter",{provider:e.provider.name}),n("provider_tokens_total",e.provider.tokensTotal,"Provider tokens used","counter",{provider:e.provider.name}),n("provider_errors_total",e.provider.errorsTotal,"Provider errors","counter",{provider:e.provider.name}),n("observations_per_minute",e.rates.observationsPerMinute,"Observations created per minute"),n("requests_per_minute",e.rates.requestsPerMinute,"Requests per minute"),r.join(` +`)}};se();er();Or();var vEe=1440*60*1e3,yEe=3e4,Nb=null,Db=null;async function PZ(t){let e=t.getVectorSyncOrNull(),r=new kl(t,e),n=r.getPolicy();if(!n.enabled){_.debug("RETENTION","Auto-cleanup skipped: retention policy is disabled");return}_.info("RETENTION","Running scheduled auto-cleanup",{maxAgeDays:n.maxAgeDays,maxCount:n.maxCount});let s=await r.run();_.info("RETENTION","Auto-cleanup complete",{deleted:s.deleted,archived:s.archived,errors:s.errors.length,duration:s.duration}),await bEe(e)}async function bEe(t){try{let e=je.loadFromFile(Ht),r=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_PHYSICAL_MB,10)||Yp,n=parseInt(e.CLAUDE_PILOT_VECTOR_DB_MAX_LOGICAL_MB,10)||Xp,s=Ag(Ll,{maxPhysicalBytes:r*1024*1024,maxLogicalBytes:n*1024*1024,settingsPathForAutoDisable:Ht});if(!s.evicted)return;_.warn("VECTOR_DB_GUARD","Retention detected oversized vector DB \u2014 evicted, will rebuild on next sync",{reason:s.reason,logicalBytes:s.before.logical,physicalBytes:s.before.physical,largestFile:s.before.largestFile?.path,backupPath:s.backupPath,recentEvictionCount:s.recentEvictionCount,chromaAutoDisabled:s.chromaAutoDisabled}),t&&await t.close()}catch(e){_.error("VECTOR_DB_GUARD","Post-retention vector DB guard failed (non-fatal)",{},e)}}function IZ(t){B1(),Db=setTimeout(async()=>{try{await PZ(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}Nb=setInterval(async()=>{try{await PZ(t)}catch(e){_.error("RETENTION","Scheduled retention failed",{},e)}},vEe),_.info("RETENTION","Scheduled daily auto-cleanup")},yEe),_.info("RETENTION","Retention scheduler initialized (first run in 30s)")}function B1(){Db&&(clearTimeout(Db),Db=null),Nb&&(clearInterval(Nb),Nb=null),_.debug("RETENTION","Retention scheduler stopped")}var zEe={},jEe="8.6.2";function pG(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}function dG(){let t=`${(0,uG.homedir)()}/.pilot/bin/pilot`;if(!(0,sP.existsSync)(t))return _.warn("SYSTEM","Pilot binary not found, skipping license check"),!0;try{return(0,lG.execSync)(`"${t}" verify`,{stdio:"pipe",timeout:5e3,env:$u()}),!0}catch{return!1}}var Fb=class{server;startTime=Date.now();mcpClient;coreReady=!1;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;paginationHelper;sessionEventBroadcaster;searchRoutes=null;metricsService=null;initializationComplete;resolveInitialization;cleanupInterval=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Dg,this.sessionManager=new zg(this.dbManager),this.sseBroadcaster=new Mg,this.sdkAgent=new Iy(this.dbManager,this.sessionManager),this.paginationHelper=new Cy(this.dbManager),this.sessionEventBroadcaster=new Ny(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new Bo({name:"worker-search-proxy",version:jEe},{capabilities:{}}),this.server=new Tg({getInitializationComplete:()=>this.initializationCompleteFlag,getCoreReady:()=>this.coreReady,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown()}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){let e={value:this.isShuttingDown},r=kw(()=>this.shutdown(),e);process.on("SIGTERM",()=>{this.isShuttingDown=e.value,r("SIGTERM")}),process.on("SIGINT",()=>{this.isShuttingDown=e.value,r("SIGINT")}),process.platform!=="win32"&&process.on("SIGHUP",()=>{process.argv.includes("--daemon")?_.info("SYSTEM","Received SIGHUP in daemon mode, ignoring",{}):(this.isShuttingDown=e.value,r("SIGHUP"))})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{try{let i=new Promise((a,o)=>setTimeout(()=>o(new Error("Initialization timeout")),3e5));if(await Promise.race([this.initializationComplete,i]),!this.searchRoutes){r.status(503).json({error:"Search routes not initialized"});return}n()}catch{r.status(503).json({error:"Service initialization timed out"})}}),this.server.registerRoutes(new tb),this.server.registerRoutes(new zy(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new $y(this.sessionManager,this.dbManager,this.sdkAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Ly(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime,new Fy)),this.server.registerRoutes(new Ky),this.server.registerRoutes(new Jy(this.dbManager,"pilot-memory")),this.server.registerRoutes(new Yy(this.dbManager)),this.server.registerRoutes(new Xy(this.dbManager)),this.server.registerRoutes(new lb(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new Cb(this.dbManager)),this.server.registerRoutes(new jb),this.server.registerRoutes(new ub(this.dbManager,this.sseBroadcaster)),this.server.registerRoutes(new db),this.metricsService=new Ab(this.dbManager,this.sessionManager,this.startTime),this.server.registerRoutes(new eb(this.metricsService)),this.server.registerRoutes(new vb),this.server.registerRoutes(new yb),this.server.registerRoutes(new _b),this.server.registerRoutes(new wb(this.dbManager)),this.server.registerRoutes(new kb),this.server.registerRoutes(new Eb),this.server.registerRoutes(new Tb),this.server.registerRoutes(new Pb(this.dbManager)),IZ(this.dbManager)}async start(){let e=un(),r=eh(),n=ls();await this.server.listen(e,r),_.info("SYSTEM","Worker started",{bind:r,host:n,port:e,pid:process.pid}),ka()&&_.info("SYSTEM","WSL2 detected \u2014 Console bound to 0.0.0.0 for Windows host access",{url:`http://localhost:${e}`}),this.initializeBackground().catch(s=>{_.error("SYSTEM","Background initialization failed",{},s)})}async initializeBackground(){try{await oh(),await qu(),await Uu();let{ModeManager:e}=await Promise.resolve().then(()=>(Hn(),f6));e.getInstance().loadMode(),_.info("SYSTEM","Mode loaded: Code Development"),await this.dbManager.initialize();let r=nn(process.env.CLAUDE_PROJECT_ROOT||process.cwd()),n=Tm.default.basename(r);this.dbManager.getSessionStore().upsertProjectRoot(n,r);let{PendingMessageStore:s}=await Promise.resolve().then(()=>(Fi(),Ba)),i=new s(this.dbManager.getSessionStore().db,3),a=300*1e3,o=i.resetStuckMessages(a);o>0&&_.info("SYSTEM",`Recovered ${o} stuck messages from previous session`,{thresholdMinutes:5});let c=new jy,l=new Ay,u=new Oy(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getVectorSync(),c,l);this.searchRoutes=new Gy(u),this.server.registerRoutes(this.searchRoutes),_.info("WORKER","SearchManager initialized and search routes registered"),this.coreReady=!0,_.info("SYSTEM","Core services ready (hooks can proceed)");let p=[Tm.default.join(__dirname,"mcp-server.cjs"),Tm.default.join(__dirname,"..","servers","mcp-server.ts"),Tm.default.join(__dirname,"..","..","servers","mcp-server.ts")],d=p.find(x=>(0,sP.existsSync)(x))||p[0],m=d.endsWith(".ts"),f=new Go({command:m?"bun":"node",args:[d],env:process.env}),v=3e5,g=this.mcpClient.connect(f),h=new Promise((x,w)=>setTimeout(()=>w(new Error("MCP connection timeout after 5 minutes")),v));await Promise.race([g,h]),this.mcpReady=!0,_.success("WORKER","Connected to MCP server"),this.initializationCompleteFlag=!0,this.resolveInitialization(),_.info("SYSTEM","Background initialization complete"),this.processPendingQueues(50).then(x=>{x.sessionsStarted>0&&_.info("SYSTEM",`Auto-recovered ${x.sessionsStarted} sessions with pending work`,{totalPending:x.totalPendingSessions,started:x.sessionsStarted,sessionIds:x.startedSessionIds})}).catch(x=>{_.error("SYSTEM","Auto-recovery of pending queues failed",{},x)});let y=300*1e3,b=3600*1e3;this.cleanupInterval=setInterval(async()=>{try{let x=await this.sessionManager.cleanupStaleSessions(b);x>0&&_.info("SYSTEM",`Periodic cleanup: removed ${x} stale sessions`),await qu(),await Uu(),_.debug("SYSTEM","Periodic cleanup completed")}catch(x){_.error("SYSTEM","Periodic cleanup failed",{},x)}},y),_.info("SYSTEM","Started periodic cleanup (every 5 minutes)")}catch(e){throw _.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return this.sdkAgent}startSessionProcessor(e,r){if(!e)return;e.abortController.signal.aborted&&(e.abortController=new AbortController,_.debug("SYSTEM","Reset AbortController for session restart",{sessionId:e.sessionDbId}));let n=e.sessionDbId,s=this.getActiveAgent(),i=s.constructor.name;_.info("SYSTEM",`Starting generator (${r}) using ${i}`,{sessionId:n}),e.generatorPromise=s.startSession(e,this).catch(a=>{_.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:i},a)}).finally(()=>{e.generatorPromise=null,this.broadcastProcessingStatus()})}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(Fi(),Ba)),n=new r(this.dbManager.getSessionStore().db,3),s=this.dbManager.getSessionStore(),i=1800*1e3,a=Date.now()-i;try{let l=s.db.prepare(` SELECT s.id FROM sdk_sessions s WHERE s.status = 'active' AND s.started_at_epoch < ? @@ -1970,7 +1970,7 @@ ${s}`;try{let a=(0,qe.execSync)(`echo ${JSON.stringify(i)} | claude -p --model c SET status = 'failed', failed_at_epoch = ? WHERE status = 'pending' AND session_db_id IN (${p}) - `).run(Date.now(),...u);h.changes>0&&_.info("SYSTEM",`Marked ${h.changes} pending messages from stale sessions as failed`)}}catch(l){_.error("SYSTEM","Failed to clean up stale sessions",{},l)}let o=n.getSessionsWithPendingMessages(),c={totalPendingSessions:o.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(o.length===0)return c;_.info("SYSTEM",`Processing up to ${e} of ${o.length} pending session queues`);for(let l of o){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(l)?.generatorPromise){c.sessionsSkipped++;continue}let p=this.sessionManager.initializeSession(l);_.info("SYSTEM",`Starting processor for session ${l}`,{project:p.project,pendingCount:n.getPendingCount(l)}),this.startSessionProcessor(p,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(l),await new Promise(d=>setTimeout(d,100))}catch(u){_.error("SYSTEM",`Failed to process session ${l}`,{},u),c.sessionsSkipped++}}return c}async shutdown(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null,_.info("SYSTEM","Stopped periodic orphan cleanup")),B1(),await XD({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();_.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function AEe(){let t=process.argv[2],e=un();function r(n,s){let i=pG(n,s);console.log(JSON.stringify(i)),process.exit(0)}switch(t){case"start":{dG()||(_.error("SYSTEM","License verification failed"),r("error","UNLICENSED: Using Pilot Shell without a valid license is not permitted. Subscribe at https://pilot-shell.com then run: pilot activate "));let n=await Tw(e,__filename);n.ready?(_.info("SYSTEM","Worker started successfully"),r("ready")):(_.error("SYSTEM",n.error??"Worker failed to start"),r("error",n.error))}case"stop":await Gu(e),await Zu(e,Ea(15e3))||_.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ps(),_.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{_.info("SYSTEM","Restarting worker"),await Gu(e),await Zu(e,Ea(15e3))||(_.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(0)),ps();let s=Hu(__filename,e);s===void 0&&(_.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),Fu({pid:s,port:e,startedAt:new Date().toISOString()}),await Wu(e,Ea(3e4))||(ps(),_.error("SYSTEM","Worker failed to restart"),process.exit(0)),_.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let{runCLI:n}=await Promise.resolve().then(()=>(Z1(),W1));await n(process.argv.slice(2)),process.exit(0)}case"hook":{let n=process.argv[3],s=process.argv[4];(!n||!s)&&(console.error("Usage: pilot-memory hook "),console.error("Platforms: claude-code, raw"),console.error("Events: context, session-init, observation, summarize, user-message"),process.exit(1));try{await Tw(e,__filename);let{hookCommand:i}=await Promise.resolve().then(()=>(cG(),oG));await i(n,s)}catch(i){_.debug("HOOK",`Hook wrapper error (fail-open) [${s}]: ${i instanceof Error?i.message:String(i)}`),console.log(JSON.stringify({continue:!0,suppressOutput:!0})),process.exit(0)}break}case"search":case"export":case"import":case"cleanup":case"backup":case"doctor":case"retention":case"vacuum":{let{runCLI:n}=await Promise.resolve().then(()=>(Z1(),W1));await n(process.argv.slice(2)),process.exit(0)}default:await Wu(e,500)&&(_.info("SYSTEM","Another worker already healthy on port, exiting duplicate",{port:e}),process.exit(0)),process.on("unhandledRejection",(s,i)=>{_.failure("SYSTEM","Unhandled rejection in daemon mode",{promise:String(i)},s instanceof Error?s:new Error(String(s)))}),process.on("uncaughtException",s=>{_.failure("SYSTEM","Uncaught exception in daemon mode",{},s)}),new Fb().start().catch(s=>{_.failure("SYSTEM","Worker failed to start",{},s),ps(),process.exit(0)})}}var NEe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:zEe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");NEe&&AEe().catch(t=>{_.debug("SYSTEM",`main() unhandled error: ${t instanceof Error?t.message:String(t)}`),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,verifyLicense}); + `).run(Date.now(),...u);h.changes>0&&_.info("SYSTEM",`Marked ${h.changes} pending messages from stale sessions as failed`)}}catch(l){_.error("SYSTEM","Failed to clean up stale sessions",{},l)}let o=n.getSessionsWithPendingMessages(),c={totalPendingSessions:o.length,sessionsStarted:0,sessionsSkipped:0,startedSessionIds:[]};if(o.length===0)return c;_.info("SYSTEM",`Processing up to ${e} of ${o.length} pending session queues`);for(let l of o){if(c.sessionsStarted>=e)break;try{if(this.sessionManager.getSession(l)?.generatorPromise){c.sessionsSkipped++;continue}let p=this.sessionManager.initializeSession(l);_.info("SYSTEM",`Starting processor for session ${l}`,{project:p.project,pendingCount:n.getPendingCount(l)}),this.startSessionProcessor(p,"startup-recovery"),c.sessionsStarted++,c.startedSessionIds.push(l),await new Promise(d=>setTimeout(d,100))}catch(u){_.error("SYSTEM",`Failed to process session ${l}`,{},u),c.sessionsSkipped++}}return c}async shutdown(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null,_.info("SYSTEM","Stopped periodic orphan cleanup")),B1(),await XD({server:this.server.getHttpServer(),sessionManager:this.sessionManager,mcpClient:this.mcpClient,dbManager:this.dbManager})}broadcastProcessingStatus(){let e=this.sessionManager.isAnySessionProcessing(),r=this.sessionManager.getTotalActiveWork(),n=this.sessionManager.getActiveSessionCount();_.info("WORKER","Broadcasting processing status",{isProcessing:e,queueDepth:r,activeSessions:n}),this.sseBroadcaster.broadcast({type:"processing_status",isProcessing:e,queueDepth:r})}};async function AEe(){let t=process.argv[2],e=un();function r(n,s){let i=pG(n,s);console.log(JSON.stringify(i)),process.exit(0)}switch(t){case"start":{dG()||(_.error("SYSTEM","License verification failed"),r("error","UNLICENSED: Using Pilot Shell without a valid license is not permitted. Subscribe at https://pilot-shell.com then run: pilot activate "));let n=await Tw(e,__filename);n.ready?(_.info("SYSTEM","Worker started successfully"),r("ready")):(_.error("SYSTEM",n.error??"Worker failed to start"),r("error",n.error))}case"stop":await Gu(e),await Zu(e,Ta(15e3))||_.warn("SYSTEM","Port did not free up after shutdown",{port:e}),ps(),_.info("SYSTEM","Worker stopped successfully"),process.exit(0);case"restart":{_.info("SYSTEM","Restarting worker"),await Gu(e),await Zu(e,Ta(15e3))||(_.error("SYSTEM","Port did not free up after shutdown, aborting restart",{port:e}),process.exit(0)),ps();let s=Hu(__filename,e);s===void 0&&(_.error("SYSTEM","Failed to spawn worker daemon during restart"),process.exit(0)),Fu({pid:s,port:e,startedAt:new Date().toISOString()}),await Wu(e,Ta(3e4))||(ps(),_.error("SYSTEM","Worker failed to restart"),process.exit(0)),_.info("SYSTEM","Worker restarted successfully"),process.exit(0)}case"status":{let{runCLI:n}=await Promise.resolve().then(()=>(Z1(),W1));await n(process.argv.slice(2)),process.exit(0)}case"hook":{let n=process.argv[3],s=process.argv[4];(!n||!s)&&(console.error("Usage: pilot-memory hook "),console.error("Platforms: claude-code, raw"),console.error("Events: context, session-init, observation, summarize, user-message"),process.exit(1));try{await Tw(e,__filename);let{hookCommand:i}=await Promise.resolve().then(()=>(cG(),oG));await i(n,s)}catch(i){_.debug("HOOK",`Hook wrapper error (fail-open) [${s}]: ${i instanceof Error?i.message:String(i)}`),console.log(JSON.stringify({continue:!0,suppressOutput:!0})),process.exit(0)}break}case"search":case"export":case"import":case"cleanup":case"backup":case"doctor":case"retention":case"vacuum":{let{runCLI:n}=await Promise.resolve().then(()=>(Z1(),W1));await n(process.argv.slice(2)),process.exit(0)}default:await Wu(e,500)&&(_.info("SYSTEM","Another worker already healthy on port, exiting duplicate",{port:e}),process.exit(0)),process.on("unhandledRejection",(s,i)=>{_.failure("SYSTEM","Unhandled rejection in daemon mode",{promise:String(i)},s instanceof Error?s:new Error(String(s)))}),process.on("uncaughtException",s=>{_.failure("SYSTEM","Uncaught exception in daemon mode",{},s)}),new Fb().start().catch(s=>{_.failure("SYSTEM","Worker failed to start",{},s),ps(),process.exit(0)})}}var NEe=typeof require<"u"&&typeof module<"u"?require.main===module||!module.parent:zEe.url===`file://${process.argv[1]}`||process.argv[1]?.endsWith("worker-service");NEe&&AEe().catch(t=>{_.debug("SYSTEM",`main() unhandled error: ${t instanceof Error?t.message:String(t)}`),process.exit(0)});0&&(module.exports={WorkerService,buildStatusOutput,verifyLicense}); /*! Bundled license information: depd/index.js: diff --git a/pilot/skills/benchmark/tests/test_isolation.py b/pilot/skills/benchmark/tests/test_isolation.py index 40c0c4fab..6708b4fd8 100644 --- a/pilot/skills/benchmark/tests/test_isolation.py +++ b/pilot/skills/benchmark/tests/test_isolation.py @@ -8,7 +8,6 @@ from unittest.mock import patch import pytest -from scripts import isolation from scripts.isolation import ( HIDDEN_RESTORE_QUEUE, HIDDEN_SUFFIX, @@ -22,6 +21,7 @@ ) from scripts.utils import TargetConfig +from scripts import isolation # ---------------------------------------------------------------------------- # detect_global_contamination diff --git a/pilot/skills/fix/orchestrator.md b/pilot/skills/fix/orchestrator.md index f82751636..6fb4fb971 100644 --- a/pilot/skills/fix/orchestrator.md +++ b/pilot/skills/fix/orchestrator.md @@ -56,12 +56,17 @@ Bugfix workflow with TDD. Investigate the bug, write the failing test, fix at th You MUST stop and tell the user to re-invoke with `/spec` when ANY of these is true after Step 1 investigation: -- Bug spans **3+ files** or **2+ components** (e.g. frontend + backend, multiple services). -- Root cause is **architectural** (the pattern itself is wrong, not a single line). -- Fix requires **defense-in-depth at multiple layers** (entry validation + business logic + storage). -- **Confidence is Low** — you can't pin root cause to `file:line`. -- The fix has **non-trivial UI implications** that warrant a recorded Verification Scenario. +- **Confidence is Low** — you can't pin root cause to `file:line` after Step 1. - Two quick-lane fix attempts have already failed. +- The fix has **non-trivial UI implications** that warrant a recorded Verification Scenario (multi-step user flow, regression-prone interaction, visual states the user would want recorded). +- Fix introduces **new abstractions** — a new module, a new public API, a new data structure, a new workflow phase, or a new file that wasn't previously part of the surface area. +- Fix requires **architectural redesign** — the existing pattern itself must change (e.g., swapping the storage layer, restructuring a state machine, replacing a contract). Adding a missing guard or a missing field along an existing pattern is **not** a redesign. +- Net new production code is likely to exceed **~150 lines** (rough ceiling — if you can't size it yet, sketch the diff first). +- The change crosses **independent components with unrelated logic** — e.g., a frontend bug AND an unrelated backend bug bundled together. Coordinated changes that apply the **same conceptual fix** at multiple guard sites do NOT trigger this — that's a single logical bug, multiple sites. Example of allowed: adding the same iteration cap to both a feature-verify orchestrator and a stop-guard hook because they are two layers of the same missing-budget defect. + +**Defense-in-depth nuance.** When the bug *is* "a guard is missing across N existing sites", fixing all N sites in one shot is the correct quick-lane move. That is not "defense-in-depth at multiple layers" in the bail-out sense — it's "one fix, applied consistently." Bail only when each layer needs **different** logic (entry validation + business rule + storage migration, each non-trivial). + +**Multi-file is fine** when files share the same pattern. The trigger is **abstraction count and logic divergence**, not file count. **How to bail out** — do all four: diff --git a/pilot/skills/fix/steps/01-investigate.md b/pilot/skills/fix/steps/01-investigate.md index ca8c4be3e..24436ba19 100644 --- a/pilot/skills/fix/steps/01-investigate.md +++ b/pilot/skills/fix/steps/01-investigate.md @@ -26,7 +26,7 @@ For local bugs (single file, single function): one or two targeted `Read`s on th For bugs that span 2 files in the same component (e.g. service.ts + service.test.ts): targeted `Read`s. Still no full call-graph traversal. -**Bail-out check at end of 1.3:** if your trace touched 3+ files, or you found yourself running `codegraph_callers`, or you can't pin file:line — stop and tell the user to use `/spec` (see orchestrator's bail-out triggers). Don't switch lanes silently. +**Bail-out check at end of 1.3:** if you can't pin file:line, or each touched file would need **different** logic (not the same pattern repeated) — stop and tell the user to use `/spec` (see orchestrator's bail-out triggers for the full list). Multi-file traces are fine when each site needs the *same* fix; that's one logical bug, multiple guard sites. Don't switch lanes silently. ### 1.4 Instrument when needed (UI / async / race / timing bugs) diff --git a/pilot/skills/fix/steps/03-fix.md b/pilot/skills/fix/steps/03-fix.md index 45e204754..88859b682 100644 --- a/pilot/skills/fix/steps/03-fix.md +++ b/pilot/skills/fix/steps/03-fix.md @@ -2,7 +2,9 @@ ### 3.1 Make the minimal change -Edit only the file at the root cause. One change, one variable, one logical fix. No "while I'm here" cleanups, no bundled refactoring, no formatting passes. **Lineage rule:** every changed line traces directly to the bug. +Edit only the file(s) at the root cause. One logical fix. No "while I'm here" cleanups, no bundled refactoring, no formatting passes. **Lineage rule:** every changed line traces directly to the bug. + +**Multi-site is allowed when each site gets the same conceptual fix** (e.g., adding the same iteration cap to two parallel guard layers because the missing-budget defect lives at both). The constraint is *one logical change, repeated where the same pattern lives* — not "while I'm here, also tweak X." ### 3.2 Forbidden patterns — fix at source, not symptom @@ -14,7 +16,7 @@ If the buggy data flows from upstream, fix upstream. Red flags in the diff: - Early return that hides wrong state from the caller. - Renamed/suppressed log lines that previously surfaced the bug. -**Quick-lane fixes are single-site.** If you find yourself adding validation at 2+ layers (entry + business + storage, etc.) to make the bug "structurally impossible," you're in `/spec` territory — bail out. Defense-in-depth is a feature of `/spec`, not `/fix`. The one exception: a single boundary check that prevents the same root cause from re-entering through one other obvious path — document it in the Step 6 summary. +**Quick-lane fixes are single-pattern.** If each candidate fix site needs **different** logic (entry validation + a business rule + a storage migration, each non-trivial), you're in `/spec` territory — bail out. Adding the *same* guard at multiple parallel sites is fine; that's still one logical change. The trigger is *logic divergence*, not site count. ### 3.3 Run the reproducing test — it MUST pass @@ -46,7 +48,7 @@ git diff | grep -E "^\+.*\b(try:|except|catch \(|return None|return \[\]|return - **Root-cause file IS in the diff.** If not, the fix is at a symptom — return to 3.1. - **No unplanned files appear.** If they do, revert them now. -- **Diff is small** — usually < 20 lines. If it ballooned, the bug exceeds the quick lane — bail out. +- **Diff is small** — usually < 20 lines for single-site fixes, < ~150 net new production lines for multi-site pattern fixes. If it ballooned past that ceiling, the bug exceeds the quick lane — bail out. - **Every grep match must be justified or reverted.** Look for symptom-patching, swallowed returns, or leftover `print` / `console.log` / `SPEC-DEBUG:` markers. ### 3.6 If your first fix doesn't work — one re-attempt, then bail out diff --git a/pilot/skills/fix/steps/06-finalise.md b/pilot/skills/fix/steps/06-finalise.md index b8120ba5b..c269d1137 100644 --- a/pilot/skills/fix/steps/06-finalise.md +++ b/pilot/skills/fix/steps/06-finalise.md @@ -56,46 +56,88 @@ Run **only** when the user explicitly picked "Run Codex adversarial review" in 6 [ -z "$CODEX_COMPANION" ] && echo "MISSING" ``` -2. **Launch in background with a 10-minute timeout.** ⛔ `timeout=600000` is mandatory — Bash defaults to 2 min, which SIGKILLs Codex mid-investigation. +2. **Build the review prompt file** by rendering the **template at `${CLAUDE_PLUGIN_ROOT}/agents/changes-review-codex.md`** (the same template `spec-verify` uses — single source of truth for code-review semantics). + + For `/fix`, the "plan" is the conversation, not a file. Inline a one-page plan into a temp file so the template's `{{PLAN_PATH}}` substitution has something to point at: + + ```bash + PROMPT_TEMPLATE="${CLAUDE_PLUGIN_ROOT}/agents/changes-review-codex.md" + PROMPT_FILE="/tmp/codex-fix-review-${PILOT_SESSION_ID:-default}-$$.md" + FIX_PLAN_FILE="/tmp/codex-fix-plan-${PILOT_SESSION_ID:-default}-$$.md" + cat > "$FIX_PLAN_FILE" <<'PLAN_EOF' + # /fix Bugfix Summary + Bug: + Root cause: : + Fix: + Reproducing test: :: (added in Step 3.3) + PLAN_EOF + + PLAN_GOAL="Bugfix for: . Root cause at :. The reproducing test must reliably fail before the fix and pass after." + BASE_REF="$(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null | sed 's|^[^/]*/||' || echo main)" + CHANGED_FILES=$(git status --short --untracked-files=all | awk '{print "- " $2}') + + PLAN_PATH="$FIX_PLAN_FILE" PLAN_GOAL="$PLAN_GOAL" BASE_REF="$BASE_REF" CHANGED_FILES="$CHANGED_FILES" \ + PROMPT_TEMPLATE="$PROMPT_TEMPLATE" PROMPT_FILE="$PROMPT_FILE" \ + uv run --no-project python -c ' + import os, pathlib + text = pathlib.Path(os.environ["PROMPT_TEMPLATE"]).read_text() + for key in ("PLAN_PATH", "PLAN_GOAL", "BASE_REF", "CHANGED_FILES"): + text = text.replace("{{" + key + "}}", os.environ[key]) + pathlib.Path(os.environ["PROMPT_FILE"]).write_text(text) + ' + ``` + +3. **Launch the task in background.** Use `task --background --prompt-file` (the companion's own background mode is supported for `task` — unlike `review`/`adversarial-review`). ``` Bash( - command="cd $PROJECT_ROOT && node $CODEX_COMPANION adversarial-review --scope working-tree \"Challenge this bugfix. Bug: . Root cause: :. Fix: . Focus on: missed root-cause paths, fix-at-symptom mistakes, untested edge cases, regressions in adjacent code paths, and whether the test reliably encodes the bug.\"", - run_in_background=true, - timeout=600000 + command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", + run_in_background=false, + timeout=60000 ) ``` - ⛔ **Wait for the completion notification.** Do NOT read the bash output file before the `` with `completed` arrives — partial output reads cause "no findings" false negatives. The notification is the only valid signal. + Capture the job ID from stdout (`task-…` token). Then poll for completion: + + ```bash + JOB_ID="" + for i in $(seq 1 150); do + STATE=$(node "$CODEX_COMPANION" status "$JOB_ID" --json 2>/dev/null \ + | uv run --no-project python -c "import json,sys; print((json.load(sys.stdin).get('job') or {}).get('status') or '')") + case "$STATE" in + completed) echo "READY"; break ;; + failed) echo "FAILED"; break ;; + esac + sleep 4 + done + ``` + + Run this as `Bash(run_in_background=true, timeout=600000)`. ⛔ **Wait for the completion notification** — do NOT read the result file before the `` with `completed` arrives. -3. **On completion notification, retrieve findings from the persistent job record** (not bash stdout — stdout can be truncated): +4. **On completion notification, retrieve findings via the companion's public interface:** ```bash - STATUS_JSON=$(node "$CODEX_COMPANION" status --json) - JOB_ID=$(printf '%s' "$STATUS_JSON" | python3 -c " - import json,sys - d=json.load(sys.stdin) - lf=d.get('latestFinished') or {} - if lf.get('kind')=='adversarial-review' and lf.get('status')=='completed': - print(lf['id']); sys.exit(0) - sys.exit(1) - ") - [ -n "$JOB_ID" ] && node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-fix-result-$$.json + node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-fix-result-$$.json ``` - Read the result via `ctx_execute_file` and extract `storedJob.rendered` (markdown report) and `storedJob.result.parsed` (`{verdict, summary, findings, next_steps}`). Verify `storedJob.status === "completed"` AND `storedJob.rendered` starts with `"# Codex Adversarial Review"` before parsing. + Read `/tmp/codex-fix-result-$$.json` via `ctx_execute_file`. Verify `storedJob.status === "completed"`, then parse `storedJob.result.rawOutput` as JSON (`{verdict, summary, findings, next_steps}`). If JSON parse fails, fall back to `storedJob.rendered` and surface as a suggestion-level finding. -4. **Act on findings — same severity → action map as `/spec-verify`:** +5. **Act on findings — same severity → action map as `/spec-verify`:** | Severity | Action | |----------|--------| - | `[critical]` / `[high]` | **must_fix** — fix immediately, re-run the targeted test from Step 3.4 + the full suite from Step 5.2, then re-ask 6.2 | - | `[medium]` / `[low]` | **should_fix** — fix if it's a single-site change consistent with the original bug's lineage; if it would expand scope (3+ files, architectural), summarise to the user and let them decide whether to fix here or open a `/spec` follow-up | - | `[info]` | **suggestion** — mention in one line; do not auto-apply | + | `critical` / `high` | **must_fix** — fix immediately, re-run the targeted test from Step 3.4 + the full suite from Step 5.2, then re-ask 6.2 | + | `medium` / `low` | **should_fix** — fix if it's a single-site change consistent with the original bug's lineage; if it would expand scope (3+ files, architectural), summarise to the user and let them decide whether to fix here or open a `/spec` follow-up | + | `info` | **suggestion** — mention in one line; do not auto-apply | If verdict is `approve` and there are no must/should findings: report "Codex: approve — no blocking findings" and re-ask 6.2. -5. **Launch failure handling.** If `$JOB_ID` is empty after the completion notification (companion exited non-zero, no review record): surface the captured stderr to the user, do **not** silently mark the bugfix done. Return to 6.2 with the Codex option removed. +6. **Cleanup.** Delete the temp prompt and bugfix-summary files: + ```bash + rm -f "$PROMPT_FILE" "$FIX_PLAN_FILE" + ``` + +7. **Launch failure handling.** If `$JOB_ID` is empty after the completion notification, or `storedJob.status` is `"failed"`: surface the captured stderr to the user, do **not** silently mark the bugfix done. Return to 6.2 with the Codex option removed. ### 6.3 Console notification (always, when binary present) diff --git a/pilot/skills/spec-plan/steps/11-plan-verification.md b/pilot/skills/spec-plan/steps/11-plan-verification.md index 92023f56d..0d9393563 100644 --- a/pilot/skills/spec-plan/steps/11-plan-verification.md +++ b/pilot/skills/spec-plan/steps/11-plan-verification.md @@ -71,31 +71,61 @@ Launch Codex review NOW — it runs in parallel with the Claude reviewer above. ```bash SESS_ID="${PILOT_SESSION_ID:-default}" -CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-ran-.flag" +CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-spec-review-ran-.flag" if [ -f "$CODEX_FLAG" ]; then echo "Codex already reviewed this plan in this session — skipping (codex-once)." # Skip the launch and the Codex collection sub-step. Continue with Claude reviewer results only. fi ``` -1. Detect companion path, project root, and base branch: +**⛔ DO NOT use `adversarial-review --base` or `adversarial-review --scope branch` for plans.** Those subcommands bundle a git diff and feed it to Codex as the review target. Plan files in `pilot-shell` are gitignored (see `.gitignore` line ~271 — `docs/plans` is excluded), so the bundled diff is empty, and Codex returns a meta-finding ("no implementation diff was provided") with zero substantive findings on the actual plan content. Use the `task` subcommand with `--prompt-file` instead — it lets Codex Read the plan file directly via its own tools, with no diff dependency. (The `adversarial-review` path remains correct for `spec-verify`, where there is real working-tree code to scan.) + +1. Detect companion path and project root: ```bash CODEX_COMPANION=$(ls ~/.claude/plugins/cache/openai-codex/codex/*/scripts/codex-companion.mjs 2>/dev/null | sort -V | tail -1) PROJECT_ROOT="${CLAUDE_PROJECT_ROOT:-$(pwd)}" -# Use worktree base branch if in worktree, otherwise detect repo default branch -BASE_BRANCH=$(~/.pilot/bin/pilot worktree status --json 2>/dev/null | grep -o '"base_branch":"[^"]*"' | cut -d'"' -f4) -[ -z "$BASE_BRANCH" ] && BASE_BRANCH=$(cd "$PROJECT_ROOT" && git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||' || echo "main") ``` -2. Launch adversarial review in background. **⛔ Use `Bash(run_in_background=true, timeout=600000)`** — the companion's `--background` flag is a no-op for reviews (only works for `task`), so we use Claude Code's background bash instead. **The `timeout=600000` (10 min, the Bash tool maximum) is MANDATORY** — Bash defaults to 120000 ms (2 min), which SIGKILLs the codex process mid-investigation and produces zero findings. Adversarial reviews on plans typically take 1–6 minutes; the 10-minute ceiling is the safety margin. The companion writes a persistent job record at `$CLAUDE_PLUGIN_DATA/state/-/jobs/review-.json` (`status`, `rendered`, `result.parsed`) — that file, not the bash stdout, is the authoritative findings source after completion. +2. Build the review prompt file by rendering the **template at `${CLAUDE_PLUGIN_ROOT}/agents/spec-review-codex.md`**. The template is the single source of truth for plan-review semantics — do NOT re-state the prompt inline in this skill. Substitute three placeholders: + - `{{PLAN_PATH}}` — absolute path to the plan file + - `{{PLAN_GOAL}}` — the 1–2 sentence Goal sentence from the plan's `## Summary` + - `{{CONTEXT_FILES}}` — newline-separated absolute paths to source/reference files the plan ports from or extends (use the files referenced in `## Context for Implementer`) + +```bash +PROMPT_TEMPLATE="${CLAUDE_PLUGIN_ROOT}/agents/spec-review-codex.md" +PROMPT_FILE="/tmp/codex-spec-review-${PILOT_SESSION_ID:-default}-.md" + +# Set these before rendering: +PLAN_PATH="/absolute/path/to/docs/plans/YYYY-MM-DD-.md" +PLAN_GOAL="" +# CONTEXT_FILES is a newline-separated list — use printf to build it: +CONTEXT_FILES=$(printf -- '- %s\n' \ + /absolute/path/to/source-or-pattern-file-1 \ + /absolute/path/to/source-or-pattern-file-2) + +PLAN_PATH="$PLAN_PATH" PLAN_GOAL="$PLAN_GOAL" CONTEXT_FILES="$CONTEXT_FILES" \ +PROMPT_TEMPLATE="$PROMPT_TEMPLATE" PROMPT_FILE="$PROMPT_FILE" \ +uv run --no-project python -c ' +import os, pathlib +text = pathlib.Path(os.environ["PROMPT_TEMPLATE"]).read_text() +for key in ("PLAN_PATH", "PLAN_GOAL", "CONTEXT_FILES"): + text = text.replace("{{" + key + "}}", os.environ[key]) +pathlib.Path(os.environ["PROMPT_FILE"]).write_text(text) +' +``` + +3. Launch the task in background. **⛔ For `task`, the companion's `--background` flag IS supported (unlike `review`/`adversarial-review` where only Claude Code's `Bash(run_in_background=true)` detaches).** Use the companion's own background mode here — the launch command returns the job ID immediately on stdout. Capture the job ID for collection. ``` Bash( - command="cd $PROJECT_ROOT && node $CODEX_COMPANION adversarial-review --base $BASE_BRANCH \"Challenge this plan: . Plan file: . Focus on: wrong assumptions, missing edge cases, scope gaps, and design choices that could fail under real-world conditions.\"", - run_in_background=true, - timeout=600000 + command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", + run_in_background=false, + timeout=60000 ) ``` + + The stdout looks like: `Codex Task started in the background as task-. Check /codex:status task- for progress.` Extract the `task-…` token and store as `JOB_ID`. + **Do NOT wait** — proceed to collect the Claude reviewer results first. #### Collect Review Results @@ -129,53 +159,53 @@ Then Read the file once. If not READY after 5 min, re-launch synchronously. The completion notification arrives automatically as a mid-turn tool-result-style event; you do not need to poll for it. -1. **When (and ONLY when) the completion notification arrives, retrieve the findings from the persistent job state — NOT from the bash stdout file.** The companion writes the rendered review to a job record that survives bash truncation, mid-flight kills, and shell-pipe weirdness. Use the companion's own `status` + `result` subcommands (the supported public interface in `lib/render.mjs:211-283` and `state.mjs:resolveJobsDir`): +**Wait for completion via bash polling**, NOT by reading the state file directly while waiting. The polling bash returns when the job's `status` flips to `completed`/`failed`, which triggers the completion notification. + +```bash +JOB_ID="" +for i in $(seq 1 150); do + STATE=$(node "$CODEX_COMPANION" status "$JOB_ID" --json 2>/dev/null \ + | uv run --no-project python -c "import json,sys; print((json.load(sys.stdin).get('job') or {}).get('status') or '')") + case "$STATE" in + completed) echo "READY"; break ;; + failed) echo "FAILED"; break ;; + esac + sleep 4 +done +``` + +Run this as `Bash(run_in_background=true, timeout=600000)`. Plan reviews typically take 1–4 minutes (no diff context to load); the 10-minute ceiling is a safety margin. + +1. **When (and ONLY when) the completion notification arrives**, fetch the result via the companion's public interface: ```bash - STATUS_JSON=$(node "$CODEX_COMPANION" status --json) - JOB_ID=$(printf '%s' "$STATUS_JSON" | python3 -c " - import json,sys - d=json.load(sys.stdin) - lf=d.get('latestFinished') or {} - if lf.get('kind')=='adversarial-review' and lf.get('status')=='completed': - print(lf['id']); sys.exit(0) - for j in (d.get('running') or []): - if j.get('kind')=='adversarial-review': - print('STILL_RUNNING:'+j['id']); sys.exit(0) - sys.exit(1) - ") + node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-task-result-$$.json ``` - - If `$JOB_ID` is empty → no adversarial-review job ran. Re-launch synchronously (foreground `Bash(timeout=600000)`). - - If `$JOB_ID` starts with `STILL_RUNNING:` → the bash was killed before the review completed (the most common failure mode pre-fix). Re-launch synchronously with foreground bash, `timeout=600000`. Do NOT trust any partial output. - - Else, fetch the rendered findings: + Read `/tmp/codex-task-result-$$.json` via `ctx_execute_file` (or Read for small payloads). The relevant fields: + - `storedJob.status` — must be `"completed"`. If not, treat as a re-launch trigger; do not silently proceed. + - `storedJob.result.rawOutput` — a string containing Codex's response. With our prompt, this is JSON matching the schema above. + - `storedJob.rendered` — same content rendered for display; useful as a fallback if `rawOutput` is malformed. - ```bash - node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-result-$$.json - ``` +2. **Parse `rawOutput` as JSON.** Extract `verdict`, `summary`, `findings`, `next_steps`. If `JSON.parse` fails (Codex deviated from the schema), fall back to `storedJob.rendered` — surface the rendered text to the user as a suggestion-level finding and continue. Do NOT re-launch on a parse failure; one Codex run per `/spec` is the rule. - Then read `/tmp/codex-result-$$.json` via `ctx_execute_file` and extract `storedJob.rendered` (the full markdown report) and `storedJob.result.parsed` (structured `{verdict, summary, findings, next_steps}`). **Verify before parsing**: `storedJob.status === "completed"` AND `storedJob.rendered` starts with `"# Codex Adversarial Review"`. If either check fails, treat as a re-launch trigger — do NOT silently proceed. + Severity → action map for the parsed findings: + - `critical` / `high` → must_fix + - `medium` / `low` → should_fix + - `info` → suggestion -2. **Parse the rendered findings.** Format (from `lib/render.mjs:211-283`): - ``` - # Codex Adversarial Review - Target: - Verdict: - - Findings: - - [] (<file>:<lines>) - <body> - Recommendation: <recommendation> - Next steps: - - <step> - ``` - Severity → action map: `[critical]` / `[high]` → must_fix; `[medium]` / `[low]` → should_fix; `[info]` → suggestion. Fix every must_fix and should_fix inline. + Fix every must_fix and should_fix inline before requesting plan approval. Codex findings frequently surface architectural gaps (chained-command bypasses, fail-open paths, encoding edge cases) that the Claude reviewer misses — treat them with at least equal weight. -3. **If `latestFinished` is absent and the bash exit code was non-zero in the notification** (genuine launch failure, not a timeout): re-launch synchronously and wait. If the second attempt also fails, escalate to the user with the captured error — do not silently proceed. +3. **If `storedJob.status` is `"failed"`** (genuine launch failure, not a timeout): re-launch synchronously and wait. If the second attempt also fails, escalate to the user with the captured error — do not silently proceed. 4. **Mark Codex as ran** so re-iterations of this plan within the same session do not re-run it: ```bash mkdir -p "$(dirname "$CODEX_FLAG")" && touch "$CODEX_FLAG" ``` +5. **Cleanup:** delete the temp prompt file: +```bash +rm -f "$PROMPT_FILE" +``` + **If Codex was NOT launched**, proceed after all Claude reviewer must_fix/should_fix resolved. diff --git a/pilot/skills/spec-verify/steps/04-launch-review.md b/pilot/skills/spec-verify/steps/04-launch-review.md index 32e625e23..d0ab69c88 100644 --- a/pilot/skills/spec-verify/steps/04-launch-review.md +++ b/pilot/skills/spec-verify/steps/04-launch-review.md @@ -59,7 +59,7 @@ Launch Codex review NOW — it runs in parallel with the Claude reviewer above. ```bash SESS_ID="${PILOT_SESSION_ID:-default}" -CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-ran-<plan-slug>.flag" +CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-changes-review-ran-<plan-slug>.flag" if [ -f "$CODEX_FLAG" ]; then echo "Codex already reviewed this plan in this session — skipping (codex-once)." # Skip the launch below and the Codex collection sub-step in Step 7. @@ -72,13 +72,46 @@ CODEX_COMPANION=$(ls ~/.claude/plugins/cache/openai-codex/codex/*/scripts/codex- PROJECT_ROOT="${CLAUDE_PROJECT_ROOT:-$(pwd)}" ``` -2. Launch adversarial review in background using `--scope working-tree` (reviews all uncommitted changes regardless of staging state — works in both worktree and non-worktree mode). **⛔ Use `Bash(run_in_background=true, timeout=600000)`** — the companion's `--background` flag is a no-op for reviews (only works for `task`), so we use Claude Code's background bash instead. **The `timeout=600000` (10 min, the Bash tool maximum) is MANDATORY** — Bash defaults to 120000 ms (2 min), which SIGKILLs the codex process mid-investigation and produces zero findings. Adversarial reviews on diffs typically take 1–6 minutes. The companion writes a persistent job record at `$CLAUDE_PLUGIN_DATA/state/<slug>-<hash>/jobs/review-<id>.json` (`status`, `rendered`, `result.parsed`) — that file, retrieved via `node $CODEX_COMPANION result <job-id> --json` in Step 7, is the authoritative findings source. +2. Build the review prompt file by rendering the **template at `${CLAUDE_PLUGIN_ROOT}/agents/changes-review-codex.md`**. The template is the single source of truth for code-review semantics — do NOT re-state the prompt inline in this skill. Substitute four placeholders: + - `{{PLAN_PATH}}` — absolute path to the plan file + - `{{PLAN_GOAL}}` — the 1–2 sentence Goal sentence from the plan's `## Summary` + - `{{BASE_REF}}` — `main` (or the worktree base branch detected via `pilot worktree status --json`) + - `{{CHANGED_FILES}}` — newline-separated paths to the files the plan said it would touch (extracted from each task's `Files:` block) + +```bash +PROMPT_TEMPLATE="${CLAUDE_PLUGIN_ROOT}/agents/changes-review-codex.md" +PROMPT_FILE="/tmp/codex-changes-review-${PILOT_SESSION_ID:-default}-<plan-slug>.md" + +PLAN_PATH="/absolute/path/to/docs/plans/YYYY-MM-DD-<slug>.md" +PLAN_GOAL="<one or two sentences from the plan Summary>" +BASE_REF="main" +CHANGED_FILES=$(printf -- '- %s\n' \ + path/to/changed/file-1 \ + path/to/changed/file-2) + +PLAN_PATH="$PLAN_PATH" PLAN_GOAL="$PLAN_GOAL" BASE_REF="$BASE_REF" CHANGED_FILES="$CHANGED_FILES" \ +PROMPT_TEMPLATE="$PROMPT_TEMPLATE" PROMPT_FILE="$PROMPT_FILE" \ +uv run --no-project python -c ' +import os, pathlib +text = pathlib.Path(os.environ["PROMPT_TEMPLATE"]).read_text() +for key in ("PLAN_PATH", "PLAN_GOAL", "BASE_REF", "CHANGED_FILES"): + text = text.replace("{{" + key + "}}", os.environ[key]) +pathlib.Path(os.environ["PROMPT_FILE"]).write_text(text) +' +``` + +3. Launch the task in background. **⛔ For `task`, the companion's `--background` flag IS supported** (unlike `review`/`adversarial-review`). Use the companion's own background mode — the launch command returns the job ID immediately on stdout. Capture the job ID for collection in Step 7. ``` Bash( - command="cd $PROJECT_ROOT && node $CODEX_COMPANION adversarial-review --scope working-tree \"Challenge this implementation: <plan summary/goal>. Plan: <plan-path>. Focus on: wrong approach, missing edge cases, security gaps, untested paths, and design choices that could fail under load.\"", - run_in_background=true, - timeout=600000 + command="cd $PROJECT_ROOT && node $CODEX_COMPANION task --background --prompt-file \"$PROMPT_FILE\"", + run_in_background=false, + timeout=60000 ) ``` -**Do NOT wait** — proceed to Step 5 immediately. You'll be notified when the background bash completes. + + The stdout looks like: `Codex Task started in the background as task-<id>. Check /codex:status task-<id> for progress.` Extract the `task-…` token and store as `JOB_ID`. + +**Why `task` instead of `adversarial-review --scope working-tree`?** Two reasons: (1) consistency with `spec-plan`, where plan files are gitignored and only `task` works; (2) single source of truth — the Codex prompt lives in `pilot/agents/changes-review-codex.md` and is shared by all `/spec` and `/fix` Codex calls, instead of being embedded in skill steps. Codex still gets the diff — the template instructs it to run `git diff {{BASE_REF}}..HEAD -- {{CHANGED_FILES}}` itself via Bash. + +**Do NOT wait** — proceed to Step 5 immediately. You'll be notified when the polling bash (Step 7) completes. diff --git a/pilot/skills/spec-verify/steps/06-feature-parity.md b/pilot/skills/spec-verify/steps/06-feature-parity.md index 0ac94adac..29c297932 100644 --- a/pilot/skills/spec-verify/steps/06-feature-parity.md +++ b/pilot/skills/spec-verify/steps/06-feature-parity.md @@ -6,4 +6,4 @@ Skip unless the plan has a Feature Inventory section. 2. Verify each feature exists in new code 3. Run new code and verify same behavior -**If features are MISSING:** Add tasks with `[MISSING]` prefix, set `Status: PENDING`, increment `Iterations`, register status change, invoke `Skill(skill='spec-implement', args='<plan-path>')`. +**If features are MISSING:** Run the iteration-cap check from Step 19 first (read `Iterations:` from the plan header; if `>= 3` ask the user Continue / Pivot / Abandon before incrementing). On Continue: add tasks with `[MISSING]` prefix, set `Status: PENDING`, increment `Iterations`, register status change, invoke `Skill(skill='spec-implement', args='<plan-path>')`. diff --git a/pilot/skills/spec-verify/steps/07-collect-results.md b/pilot/skills/spec-verify/steps/07-collect-results.md index 08cdc3c6a..a9af0ecbe 100644 --- a/pilot/skills/spec-verify/steps/07-collect-results.md +++ b/pilot/skills/spec-verify/steps/07-collect-results.md @@ -35,57 +35,55 @@ For each fix: implement → run relevant tests → log "Fixed: [title]" **⛔ If the notification hasn't arrived yet:** STOP. Do NOT proceed to Phase B, do NOT say "still running, moving on", do NOT read the output file, do NOT conclude the review failed. Wait for the `<task-notification>` with `<status>completed</status>`. If you are tempted to check the file — that is the exact mistake this rule prevents. -1. **When (and ONLY when) the completion notification arrives, retrieve the findings from the persistent job state — NOT from the bash stdout file.** The companion writes the rendered review to a job record that survives bash truncation, mid-flight kills, and shell-pipe weirdness. Use the companion's own `status` + `result` subcommands (the supported public interface in `lib/render.mjs:211-283` and `state.mjs:resolveJobsDir`): +**Wait for completion via bash polling**, NOT by reading the state file directly. The polling bash returns when the `task` job's status flips to `completed` or `failed`, triggering the completion notification. + +```bash +JOB_ID="<captured-task-id from Step 4>" +for i in $(seq 1 250); do + STATE=$(node "$CODEX_COMPANION" status "$JOB_ID" --json 2>/dev/null \ + | uv run --no-project python -c "import json,sys; print((json.load(sys.stdin).get('job') or {}).get('status') or '')") + case "$STATE" in + completed) echo "READY"; break ;; + failed) echo "FAILED"; break ;; + esac + sleep 4 +done +``` + +Run this as `Bash(run_in_background=true, timeout=600000)`. Code reviews typically take 2–6 minutes; the 10-minute ceiling is the safety margin. + +1. **When (and ONLY when) the completion notification arrives**, fetch the findings via the companion's public interface: ```bash - STATUS_JSON=$(node "$CODEX_COMPANION" status --json) - JOB_ID=$(printf '%s' "$STATUS_JSON" | python3 -c " - import json,sys - d=json.load(sys.stdin) - lf=d.get('latestFinished') or {} - if lf.get('kind')=='adversarial-review' and lf.get('status')=='completed': - print(lf['id']); sys.exit(0) - for j in (d.get('running') or []): - if j.get('kind')=='adversarial-review': - print('STILL_RUNNING:'+j['id']); sys.exit(0) - sys.exit(1) - ") + node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-task-result-$$.json ``` - - If `$JOB_ID` is empty → no adversarial-review job ran. Re-launch synchronously (foreground `Bash(timeout=600000)`). - - If `$JOB_ID` starts with `STILL_RUNNING:` → the bash was killed before the review completed (the most common failure mode pre-fix). Re-launch synchronously with foreground bash, `timeout=600000`. Do NOT trust any partial output. - - Else, fetch the rendered findings: + Read `/tmp/codex-task-result-$$.json` via `ctx_execute_file` (or Read for small payloads). The relevant fields: + - `storedJob.status` — must be `"completed"`. If `"failed"`, treat as a re-launch trigger; do not silently proceed. + - `storedJob.result.rawOutput` — a string containing Codex's response. With our prompt template, this is JSON matching the `{verdict, summary, findings, next_steps}` schema. + - `storedJob.rendered` — same content rendered for display; useful as a fallback if `rawOutput` is malformed. - ```bash - node "$CODEX_COMPANION" result "$JOB_ID" --json > /tmp/codex-result-$$.json - ``` +2. **Parse `rawOutput` as JSON.** Extract `verdict`, `summary`, `findings`, and `next_steps`. If `JSON.parse` fails (Codex deviated from the schema), fall back to `storedJob.rendered` — surface the rendered text to the user as a suggestion-level finding and continue. Do NOT re-launch on a parse failure; one Codex run per `/spec` is the rule. - Then read `/tmp/codex-result-$$.json` via `ctx_execute_file` and extract `storedJob.rendered` (the full markdown report) and `storedJob.result.parsed` (structured `{verdict, summary, findings, next_steps}`). **Verify before parsing**: `storedJob.status === "completed"` AND `storedJob.rendered` starts with `"# Codex Adversarial Review"`. If either check fails, treat as a re-launch trigger — do NOT silently proceed. + Severity → action map for the parsed findings: + - `critical` / `high` → must_fix — fix immediately + - `medium` / `low` → should_fix — fix immediately + - `info` → suggestion — implement if quick -2. **Parse the rendered findings.** Format (from `lib/render.mjs:211-283`): - ``` - # Codex Adversarial Review - Target: <branch or working-tree> - Verdict: <approve|needs-attention|reject> - <summary> - Findings: - - [<severity>] <title> (<file>:<lines>) - <body> - Recommendation: <recommendation> - Next steps: - - <step> - ``` - Severity → action map: `[critical]` / `[high]` → must_fix; `[medium]` / `[low]` → should_fix; `[info]` → suggestion. Fix every must_fix and should_fix inline. - -3. **If `latestFinished` is absent and the bash exit code was non-zero in the notification** (genuine launch failure, not a timeout): re-launch synchronously (not in background) and wait for results. If the second attempt also fails, escalate to the user with the captured error — do not silently proceed. +3. **If `storedJob.status` is `"failed"`** (genuine launch failure, not a timeout): re-launch synchronously (foreground `Bash(timeout=600000)`) and wait for results. If the second attempt also fails, escalate to the user with the captured error — do not silently proceed. 4. **Mark Codex as ran** so re-verify iterations within the same session do not re-run it: ```bash SESS_ID="${PILOT_SESSION_ID:-default}" -CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-ran-<plan-slug>.flag" +CODEX_FLAG="$HOME/.pilot/sessions/$SESS_ID/codex-changes-review-ran-<plan-slug>.flag" mkdir -p "$(dirname "$CODEX_FLAG")" && touch "$CODEX_FLAG" ``` +5. **Cleanup:** delete the temp prompt file. `$PROMPT_FILE` from Step 4 is not in scope here (different bash invocation), so re-derive the path from the same template Step 4 used: +```bash +rm -f "/tmp/codex-changes-review-${PILOT_SESSION_ID:-default}-<plan-slug>.md" +``` + **Report:** ``` ## Code Verification Complete diff --git a/pilot/skills/spec-verify/steps/13-e2e.md b/pilot/skills/spec-verify/steps/13-e2e.md index d4e4094ae..a0d01c77d 100644 --- a/pilot/skills/spec-verify/steps/13-e2e.md +++ b/pilot/skills/spec-verify/steps/13-e2e.md @@ -62,7 +62,7 @@ TaskCreate(subject="TS-NNN: [name]", description="[priority] | [preconditions]") - Re-execute the scenario (counts as fix attempt 1) - If still failing: implement second fix, re-execute (fix attempt 2) - After 2 failed fix attempts: `TaskUpdate → completed`, note `TS-NNN: KNOWN_ISSUE — [description]` -5. **Critical KNOWN_ISSUE** → set `Status: PENDING`, increment `Iterations`, register status change, invoke `Skill(skill='spec-implement', args='<plan-path>')` — do not proceed to VERIFIED +5. **Critical KNOWN_ISSUE** → run the iteration-cap check from Step 19 (read `Iterations:` from the plan header; if `>= 3` ask the user Continue / Pivot / Abandon before incrementing). On Continue: set `Status: PENDING`, increment `Iterations`, register status change, invoke `Skill(skill='spec-implement', args='<plan-path>')` — do not proceed to VERIFIED. On Pivot/Abandon: do not invoke spec-implement; surface to user per Step 19. 6. **High/Medium KNOWN_ISSUE** → document and continue (non-blocking) #### 13d: Write E2E Results to Plan diff --git a/pilot/skills/spec-verify/steps/19-update-status.md b/pilot/skills/spec-verify/steps/19-update-status.md index a83cef7c7..95dfca7d3 100644 --- a/pilot/skills/spec-verify/steps/19-update-status.md +++ b/pilot/skills/spec-verify/steps/19-update-status.md @@ -28,6 +28,26 @@ If any of the three is false → return to Step 18 and re-ask. Common traps that **When verification FAILS (missing features, serious bugs — before reaching Step 18):** +⛔ **Iteration cap — check BEFORE re-invoking spec-implement.** Read `Iterations:` from the plan header. If `Iterations >= 3` BEFORE incrementing, stop the verify→implement loop and surface to the user. An infinite verify→implement loop on a feature plan is the single largest token-burn pattern in the workflow — three failed verifications means the plan is wrong, not that one more implement pass will fix it. + +``` +AskUserQuestion( + question="Three verify iterations have failed for this plan. This pattern usually means the plan's design is incomplete or a verify check is mis-specified — not that one more implement pass will fix it. What now?", + options=[ + "Continue — try one more iteration (rarely the right answer)", + "Pivot — let me re-investigate the plan with you", + "Abandon — leave PENDING, I'll come back to it" + ] +) +``` + +Handle: +- **Continue:** increment `Iterations`, write `## Verification Gaps`, register status, invoke `Skill(skill='spec-implement', args='<plan-path>')` as below. +- **Pivot:** set `Status: PENDING`, do NOT invoke spec-implement. Tell the user you're standing by for new investigation direction. +- **Abandon:** leave `Status: PENDING`, do not invoke spec-implement. Stop. + +**When `Iterations < 3`:** + 1. Add fix tasks to plan 2. Set `Status: PENDING`, increment `Iterations` 3. Register: `~/.pilot/bin/pilot register-plan "<plan_path>" "PENDING" 2>/dev/null || true` diff --git a/pilot/ui/viewer-bundle.js b/pilot/ui/viewer-bundle.js index cf4fcb226..52997c6a6 100644 --- a/pilot/ui/viewer-bundle.js +++ b/pilot/ui/viewer-bundle.js @@ -1,5 +1,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PlanAnnotator.js","./vendor-markdown.js","./vendor-charts.js","./vendor-diff.js","./index.js","./index2.js","./Spinner.js","./viewer2.css","./index3.js","./index4.js","./ExtensionsView.js","./index5.js"])))=>i.map(i=>d[i]); -import{j as e,a as o,M as ss,b as ns}from"./vendor-markdown.js";import{r as as,a as rs}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},et;function is(){if(et)return ke;et=1;var t=as();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var os=is();const cs="modulepreload",ls=function(t,s){return new URL(t,s).href},tt={},X=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ls(l,r),l in tt)return;tt[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const v=d[f];if(v.href===l&&(!m||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":cs,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,v)=>{p.addEventListener("load",f),p.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function ds(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const us={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},ms={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function te({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${us[t]} ${ms[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Q({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function Y({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Rr({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const hs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},fs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${hs[s]} ${fs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const xs={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:xs[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:rs.createPortal(c,document.body)}const Rt=o.createContext(!1);function Tr(){return o.useContext(Rt)}function ps({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Rt.Provider,{value:s,children:t})}function bs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const Tt=Object.freeze({left:0,top:0,width:16,height:16}),Pe=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ke=Object.freeze({...Tt,...Pe}),Ue=Object.freeze({...Ke,body:"",hidden:!1});function gs(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function st(t,s){const n=gs(t,s);for(const r in Ue)r in Pe?r in t&&!(r in n)&&(n[r]=Pe[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function js(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=st(r[d]||a[d],i)}return c(s),n.forEach(c),st(t,i)}function It(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=bs(t);for(const a in r){const i=r[a];i&&(s(a,js(t,a,i)),n.push(a))}return n}const vs={provider:"",aliases:{},not_found:{},...Tt};function De(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function Dt(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!De(t,vs))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!De(i,Ue))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!De(i,Ue))return null}return s}const nt=Object.create(null);function ys(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function de(t,s){const n=nt[t]||(nt[t]=Object.create(null));return n[s]||(n[s]=ys(t,s))}function _t(t,s){return Dt(s)?It(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function ws(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const Lt=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ie=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ce(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ce(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ce(d,n)?null:d}return null},Ce=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function $t(t){return typeof t=="boolean"&&(we=t),we}function at(t){const s=typeof t=="string"?Ie(t,!0,we):t;if(s){const n=de(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function Ns(t,s){const n=Ie(t,!0,we);if(!n)return!1;const r=de(n.provider,n.prefix);return s?ws(r,n.name,s):(r.missing.add(n.name),!0)}function ks(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return Dt(t)&&(t.prefix="",It(t,(i,c)=>{Ns(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ce({prefix:n,name:"a"}))return!1;const r=de(s,n);return!!_t(r,t)}const At=Object.freeze({width:null,height:null}),Ot=Object.freeze({...At,...Pe}),Ss=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Cs=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function rt(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Ss);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Cs.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Es(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Ps(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Rs(t,s,n){const r=Es(t);return Ps(r.defs,s+r.content+n)}const Ts=t=>t==="unset"||t==="undefined"||t==="none";function Is(t,s){const n={...Ke,...t},r={...Ot,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const v=[],w=f.hFlip,j=f.vFlip;let g=f.rotate;w?j?g+=2:(v.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),v.push("scale(-1 1)"),a.top=a.left=0):j&&(v.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),v.push("scale(1 -1)"),a.top=a.left=0);let C;switch(g<0&&(g-=Math.floor(g/4)*4),g=g%4,g){case 1:C=a.height/2+a.top,v.unshift("rotate(90 "+C.toString()+" "+C.toString()+")");break;case 2:v.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:C=a.width/2+a.left,v.unshift("rotate(-90 "+C.toString()+" "+C.toString()+")");break}g%2===1&&(a.left!==a.top&&(C=a.left,a.left=a.top,a.top=C),a.width!==a.height&&(C=a.width,a.width=a.height,a.height=C)),v.length&&(i=Rs(i,'<g transform="'+v.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=rt(m,u/h)):(l=c==="auto"?u:c,m=d===null?rt(l,h/u):d==="auto"?h:d);const x={},b=(f,v)=>{Ts(v)||(x[f]=v.toString())};b("width",l),b("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const Ds=/\sid="(\S+)"/g,_s="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Ls=0;function $s(t,s=_s){const n=[];let r;for(;r=Ds.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+(Ls++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const qe=Object.create(null);function As(t,s){qe[t]=s}function Ge(t){return qe[t]||qe[""]}function We(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Je=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Ee=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Ee.push(ue.shift()):Ee.push(ue.pop());Je[""]=We({resources:["https://api.iconify.design"].concat(Ee)});function Os(t,s){const n=We(s);return n===null?!1:(Je[t]=n,!0)}function Qe(t){return Je[t]}const Ms=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let it=Ms();function zs(t,s){const n=Qe(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Fs(t){return t===404}const Us=(t,s,n)=>{const r=[],a=zs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function qs(t){if(typeof t=="string"){const s=Qe(t);if(s)return s.path}return"/"}const Gs=(t,s,n)=>{if(!it){n("abort",424);return}let r=qs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;it(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Fs(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Bs={prepare:Us,send:Gs};function Mt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Hs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||Mt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Vs=0;function Ks(t,s,n){const r=Vs++,a=Mt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Ws(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=de(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Js(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?Ie(a,s,n):a;i&&r.push(i)}),r}const Qs={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Ys(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let S=t.resources.slice(0);for(c=[];S.length>1;){const D=Math.floor(Math.random()*S.length);c.push(S[D]),S=S.slice(0,D).concat(S.slice(D+1))}c=c.concat(S)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],b=[];typeof r=="function"&&b.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(S=>{S.status==="pending"&&(S.status="aborted")}),x=[]}function v(S,D){D&&(b=[]),typeof S=="function"&&b.push(S)}function w(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:v,abort:f}}function j(){u="failed",b.forEach(S=>{S(void 0,l)})}function g(){x.forEach(S=>{S.status==="pending"&&(S.status="aborted")}),x=[]}function C(S,D,_){const P=D!=="success";switch(x=x.filter(E=>E!==S),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(D==="abort"){l=_,j();return}if(P){l=_,x.length||(c.length?R():j());return}if(p(),g(),!t.random){const E=t.resources.indexOf(S.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",b.forEach(E=>{E(_)})}function R(){if(u!=="pending")return;p();const S=c.shift();if(S===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(g(),j())},t.timeout);return}j();return}const D={status:"pending",resource:S,callback:(_,P)=>{C(D,_,P)}};x.push(D),h++,m=setTimeout(R,t.rotate),n(S,s,D.callback)}return setTimeout(R),w}function zt(t){const s={...Qs,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Ys(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ot(){}const _e=Object.create(null);function Xs(t){if(!_e[t]){const s=Qe(t);if(!s)return;const n=zt(s),r={config:s,redundancy:n};_e[t]=r}return _e[t]}function Zs(t,s,n){let r,a;if(typeof t=="string"){const i=Ge(t);if(!i)return n(void 0,424),ot;a=i.send;const c=Xs(t);c&&(r=c.redundancy)}else{const i=We(t);if(i){r=zt(i);const c=t.resources?t.resources[0]:"",d=Ge(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ot):r.query(s,a,n)().abort}function ct(){}function en(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Hs(t)}))}function tn(t){const s=[],n=[];return t.forEach(r=>{(r.match(Lt)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!_t(t,n).length){r();return}}catch(a){console.error(a)}r(),en(t)}function lt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function sn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){lt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);lt(m,x=>{const b=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],b)})});return}const{valid:c,invalid:d}=tn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match(Lt)?Ge(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{Zs(n,l,m=>{me(t,l.icons,m)})})}))}const nn=(t,s)=>{const n=Js(t,!0,$t()),r=Ws(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,ct)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(de(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=de(h,l),b=x.pendingIcons||(x.pendingIcons=new Set);b.has(m)||(b.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&sn(u,h)}),s?Ks(s,r,i):ct};function an(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in At?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const rn=/[\s,]+/;function on(t,s){s.split(rn).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function cn(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function ln(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function dn(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function un(t){return"data:image/svg+xml,"+dn(t)}function mn(t){return'url("'+un(t)+'")'}let je;function hn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function fn(t){return je===void 0&&hn(),je?je.createHTML(t):t}const Ft={...Ot,inline:!1},xn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},pn={display:"inline-block"},Be={backgroundColor:"currentColor"},Ut={backgroundColor:"transparent"},dt={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},ut={WebkitMask:Be,mask:Be,background:Ut};for(const t in ut){const s=ut[t];for(const n in dt)s[t+n]=dt[n]}const bn={...Ft,inline:!0};function mt(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const gn=(t,s,n)=>{const r=s.inline?bn:Ft,a=an(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?xn:{}};if(n){const v=Ie(n,!1,!0);if(v){const w=["iconify"],j=["provider","prefix"];for(const g of j)v[g]&&w.push("iconify--"+v[g]);u.className=w.join(" ")}}for(let v in s){const w=s[v];if(w!==void 0)switch(v){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=w;break;case"className":u[v]=(u[v]?u[v]+" ":"")+w;break;case"inline":case"hFlip":case"vFlip":a[v]=w===!0||w==="true"||w===1;break;case"flip":typeof w=="string"&&on(a,w);break;case"color":c.color=w;break;case"rotate":typeof w=="string"?a[v]=cn(w):typeof w=="number"&&(a[v]=w);break;case"ariaHidden":case"aria-hidden":w!==!0&&w!=="true"&&delete u["aria-hidden"];break;default:r[v]===void 0&&(u[v]=w)}}const h=Is(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let v=0,w=s.id;return typeof w=="string"&&(w=w.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:fn($s(h.body,w?()=>w+"ID"+v++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:b}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=ln(m,{...l,width:x+"",height:b+""});return u.style={...c,"--svg":mn(f),width:mt(l.width),height:mt(l.height),...pn,...p?Be:Ut,...d},o.createElement("span",u)};$t(!0);As("",Bs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!ks(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Os(n,a)||console.error(r)}catch{console.error(r)}}}}function qt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(b){if(b){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=at(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const b=r.callback;b&&(b(),a({}))}function h(b){if(JSON.stringify(c)!==JSON.stringify(b))return u(),d(b),!0}function l(){var b;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=at(p);if(h({name:p,data:f}))if(f===void 0){const v=nn([p],l);a({callback:v})}else f&&((b=t.onLoad)===null||b===void 0||b.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?gn({...Ke,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const jn=o.forwardRef((t,s)=>qt({...t,_ref:s}));o.forwardRef((t,s)=>qt({inline:!0,...t,_ref:s}));function k({icon:t,size:s=20,className:n="",style:r}){return e.jsx(jn,{icon:t,width:s,height:s,className:n,style:r})}function He({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(k,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const vn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${vn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const yn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function wn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=yn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const b=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(k,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),b()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(k,{icon:"lucide:x",size:16})})]})}function Nn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(wn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function kn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Sn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(kn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Sn,{},s))})]})}function Cn({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(k,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const En=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Pn(t,s){return t===s||t.startsWith(s+"/")}function Rn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:En.map(n=>e.jsx(Cn,{icon:n.icon,label:n.label,href:n.href,active:Pn(t,n.href),collapsed:s},n.href))})}const Tn={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ht(t){return t.isExpired||t.tier==="trial"}function In({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ht(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=Tn[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ht(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function Dn({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const b=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();b.success?(a(""),n(),s()):c(b.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Gt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const _n={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function Ln({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=_n[s],{license:i,isLoading:c,refetch:d}=Gt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(In,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(k,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(Dn,{open:u,onClose:()=>h(!1),onActivated:d})]})}function $n({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(ds,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(k,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Rn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx(Ln,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function An(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const On={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function Mn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function zn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Fn({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=Mn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(k,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(k,{icon:On[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?zn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:An(m.created_at)})]})]})},m.id))})]})]})}function Un(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(b=>b.some(p=>p.id===x.id)?b:[x,...b]),r(b=>b+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Bt="pilot-memory-theme";function qn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function ft(){try{const t=localStorage.getItem(Bt);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function xt(t){return t==="system"?qn():t}function pt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Ht(){const[t,s]=o.useState(ft),[n,r]=o.useState(()=>xt(ft()));return o.useEffect(()=>{const i=xt(t);r(i),document.documentElement.setAttribute("data-theme",pt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",pt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Bt,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Vt=o.createContext(null);let Gn=0;function Bn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Gn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Vt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(Nn,{toasts:s,onDismiss:a})]})}function Kt(){const t=o.useContext(Vt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Hn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Wt=o.createContext(Hn);function Vn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Wt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Wt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?bt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(bt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function bt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Kn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Ht(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:b,clearAll:p}=Un(),f=o.useCallback((w,j)=>{j&&u.includes(j)&&d(j),h(w)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(w=>w.json()).then(w=>{a(w.authRequired)}).catch(()=>{a(!1)})},[]);const v=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(k,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(k,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(k,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:v,disabled:i,children:e.jsx(k,{icon:"lucide:log-out",size:18})})}),e.jsx(Fn,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:b,onClearAll:p,onNavigate:f})]})}const Wn=10080*60*1e3,gt=3,Jn={plan:"Plan",implement:"Impl",verify:"Verify"},Qn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Yn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Xn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(k,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(k,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function Zn({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(k,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Qn[t.phase]||""}`,children:Jn[t.phase]||t.phase})]}),e.jsx(Xn,{spec:t,tasks:r,loading:a})]})}function ea({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(k,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function ta(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const w=(await f.json()).specs||[],j=Date.now();s(w.filter(g=>g.status!=="VERIFIED"&&j-new Date(g.modifiedAt).getTime()<Wn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const v=n[f.filePath];if(!(v&&v.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(w=>({...w,[f.filePath]:!0}));try{const w=f.project?`&project=${encodeURIComponent(f.project)}`:"",j=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${w}`);if(!j.ok)return;const g=await j.json(),C=Yn(g.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:C}}))}catch{}finally{i(w=>({...w,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const v=encodeURIComponent(f.filePath);u(`/spec?path=${v}`)},[u,c,d]);if(t.length===0)return null;const b=t.slice(0,gt),p=t.slice(gt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[b.map(f=>{var v;return e.jsx(Zn,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((v=n[f.filePath])==null?void 0:v.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ea,{specs:p,onPick:x})]})}function sa({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(ta,{})}),e.jsx(Kn,{onToggleTheme:t,onToggleLogs:s})]})}function na({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx($n,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(sa,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function aa({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ra(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ra(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const Le="https://pilot-shell.com/docs";function ia(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Le,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Le,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Le,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const oa={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},ca={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function la(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function da({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=oa[t.type]||ca,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Q,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(Y,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(k,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(k,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),la(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ua={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ma({memory:t,onClose:s}){const n=t?ua[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(k,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function ha({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(k,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(te,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const fa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},xa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function pa(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ba({result:t}){const s=t.obsType||t.type,n=fa[s]||xa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Q,{className:"hover:shadow-md transition-shadow",children:e.jsx(Y,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(k,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:clock",size:12}),pa(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Re(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(k,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ga=12e4;function ja(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),b=o.useCallback(async f=>{var j;(j=m.current)==null||j.abort(),x.current=!1;const v=new AbortController;m.current=v;const w=setTimeout(()=>v.abort(),ga);c(!0),n(!0),u(null);try{const g=new URLSearchParams({query:f,limit:"30"});t&&g.set("project",t);const C=await fetch(`/api/search/semantic?${g}`,{signal:v.signal});if(!C.ok)throw new Error(`Search failed with status ${C.status}`);const R=await C.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(g){if(x.current)return;g.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(w),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:b,handleClearSearch:p}}function jt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:b,searchMeta:p,handleSearch:f,handleClearSearch:v}=ja(),w=o.useCallback(async S=>{await f(S)},[f]),j=o.useCallback(async()=>{a(!0);try{const S=new URLSearchParams;h&&S.set("project",h),S.set("limit","50");const _=await(await fetch(`/api/observations?${S}`)).json(),P=_.items||_.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:g(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(S){console.error("Failed to fetch memories:",S)}finally{a(!1)}},[h]);function g(S){if(!S)return"";const D=new Date(S),P=new Date().getTime()-D.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:D.toLocaleDateString()}o.useEffect(()=>{j()},[j]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const S=s.find(D=>D.id===d);S&&(u.current=!0,c(S))}},[d,r,s]);const C=S=>{const D=s.find(_=>_.id===S);D&&c(D)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Re,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(te,{variant:"ghost",size:"sm",onClick:v,children:[e.jsx(k,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(te,{variant:"ghost",size:"sm",onClick:j,children:e.jsx(k,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(k,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(k,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(k,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(ha,{onSearch:w,isSearching:x,placeholder:"Search memories semantically..."}),b&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(k,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:b})]}),l?x?e.jsx(oe,{}):b?null:m.length===0?e.jsx(He,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(S=>e.jsx(ba,{result:S},`${S.type}-${S.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(He,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(S=>e.jsx(da,{memory:S,viewMode:"grid",onView:C,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},S.id))}),e.jsx(ma,{memory:i,onClose:()=>c(null)})]})}const vt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function va(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function ya({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(k,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function $e({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function wa(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function Na({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=vt[t.status]||vt.active;return e.jsx(Q,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(Y,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(k,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(ya,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:calendar",size:14}),va(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx($e,{icon:"lucide:dollar-sign",value:a!=null?wa(a):"—",label:"Cost"}),e.jsx($e,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx($e,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(k,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Ae={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function ka(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Sa({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Q,{className:"bg-base-200/50",children:e.jsxs(Y,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Q,{className:"bg-primary/10 border-primary/30",children:e.jsxs(Y,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(k,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Q,{className:"bg-warning/10 border-warning/30",children:e.jsxs(Y,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(k,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var v,w;const x=`${l.type}-${l.id}`,b=c.has(x),p=l.type==="prompt"?Ae.prompt:Ae[l.data.type]||Ae.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Q,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:j=>{j.stopPropagation(),u(x)},children:e.jsx(Y,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(k,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:ka(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(j=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:j},j))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((v=l.data.prompt_text)==null?void 0:v.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((w=l.data.prompt_text)==null?void 0:w.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${b?"whitespace-pre-wrap":"line-clamp-3"}`,children:b?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const j=JSON.parse(l.data.files_read);if(j.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(k,{icon:"lucide:file",size:12,className:"inline mr-1"}),j.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const j=JSON.parse(l.data.files_modified);if(j.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(k,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),j.length," modified"]})}catch{return null}})()]}),b&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const j=JSON.parse(l.data.files_read);if(j.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:j.map((g,C)=>e.jsx("div",{className:"truncate",children:g},C))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const j=JSON.parse(l.data.files_modified);if(j.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:j.map((g,C)=>e.jsx("div",{className:"truncate",children:g},C))})]})}catch{return null}})()]})]})]}),e.jsx(k,{icon:b?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ca(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Ea={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(k,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Pa({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(k,{icon:Ea[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ra({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function v(){var w;h(!0);try{const[j,g]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(j.ok){const C=await j.json();C.stats?(i(C.stats),m(!0),(w=x.current)==null||w.call(x,C.stats.is_resumed)):m(!1)}else m(!1);if(g.ok){const C=await g.json();d(C.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return v(),()=>{f=!0}},[t.id,s]);const b=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),b.map(([f,v])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",v,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,v)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},v))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ca(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(k,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(k,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(k,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Pa,{tools:a.tools})]}),e.jsx(Sa,{sessionId:t.id,skipHeader:!0})]})})}const Ta=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function yt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Ia(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[b,p]=o.useState({}),{selectedProject:f,setSelectedProject:v}=ie(),w=o.useRef(null),[j,g]=o.useState(new Set),C=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const M=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(M),M.length>0){const L=M.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{C(d||void 0)},[C,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&v(E.project)):f&&s.length>0&&v(null)},[t.selected,r,s,f,v]);const R=P=>{w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{u(P)},300)},S=o.useCallback(P=>{g(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),D=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},_=o.useMemo(()=>{const P=[],E=[];for(const M of s)M.status==="active"?P.push(M):E.push(M);const A=m==="desc"?-1:1,G=(M,L)=>A*(yt(M,h,b)-yt(L,h,b));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,b]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Re,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>C(d||void 0),children:e.jsx(k,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(k,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(He,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ta.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>D(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(k,{icon:A,size:12}),E,G&&e.jsx(k,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),_.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(Na,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:j.has(P.id),costUsd:b[P.id]})},P.id))]}),i&&e.jsx(Ra,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:S})]})}const ve=["sonnet","opus"],Jt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Qt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function wt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Qt.test(r):!1}function Te(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Qt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0}};function Da(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(g=>{if(!g.ok)throw new Error(`API error: ${g.status}`);return g.json()}).then(g=>{s({...J,...g}),r(!1)}).catch(g=>{i(g.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(g=>{s(C=>({...C,model:g})),d(!0),h(!1)},[]),m=o.useCallback(g=>{s(C=>({...C,extendedContext:g})),d(!0),h(!1)},[]),x=o.useCallback((g,C)=>{s(R=>({...R,extendedContextOverrides:{...R.extendedContextOverrides,[g]:C}})),d(!0),h(!1)},[]),b=o.useCallback((g,C)=>{s(R=>({...R,skills:{...R.skills,[g]:C}})),d(!0),h(!1)},[]),p=o.useCallback((g,C)=>{s(R=>({...R,agents:{...R.agents,[g]:C}})),d(!0),h(!1)},[]),f=o.useCallback((g,C)=>{s(R=>({...R,reviewerAgents:{...R.reviewerAgents,[g]:C}})),d(!0),h(!1)},[]),v=o.useCallback((g,C)=>{s(R=>({...R,codexReviewers:{...R.codexReviewers,[g]:C}})),d(!0),h(!1)},[]),w=o.useCallback((g,C)=>{s(R=>({...R,specWorkflow:{...R.specWorkflow,[g]:C}})),d(!0),h(!1)},[]),j=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(g=>{if(!g.ok)throw new Error(`Save failed: ${g.status}`);return g.json()}).then(g=>{s(g),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:b,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:v,updateSpecWorkflow:w,save:j}}const Oe="__custom__";function Me({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Te(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?Oe:t,x=p=>{if(p===Oe){u(!0);return}u(!1),l(""),n(p)},b=()=>{const p=h.trim();wt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Jt[p]??p},p)),e.jsx("option",{value:Oe,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!wt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:b,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),b())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function Nt(t,s,n){return Te(t)?t.endsWith("[1m]"):s??n}const _a=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],La=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],$a=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Aa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Oa=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}];function ze({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function kt({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function St({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Jt[t]??t})}const fe=41777,xe=1024,pe=65535;function Ma(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,save:x}=Da(),[b,p]=o.useState(null),[f,v]=o.useState(!1),[w,j]=o.useState(!1),[g,C]=o.useState(!1),[R,S]=o.useState(null),[D,_]=o.useState(fe),[P,E]=o.useState(fe),[A,G]=o.useState(fe),[M,L]=o.useState(!1),[I,T]=o.useState(null),[O,z]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(y=>y.ok?y.json():null).then(y=>{if(!y)return;const $=typeof y.workerPort=="number"?y.workerPort:fe,U=typeof y.defaultPort=="number"?y.defaultPort:fe;_($),E($),G(U)}).catch(()=>{})},[]);const K=D!==P,Z=async()=>{if(T(null),z(!1),!Number.isInteger(D)||D<xe||D>pe){T(`Port must be an integer between ${xe} and ${pe}`);return}L(!0);try{const y=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:D})});if(!y.ok){const H=await y.json().catch(()=>null);throw new Error((H==null?void 0:H.error)??`Save failed: ${y.status}`)}const $=await y.json(),U=typeof $.workerPort=="number"?$.workerPort:D;E(U),_(U),z(!0),j(!0)}catch(y){T(y instanceof Error?y.message:"Failed to save")}finally{L(!1)}},se=()=>{_(A),z(!1),T(null)},B=o.useRef(!1),N=o.useRef(!1);o.useEffect(()=>{B.current=r},[r]);const F=async()=>{v(!0),p(null);try{await x(),j(!0)}catch(y){p(y instanceof Error?y.message:"Failed to save")}finally{v(!1)}};o.useEffect(()=>{const y=$=>{B.current&&$.preventDefault()};return window.addEventListener("beforeunload",y),()=>window.removeEventListener("beforeunload",y)},[]),o.useEffect(()=>{const y=()=>{if(N.current){N.current=!1;return}if(!B.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(N.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),S("#"+$),C(!0))};return window.addEventListener("hashchange",y),()=>window.removeEventListener("hashchange",y)},[]);const q=()=>{C(!1),B.current=!1,R&&(window.location.hash=R)},W=()=>{C(!1),S(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${f?"loading":""}`,onClick:F,disabled:f||!r,children:f?"Saving...":r?"Save Changes":"Saved"})]}),b&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:b})}),e.jsxs("section",{children:[e.jsx(ze,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(kt,{children:"General"}),_a.map(y=>{var ee;const $=y.key==="main",U=$?t.model:t.skills[y.key]??J.skills[y.key],H=$?J.model:J.skills[y.key],ne=Te(U),ae=Nt(U,(ee=t.extendedContextOverrides)==null?void 0:ee[y.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:y.label}),y.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:y.sub})]}),e.jsx("td",{children:e.jsx(Me,{value:U,choices:ve,onChange:$?a:le=>d(y.key,le),id:$?"main-model":`cmd-${y.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:ae,disabled:ne,onChange:le=>c(y.key,le.target.checked),id:`ec-${y.key}`,"aria-label":`Enable 1M context for ${y.label}`,title:ne?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(St,{model:H})})]},y.key)}),e.jsx(kt,{children:"Spec Phases"}),La.map(y=>{var ne;const $=t.skills[y.key]??J.skills[y.key],U=Te($),H=Nt($,(ne=t.extendedContextOverrides)==null?void 0:ne[y.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:y.label}),y.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:y.sub})]}),e.jsx("td",{children:e.jsx(Me,{value:$,choices:ve,onChange:ae=>d(y.key,ae),id:`cmd-${y.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:H,disabled:U,onChange:ae=>c(y.key,ae.target.checked),id:`ec-${y.key}`,"aria-label":`Enable 1M context for ${y.label}`,title:U?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(St,{model:J.skills[y.key]})})]},y.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:y=>i(y.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("section",{children:[e.jsx(ze,{children:"Console"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:D,onChange:y=>{const $=parseInt(y.target.value,10);_(Number.isNaN($)?0:$),z(!1),T(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:se,disabled:D===A,title:`Reset to default (${A})`,children:"Reset"}),e.jsxs("span",{className:"text-xs text-base-content/55 flex-1 min-w-0 truncate",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(D)&&D>0?D:"?"]})," ",e.jsxs("span",{className:"text-base-content/40",children:["· ",xe,"–",pe," · restart Pilot to apply"]})]}),e.jsx("button",{className:`btn btn-primary btn-sm ${M?"loading":""}`,onClick:Z,disabled:M||!K||!Number.isInteger(D)||D<xe||D>pe,children:M?"Saving...":"Save Port"})]}),I&&e.jsx("div",{className:"text-xs text-error mt-2",children:I}),O&&!K&&!I&&e.jsx("div",{className:"text-xs text-success mt-2",children:"✓ Saved — restart Pilot for the new port to take effect."})]})})]}),e.jsxs("section",{children:[e.jsx(ze,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:$a.map(y=>{var U;const $=((U=t.reviewerAgents)==null?void 0:U[y.toggleKey])??J.reviewerAgents[y.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:H=>h(y.toggleKey,H.target.checked),id:`toggle-${y.key}`,"aria-label":`Enable ${y.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:y.label}),e.jsx(Me,{value:t.agents[y.key]??J.agents[y.key],choices:ve,onChange:H=>u(y.key,H),id:`agent-${y.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.description})]})]})},y.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Aa.map(y=>{var U;const $=t.codexAvailable&&(((U=t.codexReviewers)==null?void 0:U[y.toggleKey])??J.codexReviewers[y.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:H=>l(y.toggleKey,H.target.checked),disabled:!t.codexAvailable,id:`toggle-${y.key}`,"aria-label":`Enable ${y.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:y.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.description})]})]})},y.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2",children:Oa.map(y=>{var U;const $=((U=t.specWorkflow)==null?void 0:U[y.toggleKey])??J.specWorkflow[y.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:H=>m(y.toggleKey,H.target.checked),id:`toggle-${y.key}`,"aria-label":y.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:y.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:y.description})]})]},y.key)})})]}),e.jsxs(ye,{open:w,onClose:()=>j(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>j(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:g,onClose:W,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:W,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:q,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Ye(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Xe(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const Ze=Object.freeze(Object.defineProperty({__proto__:null,compress:Ye,decompress:Xe},Symbol.toStringTag,{value:"Module"})),Yt=32768;async function Xt(t,s){try{const n=await Ye(JSON.stringify(t));return n.length>Yt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function za(t){if(!t)return null;try{return JSON.parse(await Xe(t))}catch{return null}}async function Fa(t,s){try{const n=await Ye(JSON.stringify(t));return n.length>Yt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function Zt(t){if(!t)return null;try{return JSON.parse(await Xe(t))}catch{return null}}function es(t){return/^[A-Za-z0-9]{8}$/.test(t)}const Ir=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:Fa,generateShareUrl:Xt,isPasteServiceId:es,parseFeedbackUrl:Zt,parseShareUrl:za},Symbol.toStringTag,{value:"Module"}));async function Ua(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(es(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await X(async()=>{const{decompress:u}=await Promise.resolve().then(()=>Ze);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return Zt(a)}function qa({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Kt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var v,w;const f=m.current;f&&(t?((v=f.showModal)==null||v.call(f),setTimeout(()=>{var j;return(j=x.current)==null?void 0:j.focus()},50)):((w=f.close)==null||w.call(f),u(""),l({status:"idle"})))},[t]);const b=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ua(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const v=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),w=v.ok?(await v.json()).planAnnotations??[]:[],g=f.annotations.map(S=>({id:S.id??crypto.randomUUID(),blockId:S.blockId??"",originalText:S.originalText??"",text:S.text??"",createdAt:S.createdAt??Date.now(),author:S.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(S=>!w.some(D=>D.originalText===S.originalText&&D.text===S.text));if(g.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const C=[...w,...g],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:C})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(g),l({status:"done",count:g.length,author:f.author}),i(`Imported ${g.length} annotation${g.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(k,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(k,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(k,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&b()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:b,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(k,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(k,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(k,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ga="https://pilot-shell.com/shared",Ba=32768;function Fe(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ha(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),b=o.useCallback(w=>{m(w),s(""),r(""),h(null)},[]),p=o.useCallback(async(w,j,g,C,R)=>{const S=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let D=j;if(D.length===0&&C)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(C)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(D=E.planAnnotations)}}catch{}const _={specContent:w,annotations:D.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:g??await Va(),planPath:C,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(S!==x.current)return;if(l==="web"){const{compress:P}=await X(async()=>{const{compress:G}=await Promise.resolve().then(()=>Ze);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(_));if(S!==x.current)return;if(E.length>Ba){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ga}#${E}`;s(A),r(Fe(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Xt(_,P);if(S!==x.current)return;if(E)s(E.url),r(Fe(new Blob([E.url]).size)),i(!1);else{const A=await Ka(_,P);if(S!==x.current)return;A?(s(A.url),r(Fe(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(D){if(S!==x.current)return;h(D instanceof Error?D.message:"Failed to generate share URL")}finally{S===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),v=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:b,generate:p,copyToClipboard:f,clear:v}}async function Va(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ka(t,s){try{const{compress:n}=await X(async()=>{const{compress:d}=await Promise.resolve().then(()=>Ze);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Wa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Kt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:b,target:p,setTarget:f,generate:v,copyToClipboard:w,clear:j}=Ha(),g=o.useRef(null),C=o.useRef(null);o.useEffect(()=>{t&&v(n,r,void 0,a,i),t||j()},[t,p]),o.useEffect(()=>{var P,E;const _=g.current;_&&(t?(P=_.showModal)==null||P.call(_):(E=_.close)==null||E.call(_))},[t]);const R=async()=>{await w()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},S=_=>{_!==p&&f(_)},D=_=>{_.key==="Escape"&&s()};return e.jsx("dialog",{ref:g,className:"modal",onKeyDown:D,onClick:_=>{_.target===g.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(k,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(k,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>S("local"),children:[e.jsx(k,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>S("web"),children:[e.jsx(k,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&b&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(k,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:b})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:C,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var _;return(_=C.current)==null?void 0:_.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(k,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(k,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(k,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ja({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ss,{remarkPlugins:[ns],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Qa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Ya({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Qa[t]||"lucide:file-text";return e.jsx(Q,{children:e.jsxs(Y,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(k,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(k,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ja,{content:s})})})]})})}const Xa={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},Za=o.lazy(()=>X(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),er=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],tr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function sr(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let b=0;b<m.length;b++){const{heading:p,contentStart:f}=m[b];if(!er.includes(p))continue;const v=b+1<m.length?m[b+1].index:t.length,w=t.slice(f,v).trim();w&&h.push({heading:p,content:w})}return{title:n,sections:h,metadata:r}}function nr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ar(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const T=decodeURIComponent(s.path);i(O=>O===T?O:T)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,b]=o.useState(null),[p,f]=o.useState("view"),[v,w]=o.useState(!1),[j,g]=o.useState(!1),[C,R]=o.useState(0),[S,D]=o.useState(!1),_=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),b(null),h(!0));const E=o.useCallback(async()=>{var T;try{const z=await(await fetch(`/api/prd${_}`)).json();r(z.prds||[]),((T=z.prds)==null?void 0:T.length)>0&&!a&&i(z.prds[0].filePath)}catch(O){b("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,_]),A=o.useCallback(async(T,O=!1)=>{O||m(!0),b(null);try{const z=await fetch(`/api/prd/content?path=${encodeURIComponent(T)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!z.ok)throw new Error("Failed to load PRD content");d(await z.json())}catch(z){b("Failed to load PRD content"),console.error("Failed to load PRD content:",z)}finally{O||m(!1)}},[t]),G=o.useCallback(async T=>{if(confirm(`Delete "${T.split("/").pop()}"? This cannot be undone.`)){D(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(T)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){b("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{D(!1)}}},[E,t]);if(o.useEffect(()=>{E();const T=setInterval(()=>{E(),a&&A(a,!0)},Xa.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(T)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{})," "]}),e.jsx(Q,{children:e.jsx(Y,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(k,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const M=n.find(T=>T.filePath===a),L=n.filter(T=>T.filePath!==a),I=c?sr(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(k,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(k,{icon:"lucide:pencil",size:13}),"Review"]})]}),M&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(k,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:M.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:nr(M.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:T=>i(T.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(T=>e.jsx("option",{value:T.filePath,children:T.name},T.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(te,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:S,children:e.jsx(k,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Q,{children:e.jsx(Y,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(k,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(k,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(Za,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>g(!0),onReceiveFeedback:()=>w(!0),reloadKey:C})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Q,{children:e.jsxs(Y,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(k,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:tr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(k,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>g(!0),title:"Share PRD with a teammate",children:[e.jsx(k,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>w(!0),title:"Receive feedback from a colleague",children:[e.jsx(k,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(T=>e.jsx(Ya,{heading:T.heading,content:T.content,defaultOpen:T.heading==="Problem Statement"||T.heading==="Scope"},T.heading))})]})]}):null,c&&v&&e.jsx(qa,{isOpen:v,onClose:()=>w(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{w(!1),f("annotate"),R(T=>T+1)}}),c&&j&&e.jsx(Wa,{isOpen:j,onClose:()=>g(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{g(!1),setTimeout(()=>w(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function rr(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function ir({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,b]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),v=o.useRef(null),w=o.useRef(!0),[j,g]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[C,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[S,D]=o.useState(!1),_=o.useMemo(()=>n?n.split(` -`).map(rr):[],[n]),P=o.useMemo(()=>_.filter(N=>S?N.raw.includes("[ALIGNMENT]"):!N.level||!N.component?!0:j.has(N.level)&&C.has(N.component)),[_,j,C,S]),E=o.useCallback(()=>{if(!v.current)return!0;const{scrollTop:N,scrollHeight:F,clientHeight:q}=v.current;return F-N-q<50},[]),A=o.useCallback(()=>{v.current&&w.current&&(v.current.scrollTop=v.current.scrollHeight)},[]),G=o.useCallback(async()=>{w.current=E(),i(!0),d(null);try{const N=await fetch("/api/logs");if(!N.ok)throw new Error(`Failed to fetch logs: ${N.statusText}`);const F=await N.json();r(F.logs||"")}catch(N){d(N instanceof Error?N.message:"Unknown error")}finally{i(!1)}},[E]);o.useEffect(()=>{A()},[n,A]);const M=o.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),d(null);try{const N=await fetch("/api/logs/clear",{method:"POST"});if(!N.ok)throw new Error(`Failed to clear logs: ${N.statusText}`);r("")}catch(N){d(N instanceof Error?N.message:"Unknown error")}finally{i(!1)}}},[]),L=o.useCallback(N=>{N.preventDefault(),b(!0),p.current=N.clientY,f.current=l},[l]);o.useEffect(()=>{if(!x)return;const N=q=>{const W=p.current-q.clientY,y=Math.min(Math.max(150,f.current+W),window.innerHeight-100);m(y)},F=()=>{b(!1)};return document.addEventListener("mousemove",N),document.addEventListener("mouseup",F),()=>{document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",F)}},[x]),o.useEffect(()=>{t&&(w.current=!0,G())},[t,G]),o.useEffect(()=>{if(!t||!u)return;const N=setInterval(G,2e3);return()=>clearInterval(N)},[t,u,G]);const I=o.useCallback(N=>{g(F=>{const q=new Set(F);return q.has(N)?q.delete(N):q.add(N),q})},[]),T=o.useCallback(N=>{R(F=>{const q=new Set(F);return q.has(N)?q.delete(N):q.add(N),q})},[]),O=o.useCallback(N=>{g(N?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),z=o.useCallback(N=>{R(N?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const K=N=>{const F=be.find(q=>q.key===N);return(F==null?void 0:F.color)||"text-base-content"},Z=N=>{const F=ge.find(q=>q.key===N);return(F==null?void 0:F.color)||"text-base-content"},se=N=>N.level==="ERROR"?"bg-error/10":N.level==="WARN"?"bg-warning/5":"",B=(N,F)=>{var y,$;if(!N.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:N.raw},F);const q=be.find(U=>U.key===N.level),W=ge.find(U=>U.key===N.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${se(N)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",N.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${K(N.level)}`,title:N.level,children:["[",(q==null?void 0:q.icon)||""," ",(y=N.level)==null?void 0:y.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${Z(N.component)}`,title:N.component,children:["[",(W==null?void 0:W.icon)||""," ",($=N.component)==null?void 0:$.padEnd(7),"]"]})," ",N.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",N.correlationId,"]"]})," "]}),e.jsx("span",{className:N.isSpecial==="success"?"text-success":N.isSpecial==="failure"?"text-error":"text-base-content",children:N.message})]},F)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${l}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:L,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:N=>h(N.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:G,disabled:a,title:"Refresh logs",children:e.jsx(k,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{w.current=!0,A()},title:"Scroll to bottom",children:e.jsx(k,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:M,disabled:a,title:"Clear logs",children:e.jsx(k,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(k,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${S?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>D(!S),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[be.map(N=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${j.has(N.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>I(N.key),title:N.label,children:[N.icon," ",N.label]},N.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>O(j.size===0),title:j.size===be.length?"Select none":"Select all",children:j.size===be.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ge.map(N=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${C.has(N.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>T(N.key),title:N.label,children:[N.icon," ",N.label]},N.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>z(C.size===0),title:C.size===ge.length?"Select none":"Select all",children:C.size===ge.length?"○":"●"})]})]})]}),c&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",c]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:v,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:P.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):P.map((N,F)=>B(N,F))})})]})}const Ve={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},or=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function Ct(t){var r,a,i,c;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(c=t.modifiers)!=null&&c.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function cr({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,c]=o.useState(""),[d,u]=o.useState(0),h=o.useRef(null),l=o.useRef(null),m=o.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:Ct(Ve.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:Ct(Ve.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),x=o.useMemo(()=>{if(!i)return m;const j=i.toLowerCase();return m.filter(g=>g.label.toLowerCase().includes(j)||g.category.toLowerCase().includes(j))},[m,i]);o.useEffect(()=>{u(0)},[i]),o.useEffect(()=>{t&&(c(""),u(0),setTimeout(()=>{var j;return(j=h.current)==null?void 0:j.focus()},50))},[t]),o.useEffect(()=>{if(!l.current)return;const j=l.current.querySelector('[data-selected="true"]');j==null||j.scrollIntoView({block:"nearest"})},[d]);const b=j=>{j.action(),s()},p=j=>{switch(j.key){case"ArrowDown":j.preventDefault(),u(g=>(g+1)%x.length);break;case"ArrowUp":j.preventDefault(),u(g=>(g-1+x.length)%x.length);break;case"Enter":j.preventDefault(),x[d]&&b(x[d]);break;case"Escape":j.preventDefault(),s();break}};if(!t)return null;const f=x.reduce((j,g)=>(j[g.category]||(j[g.category]=[]),j[g.category].push(g),j),{}),v={navigation:"Navigation",action:"Actions",theme:"Theme"};let w=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(k,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:h,type:"text",placeholder:"Type a command or search...",value:i,onChange:j=>c(j.target.value),onKeyDown:p,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:l,className:"max-h-80 overflow-y-auto p-2",children:x.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(f).map(([j,g])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:v[j]||j}),g.map(C=>{const R=w===d,S=w;return w++,e.jsxs("button",{"data-selected":R,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${R?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>b(C),onMouseEnter:()=>u(S),children:[e.jsx(k,{icon:C.icon,size:16,className:R?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:C.label}),C.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${R?"bg-primary-content/20 text-primary-content":""}`,children:C.shortcut})]},C.id)})]},j))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function lr({license:t,onActivated:s}){const[n,r]=o.useState(""),[a,i]=o.useState(null),[c,d]=o.useState(!1),u=o.useCallback(async()=>{const b=n.trim();if(b){i(null),d(!0);try{const f=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:b})})).json();f.success?(r(""),i(null),s()):i(f.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{d(!1)}}},[n,s]),h=o.useCallback(b=>{b.key==="Enter"&&!c&&u()},[u,c]),l=(t==null?void 0:t.isExpired)===!0,m=l?"License Expired":"License Required",x=l?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:l?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:m}),e.jsx("p",{className:"text-base-content/60 text-sm",children:x}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:b=>{r(b.target.value),i(null)},onKeyDown:h,disabled:c,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:c||!n.trim(),children:c?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}const dr={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function ur(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return dr}function mr(){const{selectedProject:t,setProjects:s}=ie(),[n,r]=o.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=o.useState({status:"offline"}),[c,d]=o.useState([]),[u,h]=o.useState({active:!1,plans:[]}),[l,m]=o.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[x,b]=o.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[p,f]=o.useState(0),[v,w]=o.useState(0),[j,g]=o.useState(0),[C,R]=o.useState([]),[S,D]=o.useState(ur),[_,P]=o.useState(!0),E=o.useCallback(async()=>{var M;try{const L=await fetch("/api/extensions?all=true").catch(()=>null);if(!(L!=null&&L.ok))return;const T=(await L.json()).extensions??[],O=T.filter(B=>B.scope==="global"&&!B.pluginName),z=T.filter(B=>B.scope==="project"),K=T.filter(B=>B.pluginName!=null);let Z=0;try{const B=await fetch("/api/team-remote/extensions").catch(()=>null);B!=null&&B.ok&&(Z=((M=(await B.json()).extensions)==null?void 0:M.length)??0)}catch{}const se={totalGlobal:O.length,totalProject:z.length,totalPlugin:K.length,totalRemote:Z};D(se);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(se))}catch{}}catch{}},[]),A=o.useCallback(async()=>{const M=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${M}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([L,I,T,O])=>{var W,y,$,U,H,ne,ae;const z=await L.json(),K=await I.json(),Z=await T.json(),se=await O.json(),B=Z.items||Z.observations||Z||[],N=Array.isArray(B)?B:[],F=N.length>0&&((W=N[0])==null?void 0:W.created_at)||null,q=se.projects||[];s(q),r({observations:((y=z.database)==null?void 0:y.observations)||0,summaries:(($=z.database)==null?void 0:$.summaries)||0,sessions:((U=z.database)==null?void 0:U.sessions)||0,lastObservationAt:F?Et(F):null,projects:q.length}),i({status:K.status==="ok"?K.isProcessing?"processing":"online":"offline",version:(H=z.worker)==null?void 0:H.version,uptime:(ne=z.worker)!=null&&ne.uptime?hr(z.worker.uptime):void 0,queueDepth:K.queueDepth||0,workspaceProject:(ae=z.worker)==null?void 0:ae.workspaceProject}),d(N.slice(0,2).map(ee=>{var le;return{id:ee.id,type:ee.obs_type||ee.type||"observation",title:ee.title||((le=ee.content)==null?void 0:le.slice(0,100))||"Untitled",project:ee.project||"unknown",timestamp:Et(ee.created_at)}})),P(!1)}).catch(L=>{console.error("Failed to load core stats:",L),i({status:"offline"}),P(!1)}),fetch(`/api/plan${M}`).then(async L=>{const I=await L.json(),T=I.plans||(I.plan?[I.plan]:[]);h({active:T.length>0,plans:T})}).catch(()=>{}),fetch(`/api/git${M}`).then(async L=>{const I=await L.json();m({branch:I.branch||null,staged:I.staged||0,unstaged:I.unstaged||0,untracked:I.untracked||0,totalFiles:I.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async L=>{if(!L.ok)return;const T=(await L.json()).specs||[];b({totalSpecs:T.length,verified:T.filter(O=>O.status==="VERIFIED").length,inProgress:T.filter(O=>O.status==="COMPLETE"||O.status==="PENDING").length,pending:T.filter(O=>O.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async L=>{if(!L.ok)return;const I=await L.json();f((I.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async L=>{if(!L.ok)return;const T=(await L.json()).daily||[],O=new Date().toISOString().slice(0,10),z=T.find(K=>K.date===O);w((z==null?void 0:z.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async L=>{if(!L.ok)return;const T=(await L.json()).items||[];g(T.filter(O=>O.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async L=>{if(!L.ok)return;const I=await L.json();R(I.data||[])}).catch(()=>{})},[t,s]),G=o.useRef(A);return o.useEffect(()=>{G.current=A},[A]),o.useEffect(()=>{A()},[A]),o.useEffect(()=>{E();const M=new EventSource("/stream");return M.onmessage=L=>{try{const I=JSON.parse(L.data);I.type==="processing_status"&&i(T=>({...T,status:I.isProcessing?"processing":"online",queueDepth:I.queueDepth??T.queueDepth})),(I.type==="new_observation"||I.type==="new_summary"||I.type==="plan_association_changed")&&G.current()}catch{}},()=>{M.close()}},[E]),{stats:n,workerStatus:a,extensionsStatus:S,recentActivity:c,planStatus:u,gitInfo:l,specStats:x,prdCount:p,todayCost:v,activeSessions:j,observationTimeline:C,isLoading:_,refreshStats:A}}function Et(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function hr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function fr(t,s={}){const{enabled:n=!0}=s,r=o.useRef([]),a=o.useRef(null),i=o.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);o.useEffect(()=>{if(!n)return;const c=d=>{const u=d.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){d.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const h=d.ctrlKey||d.metaKey;for(const l of Object.values(Ve)){const m=!l.modifiers||l.modifiers.some(p=>p==="ctrl"?d.ctrlKey:p==="meta"?d.metaKey:p==="shift"?d.shiftKey:p==="alt"?d.altKey:!1),x=d.key.toLowerCase()===l.key.toLowerCase(),b=l.modifiers&&l.modifiers.length>0;if(x&&m&&(b?h:!h)){d.preventDefault(),t(l.action),i();return}}if(!h&&!d.shiftKey&&!d.altKey){a.current&&clearTimeout(a.current),r.current.push(d.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const l of or){const m=r.current,x=l.sequence;if(x.slice(0,m.length).every((p,f)=>p===m[f])){if(m.length===x.length){d.preventDefault(),t(l.action),i();return}return}}i()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c),i()}},[n,t,i])}const xr=o.lazy(()=>X(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),pr=o.lazy(()=>X(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),br=o.lazy(()=>X(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),gr=o.lazy(()=>X(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),jr=o.lazy(()=>X(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),vr=o.lazy(()=>X(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.SharedSpecView}))),yr=o.lazy(()=>X(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.FeedbackImportView}))),wr=[{path:"/",component:xr},{path:"/requirements",component:ar},{path:"/spec",component:br},{path:"/changes",component:pr},{path:"/memories",component:jt},{path:"/memories/:type",component:jt},{path:"/sessions",component:Ia},{path:"/usage",component:gr},{path:"/extensions",component:jr},{path:"/settings",component:Ma},{path:"/help",component:ia},{path:"/shared/:data",component:vr},{path:"/feedback/:data",component:yr}],Pt="pilot-memory-sidebar-collapsed";function Nr(){const{path:t,navigate:s}=ce(),{resolvedTheme:n,setThemePreference:r}=Ht(),{workerStatus:a}=mr(),i=a.version,{license:c,isLoading:d,refetch:u}=Gt(),[h,l]=o.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Pt)==="true"}catch{return!1}}),[m,x]=o.useState(!1),[b,p]=o.useState(!1),f=o.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),v=o.useCallback(()=>{l(R=>{const S=!R;try{localStorage.setItem(Pt,String(S))}catch{}return S})},[]),w=o.useCallback(()=>{x(R=>!R)},[]),j=o.useCallback(R=>{if(R==="openCommandPalette")p(!0);else if(R==="escape")p(!1),x(!1);else if(R==="toggleTheme")r(n==="light"?"dark":"light");else if(R==="toggleSidebar")v();else if(R==="focusSearch"){const S=document.querySelector('input[type="search"]');S==null||S.focus()}else R.startsWith("navigate:")&&s(R.replace("navigate:",""))},[n,r,s,v]);fr(j);const g=!d&&(c==null?void 0:c.valid)===!0&&!c.isExpired,C=n==="dark"?"pilot-shell":"pilot-shell-light";return d?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":C,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):g?e.jsx("div",{"data-theme":C,children:e.jsx(ps,{children:e.jsx(Vn,{children:e.jsxs(Bn,{children:[e.jsx(na,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:f,onToggleLogs:w,sidebarCollapsed:h,onToggleSidebar:v,children:e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsx(aa,{routes:wr})})}),e.jsx(ir,{isOpen:m,onClose:()=>x(!1)}),e.jsx(cr,{open:b,onClose:()=>p(!1),onNavigate:s,onToggleTheme:f,onToggleSidebar:v})]})})})}):e.jsx("div",{"data-theme":C,children:e.jsx(lr,{license:c,onActivated:u})})}class kr extends o.Component{constructor(s){super(s),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,n){console.error("[ErrorBoundary] Caught error:",s,n),this.setState({error:s,errorInfo:n})}render(){return this.state.hasError?e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:"The application encountered an error. Please refresh the page to try again."}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` +import{j as e,a as o,M as ns,b as as}from"./vendor-markdown.js";import{r as rs,a as is}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},tt;function os(){if(tt)return ke;tt=1;var t=rs();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var cs=os();const ls="modulepreload",ds=function(t,s){return new URL(t,s).href},st={},Z=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ds(l,r),l in st)return;st[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const j=d[f];if(j.href===l&&(!m||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":ls,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,j)=>{p.addEventListener("load",f),p.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function us(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const ms={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function se({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${ms[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Y({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function X({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Ir({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},xs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${xs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:is.createPortal(c,document.body)}const Tt=o.createContext(!1);function Dr(){return o.useContext(Tt)}function bs({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Tt.Provider,{value:s,children:t})}function gs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const It=Object.freeze({left:0,top:0,width:16,height:16}),Pe=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),We=Object.freeze({...It,...Pe}),qe=Object.freeze({...We,body:"",hidden:!1});function js(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function nt(t,s){const n=js(t,s);for(const r in qe)r in Pe?r in t&&!(r in n)&&(n[r]=Pe[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function vs(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=nt(r[d]||a[d],i)}return c(s),n.forEach(c),nt(t,i)}function Dt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=gs(t);for(const a in r){const i=r[a];i&&(s(a,vs(t,a,i)),n.push(a))}return n}const ys={provider:"",aliases:{},not_found:{},...It};function _e(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function _t(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!_e(t,ys))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!_e(i,qe))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!_e(i,qe))return null}return s}const at=Object.create(null);function ws(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function le(t,s){const n=at[t]||(at[t]=Object.create(null));return n[s]||(n[s]=ws(t,s))}function Lt(t,s){return _t(s)?Dt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function Ns(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const $t=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ie=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ce(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ce(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ce(d,n)?null:d}return null},Ce=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function At(t){return typeof t=="boolean"&&(we=t),we}function rt(t){const s=typeof t=="string"?Ie(t,!0,we):t;if(s){const n=le(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function ks(t,s){const n=Ie(t,!0,we);if(!n)return!1;const r=le(n.provider,n.prefix);return s?Ns(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return _t(t)&&(t.prefix="",Dt(t,(i,c)=>{ks(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ce({prefix:n,name:"a"}))return!1;const r=le(s,n);return!!Lt(r,t)}const Ot=Object.freeze({width:null,height:null}),Mt=Object.freeze({...Ot,...Pe}),Cs=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Es=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function it(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Cs);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Es.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Ps(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Rs(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Ts(t,s,n){const r=Ps(t);return Rs(r.defs,s+r.content+n)}const Is=t=>t==="unset"||t==="undefined"||t==="none";function Ds(t,s){const n={...We,...t},r={...Mt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const j=[],N=f.hFlip,y=f.vFlip;let C=f.rotate;N?y?C+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):y&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let w;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:w=a.height/2+a.top,j.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,j.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}C%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),j.length&&(i=Ts(i,'<g transform="'+j.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=it(m,u/h)):(l=c==="auto"?u:c,m=d===null?it(l,h/u):d==="auto"?h:d);const x={},g=(f,j)=>{Is(j)||(x[f]=j.toString())};g("width",l),g("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const _s=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let $s=0;function As(t,s=Ls){const n=[];let r;for(;r=_s.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+($s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Ge=Object.create(null);function Os(t,s){Ge[t]=s}function Be(t){return Ge[t]||Ge[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Qe=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Ee=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Ee.push(ue.shift()):Ee.push(ue.pop());Qe[""]=Je({resources:["https://api.iconify.design"].concat(Ee)});function Ms(t,s){const n=Je(s);return n===null?!1:(Qe[t]=n,!0)}function Ye(t){return Qe[t]}const zs=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ot=zs();function Fs(t,s){const n=Ye(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Us(t){return t===404}const qs=(t,s,n)=>{const r=[],a=Fs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function Gs(t){if(typeof t=="string"){const s=Ye(t);if(s)return s.path}return"/"}const Bs=(t,s,n)=>{if(!ot){n("abort",424);return}let r=Gs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;ot(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Us(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Hs={prepare:qs,send:Bs};function zt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||zt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Ks=0;function Ws(t,s,n){const r=Ks++,a=zt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Js(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=le(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Qs(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?Ie(a,s,n):a;i&&r.push(i)}),r}const Ys={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Xs(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let b=t.resources.slice(0);for(c=[];b.length>1;){const _=Math.floor(Math.random()*b.length);c.push(b[_]),b=b.slice(0,_).concat(b.slice(_+1))}c=c.concat(b)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],g=[];typeof r=="function"&&g.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function j(b,_){_&&(g=[]),typeof b=="function"&&g.push(b)}function N(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:j,abort:f}}function y(){u="failed",g.forEach(b=>{b(void 0,l)})}function C(){x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function w(b,_,T){const P=_!=="success";switch(x=x.filter(E=>E!==b),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(_==="abort"){l=T,y();return}if(P){l=T,x.length||(c.length?R():y());return}if(p(),C(),!t.random){const E=t.resources.indexOf(b.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",g.forEach(E=>{E(T)})}function R(){if(u!=="pending")return;p();const b=c.shift();if(b===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(C(),y())},t.timeout);return}y();return}const _={status:"pending",resource:b,callback:(T,P)=>{w(_,T,P)}};x.push(_),h++,m=setTimeout(R,t.rotate),n(b,s,_.callback)}return setTimeout(R),N}function Ft(t){const s={...Ys,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Xs(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ct(){}const Le=Object.create(null);function Zs(t){if(!Le[t]){const s=Ye(t);if(!s)return;const n=Ft(s),r={config:s,redundancy:n};Le[t]=r}return Le[t]}function en(t,s,n){let r,a;if(typeof t=="string"){const i=Be(t);if(!i)return n(void 0,424),ct;a=i.send;const c=Zs(t);c&&(r=c.redundancy)}else{const i=Je(t);if(i){r=Ft(i);const c=t.resources?t.resources[0]:"",d=Be(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ct):r.query(s,a,n)().abort}function lt(){}function tn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function sn(t){const s=[],n=[];return t.forEach(r=>{(r.match($t)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),tn(t)}function dt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function nn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){dt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);dt(m,x=>{const g=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],g)})});return}const{valid:c,invalid:d}=sn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match($t)?Be(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{en(n,l,m=>{me(t,l.icons,m)})})}))}const an=(t,s)=>{const n=Qs(t,!0,At()),r=Js(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,lt)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(le(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=le(h,l),g=x.pendingIcons||(x.pendingIcons=new Set);g.has(m)||(g.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&nn(u,h)}),s?Ws(s,r,i):lt};function rn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Ot?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const on=/[\s,]+/;function cn(t,s){s.split(on).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ln(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function dn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function un(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function mn(t){return"data:image/svg+xml,"+un(t)}function hn(t){return'url("'+mn(t)+'")'}let je;function fn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function xn(t){return je===void 0&&fn(),je?je.createHTML(t):t}const Ut={...Mt,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},bn={display:"inline-block"},He={backgroundColor:"currentColor"},qt={backgroundColor:"transparent"},ut={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},mt={WebkitMask:He,mask:He,background:qt};for(const t in mt){const s=mt[t];for(const n in ut)s[t+n]=ut[n]}const gn={...Ut,inline:!0};function ht(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const jn=(t,s,n)=>{const r=s.inline?gn:Ut,a=rn(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=Ie(n,!1,!0);if(j){const N=["iconify"],y=["provider","prefix"];for(const C of y)j[C]&&N.push("iconify--"+j[C]);u.className=N.join(" ")}}for(let j in s){const N=s[j];if(N!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=N;break;case"className":u[j]=(u[j]?u[j]+" ":"")+N;break;case"inline":case"hFlip":case"vFlip":a[j]=N===!0||N==="true"||N===1;break;case"flip":typeof N=="string"&&cn(a,N);break;case"color":c.color=N;break;case"rotate":typeof N=="string"?a[j]=ln(N):typeof N=="number"&&(a[j]=N);break;case"ariaHidden":case"aria-hidden":N!==!0&&N!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=N)}}const h=Ds(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let j=0,N=s.id;return typeof N=="string"&&(N=N.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:xn(As(h.body,N?()=>N+"ID"+j++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:g}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=dn(m,{...l,width:x+"",height:g+""});return u.style={...c,"--svg":hn(f),width:ht(l.width),height:ht(l.height),...bn,...p?He:qt,...d},o.createElement("span",u)};At(!0);Os("",Hs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Ms(n,a)||console.error(r)}catch{console.error(r)}}}}function Gt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(g){if(g){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=rt(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const g=r.callback;g&&(g(),a({}))}function h(g){if(JSON.stringify(c)!==JSON.stringify(g))return u(),d(g),!0}function l(){var g;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=rt(p);if(h({name:p,data:f}))if(f===void 0){const j=an([p],l);a({callback:j})}else f&&((g=t.onLoad)===null||g===void 0||g.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?jn({...We,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const vn=o.forwardRef((t,s)=>Gt({...t,_ref:s}));o.forwardRef((t,s)=>Gt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(vn,{icon:t,width:s,height:s,className:n,style:r})}function Ve({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const yn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${yn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const wn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function Nn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=wn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const g=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(S,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),g()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function kn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(Nn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Cn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Cn,{},s))})]})}function En({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const Pn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Tn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:Pn.map(n=>e.jsx(En,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const In={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ft(t){return t.isExpired||t.tier==="trial"}function Dn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ft(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=In[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ft(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function _n({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const g=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();g.success?(a(""),n(),s()):c(g.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Bt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Ln={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Ln[s],{license:i,isLoading:c,refetch:d}=Bt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Dn,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(_n,{open:u,onClose:()=>h(!1),onActivated:d})]})}function An({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(us,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Tn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function On(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Mn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function zn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Fn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Un({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=zn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Mn[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?Fn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:On(m.created_at)})]})]})},m.id))})]})]})}function qn(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(g=>g.some(p=>p.id===x.id)?g:[x,...g]),r(g=>g+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Ht="pilot-memory-theme";function Gn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xt(){try{const t=localStorage.getItem(Ht);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Gn():t}function bt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=o.useState(xt),[n,r]=o.useState(()=>pt(xt()));return o.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",bt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",bt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Ht,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Kt=o.createContext(null);let Bn=0;function Hn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Bn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(kn,{toasts:s,onDismiss:a})]})}function Wt(){const t=o.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Vn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Jt=o.createContext(Vn);function Kn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Jt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Jt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?gt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(gt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function gt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Wn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:g,clearAll:p}=qn(),f=o.useCallback((N,y)=>{y&&u.includes(y)&&d(y),h(N)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(N=>N.json()).then(N=>{a(N.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(Un,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:g,onClearAll:p,onNavigate:f})]})}const Jn=10080*60*1e3,jt=3,Qn={plan:"Plan",implement:"Impl",verify:"Verify"},Yn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Xn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Zn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function ea({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Yn[t.phase]||""}`,children:Qn[t.phase]||t.phase})]}),e.jsx(Zn,{spec:t,tasks:r,loading:a})]})}function ta({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function sa(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const N=(await f.json()).specs||[],y=Date.now();s(N.filter(C=>C.status!=="VERIFIED"&&y-new Date(C.modifiedAt).getTime()<Jn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const j=n[f.filePath];if(!(j&&j.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(N=>({...N,[f.filePath]:!0}));try{const N=f.project?`&project=${encodeURIComponent(f.project)}`:"",y=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${N}`);if(!y.ok)return;const C=await y.json(),w=Xn(C.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:w}}))}catch{}finally{i(N=>({...N,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const j=encodeURIComponent(f.filePath);u(`/spec?path=${j}`)},[u,c,d]);if(t.length===0)return null;const g=t.slice(0,jt),p=t.slice(jt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[g.map(f=>{var j;return e.jsx(ea,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((j=n[f.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ta,{specs:p,onPick:x})]})}function na({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(sa,{})}),e.jsx(Wn,{onToggleTheme:t,onToggleLogs:s})]})}function aa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(An,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(na,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ra({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ia(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ia(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const $e="https://pilot-shell.com/docs";function oa(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:$e,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:$e,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:$e,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ca={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},la={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function da(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ua({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=ca[t.type]||la,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Y,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(X,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(S,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),da(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ma={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ha({memory:t,onClose:s}){const n=t?ma[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function fa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(se,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const xa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},pa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function ba(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ga({result:t}){const s=t.obsType||t.type,n=xa[s]||pa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Y,{className:"hover:shadow-md transition-shadow",children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),ba(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Re(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ja=12e4;function va(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),g=o.useCallback(async f=>{var y;(y=m.current)==null||y.abort(),x.current=!1;const j=new AbortController;m.current=j;const N=setTimeout(()=>j.abort(),ja);c(!0),n(!0),u(null);try{const C=new URLSearchParams({query:f,limit:"30"});t&&C.set("project",t);const w=await fetch(`/api/search/semantic?${C}`,{signal:j.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const R=await w.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(C){if(x.current)return;C.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(N),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:g,handleClearSearch:p}}function vt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:g,searchMeta:p,handleSearch:f,handleClearSearch:j}=va(),N=o.useCallback(async b=>{await f(b)},[f]),y=o.useCallback(async()=>{a(!0);try{const b=new URLSearchParams;h&&b.set("project",h),b.set("limit","50");const T=await(await fetch(`/api/observations?${b}`)).json(),P=T.items||T.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:C(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(b){console.error("Failed to fetch memories:",b)}finally{a(!1)}},[h]);function C(b){if(!b)return"";const _=new Date(b),P=new Date().getTime()-_.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:_.toLocaleDateString()}o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const b=s.find(_=>_.id===d);b&&(u.current=!0,c(b))}},[d,r,s]);const w=b=>{const _=s.find(T=>T.id===b);_&&c(_)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Re,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(se,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(se,{variant:"ghost",size:"sm",onClick:y,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(fa,{onSearch:N,isSearching:x,placeholder:"Search memories semantically..."}),g&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:g})]}),l?x?e.jsx(oe,{}):g?null:m.length===0?e.jsx(Ve,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(b=>e.jsx(ga,{result:b},`${b.type}-${b.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(b=>e.jsx(ua,{memory:b,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},b.id))}),e.jsx(ha,{memory:i,onClose:()=>c(null)})]})}const yt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function ya(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wa({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Ae({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Na(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function ka({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=yt[t.status]||yt.active;return e.jsx(Y,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(wa,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),ya(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Ae,{icon:"lucide:dollar-sign",value:a!=null?Na(a):"—",label:"Cost"}),e.jsx(Ae,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Ae,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Oe={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Sa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ca({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"bg-base-200/50",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Y,{className:"bg-primary/10 border-primary/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Y,{className:"bg-warning/10 border-warning/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var j,N;const x=`${l.type}-${l.id}`,g=c.has(x),p=l.type==="prompt"?Oe.prompt:Oe[l.data.type]||Oe.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Y,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:y=>{y.stopPropagation(),u(x)},children:e.jsx(X,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Sa(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(y=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:y},y))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((N=l.data.prompt_text)==null?void 0:N.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"whitespace-pre-wrap":"line-clamp-3"}`,children:g?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),y.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),y.length," modified"]})}catch{return null}})()]}),g&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:g?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ea(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Pa={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ra({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Pa[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ta({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function j(){var N;h(!0);try{const[y,C]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(y.ok){const w=await y.json();w.stats?(i(w.stats),m(!0),(N=x.current)==null||N.call(x,w.stats.is_resumed)):m(!1)}else m(!1);if(C.ok){const w=await C.json();d(w.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return j(),()=>{f=!0}},[t.id,s]);const g=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),g.map(([f,j])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ea(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ra,{tools:a.tools})]}),e.jsx(Ca,{sessionId:t.id,skipHeader:!0})]})})}const Ia=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function wt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[g,p]=o.useState({}),{selectedProject:f,setSelectedProject:j}=ie(),N=o.useRef(null),[y,C]=o.useState(new Set),w=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const z=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(z),z.length>0){const L=z.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{w(d||void 0)},[w,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&j(E.project)):f&&s.length>0&&j(null)},[t.selected,r,s,f,j]);const R=P=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{u(P)},300)},b=o.useCallback(P=>{C(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),_=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},T=o.useMemo(()=>{const P=[],E=[];for(const z of s)z.status==="active"?P.push(z):E.push(z);const A=m==="desc"?-1:1,G=(z,L)=>A*(wt(z,h,g)-wt(L,h,g));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,g]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Re,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>w(d||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ia.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>_(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:A,size:12}),E,G&&e.jsx(S,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),T.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(ka,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:y.has(P.id),costUsd:g[P.id]})},P.id))]}),i&&e.jsx(Ta,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:b})]})}const ve=["sonnet","opus"],Qt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Yt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Yt.test(r):!1}function Te(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Yt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function _a(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...J,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(w=>{s(R=>({...R,model:w})),d(!0),h(!1)},[]),m=o.useCallback(w=>{s(R=>({...R,extendedContext:w})),d(!0),h(!1)},[]),x=o.useCallback((w,R)=>{s(b=>({...b,extendedContextOverrides:{...b.extendedContextOverrides,[w]:R}})),d(!0),h(!1)},[]),g=o.useCallback((w,R)=>{s(b=>({...b,skills:{...b.skills,[w]:R}})),d(!0),h(!1)},[]),p=o.useCallback((w,R)=>{s(b=>({...b,agents:{...b.agents,[w]:R}})),d(!0),h(!1)},[]),f=o.useCallback((w,R)=>{s(b=>({...b,reviewerAgents:{...b.reviewerAgents,[w]:R}})),d(!0),h(!1)},[]),j=o.useCallback((w,R)=>{s(b=>({...b,codexReviewers:{...b.codexReviewers,[w]:R}})),d(!0),h(!1)},[]),N=o.useCallback((w,R)=>{s(b=>({...b,specWorkflow:{...b.specWorkflow,[w]:R}})),d(!0),h(!1)},[]),y=o.useCallback((w,R)=>{s(b=>({...b,securityScanner:{...b.securityScanner,[w]:R}})),d(!0),h(!1)},[]),C=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:g,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:j,updateSpecWorkflow:N,updateSecurityScanner:y,save:C}}const Me="__custom__";function ze({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Te(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?Me:t,x=p=>{if(p===Me){u(!0);return}u(!1),l(""),n(p)},g=()=>{const p=h.trim();Nt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Qt[p]??p},p)),e.jsx("option",{value:Me,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!Nt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:g,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),g())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function kt(t,s,n){return Te(t)?t.endsWith("[1m]"):s??n}const La=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],$a=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Aa=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Oa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Ma=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],za=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function Fe({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function St({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Ct({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Qt[t]??t})}const fe=41777,xe=1024,pe=65535;function Fa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,updateSecurityScanner:x,save:g}=_a(),[p,f]=o.useState(null),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(!1),[b,_]=o.useState(null),[T,P]=o.useState(fe),[E,A]=o.useState(fe),[G,z]=o.useState(fe),[L,I]=o.useState(!1),[D,O]=o.useState(null),[F,K]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(v=>v.ok?v.json():null).then(v=>{if(!v)return;const $=typeof v.workerPort=="number"?v.workerPort:fe,q=typeof v.defaultPort=="number"?v.defaultPort:fe;P($),A($),z(q)}).catch(()=>{})},[]);const Q=T!==E,ne=async()=>{if(O(null),K(!1),!Number.isInteger(T)||T<xe||T>pe){O(`Port must be an integer between ${xe} and ${pe}`);return}I(!0);try{const v=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!v.ok){const B=await v.json().catch(()=>null);throw new Error((B==null?void 0:B.error)??`Save failed: ${v.status}`)}const $=await v.json(),q=typeof $.workerPort=="number"?$.workerPort:T;A(q),P(q),K(!0),C(!0)}catch(v){O(v instanceof Error?v.message:"Failed to save")}finally{I(!1)}},H=()=>{P(G),K(!1),O(null)},k=o.useRef(!1),M=o.useRef(!1);o.useEffect(()=>{k.current=r},[r]);const U=async()=>{N(!0),f(null);try{await g(),C(!0)}catch(v){f(v instanceof Error?v.message:"Failed to save")}finally{N(!1)}};o.useEffect(()=>{const v=$=>{k.current&&$.preventDefault()};return window.addEventListener("beforeunload",v),()=>window.removeEventListener("beforeunload",v)},[]),o.useEffect(()=>{const v=()=>{if(M.current){M.current=!1;return}if(!k.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(M.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),_("#"+$),R(!0))};return window.addEventListener("hashchange",v),()=>window.removeEventListener("hashchange",v)},[]);const ee=()=>{R(!1),k.current=!1,b&&(window.location.hash=b)},te=()=>{R(!1),_(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${j?"loading":""}`,onClick:U,disabled:j||!r,children:j?"Saving...":r?"Save Changes":"Saved"})]}),p&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:p})}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(St,{children:"General"}),La.map(v=>{var de;const $=v.key==="main",q=$?t.model:t.skills[v.key]??J.skills[v.key],B=$?J.model:J.skills[v.key],ae=Te(q),W=kt(q,(de=t.extendedContextOverrides)==null?void 0:de[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(ze,{value:q,choices:ve,onChange:$?a:De=>d(v.key,De),id:$?"main-model":`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:W,disabled:ae,onChange:De=>c(v.key,De.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:ae?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:B})})]},v.key)}),e.jsx(St,{children:"Spec Phases"}),$a.map(v=>{var ae;const $=t.skills[v.key]??J.skills[v.key],q=Te($),B=kt($,(ae=t.extendedContextOverrides)==null?void 0:ae[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(ze,{value:$,choices:ve,onChange:W=>d(v.key,W),id:`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:B,disabled:q,onChange:W=>c(v.key,W.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:q?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:J.skills[v.key]})})]},v.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:v=>i(v.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Console"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:T,onChange:v=>{const $=parseInt(v.target.value,10);P(Number.isNaN($)?0:$),K(!1),O(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:H,disabled:T===G,title:`Reset to default (${G})`,children:"Reset"}),e.jsxs("span",{className:"text-xs text-base-content/55 flex-1 min-w-0 truncate",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(T)&&T>0?T:"?"]})," ",e.jsxs("span",{className:"text-base-content/40",children:["· ",xe,"–",pe," · restart Pilot to apply"]})]}),e.jsx("button",{className:`btn btn-primary btn-sm ${L?"loading":""}`,onClick:ne,disabled:L||!Q||!Number.isInteger(T)||T<xe||T>pe,children:L?"Saving...":"Save Port"})]}),D&&e.jsx("div",{className:"text-xs text-error mt-2",children:D}),F&&!Q&&!D&&e.jsx("div",{className:"text-xs text-success mt-2",children:"✓ Saved — restart Pilot for the new port to take effect."})]})})]}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Aa.map(v=>{var q;const $=((q=t.reviewerAgents)==null?void 0:q[v.toggleKey])??J.reviewerAgents[v.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>h(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":`Enable ${v.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx(ze,{value:t.agents[v.key]??J.agents[v.key],choices:ve,onChange:B=>u(v.key,B),id:`agent-${v.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Oa.map(v=>{var q;const $=t.codexAvailable&&(((q=t.codexReviewers)==null?void 0:q[v.toggleKey])??J.codexReviewers[v.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>l(v.toggleKey,B.target.checked),disabled:!t.codexAvailable,id:`toggle-${v.key}`,"aria-label":`Enable ${v.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Ma.map(v=>{var q;const $=((q=t.specWorkflow)==null?void 0:q[v.toggleKey])??J.specWorkflow[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>m(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2",children:za.map(v=>{var q;const $=((q=t.securityScanner)==null?void 0:q[v.toggleKey])??J.securityScanner[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>x(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]}),e.jsxs(ye,{open:y,onClose:()=>C(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>C(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:w,onClose:te,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:te,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:ee,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Xe(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Ze(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const et=Object.freeze(Object.defineProperty({__proto__:null,compress:Xe,decompress:Ze},Symbol.toStringTag,{value:"Module"})),Xt=32768;async function Zt(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function Ua(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}async function qa(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function es(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}function ts(t){return/^[A-Za-z0-9]{8}$/.test(t)}const _r=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:qa,generateShareUrl:Zt,isPasteServiceId:ts,parseFeedbackUrl:es,parseShareUrl:Ua},Symbol.toStringTag,{value:"Module"}));async function Ga(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(ts(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await Z(async()=>{const{decompress:u}=await Promise.resolve().then(()=>et);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return es(a)}function Ba({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Wt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var j,N;const f=m.current;f&&(t?((j=f.showModal)==null||j.call(f),setTimeout(()=>{var y;return(y=x.current)==null?void 0:y.focus()},50)):((N=f.close)==null||N.call(f),u(""),l({status:"idle"})))},[t]);const g=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ga(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const j=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),N=j.ok?(await j.json()).planAnnotations??[]:[],C=f.annotations.map(b=>({id:b.id??crypto.randomUUID(),blockId:b.blockId??"",originalText:b.originalText??"",text:b.text??"",createdAt:b.createdAt??Date.now(),author:b.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(b=>!N.some(_=>_.originalText===b.originalText&&_.text===b.text));if(C.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const w=[...N,...C],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:w})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(C),l({status:"done",count:C.length,author:f.author}),i(`Imported ${C.length} annotation${C.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(S,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&g()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:g,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(S,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ha="https://pilot-shell.com/shared",Va=32768;function Ue(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ka(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),g=o.useCallback(N=>{m(N),s(""),r(""),h(null)},[]),p=o.useCallback(async(N,y,C,w,R)=>{const b=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let _=y;if(_.length===0&&w)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(w)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(_=E.planAnnotations)}}catch{}const T={specContent:N,annotations:_.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:C??await Wa(),planPath:w,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(b!==x.current)return;if(l==="web"){const{compress:P}=await Z(async()=>{const{compress:G}=await Promise.resolve().then(()=>et);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(T));if(b!==x.current)return;if(E.length>Va){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ha}#${E}`;s(A),r(Ue(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Zt(T,P);if(b!==x.current)return;if(E)s(E.url),r(Ue(new Blob([E.url]).size)),i(!1);else{const A=await Ja(T,P);if(b!==x.current)return;A?(s(A.url),r(Ue(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(_){if(b!==x.current)return;h(_ instanceof Error?_.message:"Failed to generate share URL")}finally{b===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),j=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:g,generate:p,copyToClipboard:f,clear:j}}async function Wa(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ja(t,s){try{const{compress:n}=await Z(async()=>{const{compress:d}=await Promise.resolve().then(()=>et);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Wt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:g,target:p,setTarget:f,generate:j,copyToClipboard:N,clear:y}=Ka(),C=o.useRef(null),w=o.useRef(null);o.useEffect(()=>{t&&j(n,r,void 0,a,i),t||y()},[t,p]),o.useEffect(()=>{var P,E;const T=C.current;T&&(t?(P=T.showModal)==null||P.call(T):(E=T.close)==null||E.call(T))},[t]);const R=async()=>{await N()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},b=T=>{T!==p&&f(T)},_=T=>{T.key==="Escape"&&s()};return e.jsx("dialog",{ref:C,className:"modal",onKeyDown:_,onClick:T=>{T.target===C.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("local"),children:[e.jsx(S,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("web"),children:[e.jsx(S,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&g&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:g})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:w,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var T;return(T=w.current)==null?void 0:T.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ya({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ns,{remarkPlugins:[as],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Xa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Za({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Xa[t]||"lucide:file-text";return e.jsx(Y,{children:e.jsxs(X,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ya,{content:s})})})]})})}const er={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},tr=o.lazy(()=>Z(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],nr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function ar(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let g=0;g<m.length;g++){const{heading:p,contentStart:f}=m[g];if(!sr.includes(p))continue;const j=g+1<m.length?m[g+1].index:t.length,N=t.slice(f,j).trim();N&&h.push({heading:p,content:N})}return{title:n,sections:h,metadata:r}}function rr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ir(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const D=decodeURIComponent(s.path);i(O=>O===D?O:D)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,g]=o.useState(null),[p,f]=o.useState("view"),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(0),[b,_]=o.useState(!1),T=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),g(null),h(!0));const E=o.useCallback(async()=>{var D;try{const F=await(await fetch(`/api/prd${T}`)).json();r(F.prds||[]),((D=F.prds)==null?void 0:D.length)>0&&!a&&i(F.prds[0].filePath)}catch(O){g("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,T]),A=o.useCallback(async(D,O=!1)=>{O||m(!0),g(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){g("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{O||m(!1)}},[t]),G=o.useCallback(async D=>{if(confirm(`Delete "${D.split("/").pop()}"? This cannot be undone.`)){_(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){g("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{_(!1)}}},[E,t]);if(o.useEffect(()=>{E();const D=setInterval(()=>{E(),a&&A(a,!0)},er.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(D)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{})," "]}),e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const z=n.find(D=>D.filePath===a),L=n.filter(D=>D.filePath!==a),I=c?ar(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),z&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:z.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:rr(z.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:D=>i(D.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(D=>e.jsx("option",{value:D.filePath,children:D.name},D.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:b,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(tr,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>C(!0),onReceiveFeedback:()=>N(!0),reloadKey:w})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:e.jsxs(X,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:nr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>C(!0),title:"Share PRD with a teammate",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>N(!0),title:"Receive feedback from a colleague",children:[e.jsx(S,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(D=>e.jsx(Za,{heading:D.heading,content:D.content,defaultOpen:D.heading==="Problem Statement"||D.heading==="Scope"},D.heading))})]})]}):null,c&&j&&e.jsx(Ba,{isOpen:j,onClose:()=>N(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{N(!1),f("annotate"),R(D=>D+1)}}),c&&y&&e.jsx(Qa,{isOpen:y,onClose:()=>C(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{C(!1),setTimeout(()=>N(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function or(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function cr({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,g]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),j=o.useRef(null),N=o.useRef(!0),[y,C]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[b,_]=o.useState(!1),T=o.useMemo(()=>n?n.split(` +`).map(or):[],[n]),P=o.useMemo(()=>T.filter(k=>b?k.raw.includes("[ALIGNMENT]"):!k.level||!k.component?!0:y.has(k.level)&&w.has(k.component)),[T,y,w,b]),E=o.useCallback(()=>{if(!j.current)return!0;const{scrollTop:k,scrollHeight:M,clientHeight:U}=j.current;return M-k-U<50},[]),A=o.useCallback(()=>{j.current&&N.current&&(j.current.scrollTop=j.current.scrollHeight)},[]),G=o.useCallback(async()=>{N.current=E(),i(!0),d(null);try{const k=await fetch("/api/logs");if(!k.ok)throw new Error(`Failed to fetch logs: ${k.statusText}`);const M=await k.json();r(M.logs||"")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}},[E]);o.useEffect(()=>{A()},[n,A]);const z=o.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),d(null);try{const k=await fetch("/api/logs/clear",{method:"POST"});if(!k.ok)throw new Error(`Failed to clear logs: ${k.statusText}`);r("")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}}},[]),L=o.useCallback(k=>{k.preventDefault(),g(!0),p.current=k.clientY,f.current=l},[l]);o.useEffect(()=>{if(!x)return;const k=U=>{const ee=p.current-U.clientY,te=Math.min(Math.max(150,f.current+ee),window.innerHeight-100);m(te)},M=()=>{g(!1)};return document.addEventListener("mousemove",k),document.addEventListener("mouseup",M),()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",M)}},[x]),o.useEffect(()=>{t&&(N.current=!0,G())},[t,G]),o.useEffect(()=>{if(!t||!u)return;const k=setInterval(G,2e3);return()=>clearInterval(k)},[t,u,G]);const I=o.useCallback(k=>{C(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),D=o.useCallback(k=>{R(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),O=o.useCallback(k=>{C(k?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),F=o.useCallback(k=>{R(k?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const K=k=>{const M=be.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},Q=k=>{const M=ge.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},ne=k=>k.level==="ERROR"?"bg-error/10":k.level==="WARN"?"bg-warning/5":"",H=(k,M)=>{var te,v;if(!k.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:k.raw},M);const U=be.find($=>$.key===k.level),ee=ge.find($=>$.key===k.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${ne(k)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",k.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${K(k.level)}`,title:k.level,children:["[",(U==null?void 0:U.icon)||""," ",(te=k.level)==null?void 0:te.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${Q(k.component)}`,title:k.component,children:["[",(ee==null?void 0:ee.icon)||""," ",(v=k.component)==null?void 0:v.padEnd(7),"]"]})," ",k.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",k.correlationId,"]"]})," "]}),e.jsx("span",{className:k.isSpecial==="success"?"text-success":k.isSpecial==="failure"?"text-error":"text-base-content",children:k.message})]},M)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${l}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:L,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:k=>h(k.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:G,disabled:a,title:"Refresh logs",children:e.jsx(S,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{N.current=!0,A()},title:"Scroll to bottom",children:e.jsx(S,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:z,disabled:a,title:"Clear logs",children:e.jsx(S,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(S,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${b?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>_(!b),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[be.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${y.has(k.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>I(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>O(y.size===0),title:y.size===be.length?"Select none":"Select all",children:y.size===be.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ge.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${w.has(k.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>D(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>F(w.size===0),title:w.size===ge.length?"Select none":"Select all",children:w.size===ge.length?"○":"●"})]})]})]}),c&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",c]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:j,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:P.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):P.map((k,M)=>H(k,M))})})]})}const Ke={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},lr=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function Et(t){var r,a,i,c;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(c=t.modifiers)!=null&&c.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function dr({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,c]=o.useState(""),[d,u]=o.useState(0),h=o.useRef(null),l=o.useRef(null),m=o.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:Et(Ke.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:Et(Ke.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),x=o.useMemo(()=>{if(!i)return m;const y=i.toLowerCase();return m.filter(C=>C.label.toLowerCase().includes(y)||C.category.toLowerCase().includes(y))},[m,i]);o.useEffect(()=>{u(0)},[i]),o.useEffect(()=>{t&&(c(""),u(0),setTimeout(()=>{var y;return(y=h.current)==null?void 0:y.focus()},50))},[t]),o.useEffect(()=>{if(!l.current)return;const y=l.current.querySelector('[data-selected="true"]');y==null||y.scrollIntoView({block:"nearest"})},[d]);const g=y=>{y.action(),s()},p=y=>{switch(y.key){case"ArrowDown":y.preventDefault(),u(C=>(C+1)%x.length);break;case"ArrowUp":y.preventDefault(),u(C=>(C-1+x.length)%x.length);break;case"Enter":y.preventDefault(),x[d]&&g(x[d]);break;case"Escape":y.preventDefault(),s();break}};if(!t)return null;const f=x.reduce((y,C)=>(y[C.category]||(y[C.category]=[]),y[C.category].push(C),y),{}),j={navigation:"Navigation",action:"Actions",theme:"Theme"};let N=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(S,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:h,type:"text",placeholder:"Type a command or search...",value:i,onChange:y=>c(y.target.value),onKeyDown:p,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:l,className:"max-h-80 overflow-y-auto p-2",children:x.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(f).map(([y,C])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:j[y]||y}),C.map(w=>{const R=N===d,b=N;return N++,e.jsxs("button",{"data-selected":R,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${R?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>g(w),onMouseEnter:()=>u(b),children:[e.jsx(S,{icon:w.icon,size:16,className:R?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:w.label}),w.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${R?"bg-primary-content/20 text-primary-content":""}`,children:w.shortcut})]},w.id)})]},y))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function ur({license:t,onActivated:s}){const[n,r]=o.useState(""),[a,i]=o.useState(null),[c,d]=o.useState(!1),u=o.useCallback(async()=>{const g=n.trim();if(g){i(null),d(!0);try{const f=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g})})).json();f.success?(r(""),i(null),s()):i(f.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{d(!1)}}},[n,s]),h=o.useCallback(g=>{g.key==="Enter"&&!c&&u()},[u,c]),l=(t==null?void 0:t.isExpired)===!0,m=l?"License Expired":"License Required",x=l?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:l?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:m}),e.jsx("p",{className:"text-base-content/60 text-sm",children:x}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:g=>{r(g.target.value),i(null)},onKeyDown:h,disabled:c,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:c||!n.trim(),children:c?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}const mr={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function hr(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return mr}function fr(){const{selectedProject:t,setProjects:s}=ie(),[n,r]=o.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=o.useState({status:"offline"}),[c,d]=o.useState([]),[u,h]=o.useState({active:!1,plans:[]}),[l,m]=o.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[x,g]=o.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[p,f]=o.useState(0),[j,N]=o.useState(0),[y,C]=o.useState(0),[w,R]=o.useState([]),[b,_]=o.useState(hr),[T,P]=o.useState(!0),E=o.useCallback(async()=>{var z;try{const L=await fetch("/api/extensions?all=true").catch(()=>null);if(!(L!=null&&L.ok))return;const D=(await L.json()).extensions??[],O=D.filter(H=>H.scope==="global"&&!H.pluginName),F=D.filter(H=>H.scope==="project"),K=D.filter(H=>H.pluginName!=null);let Q=0;try{const H=await fetch("/api/team-remote/extensions").catch(()=>null);H!=null&&H.ok&&(Q=((z=(await H.json()).extensions)==null?void 0:z.length)??0)}catch{}const ne={totalGlobal:O.length,totalProject:F.length,totalPlugin:K.length,totalRemote:Q};_(ne);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(ne))}catch{}}catch{}},[]),A=o.useCallback(async()=>{const z=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${z}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([L,I,D,O])=>{var ee,te,v,$,q,B,ae;const F=await L.json(),K=await I.json(),Q=await D.json(),ne=await O.json(),H=Q.items||Q.observations||Q||[],k=Array.isArray(H)?H:[],M=k.length>0&&((ee=k[0])==null?void 0:ee.created_at)||null,U=ne.projects||[];s(U),r({observations:((te=F.database)==null?void 0:te.observations)||0,summaries:((v=F.database)==null?void 0:v.summaries)||0,sessions:(($=F.database)==null?void 0:$.sessions)||0,lastObservationAt:M?Pt(M):null,projects:U.length}),i({status:K.status==="ok"?K.isProcessing?"processing":"online":"offline",version:(q=F.worker)==null?void 0:q.version,uptime:(B=F.worker)!=null&&B.uptime?xr(F.worker.uptime):void 0,queueDepth:K.queueDepth||0,workspaceProject:(ae=F.worker)==null?void 0:ae.workspaceProject}),d(k.slice(0,2).map(W=>{var de;return{id:W.id,type:W.obs_type||W.type||"observation",title:W.title||((de=W.content)==null?void 0:de.slice(0,100))||"Untitled",project:W.project||"unknown",timestamp:Pt(W.created_at)}})),P(!1)}).catch(L=>{console.error("Failed to load core stats:",L),i({status:"offline"}),P(!1)}),fetch(`/api/plan${z}`).then(async L=>{const I=await L.json(),D=I.plans||(I.plan?[I.plan]:[]);h({active:D.length>0,plans:D})}).catch(()=>{}),fetch(`/api/git${z}`).then(async L=>{const I=await L.json();m({branch:I.branch||null,staged:I.staged||0,unstaged:I.unstaged||0,untracked:I.untracked||0,totalFiles:I.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async L=>{if(!L.ok)return;const D=(await L.json()).specs||[];g({totalSpecs:D.length,verified:D.filter(O=>O.status==="VERIFIED").length,inProgress:D.filter(O=>O.status==="COMPLETE"||O.status==="PENDING").length,pending:D.filter(O=>O.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async L=>{if(!L.ok)return;const I=await L.json();f((I.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async L=>{if(!L.ok)return;const D=(await L.json()).daily||[],O=new Date().toISOString().slice(0,10),F=D.find(K=>K.date===O);N((F==null?void 0:F.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async L=>{if(!L.ok)return;const D=(await L.json()).items||[];C(D.filter(O=>O.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async L=>{if(!L.ok)return;const I=await L.json();R(I.data||[])}).catch(()=>{})},[t,s]),G=o.useRef(A);return o.useEffect(()=>{G.current=A},[A]),o.useEffect(()=>{A()},[A]),o.useEffect(()=>{E();const z=new EventSource("/stream");return z.onmessage=L=>{try{const I=JSON.parse(L.data);I.type==="processing_status"&&i(D=>({...D,status:I.isProcessing?"processing":"online",queueDepth:I.queueDepth??D.queueDepth})),(I.type==="new_observation"||I.type==="new_summary"||I.type==="plan_association_changed")&&G.current()}catch{}},()=>{z.close()}},[E]),{stats:n,workerStatus:a,extensionsStatus:b,recentActivity:c,planStatus:u,gitInfo:l,specStats:x,prdCount:p,todayCost:j,activeSessions:y,observationTimeline:w,isLoading:T,refreshStats:A}}function Pt(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function xr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function pr(t,s={}){const{enabled:n=!0}=s,r=o.useRef([]),a=o.useRef(null),i=o.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);o.useEffect(()=>{if(!n)return;const c=d=>{const u=d.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){d.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const h=d.ctrlKey||d.metaKey;for(const l of Object.values(Ke)){const m=!l.modifiers||l.modifiers.some(p=>p==="ctrl"?d.ctrlKey:p==="meta"?d.metaKey:p==="shift"?d.shiftKey:p==="alt"?d.altKey:!1),x=d.key.toLowerCase()===l.key.toLowerCase(),g=l.modifiers&&l.modifiers.length>0;if(x&&m&&(g?h:!h)){d.preventDefault(),t(l.action),i();return}}if(!h&&!d.shiftKey&&!d.altKey){a.current&&clearTimeout(a.current),r.current.push(d.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const l of lr){const m=r.current,x=l.sequence;if(x.slice(0,m.length).every((p,f)=>p===m[f])){if(m.length===x.length){d.preventDefault(),t(l.action),i();return}return}}i()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c),i()}},[n,t,i])}const br=o.lazy(()=>Z(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),gr=o.lazy(()=>Z(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),jr=o.lazy(()=>Z(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),vr=o.lazy(()=>Z(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),yr=o.lazy(()=>Z(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),wr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.SharedSpecView}))),Nr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.FeedbackImportView}))),kr=[{path:"/",component:br},{path:"/requirements",component:ir},{path:"/spec",component:jr},{path:"/changes",component:gr},{path:"/memories",component:vt},{path:"/memories/:type",component:vt},{path:"/sessions",component:Da},{path:"/usage",component:vr},{path:"/extensions",component:yr},{path:"/settings",component:Fa},{path:"/help",component:oa},{path:"/shared/:data",component:wr},{path:"/feedback/:data",component:Nr}],Rt="pilot-memory-sidebar-collapsed";function Sr(){const{path:t,navigate:s}=ce(),{resolvedTheme:n,setThemePreference:r}=Vt(),{workerStatus:a}=fr(),i=a.version,{license:c,isLoading:d,refetch:u}=Bt(),[h,l]=o.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Rt)==="true"}catch{return!1}}),[m,x]=o.useState(!1),[g,p]=o.useState(!1),f=o.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),j=o.useCallback(()=>{l(R=>{const b=!R;try{localStorage.setItem(Rt,String(b))}catch{}return b})},[]),N=o.useCallback(()=>{x(R=>!R)},[]),y=o.useCallback(R=>{if(R==="openCommandPalette")p(!0);else if(R==="escape")p(!1),x(!1);else if(R==="toggleTheme")r(n==="light"?"dark":"light");else if(R==="toggleSidebar")j();else if(R==="focusSearch"){const b=document.querySelector('input[type="search"]');b==null||b.focus()}else R.startsWith("navigate:")&&s(R.replace("navigate:",""))},[n,r,s,j]);pr(y);const C=!d&&(c==null?void 0:c.valid)===!0&&!c.isExpired,w=n==="dark"?"pilot-shell":"pilot-shell-light";return d?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":w,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):C?e.jsx("div",{"data-theme":w,children:e.jsx(bs,{children:e.jsx(Kn,{children:e.jsxs(Hn,{children:[e.jsx(aa,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:f,onToggleLogs:N,sidebarCollapsed:h,onToggleSidebar:j,children:e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsx(ra,{routes:kr})})}),e.jsx(cr,{isOpen:m,onClose:()=>x(!1)}),e.jsx(dr,{open:g,onClose:()=>p(!1),onNavigate:s,onToggleTheme:f,onToggleSidebar:j})]})})})}):e.jsx("div",{"data-theme":w,children:e.jsx(ur,{license:c,onActivated:u})})}class Cr extends o.Component{constructor(s){super(s),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,n){console.error("[ErrorBoundary] Caught error:",s,n),this.setState({error:s,errorInfo:n})}render(){return this.state.hasError?e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:"The application encountered an error. Please refresh the page to try again."}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack]})]})]}):this.props.children}}const ts=document.getElementById("root");if(!ts)throw new Error("Root element not found");const Sr=os.createRoot(ts);Sr.render(e.jsx(kr,{children:e.jsx(Nr,{})}));export{V as B,Q as C,J as D,He as E,k as I,Jt as M,Re as P,Wa as S,Xa as T,oe as V,X as _,Y as a,ie as b,ce as c,Rr as d,mr as e,Ht as f,te as g,re as h,Ya as i,Ja as j,qa as k,Da as l,Gt as m,Kt as n,es as o,za as p,Zt as q,Ze as r,Ir as s,Tr as u}; +`+this.state.errorInfo.componentStack]})]})]}):this.props.children}}const ss=document.getElementById("root");if(!ss)throw new Error("Root element not found");const Er=cs.createRoot(ss);Er.render(e.jsx(Cr,{children:e.jsx(Sr,{})}));export{V as B,Y as C,J as D,Ve as E,S as I,Qt as M,Re as P,Qa as S,er as T,oe as V,Z as _,X as a,ie as b,ce as c,Ir as d,fr as e,Vt as f,se as g,re as h,Za as i,Ya as j,Ba as k,_a as l,Bt as m,Wt as n,ts as o,Ua as p,es as q,et as r,_r as s,Dr as u}; diff --git a/pyproject.toml b/pyproject.toml index b1f77eda3..953ceff45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,7 @@ dependencies = [ "cryptography>=46.0.6", "Cython>=3.0.0", "setuptools>=61.0", + "PyYAML>=6.0", ] [dependency-groups] diff --git a/scripts/check_manifest_drift.py b/scripts/check_manifest_drift.py new file mode 100644 index 000000000..182177aab --- /dev/null +++ b/scripts/check_manifest_drift.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python3 +"""Manifest drift checker — fails CI when installer code references unpinned upstreams. + +Forbidden patterns (per source-type): + +- `*.py`: `@latest`, `master/install.sh`, `HEAD/install.sh`, + unversioned `npm install -g <pkg>`, + hardcoded `\\d+\\.\\d+\\.\\d+` literals not in manifest. +- `install.sh`: same Python set + unversioned `uv run --with <pkg>`. +- `*.mcp.json`: unversioned `npx <pkg>` args, plus cross-reference: every + pinned `npx <pkg>@<version>` MUST resolve to a manifest + entry by id (derived from the package name without the + `@scope/` prefix). + +Per-line override: `# noqa: drift-check # <justification>` is honored if +non-empty justification follows on the same line. + +Usage: + python scripts/check_manifest_drift.py # human output, exit non-zero on findings + python scripts/check_manifest_drift.py --json # machine-readable JSON, same exit code +""" + +from __future__ import annotations + +import argparse +import json +import re +import sys +from dataclasses import dataclass +from pathlib import Path + +REPO_ROOT_DEFAULT = Path(__file__).resolve().parents[1] + +SCAN_FILES: list[str] = [ + "installer/steps/dependencies.py", + "installer/steps/prerequisites.py", + "install.sh", + "launcher/build.py", + ".mcp.json", + "pilot/.mcp.json", +] + +# Patterns that flag any python/shell file: +PY_SH_PATTERNS: list[tuple[str, re.Pattern[str]]] = [ + ("@latest tag", re.compile(r"@latest\b")), + ("master/install.sh", re.compile(r"master/install\.sh|HEAD/install\.sh")), + ( + "unversioned npm install -g", + re.compile(r'npm install -g\s+(?:--[a-z-]+\s+)*([a-zA-Z@][^\s"]*)'), + ), +] + +# install.sh / launcher/build.py — uv run --with <pkg> must be ==<version>: +UV_RUN_WITH_PATTERN = re.compile(r"--with\s+([a-zA-Z][\w-]*)(?!\S*==)") + +NOQA_PATTERN = re.compile(r"#\s*noqa:\s*drift-check\b\s*(?:#\s*(.*))?") + + +@dataclass +class Finding: + file: Path + line: int + message: str + + +@dataclass +class _LineCtx: + text: str + line_no: int + has_noqa: bool = False + noqa_justified: bool = False + + +def _parse_noqa(line: str) -> tuple[bool, bool]: + """Return (has_noqa, justified). Bare `# noqa: drift-check` (no comment) is unjustified.""" + m = NOQA_PATTERN.search(line) + if not m: + return False, False + justification = (m.group(1) or "").strip() + return True, bool(justification) + + +def _iter_lines(path: Path) -> list[_LineCtx]: + out: list[_LineCtx] = [] + try: + text = path.read_text() + except OSError: + return out + for i, line in enumerate(text.splitlines(), start=1): + has_noqa, justified = _parse_noqa(line) + out.append(_LineCtx(text=line, line_no=i, has_noqa=has_noqa, noqa_justified=justified)) + return out + + +def _add_finding(findings: list[Finding], path: Path, ctx: _LineCtx, msg: str) -> None: + if ctx.has_noqa and ctx.noqa_justified: + return + findings.append(Finding(file=path, line=ctx.line_no, message=msg)) + + +def _is_npm_install_pkg_pinned(pkg_arg: str) -> bool: + """`pkg@1.2.3` is pinned; `pkg`, `@scope/pkg`, `pkg@latest` are not.""" + if pkg_arg in {"-g", "--force", "--ignore-scripts", "--no-audit", "--no-fund"}: + return True # flag, not a package + if pkg_arg.startswith("--"): + return True + if pkg_arg.startswith("@"): + # @scope/pkg or @scope/pkg@version + rest = pkg_arg[1:] + return "@" in rest + return "@" in pkg_arg + + +def _scan_python_or_shell(path: Path) -> list[Finding]: + findings: list[Finding] = [] + is_shell = path.suffix == ".sh" or path.name.endswith(".sh") + for ctx in _iter_lines(path): + # Bare `# noqa: drift-check` (no justification) is itself a finding. + # `continue` keeps the line from also matching downstream patterns — + # one line, one bare-noqa finding (no double-reporting). + if ctx.has_noqa and not ctx.noqa_justified: + findings.append( + Finding( + file=path, + line=ctx.line_no, + message="bare `# noqa: drift-check` requires a justification comment", + ) + ) + continue + + for label, pat in PY_SH_PATTERNS: + for m in pat.finditer(ctx.text): + if label == "unversioned npm install -g": + pkg = m.group(1) + if _is_npm_install_pkg_pinned(pkg): + continue + _add_finding( + findings, + path, + ctx, + f"unversioned npm install -g target {pkg!r} (pin to @<version>)", + ) + else: + _add_finding(findings, path, ctx, f"{label} match: {m.group(0)!r}") + + if is_shell or path.name == "build.py": + for m in UV_RUN_WITH_PATTERN.finditer(ctx.text): + _add_finding( + findings, + path, + ctx, + f"unversioned `--with {m.group(1)}` (use `--with {m.group(1)}==<version>`)", + ) + return findings + + +def _scan_mcp_json(path: Path) -> list[Finding]: + findings: list[Finding] = [] + try: + doc = json.loads(path.read_text()) + except (OSError, json.JSONDecodeError) as exc: + return [Finding(file=path, line=0, message=f"could not parse JSON: {exc}")] + servers = doc.get("mcpServers") or {} + for name, cfg in servers.items(): + if cfg.get("command") != "npx": + continue + args = cfg.get("args") or [] + for a in args: + if not isinstance(a, str): + continue + if a.startswith("-"): + continue + if a.startswith("http://") or a.startswith("https://"): + continue + # First non-flag, non-URL argument is the package spec. + if not _is_npm_install_pkg_pinned(a): + findings.append( + Finding( + file=path, + line=0, + message=f"{name}: unpinned npx package {a!r} (use `<pkg>@<version>`)", + ) + ) + break + break + return findings + + +def cross_reference_mcp(path: Path) -> list[Finding]: + """Every pinned `npx <pkg>@<v>` in an MCP file MUST have a manifest entry.""" + from installer.manifest import load + + findings: list[Finding] = [] + try: + doc = json.loads(path.read_text()) + except (OSError, json.JSONDecodeError): + return findings + manifest = load() + monitored_urls = {e.source_url for e in manifest.entries if e.source_type == "npm"} + servers = doc.get("mcpServers") or {} + for name, cfg in servers.items(): + if cfg.get("command") != "npx": + continue + for a in cfg.get("args") or []: + if not isinstance(a, str): + continue + if a.startswith("-") or a.startswith("http"): + continue + # Strip the @<version>; keep @scope/ prefix. + if a.startswith("@"): + rest = a[1:] + pkg = "@" + rest.split("@", 1)[0] + else: + pkg = a.split("@", 1)[0] + if pkg and pkg not in monitored_urls: + findings.append( + Finding( + file=path, + line=0, + message=f"{name}: pinned package {pkg!r} is not in manifest (unmonitored)", + ) + ) + break + return findings + + +def scan_file(path: Path) -> list[Finding]: + """Run the appropriate pattern set for `path`. Returns all findings.""" + if not path.exists(): + return [] + if path.suffix == ".json": + return _scan_mcp_json(path) + return _scan_python_or_shell(path) + + +def validate_manifest(manifest_path: Path) -> Finding | None: + """Validate the manifest schema. Returns a single Finding on failure.""" + from installer.manifest import ManifestError, load + + try: + load(path=manifest_path) + except ManifestError as exc: + return Finding(file=manifest_path, line=0, message=f"manifest schema: {exc}") + return None + + +def main(repo_root: Path = REPO_ROOT_DEFAULT, json_mode: bool = False) -> int: + repo_root = repo_root.resolve() + findings: list[Finding] = [] + + manifest_finding = validate_manifest(repo_root / "installer" / "upstreams.yaml") + if manifest_finding: + findings.append(manifest_finding) + + for rel in SCAN_FILES: + path = repo_root / rel + findings.extend(scan_file(path)) + if path.suffix == ".json": + findings.extend(cross_reference_mcp(path)) + + if json_mode: + print(json.dumps( + [ + {"file": str(f.file.relative_to(repo_root)), "line": f.line, "message": f.message} + for f in findings + ], + indent=2, + )) + else: + for f in findings: + try: + rel = f.file.relative_to(repo_root) + except ValueError: + rel = f.file + print(f"{rel}:{f.line}: {f.message}") + if not findings: + print("OK: no manifest drift detected.") + + return 1 if findings else 0 + + +def _cli() -> int: + parser = argparse.ArgumentParser(description="Pilot Shell manifest drift checker") + parser.add_argument("--json", action="store_true", help="output JSON") + parser.add_argument("--repo-root", default=str(REPO_ROOT_DEFAULT)) + args = parser.parse_args() + return main(repo_root=Path(args.repo_root), json_mode=args.json) + + +# Re-export Finding so tests can introspect findings collections. +__all__ = ["Finding", "scan_file", "cross_reference_mcp", "validate_manifest", "main"] + + +if __name__ == "__main__": + sys.exit(_cli()) diff --git a/uv.lock b/uv.lock index f18f51fab..095e2b5de 100644 --- a/uv.lock +++ b/uv.lock @@ -242,6 +242,7 @@ dependencies = [ { name = "cryptography" }, { name = "cython" }, { name = "platformdirs" }, + { name = "pyyaml" }, { name = "rich" }, { name = "setuptools" }, ] @@ -263,6 +264,7 @@ requires-dist = [ { name = "cryptography", specifier = ">=46.0.6" }, { name = "cython", specifier = ">=3.0.0" }, { name = "platformdirs", specifier = ">=4.3.6" }, + { name = "pyyaml", specifier = ">=6.0" }, { name = "rich", specifier = ">=14.0.0" }, { name = "setuptools", specifier = ">=61.0" }, ] @@ -379,6 +381,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, +] + [[package]] name = "rich" version = "14.2.0" From 4998226ac5e4cec3d2d617f9b33df272730a7a94 Mon Sep 17 00:00:00 2001 From: Max Ritter <mail@maxritter.net> Date: Thu, 7 May 2026 14:53:06 +0200 Subject: [PATCH 2/6] fix: drift checker UTF-8 + supply-chain gate races on same-push trigger MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - scripts/check_manifest_drift.py: pass encoding='utf-8' to every Path.read_text() call. CI runners with non-UTF-8 locale defaults (LANG=C) crashed on the first non-ASCII byte (UnicodeDecodeError). - .github/workflows/supply-chain.yml: trigger on push to main + dev, not just pull_request — so the release-dev/release workflows that start on the same push can find the check via the Checks API. - release.yml + release-dev.yml: poll the supply-chain check for up to 12 min instead of the original one-shot lookup. Both workflows begin at the same time on a push, so the gate must wait for the supply-chain run to land before deciding. --- .github/workflows/release-dev.yml | 35 ++++++++++++++++++++--------- .github/workflows/release.yml | 36 +++++++++++++++++++++--------- .github/workflows/supply-chain.yml | 2 ++ scripts/check_manifest_drift.py | 14 +++++++----- 4 files changed, 59 insertions(+), 28 deletions(-) diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml index 5943f72ea..a4a9c9803 100644 --- a/.github/workflows/release-dev.yml +++ b/.github/workflows/release-dev.yml @@ -13,8 +13,9 @@ concurrency: jobs: supply-chain-gate: - # Cross-workflow `needs:` cannot link to supply-chain.yml. Verify via the - # GitHub Checks API that the supply-chain check passed for this SHA. + # Cross-workflow `needs:` cannot link to supply-chain.yml. Poll the Checks + # API for the `supply-chain` check on this SHA — both workflows start on + # the same push, so we wait up to 12 min for it to complete. name: Supply-Chain Gate permissions: contents: read @@ -24,16 +25,28 @@ jobs: - uses: actions/github-script@v7 with: script: | - const checks = await github.rest.checks.listForRef({ - ...context.repo, ref: context.sha - }); - const sc = checks.data.check_runs.find(r => r.name === 'supply-chain'); - if (!sc || sc.conclusion !== 'success') { - core.setFailed( - `supply-chain check is ${sc?.conclusion ?? 'missing'} for ${context.sha}; ` + - `prerelease blocked.` - ); + const sleep = ms => new Promise(r => setTimeout(r, ms)); + const deadline = Date.now() + 12 * 60 * 1000; + let last = null; + while (Date.now() < deadline) { + const { data } = await github.rest.checks.listForRef({ + ...context.repo, ref: context.sha + }); + const sc = data.check_runs.find(r => r.name === 'supply-chain'); + last = sc; + if (sc && sc.status === 'completed') { + if (sc.conclusion === 'success') return; + core.setFailed( + `supply-chain check concluded ${sc.conclusion} for ${context.sha}; prerelease blocked.` + ); + return; + } + await sleep(20000); } + core.setFailed( + `supply-chain check did not complete within 12m for ${context.sha} ` + + `(last status: ${last?.status ?? 'missing'}); prerelease blocked.` + ); security-scan: name: Security Scan (Trivy) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 38bf84bf9..86dbd3482 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,8 +62,10 @@ jobs: supply-chain-gate: # Cross-workflow `needs:` doesn't link supply-chain.yml to this workflow. - # Instead, query the Checks API for the release SHA and fail if the - # `supply-chain` check did not succeed. See docs/security/AUDIT.md. + # Poll the Checks API for the `supply-chain` check on the release SHA and + # fail when it concludes anything other than `success`. Both workflows + # start on the same push, so we wait up to 12 min for it to land. + # See docs/security/AUDIT.md. name: Supply-Chain Gate permissions: contents: read @@ -75,16 +77,28 @@ jobs: - uses: actions/github-script@v7 with: script: | - const checks = await github.rest.checks.listForRef({ - ...context.repo, ref: context.sha - }); - const sc = checks.data.check_runs.find(r => r.name === 'supply-chain'); - if (!sc || sc.conclusion !== 'success') { - core.setFailed( - `supply-chain check is ${sc?.conclusion ?? 'missing'} for ${context.sha}; ` + - `release blocked. Run/await .github/workflows/supply-chain.yml first.` - ); + const sleep = ms => new Promise(r => setTimeout(r, ms)); + const deadline = Date.now() + 12 * 60 * 1000; + let last = null; + while (Date.now() < deadline) { + const { data } = await github.rest.checks.listForRef({ + ...context.repo, ref: context.sha + }); + const sc = data.check_runs.find(r => r.name === 'supply-chain'); + last = sc; + if (sc && sc.status === 'completed') { + if (sc.conclusion === 'success') return; + core.setFailed( + `supply-chain check concluded ${sc.conclusion} for ${context.sha}; release blocked.` + ); + return; + } + await sleep(20000); } + core.setFailed( + `supply-chain check did not complete within 12m for ${context.sha} ` + + `(last status: ${last?.status ?? 'missing'}); release blocked.` + ); security-scan: name: Security Scan (Trivy) diff --git a/.github/workflows/supply-chain.yml b/.github/workflows/supply-chain.yml index 4cba3f905..620fe8b2f 100644 --- a/.github/workflows/supply-chain.yml +++ b/.github/workflows/supply-chain.yml @@ -1,6 +1,8 @@ name: supply-chain on: + push: + branches: [main, dev] pull_request: branches: [main] schedule: diff --git a/scripts/check_manifest_drift.py b/scripts/check_manifest_drift.py index 182177aab..3e8b38c03 100644 --- a/scripts/check_manifest_drift.py +++ b/scripts/check_manifest_drift.py @@ -83,8 +83,10 @@ def _parse_noqa(line: str) -> tuple[bool, bool]: def _iter_lines(path: Path) -> list[_LineCtx]: out: list[_LineCtx] = [] try: - text = path.read_text() - except OSError: + # Explicit UTF-8: pathlib.Path.read_text() uses the locale default, which + # is not always UTF-8 on CI runners (depends on $LANG / $LC_ALL). + text = path.read_text(encoding="utf-8") + except (OSError, UnicodeDecodeError): return out for i, line in enumerate(text.splitlines(), start=1): has_noqa, justified = _parse_noqa(line) @@ -157,8 +159,8 @@ def _scan_python_or_shell(path: Path) -> list[Finding]: def _scan_mcp_json(path: Path) -> list[Finding]: findings: list[Finding] = [] try: - doc = json.loads(path.read_text()) - except (OSError, json.JSONDecodeError) as exc: + doc = json.loads(path.read_text(encoding="utf-8")) + except (OSError, UnicodeDecodeError, json.JSONDecodeError) as exc: return [Finding(file=path, line=0, message=f"could not parse JSON: {exc}")] servers = doc.get("mcpServers") or {} for name, cfg in servers.items(): @@ -192,8 +194,8 @@ def cross_reference_mcp(path: Path) -> list[Finding]: findings: list[Finding] = [] try: - doc = json.loads(path.read_text()) - except (OSError, json.JSONDecodeError): + doc = json.loads(path.read_text(encoding="utf-8")) + except (OSError, UnicodeDecodeError, json.JSONDecodeError): return findings manifest = load() monitored_urls = {e.source_url for e in manifest.entries if e.source_type == "npm"} From ce58e4a2815c7104347dcf447751729ef326a933 Mon Sep 17 00:00:00 2001 From: Max Ritter <mail@maxritter.net> Date: Thu, 7 May 2026 14:57:26 +0200 Subject: [PATCH 3/6] fix: split secret-scanner test fixtures to avoid GitHub alerts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub's secret-scanning alerts (different/broader than push-protection) flagged AWS canonical example, GCP API-key shape, and OpenAI project-key shape on commit 77193e30. The values are clearly synthetic test fixtures for the hook's own pattern detector — same intent as the existing sendgrid/mailgun/stripe/github-pat tests that already use string concatenation. Splits every literal that matches a real-secret regex: AWS access key, AWS session token, GCP API key, GitLab PAT, Slack token, OpenAI project key, JWT, and generic-secret api_key string. Runtime values unchanged; all 41 secret-scanner tests pass. --- pilot/hooks/tests/test_secret_scanner.py | 30 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/pilot/hooks/tests/test_secret_scanner.py b/pilot/hooks/tests/test_secret_scanner.py index 5cb833a3c..8f2912793 100644 --- a/pilot/hooks/tests/test_secret_scanner.py +++ b/pilot/hooks/tests/test_secret_scanner.py @@ -89,18 +89,23 @@ class TestScanPositive: """Each rule must have at least one positive match.""" def test_aws_access_key(self): - f = scan("My AWS key is AKIAIOSFODNN7EXAMPLE") + # Synthetic fixtures split via string concatenation so GitHub secret + # scanning doesn't false-positive on the AWS canonical example. + akia = "AKIA" + "IOSFODNN7EXAMPLE" + f = scan(f"My AWS key is {akia}") assert len(f) == 1 assert f[0].rule_id == "aws-access-key" assert f[0].match_redacted == "AKIA****MPLE" - assert f[0].secret_value == "AKIAIOSFODNN7EXAMPLE" + assert f[0].secret_value == akia def test_aws_session_token(self): - f = scan("ASIAIOSFODNN7EXAMPLE here") + # Split to avoid GitHub secret-scanning alert on the synthetic fixture. + f = scan("ASIA" + "IOSFODNN7EXAMPLE" + " here") assert any(x.rule_id == "aws-access-key" for x in f) def test_gcp_api_key(self): - f = scan("AIzaSyD-abc123XYZ_qwerty456zxcvbnmasdfg") + # Split to avoid GitHub secret-scanning alert on the synthetic fixture. + f = scan("AIza" + "SyD-abc123XYZ_qwerty456zxcvbnmasdfg") assert any(x.rule_id == "gcp-api-key" for x in f) def test_pem_private_key(self): @@ -122,7 +127,7 @@ def test_github_fine_grained(self): assert any(x.rule_id == "github-fine-grained" for x in f) def test_gitlab_pat(self): - f = scan("glpat-AbCdEfGhIjKlMnOpQrSt") # 20 chars + f = scan("glpat-" + "AbCdEfGhIjKlMnOpQrSt") # 20 chars assert any(x.rule_id == "gitlab-pat" for x in f) def test_npm_token(self): @@ -130,7 +135,7 @@ def test_npm_token(self): assert any(x.rule_id == "npm-token" for x in f) def test_slack_token(self): - f = scan("xoxb-1234567890-abcdef") + f = scan("xoxb-" + "1234567890-abcdef") assert any(x.rule_id == "slack-token" for x in f) def test_slack_webhook(self): @@ -181,8 +186,8 @@ def test_openai_legacy_key(self): assert any(x.rule_id == "openai-key" for x in f) def test_openai_project_key(self): - # Needs entropy >= 3.5 - f = scan("sk-proj-Abcd1234EfGh5678IjKl9012MnOp3456QrSt7890") + # Needs entropy >= 3.5; split to avoid GitHub secret-scanning alert. + f = scan("sk-proj-" + "Abcd1234EfGh5678IjKl9012MnOp3456QrSt7890") assert any(x.rule_id == "openai-project-key" for x in f) def test_anthropic_key(self): @@ -190,11 +195,16 @@ def test_anthropic_key(self): assert any(x.rule_id == "anthropic-key" for x in f) def test_jwt(self): - f = scan("eyJhbGciOiJIUzI1NiIs.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c") + # Split to avoid GitHub secret-scanning alert on this synthetic JWT. + f = scan( + "eyJhbGciOiJIUzI1NiIs." + + "eyJzdWIiOiIxMjM0NTY3ODkwIn0." + + "SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJVadQssw5c" + ) assert any(x.rule_id == "jwt" for x in f) def test_generic_secret(self): - f = scan("api_key: 'Abcd1234EfGh5678IjKl9012MnOp3456'") + f = scan("api_key: '" + "Abcd1234EfGh5678IjKl9012MnOp3456" + "'") assert any(x.rule_id == "generic-secret" for x in f) def test_env_assignment_high_entropy(self): From 1fc95ab7bdd2df9ee781a472b367867d5c4f4bc2 Mon Sep 17 00:00:00 2001 From: Max Ritter <mail@maxritter.net> Date: Thu, 7 May 2026 15:20:20 +0200 Subject: [PATCH 4/6] fix: address PR #140 review findings (Claude + CodeRabbit) + UI tweaks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bot review findings (10 fixes from triage): 1. SHA-pin floating GitHub Actions in supply-chain.yml + supply-chain-gate jobs (release.yml + release-dev.yml). Meta-irony in a supply-chain PR. - actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 (v4) - actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 (v5) - actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b (v7) 2. Pin zod via manifest entry; _fix_npx_peer_dependencies now reads from the manifest and uses --ignore-scripts (was unversioned npm install). 3. manifest.py: reject non-list 'entries' values explicitly instead of coercing {} or '' to empty list (was silent schema bypass). 4. _curl_pipe_with_hash_verify: surface soft-pin warning on the success path via stderr so re-pin reminders aren't buried (was set-and-forget on _thread_local.last_retry_stderr). 5. check_manifest_drift._iter_lines: convert UnicodeDecodeError into a deterministic Finding instead of aborting the whole run. 6. _is_npm_install_pkg_pinned: require strict semver (X.Y.Z[+pre]) — no longer accepts pkg@beta, pkg@^1.2.3, pkg@latest as 'pinned'. 7. test_drift_check: extend clean-repo audit to cover install.sh and launcher/build.py (the bootstrap surface), not just installer/steps/. Plus regression tests for strict-semver + UTF-8 finding behaviors. 8. is_shell suffix check: drop redundant 'path.suffix == ".sh"' clause (strict subset of 'path.name.endswith(".sh")'). 9. supply-chain.yml: scope 'issues: write' to the supply-chain job instead of granting it workflow-wide. UI: - Settings page: move Console + Security side-by-side in a 2-col grid, both placed before Spec Workflow Review Agents. Removes the duplicate Security sub-section from inside Spec Workflow. Cleanup: - Drop docs/security/AUDIT.md (V1 supply-chain dropped Scorecard, Socket, branch-protection — the AUDIT doc no longer describes anything not already in upstreams.yaml comments). - Remove AUDIT.md references from upstreams.yaml header, dependencies.py install_claude_code() docstring, release.yml gate comment, renovate.json packageRule description. Tests: 1078 Python pass (5 new drift tests for strict-semver + UTF-8-finding + bootstrap-surface coverage); 1485 console tests pass; drift checker green on full SCAN_FILES set. --- .devcontainer/devcontainer-lock.json | 69 ++++++++++++++ .github/renovate.json | 2 +- .github/workflows/release-dev.yml | 2 +- .github/workflows/release.yml | 3 +- .github/workflows/supply-chain.yml | 13 ++- .../src/ui/viewer/views/Settings/index.tsx | Bin 31629 -> 31944 bytes docs/security/AUDIT.md | 88 ------------------ installer/manifest.py | 7 +- installer/steps/dependencies.py | 14 ++- .../tests/unit/steps/test_dependencies.py | 10 +- installer/tests/unit/test_drift_check.py | 49 ++++++++++ installer/upstreams.yaml | 12 ++- pilot/ui/viewer-bundle.js | 4 +- scripts/check_manifest_drift.py | 50 +++++++--- 14 files changed, 206 insertions(+), 117 deletions(-) create mode 100644 .devcontainer/devcontainer-lock.json delete mode 100644 docs/security/AUDIT.md diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 000000000..3e4cd82fb --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,69 @@ +{ + "features": { + "ghcr.io/braun-daniel/devcontainer-features/fzf:1": { + "version": "1.0.0", + "resolved": "ghcr.io/braun-daniel/devcontainer-features/fzf@sha256:07670aa4fce4a1976c68dc0c296021a9e79dfd9e6522a6eae09d0584c62637bc", + "integrity": "sha256:07670aa4fce4a1976c68dc0c296021a9e79dfd9e6522a6eae09d0584c62637bc" + }, + "ghcr.io/braun-daniel/devcontainer-features/spaceship:1": { + "version": "1.0.0", + "resolved": "ghcr.io/braun-daniel/devcontainer-features/spaceship@sha256:86c8632fa2a1ca07511d691500cbaf816fd5172af8bc1b957a14b9b23345379d", + "integrity": "sha256:86c8632fa2a1ca07511d691500cbaf816fd5172af8bc1b957a14b9b23345379d" + }, + "ghcr.io/devcontainers/features/common-utils:2": { + "version": "2.5.7", + "resolved": "ghcr.io/devcontainers/features/common-utils@sha256:dbf431d6b42d55cde50fa1df75c7f7c3999a90cde6d73f7a7071174b3c3d0cc4", + "integrity": "sha256:dbf431d6b42d55cde50fa1df75c7f7c3999a90cde6d73f7a7071174b3c3d0cc4" + }, + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": { + "version": "1.9.1", + "resolved": "ghcr.io/devcontainers/features/docker-outside-of-docker@sha256:dc89605f01ff2f24252c61f7c8ba2a58ccdbc14f2ebf87a7952d9e2b89834850", + "integrity": "sha256:dc89605f01ff2f24252c61f7c8ba2a58ccdbc14f2ebf87a7952d9e2b89834850" + }, + "ghcr.io/devcontainers/features/git:1": { + "version": "1.3.5", + "resolved": "ghcr.io/devcontainers/features/git@sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251", + "integrity": "sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251" + }, + "ghcr.io/devcontainers/features/github-cli:1": { + "version": "1.1.0", + "resolved": "ghcr.io/devcontainers/features/github-cli@sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671", + "integrity": "sha256:d22f50b70ed75339b4eed1ba9ecde3a1791f90e88d37936517e3bace0bbad671" + }, + "ghcr.io/devcontainers/features/go:1": { + "version": "1.3.4", + "resolved": "ghcr.io/devcontainers/features/go@sha256:d85e921f91b41340055bb12b325d9d551170ed04b3b832e33530bf42f167c032", + "integrity": "sha256:d85e921f91b41340055bb12b325d9d551170ed04b3b832e33530bf42f167c032" + }, + "ghcr.io/devcontainers/features/node:1": { + "version": "1.7.1", + "resolved": "ghcr.io/devcontainers/features/node@sha256:8c0de46939b61958041700ee89e3493f3b2e4131a06dc46b4d9423427d06e5f6", + "integrity": "sha256:8c0de46939b61958041700ee89e3493f3b2e4131a06dc46b4d9423427d06e5f6" + }, + "ghcr.io/devcontainers/features/python:1": { + "version": "1.8.0", + "resolved": "ghcr.io/devcontainers/features/python@sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511", + "integrity": "sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511" + }, + "ghcr.io/jungaretti/features/ripgrep:1": { + "version": "1.0.1", + "resolved": "ghcr.io/jungaretti/features/ripgrep@sha256:c0922b6f4a9184080c8435b6ef25983dee6c734733f0a749d852ad0d33de2253", + "integrity": "sha256:c0922b6f4a9184080c8435b6ef25983dee6c734733f0a749d852ad0d33de2253" + }, + "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2": { + "version": "2.0.5", + "resolved": "ghcr.io/meaningful-ooo/devcontainer-features/homebrew@sha256:c49ba0f6275bdd0474f4c7fcf37fc84b5739838b110c7da9c16d6a409ae48a86", + "integrity": "sha256:c49ba0f6275bdd0474f4c7fcf37fc84b5739838b110c7da9c16d6a409ae48a86" + }, + "ghcr.io/michidk/devcontainers-features/bun:1": { + "version": "1.0.1", + "resolved": "ghcr.io/michidk/devcontainers-features/bun@sha256:568cc553062d184932ba993db954d4ace2bda3907d129477ce174777ac686dbd", + "integrity": "sha256:568cc553062d184932ba993db954d4ace2bda3907d129477ce174777ac686dbd" + }, + "ghcr.io/va-h/devcontainers-features/uv:1": { + "version": "1.1.4", + "resolved": "ghcr.io/va-h/devcontainers-features/uv@sha256:a15737142539d150ef4d358e2d6a7424a0a2f3dc43b29a3aa1b50162a8b11bc1", + "integrity": "sha256:a15737142539d150ef4d358e2d6a7424a0a2f3dc43b29a3aa1b50162a8b11bc1" + } + } +} diff --git a/.github/renovate.json b/.github/renovate.json index aaa482da9..42ca5226d 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -33,7 +33,7 @@ "groupSlug": "manifest-dev-deps" }, { - "description": "Curl entries that do not resolve to a GitHub repo (claude.ai/install.sh, astral.sh/uv/install.sh, bun.sh/install) cannot be auto-updated by Renovate's github-tags datasource. Flag them so the maintainer re-pins manually per the soft-pin SLA in docs/security/AUDIT.md.", + "description": "Curl entries that do not resolve to a GitHub repo (claude.ai/install.sh, astral.sh/uv/install.sh, bun.sh/install) cannot be auto-updated by Renovate's github-tags datasource. Flag them so the maintainer re-pins manually.", "matchPackageNames": [ "claude-code-installer", "uv-installer", diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml index a4a9c9803..79e6ae9f0 100644 --- a/.github/workflows/release-dev.yml +++ b/.github/workflows/release-dev.yml @@ -22,7 +22,7 @@ jobs: checks: read runs-on: ubuntu-latest steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 with: script: | const sleep = ms => new Promise(r => setTimeout(r, ms)); diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 86dbd3482..abd9d87f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,7 +65,6 @@ jobs: # Poll the Checks API for the `supply-chain` check on the release SHA and # fail when it concludes anything other than `success`. Both workflows # start on the same push, so we wait up to 12 min for it to land. - # See docs/security/AUDIT.md. name: Supply-Chain Gate permissions: contents: read @@ -74,7 +73,7 @@ jobs: needs: check-trigger if: needs.check-trigger.outputs.should_run == 'true' steps: - - uses: actions/github-script@v7 + - uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 with: script: | const sleep = ms => new Promise(r => setTimeout(r, ms)); diff --git a/.github/workflows/supply-chain.yml b/.github/workflows/supply-chain.yml index 620fe8b2f..3192f8eea 100644 --- a/.github/workflows/supply-chain.yml +++ b/.github/workflows/supply-chain.yml @@ -11,21 +11,26 @@ on: permissions: contents: read - issues: write # nightly cron opens GitHub issues on findings pull-requests: read checks: write jobs: supply-chain: name: supply-chain + permissions: + contents: read + # `issues: write` is scoped to this job and only used by the nightly + # cron's failure-handler step. PR + workflow_dispatch invocations don't + # need it, so granting at the workflow level was over-scoped. + issues: write runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: '3.12' @@ -44,7 +49,7 @@ jobs: - name: Open issue on nightly failure if: failure() && github.event_name == 'schedule' - uses: actions/github-script@v7 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 with: script: | await github.rest.issues.create({ diff --git a/console/src/ui/viewer/views/Settings/index.tsx b/console/src/ui/viewer/views/Settings/index.tsx index b70943d49437213ec4a787ff17a18a8fc9c63755..9ee856bf152aa6baabcd6e37507c13d6b0003984 100644 GIT binary patch literal 31944 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 literal 31629 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�D*BkC2_!tA(PG)~GYCnD=s+XwM$)fNSBP%Yk=k5|2yn@kAmKpy+Yp z4Damr-t(9S3(e1e;d{M{y!DZ*y-#a82#~|D-B3MV+mCS}m9!%H%pqU)4~1cRI#G$^ z^#0sm>&Mlb*MBaSFCVG?SMB}0?p*xl3pOKCwT0t8bIR_j)XMUBfJ!q^2BCqOtj(P- zUx8BjtlSeZui$-46*&Zp<hz0}!~LkQwy6$1nYVW6Wn9+;IsAp5Dgh1iksnyC3Y>*G zjPkfLoWp=-@B&&RJuH`gqA$!KMK?vCGR(bGwJz$<<w|iN_?XOR-~*$<cWx1NSMx7Y zS1FxJ<dnM1T?1GnBfteZg$h^(#{@JrRBlatO_(O*63;j?8ZjIgP5JcAn3hjt^L3)U z+R@*c*Z#&HE{IeL%SAvIrJ+_I!9LgjdLi-M0Z-CIub?tK!J&C0tqT6n%gD>{62IMT z>;i5kBd&dVn_WI!k#U0YPUAKT#Fi>@2Tt`#o}MiBQ{JNpAV5LL4n3MdXK}Pk{Fh>W z;tarinpgIt0rb`IdtEG)R#Wq?hy;JA$mUKew%#Vy$vy*63!FMxxuXYUl_GO}+J8}b zHbnf1n3`ge@;ED*KFowALq6C=Xe<QmVP7kYr?ArS3!Km{J?uQcf#_8jh)BW;MDK(F z3spS`bdMoay3Q7>R?C?zF-Pzc{{0-BzER|u{3N`@z8CaeUS!+1keFrF)Fh>`zm_Bh zV8*@181g~^FB@hP<P@E38Is^iZeU)b5#(*?jEkW+;cT7*5KsyLFI;C9^sM%%6gNY- zjt35I8?4R5dDc`{_=Bi^w`#{XT0S7hS;GJ)BJ`W}daWf~-b(!ws77+QoCORE{q&Wo z6Ur>mbZBj&yfL|+aInqqYtF4`$hpnqkDBNun4XDS#J=ZMM~j_{fwA}=7>u!nQo|)f z>0BIeA0EZ6ZqWgTKfEr~oJ$-=qsX~-b`4Hq6IvaRQs2M2uQGhG6f}}5#S5Mz$-Vno zL0*IvrhdZhAt7@5`4A|7n0H*%Q=nF-nP^O0oGa^1IY&*JGNqpJLSDG2*^*WvjT*uo zJG#>fa5!B2Xie3+rY(b^>kOr&F(8d^h7U>48{I%Z=kKCozbL{#9P`^y!|K-b(rVb< z7EV<P=KWaj-}zo=w?4@JCVCpe=Tzq+%{>nguUoDDIwYp@bDez8at2wSmee1d<$Gb+ zjatW)|6scp=aU)cv;1*o0qL{j6F%Sx%i{4Bgp3$H0e8V}qDZahaVoLb!-d28|Eq5k z5s+QRLQSOiUAMXqCFHOFbMKUsjA-f4B6wb#%N{{zo@aF;$(SDdH#CK?OmpCRU&J^U z1O7L?$SbHy&{w&X!}^E=DE+^_LlJ>x!NSp)8n6HP;wmfZEN@<4<9Y9*bfe68m^F($ zk>YQGxDv0|Jyn3b)U1#4f6|VXfuSt8XHC_AC&9bhPXk4+$?z+0J7D|NjX3|Y!!+fu zfhGxGbLr^+C_sm~NjKsuqH`(M(U?mSIoj}tq$U}$ak82KMF-)K9ZnV5cQ$MRC8<>y zF{-Zbcun(Q13^edZcG_!`!*WqvtCpg89aW4j;O|1c60Sv)yO7e4rR-gG93JNYBmY; zH)a!`0$@bfHa7eC)3M13Z_E?xgv!!k*wUTKM|M!=mg*?$4-Z8p?Lj`#Dh19Z(ZY1c z+Nlgx(zO_tq&RI-2Vjb8rpbgc?p5(2``Nc@eYD%XM)}J{Lb4^7&7-^UCcdg^QvBH= zmwzO?$aVZ*fx*IF!udYwZT9KUn$`lAm_%0D$J^0R3WOsBaK68*y<dyFlu4BLGn-M3 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 diff --git a/docs/security/AUDIT.md b/docs/security/AUDIT.md deleted file mode 100644 index e4a24866b..000000000 --- a/docs/security/AUDIT.md +++ /dev/null @@ -1,88 +0,0 @@ -# Pilot Shell — Supply-Chain Audit Guide - -How to review, monitor, and respond to upstream changes that Pilot Shell installs. - -## 1. How to audit upstreams - -The single source of truth is **`installer/upstreams.yaml`**. Every entry pins exact version + sha256/commit + last-audited date. - -```bash -# Full pin history (every change to any entry, with commit message + reviewer): -git log -p installer/upstreams.yaml - -# Changes to a specific entry id (substring match): -git log -p installer/upstreams.yaml | grep -A 5 "id: codegraph" - -# Date range: -git log -p --since="2026-01-01" --until="2026-06-30" installer/upstreams.yaml -``` - -A bump PR is recognisable by: -- `version:` and (for curl entries) `sha256:` updates on the same hunk -- `last_audited:` bumped to the merge date -- Renovate or maintainer signature on the commit - -If a bump lacks an updated `last_audited`, it should be rejected in review — that's the maintainer's signature that they actually audited the diff. - -## 2. CI gates - -`.github/workflows/supply-chain.yml` runs on every PR + nightly + on demand: - -- **Manifest schema validation** — `installer/manifest.py:validate()` rejects malformed entries (missing sha256 on curl, `latest` on npm, allow-without-justification, soft-pin without reason, duplicate ids, etc.). -- **Drift check** — `scripts/check_manifest_drift.py` greps installer code for `@latest`, `master/install.sh`, unversioned `npm install -g`/`npx`/`uv run --with`, hardcoded versions outside the manifest, and unmonitored MCP packages. -- **Nightly cron** opens a `security` + `supply-chain` GitHub issue if either gate fails. - -The release workflows (`release.yml`, `release-dev.yml`) include a `supply-chain-gate` job that uses the GitHub Checks API to verify `supply-chain` succeeded for the release SHA. **No release tag can be cut while supply-chain is red** — even without branch-protection set up. - -## 3. Response process for retroactive flags - -When the nightly cron opens a `security` + `supply-chain` issue: - -1. **Triage within 24 h.** Read the issue body — it includes a link to the workflow run. -2. **Classify** the finding: - - **Drift check failed** — bisect to the offending commit; revert or pin around it. - - **Schema validation failed** — a manifest edit broke the contract; fix the YAML. -3. **Decide**: pin around the issue (downgrade in manifest), replace the upstream (separate PRD), or accept-and-document with `# noqa: drift-check # <reason>`. -4. **Hotfix**: if user-facing, follow the soft-pin SLA below for vendor-managed upstreams or open a regular PR for hard-pinned ones. - -## 4. Renovate coverage gap (non-GitHub curl entries) - -Renovate's `github-tags` datasource only matches curl `source_url`s hosted at `github.com` or `raw.githubusercontent.com`. Three current entries are **outside Renovate automation** and must be re-pinned manually: - -- `claude-code-installer` (`https://claude.ai/install.sh`) -- `uv-installer` (`https://astral.sh/uv/install.sh`) -- `bun-installer` (`https://bun.sh/install`) - -`.github/renovate.json` adds the `needs-manual-bump` label to these entries so they show up in dashboards. Re-pin cadence: same as the soft-pin SLA below for `claude-code-installer`; quarterly audit for the other two unless the upstream publishes a security advisory sooner. Run the one-line `sha256` recompute from §5 against the current bytes, update `version`/`sha256`/`last_audited`, and ship the bump PR yourself. - -## 5. Soft-pin re-pin SLA - -Some upstreams (notably `claude-code-installer` → `https://claude.ai/install.sh`) cannot be hard-pinned: Anthropic redeploys the script at any time. These entries have `soft_pin: true` in the manifest. Behaviour: - -- **Hash mismatch in production** logs a warning *and the new hash* via `_thread_local.last_retry_stderr`, then proceeds (vs hard-pin which refuses to execute). -- **Maintainer audits the new script within 24 h**: read the diff between the cached pinned bytes and the new bytes. Look for new domain calls, sudo escalation, suspicious env vars. -- **Maintainer re-pins within 48 h**: edit the manifest entry, update `version`, `sha256`, `last_audited`, and ship a Pilot Shell patch release. - -Compute the new hash with one of: - -```bash -# Linux: -curl -fsSL https://claude.ai/install.sh | sha256sum - -# macOS: -curl -fsSL https://claude.ai/install.sh | shasum -a 256 -``` - -## 6. V1 explicit non-goals - -The following are intentionally out of scope for V1 and tracked in the PRD's deferred section. Do **not** open issues claiming these as bugs. - -- **OpenSSF Scorecard scoring loop** — adds CI complexity and helps least where the threat is highest (single-author npm packages without public repos). Revisit if attacks materialize. -- **Socket.dev real-time scanning** — requires external account + API key. Optional bolt-on if needed; the GitHub App can be installed independently without this PR. -- **Branch-protection required check** — the release-workflow `supply-chain-gate` job is the gate that matters; an extra merge-time gate is duplicative for a single-maintainer repo. -- **Pull-through artifact proxy** (Verdaccio, S3 mirror) — strongest possible defense, revisit at enterprise scale. -- **Customer-facing security page** + public SBOM publication — separate PRD. -- **Emergency hotfix runbook** / auto-rollback / launcher push notifications — manual hotfix is V1. -- **Replacing `claude.ai/install.sh`** with `@anthropic-ai/claude-code@<version>` (npm hard-pin) — separate PRD, individual replacement decision. -- **Dedicated `docs/security/audit-log.md` written by CI on merge** — V1 uses git history. -- **AST-based drift checker** — V1 regex is sufficient; graduate if false-positives appear. diff --git a/installer/manifest.py b/installer/manifest.py index 37246d239..81b7f6ded 100644 --- a/installer/manifest.py +++ b/installer/manifest.py @@ -130,7 +130,12 @@ def load(path: Path | None = None) -> Manifest: version = raw.get("version") if not isinstance(version, int): raise ManifestError("manifest is missing integer 'version' field") - raw_entries = raw.get("entries") or [] + if "entries" in raw: + raw_entries = raw["entries"] + if raw_entries is None: + raw_entries = [] + else: + raw_entries = [] if not isinstance(raw_entries, list): raise ManifestError("'entries' must be a list") entries: list[UpstreamEntry] = [] diff --git a/installer/steps/dependencies.py b/installer/steps/dependencies.py index b130a1a6c..b1ae9706b 100644 --- a/installer/steps/dependencies.py +++ b/installer/steps/dependencies.py @@ -6,6 +6,7 @@ import os import shutil import subprocess +import sys import threading import time from concurrent.futures import ThreadPoolExecutor, as_completed @@ -122,7 +123,7 @@ def install_claude_code() -> bool: Endpoint is vendor-managed (Anthropic redeploys at any time), so the manifest entry is `soft_pin: true` — hash mismatch logs a re-pin warning - but proceeds. See docs/security/AUDIT.md for the re-pin SLA. + but proceeds. """ if command_exists("claude"): return True @@ -243,6 +244,11 @@ def _curl_pipe_with_hash_verify( _thread_local.last_retry_stderr = msg if not soft_pin: return False + # Soft-pin path: success-bound execution would bury the warning + # because the success path doesn't print last_retry_stderr. Emit + # to stderr now so the re-pin reminder is visible regardless of + # downstream exit status. + print(msg, file=sys.stderr) cmd_parts = [opts.interpreter, str(tmp_path), *opts.script_args] quoted = " ".join(shlex.quote(p) for p in cmd_parts) if opts.env: @@ -1097,12 +1103,16 @@ def _fix_npx_peer_dependencies() -> None: npx_cache = Path.home() / ".npm" / "_npx" if not npx_cache.exists(): return + zod_entry = manifest_get("zod") + zod_spec = f"{zod_entry.source_url}@{zod_entry.version}" for hash_dir in npx_cache.iterdir(): nm = hash_dir / "node_modules" if (nm / "open-websearch").is_dir() and not (nm / "zod").is_dir(): try: + # Manifest-pinned + --ignore-scripts (zod has no postinstall, but + # this matches the policy enforced everywhere else). subprocess.run( - ["npm", "install", "zod"], + ["npm", "install", "--ignore-scripts", zod_spec], cwd=hash_dir, capture_output=True, timeout=60, diff --git a/installer/tests/unit/steps/test_dependencies.py b/installer/tests/unit/steps/test_dependencies.py index 8f76760cc..650ddd584 100644 --- a/installer/tests/unit/steps/test_dependencies.py +++ b/installer/tests/unit/steps/test_dependencies.py @@ -1270,7 +1270,8 @@ def test_extract_npx_package_name(self): assert _extract_npx_package_name("@scope/pkg@1.0.0") == "@scope/pkg" def test_fix_npx_peer_dependencies_installs_zod(self): - """_fix_npx_peer_dependencies installs zod when open-websearch is cached but zod is missing.""" + """_fix_npx_peer_dependencies installs manifest-pinned zod with --ignore-scripts.""" + from installer.manifest import get from installer.steps.dependencies import _fix_npx_peer_dependencies with tempfile.TemporaryDirectory() as tmpdir: @@ -1282,7 +1283,12 @@ def test_fix_npx_peer_dependencies_installs_zod(self): _fix_npx_peer_dependencies() mock_run.assert_called_once() - assert mock_run.call_args[0][0] == ["npm", "install", "zod"] + assert mock_run.call_args[0][0] == [ + "npm", + "install", + "--ignore-scripts", + f"zod@{get('zod').version}", + ] def test_fix_npx_peer_dependencies_skips_when_zod_present(self): """_fix_npx_peer_dependencies skips when zod is already installed.""" diff --git a/installer/tests/unit/test_drift_check.py b/installer/tests/unit/test_drift_check.py index b2879f747..910f1ab96 100644 --- a/installer/tests/unit/test_drift_check.py +++ b/installer/tests/unit/test_drift_check.py @@ -117,6 +117,36 @@ def test_noqa_without_justification_rejected(self, drift_module, tmp_path: Path) # Bare noqa is treated as a finding (justification required). assert findings + def test_npm_install_pkg_at_latest_unpinned(self, drift_module) -> None: + # `pkg@latest` MUST NOT pass as pinned even though it has an `@`. + assert drift_module._is_npm_install_pkg_pinned("pkg@latest") is False + + def test_npm_install_pkg_at_beta_unpinned(self, drift_module) -> None: + assert drift_module._is_npm_install_pkg_pinned("pkg@beta") is False + assert drift_module._is_npm_install_pkg_pinned("pkg@next") is False + + def test_npm_install_pkg_with_range_unpinned(self, drift_module) -> None: + for spec in ("pkg@^1.2.3", "pkg@~1.2.3", "pkg@>=1.0.0"): + assert drift_module._is_npm_install_pkg_pinned(spec) is False, spec + + def test_npm_install_pkg_exact_pinned(self, drift_module) -> None: + assert drift_module._is_npm_install_pkg_pinned("pkg@1.2.3") is True + assert drift_module._is_npm_install_pkg_pinned("@scope/pkg@1.2.3") is True + assert drift_module._is_npm_install_pkg_pinned("pkg@1.2.3-rc.1") is True + + def test_bare_scope_unpinned(self, drift_module) -> None: + assert drift_module._is_npm_install_pkg_pinned("@scope/pkg") is False + + def test_invalid_utf8_emits_finding_not_crash(self, drift_module, tmp_path: Path) -> None: + # Regression: a non-UTF-8 file used to abort the entire run with + # UnicodeDecodeError; now it's a deterministic Finding so the gate + # stays robust. + bad = tmp_path / "broken.py" + bad.write_bytes(b"# valid header\nx = '\xd1\xff bad utf-8'\n") + findings = drift_module.scan_file(bad) + assert len(findings) == 1 + assert "utf-8" in findings[0].message.lower() + def test_bare_noqa_with_forbidden_pattern_yields_one_finding( self, drift_module, tmp_path: Path ) -> None: @@ -166,6 +196,25 @@ def test_installer_steps_clean_after_tasks_2_through_5(self, drift_module) -> No findings = drift_module.scan_file(repo_root / rel) assert not findings, f"{rel} drift: {[f.message for f in findings]}" + def test_bootstrap_surface_clean(self, drift_module) -> None: + """Per Task 7: install.sh + launcher/build.py have no unversioned --with.""" + repo_root = Path(__file__).resolve().parents[3] + for rel in ("install.sh", "launcher/build.py"): + findings = drift_module.scan_file(repo_root / rel) + assert not findings, f"{rel} drift: {[f.message for f in findings]}" + + def test_full_scan_surface_clean(self, drift_module) -> None: + """Iterate every entry in SCAN_FILES and assert zero findings. + + Catches regressions in any file Task 6 declared to scan, not just the + installer steps and MCP JSONs we tested individually above. + """ + repo_root = Path(__file__).resolve().parents[3] + for rel in drift_module.SCAN_FILES: + path = repo_root / rel + findings = drift_module.scan_file(path) + assert not findings, f"{rel} drift: {[f.message for f in findings]}" + def test_mcp_json_clean(self, drift_module) -> None: """Per Task 5: both MCP files have only pinned, manifest-monitored npx packages.""" repo_root = Path(__file__).resolve().parents[3] diff --git a/installer/upstreams.yaml b/installer/upstreams.yaml index 4c3ff019d..57391f598 100644 --- a/installer/upstreams.yaml +++ b/installer/upstreams.yaml @@ -7,7 +7,6 @@ # # Schema: installer/manifest.py:UpstreamEntry # Audit log: `git log -p installer/upstreams.yaml` -# How to read: docs/security/AUDIT.md version: 1 entries: @@ -102,7 +101,7 @@ entries: sha256: "b315b46925a9bfb9422f2503dd5aa649f680832f4c076b22d87c39d578c3d830" # Anthropic-managed endpoint with no version stability guarantee. Soft-pin # behavior: hash mismatch logs a warning + new hash for the maintainer to - # re-pin, but proceeds. Re-pin SLA: 24 h audit, 48 h ship (docs/security/AUDIT.md). + # re-pin, but proceeds. Maintainer re-pins promptly when warning fires. soft_pin: true soft_pin_reason: "vendor-managed endpoint; Anthropic redeploys script at any time" last_audited: "2026-05-07" @@ -328,6 +327,15 @@ entries: # No public source repo declared in npm registry; manual audit only. last_audited: "2026-05-07" + - id: zod + name: zod + source_type: npm + source_url: zod + version: "4.4.3" + # Peer dep auto-installed into open-websearch's npx cache when missing + # (see _fix_npx_peer_dependencies in installer/steps/dependencies.py). + last_audited: "2026-05-07" + # ---- PyPI bootstrap (Task 7) ---- # Used by install.sh and launcher/build.py via `uv run --no-project --with`. # These run BEFORE the installer can read the manifest, so install.sh and diff --git a/pilot/ui/viewer-bundle.js b/pilot/ui/viewer-bundle.js index 52997c6a6..9f0cd8bee 100644 --- a/pilot/ui/viewer-bundle.js +++ b/pilot/ui/viewer-bundle.js @@ -1,5 +1,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PlanAnnotator.js","./vendor-markdown.js","./vendor-charts.js","./vendor-diff.js","./index.js","./index2.js","./Spinner.js","./viewer2.css","./index3.js","./index4.js","./ExtensionsView.js","./index5.js"])))=>i.map(i=>d[i]); -import{j as e,a as o,M as ns,b as as}from"./vendor-markdown.js";import{r as rs,a as is}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},tt;function os(){if(tt)return ke;tt=1;var t=rs();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var cs=os();const ls="modulepreload",ds=function(t,s){return new URL(t,s).href},st={},Z=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ds(l,r),l in st)return;st[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const j=d[f];if(j.href===l&&(!m||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":ls,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,j)=>{p.addEventListener("load",f),p.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function us(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const ms={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function se({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${ms[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Y({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function X({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Ir({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},xs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${xs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:is.createPortal(c,document.body)}const Tt=o.createContext(!1);function Dr(){return o.useContext(Tt)}function bs({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Tt.Provider,{value:s,children:t})}function gs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const It=Object.freeze({left:0,top:0,width:16,height:16}),Pe=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),We=Object.freeze({...It,...Pe}),qe=Object.freeze({...We,body:"",hidden:!1});function js(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function nt(t,s){const n=js(t,s);for(const r in qe)r in Pe?r in t&&!(r in n)&&(n[r]=Pe[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function vs(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=nt(r[d]||a[d],i)}return c(s),n.forEach(c),nt(t,i)}function Dt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=gs(t);for(const a in r){const i=r[a];i&&(s(a,vs(t,a,i)),n.push(a))}return n}const ys={provider:"",aliases:{},not_found:{},...It};function _e(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function _t(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!_e(t,ys))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!_e(i,qe))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!_e(i,qe))return null}return s}const at=Object.create(null);function ws(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function le(t,s){const n=at[t]||(at[t]=Object.create(null));return n[s]||(n[s]=ws(t,s))}function Lt(t,s){return _t(s)?Dt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function Ns(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const $t=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ie=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ce(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ce(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ce(d,n)?null:d}return null},Ce=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function At(t){return typeof t=="boolean"&&(we=t),we}function rt(t){const s=typeof t=="string"?Ie(t,!0,we):t;if(s){const n=le(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function ks(t,s){const n=Ie(t,!0,we);if(!n)return!1;const r=le(n.provider,n.prefix);return s?Ns(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return _t(t)&&(t.prefix="",Dt(t,(i,c)=>{ks(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ce({prefix:n,name:"a"}))return!1;const r=le(s,n);return!!Lt(r,t)}const Ot=Object.freeze({width:null,height:null}),Mt=Object.freeze({...Ot,...Pe}),Cs=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Es=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function it(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Cs);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Es.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Ps(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Rs(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Ts(t,s,n){const r=Ps(t);return Rs(r.defs,s+r.content+n)}const Is=t=>t==="unset"||t==="undefined"||t==="none";function Ds(t,s){const n={...We,...t},r={...Mt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const j=[],N=f.hFlip,y=f.vFlip;let C=f.rotate;N?y?C+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):y&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let w;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:w=a.height/2+a.top,j.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,j.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}C%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),j.length&&(i=Ts(i,'<g transform="'+j.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=it(m,u/h)):(l=c==="auto"?u:c,m=d===null?it(l,h/u):d==="auto"?h:d);const x={},g=(f,j)=>{Is(j)||(x[f]=j.toString())};g("width",l),g("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const _s=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let $s=0;function As(t,s=Ls){const n=[];let r;for(;r=_s.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+($s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Ge=Object.create(null);function Os(t,s){Ge[t]=s}function Be(t){return Ge[t]||Ge[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Qe=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Ee=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Ee.push(ue.shift()):Ee.push(ue.pop());Qe[""]=Je({resources:["https://api.iconify.design"].concat(Ee)});function Ms(t,s){const n=Je(s);return n===null?!1:(Qe[t]=n,!0)}function Ye(t){return Qe[t]}const zs=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ot=zs();function Fs(t,s){const n=Ye(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Us(t){return t===404}const qs=(t,s,n)=>{const r=[],a=Fs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function Gs(t){if(typeof t=="string"){const s=Ye(t);if(s)return s.path}return"/"}const Bs=(t,s,n)=>{if(!ot){n("abort",424);return}let r=Gs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;ot(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Us(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Hs={prepare:qs,send:Bs};function zt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||zt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Ks=0;function Ws(t,s,n){const r=Ks++,a=zt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Js(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=le(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Qs(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?Ie(a,s,n):a;i&&r.push(i)}),r}const Ys={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Xs(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let b=t.resources.slice(0);for(c=[];b.length>1;){const _=Math.floor(Math.random()*b.length);c.push(b[_]),b=b.slice(0,_).concat(b.slice(_+1))}c=c.concat(b)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],g=[];typeof r=="function"&&g.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function j(b,_){_&&(g=[]),typeof b=="function"&&g.push(b)}function N(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:j,abort:f}}function y(){u="failed",g.forEach(b=>{b(void 0,l)})}function C(){x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function w(b,_,T){const P=_!=="success";switch(x=x.filter(E=>E!==b),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(_==="abort"){l=T,y();return}if(P){l=T,x.length||(c.length?R():y());return}if(p(),C(),!t.random){const E=t.resources.indexOf(b.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",g.forEach(E=>{E(T)})}function R(){if(u!=="pending")return;p();const b=c.shift();if(b===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(C(),y())},t.timeout);return}y();return}const _={status:"pending",resource:b,callback:(T,P)=>{w(_,T,P)}};x.push(_),h++,m=setTimeout(R,t.rotate),n(b,s,_.callback)}return setTimeout(R),N}function Ft(t){const s={...Ys,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Xs(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ct(){}const Le=Object.create(null);function Zs(t){if(!Le[t]){const s=Ye(t);if(!s)return;const n=Ft(s),r={config:s,redundancy:n};Le[t]=r}return Le[t]}function en(t,s,n){let r,a;if(typeof t=="string"){const i=Be(t);if(!i)return n(void 0,424),ct;a=i.send;const c=Zs(t);c&&(r=c.redundancy)}else{const i=Je(t);if(i){r=Ft(i);const c=t.resources?t.resources[0]:"",d=Be(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ct):r.query(s,a,n)().abort}function lt(){}function tn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function sn(t){const s=[],n=[];return t.forEach(r=>{(r.match($t)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),tn(t)}function dt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function nn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){dt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);dt(m,x=>{const g=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],g)})});return}const{valid:c,invalid:d}=sn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match($t)?Be(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{en(n,l,m=>{me(t,l.icons,m)})})}))}const an=(t,s)=>{const n=Qs(t,!0,At()),r=Js(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,lt)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(le(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=le(h,l),g=x.pendingIcons||(x.pendingIcons=new Set);g.has(m)||(g.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&nn(u,h)}),s?Ws(s,r,i):lt};function rn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Ot?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const on=/[\s,]+/;function cn(t,s){s.split(on).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ln(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function dn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function un(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function mn(t){return"data:image/svg+xml,"+un(t)}function hn(t){return'url("'+mn(t)+'")'}let je;function fn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function xn(t){return je===void 0&&fn(),je?je.createHTML(t):t}const Ut={...Mt,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},bn={display:"inline-block"},He={backgroundColor:"currentColor"},qt={backgroundColor:"transparent"},ut={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},mt={WebkitMask:He,mask:He,background:qt};for(const t in mt){const s=mt[t];for(const n in ut)s[t+n]=ut[n]}const gn={...Ut,inline:!0};function ht(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const jn=(t,s,n)=>{const r=s.inline?gn:Ut,a=rn(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=Ie(n,!1,!0);if(j){const N=["iconify"],y=["provider","prefix"];for(const C of y)j[C]&&N.push("iconify--"+j[C]);u.className=N.join(" ")}}for(let j in s){const N=s[j];if(N!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=N;break;case"className":u[j]=(u[j]?u[j]+" ":"")+N;break;case"inline":case"hFlip":case"vFlip":a[j]=N===!0||N==="true"||N===1;break;case"flip":typeof N=="string"&&cn(a,N);break;case"color":c.color=N;break;case"rotate":typeof N=="string"?a[j]=ln(N):typeof N=="number"&&(a[j]=N);break;case"ariaHidden":case"aria-hidden":N!==!0&&N!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=N)}}const h=Ds(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let j=0,N=s.id;return typeof N=="string"&&(N=N.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:xn(As(h.body,N?()=>N+"ID"+j++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:g}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=dn(m,{...l,width:x+"",height:g+""});return u.style={...c,"--svg":hn(f),width:ht(l.width),height:ht(l.height),...bn,...p?He:qt,...d},o.createElement("span",u)};At(!0);Os("",Hs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Ms(n,a)||console.error(r)}catch{console.error(r)}}}}function Gt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(g){if(g){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=rt(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const g=r.callback;g&&(g(),a({}))}function h(g){if(JSON.stringify(c)!==JSON.stringify(g))return u(),d(g),!0}function l(){var g;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=rt(p);if(h({name:p,data:f}))if(f===void 0){const j=an([p],l);a({callback:j})}else f&&((g=t.onLoad)===null||g===void 0||g.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?jn({...We,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const vn=o.forwardRef((t,s)=>Gt({...t,_ref:s}));o.forwardRef((t,s)=>Gt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(vn,{icon:t,width:s,height:s,className:n,style:r})}function Ve({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const yn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${yn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const wn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function Nn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=wn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const g=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(S,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),g()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function kn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(Nn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Cn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Cn,{},s))})]})}function En({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const Pn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Tn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:Pn.map(n=>e.jsx(En,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const In={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ft(t){return t.isExpired||t.tier==="trial"}function Dn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ft(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=In[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ft(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function _n({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const g=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();g.success?(a(""),n(),s()):c(g.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Bt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Ln={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Ln[s],{license:i,isLoading:c,refetch:d}=Bt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Dn,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(_n,{open:u,onClose:()=>h(!1),onActivated:d})]})}function An({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(us,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Tn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function On(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Mn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function zn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Fn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Un({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=zn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Mn[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?Fn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:On(m.created_at)})]})]})},m.id))})]})]})}function qn(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(g=>g.some(p=>p.id===x.id)?g:[x,...g]),r(g=>g+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Ht="pilot-memory-theme";function Gn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xt(){try{const t=localStorage.getItem(Ht);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Gn():t}function bt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=o.useState(xt),[n,r]=o.useState(()=>pt(xt()));return o.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",bt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",bt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Ht,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Kt=o.createContext(null);let Bn=0;function Hn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Bn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(kn,{toasts:s,onDismiss:a})]})}function Wt(){const t=o.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Vn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Jt=o.createContext(Vn);function Kn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Jt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Jt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?gt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(gt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function gt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Wn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:g,clearAll:p}=qn(),f=o.useCallback((N,y)=>{y&&u.includes(y)&&d(y),h(N)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(N=>N.json()).then(N=>{a(N.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(Un,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:g,onClearAll:p,onNavigate:f})]})}const Jn=10080*60*1e3,jt=3,Qn={plan:"Plan",implement:"Impl",verify:"Verify"},Yn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Xn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Zn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function ea({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Yn[t.phase]||""}`,children:Qn[t.phase]||t.phase})]}),e.jsx(Zn,{spec:t,tasks:r,loading:a})]})}function ta({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function sa(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const N=(await f.json()).specs||[],y=Date.now();s(N.filter(C=>C.status!=="VERIFIED"&&y-new Date(C.modifiedAt).getTime()<Jn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const j=n[f.filePath];if(!(j&&j.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(N=>({...N,[f.filePath]:!0}));try{const N=f.project?`&project=${encodeURIComponent(f.project)}`:"",y=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${N}`);if(!y.ok)return;const C=await y.json(),w=Xn(C.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:w}}))}catch{}finally{i(N=>({...N,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const j=encodeURIComponent(f.filePath);u(`/spec?path=${j}`)},[u,c,d]);if(t.length===0)return null;const g=t.slice(0,jt),p=t.slice(jt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[g.map(f=>{var j;return e.jsx(ea,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((j=n[f.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ta,{specs:p,onPick:x})]})}function na({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(sa,{})}),e.jsx(Wn,{onToggleTheme:t,onToggleLogs:s})]})}function aa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(An,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(na,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ra({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ia(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ia(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const $e="https://pilot-shell.com/docs";function oa(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:$e,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:$e,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:$e,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ca={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},la={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function da(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ua({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=ca[t.type]||la,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Y,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(X,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(S,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),da(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ma={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ha({memory:t,onClose:s}){const n=t?ma[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function fa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(se,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const xa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},pa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function ba(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ga({result:t}){const s=t.obsType||t.type,n=xa[s]||pa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Y,{className:"hover:shadow-md transition-shadow",children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),ba(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Re(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ja=12e4;function va(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),g=o.useCallback(async f=>{var y;(y=m.current)==null||y.abort(),x.current=!1;const j=new AbortController;m.current=j;const N=setTimeout(()=>j.abort(),ja);c(!0),n(!0),u(null);try{const C=new URLSearchParams({query:f,limit:"30"});t&&C.set("project",t);const w=await fetch(`/api/search/semantic?${C}`,{signal:j.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const R=await w.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(C){if(x.current)return;C.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(N),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:g,handleClearSearch:p}}function vt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:g,searchMeta:p,handleSearch:f,handleClearSearch:j}=va(),N=o.useCallback(async b=>{await f(b)},[f]),y=o.useCallback(async()=>{a(!0);try{const b=new URLSearchParams;h&&b.set("project",h),b.set("limit","50");const T=await(await fetch(`/api/observations?${b}`)).json(),P=T.items||T.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:C(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(b){console.error("Failed to fetch memories:",b)}finally{a(!1)}},[h]);function C(b){if(!b)return"";const _=new Date(b),P=new Date().getTime()-_.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:_.toLocaleDateString()}o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const b=s.find(_=>_.id===d);b&&(u.current=!0,c(b))}},[d,r,s]);const w=b=>{const _=s.find(T=>T.id===b);_&&c(_)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Re,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(se,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(se,{variant:"ghost",size:"sm",onClick:y,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(fa,{onSearch:N,isSearching:x,placeholder:"Search memories semantically..."}),g&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:g})]}),l?x?e.jsx(oe,{}):g?null:m.length===0?e.jsx(Ve,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(b=>e.jsx(ga,{result:b},`${b.type}-${b.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(b=>e.jsx(ua,{memory:b,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},b.id))}),e.jsx(ha,{memory:i,onClose:()=>c(null)})]})}const yt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function ya(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wa({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Ae({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Na(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function ka({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=yt[t.status]||yt.active;return e.jsx(Y,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(wa,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),ya(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Ae,{icon:"lucide:dollar-sign",value:a!=null?Na(a):"—",label:"Cost"}),e.jsx(Ae,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Ae,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Oe={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Sa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ca({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"bg-base-200/50",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Y,{className:"bg-primary/10 border-primary/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Y,{className:"bg-warning/10 border-warning/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var j,N;const x=`${l.type}-${l.id}`,g=c.has(x),p=l.type==="prompt"?Oe.prompt:Oe[l.data.type]||Oe.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Y,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:y=>{y.stopPropagation(),u(x)},children:e.jsx(X,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Sa(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(y=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:y},y))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((N=l.data.prompt_text)==null?void 0:N.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"whitespace-pre-wrap":"line-clamp-3"}`,children:g?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),y.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),y.length," modified"]})}catch{return null}})()]}),g&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:g?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ea(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Pa={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ra({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Pa[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ta({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function j(){var N;h(!0);try{const[y,C]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(y.ok){const w=await y.json();w.stats?(i(w.stats),m(!0),(N=x.current)==null||N.call(x,w.stats.is_resumed)):m(!1)}else m(!1);if(C.ok){const w=await C.json();d(w.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return j(),()=>{f=!0}},[t.id,s]);const g=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),g.map(([f,j])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ea(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ra,{tools:a.tools})]}),e.jsx(Ca,{sessionId:t.id,skipHeader:!0})]})})}const Ia=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function wt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[g,p]=o.useState({}),{selectedProject:f,setSelectedProject:j}=ie(),N=o.useRef(null),[y,C]=o.useState(new Set),w=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const z=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(z),z.length>0){const L=z.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{w(d||void 0)},[w,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&j(E.project)):f&&s.length>0&&j(null)},[t.selected,r,s,f,j]);const R=P=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{u(P)},300)},b=o.useCallback(P=>{C(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),_=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},T=o.useMemo(()=>{const P=[],E=[];for(const z of s)z.status==="active"?P.push(z):E.push(z);const A=m==="desc"?-1:1,G=(z,L)=>A*(wt(z,h,g)-wt(L,h,g));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,g]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Re,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>w(d||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ia.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>_(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:A,size:12}),E,G&&e.jsx(S,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),T.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(ka,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:y.has(P.id),costUsd:g[P.id]})},P.id))]}),i&&e.jsx(Ta,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:b})]})}const ve=["sonnet","opus"],Qt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Yt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Yt.test(r):!1}function Te(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Yt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function _a(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...J,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(w=>{s(R=>({...R,model:w})),d(!0),h(!1)},[]),m=o.useCallback(w=>{s(R=>({...R,extendedContext:w})),d(!0),h(!1)},[]),x=o.useCallback((w,R)=>{s(b=>({...b,extendedContextOverrides:{...b.extendedContextOverrides,[w]:R}})),d(!0),h(!1)},[]),g=o.useCallback((w,R)=>{s(b=>({...b,skills:{...b.skills,[w]:R}})),d(!0),h(!1)},[]),p=o.useCallback((w,R)=>{s(b=>({...b,agents:{...b.agents,[w]:R}})),d(!0),h(!1)},[]),f=o.useCallback((w,R)=>{s(b=>({...b,reviewerAgents:{...b.reviewerAgents,[w]:R}})),d(!0),h(!1)},[]),j=o.useCallback((w,R)=>{s(b=>({...b,codexReviewers:{...b.codexReviewers,[w]:R}})),d(!0),h(!1)},[]),N=o.useCallback((w,R)=>{s(b=>({...b,specWorkflow:{...b.specWorkflow,[w]:R}})),d(!0),h(!1)},[]),y=o.useCallback((w,R)=>{s(b=>({...b,securityScanner:{...b.securityScanner,[w]:R}})),d(!0),h(!1)},[]),C=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:g,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:j,updateSpecWorkflow:N,updateSecurityScanner:y,save:C}}const Me="__custom__";function ze({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Te(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?Me:t,x=p=>{if(p===Me){u(!0);return}u(!1),l(""),n(p)},g=()=>{const p=h.trim();Nt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Qt[p]??p},p)),e.jsx("option",{value:Me,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!Nt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:g,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),g())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function kt(t,s,n){return Te(t)?t.endsWith("[1m]"):s??n}const La=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],$a=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Aa=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Oa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Ma=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],za=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function Fe({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function St({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Ct({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Qt[t]??t})}const fe=41777,xe=1024,pe=65535;function Fa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,updateSecurityScanner:x,save:g}=_a(),[p,f]=o.useState(null),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(!1),[b,_]=o.useState(null),[T,P]=o.useState(fe),[E,A]=o.useState(fe),[G,z]=o.useState(fe),[L,I]=o.useState(!1),[D,O]=o.useState(null),[F,K]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(v=>v.ok?v.json():null).then(v=>{if(!v)return;const $=typeof v.workerPort=="number"?v.workerPort:fe,q=typeof v.defaultPort=="number"?v.defaultPort:fe;P($),A($),z(q)}).catch(()=>{})},[]);const Q=T!==E,ne=async()=>{if(O(null),K(!1),!Number.isInteger(T)||T<xe||T>pe){O(`Port must be an integer between ${xe} and ${pe}`);return}I(!0);try{const v=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!v.ok){const B=await v.json().catch(()=>null);throw new Error((B==null?void 0:B.error)??`Save failed: ${v.status}`)}const $=await v.json(),q=typeof $.workerPort=="number"?$.workerPort:T;A(q),P(q),K(!0),C(!0)}catch(v){O(v instanceof Error?v.message:"Failed to save")}finally{I(!1)}},H=()=>{P(G),K(!1),O(null)},k=o.useRef(!1),M=o.useRef(!1);o.useEffect(()=>{k.current=r},[r]);const U=async()=>{N(!0),f(null);try{await g(),C(!0)}catch(v){f(v instanceof Error?v.message:"Failed to save")}finally{N(!1)}};o.useEffect(()=>{const v=$=>{k.current&&$.preventDefault()};return window.addEventListener("beforeunload",v),()=>window.removeEventListener("beforeunload",v)},[]),o.useEffect(()=>{const v=()=>{if(M.current){M.current=!1;return}if(!k.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(M.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),_("#"+$),R(!0))};return window.addEventListener("hashchange",v),()=>window.removeEventListener("hashchange",v)},[]);const ee=()=>{R(!1),k.current=!1,b&&(window.location.hash=b)},te=()=>{R(!1),_(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${j?"loading":""}`,onClick:U,disabled:j||!r,children:j?"Saving...":r?"Save Changes":"Saved"})]}),p&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:p})}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(St,{children:"General"}),La.map(v=>{var de;const $=v.key==="main",q=$?t.model:t.skills[v.key]??J.skills[v.key],B=$?J.model:J.skills[v.key],ae=Te(q),W=kt(q,(de=t.extendedContextOverrides)==null?void 0:de[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(ze,{value:q,choices:ve,onChange:$?a:De=>d(v.key,De),id:$?"main-model":`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:W,disabled:ae,onChange:De=>c(v.key,De.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:ae?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:B})})]},v.key)}),e.jsx(St,{children:"Spec Phases"}),$a.map(v=>{var ae;const $=t.skills[v.key]??J.skills[v.key],q=Te($),B=kt($,(ae=t.extendedContextOverrides)==null?void 0:ae[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(ze,{value:$,choices:ve,onChange:W=>d(v.key,W),id:`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:B,disabled:q,onChange:W=>c(v.key,W.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:q?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:J.skills[v.key]})})]},v.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:v=>i(v.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Console"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:T,onChange:v=>{const $=parseInt(v.target.value,10);P(Number.isNaN($)?0:$),K(!1),O(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:H,disabled:T===G,title:`Reset to default (${G})`,children:"Reset"}),e.jsxs("span",{className:"text-xs text-base-content/55 flex-1 min-w-0 truncate",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(T)&&T>0?T:"?"]})," ",e.jsxs("span",{className:"text-base-content/40",children:["· ",xe,"–",pe," · restart Pilot to apply"]})]}),e.jsx("button",{className:`btn btn-primary btn-sm ${L?"loading":""}`,onClick:ne,disabled:L||!Q||!Number.isInteger(T)||T<xe||T>pe,children:L?"Saving...":"Save Port"})]}),D&&e.jsx("div",{className:"text-xs text-error mt-2",children:D}),F&&!Q&&!D&&e.jsx("div",{className:"text-xs text-success mt-2",children:"✓ Saved — restart Pilot for the new port to take effect."})]})})]}),e.jsxs("section",{children:[e.jsx(Fe,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Aa.map(v=>{var q;const $=((q=t.reviewerAgents)==null?void 0:q[v.toggleKey])??J.reviewerAgents[v.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>h(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":`Enable ${v.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx(ze,{value:t.agents[v.key]??J.agents[v.key],choices:ve,onChange:B=>u(v.key,B),id:`agent-${v.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Oa.map(v=>{var q;const $=t.codexAvailable&&(((q=t.codexReviewers)==null?void 0:q[v.toggleKey])??J.codexReviewers[v.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>l(v.toggleKey,B.target.checked),disabled:!t.codexAvailable,id:`toggle-${v.key}`,"aria-label":`Enable ${v.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Ma.map(v=>{var q;const $=((q=t.specWorkflow)==null?void 0:q[v.toggleKey])??J.specWorkflow[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>m(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2",children:za.map(v=>{var q;const $=((q=t.securityScanner)==null?void 0:q[v.toggleKey])??J.securityScanner[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>x(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]}),e.jsxs(ye,{open:y,onClose:()=>C(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>C(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:w,onClose:te,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:te,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:ee,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Xe(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Ze(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const et=Object.freeze(Object.defineProperty({__proto__:null,compress:Xe,decompress:Ze},Symbol.toStringTag,{value:"Module"})),Xt=32768;async function Zt(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function Ua(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}async function qa(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function es(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}function ts(t){return/^[A-Za-z0-9]{8}$/.test(t)}const _r=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:qa,generateShareUrl:Zt,isPasteServiceId:ts,parseFeedbackUrl:es,parseShareUrl:Ua},Symbol.toStringTag,{value:"Module"}));async function Ga(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(ts(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await Z(async()=>{const{decompress:u}=await Promise.resolve().then(()=>et);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return es(a)}function Ba({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Wt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var j,N;const f=m.current;f&&(t?((j=f.showModal)==null||j.call(f),setTimeout(()=>{var y;return(y=x.current)==null?void 0:y.focus()},50)):((N=f.close)==null||N.call(f),u(""),l({status:"idle"})))},[t]);const g=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ga(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const j=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),N=j.ok?(await j.json()).planAnnotations??[]:[],C=f.annotations.map(b=>({id:b.id??crypto.randomUUID(),blockId:b.blockId??"",originalText:b.originalText??"",text:b.text??"",createdAt:b.createdAt??Date.now(),author:b.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(b=>!N.some(_=>_.originalText===b.originalText&&_.text===b.text));if(C.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const w=[...N,...C],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:w})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(C),l({status:"done",count:C.length,author:f.author}),i(`Imported ${C.length} annotation${C.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(S,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&g()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:g,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(S,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ha="https://pilot-shell.com/shared",Va=32768;function Ue(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ka(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),g=o.useCallback(N=>{m(N),s(""),r(""),h(null)},[]),p=o.useCallback(async(N,y,C,w,R)=>{const b=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let _=y;if(_.length===0&&w)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(w)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(_=E.planAnnotations)}}catch{}const T={specContent:N,annotations:_.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:C??await Wa(),planPath:w,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(b!==x.current)return;if(l==="web"){const{compress:P}=await Z(async()=>{const{compress:G}=await Promise.resolve().then(()=>et);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(T));if(b!==x.current)return;if(E.length>Va){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ha}#${E}`;s(A),r(Ue(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Zt(T,P);if(b!==x.current)return;if(E)s(E.url),r(Ue(new Blob([E.url]).size)),i(!1);else{const A=await Ja(T,P);if(b!==x.current)return;A?(s(A.url),r(Ue(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(_){if(b!==x.current)return;h(_ instanceof Error?_.message:"Failed to generate share URL")}finally{b===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),j=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:g,generate:p,copyToClipboard:f,clear:j}}async function Wa(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ja(t,s){try{const{compress:n}=await Z(async()=>{const{compress:d}=await Promise.resolve().then(()=>et);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Wt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:g,target:p,setTarget:f,generate:j,copyToClipboard:N,clear:y}=Ka(),C=o.useRef(null),w=o.useRef(null);o.useEffect(()=>{t&&j(n,r,void 0,a,i),t||y()},[t,p]),o.useEffect(()=>{var P,E;const T=C.current;T&&(t?(P=T.showModal)==null||P.call(T):(E=T.close)==null||E.call(T))},[t]);const R=async()=>{await N()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},b=T=>{T!==p&&f(T)},_=T=>{T.key==="Escape"&&s()};return e.jsx("dialog",{ref:C,className:"modal",onKeyDown:_,onClick:T=>{T.target===C.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("local"),children:[e.jsx(S,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("web"),children:[e.jsx(S,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&g&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:g})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:w,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var T;return(T=w.current)==null?void 0:T.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ya({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ns,{remarkPlugins:[as],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Xa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Za({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Xa[t]||"lucide:file-text";return e.jsx(Y,{children:e.jsxs(X,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ya,{content:s})})})]})})}const er={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},tr=o.lazy(()=>Z(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],nr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function ar(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let g=0;g<m.length;g++){const{heading:p,contentStart:f}=m[g];if(!sr.includes(p))continue;const j=g+1<m.length?m[g+1].index:t.length,N=t.slice(f,j).trim();N&&h.push({heading:p,content:N})}return{title:n,sections:h,metadata:r}}function rr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ir(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const D=decodeURIComponent(s.path);i(O=>O===D?O:D)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,g]=o.useState(null),[p,f]=o.useState("view"),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(0),[b,_]=o.useState(!1),T=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),g(null),h(!0));const E=o.useCallback(async()=>{var D;try{const F=await(await fetch(`/api/prd${T}`)).json();r(F.prds||[]),((D=F.prds)==null?void 0:D.length)>0&&!a&&i(F.prds[0].filePath)}catch(O){g("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,T]),A=o.useCallback(async(D,O=!1)=>{O||m(!0),g(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){g("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{O||m(!1)}},[t]),G=o.useCallback(async D=>{if(confirm(`Delete "${D.split("/").pop()}"? This cannot be undone.`)){_(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){g("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{_(!1)}}},[E,t]);if(o.useEffect(()=>{E();const D=setInterval(()=>{E(),a&&A(a,!0)},er.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(D)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{})," "]}),e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const z=n.find(D=>D.filePath===a),L=n.filter(D=>D.filePath!==a),I=c?ar(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Re,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),z&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:z.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:rr(z.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:D=>i(D.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(D=>e.jsx("option",{value:D.filePath,children:D.name},D.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:b,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(tr,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>C(!0),onReceiveFeedback:()=>N(!0),reloadKey:w})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:e.jsxs(X,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:nr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>C(!0),title:"Share PRD with a teammate",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>N(!0),title:"Receive feedback from a colleague",children:[e.jsx(S,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(D=>e.jsx(Za,{heading:D.heading,content:D.content,defaultOpen:D.heading==="Problem Statement"||D.heading==="Scope"},D.heading))})]})]}):null,c&&j&&e.jsx(Ba,{isOpen:j,onClose:()=>N(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{N(!1),f("annotate"),R(D=>D+1)}}),c&&y&&e.jsx(Qa,{isOpen:y,onClose:()=>C(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{C(!1),setTimeout(()=>N(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function or(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function cr({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,g]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),j=o.useRef(null),N=o.useRef(!0),[y,C]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[b,_]=o.useState(!1),T=o.useMemo(()=>n?n.split(` +import{j as e,a as o,M as ns,b as as}from"./vendor-markdown.js";import{r as rs,a as is}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},tt;function os(){if(tt)return ke;tt=1;var t=rs();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var cs=os();const ls="modulepreload",ds=function(t,s){return new URL(t,s).href},st={},Z=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ds(l,r),l in st)return;st[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const j=d[f];if(j.href===l&&(!m||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":ls,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,j)=>{p.addEventListener("load",f),p.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function us(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const ms={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function se({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${ms[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Y({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function X({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Ir({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},xs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${xs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:is.createPortal(c,document.body)}const Tt=o.createContext(!1);function Dr(){return o.useContext(Tt)}function bs({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Tt.Provider,{value:s,children:t})}function gs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const It=Object.freeze({left:0,top:0,width:16,height:16}),Re=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),We=Object.freeze({...It,...Re}),qe=Object.freeze({...We,body:"",hidden:!1});function js(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function nt(t,s){const n=js(t,s);for(const r in qe)r in Re?r in t&&!(r in n)&&(n[r]=Re[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function vs(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=nt(r[d]||a[d],i)}return c(s),n.forEach(c),nt(t,i)}function Dt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=gs(t);for(const a in r){const i=r[a];i&&(s(a,vs(t,a,i)),n.push(a))}return n}const ys={provider:"",aliases:{},not_found:{},...It};function Le(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function _t(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!Le(t,ys))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!Le(i,qe))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!Le(i,qe))return null}return s}const at=Object.create(null);function ws(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function le(t,s){const n=at[t]||(at[t]=Object.create(null));return n[s]||(n[s]=ws(t,s))}function Lt(t,s){return _t(s)?Dt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function Ns(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const $t=/^[a-z0-9]+(-[a-z0-9]+)*$/,De=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ee(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ee(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ee(d,n)?null:d}return null},Ee=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function At(t){return typeof t=="boolean"&&(we=t),we}function rt(t){const s=typeof t=="string"?De(t,!0,we):t;if(s){const n=le(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function ks(t,s){const n=De(t,!0,we);if(!n)return!1;const r=le(n.provider,n.prefix);return s?Ns(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return _t(t)&&(t.prefix="",Dt(t,(i,c)=>{ks(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ee({prefix:n,name:"a"}))return!1;const r=le(s,n);return!!Lt(r,t)}const Ot=Object.freeze({width:null,height:null}),Mt=Object.freeze({...Ot,...Re}),Cs=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Es=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function it(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Cs);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Es.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Ps(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Rs(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Ts(t,s,n){const r=Ps(t);return Rs(r.defs,s+r.content+n)}const Is=t=>t==="unset"||t==="undefined"||t==="none";function Ds(t,s){const n={...We,...t},r={...Mt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const j=[],N=f.hFlip,y=f.vFlip;let C=f.rotate;N?y?C+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):y&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let w;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:w=a.height/2+a.top,j.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,j.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}C%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),j.length&&(i=Ts(i,'<g transform="'+j.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=it(m,u/h)):(l=c==="auto"?u:c,m=d===null?it(l,h/u):d==="auto"?h:d);const x={},g=(f,j)=>{Is(j)||(x[f]=j.toString())};g("width",l),g("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const _s=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let $s=0;function As(t,s=Ls){const n=[];let r;for(;r=_s.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+($s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Ge=Object.create(null);function Os(t,s){Ge[t]=s}function Be(t){return Ge[t]||Ge[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Qe=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Pe=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Pe.push(ue.shift()):Pe.push(ue.pop());Qe[""]=Je({resources:["https://api.iconify.design"].concat(Pe)});function Ms(t,s){const n=Je(s);return n===null?!1:(Qe[t]=n,!0)}function Ye(t){return Qe[t]}const zs=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ot=zs();function Fs(t,s){const n=Ye(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Us(t){return t===404}const qs=(t,s,n)=>{const r=[],a=Fs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function Gs(t){if(typeof t=="string"){const s=Ye(t);if(s)return s.path}return"/"}const Bs=(t,s,n)=>{if(!ot){n("abort",424);return}let r=Gs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;ot(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Us(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Hs={prepare:qs,send:Bs};function zt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||zt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Ks=0;function Ws(t,s,n){const r=Ks++,a=zt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Js(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=le(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Qs(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?De(a,s,n):a;i&&r.push(i)}),r}const Ys={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Xs(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let b=t.resources.slice(0);for(c=[];b.length>1;){const _=Math.floor(Math.random()*b.length);c.push(b[_]),b=b.slice(0,_).concat(b.slice(_+1))}c=c.concat(b)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],g=[];typeof r=="function"&&g.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function j(b,_){_&&(g=[]),typeof b=="function"&&g.push(b)}function N(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:j,abort:f}}function y(){u="failed",g.forEach(b=>{b(void 0,l)})}function C(){x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function w(b,_,T){const P=_!=="success";switch(x=x.filter(E=>E!==b),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(_==="abort"){l=T,y();return}if(P){l=T,x.length||(c.length?R():y());return}if(p(),C(),!t.random){const E=t.resources.indexOf(b.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",g.forEach(E=>{E(T)})}function R(){if(u!=="pending")return;p();const b=c.shift();if(b===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(C(),y())},t.timeout);return}y();return}const _={status:"pending",resource:b,callback:(T,P)=>{w(_,T,P)}};x.push(_),h++,m=setTimeout(R,t.rotate),n(b,s,_.callback)}return setTimeout(R),N}function Ft(t){const s={...Ys,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Xs(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ct(){}const $e=Object.create(null);function Zs(t){if(!$e[t]){const s=Ye(t);if(!s)return;const n=Ft(s),r={config:s,redundancy:n};$e[t]=r}return $e[t]}function en(t,s,n){let r,a;if(typeof t=="string"){const i=Be(t);if(!i)return n(void 0,424),ct;a=i.send;const c=Zs(t);c&&(r=c.redundancy)}else{const i=Je(t);if(i){r=Ft(i);const c=t.resources?t.resources[0]:"",d=Be(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ct):r.query(s,a,n)().abort}function lt(){}function tn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function sn(t){const s=[],n=[];return t.forEach(r=>{(r.match($t)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),tn(t)}function dt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function nn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){dt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);dt(m,x=>{const g=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],g)})});return}const{valid:c,invalid:d}=sn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match($t)?Be(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{en(n,l,m=>{me(t,l.icons,m)})})}))}const an=(t,s)=>{const n=Qs(t,!0,At()),r=Js(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,lt)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(le(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=le(h,l),g=x.pendingIcons||(x.pendingIcons=new Set);g.has(m)||(g.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&nn(u,h)}),s?Ws(s,r,i):lt};function rn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Ot?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const on=/[\s,]+/;function cn(t,s){s.split(on).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ln(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function dn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function un(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function mn(t){return"data:image/svg+xml,"+un(t)}function hn(t){return'url("'+mn(t)+'")'}let je;function fn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function xn(t){return je===void 0&&fn(),je?je.createHTML(t):t}const Ut={...Mt,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},bn={display:"inline-block"},He={backgroundColor:"currentColor"},qt={backgroundColor:"transparent"},ut={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},mt={WebkitMask:He,mask:He,background:qt};for(const t in mt){const s=mt[t];for(const n in ut)s[t+n]=ut[n]}const gn={...Ut,inline:!0};function ht(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const jn=(t,s,n)=>{const r=s.inline?gn:Ut,a=rn(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=De(n,!1,!0);if(j){const N=["iconify"],y=["provider","prefix"];for(const C of y)j[C]&&N.push("iconify--"+j[C]);u.className=N.join(" ")}}for(let j in s){const N=s[j];if(N!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=N;break;case"className":u[j]=(u[j]?u[j]+" ":"")+N;break;case"inline":case"hFlip":case"vFlip":a[j]=N===!0||N==="true"||N===1;break;case"flip":typeof N=="string"&&cn(a,N);break;case"color":c.color=N;break;case"rotate":typeof N=="string"?a[j]=ln(N):typeof N=="number"&&(a[j]=N);break;case"ariaHidden":case"aria-hidden":N!==!0&&N!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=N)}}const h=Ds(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let j=0,N=s.id;return typeof N=="string"&&(N=N.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:xn(As(h.body,N?()=>N+"ID"+j++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:g}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=dn(m,{...l,width:x+"",height:g+""});return u.style={...c,"--svg":hn(f),width:ht(l.width),height:ht(l.height),...bn,...p?He:qt,...d},o.createElement("span",u)};At(!0);Os("",Hs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Ms(n,a)||console.error(r)}catch{console.error(r)}}}}function Gt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(g){if(g){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=rt(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const g=r.callback;g&&(g(),a({}))}function h(g){if(JSON.stringify(c)!==JSON.stringify(g))return u(),d(g),!0}function l(){var g;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=rt(p);if(h({name:p,data:f}))if(f===void 0){const j=an([p],l);a({callback:j})}else f&&((g=t.onLoad)===null||g===void 0||g.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?jn({...We,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const vn=o.forwardRef((t,s)=>Gt({...t,_ref:s}));o.forwardRef((t,s)=>Gt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(vn,{icon:t,width:s,height:s,className:n,style:r})}function Ve({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const yn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${yn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const wn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function Nn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=wn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const g=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(S,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),g()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function kn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(Nn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Cn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Cn,{},s))})]})}function En({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const Pn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Tn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:Pn.map(n=>e.jsx(En,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const In={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ft(t){return t.isExpired||t.tier==="trial"}function Dn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ft(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=In[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ft(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function _n({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const g=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();g.success?(a(""),n(),s()):c(g.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Bt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Ln={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Ln[s],{license:i,isLoading:c,refetch:d}=Bt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Dn,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(_n,{open:u,onClose:()=>h(!1),onActivated:d})]})}function An({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(us,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Tn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function On(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Mn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function zn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Fn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Un({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=zn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Mn[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?Fn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:On(m.created_at)})]})]})},m.id))})]})]})}function qn(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(g=>g.some(p=>p.id===x.id)?g:[x,...g]),r(g=>g+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Ht="pilot-memory-theme";function Gn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xt(){try{const t=localStorage.getItem(Ht);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Gn():t}function bt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=o.useState(xt),[n,r]=o.useState(()=>pt(xt()));return o.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",bt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",bt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Ht,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Kt=o.createContext(null);let Bn=0;function Hn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Bn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(kn,{toasts:s,onDismiss:a})]})}function Wt(){const t=o.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Vn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Jt=o.createContext(Vn);function Kn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Jt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Jt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?gt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(gt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function gt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Wn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:g,clearAll:p}=qn(),f=o.useCallback((N,y)=>{y&&u.includes(y)&&d(y),h(N)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(N=>N.json()).then(N=>{a(N.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(Un,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:g,onClearAll:p,onNavigate:f})]})}const Jn=10080*60*1e3,jt=3,Qn={plan:"Plan",implement:"Impl",verify:"Verify"},Yn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Xn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Zn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function ea({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Yn[t.phase]||""}`,children:Qn[t.phase]||t.phase})]}),e.jsx(Zn,{spec:t,tasks:r,loading:a})]})}function ta({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function sa(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const N=(await f.json()).specs||[],y=Date.now();s(N.filter(C=>C.status!=="VERIFIED"&&y-new Date(C.modifiedAt).getTime()<Jn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const j=n[f.filePath];if(!(j&&j.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(N=>({...N,[f.filePath]:!0}));try{const N=f.project?`&project=${encodeURIComponent(f.project)}`:"",y=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${N}`);if(!y.ok)return;const C=await y.json(),w=Xn(C.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:w}}))}catch{}finally{i(N=>({...N,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const j=encodeURIComponent(f.filePath);u(`/spec?path=${j}`)},[u,c,d]);if(t.length===0)return null;const g=t.slice(0,jt),p=t.slice(jt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[g.map(f=>{var j;return e.jsx(ea,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((j=n[f.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ta,{specs:p,onPick:x})]})}function na({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(sa,{})}),e.jsx(Wn,{onToggleTheme:t,onToggleLogs:s})]})}function aa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(An,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(na,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ra({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ia(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ia(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const Ae="https://pilot-shell.com/docs";function oa(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Ae,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ca={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},la={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function da(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ua({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=ca[t.type]||la,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Y,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(X,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(S,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),da(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ma={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ha({memory:t,onClose:s}){const n=t?ma[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function fa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(se,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const xa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},pa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function ba(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ga({result:t}){const s=t.obsType||t.type,n=xa[s]||pa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Y,{className:"hover:shadow-md transition-shadow",children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),ba(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Te(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ja=12e4;function va(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),g=o.useCallback(async f=>{var y;(y=m.current)==null||y.abort(),x.current=!1;const j=new AbortController;m.current=j;const N=setTimeout(()=>j.abort(),ja);c(!0),n(!0),u(null);try{const C=new URLSearchParams({query:f,limit:"30"});t&&C.set("project",t);const w=await fetch(`/api/search/semantic?${C}`,{signal:j.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const R=await w.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(C){if(x.current)return;C.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(N),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:g,handleClearSearch:p}}function vt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:g,searchMeta:p,handleSearch:f,handleClearSearch:j}=va(),N=o.useCallback(async b=>{await f(b)},[f]),y=o.useCallback(async()=>{a(!0);try{const b=new URLSearchParams;h&&b.set("project",h),b.set("limit","50");const T=await(await fetch(`/api/observations?${b}`)).json(),P=T.items||T.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:C(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(b){console.error("Failed to fetch memories:",b)}finally{a(!1)}},[h]);function C(b){if(!b)return"";const _=new Date(b),P=new Date().getTime()-_.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:_.toLocaleDateString()}o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const b=s.find(_=>_.id===d);b&&(u.current=!0,c(b))}},[d,r,s]);const w=b=>{const _=s.find(T=>T.id===b);_&&c(_)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Te,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(se,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(se,{variant:"ghost",size:"sm",onClick:y,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(fa,{onSearch:N,isSearching:x,placeholder:"Search memories semantically..."}),g&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:g})]}),l?x?e.jsx(oe,{}):g?null:m.length===0?e.jsx(Ve,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(b=>e.jsx(ga,{result:b},`${b.type}-${b.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(b=>e.jsx(ua,{memory:b,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},b.id))}),e.jsx(ha,{memory:i,onClose:()=>c(null)})]})}const yt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function ya(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wa({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Oe({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Na(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function ka({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=yt[t.status]||yt.active;return e.jsx(Y,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(wa,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),ya(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Oe,{icon:"lucide:dollar-sign",value:a!=null?Na(a):"—",label:"Cost"}),e.jsx(Oe,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Oe,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Me={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Sa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ca({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"bg-base-200/50",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Y,{className:"bg-primary/10 border-primary/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Y,{className:"bg-warning/10 border-warning/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var j,N;const x=`${l.type}-${l.id}`,g=c.has(x),p=l.type==="prompt"?Me.prompt:Me[l.data.type]||Me.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Y,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:y=>{y.stopPropagation(),u(x)},children:e.jsx(X,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Sa(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(y=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:y},y))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((N=l.data.prompt_text)==null?void 0:N.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"whitespace-pre-wrap":"line-clamp-3"}`,children:g?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),y.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),y.length," modified"]})}catch{return null}})()]}),g&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:g?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ea(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Pa={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ra({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Pa[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ta({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function j(){var N;h(!0);try{const[y,C]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(y.ok){const w=await y.json();w.stats?(i(w.stats),m(!0),(N=x.current)==null||N.call(x,w.stats.is_resumed)):m(!1)}else m(!1);if(C.ok){const w=await C.json();d(w.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return j(),()=>{f=!0}},[t.id,s]);const g=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),g.map(([f,j])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ea(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ra,{tools:a.tools})]}),e.jsx(Ca,{sessionId:t.id,skipHeader:!0})]})})}const Ia=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function wt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[g,p]=o.useState({}),{selectedProject:f,setSelectedProject:j}=ie(),N=o.useRef(null),[y,C]=o.useState(new Set),w=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const z=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(z),z.length>0){const L=z.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{w(d||void 0)},[w,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&j(E.project)):f&&s.length>0&&j(null)},[t.selected,r,s,f,j]);const R=P=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{u(P)},300)},b=o.useCallback(P=>{C(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),_=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},T=o.useMemo(()=>{const P=[],E=[];for(const z of s)z.status==="active"?P.push(z):E.push(z);const A=m==="desc"?-1:1,G=(z,L)=>A*(wt(z,h,g)-wt(L,h,g));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,g]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Te,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>w(d||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ia.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>_(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:A,size:12}),E,G&&e.jsx(S,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),T.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(ka,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:y.has(P.id),costUsd:g[P.id]})},P.id))]}),i&&e.jsx(Ta,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:b})]})}const ve=["sonnet","opus"],Qt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Yt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Yt.test(r):!1}function Ie(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Yt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function _a(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...J,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(w=>{s(R=>({...R,model:w})),d(!0),h(!1)},[]),m=o.useCallback(w=>{s(R=>({...R,extendedContext:w})),d(!0),h(!1)},[]),x=o.useCallback((w,R)=>{s(b=>({...b,extendedContextOverrides:{...b.extendedContextOverrides,[w]:R}})),d(!0),h(!1)},[]),g=o.useCallback((w,R)=>{s(b=>({...b,skills:{...b.skills,[w]:R}})),d(!0),h(!1)},[]),p=o.useCallback((w,R)=>{s(b=>({...b,agents:{...b.agents,[w]:R}})),d(!0),h(!1)},[]),f=o.useCallback((w,R)=>{s(b=>({...b,reviewerAgents:{...b.reviewerAgents,[w]:R}})),d(!0),h(!1)},[]),j=o.useCallback((w,R)=>{s(b=>({...b,codexReviewers:{...b.codexReviewers,[w]:R}})),d(!0),h(!1)},[]),N=o.useCallback((w,R)=>{s(b=>({...b,specWorkflow:{...b.specWorkflow,[w]:R}})),d(!0),h(!1)},[]),y=o.useCallback((w,R)=>{s(b=>({...b,securityScanner:{...b.securityScanner,[w]:R}})),d(!0),h(!1)},[]),C=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:g,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:j,updateSpecWorkflow:N,updateSecurityScanner:y,save:C}}const ze="__custom__";function Fe({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Ie(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?ze:t,x=p=>{if(p===ze){u(!0);return}u(!1),l(""),n(p)},g=()=>{const p=h.trim();Nt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Qt[p]??p},p)),e.jsx("option",{value:ze,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!Nt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:g,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),g())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function kt(t,s,n){return Ie(t)?t.endsWith("[1m]"):s??n}const La=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],$a=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Aa=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Oa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Ma=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],za=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function Ce({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function St({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Ct({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Qt[t]??t})}const fe=41777,xe=1024,pe=65535;function Fa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,updateSecurityScanner:x,save:g}=_a(),[p,f]=o.useState(null),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(!1),[b,_]=o.useState(null),[T,P]=o.useState(fe),[E,A]=o.useState(fe),[G,z]=o.useState(fe),[L,I]=o.useState(!1),[D,O]=o.useState(null),[F,K]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(v=>v.ok?v.json():null).then(v=>{if(!v)return;const $=typeof v.workerPort=="number"?v.workerPort:fe,q=typeof v.defaultPort=="number"?v.defaultPort:fe;P($),A($),z(q)}).catch(()=>{})},[]);const Q=T!==E,ne=async()=>{if(O(null),K(!1),!Number.isInteger(T)||T<xe||T>pe){O(`Port must be an integer between ${xe} and ${pe}`);return}I(!0);try{const v=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!v.ok){const B=await v.json().catch(()=>null);throw new Error((B==null?void 0:B.error)??`Save failed: ${v.status}`)}const $=await v.json(),q=typeof $.workerPort=="number"?$.workerPort:T;A(q),P(q),K(!0),C(!0)}catch(v){O(v instanceof Error?v.message:"Failed to save")}finally{I(!1)}},H=()=>{P(G),K(!1),O(null)},k=o.useRef(!1),M=o.useRef(!1);o.useEffect(()=>{k.current=r},[r]);const U=async()=>{N(!0),f(null);try{await g(),C(!0)}catch(v){f(v instanceof Error?v.message:"Failed to save")}finally{N(!1)}};o.useEffect(()=>{const v=$=>{k.current&&$.preventDefault()};return window.addEventListener("beforeunload",v),()=>window.removeEventListener("beforeunload",v)},[]),o.useEffect(()=>{const v=()=>{if(M.current){M.current=!1;return}if(!k.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(M.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),_("#"+$),R(!0))};return window.addEventListener("hashchange",v),()=>window.removeEventListener("hashchange",v)},[]);const ee=()=>{R(!1),k.current=!1,b&&(window.location.hash=b)},te=()=>{R(!1),_(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${j?"loading":""}`,onClick:U,disabled:j||!r,children:j?"Saving...":r?"Save Changes":"Saved"})]}),p&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:p})}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(St,{children:"General"}),La.map(v=>{var de;const $=v.key==="main",q=$?t.model:t.skills[v.key]??J.skills[v.key],B=$?J.model:J.skills[v.key],ae=Ie(q),W=kt(q,(de=t.extendedContextOverrides)==null?void 0:de[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:q,choices:ve,onChange:$?a:_e=>d(v.key,_e),id:$?"main-model":`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:W,disabled:ae,onChange:_e=>c(v.key,_e.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:ae?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:B})})]},v.key)}),e.jsx(St,{children:"Spec Phases"}),$a.map(v=>{var ae;const $=t.skills[v.key]??J.skills[v.key],q=Ie($),B=kt($,(ae=t.extendedContextOverrides)==null?void 0:ae[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:$,choices:ve,onChange:W=>d(v.key,W),id:`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:B,disabled:q,onChange:W=>c(v.key,W.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:q?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:J.skills[v.key]})})]},v.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:v=>i(v.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("section",{children:[e.jsx(Ce,{children:"Console"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:T,onChange:v=>{const $=parseInt(v.target.value,10);P(Number.isNaN($)?0:$),K(!1),O(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:H,disabled:T===G,title:`Reset to default (${G})`,children:"Reset"}),e.jsxs("span",{className:"text-xs text-base-content/55 flex-1 min-w-0 truncate",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(T)&&T>0?T:"?"]})," ",e.jsxs("span",{className:"text-base-content/40",children:["· ",xe,"–",pe," · restart Pilot to apply"]})]}),e.jsx("button",{className:`btn btn-primary btn-sm ${L?"loading":""}`,onClick:ne,disabled:L||!Q||!Number.isInteger(T)||T<xe||T>pe,children:L?"Saving...":"Save Port"})]}),D&&e.jsx("div",{className:"text-xs text-error mt-2",children:D}),F&&!Q&&!D&&e.jsx("div",{className:"text-xs text-success mt-2",children:"✓ Saved — restart Pilot for the new port to take effect."})]})})]}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2",children:za.map(v=>{var q;const $=((q=t.securityScanner)==null?void 0:q[v.toggleKey])??J.securityScanner[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>x(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]})]}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Aa.map(v=>{var q;const $=((q=t.reviewerAgents)==null?void 0:q[v.toggleKey])??J.reviewerAgents[v.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>h(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":`Enable ${v.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx(Fe,{value:t.agents[v.key]??J.agents[v.key],choices:ve,onChange:B=>u(v.key,B),id:`agent-${v.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Oa.map(v=>{var q;const $=t.codexAvailable&&(((q=t.codexReviewers)==null?void 0:q[v.toggleKey])??J.codexReviewers[v.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>l(v.toggleKey,B.target.checked),disabled:!t.codexAvailable,id:`toggle-${v.key}`,"aria-label":`Enable ${v.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Ma.map(v=>{var q;const $=((q=t.specWorkflow)==null?void 0:q[v.toggleKey])??J.specWorkflow[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>m(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]}),e.jsxs(ye,{open:y,onClose:()=>C(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>C(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:w,onClose:te,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:te,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:ee,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Xe(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Ze(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const et=Object.freeze(Object.defineProperty({__proto__:null,compress:Xe,decompress:Ze},Symbol.toStringTag,{value:"Module"})),Xt=32768;async function Zt(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function Ua(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}async function qa(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function es(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}function ts(t){return/^[A-Za-z0-9]{8}$/.test(t)}const _r=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:qa,generateShareUrl:Zt,isPasteServiceId:ts,parseFeedbackUrl:es,parseShareUrl:Ua},Symbol.toStringTag,{value:"Module"}));async function Ga(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(ts(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await Z(async()=>{const{decompress:u}=await Promise.resolve().then(()=>et);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return es(a)}function Ba({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Wt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var j,N;const f=m.current;f&&(t?((j=f.showModal)==null||j.call(f),setTimeout(()=>{var y;return(y=x.current)==null?void 0:y.focus()},50)):((N=f.close)==null||N.call(f),u(""),l({status:"idle"})))},[t]);const g=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ga(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const j=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),N=j.ok?(await j.json()).planAnnotations??[]:[],C=f.annotations.map(b=>({id:b.id??crypto.randomUUID(),blockId:b.blockId??"",originalText:b.originalText??"",text:b.text??"",createdAt:b.createdAt??Date.now(),author:b.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(b=>!N.some(_=>_.originalText===b.originalText&&_.text===b.text));if(C.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const w=[...N,...C],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:w})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(C),l({status:"done",count:C.length,author:f.author}),i(`Imported ${C.length} annotation${C.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(S,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&g()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:g,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(S,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ha="https://pilot-shell.com/shared",Va=32768;function Ue(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ka(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),g=o.useCallback(N=>{m(N),s(""),r(""),h(null)},[]),p=o.useCallback(async(N,y,C,w,R)=>{const b=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let _=y;if(_.length===0&&w)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(w)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(_=E.planAnnotations)}}catch{}const T={specContent:N,annotations:_.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:C??await Wa(),planPath:w,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(b!==x.current)return;if(l==="web"){const{compress:P}=await Z(async()=>{const{compress:G}=await Promise.resolve().then(()=>et);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(T));if(b!==x.current)return;if(E.length>Va){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ha}#${E}`;s(A),r(Ue(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Zt(T,P);if(b!==x.current)return;if(E)s(E.url),r(Ue(new Blob([E.url]).size)),i(!1);else{const A=await Ja(T,P);if(b!==x.current)return;A?(s(A.url),r(Ue(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(_){if(b!==x.current)return;h(_ instanceof Error?_.message:"Failed to generate share URL")}finally{b===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),j=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:g,generate:p,copyToClipboard:f,clear:j}}async function Wa(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ja(t,s){try{const{compress:n}=await Z(async()=>{const{compress:d}=await Promise.resolve().then(()=>et);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Wt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:g,target:p,setTarget:f,generate:j,copyToClipboard:N,clear:y}=Ka(),C=o.useRef(null),w=o.useRef(null);o.useEffect(()=>{t&&j(n,r,void 0,a,i),t||y()},[t,p]),o.useEffect(()=>{var P,E;const T=C.current;T&&(t?(P=T.showModal)==null||P.call(T):(E=T.close)==null||E.call(T))},[t]);const R=async()=>{await N()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},b=T=>{T!==p&&f(T)},_=T=>{T.key==="Escape"&&s()};return e.jsx("dialog",{ref:C,className:"modal",onKeyDown:_,onClick:T=>{T.target===C.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("local"),children:[e.jsx(S,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("web"),children:[e.jsx(S,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&g&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:g})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:w,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var T;return(T=w.current)==null?void 0:T.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ya({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ns,{remarkPlugins:[as],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Xa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Za({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Xa[t]||"lucide:file-text";return e.jsx(Y,{children:e.jsxs(X,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ya,{content:s})})})]})})}const er={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},tr=o.lazy(()=>Z(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],nr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function ar(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let g=0;g<m.length;g++){const{heading:p,contentStart:f}=m[g];if(!sr.includes(p))continue;const j=g+1<m.length?m[g+1].index:t.length,N=t.slice(f,j).trim();N&&h.push({heading:p,content:N})}return{title:n,sections:h,metadata:r}}function rr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ir(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const D=decodeURIComponent(s.path);i(O=>O===D?O:D)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,g]=o.useState(null),[p,f]=o.useState("view"),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(0),[b,_]=o.useState(!1),T=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),g(null),h(!0));const E=o.useCallback(async()=>{var D;try{const F=await(await fetch(`/api/prd${T}`)).json();r(F.prds||[]),((D=F.prds)==null?void 0:D.length)>0&&!a&&i(F.prds[0].filePath)}catch(O){g("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,T]),A=o.useCallback(async(D,O=!1)=>{O||m(!0),g(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){g("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{O||m(!1)}},[t]),G=o.useCallback(async D=>{if(confirm(`Delete "${D.split("/").pop()}"? This cannot be undone.`)){_(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){g("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{_(!1)}}},[E,t]);if(o.useEffect(()=>{E();const D=setInterval(()=>{E(),a&&A(a,!0)},er.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(D)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{})," "]}),e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const z=n.find(D=>D.filePath===a),L=n.filter(D=>D.filePath!==a),I=c?ar(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),z&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:z.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:rr(z.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:D=>i(D.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(D=>e.jsx("option",{value:D.filePath,children:D.name},D.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:b,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(tr,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>C(!0),onReceiveFeedback:()=>N(!0),reloadKey:w})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:e.jsxs(X,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:nr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>C(!0),title:"Share PRD with a teammate",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>N(!0),title:"Receive feedback from a colleague",children:[e.jsx(S,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(D=>e.jsx(Za,{heading:D.heading,content:D.content,defaultOpen:D.heading==="Problem Statement"||D.heading==="Scope"},D.heading))})]})]}):null,c&&j&&e.jsx(Ba,{isOpen:j,onClose:()=>N(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{N(!1),f("annotate"),R(D=>D+1)}}),c&&y&&e.jsx(Qa,{isOpen:y,onClose:()=>C(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{C(!1),setTimeout(()=>N(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function or(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function cr({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,g]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),j=o.useRef(null),N=o.useRef(!0),[y,C]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[b,_]=o.useState(!1),T=o.useMemo(()=>n?n.split(` `).map(or):[],[n]),P=o.useMemo(()=>T.filter(k=>b?k.raw.includes("[ALIGNMENT]"):!k.level||!k.component?!0:y.has(k.level)&&w.has(k.component)),[T,y,w,b]),E=o.useCallback(()=>{if(!j.current)return!0;const{scrollTop:k,scrollHeight:M,clientHeight:U}=j.current;return M-k-U<50},[]),A=o.useCallback(()=>{j.current&&N.current&&(j.current.scrollTop=j.current.scrollHeight)},[]),G=o.useCallback(async()=>{N.current=E(),i(!0),d(null);try{const k=await fetch("/api/logs");if(!k.ok)throw new Error(`Failed to fetch logs: ${k.statusText}`);const M=await k.json();r(M.logs||"")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}},[E]);o.useEffect(()=>{A()},[n,A]);const z=o.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),d(null);try{const k=await fetch("/api/logs/clear",{method:"POST"});if(!k.ok)throw new Error(`Failed to clear logs: ${k.statusText}`);r("")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}}},[]),L=o.useCallback(k=>{k.preventDefault(),g(!0),p.current=k.clientY,f.current=l},[l]);o.useEffect(()=>{if(!x)return;const k=U=>{const ee=p.current-U.clientY,te=Math.min(Math.max(150,f.current+ee),window.innerHeight-100);m(te)},M=()=>{g(!1)};return document.addEventListener("mousemove",k),document.addEventListener("mouseup",M),()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",M)}},[x]),o.useEffect(()=>{t&&(N.current=!0,G())},[t,G]),o.useEffect(()=>{if(!t||!u)return;const k=setInterval(G,2e3);return()=>clearInterval(k)},[t,u,G]);const I=o.useCallback(k=>{C(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),D=o.useCallback(k=>{R(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),O=o.useCallback(k=>{C(k?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),F=o.useCallback(k=>{R(k?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const K=k=>{const M=be.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},Q=k=>{const M=ge.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},ne=k=>k.level==="ERROR"?"bg-error/10":k.level==="WARN"?"bg-warning/5":"",H=(k,M)=>{var te,v;if(!k.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:k.raw},M);const U=be.find($=>$.key===k.level),ee=ge.find($=>$.key===k.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${ne(k)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",k.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${K(k.level)}`,title:k.level,children:["[",(U==null?void 0:U.icon)||""," ",(te=k.level)==null?void 0:te.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${Q(k.component)}`,title:k.component,children:["[",(ee==null?void 0:ee.icon)||""," ",(v=k.component)==null?void 0:v.padEnd(7),"]"]})," ",k.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",k.correlationId,"]"]})," "]}),e.jsx("span",{className:k.isSpecial==="success"?"text-success":k.isSpecial==="failure"?"text-error":"text-base-content",children:k.message})]},M)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${l}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:L,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:k=>h(k.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:G,disabled:a,title:"Refresh logs",children:e.jsx(S,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{N.current=!0,A()},title:"Scroll to bottom",children:e.jsx(S,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:z,disabled:a,title:"Clear logs",children:e.jsx(S,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(S,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${b?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>_(!b),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[be.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${y.has(k.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>I(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>O(y.size===0),title:y.size===be.length?"Select none":"Select all",children:y.size===be.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ge.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${w.has(k.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>D(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>F(w.size===0),title:w.size===ge.length?"Select none":"Select all",children:w.size===ge.length?"○":"●"})]})]})]}),c&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",c]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:j,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:P.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):P.map((k,M)=>H(k,M))})})]})}const Ke={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},lr=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function Et(t){var r,a,i,c;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(c=t.modifiers)!=null&&c.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function dr({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,c]=o.useState(""),[d,u]=o.useState(0),h=o.useRef(null),l=o.useRef(null),m=o.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:Et(Ke.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:Et(Ke.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),x=o.useMemo(()=>{if(!i)return m;const y=i.toLowerCase();return m.filter(C=>C.label.toLowerCase().includes(y)||C.category.toLowerCase().includes(y))},[m,i]);o.useEffect(()=>{u(0)},[i]),o.useEffect(()=>{t&&(c(""),u(0),setTimeout(()=>{var y;return(y=h.current)==null?void 0:y.focus()},50))},[t]),o.useEffect(()=>{if(!l.current)return;const y=l.current.querySelector('[data-selected="true"]');y==null||y.scrollIntoView({block:"nearest"})},[d]);const g=y=>{y.action(),s()},p=y=>{switch(y.key){case"ArrowDown":y.preventDefault(),u(C=>(C+1)%x.length);break;case"ArrowUp":y.preventDefault(),u(C=>(C-1+x.length)%x.length);break;case"Enter":y.preventDefault(),x[d]&&g(x[d]);break;case"Escape":y.preventDefault(),s();break}};if(!t)return null;const f=x.reduce((y,C)=>(y[C.category]||(y[C.category]=[]),y[C.category].push(C),y),{}),j={navigation:"Navigation",action:"Actions",theme:"Theme"};let N=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(S,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:h,type:"text",placeholder:"Type a command or search...",value:i,onChange:y=>c(y.target.value),onKeyDown:p,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:l,className:"max-h-80 overflow-y-auto p-2",children:x.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(f).map(([y,C])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:j[y]||y}),C.map(w=>{const R=N===d,b=N;return N++,e.jsxs("button",{"data-selected":R,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${R?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>g(w),onMouseEnter:()=>u(b),children:[e.jsx(S,{icon:w.icon,size:16,className:R?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:w.label}),w.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${R?"bg-primary-content/20 text-primary-content":""}`,children:w.shortcut})]},w.id)})]},y))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function ur({license:t,onActivated:s}){const[n,r]=o.useState(""),[a,i]=o.useState(null),[c,d]=o.useState(!1),u=o.useCallback(async()=>{const g=n.trim();if(g){i(null),d(!0);try{const f=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g})})).json();f.success?(r(""),i(null),s()):i(f.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{d(!1)}}},[n,s]),h=o.useCallback(g=>{g.key==="Enter"&&!c&&u()},[u,c]),l=(t==null?void 0:t.isExpired)===!0,m=l?"License Expired":"License Required",x=l?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:l?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:m}),e.jsx("p",{className:"text-base-content/60 text-sm",children:x}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:g=>{r(g.target.value),i(null)},onKeyDown:h,disabled:c,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:c||!n.trim(),children:c?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}const mr={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function hr(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return mr}function fr(){const{selectedProject:t,setProjects:s}=ie(),[n,r]=o.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=o.useState({status:"offline"}),[c,d]=o.useState([]),[u,h]=o.useState({active:!1,plans:[]}),[l,m]=o.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[x,g]=o.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[p,f]=o.useState(0),[j,N]=o.useState(0),[y,C]=o.useState(0),[w,R]=o.useState([]),[b,_]=o.useState(hr),[T,P]=o.useState(!0),E=o.useCallback(async()=>{var z;try{const L=await fetch("/api/extensions?all=true").catch(()=>null);if(!(L!=null&&L.ok))return;const D=(await L.json()).extensions??[],O=D.filter(H=>H.scope==="global"&&!H.pluginName),F=D.filter(H=>H.scope==="project"),K=D.filter(H=>H.pluginName!=null);let Q=0;try{const H=await fetch("/api/team-remote/extensions").catch(()=>null);H!=null&&H.ok&&(Q=((z=(await H.json()).extensions)==null?void 0:z.length)??0)}catch{}const ne={totalGlobal:O.length,totalProject:F.length,totalPlugin:K.length,totalRemote:Q};_(ne);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(ne))}catch{}}catch{}},[]),A=o.useCallback(async()=>{const z=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${z}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([L,I,D,O])=>{var ee,te,v,$,q,B,ae;const F=await L.json(),K=await I.json(),Q=await D.json(),ne=await O.json(),H=Q.items||Q.observations||Q||[],k=Array.isArray(H)?H:[],M=k.length>0&&((ee=k[0])==null?void 0:ee.created_at)||null,U=ne.projects||[];s(U),r({observations:((te=F.database)==null?void 0:te.observations)||0,summaries:((v=F.database)==null?void 0:v.summaries)||0,sessions:(($=F.database)==null?void 0:$.sessions)||0,lastObservationAt:M?Pt(M):null,projects:U.length}),i({status:K.status==="ok"?K.isProcessing?"processing":"online":"offline",version:(q=F.worker)==null?void 0:q.version,uptime:(B=F.worker)!=null&&B.uptime?xr(F.worker.uptime):void 0,queueDepth:K.queueDepth||0,workspaceProject:(ae=F.worker)==null?void 0:ae.workspaceProject}),d(k.slice(0,2).map(W=>{var de;return{id:W.id,type:W.obs_type||W.type||"observation",title:W.title||((de=W.content)==null?void 0:de.slice(0,100))||"Untitled",project:W.project||"unknown",timestamp:Pt(W.created_at)}})),P(!1)}).catch(L=>{console.error("Failed to load core stats:",L),i({status:"offline"}),P(!1)}),fetch(`/api/plan${z}`).then(async L=>{const I=await L.json(),D=I.plans||(I.plan?[I.plan]:[]);h({active:D.length>0,plans:D})}).catch(()=>{}),fetch(`/api/git${z}`).then(async L=>{const I=await L.json();m({branch:I.branch||null,staged:I.staged||0,unstaged:I.unstaged||0,untracked:I.untracked||0,totalFiles:I.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async L=>{if(!L.ok)return;const D=(await L.json()).specs||[];g({totalSpecs:D.length,verified:D.filter(O=>O.status==="VERIFIED").length,inProgress:D.filter(O=>O.status==="COMPLETE"||O.status==="PENDING").length,pending:D.filter(O=>O.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async L=>{if(!L.ok)return;const I=await L.json();f((I.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async L=>{if(!L.ok)return;const D=(await L.json()).daily||[],O=new Date().toISOString().slice(0,10),F=D.find(K=>K.date===O);N((F==null?void 0:F.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async L=>{if(!L.ok)return;const D=(await L.json()).items||[];C(D.filter(O=>O.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async L=>{if(!L.ok)return;const I=await L.json();R(I.data||[])}).catch(()=>{})},[t,s]),G=o.useRef(A);return o.useEffect(()=>{G.current=A},[A]),o.useEffect(()=>{A()},[A]),o.useEffect(()=>{E();const z=new EventSource("/stream");return z.onmessage=L=>{try{const I=JSON.parse(L.data);I.type==="processing_status"&&i(D=>({...D,status:I.isProcessing?"processing":"online",queueDepth:I.queueDepth??D.queueDepth})),(I.type==="new_observation"||I.type==="new_summary"||I.type==="plan_association_changed")&&G.current()}catch{}},()=>{z.close()}},[E]),{stats:n,workerStatus:a,extensionsStatus:b,recentActivity:c,planStatus:u,gitInfo:l,specStats:x,prdCount:p,todayCost:j,activeSessions:y,observationTimeline:w,isLoading:T,refreshStats:A}}function Pt(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function xr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function pr(t,s={}){const{enabled:n=!0}=s,r=o.useRef([]),a=o.useRef(null),i=o.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);o.useEffect(()=>{if(!n)return;const c=d=>{const u=d.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){d.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const h=d.ctrlKey||d.metaKey;for(const l of Object.values(Ke)){const m=!l.modifiers||l.modifiers.some(p=>p==="ctrl"?d.ctrlKey:p==="meta"?d.metaKey:p==="shift"?d.shiftKey:p==="alt"?d.altKey:!1),x=d.key.toLowerCase()===l.key.toLowerCase(),g=l.modifiers&&l.modifiers.length>0;if(x&&m&&(g?h:!h)){d.preventDefault(),t(l.action),i();return}}if(!h&&!d.shiftKey&&!d.altKey){a.current&&clearTimeout(a.current),r.current.push(d.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const l of lr){const m=r.current,x=l.sequence;if(x.slice(0,m.length).every((p,f)=>p===m[f])){if(m.length===x.length){d.preventDefault(),t(l.action),i();return}return}}i()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c),i()}},[n,t,i])}const br=o.lazy(()=>Z(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),gr=o.lazy(()=>Z(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),jr=o.lazy(()=>Z(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),vr=o.lazy(()=>Z(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),yr=o.lazy(()=>Z(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),wr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.SharedSpecView}))),Nr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.FeedbackImportView}))),kr=[{path:"/",component:br},{path:"/requirements",component:ir},{path:"/spec",component:jr},{path:"/changes",component:gr},{path:"/memories",component:vt},{path:"/memories/:type",component:vt},{path:"/sessions",component:Da},{path:"/usage",component:vr},{path:"/extensions",component:yr},{path:"/settings",component:Fa},{path:"/help",component:oa},{path:"/shared/:data",component:wr},{path:"/feedback/:data",component:Nr}],Rt="pilot-memory-sidebar-collapsed";function Sr(){const{path:t,navigate:s}=ce(),{resolvedTheme:n,setThemePreference:r}=Vt(),{workerStatus:a}=fr(),i=a.version,{license:c,isLoading:d,refetch:u}=Bt(),[h,l]=o.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Rt)==="true"}catch{return!1}}),[m,x]=o.useState(!1),[g,p]=o.useState(!1),f=o.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),j=o.useCallback(()=>{l(R=>{const b=!R;try{localStorage.setItem(Rt,String(b))}catch{}return b})},[]),N=o.useCallback(()=>{x(R=>!R)},[]),y=o.useCallback(R=>{if(R==="openCommandPalette")p(!0);else if(R==="escape")p(!1),x(!1);else if(R==="toggleTheme")r(n==="light"?"dark":"light");else if(R==="toggleSidebar")j();else if(R==="focusSearch"){const b=document.querySelector('input[type="search"]');b==null||b.focus()}else R.startsWith("navigate:")&&s(R.replace("navigate:",""))},[n,r,s,j]);pr(y);const C=!d&&(c==null?void 0:c.valid)===!0&&!c.isExpired,w=n==="dark"?"pilot-shell":"pilot-shell-light";return d?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":w,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):C?e.jsx("div",{"data-theme":w,children:e.jsx(bs,{children:e.jsx(Kn,{children:e.jsxs(Hn,{children:[e.jsx(aa,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:f,onToggleLogs:N,sidebarCollapsed:h,onToggleSidebar:j,children:e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsx(ra,{routes:kr})})}),e.jsx(cr,{isOpen:m,onClose:()=>x(!1)}),e.jsx(dr,{open:g,onClose:()=>p(!1),onNavigate:s,onToggleTheme:f,onToggleSidebar:j})]})})})}):e.jsx("div",{"data-theme":w,children:e.jsx(ur,{license:c,onActivated:u})})}class Cr extends o.Component{constructor(s){super(s),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,n){console.error("[ErrorBoundary] Caught error:",s,n),this.setState({error:s,errorInfo:n})}render(){return this.state.hasError?e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:"The application encountered an error. Please refresh the page to try again."}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack]})]})]}):this.props.children}}const ss=document.getElementById("root");if(!ss)throw new Error("Root element not found");const Er=cs.createRoot(ss);Er.render(e.jsx(Cr,{children:e.jsx(Sr,{})}));export{V as B,Y as C,J as D,Ve as E,S as I,Qt as M,Re as P,Qa as S,er as T,oe as V,Z as _,X as a,ie as b,ce as c,Ir as d,fr as e,Vt as f,se as g,re as h,Za as i,Ya as j,Ba as k,_a as l,Bt as m,Wt as n,ts as o,Ua as p,es as q,et as r,_r as s,Dr as u}; +`+this.state.errorInfo.componentStack]})]})]}):this.props.children}}const ss=document.getElementById("root");if(!ss)throw new Error("Root element not found");const Er=cs.createRoot(ss);Er.render(e.jsx(Cr,{children:e.jsx(Sr,{})}));export{V as B,Y as C,J as D,Ve as E,S as I,Qt as M,Te as P,Qa as S,er as T,oe as V,Z as _,X as a,ie as b,ce as c,Ir as d,fr as e,Vt as f,se as g,re as h,Za as i,Ya as j,Ba as k,_a as l,Bt as m,Wt as n,ts as o,Ua as p,es as q,et as r,_r as s,Dr as u}; diff --git a/scripts/check_manifest_drift.py b/scripts/check_manifest_drift.py index 3e8b38c03..50de8a842 100644 --- a/scripts/check_manifest_drift.py +++ b/scripts/check_manifest_drift.py @@ -53,6 +53,10 @@ # install.sh / launcher/build.py — uv run --with <pkg> must be ==<version>: UV_RUN_WITH_PATTERN = re.compile(r"--with\s+([a-zA-Z][\w-]*)(?!\S*==)") +# Strict semver — exactly `\d+.\d+.\d+` with optional pre-release/build, no +# range operators or dist-tags (`@beta`, `@^1.2.3`, `@~1.2`, `@latest`). +_EXACT_SEMVER_RE = re.compile(r"^\d+\.\d+\.\d+(?:[-+][\w.+-]+)?$") + NOQA_PATTERN = re.compile(r"#\s*noqa:\s*drift-check\b\s*(?:#\s*(.*))?") @@ -80,18 +84,30 @@ def _parse_noqa(line: str) -> tuple[bool, bool]: return True, bool(justification) -def _iter_lines(path: Path) -> list[_LineCtx]: +def _iter_lines(path: Path) -> tuple[list[_LineCtx], Finding | None]: + """Read and parse `path`. Returns lines plus an error-Finding if any. + + A non-UTF-8 file used to abort the entire run (`UnicodeDecodeError`); now + the read failure is reported as a deterministic Finding so the gate stays + robust even if a tracked file is mojibake or accidentally binary. + """ out: list[_LineCtx] = [] try: # Explicit UTF-8: pathlib.Path.read_text() uses the locale default, which # is not always UTF-8 on CI runners (depends on $LANG / $LC_ALL). text = path.read_text(encoding="utf-8") - except (OSError, UnicodeDecodeError): - return out + except OSError as exc: + return out, Finding(file=path, line=0, message=f"could not read: {exc}") + except UnicodeDecodeError as exc: + return out, Finding( + file=path, + line=0, + message=f"not valid UTF-8: {exc.reason} at byte {exc.start}", + ) for i, line in enumerate(text.splitlines(), start=1): has_noqa, justified = _parse_noqa(line) out.append(_LineCtx(text=line, line_no=i, has_noqa=has_noqa, noqa_justified=justified)) - return out + return out, None def _add_finding(findings: list[Finding], path: Path, ctx: _LineCtx, msg: str) -> None: @@ -101,22 +117,32 @@ def _add_finding(findings: list[Finding], path: Path, ctx: _LineCtx, msg: str) - def _is_npm_install_pkg_pinned(pkg_arg: str) -> bool: - """`pkg@1.2.3` is pinned; `pkg`, `@scope/pkg`, `pkg@latest` are not.""" + """Pinned == package name + `@` + strict numeric semver. + + `pkg@1.2.3`, `@scope/pkg@1.2.3-rc.1` are pinned. All of `pkg`, `@scope/pkg`, + `pkg@latest`, `pkg@beta`, `pkg@^1.2.3`, `pkg@~1.2` are unpinned — the policy + is exact version pinning, so dist-tags and range operators must drop out. + """ if pkg_arg in {"-g", "--force", "--ignore-scripts", "--no-audit", "--no-fund"}: return True # flag, not a package if pkg_arg.startswith("--"): return True - if pkg_arg.startswith("@"): - # @scope/pkg or @scope/pkg@version - rest = pkg_arg[1:] - return "@" in rest - return "@" in pkg_arg + # Split on the LAST `@` so `@scope/pkg@1.2.3` keeps the scope and only the + # version trails. Bare `@scope/pkg` (no trailing version) has the only `@` + # in position 0 → split returns "" before, full string after → unpinned. + if "@" not in pkg_arg.lstrip("@"): + return False + version_part = pkg_arg.rsplit("@", 1)[1] + return bool(_EXACT_SEMVER_RE.match(version_part)) def _scan_python_or_shell(path: Path) -> list[Finding]: findings: list[Finding] = [] - is_shell = path.suffix == ".sh" or path.name.endswith(".sh") - for ctx in _iter_lines(path): + is_shell = path.name.endswith(".sh") + lines, read_finding = _iter_lines(path) + if read_finding is not None: + findings.append(read_finding) + for ctx in lines: # Bare `# noqa: drift-check` (no justification) is itself a finding. # `continue` keeps the line from also matching downstream patterns — # one line, one bare-noqa finding (no double-reporting). From 5db2bb42930c67fedfec2f2b044d302053e37fbc Mon Sep 17 00:00:00 2001 From: Max Ritter <mail@maxritter.net> Date: Thu, 7 May 2026 15:29:01 +0200 Subject: [PATCH 5/6] fix(ci): unlock git-crypt before drift check (encrypted launcher/build.py crashed scan) Without GIT_CRYPT_KEY-based decryption, actions/checkout pulls launcher/** and console/** as encrypted blobs whose first non-ASCII byte (0xd1, position 12) trips the new UnicodeDecodeError-as-Finding path and fails the supply-chain check. Mirror the existing release.yml pattern: install git-crypt + run setup-git-crypt.sh before the drift checker. The drift checker still emits a Finding for any genuinely-broken-utf8 file outside git-crypt scope; encrypted files now reach the scan as plaintext like every developer's local checkout sees them. --- .github/workflows/supply-chain.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/supply-chain.yml b/.github/workflows/supply-chain.yml index 3192f8eea..1c63ecd5d 100644 --- a/.github/workflows/supply-chain.yml +++ b/.github/workflows/supply-chain.yml @@ -29,6 +29,17 @@ jobs: - name: Checkout uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - name: Install git-crypt + # `launcher/**` and `console/**` are git-crypt encrypted — without + # decryption, the drift checker reads encrypted bytes and crashes on + # invalid UTF-8 (or now, emits a Finding for every encrypted file). + run: sudo apt-get update && sudo apt-get install -y git-crypt + + - name: Unlock repository + env: + GIT_CRYPT_KEY: ${{ secrets.GIT_CRYPT_KEY }} + run: bash .github/workflows/scripts/setup-git-crypt.sh + - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: From fa93eab1e3de2ba569816d616f75ea09b864a511 Mon Sep 17 00:00:00 2001 From: Max Ritter <mail@maxritter.net> Date: Thu, 7 May 2026 15:55:55 +0200 Subject: [PATCH 6/6] fix: max-plan model defaults, settings UI layout, renovate noise reduction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Max-plan model defaulting (the actual install bug): - launcher/model_config.py: DEFAULT_MODEL_CONFIG had spec-implement and spec-verify defaulting to 'sonnet' with extendedContext: True globally, which on a Max plan resolves to sonnet[1m] — but Max does NOT include Sonnet 1M, so the skills failed at runtime. The v9 migration was supposed to flip non-Max users to sonnet, but it assumed the default was 'opus' and only triggered on existing config.json files (fresh installs skipped the entire migration runner because the file didn't exist yet). - Reverted DEFAULT_MODEL_CONFIG.spec-implement and spec-verify to 'opus'. - installer/steps/config_migration.py: when config.json is missing, treat it as a fresh install with raw={} so all migrations (including v9) run against a synthetic empty config and the resulting subscription-aware defaults get written. Max users now land on opus[1m] (works); non-Max users get sonnet[1m] via v9 (also works). - Added regression tests covering both branches. Settings UI fixes: - console: fix Worker URL truncation in the new 2-col Console+Security layout. Card body switched from a single horizontal flex-wrap row to a vertical stack: row 1 has label/input/reset/save (Save now uses ml-auto to right-align), row 2 shows the resolved URL with break-all so the full `http://localhost:N` always renders, row 3 is the range hint. - Both sections now use `flex flex-col` + `flex-1` inside an `items-stretch` grid so the Console card height matches the Security toggle box. Renovate noise reduction (62 projected PRs → ~10-15): - major: enabled false — breaking-change PRs go to the dashboard only; evaluate manually instead of getting auto-PR'd. - pinDigests: false — actions stay SHA-pinned at the version we set; no perpetual digest-bump PRs against the workflows we just hardened. - Group all minor/patch devDependencies into a single weekly PR per workspace, instead of one PR per package. - Disable docs/site and docs/docusaurus entirely — marketing site is not on the supply-chain audit path. - Enable dependencyDashboard explicitly so the surfaced-but-unbumped list (majors, ignored docs deps) is visible. Tests: 2168 pass. --- .github/renovate.json | 20 +++++++++ .../src/ui/viewer/views/Settings/index.tsx | Bin 31944 -> 31853 bytes installer/steps/config_migration.py | 21 ++++++--- .../tests/unit/steps/test_config_migration.py | 42 ++++++++++++++++-- launcher/model_config.py | Bin 15379 -> 15754 bytes launcher/tests/unit/test_settings_injector.py | Bin 48757 -> 48895 bytes pilot/ui/viewer-bundle.js | 2 +- 7 files changed, 73 insertions(+), 12 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 42ca5226d..9050ab39b 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -10,6 +10,11 @@ "prConcurrentLimit": 3, "prHourlyLimit": 1, "schedule": ["before 7am on monday"], + "dependencyDashboard": true, + "major": { + "enabled": false + }, + "pinDigests": false, "packageRules": [ { "description": "High-risk packages get individual PRs with extra labels (no grouping).", @@ -40,6 +45,21 @@ "bun-installer" ], "addLabels": ["needs-manual-bump"] + }, + { + "description": "Group all minor/patch devDependency bumps into a single weekly PR per package.json. Cuts noise on the marketing site / docusaurus / pilot devDeps.", + "matchDepTypes": ["devDependencies"], + "matchUpdateTypes": ["minor", "patch", "pin"], + "groupName": "dev-dependencies (weekly)", + "groupSlug": "dev-deps-weekly" + }, + { + "description": "Skip the marketing site + docusaurus entirely — they are not on the supply-chain audit path. Re-enable per-package if a CVE forces it.", + "matchFileNames": [ + "docs/site/**", + "docs/docusaurus/**" + ], + "enabled": false } ], "customManagers": [ diff --git a/console/src/ui/viewer/views/Settings/index.tsx b/console/src/ui/viewer/views/Settings/index.tsx index 9ee856bf152aa6baabcd6e37507c13d6b0003984..a6598e47aba02737c4fe89bed8482ccf46c52fc0 100644 GIT binary patch literal 31853 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 literal 31944 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 diff --git a/installer/steps/config_migration.py b/installer/steps/config_migration.py index 3e03e90b1..3b92deb8f 100644 --- a/installer/steps/config_migration.py +++ b/installer/steps/config_migration.py @@ -33,13 +33,20 @@ def migrate_model_config(config_path: Path | None = None) -> bool: if config_path is None: config_path = Path.home() / ".pilot" / "config.json" - if not config_path.exists(): - return False - - try: - raw: dict[str, Any] = json.loads(config_path.read_text()) - except (OSError, json.JSONDecodeError): - return False + raw: dict[str, Any] + fresh_install = not config_path.exists() + if fresh_install: + # Fresh install: synthesize an empty config so subscription-aware + # migrations (notably v9's Max-vs-non-Max model defaulting) apply + # to the newly-created file. Without this, fresh Max installs land + # on the sonnet[1m] default in DEFAULT_MODEL_CONFIG and fail because + # Max plan doesn't include sonnet 1M. + raw = {} + else: + try: + raw = json.loads(config_path.read_text()) + except (OSError, json.JSONDecodeError): + return False version = raw.get("_configVersion", 0) if not isinstance(version, int): diff --git a/installer/tests/unit/steps/test_config_migration.py b/installer/tests/unit/steps/test_config_migration.py index 0ce7d94ae..f85aa4fa8 100644 --- a/installer/tests/unit/steps/test_config_migration.py +++ b/installer/tests/unit/steps/test_config_migration.py @@ -222,13 +222,47 @@ def test_skips_when_version_current(self, tmp_path: Path) -> None: assert result is False assert json.loads(config_path.read_text()) == original - def test_skips_when_no_config_file(self, tmp_path: Path) -> None: - """Returns False when config file doesn't exist.""" + def test_creates_subscription_aware_config_on_fresh_install( + self, tmp_path: Path + ) -> None: + """Fresh install (no config file) triggers a subscription-aware default write. + + Regression: previously this returned False without writing, leaving fresh + Max installs to fall through to DEFAULT_MODEL_CONFIG's sonnet default for + spec-implement/spec-verify — which doesn't work on Max plan because Max + does not include sonnet 1M. + """ + from installer.steps.config_migration import ( + CURRENT_CONFIG_VERSION, + migrate_model_config, + ) + + config_path = tmp_path / "nonexistent.json" + with patch("installer.steps.config_migration._get_subscription_type", return_value="max"): + result = migrate_model_config(config_path) + + assert result is True + assert config_path.exists() + written = json.loads(config_path.read_text()) + assert written.get("_configVersion") == CURRENT_CONFIG_VERSION + + def test_fresh_install_unknown_subscription_skips_write(self, tmp_path: Path) -> None: + """When subscription can't be detected, fresh install still writes a versioned config. + + v9's safe-fallback rule (leave skills unchanged) still applies — it just + means the file gets `_configVersion: N` and no skill overrides, leaving + the read-time defaults to apply (which are safe `opus` after the + DEFAULT_MODEL_CONFIG fix). + """ from installer.steps.config_migration import migrate_model_config - result = migrate_model_config(tmp_path / "nonexistent.json") + config_path = tmp_path / "nonexistent.json" + with patch("installer.steps.config_migration._get_subscription_type", return_value=None): + result = migrate_model_config(config_path) - assert result is False + # File is written with _configVersion bump even if no migration set fields. + assert result is True + assert config_path.exists() def test_second_run_is_noop(self, tmp_path: Path) -> None: """Running migration twice doesn't change anything the second time.""" diff --git a/launcher/model_config.py b/launcher/model_config.py index ce4d751f29f3b4ddc55437dc06637f4ff7f6b201..183b824e5dcb4c05634dcbd7972414d3dd20ad5d 100644 GIT binary patch literal 15754 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 I_1HUb;~xrjdjJ3c literal 15379 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 diff --git a/launcher/tests/unit/test_settings_injector.py b/launcher/tests/unit/test_settings_injector.py index 722f1f106da737400e12bae22e42448e16976147..f7860308eaf779c7ebc042333f9aa5c8ad600083 100644 GIT binary patch literal 48895 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 literal 48757 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 Bodo~@ diff --git a/pilot/ui/viewer-bundle.js b/pilot/ui/viewer-bundle.js index 9f0cd8bee..4c059397c 100644 --- a/pilot/ui/viewer-bundle.js +++ b/pilot/ui/viewer-bundle.js @@ -1,5 +1,5 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PlanAnnotator.js","./vendor-markdown.js","./vendor-charts.js","./vendor-diff.js","./index.js","./index2.js","./Spinner.js","./viewer2.css","./index3.js","./index4.js","./ExtensionsView.js","./index5.js"])))=>i.map(i=>d[i]); -import{j as e,a as o,M as ns,b as as}from"./vendor-markdown.js";import{r as rs,a as is}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},tt;function os(){if(tt)return ke;tt=1;var t=rs();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var cs=os();const ls="modulepreload",ds=function(t,s){return new URL(t,s).href},st={},Z=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ds(l,r),l in st)return;st[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const j=d[f];if(j.href===l&&(!m||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":ls,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,j)=>{p.addEventListener("load",f),p.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function us(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const ms={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function se({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${ms[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Y({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function X({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Ir({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},xs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${xs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:is.createPortal(c,document.body)}const Tt=o.createContext(!1);function Dr(){return o.useContext(Tt)}function bs({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Tt.Provider,{value:s,children:t})}function gs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const It=Object.freeze({left:0,top:0,width:16,height:16}),Re=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),We=Object.freeze({...It,...Re}),qe=Object.freeze({...We,body:"",hidden:!1});function js(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function nt(t,s){const n=js(t,s);for(const r in qe)r in Re?r in t&&!(r in n)&&(n[r]=Re[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function vs(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=nt(r[d]||a[d],i)}return c(s),n.forEach(c),nt(t,i)}function Dt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=gs(t);for(const a in r){const i=r[a];i&&(s(a,vs(t,a,i)),n.push(a))}return n}const ys={provider:"",aliases:{},not_found:{},...It};function Le(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function _t(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!Le(t,ys))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!Le(i,qe))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!Le(i,qe))return null}return s}const at=Object.create(null);function ws(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function le(t,s){const n=at[t]||(at[t]=Object.create(null));return n[s]||(n[s]=ws(t,s))}function Lt(t,s){return _t(s)?Dt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function Ns(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const $t=/^[a-z0-9]+(-[a-z0-9]+)*$/,De=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ee(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ee(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ee(d,n)?null:d}return null},Ee=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function At(t){return typeof t=="boolean"&&(we=t),we}function rt(t){const s=typeof t=="string"?De(t,!0,we):t;if(s){const n=le(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function ks(t,s){const n=De(t,!0,we);if(!n)return!1;const r=le(n.provider,n.prefix);return s?Ns(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return _t(t)&&(t.prefix="",Dt(t,(i,c)=>{ks(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ee({prefix:n,name:"a"}))return!1;const r=le(s,n);return!!Lt(r,t)}const Ot=Object.freeze({width:null,height:null}),Mt=Object.freeze({...Ot,...Re}),Cs=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Es=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function it(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Cs);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Es.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Ps(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Rs(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Ts(t,s,n){const r=Ps(t);return Rs(r.defs,s+r.content+n)}const Is=t=>t==="unset"||t==="undefined"||t==="none";function Ds(t,s){const n={...We,...t},r={...Mt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const j=[],N=f.hFlip,y=f.vFlip;let C=f.rotate;N?y?C+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):y&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let w;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:w=a.height/2+a.top,j.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,j.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}C%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),j.length&&(i=Ts(i,'<g transform="'+j.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=it(m,u/h)):(l=c==="auto"?u:c,m=d===null?it(l,h/u):d==="auto"?h:d);const x={},g=(f,j)=>{Is(j)||(x[f]=j.toString())};g("width",l),g("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const _s=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let $s=0;function As(t,s=Ls){const n=[];let r;for(;r=_s.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+($s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Ge=Object.create(null);function Os(t,s){Ge[t]=s}function Be(t){return Ge[t]||Ge[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Qe=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Pe=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Pe.push(ue.shift()):Pe.push(ue.pop());Qe[""]=Je({resources:["https://api.iconify.design"].concat(Pe)});function Ms(t,s){const n=Je(s);return n===null?!1:(Qe[t]=n,!0)}function Ye(t){return Qe[t]}const zs=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ot=zs();function Fs(t,s){const n=Ye(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Us(t){return t===404}const qs=(t,s,n)=>{const r=[],a=Fs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function Gs(t){if(typeof t=="string"){const s=Ye(t);if(s)return s.path}return"/"}const Bs=(t,s,n)=>{if(!ot){n("abort",424);return}let r=Gs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;ot(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Us(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Hs={prepare:qs,send:Bs};function zt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||zt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Ks=0;function Ws(t,s,n){const r=Ks++,a=zt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Js(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=le(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Qs(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?De(a,s,n):a;i&&r.push(i)}),r}const Ys={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Xs(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let b=t.resources.slice(0);for(c=[];b.length>1;){const _=Math.floor(Math.random()*b.length);c.push(b[_]),b=b.slice(0,_).concat(b.slice(_+1))}c=c.concat(b)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],g=[];typeof r=="function"&&g.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function j(b,_){_&&(g=[]),typeof b=="function"&&g.push(b)}function N(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:j,abort:f}}function y(){u="failed",g.forEach(b=>{b(void 0,l)})}function C(){x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function w(b,_,T){const P=_!=="success";switch(x=x.filter(E=>E!==b),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(_==="abort"){l=T,y();return}if(P){l=T,x.length||(c.length?R():y());return}if(p(),C(),!t.random){const E=t.resources.indexOf(b.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",g.forEach(E=>{E(T)})}function R(){if(u!=="pending")return;p();const b=c.shift();if(b===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(C(),y())},t.timeout);return}y();return}const _={status:"pending",resource:b,callback:(T,P)=>{w(_,T,P)}};x.push(_),h++,m=setTimeout(R,t.rotate),n(b,s,_.callback)}return setTimeout(R),N}function Ft(t){const s={...Ys,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Xs(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ct(){}const $e=Object.create(null);function Zs(t){if(!$e[t]){const s=Ye(t);if(!s)return;const n=Ft(s),r={config:s,redundancy:n};$e[t]=r}return $e[t]}function en(t,s,n){let r,a;if(typeof t=="string"){const i=Be(t);if(!i)return n(void 0,424),ct;a=i.send;const c=Zs(t);c&&(r=c.redundancy)}else{const i=Je(t);if(i){r=Ft(i);const c=t.resources?t.resources[0]:"",d=Be(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ct):r.query(s,a,n)().abort}function lt(){}function tn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function sn(t){const s=[],n=[];return t.forEach(r=>{(r.match($t)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),tn(t)}function dt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function nn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){dt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);dt(m,x=>{const g=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],g)})});return}const{valid:c,invalid:d}=sn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match($t)?Be(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{en(n,l,m=>{me(t,l.icons,m)})})}))}const an=(t,s)=>{const n=Qs(t,!0,At()),r=Js(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,lt)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(le(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=le(h,l),g=x.pendingIcons||(x.pendingIcons=new Set);g.has(m)||(g.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&nn(u,h)}),s?Ws(s,r,i):lt};function rn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Ot?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const on=/[\s,]+/;function cn(t,s){s.split(on).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ln(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function dn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function un(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function mn(t){return"data:image/svg+xml,"+un(t)}function hn(t){return'url("'+mn(t)+'")'}let je;function fn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function xn(t){return je===void 0&&fn(),je?je.createHTML(t):t}const Ut={...Mt,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},bn={display:"inline-block"},He={backgroundColor:"currentColor"},qt={backgroundColor:"transparent"},ut={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},mt={WebkitMask:He,mask:He,background:qt};for(const t in mt){const s=mt[t];for(const n in ut)s[t+n]=ut[n]}const gn={...Ut,inline:!0};function ht(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const jn=(t,s,n)=>{const r=s.inline?gn:Ut,a=rn(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=De(n,!1,!0);if(j){const N=["iconify"],y=["provider","prefix"];for(const C of y)j[C]&&N.push("iconify--"+j[C]);u.className=N.join(" ")}}for(let j in s){const N=s[j];if(N!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=N;break;case"className":u[j]=(u[j]?u[j]+" ":"")+N;break;case"inline":case"hFlip":case"vFlip":a[j]=N===!0||N==="true"||N===1;break;case"flip":typeof N=="string"&&cn(a,N);break;case"color":c.color=N;break;case"rotate":typeof N=="string"?a[j]=ln(N):typeof N=="number"&&(a[j]=N);break;case"ariaHidden":case"aria-hidden":N!==!0&&N!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=N)}}const h=Ds(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let j=0,N=s.id;return typeof N=="string"&&(N=N.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:xn(As(h.body,N?()=>N+"ID"+j++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:g}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=dn(m,{...l,width:x+"",height:g+""});return u.style={...c,"--svg":hn(f),width:ht(l.width),height:ht(l.height),...bn,...p?He:qt,...d},o.createElement("span",u)};At(!0);Os("",Hs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Ms(n,a)||console.error(r)}catch{console.error(r)}}}}function Gt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(g){if(g){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=rt(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const g=r.callback;g&&(g(),a({}))}function h(g){if(JSON.stringify(c)!==JSON.stringify(g))return u(),d(g),!0}function l(){var g;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=rt(p);if(h({name:p,data:f}))if(f===void 0){const j=an([p],l);a({callback:j})}else f&&((g=t.onLoad)===null||g===void 0||g.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?jn({...We,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const vn=o.forwardRef((t,s)=>Gt({...t,_ref:s}));o.forwardRef((t,s)=>Gt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(vn,{icon:t,width:s,height:s,className:n,style:r})}function Ve({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const yn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${yn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const wn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function Nn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=wn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const g=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(S,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),g()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function kn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(Nn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Cn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Cn,{},s))})]})}function En({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const Pn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Tn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:Pn.map(n=>e.jsx(En,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const In={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ft(t){return t.isExpired||t.tier==="trial"}function Dn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ft(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=In[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ft(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function _n({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const g=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();g.success?(a(""),n(),s()):c(g.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Bt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Ln={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Ln[s],{license:i,isLoading:c,refetch:d}=Bt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Dn,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(_n,{open:u,onClose:()=>h(!1),onActivated:d})]})}function An({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(us,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Tn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function On(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Mn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function zn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Fn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Un({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=zn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Mn[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?Fn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:On(m.created_at)})]})]})},m.id))})]})]})}function qn(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(g=>g.some(p=>p.id===x.id)?g:[x,...g]),r(g=>g+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Ht="pilot-memory-theme";function Gn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xt(){try{const t=localStorage.getItem(Ht);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Gn():t}function bt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=o.useState(xt),[n,r]=o.useState(()=>pt(xt()));return o.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",bt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",bt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Ht,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Kt=o.createContext(null);let Bn=0;function Hn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Bn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(kn,{toasts:s,onDismiss:a})]})}function Wt(){const t=o.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Vn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Jt=o.createContext(Vn);function Kn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Jt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Jt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?gt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(gt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function gt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Wn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:g,clearAll:p}=qn(),f=o.useCallback((N,y)=>{y&&u.includes(y)&&d(y),h(N)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(N=>N.json()).then(N=>{a(N.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(Un,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:g,onClearAll:p,onNavigate:f})]})}const Jn=10080*60*1e3,jt=3,Qn={plan:"Plan",implement:"Impl",verify:"Verify"},Yn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Xn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Zn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function ea({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Yn[t.phase]||""}`,children:Qn[t.phase]||t.phase})]}),e.jsx(Zn,{spec:t,tasks:r,loading:a})]})}function ta({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function sa(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const N=(await f.json()).specs||[],y=Date.now();s(N.filter(C=>C.status!=="VERIFIED"&&y-new Date(C.modifiedAt).getTime()<Jn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const j=n[f.filePath];if(!(j&&j.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(N=>({...N,[f.filePath]:!0}));try{const N=f.project?`&project=${encodeURIComponent(f.project)}`:"",y=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${N}`);if(!y.ok)return;const C=await y.json(),w=Xn(C.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:w}}))}catch{}finally{i(N=>({...N,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const j=encodeURIComponent(f.filePath);u(`/spec?path=${j}`)},[u,c,d]);if(t.length===0)return null;const g=t.slice(0,jt),p=t.slice(jt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[g.map(f=>{var j;return e.jsx(ea,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((j=n[f.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ta,{specs:p,onPick:x})]})}function na({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(sa,{})}),e.jsx(Wn,{onToggleTheme:t,onToggleLogs:s})]})}function aa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(An,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(na,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ra({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ia(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ia(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const Ae="https://pilot-shell.com/docs";function oa(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Ae,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ca={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},la={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function da(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ua({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=ca[t.type]||la,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Y,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(X,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(S,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),da(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ma={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ha({memory:t,onClose:s}){const n=t?ma[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function fa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(se,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const xa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},pa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function ba(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ga({result:t}){const s=t.obsType||t.type,n=xa[s]||pa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Y,{className:"hover:shadow-md transition-shadow",children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),ba(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Te(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ja=12e4;function va(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),g=o.useCallback(async f=>{var y;(y=m.current)==null||y.abort(),x.current=!1;const j=new AbortController;m.current=j;const N=setTimeout(()=>j.abort(),ja);c(!0),n(!0),u(null);try{const C=new URLSearchParams({query:f,limit:"30"});t&&C.set("project",t);const w=await fetch(`/api/search/semantic?${C}`,{signal:j.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const R=await w.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(C){if(x.current)return;C.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(N),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:g,handleClearSearch:p}}function vt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:g,searchMeta:p,handleSearch:f,handleClearSearch:j}=va(),N=o.useCallback(async b=>{await f(b)},[f]),y=o.useCallback(async()=>{a(!0);try{const b=new URLSearchParams;h&&b.set("project",h),b.set("limit","50");const T=await(await fetch(`/api/observations?${b}`)).json(),P=T.items||T.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:C(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(b){console.error("Failed to fetch memories:",b)}finally{a(!1)}},[h]);function C(b){if(!b)return"";const _=new Date(b),P=new Date().getTime()-_.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:_.toLocaleDateString()}o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const b=s.find(_=>_.id===d);b&&(u.current=!0,c(b))}},[d,r,s]);const w=b=>{const _=s.find(T=>T.id===b);_&&c(_)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Te,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(se,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(se,{variant:"ghost",size:"sm",onClick:y,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(fa,{onSearch:N,isSearching:x,placeholder:"Search memories semantically..."}),g&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:g})]}),l?x?e.jsx(oe,{}):g?null:m.length===0?e.jsx(Ve,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(b=>e.jsx(ga,{result:b},`${b.type}-${b.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(b=>e.jsx(ua,{memory:b,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},b.id))}),e.jsx(ha,{memory:i,onClose:()=>c(null)})]})}const yt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function ya(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wa({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Oe({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Na(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function ka({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=yt[t.status]||yt.active;return e.jsx(Y,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(wa,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),ya(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Oe,{icon:"lucide:dollar-sign",value:a!=null?Na(a):"—",label:"Cost"}),e.jsx(Oe,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Oe,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Me={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Sa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ca({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"bg-base-200/50",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Y,{className:"bg-primary/10 border-primary/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Y,{className:"bg-warning/10 border-warning/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var j,N;const x=`${l.type}-${l.id}`,g=c.has(x),p=l.type==="prompt"?Me.prompt:Me[l.data.type]||Me.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Y,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:y=>{y.stopPropagation(),u(x)},children:e.jsx(X,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Sa(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(y=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:y},y))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((N=l.data.prompt_text)==null?void 0:N.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"whitespace-pre-wrap":"line-clamp-3"}`,children:g?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),y.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),y.length," modified"]})}catch{return null}})()]}),g&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:g?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ea(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Pa={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ra({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Pa[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ta({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function j(){var N;h(!0);try{const[y,C]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(y.ok){const w=await y.json();w.stats?(i(w.stats),m(!0),(N=x.current)==null||N.call(x,w.stats.is_resumed)):m(!1)}else m(!1);if(C.ok){const w=await C.json();d(w.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return j(),()=>{f=!0}},[t.id,s]);const g=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),g.map(([f,j])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ea(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ra,{tools:a.tools})]}),e.jsx(Ca,{sessionId:t.id,skipHeader:!0})]})})}const Ia=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function wt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[g,p]=o.useState({}),{selectedProject:f,setSelectedProject:j}=ie(),N=o.useRef(null),[y,C]=o.useState(new Set),w=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const z=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(z),z.length>0){const L=z.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{w(d||void 0)},[w,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&j(E.project)):f&&s.length>0&&j(null)},[t.selected,r,s,f,j]);const R=P=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{u(P)},300)},b=o.useCallback(P=>{C(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),_=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},T=o.useMemo(()=>{const P=[],E=[];for(const z of s)z.status==="active"?P.push(z):E.push(z);const A=m==="desc"?-1:1,G=(z,L)=>A*(wt(z,h,g)-wt(L,h,g));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,g]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Te,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>w(d||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ia.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>_(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:A,size:12}),E,G&&e.jsx(S,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),T.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(ka,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:y.has(P.id),costUsd:g[P.id]})},P.id))]}),i&&e.jsx(Ta,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:b})]})}const ve=["sonnet","opus"],Qt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Yt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Yt.test(r):!1}function Ie(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Yt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function _a(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...J,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(w=>{s(R=>({...R,model:w})),d(!0),h(!1)},[]),m=o.useCallback(w=>{s(R=>({...R,extendedContext:w})),d(!0),h(!1)},[]),x=o.useCallback((w,R)=>{s(b=>({...b,extendedContextOverrides:{...b.extendedContextOverrides,[w]:R}})),d(!0),h(!1)},[]),g=o.useCallback((w,R)=>{s(b=>({...b,skills:{...b.skills,[w]:R}})),d(!0),h(!1)},[]),p=o.useCallback((w,R)=>{s(b=>({...b,agents:{...b.agents,[w]:R}})),d(!0),h(!1)},[]),f=o.useCallback((w,R)=>{s(b=>({...b,reviewerAgents:{...b.reviewerAgents,[w]:R}})),d(!0),h(!1)},[]),j=o.useCallback((w,R)=>{s(b=>({...b,codexReviewers:{...b.codexReviewers,[w]:R}})),d(!0),h(!1)},[]),N=o.useCallback((w,R)=>{s(b=>({...b,specWorkflow:{...b.specWorkflow,[w]:R}})),d(!0),h(!1)},[]),y=o.useCallback((w,R)=>{s(b=>({...b,securityScanner:{...b.securityScanner,[w]:R}})),d(!0),h(!1)},[]),C=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:g,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:j,updateSpecWorkflow:N,updateSecurityScanner:y,save:C}}const ze="__custom__";function Fe({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Ie(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?ze:t,x=p=>{if(p===ze){u(!0);return}u(!1),l(""),n(p)},g=()=>{const p=h.trim();Nt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Qt[p]??p},p)),e.jsx("option",{value:ze,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!Nt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:g,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),g())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function kt(t,s,n){return Ie(t)?t.endsWith("[1m]"):s??n}const La=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],$a=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Aa=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Oa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Ma=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],za=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function Ce({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function St({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Ct({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Qt[t]??t})}const fe=41777,xe=1024,pe=65535;function Fa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,updateSecurityScanner:x,save:g}=_a(),[p,f]=o.useState(null),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(!1),[b,_]=o.useState(null),[T,P]=o.useState(fe),[E,A]=o.useState(fe),[G,z]=o.useState(fe),[L,I]=o.useState(!1),[D,O]=o.useState(null),[F,K]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(v=>v.ok?v.json():null).then(v=>{if(!v)return;const $=typeof v.workerPort=="number"?v.workerPort:fe,q=typeof v.defaultPort=="number"?v.defaultPort:fe;P($),A($),z(q)}).catch(()=>{})},[]);const Q=T!==E,ne=async()=>{if(O(null),K(!1),!Number.isInteger(T)||T<xe||T>pe){O(`Port must be an integer between ${xe} and ${pe}`);return}I(!0);try{const v=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!v.ok){const B=await v.json().catch(()=>null);throw new Error((B==null?void 0:B.error)??`Save failed: ${v.status}`)}const $=await v.json(),q=typeof $.workerPort=="number"?$.workerPort:T;A(q),P(q),K(!0),C(!0)}catch(v){O(v instanceof Error?v.message:"Failed to save")}finally{I(!1)}},H=()=>{P(G),K(!1),O(null)},k=o.useRef(!1),M=o.useRef(!1);o.useEffect(()=>{k.current=r},[r]);const U=async()=>{N(!0),f(null);try{await g(),C(!0)}catch(v){f(v instanceof Error?v.message:"Failed to save")}finally{N(!1)}};o.useEffect(()=>{const v=$=>{k.current&&$.preventDefault()};return window.addEventListener("beforeunload",v),()=>window.removeEventListener("beforeunload",v)},[]),o.useEffect(()=>{const v=()=>{if(M.current){M.current=!1;return}if(!k.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(M.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),_("#"+$),R(!0))};return window.addEventListener("hashchange",v),()=>window.removeEventListener("hashchange",v)},[]);const ee=()=>{R(!1),k.current=!1,b&&(window.location.hash=b)},te=()=>{R(!1),_(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${j?"loading":""}`,onClick:U,disabled:j||!r,children:j?"Saving...":r?"Save Changes":"Saved"})]}),p&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:p})}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(St,{children:"General"}),La.map(v=>{var de;const $=v.key==="main",q=$?t.model:t.skills[v.key]??J.skills[v.key],B=$?J.model:J.skills[v.key],ae=Ie(q),W=kt(q,(de=t.extendedContextOverrides)==null?void 0:de[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:q,choices:ve,onChange:$?a:_e=>d(v.key,_e),id:$?"main-model":`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:W,disabled:ae,onChange:_e=>c(v.key,_e.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:ae?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:B})})]},v.key)}),e.jsx(St,{children:"Spec Phases"}),$a.map(v=>{var ae;const $=t.skills[v.key]??J.skills[v.key],q=Ie($),B=kt($,(ae=t.extendedContextOverrides)==null?void 0:ae[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:$,choices:ve,onChange:W=>d(v.key,W),id:`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:B,disabled:q,onChange:W=>c(v.key,W.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:q?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:J.skills[v.key]})})]},v.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:v=>i(v.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("section",{children:[e.jsx(Ce,{children:"Console"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:T,onChange:v=>{const $=parseInt(v.target.value,10);P(Number.isNaN($)?0:$),K(!1),O(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:H,disabled:T===G,title:`Reset to default (${G})`,children:"Reset"}),e.jsxs("span",{className:"text-xs text-base-content/55 flex-1 min-w-0 truncate",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(T)&&T>0?T:"?"]})," ",e.jsxs("span",{className:"text-base-content/40",children:["· ",xe,"–",pe," · restart Pilot to apply"]})]}),e.jsx("button",{className:`btn btn-primary btn-sm ${L?"loading":""}`,onClick:ne,disabled:L||!Q||!Number.isInteger(T)||T<xe||T>pe,children:L?"Saving...":"Save Port"})]}),D&&e.jsx("div",{className:"text-xs text-error mt-2",children:D}),F&&!Q&&!D&&e.jsx("div",{className:"text-xs text-success mt-2",children:"✓ Saved — restart Pilot for the new port to take effect."})]})})]}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2",children:za.map(v=>{var q;const $=((q=t.securityScanner)==null?void 0:q[v.toggleKey])??J.securityScanner[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>x(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]})]}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Aa.map(v=>{var q;const $=((q=t.reviewerAgents)==null?void 0:q[v.toggleKey])??J.reviewerAgents[v.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>h(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":`Enable ${v.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx(Fe,{value:t.agents[v.key]??J.agents[v.key],choices:ve,onChange:B=>u(v.key,B),id:`agent-${v.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Oa.map(v=>{var q;const $=t.codexAvailable&&(((q=t.codexReviewers)==null?void 0:q[v.toggleKey])??J.codexReviewers[v.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>l(v.toggleKey,B.target.checked),disabled:!t.codexAvailable,id:`toggle-${v.key}`,"aria-label":`Enable ${v.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Ma.map(v=>{var q;const $=((q=t.specWorkflow)==null?void 0:q[v.toggleKey])??J.specWorkflow[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>m(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]}),e.jsxs(ye,{open:y,onClose:()=>C(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>C(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:w,onClose:te,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:te,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:ee,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Xe(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Ze(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const et=Object.freeze(Object.defineProperty({__proto__:null,compress:Xe,decompress:Ze},Symbol.toStringTag,{value:"Module"})),Xt=32768;async function Zt(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function Ua(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}async function qa(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function es(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}function ts(t){return/^[A-Za-z0-9]{8}$/.test(t)}const _r=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:qa,generateShareUrl:Zt,isPasteServiceId:ts,parseFeedbackUrl:es,parseShareUrl:Ua},Symbol.toStringTag,{value:"Module"}));async function Ga(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(ts(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await Z(async()=>{const{decompress:u}=await Promise.resolve().then(()=>et);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return es(a)}function Ba({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Wt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var j,N;const f=m.current;f&&(t?((j=f.showModal)==null||j.call(f),setTimeout(()=>{var y;return(y=x.current)==null?void 0:y.focus()},50)):((N=f.close)==null||N.call(f),u(""),l({status:"idle"})))},[t]);const g=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ga(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const j=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),N=j.ok?(await j.json()).planAnnotations??[]:[],C=f.annotations.map(b=>({id:b.id??crypto.randomUUID(),blockId:b.blockId??"",originalText:b.originalText??"",text:b.text??"",createdAt:b.createdAt??Date.now(),author:b.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(b=>!N.some(_=>_.originalText===b.originalText&&_.text===b.text));if(C.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const w=[...N,...C],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:w})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(C),l({status:"done",count:C.length,author:f.author}),i(`Imported ${C.length} annotation${C.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(S,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&g()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:g,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(S,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ha="https://pilot-shell.com/shared",Va=32768;function Ue(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ka(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),g=o.useCallback(N=>{m(N),s(""),r(""),h(null)},[]),p=o.useCallback(async(N,y,C,w,R)=>{const b=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let _=y;if(_.length===0&&w)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(w)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(_=E.planAnnotations)}}catch{}const T={specContent:N,annotations:_.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:C??await Wa(),planPath:w,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(b!==x.current)return;if(l==="web"){const{compress:P}=await Z(async()=>{const{compress:G}=await Promise.resolve().then(()=>et);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(T));if(b!==x.current)return;if(E.length>Va){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ha}#${E}`;s(A),r(Ue(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Zt(T,P);if(b!==x.current)return;if(E)s(E.url),r(Ue(new Blob([E.url]).size)),i(!1);else{const A=await Ja(T,P);if(b!==x.current)return;A?(s(A.url),r(Ue(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(_){if(b!==x.current)return;h(_ instanceof Error?_.message:"Failed to generate share URL")}finally{b===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),j=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:g,generate:p,copyToClipboard:f,clear:j}}async function Wa(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ja(t,s){try{const{compress:n}=await Z(async()=>{const{compress:d}=await Promise.resolve().then(()=>et);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Wt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:g,target:p,setTarget:f,generate:j,copyToClipboard:N,clear:y}=Ka(),C=o.useRef(null),w=o.useRef(null);o.useEffect(()=>{t&&j(n,r,void 0,a,i),t||y()},[t,p]),o.useEffect(()=>{var P,E;const T=C.current;T&&(t?(P=T.showModal)==null||P.call(T):(E=T.close)==null||E.call(T))},[t]);const R=async()=>{await N()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},b=T=>{T!==p&&f(T)},_=T=>{T.key==="Escape"&&s()};return e.jsx("dialog",{ref:C,className:"modal",onKeyDown:_,onClick:T=>{T.target===C.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("local"),children:[e.jsx(S,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("web"),children:[e.jsx(S,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&g&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:g})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:w,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var T;return(T=w.current)==null?void 0:T.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ya({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ns,{remarkPlugins:[as],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Xa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Za({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Xa[t]||"lucide:file-text";return e.jsx(Y,{children:e.jsxs(X,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ya,{content:s})})})]})})}const er={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},tr=o.lazy(()=>Z(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],nr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function ar(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let g=0;g<m.length;g++){const{heading:p,contentStart:f}=m[g];if(!sr.includes(p))continue;const j=g+1<m.length?m[g+1].index:t.length,N=t.slice(f,j).trim();N&&h.push({heading:p,content:N})}return{title:n,sections:h,metadata:r}}function rr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ir(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const D=decodeURIComponent(s.path);i(O=>O===D?O:D)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,g]=o.useState(null),[p,f]=o.useState("view"),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(0),[b,_]=o.useState(!1),T=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),g(null),h(!0));const E=o.useCallback(async()=>{var D;try{const F=await(await fetch(`/api/prd${T}`)).json();r(F.prds||[]),((D=F.prds)==null?void 0:D.length)>0&&!a&&i(F.prds[0].filePath)}catch(O){g("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,T]),A=o.useCallback(async(D,O=!1)=>{O||m(!0),g(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){g("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{O||m(!1)}},[t]),G=o.useCallback(async D=>{if(confirm(`Delete "${D.split("/").pop()}"? This cannot be undone.`)){_(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){g("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{_(!1)}}},[E,t]);if(o.useEffect(()=>{E();const D=setInterval(()=>{E(),a&&A(a,!0)},er.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(D)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{})," "]}),e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const z=n.find(D=>D.filePath===a),L=n.filter(D=>D.filePath!==a),I=c?ar(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),z&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:z.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:rr(z.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:D=>i(D.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(D=>e.jsx("option",{value:D.filePath,children:D.name},D.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:b,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(tr,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>C(!0),onReceiveFeedback:()=>N(!0),reloadKey:w})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:e.jsxs(X,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:nr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>C(!0),title:"Share PRD with a teammate",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>N(!0),title:"Receive feedback from a colleague",children:[e.jsx(S,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(D=>e.jsx(Za,{heading:D.heading,content:D.content,defaultOpen:D.heading==="Problem Statement"||D.heading==="Scope"},D.heading))})]})]}):null,c&&j&&e.jsx(Ba,{isOpen:j,onClose:()=>N(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{N(!1),f("annotate"),R(D=>D+1)}}),c&&y&&e.jsx(Qa,{isOpen:y,onClose:()=>C(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{C(!1),setTimeout(()=>N(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function or(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function cr({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,g]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),j=o.useRef(null),N=o.useRef(!0),[y,C]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[b,_]=o.useState(!1),T=o.useMemo(()=>n?n.split(` +import{j as e,a as o,M as ns,b as as}from"./vendor-markdown.js";import{r as rs,a as is}from"./vendor-charts.js";import"./vendor-diff.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const c of i.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();var ke={},tt;function os(){if(tt)return ke;tt=1;var t=rs();return ke.createRoot=t.createRoot,ke.hydrateRoot=t.hydrateRoot,ke}var cs=os();const ls="modulepreload",ds=function(t,s){return new URL(t,s).href},st={},Z=function(s,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(l){return Promise.all(l.map(m=>Promise.resolve(m).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};const d=document.getElementsByTagName("link"),u=document.querySelector("meta[property=csp-nonce]"),h=(u==null?void 0:u.nonce)||(u==null?void 0:u.getAttribute("nonce"));a=c(n.map(l=>{if(l=ds(l,r),l in st)return;st[l]=!0;const m=l.endsWith(".css"),x=m?'[rel="stylesheet"]':"";if(!!r)for(let f=d.length-1;f>=0;f--){const j=d[f];if(j.href===l&&(!m||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${l}"]${x}`))return;const p=document.createElement("link");if(p.rel=m?"stylesheet":ls,m||(p.as="script"),p.crossOrigin="",p.href=l,h&&p.setAttribute("nonce",h),document.head.appendChild(p),m)return new Promise((f,j)=>{p.addEventListener("load",f),p.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return a.then(c=>{for(const d of c||[])d.status==="rejected"&&i(d.reason);return s().catch(i)})};function us(){return e.jsx("a",{href:"#/",className:"flex items-center",children:e.jsx("span",{className:"font-bold text-lg",children:"Pilot Shell Console"})})}const ms={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",outline:"btn-outline",error:"btn-error"},hs={xs:"btn-xs",sm:"btn-sm",md:"",lg:"btn-lg"};function se({variant:t="primary",size:s="md",loading:n=!1,className:r="",children:a,disabled:i,...c}){return e.jsxs("button",{className:`btn ${ms[t]} ${hs[s]} active:scale-[0.98] transition-transform ${r}`,disabled:i||n,...c,children:[n&&e.jsx("span",{className:"loading loading-spinner loading-sm"}),a]})}function Y({children:t,className:s="",compact:n=!1,interactive:r,onClick:a}){const i=r??!!a;return e.jsx("div",{className:`card bg-base-100 shadow-sm border border-base-200 transition-all duration-150 ${i?"cursor-pointer hover:-translate-y-0.5 hover:shadow-md hover:border-base-content/15":""} ${n?"card-compact":""} ${s}`,onClick:a,children:t})}function X({children:t,className:s=""}){return e.jsx("div",{className:`card-body ${s}`,children:t})}function Ir({children:t,className:s=""}){return e.jsx("h2",{className:`card-title ${s}`,children:t})}const fs={primary:"badge-primary",secondary:"badge-secondary",accent:"badge-accent",ghost:"badge-ghost",info:"badge-info",success:"badge-success",warning:"badge-warning",error:"badge-error"},xs={xs:"badge-xs",sm:"badge-sm",md:"",lg:"badge-lg"};function V({children:t,variant:s="ghost",size:n="md",outline:r=!1,className:a=""}){return e.jsx("span",{className:`badge ${fs[s]} ${xs[n]} ${r?"badge-outline":""} ${a}`,children:t})}const ps={default:"modal-box surface-elevated",wide:"modal-box surface-elevated max-w-4xl w-[90vw]"};function ye({open:t,onClose:s,title:n,children:r,actions:a,size:i="default"}){const c=e.jsxs("dialog",{className:`modal ${t?"modal-open":""}`,children:[e.jsxs("div",{className:ps[i],children:[e.jsxs("div",{className:"flex items-center justify-between",children:[n&&e.jsx("h3",{className:"font-bold text-lg",children:n}),e.jsx("button",{className:"btn btn-sm btn-circle btn-ghost",onClick:s,"aria-label":"Close",children:"✕"})]}),e.jsx("div",{className:"py-4",children:r}),a&&e.jsx("div",{className:"modal-action",children:a})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop",children:e.jsx("button",{onClick:s,children:"close"})})]});return typeof document>"u"?c:is.createPortal(c,document.body)}const Tt=o.createContext(!1);function Dr(){return o.useContext(Tt)}function bs({children:t}){const[s,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return o.useEffect(()=>{const r=window.matchMedia("(prefers-reduced-motion: reduce)"),a=i=>n(i.matches);return r.addEventListener("change",a),()=>r.removeEventListener("change",a)},[]),e.jsx(Tt.Provider,{value:s,children:t})}function gs(t,s){const n=t.icons,r=t.aliases||Object.create(null),a=Object.create(null);function i(c){if(n[c])return a[c]=[];if(!(c in a)){a[c]=null;const d=r[c]&&r[c].parent,u=d&&i(d);u&&(a[c]=[d].concat(u))}return a[c]}return Object.keys(n).concat(Object.keys(r)).forEach(i),a}const It=Object.freeze({left:0,top:0,width:16,height:16}),Re=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),We=Object.freeze({...It,...Re}),qe=Object.freeze({...We,body:"",hidden:!1});function js(t,s){const n={};!t.hFlip!=!s.hFlip&&(n.hFlip=!0),!t.vFlip!=!s.vFlip&&(n.vFlip=!0);const r=((t.rotate||0)+(s.rotate||0))%4;return r&&(n.rotate=r),n}function nt(t,s){const n=js(t,s);for(const r in qe)r in Re?r in t&&!(r in n)&&(n[r]=Re[r]):r in s?n[r]=s[r]:r in t&&(n[r]=t[r]);return n}function vs(t,s,n){const r=t.icons,a=t.aliases||Object.create(null);let i={};function c(d){i=nt(r[d]||a[d],i)}return c(s),n.forEach(c),nt(t,i)}function Dt(t,s){const n=[];if(typeof t!="object"||typeof t.icons!="object")return n;t.not_found instanceof Array&&t.not_found.forEach(a=>{s(a,null),n.push(a)});const r=gs(t);for(const a in r){const i=r[a];i&&(s(a,vs(t,a,i)),n.push(a))}return n}const ys={provider:"",aliases:{},not_found:{},...It};function Le(t,s){for(const n in s)if(n in t&&typeof t[n]!=typeof s[n])return!1;return!0}function _t(t){if(typeof t!="object"||t===null)return null;const s=t;if(typeof s.prefix!="string"||!t.icons||typeof t.icons!="object"||!Le(t,ys))return null;const n=s.icons;for(const a in n){const i=n[a];if(!a||typeof i.body!="string"||!Le(i,qe))return null}const r=s.aliases||Object.create(null);for(const a in r){const i=r[a],c=i.parent;if(!a||typeof c!="string"||!n[c]&&!r[c]||!Le(i,qe))return null}return s}const at=Object.create(null);function ws(t,s){return{provider:t,prefix:s,icons:Object.create(null),missing:new Set}}function le(t,s){const n=at[t]||(at[t]=Object.create(null));return n[s]||(n[s]=ws(t,s))}function Lt(t,s){return _t(s)?Dt(s,(n,r)=>{r?t.icons[n]=r:t.missing.add(n)}):[]}function Ns(t,s,n){try{if(typeof n.body=="string")return t.icons[s]={...n},!0}catch{}return!1}const $t=/^[a-z0-9]+(-[a-z0-9]+)*$/,De=(t,s,n,r="")=>{const a=t.split(":");if(t.slice(0,1)==="@"){if(a.length<2||a.length>3)return null;r=a.shift().slice(1)}if(a.length>3||!a.length)return null;if(a.length>1){const d=a.pop(),u=a.pop(),h={provider:a.length>0?a[0]:r,prefix:u,name:d};return s&&!Ee(h)?null:h}const i=a[0],c=i.split("-");if(c.length>1){const d={provider:r,prefix:c.shift(),name:c.join("-")};return s&&!Ee(d)?null:d}if(n&&r===""){const d={provider:r,prefix:"",name:i};return s&&!Ee(d,n)?null:d}return null},Ee=(t,s)=>t?!!((s&&t.prefix===""||t.prefix)&&t.name):!1;let we=!1;function At(t){return typeof t=="boolean"&&(we=t),we}function rt(t){const s=typeof t=="string"?De(t,!0,we):t;if(s){const n=le(s.provider,s.prefix),r=s.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function ks(t,s){const n=De(t,!0,we);if(!n)return!1;const r=le(n.provider,n.prefix);return s?Ns(r,n.name,s):(r.missing.add(n.name),!0)}function Ss(t,s){if(typeof t!="object")return!1;if(typeof s!="string"&&(s=t.provider||""),we&&!s&&!t.prefix){let a=!1;return _t(t)&&(t.prefix="",Dt(t,(i,c)=>{ks(i,c)&&(a=!0)})),a}const n=t.prefix;if(!Ee({prefix:n,name:"a"}))return!1;const r=le(s,n);return!!Lt(r,t)}const Ot=Object.freeze({width:null,height:null}),Mt=Object.freeze({...Ot,...Re}),Cs=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Es=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function it(t,s,n){if(s===1)return t;if(n=n||100,typeof t=="number")return Math.ceil(t*s*n)/n;if(typeof t!="string")return t;const r=t.split(Cs);if(r===null||!r.length)return t;const a=[];let i=r.shift(),c=Es.test(i);for(;;){if(c){const d=parseFloat(i);isNaN(d)?a.push(i):a.push(Math.ceil(d*s*n)/n)}else a.push(i);if(i=r.shift(),i===void 0)return a.join("");c=!c}}function Ps(t,s="defs"){let n="";const r=t.indexOf("<"+s);for(;r>=0;){const a=t.indexOf(">",r),i=t.indexOf("</"+s);if(a===-1||i===-1)break;const c=t.indexOf(">",i);if(c===-1)break;n+=t.slice(a+1,i).trim(),t=t.slice(0,r).trim()+t.slice(c+1)}return{defs:n,content:t}}function Rs(t,s){return t?"<defs>"+t+"</defs>"+s:s}function Ts(t,s,n){const r=Ps(t);return Rs(r.defs,s+r.content+n)}const Is=t=>t==="unset"||t==="undefined"||t==="none";function Ds(t,s){const n={...We,...t},r={...Mt,...s},a={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,r].forEach(f=>{const j=[],N=f.hFlip,y=f.vFlip;let C=f.rotate;N?y?C+=2:(j.push("translate("+(a.width+a.left).toString()+" "+(0-a.top).toString()+")"),j.push("scale(-1 1)"),a.top=a.left=0):y&&(j.push("translate("+(0-a.left).toString()+" "+(a.height+a.top).toString()+")"),j.push("scale(1 -1)"),a.top=a.left=0);let w;switch(C<0&&(C-=Math.floor(C/4)*4),C=C%4,C){case 1:w=a.height/2+a.top,j.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:j.unshift("rotate(180 "+(a.width/2+a.left).toString()+" "+(a.height/2+a.top).toString()+")");break;case 3:w=a.width/2+a.left,j.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}C%2===1&&(a.left!==a.top&&(w=a.left,a.left=a.top,a.top=w),a.width!==a.height&&(w=a.width,a.width=a.height,a.height=w)),j.length&&(i=Ts(i,'<g transform="'+j.join(" ")+'">',"</g>"))});const c=r.width,d=r.height,u=a.width,h=a.height;let l,m;c===null?(m=d===null?"1em":d==="auto"?h:d,l=it(m,u/h)):(l=c==="auto"?u:c,m=d===null?it(l,h/u):d==="auto"?h:d);const x={},g=(f,j)=>{Is(j)||(x[f]=j.toString())};g("width",l),g("height",m);const p=[a.left,a.top,u,h];return x.viewBox=p.join(" "),{attributes:x,viewBox:p,body:i}}const _s=/\sid="(\S+)"/g,Ls="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let $s=0;function As(t,s=Ls){const n=[];let r;for(;r=_s.exec(t);)n.push(r[1]);if(!n.length)return t;const a="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const c=typeof s=="function"?s(i):s+($s++).toString(),d=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+d+')([")]|\\.[a-z])',"g"),"$1"+c+a+"$3")}),t=t.replace(new RegExp(a,"g"),""),t}const Ge=Object.create(null);function Os(t,s){Ge[t]=s}function Be(t){return Ge[t]||Ge[""]}function Je(t){let s;if(typeof t.resources=="string")s=[t.resources];else if(s=t.resources,!(s instanceof Array)||!s.length)return null;return{resources:s,path:t.path||"/",maxURL:t.maxURL||500,rotate:t.rotate||750,timeout:t.timeout||5e3,random:t.random===!0,index:t.index||0,dataAfterTimeout:t.dataAfterTimeout!==!1}}const Qe=Object.create(null),ue=["https://api.simplesvg.com","https://api.unisvg.com"],Pe=[];for(;ue.length>0;)ue.length===1||Math.random()>.5?Pe.push(ue.shift()):Pe.push(ue.pop());Qe[""]=Je({resources:["https://api.iconify.design"].concat(Pe)});function Ms(t,s){const n=Je(s);return n===null?!1:(Qe[t]=n,!0)}function Ye(t){return Qe[t]}const zs=()=>{let t;try{if(t=fetch,typeof t=="function")return t}catch{}};let ot=zs();function Fs(t,s){const n=Ye(t);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let a=0;n.resources.forEach(c=>{a=Math.max(a,c.length)});const i=s+".json?icons=";r=n.maxURL-a-n.path.length-i.length}return r}function Us(t){return t===404}const qs=(t,s,n)=>{const r=[],a=Fs(t,s),i="icons";let c={type:i,provider:t,prefix:s,icons:[]},d=0;return n.forEach((u,h)=>{d+=u.length+1,d>=a&&h>0&&(r.push(c),c={type:i,provider:t,prefix:s,icons:[]},d=u.length),c.icons.push(u)}),r.push(c),r};function Gs(t){if(typeof t=="string"){const s=Ye(t);if(s)return s.path}return"/"}const Bs=(t,s,n)=>{if(!ot){n("abort",424);return}let r=Gs(s.provider);switch(s.type){case"icons":{const i=s.prefix,d=s.icons.join(","),u=new URLSearchParams({icons:d});r+=i+".json?"+u.toString();break}case"custom":{const i=s.uri;r+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let a=503;ot(t+r).then(i=>{const c=i.status;if(c!==200){setTimeout(()=>{n(Us(c)?"abort":"next",c)});return}return a=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",a)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",a)})},Hs={prepare:qs,send:Bs};function zt(t,s){t.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(a=>a.id!==s))})}function Vs(t){t.pendingCallbacksFlag||(t.pendingCallbacksFlag=!0,setTimeout(()=>{t.pendingCallbacksFlag=!1;const s=t.loaderCallbacks?t.loaderCallbacks.slice(0):[];if(!s.length)return;let n=!1;const r=t.provider,a=t.prefix;s.forEach(i=>{const c=i.icons,d=c.pending.length;c.pending=c.pending.filter(u=>{if(u.prefix!==a)return!0;const h=u.name;if(t.icons[h])c.loaded.push({provider:r,prefix:a,name:h});else if(t.missing.has(h))c.missing.push({provider:r,prefix:a,name:h});else return n=!0,!0;return!1}),c.pending.length!==d&&(n||zt([t],i.id),i.callback(c.loaded.slice(0),c.missing.slice(0),c.pending.slice(0),i.abort))})}))}let Ks=0;function Ws(t,s,n){const r=Ks++,a=zt.bind(null,n,r);if(!s.pending.length)return a;const i={id:r,icons:s,callback:t,abort:a};return n.forEach(c=>{(c.loaderCallbacks||(c.loaderCallbacks=[])).push(i)}),a}function Js(t){const s={loaded:[],missing:[],pending:[]},n=Object.create(null);t.sort((a,i)=>a.provider!==i.provider?a.provider.localeCompare(i.provider):a.prefix!==i.prefix?a.prefix.localeCompare(i.prefix):a.name.localeCompare(i.name));let r={provider:"",prefix:"",name:""};return t.forEach(a=>{if(r.name===a.name&&r.prefix===a.prefix&&r.provider===a.provider)return;r=a;const i=a.provider,c=a.prefix,d=a.name,u=n[i]||(n[i]=Object.create(null)),h=u[c]||(u[c]=le(i,c));let l;d in h.icons?l=s.loaded:c===""||h.missing.has(d)?l=s.missing:l=s.pending;const m={provider:i,prefix:c,name:d};l.push(m)}),s}function Qs(t,s=!0,n=!1){const r=[];return t.forEach(a=>{const i=typeof a=="string"?De(a,s,n):a;i&&r.push(i)}),r}const Ys={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Xs(t,s,n,r){const a=t.resources.length,i=t.random?Math.floor(Math.random()*a):t.index;let c;if(t.random){let b=t.resources.slice(0);for(c=[];b.length>1;){const _=Math.floor(Math.random()*b.length);c.push(b[_]),b=b.slice(0,_).concat(b.slice(_+1))}c=c.concat(b)}else c=t.resources.slice(i).concat(t.resources.slice(0,i));const d=Date.now();let u="pending",h=0,l,m=null,x=[],g=[];typeof r=="function"&&g.push(r);function p(){m&&(clearTimeout(m),m=null)}function f(){u==="pending"&&(u="aborted"),p(),x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function j(b,_){_&&(g=[]),typeof b=="function"&&g.push(b)}function N(){return{startTime:d,payload:s,status:u,queriesSent:h,queriesPending:x.length,subscribe:j,abort:f}}function y(){u="failed",g.forEach(b=>{b(void 0,l)})}function C(){x.forEach(b=>{b.status==="pending"&&(b.status="aborted")}),x=[]}function w(b,_,T){const P=_!=="success";switch(x=x.filter(E=>E!==b),u){case"pending":break;case"failed":if(P||!t.dataAfterTimeout)return;break;default:return}if(_==="abort"){l=T,y();return}if(P){l=T,x.length||(c.length?R():y());return}if(p(),C(),!t.random){const E=t.resources.indexOf(b.resource);E!==-1&&E!==t.index&&(t.index=E)}u="completed",g.forEach(E=>{E(T)})}function R(){if(u!=="pending")return;p();const b=c.shift();if(b===void 0){if(x.length){m=setTimeout(()=>{p(),u==="pending"&&(C(),y())},t.timeout);return}y();return}const _={status:"pending",resource:b,callback:(T,P)=>{w(_,T,P)}};x.push(_),h++,m=setTimeout(R,t.rotate),n(b,s,_.callback)}return setTimeout(R),N}function Ft(t){const s={...Ys,...t};let n=[];function r(){n=n.filter(d=>d().status==="pending")}function a(d,u,h){const l=Xs(s,d,u,(m,x)=>{r(),h&&h(m,x)});return n.push(l),l}function i(d){return n.find(u=>d(u))||null}return{query:a,find:i,setIndex:d=>{s.index=d},getIndex:()=>s.index,cleanup:r}}function ct(){}const $e=Object.create(null);function Zs(t){if(!$e[t]){const s=Ye(t);if(!s)return;const n=Ft(s),r={config:s,redundancy:n};$e[t]=r}return $e[t]}function en(t,s,n){let r,a;if(typeof t=="string"){const i=Be(t);if(!i)return n(void 0,424),ct;a=i.send;const c=Zs(t);c&&(r=c.redundancy)}else{const i=Je(t);if(i){r=Ft(i);const c=t.resources?t.resources[0]:"",d=Be(c);d&&(a=d.send)}}return!r||!a?(n(void 0,424),ct):r.query(s,a,n)().abort}function lt(){}function tn(t){t.iconsLoaderFlag||(t.iconsLoaderFlag=!0,setTimeout(()=>{t.iconsLoaderFlag=!1,Vs(t)}))}function sn(t){const s=[],n=[];return t.forEach(r=>{(r.match($t)?s:n).push(r)}),{valid:s,invalid:n}}function me(t,s,n){function r(){const a=t.pendingIcons;s.forEach(i=>{a&&a.delete(i),t.icons[i]||t.missing.add(i)})}if(n&&typeof n=="object")try{if(!Lt(t,n).length){r();return}}catch(a){console.error(a)}r(),tn(t)}function dt(t,s){t instanceof Promise?t.then(n=>{s(n)}).catch(()=>{s(null)}):s(t)}function nn(t,s){t.iconsToLoad?t.iconsToLoad=t.iconsToLoad.concat(s).sort():t.iconsToLoad=s,t.iconsQueueFlag||(t.iconsQueueFlag=!0,setTimeout(()=>{t.iconsQueueFlag=!1;const{provider:n,prefix:r}=t,a=t.iconsToLoad;if(delete t.iconsToLoad,!a||!a.length)return;const i=t.loadIcon;if(t.loadIcons&&(a.length>1||!i)){dt(t.loadIcons(a,r,n),l=>{me(t,a,l)});return}if(i){a.forEach(l=>{const m=i(l,r,n);dt(m,x=>{const g=x?{prefix:r,icons:{[l]:x}}:null;me(t,[l],g)})});return}const{valid:c,invalid:d}=sn(a);if(d.length&&me(t,d,null),!c.length)return;const u=r.match($t)?Be(n):null;if(!u){me(t,c,null);return}u.prepare(n,r,c).forEach(l=>{en(n,l,m=>{me(t,l.icons,m)})})}))}const an=(t,s)=>{const n=Qs(t,!0,At()),r=Js(n);if(!r.pending.length){let u=!0;return s&&setTimeout(()=>{u&&s(r.loaded,r.missing,r.pending,lt)}),()=>{u=!1}}const a=Object.create(null),i=[];let c,d;return r.pending.forEach(u=>{const{provider:h,prefix:l}=u;if(l===d&&h===c)return;c=h,d=l,i.push(le(h,l));const m=a[h]||(a[h]=Object.create(null));m[l]||(m[l]=[])}),r.pending.forEach(u=>{const{provider:h,prefix:l,name:m}=u,x=le(h,l),g=x.pendingIcons||(x.pendingIcons=new Set);g.has(m)||(g.add(m),a[h][l].push(m))}),i.forEach(u=>{const h=a[u.provider][u.prefix];h.length&&nn(u,h)}),s?Ws(s,r,i):lt};function rn(t,s){const n={...t};for(const r in s){const a=s[r],i=typeof a;r in Ot?(a===null||a&&(i==="string"||i==="number"))&&(n[r]=a):i===typeof n[r]&&(n[r]=r==="rotate"?a%4:a)}return n}const on=/[\s,]+/;function cn(t,s){s.split(on).forEach(n=>{switch(n.trim()){case"horizontal":t.hFlip=!0;break;case"vertical":t.vFlip=!0;break}})}function ln(t,s=0){const n=t.replace(/^-?[0-9.]*/,"");function r(a){for(;a<0;)a+=4;return a%4}if(n===""){const a=parseInt(t);return isNaN(a)?0:r(a)}else if(n!==t){let a=0;switch(n){case"%":a=25;break;case"deg":a=90}if(a){let i=parseFloat(t.slice(0,t.length-n.length));return isNaN(i)?0:(i=i/a,i%1===0?r(i):0)}}return s}function dn(t,s){let n=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in s)n+=" "+r+'="'+s[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+t+"</svg>"}function un(t){return t.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function mn(t){return"data:image/svg+xml,"+un(t)}function hn(t){return'url("'+mn(t)+'")'}let je;function fn(){try{je=window.trustedTypes.createPolicy("iconify",{createHTML:t=>t})}catch{je=null}}function xn(t){return je===void 0&&fn(),je?je.createHTML(t):t}const Ut={...Mt,inline:!1},pn={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},bn={display:"inline-block"},He={backgroundColor:"currentColor"},qt={backgroundColor:"transparent"},ut={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},mt={WebkitMask:He,mask:He,background:qt};for(const t in mt){const s=mt[t];for(const n in ut)s[t+n]=ut[n]}const gn={...Ut,inline:!0};function ht(t){return t+(t.match(/^[-0-9.]+$/)?"px":"")}const jn=(t,s,n)=>{const r=s.inline?gn:Ut,a=rn(r,s),i=s.mode||"svg",c={},d=s.style||{},u={...i==="svg"?pn:{}};if(n){const j=De(n,!1,!0);if(j){const N=["iconify"],y=["provider","prefix"];for(const C of y)j[C]&&N.push("iconify--"+j[C]);u.className=N.join(" ")}}for(let j in s){const N=s[j];if(N!==void 0)switch(j){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":u.ref=N;break;case"className":u[j]=(u[j]?u[j]+" ":"")+N;break;case"inline":case"hFlip":case"vFlip":a[j]=N===!0||N==="true"||N===1;break;case"flip":typeof N=="string"&&cn(a,N);break;case"color":c.color=N;break;case"rotate":typeof N=="string"?a[j]=ln(N):typeof N=="number"&&(a[j]=N);break;case"ariaHidden":case"aria-hidden":N!==!0&&N!=="true"&&delete u["aria-hidden"];break;default:r[j]===void 0&&(u[j]=N)}}const h=Ds(t,a),l=h.attributes;if(a.inline&&(c.verticalAlign="-0.125em"),i==="svg"){u.style={...c,...d},Object.assign(u,l);let j=0,N=s.id;return typeof N=="string"&&(N=N.replace(/-/g,"_")),u.dangerouslySetInnerHTML={__html:xn(As(h.body,N?()=>N+"ID"+j++:"iconifyReact"))},o.createElement("svg",u)}const{body:m,width:x,height:g}=t,p=i==="mask"||(i==="bg"?!1:m.indexOf("currentColor")!==-1),f=dn(m,{...l,width:x+"",height:g+""});return u.style={...c,"--svg":hn(f),width:ht(l.width),height:ht(l.height),...bn,...p?He:qt,...d},o.createElement("span",u)};At(!0);Os("",Hs);if(typeof document<"u"&&typeof window<"u"){const t=window;if(t.IconifyPreload!==void 0){const s=t.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof s=="object"&&s!==null&&(s instanceof Array?s:[s]).forEach(r=>{try{(typeof r!="object"||r===null||r instanceof Array||typeof r.icons!="object"||typeof r.prefix!="string"||!Ss(r))&&console.error(n)}catch{console.error(n)}})}if(t.IconifyProviders!==void 0){const s=t.IconifyProviders;if(typeof s=="object"&&s!==null)for(let n in s){const r="IconifyProviders["+n+"] is invalid.";try{const a=s[n];if(typeof a!="object"||!a||a.resources===void 0)continue;Ms(n,a)||console.error(r)}catch{console.error(r)}}}}function Gt(t){const[s,n]=o.useState(!!t.ssr),[r,a]=o.useState({});function i(g){if(g){const p=t.icon;if(typeof p=="object")return{name:"",data:p};const f=rt(p);if(f)return{name:p,data:f}}return{name:""}}const[c,d]=o.useState(i(!!t.ssr));function u(){const g=r.callback;g&&(g(),a({}))}function h(g){if(JSON.stringify(c)!==JSON.stringify(g))return u(),d(g),!0}function l(){var g;const p=t.icon;if(typeof p=="object"){h({name:"",data:p});return}const f=rt(p);if(h({name:p,data:f}))if(f===void 0){const j=an([p],l);a({callback:j})}else f&&((g=t.onLoad)===null||g===void 0||g.call(t,p))}o.useEffect(()=>(n(!0),u),[]),o.useEffect(()=>{s&&l()},[t.icon,s]);const{name:m,data:x}=c;return x?jn({...We,...x},t,m):t.children?t.children:t.fallback?t.fallback:o.createElement("span",{})}const vn=o.forwardRef((t,s)=>Gt({...t,_ref:s}));o.forwardRef((t,s)=>Gt({inline:!0,...t,_ref:s}));function S({icon:t,size:s=20,className:n="",style:r}){return e.jsx(vn,{icon:t,width:s,height:s,className:n,style:r})}function Ve({icon:t="lucide:inbox",title:s,description:n,command:r,action:a}){return e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:t,size:32,className:"text-base-content/30 mb-3"}),e.jsx("h3",{className:"text-heading text-base-content/70",children:s}),n&&e.jsx("p",{className:"text-muted text-sm mt-1 max-w-sm",children:n}),r&&e.jsx("div",{className:"mt-3 px-4 py-2 rounded-lg bg-base-100 border border-base-200",children:e.jsx("code",{className:"text-sm font-mono text-primary",children:r})}),a&&e.jsx("div",{className:"mt-4",children:a})]})}const yn={top:"tooltip-top",bottom:"tooltip-bottom",left:"tooltip-left",right:"tooltip-right"};function re({text:t,children:s,position:n="top"}){return e.jsx("div",{className:`tooltip ${yn[n]} [&::before]:bg-base-300 [&::before]:text-base-content`,"data-tip":t,children:s})}const wn={success:{bg:"alert-success",icon:"lucide:check-circle",iconColor:"text-success-content"},error:{bg:"alert-error",icon:"lucide:x-circle",iconColor:"text-error-content"},info:{bg:"alert-info",icon:"lucide:info",iconColor:"text-info-content"},warning:{bg:"alert-warning",icon:"lucide:alert-triangle",iconColor:"text-warning-content"}};function Nn({id:t,type:s,message:n,title:r,duration:a=5e3,dismissible:i=!0,onClick:c,onDismiss:d}){const[u,h]=o.useState(!1),{bg:l,icon:m,iconColor:x}=wn[s];o.useEffect(()=>{if(a>0){const p=setTimeout(()=>{h(!0),setTimeout(()=>d(t),300)},a);return()=>clearTimeout(p)}},[a,t,d]);const g=()=>{h(!0),setTimeout(()=>d(t),300)};return e.jsxs("div",{role:"alert",className:`alert ${l} shadow-lg transition-all duration-300 ${u?"opacity-0 translate-x-4":"opacity-100 translate-x-0"} ${c?"cursor-pointer hover:scale-[1.02]":""}`,onClick:c,children:[e.jsx(S,{icon:m,size:20,className:x}),e.jsxs("div",{className:"flex-1",children:[r&&e.jsx("h3",{className:"font-bold text-sm",children:r}),e.jsx("span",{className:"text-sm",children:n})]}),i&&e.jsx("button",{onClick:p=>{p.stopPropagation(),g()},className:"btn btn-ghost btn-sm btn-circle","aria-label":"Dismiss",children:e.jsx(S,{icon:"lucide:x",size:16})})]})}function kn({toasts:t,onDismiss:s}){return t.length===0?null:e.jsx("div",{className:"toast toast-end toast-bottom z-50",children:t.map(n=>e.jsx(Nn,{...n,onDismiss:s},n.id))})}function Ne({width:t="100%",height:s="1rem",className:n=""}){return e.jsx("div",{className:`animate-pulse bg-base-300/50 rounded ${n}`,style:{width:t,height:s}})}function Sn({lines:t=3,className:s=""}){return e.jsx("div",{className:`space-y-2 ${s}`,children:Array.from({length:t}).map((n,r)=>e.jsx(Ne,{width:r===t-1?"60%":"100%",height:"0.75rem"},r))})}function Cn({className:t=""}){return e.jsx("div",{className:`card bg-base-100 border border-base-200 shadow-sm ${t}`,children:e.jsxs("div",{className:"card-body animate-pulse",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"w-10 h-10 bg-base-300/50 rounded-lg"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(Ne,{width:"40%",height:"0.75rem"}),e.jsx(Ne,{width:"70%",height:"1.25rem"})]})]}),e.jsx(Sn,{lines:2})]})})}function oe(){return e.jsxs("div",{className:"space-y-6 animate-pulse",children:[e.jsxs("div",{children:[e.jsx(Ne,{width:"12rem",height:"1.75rem"}),e.jsx(Ne,{width:"20rem",height:"0.875rem",className:"mt-2"})]}),e.jsx("div",{className:"space-y-3",children:Array.from({length:5}).map((t,s)=>e.jsx(Cn,{},s))})]})}function En({icon:t,label:s,href:n,active:r=!1,badge:a,collapsed:i=!1}){const c=e.jsxs("a",{href:n,className:`nav-item flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all ${r?"active":""} ${i?"justify-center":""}`,children:[e.jsx(S,{icon:t,size:20}),!i&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"flex-1",children:s}),a!==void 0&&e.jsx("span",{className:`badge badge-sm ${r?"badge-primary-content":"badge-ghost"}`,children:a})]})]});return i?e.jsx(re,{text:s,position:"right",children:c}):c}const Pn=[{icon:"lucide:layout-dashboard",label:"Dashboard",href:"#/"},{icon:"lucide:history",label:"Sessions",href:"#/sessions"},{icon:"lucide:brain",label:"Memories",href:"#/memories"},{icon:"lucide:lightbulb",label:"Requirements",href:"#/requirements"},{icon:"lucide:scroll",label:"Specifications",href:"#/spec"},{icon:"lucide:puzzle",label:"Extensions",href:"#/extensions"},{icon:"lucide:git-compare",label:"Changes",href:"#/changes"},{icon:"lucide:bar-chart-3",label:"Usage",href:"#/usage"},{icon:"lucide:book-open",label:"Help",href:"#/help"},{icon:"lucide:settings",label:"Settings",href:"#/settings"}];function Rn(t,s){return t===s||t.startsWith(s+"/")}function Tn({currentPath:t,collapsed:s=!1}){return e.jsx("nav",{className:"py-4 space-y-1 px-2",children:Pn.map(n=>e.jsx(En,{icon:n.icon,label:n.label,href:n.href,active:Rn(t,n.href),collapsed:s},n.href))})}const In={solo:{label:"Solo",variant:"primary"},team:{label:"Team",variant:"accent"},trial:{label:"Trial",variant:"warning"}};function ft(t){return t.isExpired||t.tier==="trial"}function Dn({license:t,isLoading:s,onClick:n}){if(s||!t||!t.tier)return null;const a=ft(t)&&!!n?{onClick:n,role:"button",className:"cursor-pointer"}:{};if(t.isExpired)return e.jsx("span",{...a,children:e.jsx(V,{variant:"error",size:"xs",children:"Expired"})});const i=In[t.tier];if(!i)return null;let c=i.label;t.tier==="trial"&&t.daysRemaining!=null&&(c=`${i.label} · ${t.daysRemaining}d left`);const d=!ft(t)&&t.email;return e.jsxs("span",{...a,className:`${a.className??""} inline-flex items-center gap-1.5`,children:[e.jsx(V,{variant:i.variant,size:"xs",children:c}),d&&e.jsx("span",{className:"text-base-content/50",children:t.email})]})}function _n({open:t,onClose:s,onActivated:n}){const[r,a]=o.useState(""),[i,c]=o.useState(null),[d,u]=o.useState(!1),h=o.useCallback(async()=>{const m=r.trim();if(m){c(null),u(!0);try{const g=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m})})).json();g.success?(a(""),n(),s()):c(g.error??"Activation failed")}catch{c("Connection failed")}finally{u(!1)}}},[r,n,s]),l=o.useCallback(m=>{m.key==="Enter"&&!d&&h()},[h,d]);return e.jsxs(ye,{open:t,onClose:s,title:"Activate License",children:[e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("input",{id:"license-key-input",type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:r,onChange:m=>{a(m.target.value),c(null)},onKeyDown:l,disabled:d,autoFocus:!0}),i&&e.jsx("p",{className:"text-error text-sm",children:i}),e.jsx("div",{className:"bg-base-200/50 rounded-lg p-3 space-y-1.5",children:e.jsxs("p",{className:"text-xs text-base-content/60",children:["Don't have a key? Get one at"," ",e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"pilot-shell.com"})]})})]}),e.jsxs("div",{className:"modal-action",children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:s,disabled:d,children:"Cancel"}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:h,disabled:d||!r.trim(),children:d?"Activating...":"Activate"})]})]})}function Bt(){const[t,s]=o.useState(null),[n,r]=o.useState(!0),a=o.useCallback((c=!1)=>{fetch(c?"/api/license?refresh=1":"/api/license").then(u=>u.json()).then(u=>{s(u),r(!1)}).catch(()=>{r(!1)})},[]);o.useEffect(()=>{a();const c=setInterval(()=>a(!0),6e4),d=()=>{document.visibilityState==="visible"&&a(!0)};return document.addEventListener("visibilitychange",d),()=>{clearInterval(c),document.removeEventListener("visibilitychange",d)}},[a]);const i=o.useCallback(()=>a(!0),[a]);return{license:t,isLoading:n,refetch:i}}const Ln={online:{color:"bg-success",label:"Online"},processing:{color:"bg-warning animate-pulse",label:"Processing"},offline:{color:"bg-error",label:"Offline"}};function $n({version:t,workerStatus:s="offline",queueDepth:n=0,collapsed:r=!1}){const a=Ln[s],{license:i,isLoading:c,refetch:d}=Bt(),[u,h]=o.useState(!1),l=t?`v${t}`:null;return r?e.jsx("div",{className:"p-3 border-t border-base-300/50 space-y-3",children:e.jsx(re,{text:`Worker ${a.label}${n>0?` · ${n} queued`:""}`,position:"right",children:e.jsx("div",{className:"flex justify-center",children:e.jsx("span",{className:`inline-block w-2.5 h-2.5 rounded-full ${a.color}`})})})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"p-4 border-t border-base-300/50 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:`inline-block w-2 h-2 rounded-full ${a.color}`}),e.jsxs("span",{className:"text-base-content/60",children:["Worker ",a.label]}),n>0&&e.jsxs("span",{className:"text-base-content/50",children:["· ",n," queued"]})]}),l&&e.jsx("span",{className:"text-base-content/40",children:l})]}),!c&&(i==null?void 0:i.tier)&&e.jsx("div",{className:"flex items-center gap-2 text-xs",children:e.jsx(Dn,{license:i,isLoading:c,onClick:()=>h(!0)})}),!c&&(!i||!i.tier||i.tier==="trial"||i.isExpired)&&e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"text-primary/70 hover:text-primary transition-colors",children:"Get a license"}),e.jsxs("button",{onClick:()=>h(!0),className:"btn btn-primary btn-xs gap-1",children:[e.jsx(S,{icon:"lucide:key",size:10}),"Activate"]})]})]}),e.jsx(_n,{open:u,onClose:()=>h(!1),onActivated:d})]})}function An({currentPath:t,version:s,workerStatus:n,queueDepth:r,collapsed:a,onToggleCollapse:i}){return e.jsxs("aside",{className:`dashboard-sidebar flex flex-col border-r border-base-300 transition-all duration-300 h-screen sticky top-0 ${a?"w-[72px]":"w-64"}`,children:[e.jsxs("div",{className:"flex-shrink-0 flex items-center justify-between p-4 border-b border-base-300/50",children:[!a&&e.jsx(us,{}),e.jsx("button",{onClick:i,className:"btn btn-ghost btn-sm btn-square",title:a?"Expand sidebar":"Collapse sidebar",children:e.jsx(S,{icon:a?"lucide:panel-left-open":"lucide:panel-left-close",size:18})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsx(Tn,{currentPath:t,collapsed:a})}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx($n,{version:s,workerStatus:n,queueDepth:r,collapsed:a})})]})}function On(t){const s=t.endsWith("Z")?t:t+"Z",n=Date.now()-new Date(s).getTime();return n<6e4?"just now":n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}const Mn={plan_approval:"lucide:file-check",verification_complete:"lucide:check-circle",attention_needed:"lucide:alert-circle"};function zn(t){const s=t.indexOf("/docs/plans/");if(s===-1)return;const n=t.slice(0,s),r=n.lastIndexOf("/");return r>=0?n.slice(r+1):n}function Fn(t){const s=t.split("/").pop();if(!s)return;let n=s.replace(/\.md$/,"");return/^\d{4}-\d{2}-\d{2}-/.test(n)&&(n=n.slice(11)),n}function Un({notifications:t,unreadCount:s,onMarkAsRead:n,onMarkAllAsRead:r,onClearAll:a,onNavigate:i}){const[c,d]=o.useState(!1),u=o.useRef(null),h=o.useCallback(m=>{u.current&&!u.current.contains(m.target)&&d(!1)},[]);o.useEffect(()=>{if(c)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[c,h]);const l=o.useCallback(m=>{if(m.is_read===0&&n(m.id),d(!1),!!i)if(m.plan_path){const x=zn(m.plan_path);i("/spec",x)}else m.session_id&&i(`/sessions?selected=${m.session_id}`)},[n,i]);return e.jsxs("div",{className:"relative",ref:u,children:[e.jsx(re,{text:"Notifications",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>d(!c),children:e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:bell",size:18}),s>0&&e.jsx("span",{className:"absolute -top-1.5 -right-1.5 bg-error text-error-content text-[10px] font-bold rounded-full min-w-[16px] h-4 flex items-center justify-center px-0.5",children:s>99?"99+":s})]})})}),c&&e.jsxs("div",{className:"absolute right-0 top-full mt-2 w-80 max-h-96 overflow-y-auto rounded-xl border border-base-300 bg-base-100 shadow-xl z-50",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-base-300",children:[e.jsx("span",{className:"text-sm font-semibold",children:"Notifications"}),e.jsxs("div",{className:"flex items-center gap-3",children:[s>0&&e.jsx("button",{className:"text-xs text-primary hover:underline",onClick:()=>r(),children:"Mark all read"}),t.length>0&&e.jsx("button",{className:"text-xs text-error/70 hover:text-error hover:underline",onClick:()=>{a(),d(!1)},children:"Clear all"})]})]}),t.length===0?e.jsx("div",{className:"px-4 py-8 text-center text-sm text-base-content/50",children:"No notifications"}):e.jsx("div",{className:"divide-y divide-base-300",children:t.map(m=>e.jsx("button",{className:`w-full text-left px-4 py-3 hover:bg-base-200/50 transition-colors ${m.is_read===0?"bg-primary/5":""}`,onClick:()=>l(m),children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(S,{icon:Mn[m.type]||"lucide:info",size:16,className:`mt-0.5 flex-shrink-0 ${m.is_read===0?"text-primary":"text-base-content/40"}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-sm truncate ${m.is_read===0?"font-medium":""}`,children:m.plan_path?Fn(m.plan_path)??m.title:m.title}),m.is_read===0&&e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary flex-shrink-0"})]}),e.jsx("p",{className:"text-xs text-base-content/60 mt-0.5 line-clamp-2",children:m.message}),e.jsx("span",{className:"text-[10px] text-base-content/40 mt-1 block",children:On(m.created_at)})]})]})},m.id))})]})]})}function qn(){const[t,s]=o.useState([]),[n,r]=o.useState(0),a=o.useRef(!0),i=o.useCallback(async()=>{try{const h=await fetch("/api/notifications?limit=50&include_read=true");if(!h.ok)return;const l=await h.json();a.current&&(s(l),r(l.filter(m=>m.is_read===0).length))}catch{}},[]),c=o.useCallback(async h=>{s(l=>l.map(m=>m.id===h?{...m,is_read:1}:m)),r(l=>Math.max(0,l-1));try{(await fetch(`/api/notifications/${h}/read`,{method:"PATCH"})).ok||(s(m=>m.map(x=>x.id===h?{...x,is_read:0}:x)),r(m=>m+1))}catch{s(l=>l.map(m=>m.id===h?{...m,is_read:0}:m)),r(l=>l+1)}},[]),d=o.useCallback(async()=>{const h=t,l=n;s(m=>m.map(x=>({...x,is_read:1}))),r(0);try{(await fetch("/api/notifications/read-all",{method:"POST"})).ok||(s(h),r(l))}catch{s(h),r(l)}},[t,n]);o.useEffect(()=>{a.current=!0,i();const h=new EventSource("/stream");return h.addEventListener("open",()=>{i()}),h.onmessage=l=>{try{const m=JSON.parse(l.data);if(m.type==="new_notification"&&m.notification&&a.current){const x=m.notification;s(g=>g.some(p=>p.id===x.id)?g:[x,...g]),r(g=>g+1)}}catch{}},()=>{a.current=!1,h.close()}},[i]);const u=o.useCallback(async()=>{s([]),r(0);try{await fetch("/api/notifications",{method:"DELETE"})}catch{i()}},[i]);return{notifications:t,unreadCount:n,markAsRead:c,markAllAsRead:d,clearAll:u,refresh:i}}const Ht="pilot-memory-theme";function Gn(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xt(){try{const t=localStorage.getItem(Ht);if(t==="system"||t==="light"||t==="dark")return t}catch(t){console.warn("Failed to read theme preference from localStorage:",t)}return"system"}function pt(t){return t==="system"?Gn():t}function bt(t){return t==="dark"?"pilot-shell":"pilot-shell-light"}function Vt(){const[t,s]=o.useState(xt),[n,r]=o.useState(()=>pt(xt()));return o.useEffect(()=>{const i=pt(t);r(i),document.documentElement.setAttribute("data-theme",bt(i))},[t]),o.useEffect(()=>{if(t!=="system")return;const i=window.matchMedia("(prefers-color-scheme: dark)"),c=d=>{const u=d.matches?"dark":"light";r(u),document.documentElement.setAttribute("data-theme",bt(u))};return i.addEventListener("change",c),()=>i.removeEventListener("change",c)},[t]),{preference:t,resolvedTheme:n,setThemePreference:i=>{try{localStorage.setItem(Ht,i),s(i)}catch(c){console.warn("Failed to save theme preference to localStorage:",c),s(i)}}}}const Kt=o.createContext(null);let Bn=0;function Hn({children:t}){const[s,n]=o.useState([]),r=o.useCallback(l=>{const m=`toast-${++Bn}`;return n(x=>[...x,{...l,id:m}]),m},[]),a=o.useCallback(l=>{n(m=>m.filter(x=>x.id!==l))},[]),i=o.useCallback(()=>{n([])},[]),c=o.useCallback((l,m)=>r({type:"success",message:l,title:m}),[r]),d=o.useCallback((l,m)=>r({type:"error",message:l,title:m,duration:8e3}),[r]),u=o.useCallback((l,m)=>r({type:"info",message:l,title:m}),[r]),h=o.useCallback((l,m)=>r({type:"warning",message:l,title:m,duration:7e3}),[r]);return e.jsxs(Kt.Provider,{value:{addToast:r,removeToast:a,clearAll:i,success:c,error:d,info:u,warning:h},children:[t,e.jsx(kn,{toasts:s,onDismiss:a})]})}function Wt(){const t=o.useContext(Kt);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const he="pilot-memory-selected-project",Vn={selectedProject:null,projects:[],setSelectedProject:()=>{},setProjects:()=>{},refreshProjects:async()=>{}},Jt=o.createContext(Vn);function Kn({children:t}){const[s,n]=o.useState(()=>{try{return localStorage.getItem(he)||null}catch{return null}}),[r,a]=o.useState([]),i=o.useCallback(u=>{n(u);try{u?localStorage.setItem(he,u):localStorage.removeItem(he)}catch{}},[]),c=o.useCallback(u=>{a(u)},[]),d=o.useCallback(async()=>{try{const h=await(await fetch("/api/projects")).json(),l=h.projects||[],m=h.workspaceProject;a(l),n(x=>{if(x&&l.includes(x))return x;if(m&&l.includes(m)){try{localStorage.setItem(he,m)}catch{}return m}if(l.length>0){try{localStorage.setItem(he,l[0])}catch{}return l[0]}return x})}catch{}},[]);return o.useEffect(()=>{d()},[d]),o.useEffect(()=>{if(s&&r.length>0&&!r.includes(s)){const u=r[0]||null;i(u)}},[r,s,i]),e.jsx(Jt.Provider,{value:{selectedProject:s,projects:r,setSelectedProject:i,setProjects:c,refreshProjects:d},children:t})}function ie(){return o.useContext(Jt)}function ce(){const[t,s]=o.useState(()=>typeof window<"u"?gt(window.location.hash):{path:"/",params:{}});o.useEffect(()=>{if(typeof window>"u")return;const r=()=>{s(gt(window.location.hash))};return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);const n=o.useCallback(r=>{window.location.hash=r},[]);return{path:t.path,params:t.params,navigate:n}}function gt(t){const s=t.replace(/^#/,"")||"/",n={},[r,a]=s.split("?");return a&&new URLSearchParams(a).forEach((c,d)=>{n[d]=c}),{path:r,params:n}}function Wn({onToggleTheme:t,onToggleLogs:s}){const{resolvedTheme:n}=Vt(),[r,a]=o.useState(!1),[i,c]=o.useState(!1),{setSelectedProject:d,projects:u}=ie(),{navigate:h}=ce(),{notifications:l,unreadCount:m,markAsRead:x,markAllAsRead:g,clearAll:p}=qn(),f=o.useCallback((N,y)=>{y&&u.includes(y)&&d(y),h(N)},[h,d,u]);o.useEffect(()=>{fetch("/api/auth/status").then(N=>N.json()).then(N=>{a(N.authRequired)}).catch(()=>{a(!1)})},[]);const j=async()=>{c(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{c(!1)}};return e.jsxs("div",{className:"flex items-center gap-2",children:[s&&e.jsx(re,{text:"Toggle console logs",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:s,children:e.jsx(S,{icon:"lucide:terminal",size:18})})}),e.jsx(re,{text:`Switch to ${n==="light"?"dark":"light"} mode`,position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(S,{icon:n==="light"?"lucide:moon":"lucide:sun",size:18})})}),e.jsx(re,{text:"Repository",position:"bottom",children:e.jsx("a",{href:"https://github.com/maxritter/pilot-shell",target:"_blank",rel:"noopener noreferrer",className:"btn btn-ghost btn-sm",children:e.jsx(S,{icon:"lucide:git-branch",size:18})})}),r&&e.jsx(re,{text:"Logout",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:j,disabled:i,children:e.jsx(S,{icon:"lucide:log-out",size:18})})}),e.jsx(Un,{notifications:l,unreadCount:m,onMarkAsRead:x,onMarkAllAsRead:g,onClearAll:p,onNavigate:f})]})}const Jn=10080*60*1e3,jt=3,Qn={plan:"Plan",implement:"Impl",verify:"Verify"},Yn={plan:"text-info",implement:"text-warning",verify:"text-accent"};function Xn(t){const s=[],n=/^- \[(x| )\] Task (\d+):\s*(.+)$/gm;let r;for(;(r=n.exec(t))!==null;)s.push({number:parseInt(r[2],10),title:r[3],completed:r[1]==="x"});return s}function Zn({spec:t,tasks:s,loading:n}){const r=s?s.findIndex(a=>!a.completed):-1;return e.jsxs("div",{className:"absolute top-full left-0 mt-1 z-50 w-72 rounded-lg border border-base-300 bg-base-100 shadow-xl p-3 text-xs invisible opacity-0 group-hover:visible group-hover:opacity-100 transition-opacity pointer-events-none",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-2 pb-2 border-b border-base-300/50",children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info"}),e.jsx("span",{className:"font-semibold truncate",children:t.name}),t.project&&e.jsxs("span",{className:"text-base-content/50 truncate",children:["· ",t.project]})]}),n&&!s&&e.jsx("div",{className:"text-base-content/50 italic",children:"Loading tasks…"}),s&&s.length===0&&e.jsx("div",{className:"text-base-content/50 italic",children:"No tasks yet"}),s&&s.length>0&&e.jsx("ul",{className:"space-y-1 max-h-60 overflow-y-auto",children:s.map((a,i)=>{const c=i===r;return e.jsxs("li",{className:`flex items-start gap-1.5 ${a.completed?"text-base-content/40 line-through":c?"text-primary font-medium":"text-base-content/80"}`,children:[e.jsx(S,{icon:a.completed?"lucide:check-circle":c?"lucide:play-circle":"lucide:circle",size:11,className:"flex-shrink-0 mt-0.5"}),e.jsxs("span",{className:"truncate",children:[a.number,". ",a.title]})]},a.number)})})]})}function ea({spec:t,onClick:s,onRequestTasks:n,tasks:r,loadingTasks:a}){const i=t.status==="PENDING"&&!t.approved;return e.jsxs("div",{className:"relative group",onMouseEnter:n,onFocus:n,children:[e.jsxs("button",{onClick:s,className:`flex items-center gap-1.5 px-2.5 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs cursor-pointer whitespace-nowrap ${i?"animate-pulse":""}`,"aria-label":`${t.name}${t.specType?` (${t.specType})`:""}`,children:[t.specType&&e.jsx(S,{icon:t.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:t.specType==="Bugfix"?"text-error":"text-info","aria-label":t.specType}),t.project&&e.jsx("span",{className:"text-base-content/40 font-medium truncate max-w-20",children:t.project}),e.jsx("span",{className:"font-medium truncate max-w-28",children:t.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[t.completed,"/",t.total]}),e.jsx("span",{className:`font-medium ${Yn[t.phase]||""}`,children:Qn[t.phase]||t.phase})]}),e.jsx(Zn,{spec:t,tasks:r,loading:a})]})}function ta({specs:t,onPick:s}){return e.jsxs("div",{className:"dropdown dropdown-end dropdown-bottom",children:[e.jsxs("div",{tabIndex:0,role:"button",className:"px-2 py-1 rounded-lg border border-base-300 bg-base-200/60 hover:bg-base-200 transition-colors text-xs font-medium cursor-pointer","aria-label":`${t.length} more specs`,children:["+",t.length]}),e.jsx("ul",{tabIndex:0,className:"dropdown-content menu bg-base-100 rounded-box z-50 w-72 p-2 shadow-lg border border-base-200 mt-1",children:t.map(n=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>s(n),className:"flex items-center gap-2 text-xs",children:[n.specType&&e.jsx(S,{icon:n.specType==="Bugfix"?"lucide:bug":"lucide:sparkles",size:12,className:n.specType==="Bugfix"?"text-error":"text-info"}),n.project&&e.jsx("span",{className:"text-base-content/40 truncate max-w-20",children:n.project}),e.jsx("span",{className:"font-medium truncate flex-1",children:n.name}),e.jsxs("span",{className:"text-base-content/50 font-mono",children:[n.completed,"/",n.total]})]})},n.filePath))})]})}function sa(){const[t,s]=o.useState([]),[n,r]=o.useState({}),[a,i]=o.useState({}),{setSelectedProject:c,projects:d}=ie(),{navigate:u}=ce(),h=o.useRef(),l=o.useCallback(async()=>{try{const f=await fetch("/api/plans/active/all");if(!f.ok)return;const N=(await f.json()).specs||[],y=Date.now();s(N.filter(C=>C.status!=="VERIFIED"&&y-new Date(C.modifiedAt).getTime()<Jn))}catch{}},[]);o.useEffect(()=>(l(),h.current=setInterval(l,1e4),()=>clearInterval(h.current)),[l]);const m=o.useCallback(async f=>{const j=n[f.filePath];if(!(j&&j.modifiedAt===f.modifiedAt)&&!a[f.filePath]){i(N=>({...N,[f.filePath]:!0}));try{const N=f.project?`&project=${encodeURIComponent(f.project)}`:"",y=await fetch(`/api/plan/content?path=${encodeURIComponent(f.filePath)}${N}`);if(!y.ok)return;const C=await y.json(),w=Xn(C.content||"");r(R=>({...R,[f.filePath]:{modifiedAt:f.modifiedAt,tasks:w}}))}catch{}finally{i(N=>({...N,[f.filePath]:!1}))}}},[n,a]),x=o.useCallback(f=>{f.project&&d.includes(f.project)&&c(f.project);const j=encodeURIComponent(f.filePath);u(`/spec?path=${j}`)},[u,c,d]);if(t.length===0)return null;const g=t.slice(0,jt),p=t.slice(jt);return e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[g.map(f=>{var j;return e.jsx(ea,{spec:f,onClick:()=>x(f),onRequestTasks:()=>m(f),tasks:((j=n[f.filePath])==null?void 0:j.tasks)||null,loadingTasks:!!a[f.filePath]},f.filePath)}),p.length>0&&e.jsx(ta,{specs:p,onPick:x})]})}function na({onToggleTheme:t,onToggleLogs:s}){return e.jsxs("header",{className:"h-14 bg-base-100 border-b border-base-300/50 flex items-center px-6 gap-4",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(sa,{})}),e.jsx(Wn,{onToggleTheme:t,onToggleLogs:s})]})}function aa({children:t,currentPath:s,version:n,workerStatus:r,queueDepth:a,onToggleTheme:i,onToggleLogs:c,sidebarCollapsed:d,onToggleSidebar:u}){return e.jsxs("div",{className:"dashboard-layout flex h-screen",children:[e.jsx(An,{currentPath:s,version:n,workerStatus:r,queueDepth:a,collapsed:d,onToggleCollapse:u}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0 min-h-0",children:[e.jsx(na,{onToggleTheme:i,onToggleLogs:c}),e.jsx("main",{className:"flex-1 p-6 overflow-y-auto min-h-0",children:t})]})]})}function ra({routes:t,fallback:s}){const{path:n}=ce();for(const r of t){const a=ia(r.path,n);if(a){const i=r.component;return e.jsx(i,{...a.params})}}return s?e.jsx(e.Fragment,{children:s}):null}function ia(t,s){if(t===s)return{params:{}};const n=t.split("/"),r=s.split("/");if(n.length!==r.length)return null;const a={};for(let i=0;i<n.length;i++){const c=n[i],d=r[i];if(c.startsWith(":"))a[c.slice(1)]=d;else if(c!==d)return null}return{params:a}}const Ae="https://pilot-shell.com/docs";function oa(){const[t,s]=o.useState(!1),n=o.useRef(null),r=o.useRef(!1);return o.useEffect(()=>{const a=setTimeout(()=>{r.current||s(!0)},8e3);return()=>clearTimeout(a)},[]),e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Documentation"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Pilot Shell technical reference"})]}),e.jsxs("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-sm btn-ghost gap-1.5",children:[e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open in browser"]})]}),t?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("div",{className:"text-4xl",children:"📡"}),e.jsx("p",{className:"text-base-content/60 text-sm",children:"Could not load documentation."}),e.jsx("a",{href:Ae,target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-sm",children:"Open docs in browser"})]})}):e.jsx("iframe",{ref:n,src:Ae,title:"Pilot Shell Documentation",className:"flex-1 w-full rounded-xl border border-base-300 bg-base-100",style:{minHeight:"calc(100vh - 10rem)"},onLoad:()=>{var a;r.current=!0;try{const i=n.current;((a=i==null?void 0:i.contentDocument)==null?void 0:a.title)===""&&s(!0)}catch{}}})]})}const ca={observation:{icon:"lucide:brain",variant:"info",color:"text-info"},summary:{icon:"lucide:file-text",variant:"warning",color:"text-warning"},prompt:{icon:"lucide:message-square",variant:"secondary",color:"text-secondary"},bugfix:{icon:"lucide:bug",variant:"error",color:"text-error"},feature:{icon:"lucide:sparkles",variant:"ghost",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",variant:"accent",color:"text-accent"},discovery:{icon:"lucide:search",variant:"info",color:"text-info"},decision:{icon:"lucide:git-branch",variant:"warning",color:"text-warning"},change:{icon:"lucide:pencil",variant:"secondary",color:"text-secondary"}},la={icon:"lucide:circle",variant:"secondary",color:"text-secondary"};function da(t,s=50){return t.length<=s?t:t.slice(0,s)+"…"}function ua({memory:t,viewMode:s,onView:n,selectionMode:r,isSelected:a,onToggleSelection:i}){const c=ca[t.type]||la,d=s==="grid",u=()=>{r?i==null||i(t.id):n==null||n(t.id)},h=l=>{l.stopPropagation(),t.sessionDbId&&(window.location.hash=`/sessions?selected=${t.sessionDbId}`)};return e.jsx(Y,{className:`hover:shadow-md transition-shadow cursor-pointer ${d?"":"flex flex-row"} ${a?"ring-2 ring-primary":""}`,onClick:u,children:e.jsx(X,{className:d?"p-4":"flex flex-row items-start gap-4 flex-1 p-4",children:e.jsxs("div",{className:`flex items-start gap-3 ${d?"":"flex-1"}`,children:[r?e.jsx("div",{className:"flex items-center justify-center w-8 h-8 flex-shrink-0",children:e.jsx("input",{type:"checkbox",className:"checkbox checkbox-primary",checked:a,onChange:()=>i==null?void 0:i(t.id),onClick:l=>l.stopPropagation()})}):e.jsx("div",{className:`p-2 rounded-lg bg-base-200 ${c.color} shrink-0`,children:e.jsx(S,{icon:c.icon,size:16})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-1",children:[e.jsx(V,{variant:c.variant,size:"xs",children:t.type}),e.jsx("span",{className:"text-xs text-base-content/40 shrink-0",children:t.timestamp})]}),e.jsx("h3",{className:"font-medium text-sm line-clamp-2",children:t.title}),e.jsx("div",{className:"mt-1.5",children:t.sessionPrompt&&t.sessionDbId?e.jsxs("button",{onClick:h,className:"text-xs text-primary/70 hover:text-primary hover:underline truncate max-w-full block text-left transition-colors",title:`Session: ${t.sessionPrompt}`,children:[e.jsx(S,{icon:"lucide:terminal",size:11,className:"inline mr-1 -mt-0.5"}),da(t.sessionPrompt)]}):e.jsx("span",{className:"text-xs text-base-content/30",children:"no session"})})]})]})})})}const ma={observation:{icon:"lucide:brain",variant:"info"},summary:{icon:"lucide:file-text",variant:"warning"},prompt:{icon:"lucide:message-square",variant:"secondary"},bugfix:{icon:"lucide:bug",variant:"error"},feature:{icon:"lucide:sparkles",variant:"success"},refactor:{icon:"lucide:refresh-cw",variant:"accent"},discovery:{icon:"lucide:search",variant:"info"},decision:{icon:"lucide:git-branch",variant:"warning"},change:{icon:"lucide:pencil",variant:"secondary"}};function ha({memory:t,onClose:s}){const n=t?ma[t.type]||{icon:"lucide:circle",variant:"secondary"}:{icon:"lucide:circle",variant:"secondary"};return e.jsx(ye,{open:!!t,onClose:s,title:"Memory Details",children:t&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-2.5 rounded-lg bg-base-200 text-${n.variant}`,children:e.jsx(S,{icon:n.icon,size:20})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-base font-semibold leading-tight",children:t.title}),e.jsxs("div",{className:"flex items-center gap-2 mt-1.5 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"sm",children:t.type}),e.jsxs("span",{className:"text-xs text-base-content/50 flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:11}),t.project]}),e.jsx("span",{className:"text-xs text-base-content/40",children:t.timestamp}),e.jsxs("span",{className:"text-xs text-base-content/40 font-mono",children:["#",t.id]})]}),t.concepts&&t.concepts.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1 mt-2",children:t.concepts.map(r=>e.jsx(V,{variant:"ghost",size:"xs",children:r},r))})]})]}),e.jsx("div",{className:"bg-base-200 rounded-lg p-4 max-h-96 overflow-y-auto",children:t.facts&&t.facts.length>0?e.jsx("ul",{className:"text-sm space-y-2 list-disc list-inside",children:t.facts.map((r,a)=>e.jsx("li",{children:r},a))}):e.jsx("pre",{className:"text-sm whitespace-pre-wrap break-words",children:t.content||"No content available"})})]})})}function fa({onSearch:t,isSearching:s,placeholder:n="Search your memories semantically..."}){const[r,a]=o.useState(""),i=c=>{c.preventDefault(),r.trim()&&t(r.trim())};return e.jsxs("form",{onSubmit:i,className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:n,value:r,onChange:c=>a(c.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),e.jsx(se,{type:"submit",loading:s,disabled:!r.trim(),children:"Search"})]})}const xa={observation:{icon:"lucide:brain",variant:"info",label:"Observation"},summary:{icon:"lucide:file-text",variant:"warning",label:"Summary"},prompt:{icon:"lucide:message-square",variant:"secondary",label:"Prompt"},bugfix:{icon:"lucide:bug",variant:"error",label:"Bug Fix"},feature:{icon:"lucide:sparkles",variant:"success",label:"Feature"},refactor:{icon:"lucide:refresh-cw",variant:"accent",label:"Refactor"},discovery:{icon:"lucide:search",variant:"info",label:"Discovery"},decision:{icon:"lucide:git-branch",variant:"warning",label:"Decision"},change:{icon:"lucide:pencil",variant:"secondary",label:"Change"}},pa={icon:"lucide:circle",variant:"secondary",label:"Unknown"};function ba(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function ga({result:t}){const s=t.obsType||t.type,n=xa[s]||pa,r=Math.round(t.score*100),a=i=>i>=.7?"text-success":i>=.4?"text-warning":"text-base-content/50";return e.jsx(Y,{className:"hover:shadow-md transition-shadow",children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:n.icon,size:18})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:n.variant,size:"xs",children:n.label}),e.jsxs("span",{className:"text-xs text-base-content/50",children:["#",t.id]}),t.score>0&&e.jsxs("span",{className:`ml-auto text-xs font-mono ${a(t.score)}`,children:[r,"% match"]})]}),e.jsx("h3",{className:"font-medium truncate",children:t.title}),e.jsx("p",{className:"text-sm text-base-content/60 mt-1 line-clamp-2",children:t.content}),e.jsxs("div",{className:"flex items-center gap-4 mt-3 text-xs text-base-content/50",children:[t.project&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:12}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:clock",size:12}),ba(t.timestamp)]})]})]}),t.score>0&&e.jsxs("div",{className:"w-16 shrink-0 hidden sm:block",children:[e.jsx("div",{className:"h-2 bg-base-200 rounded-full overflow-hidden",children:e.jsx("div",{className:`h-full rounded-full transition-all ${t.score>=.7?"bg-success":t.score>=.4?"bg-warning":"bg-base-content/30"}`,style:{width:`${r}%`}})}),e.jsx("div",{className:"text-[10px] text-center mt-1 text-base-content/50",children:"similarity"})]})]})})})}function Te(){const{selectedProject:t,projects:s,setSelectedProject:n}=ie();return e.jsxs("div",{className:"relative inline-flex items-center",children:[e.jsx("select",{value:t??s[0]??"",onChange:r=>n(r.target.value),className:"select select-bordered select-sm text-xs font-normal pl-7 pr-8 min-w-[140px] max-w-[200px]",children:s.map(r=>e.jsx("option",{value:r,children:r},r))}),e.jsx(S,{icon:"lucide:folder",size:13,className:"absolute left-2.5 pointer-events-none text-base-content/40"})]})}const ja=12e4;function va(){const{selectedProject:t}=ie(),[s,n]=o.useState(!1),[r,a]=o.useState([]),[i,c]=o.useState(!1),[d,u]=o.useState(null),[h,l]=o.useState(null),m=o.useRef(null),x=o.useRef(!1),g=o.useCallback(async f=>{var y;(y=m.current)==null||y.abort(),x.current=!1;const j=new AbortController;m.current=j;const N=setTimeout(()=>j.abort(),ja);c(!0),n(!0),u(null);try{const C=new URLSearchParams({query:f,limit:"30"});t&&C.set("project",t);const w=await fetch(`/api/search/semantic?${C}`,{signal:j.signal});if(!w.ok)throw new Error(`Search failed with status ${w.status}`);const R=await w.json();a(R.results||[]),l({usedSemantic:R.usedSemantic,vectorDbAvailable:R.vectorDbAvailable})}catch(C){if(x.current)return;C.name==="AbortError"?u("Search timed out. Please try again."):u("Search failed. Please try again."),a([]),l(null)}finally{clearTimeout(N),x.current||c(!1)}},[t]),p=o.useCallback(()=>{var f;x.current=!0,(f=m.current)==null||f.abort(),n(!1),a([]),l(null),u(null),c(!1)},[]);return o.useEffect(()=>()=>{var f;(f=m.current)==null||f.abort()},[]),{isSearchMode:s,searchResults:r,isSearching:i,searchError:d,searchMeta:h,handleSearch:g,handleClearSearch:p}}function vt(){var R;const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),d=t.id?Number(t.id):null,u=o.useRef(!1),{selectedProject:h}=ie(),{isSearchMode:l,searchResults:m,isSearching:x,searchError:g,searchMeta:p,handleSearch:f,handleClearSearch:j}=va(),N=o.useCallback(async b=>{await f(b)},[f]),y=o.useCallback(async()=>{a(!0);try{const b=new URLSearchParams;h&&b.set("project",h),b.set("limit","50");const T=await(await fetch(`/api/observations?${b}`)).json(),P=T.items||T.observations||[];n(P.map(E=>({id:E.id,type:E.type||"observation",title:E.title||"Untitled",content:E.narrative||E.content||"",facts:E.facts?typeof E.facts=="string"?JSON.parse(E.facts):E.facts:[],project:E.project||"unknown",timestamp:C(E.created_at),concepts:E.concepts?typeof E.concepts=="string"?JSON.parse(E.concepts):E.concepts:[],sessionDbId:E.session_db_id??void 0,sessionPrompt:E.session_prompt??void 0})))}catch(b){console.error("Failed to fetch memories:",b)}finally{a(!1)}},[h]);function C(b){if(!b)return"";const _=new Date(b),P=new Date().getTime()-_.getTime();return P<6e4?"just now":P<36e5?`${Math.floor(P/6e4)}m ago`:P<864e5?`${Math.floor(P/36e5)}h ago`:_.toLocaleDateString()}o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(d&&!u.current&&!r&&s.length>0){const b=s.find(_=>_.id===d);b&&(u.current=!0,c(b))}},[d,r,s]);const w=b=>{const _=s.find(T=>T.id===b);_&&c(_)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Memories"}),e.jsx(Te,{}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Decisions, discoveries, and patterns from past sessions"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l&&e.jsxs(se,{variant:"ghost",size:"sm",onClick:j,children:[e.jsx(S,{icon:"lucide:x",size:16,className:"mr-1"}),"Clear"]}),!l&&e.jsx(se,{variant:"ghost",size:"sm",onClick:y,children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})]})]}),!l&&e.jsxs("div",{className:"bg-base-200/40 rounded-xl p-4 space-y-2",children:[e.jsx("p",{className:"text-xs font-semibold text-base-content/50 uppercase tracking-wider",children:"How Memories Work"}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 text-sm text-base-content/60",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:scan",size:14,className:"text-violet-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Capture"})," — hooks observe each session and send events to a background Haiku model that extracts decisions, discoveries, and patterns"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:database",size:14,className:"text-sky-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Store"})," — observations are persisted in a local SQLite database with full-text and semantic search"]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(S,{icon:"lucide:rotate-cw",size:14,className:"text-emerald-400 flex-shrink-0 mt-0.5"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-medium text-base-content/70",children:"Re-inject"})," — at session start, relevant memories are loaded back into context so Claude remembers your conventions and past decisions"]})]})]})]}),e.jsx(fa,{onSearch:N,isSearching:x,placeholder:"Search memories semantically..."}),g&&!x&&e.jsxs("div",{className:"alert alert-error",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{children:g})]}),l?x?e.jsx(oe,{}):g?null:m.length===0?e.jsx(Ve,{icon:"lucide:search-x",title:"No results found",description:"Try a different query"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"text-sm text-base-content/60",children:[m.length," results",(p==null?void 0:p.usedSemantic)&&((R=m[0])==null?void 0:R.score)>0&&e.jsxs("span",{className:"ml-2",children:["(best match: ",Math.round(m[0].score*100),"% similarity)"]})]}),m.map(b=>e.jsx(ga,{result:b},`${b.type}-${b.id}`))]}):r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:brain",title:"No memories yet",description:"Memories are created automatically as you use Claude Code — decisions, discoveries, and patterns are captured in the background."}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(b=>e.jsx(ua,{memory:b,viewMode:"grid",onView:w,selectionMode:!1,isSelected:!1,onToggleSelection:()=>{}},b.id))}),e.jsx(ha,{memory:i,onClose:()=>c(null)})]})}const yt={active:{variant:"warning",icon:"lucide:play"},completed:{variant:"success",icon:"lucide:check"}};function ya(t){return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function wa({sessionId:t}){const[s,n]=o.useState(!1),r=a=>{a.stopPropagation(),navigator.clipboard.writeText(t).then(()=>{n(!0),setTimeout(()=>n(!1),2e3)})};return e.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-2 py-0.5 rounded bg-base-200 hover:bg-base-300 transition-colors text-xs font-mono text-base-content/60 group",title:"Copy session ID for /resume",children:[e.jsx("span",{className:"truncate max-w-32",children:t}),e.jsx(S,{icon:s?"lucide:check":"lucide:copy",size:12,className:s?"text-success":"text-base-content/40 group-hover:text-base-content/70"})]})}function Oe({icon:t,value:s,label:n}){return e.jsxs("div",{className:"flex flex-col items-center min-w-[4.5rem]",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:t,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"font-semibold text-sm tabular-nums",children:s})]}),e.jsx("span",{className:"text-[10px] text-base-content/40 uppercase tracking-wider",children:n})]})}function Na(t){return t<.01?"<$0.01":t<1?`$${t.toFixed(2)}`:`$${t.toFixed(2)}`}function ka({session:t,isExpanded:s,onToggle:n,isResumed:r,costUsd:a}){const i=yt[t.status]||yt.active;return e.jsx(Y,{className:`cursor-pointer hover:shadow-md transition-shadow ${s?"ring-2 ring-primary":""} ${t.status==="active"?"border-l-4 border-l-warning":""}`,onClick:n,children:e.jsx(X,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"p-2 rounded-lg bg-base-200 shrink-0",children:e.jsx(S,{icon:i.icon,size:20,className:`text-${i.variant}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx(V,{variant:i.variant,size:"sm",children:t.status}),r&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),t.content_session_id&&e.jsx(wa,{sessionId:t.content_session_id})]}),e.jsx("h3",{className:"font-medium line-clamp-1",children:t.user_prompt||t.project||"Untitled Session"}),e.jsxs("div",{className:"flex items-center gap-4 mt-2 text-sm text-base-content/60",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:folder",size:14}),t.project]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:14}),ya(t.started_at)]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx(Oe,{icon:"lucide:dollar-sign",value:a!=null?Na(a):"—",label:"Cost"}),e.jsx(Oe,{icon:"lucide:messages-square",value:t.observation_count+t.prompt_count,label:"Messages"}),e.jsx(Oe,{icon:"lucide:message-square",value:t.prompt_count,label:"Prompts"}),e.jsx(S,{icon:s?"lucide:chevron-up":"lucide:chevron-down",size:20,className:"text-base-content/50 ml-1"})]})]})})})}const Me={prompt:{icon:"lucide:message-square",color:"text-primary"},observation:{icon:"lucide:brain",color:"text-info"},bugfix:{icon:"lucide:bug",color:"text-error"},feature:{icon:"lucide:sparkles",color:"text-emerald-400"},refactor:{icon:"lucide:refresh-cw",color:"text-accent"},discovery:{icon:"lucide:search",color:"text-info"},decision:{icon:"lucide:git-branch",color:"text-warning"},change:{icon:"lucide:pencil",color:"text-secondary"}};function Sa(t){return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})}function Ca({sessionId:t,skipHeader:s}){const[n,r]=o.useState(null),[a,i]=o.useState(!0),[c,d]=o.useState(new Set);o.useEffect(()=>{async function l(){i(!0);try{const x=await(await fetch(`/api/sessions/${t}/timeline`)).json();r(x)}catch(m){console.error("Failed to fetch timeline:",m)}finally{i(!1)}}l()},[t]);const u=l=>{d(m=>{const x=new Set(m);return x.has(l)?x.delete(l):x.add(l),x})};if(a)return e.jsx("div",{className:"space-y-3 animate-pulse py-4",children:Array.from({length:3}).map((l,m)=>e.jsx("div",{className:"h-16 bg-base-300/50 rounded-lg"},m))});if(!n)return e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"Failed to load timeline"});const h={active:"badge-success",completed:"badge-info",failed:"badge-error"};return e.jsxs("div",{className:"mt-4 space-y-4",children:[!s&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{className:"bg-base-200/50",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-2",children:[e.jsx(V,{variant:"ghost",size:"sm",className:h[n.session.status]||"",children:n.session.status}),e.jsx("span",{className:"text-sm text-base-content/60",children:new Date(n.session.started_at).toLocaleString()}),n.session.completed_at&&e.jsxs("span",{className:"text-sm text-base-content/60",children:["→ ",new Date(n.session.completed_at).toLocaleString()]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:message-square",size:14,className:"text-primary"}),e.jsx("span",{className:"font-medium",children:n.stats.prompts}),e.jsx("span",{className:"text-base-content/60",children:"prompts"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:brain",size:14,className:"text-info"}),e.jsx("span",{className:"font-medium",children:n.stats.observations}),e.jsx("span",{className:"text-base-content/60",children:"observations"})]})]})]})}),n.session.user_prompt&&e.jsx(Y,{className:"bg-primary/10 border-primary/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:16,className:"text-primary"}),e.jsx("span",{className:"font-medium text-sm",children:"Prompt"})]}),e.jsx("p",{className:"text-sm text-base-content/80 whitespace-pre-wrap",children:n.session.user_prompt})]})}),n.summary&&e.jsx(Y,{className:"bg-warning/10 border-warning/30",children:e.jsxs(X,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:file-text",size:16,className:"text-warning"}),e.jsx("span",{className:"font-medium text-sm",children:"Session Summary"}),e.jsx("span",{className:"text-xs text-base-content/50",children:new Date(n.summary.created_at).toLocaleTimeString()})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[n.summary.request&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-warning mb-1",children:"Request"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.request})]}),n.summary.investigated&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-info mb-1",children:"Investigated"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.investigated})]}),n.summary.learned&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-success mb-1",children:"Learned"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.learned})]}),n.summary.completed&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-primary mb-1",children:"Completed"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.completed})]}),n.summary.next_steps&&e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-accent mb-1",children:"Next Steps"}),e.jsx("div",{className:"text-base-content/80",children:n.summary.next_steps})]})]})]})})]}),e.jsxs("div",{className:"ml-8 border-l-2 border-base-300 pl-6 space-y-4",children:[[...n.timeline].reverse().map((l,m)=>{var j,N;const x=`${l.type}-${l.id}`,g=c.has(x),p=l.type==="prompt"?Me.prompt:Me[l.data.type]||Me.observation;let f=[];if(l.type==="observation"&&l.data.concepts)try{f=JSON.parse(l.data.concepts)}catch{}return e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:`absolute -left-9 top-3 w-4 h-4 rounded-full border-2 border-base-100 ${l.type==="prompt"?"bg-primary":"bg-info"}`}),e.jsx(Y,{className:"cursor-pointer hover:shadow-sm transition-shadow",onClick:y=>{y.stopPropagation(),u(x)},children:e.jsx(X,{className:"py-3",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`p-1.5 rounded bg-base-200 ${p.color}`,children:e.jsx(S,{icon:p.icon,size:14})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[e.jsx(V,{variant:l.type==="prompt"?"primary":"info",size:"xs",children:l.type==="prompt"?`prompt #${l.data.prompt_number||"?"}`:l.data.type||"observation"}),e.jsx("span",{className:"text-xs text-base-content/50",children:Sa(l.timestamp)}),e.jsxs("span",{className:"text-xs text-base-content/40",children:["#",l.id]}),f.length>0&&f.map(y=>e.jsx(V,{variant:"ghost",size:"xs",className:"text-base-content/50",children:y},y))]}),e.jsx("p",{className:"text-sm font-medium",children:l.type==="prompt"?((j=l.data.prompt_text)==null?void 0:j.length)>100?l.data.prompt_text.substring(0,100)+"...":l.data.prompt_text:l.data.title||"Untitled"}),l.type==="observation"&&l.data.narrative&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"":"line-clamp-3"}`,children:l.data.narrative}),l.type==="prompt"&&((N=l.data.prompt_text)==null?void 0:N.length)>100&&e.jsx("p",{className:`text-sm text-base-content/70 mt-1 ${g?"whitespace-pre-wrap":"line-clamp-3"}`,children:g?l.data.prompt_text:l.data.prompt_text.substring(100)}),l.type==="observation"&&(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:file",size:12,className:"inline mr-1"}),y.length," read"]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("span",{className:"text-xs text-base-content/50",children:[e.jsx(S,{icon:"lucide:pencil",size:12,className:"inline mr-1"}),y.length," modified"]})}catch{return null}})()]}),g&&l.type==="observation"&&l.data.text&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-base-200",children:[e.jsx("p",{className:"text-sm text-base-content/70 whitespace-pre-wrap",children:l.data.text}),(l.data.files_read||l.data.files_modified)&&e.jsxs("div",{className:"mt-3 space-y-1",children:[l.data.files_read&&(()=>{try{const y=JSON.parse(l.data.files_read);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Read:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})(),l.data.files_modified&&(()=>{try{const y=JSON.parse(l.data.files_modified);if(y.length>0)return e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium",children:"Files Modified:"}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:y.map((C,w)=>e.jsx("div",{className:"truncate",children:C},w))})]})}catch{return null}})()]})]})]}),e.jsx(S,{icon:g?"lucide:chevron-up":"lucide:chevron-down",size:16,className:"text-base-content/40"})]})})})]},x)}),n.timeline.length===0&&e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No activity in this session"})]})]})}function Ea(t){return t<.01?"<$0.01":`$${t.toFixed(2)}`}const Pa={Read:"lucide:file",Write:"lucide:file-plus",Edit:"lucide:file-edit",Bash:"lucide:terminal",Glob:"lucide:folder-search",Grep:"lucide:search",Agent:"lucide:bot",WebSearch:"lucide:globe",WebFetch:"lucide:download",AskUserQuestion:"lucide:message-circle",TaskCreate:"lucide:list-plus",TaskUpdate:"lucide:list-checks"};function Se({label:t,value:s,icon:n}){return e.jsxs("div",{className:"bg-base-200/50 rounded-lg px-3 py-2.5 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-1.5 mb-0.5",children:[e.jsx(S,{icon:n,size:13,className:"text-base-content/40"}),e.jsx("span",{className:"text-[10px] text-base-content/50 uppercase tracking-wider",children:t})]}),e.jsx("div",{className:"text-base font-semibold tabular-nums",children:s})]})}function Ra({tools:t}){const s=Object.entries(t);if(s.length===0)return e.jsx(e.Fragment,{});const n=Math.max(...s.map(([,u])=>u)),r=s.slice(0,20),a=Math.ceil(r.length/2),i=r.slice(0,a),c=r.slice(a),d=([u,h])=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(S,{icon:Pa[u]||"lucide:wrench",size:13,className:"text-base-content/40 shrink-0"}),e.jsx("span",{className:"text-sm w-28 truncate",title:u,children:u}),e.jsx("div",{className:"flex-1 h-1.5 bg-base-300 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-info rounded-full transition-all",style:{width:`${h/n*100}%`}})}),e.jsx("span",{className:"text-xs tabular-nums text-base-content/50 w-8 text-right",children:h})]},u);return e.jsxs("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5",children:[e.jsx("div",{className:"space-y-1.5",children:i.map(d)}),e.jsx("div",{className:"space-y-1.5",children:c.map(d)}),s.length>20&&e.jsxs("span",{className:"col-span-2 text-xs text-base-content/40 mt-1",children:["+ ",s.length-20," more tools"]})]})}function Ta({session:t,open:s,onClose:n,onResumedDetected:r}){const[a,i]=o.useState(null),[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!0),x=o.useRef(r);x.current=r,o.useEffect(()=>{if(!s)return;let f=!1;async function j(){var N;h(!0);try{const[y,C]=await Promise.all([fetch(`/api/sessions/${t.id}/stats`),fetch(`/api/sessions/${t.id}/timeline`)]);if(!f){if(y.ok){const w=await y.json();w.stats?(i(w.stats),m(!0),(N=x.current)==null||N.call(x,w.stats.is_resumed)):m(!1)}else m(!1);if(C.ok){const w=await C.json();d(w.session??null)}}}catch{f||m(!1)}finally{f||h(!1)}}return j(),()=>{f=!0}},[t.id,s]);const g=a?Object.entries(a.models):[],p=(c==null?void 0:c.status)==="active"||t.status==="active";return e.jsx(ye,{open:s,onClose:n,title:"Session Details",size:"wide",children:e.jsxs("div",{className:"max-h-[70vh] overflow-y-auto space-y-4 pr-1",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap text-sm",children:[e.jsx(V,{variant:p?"warning":"success",size:"sm",children:p?"active":"completed"}),(a==null?void 0:a.is_resumed)&&e.jsx(V,{variant:"info",size:"sm",children:"resumed"}),e.jsx("span",{className:"text-base-content/50",children:c?new Date(c.started_at).toLocaleString():new Date(t.started_at).toLocaleString()}),(c==null?void 0:c.completed_at)&&e.jsxs("span",{className:"text-base-content/40",children:["→ ",new Date(c.completed_at).toLocaleString()]}),g.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-base-content/20",children:"|"}),g.map(([f,j])=>e.jsxs(V,{variant:"ghost",size:"sm",children:[f.replace("claude-","").replace(/-\d{8}$/,"")," (",j,")"]},f))]})]}),u?e.jsx("div",{className:"grid grid-cols-4 gap-3 animate-pulse",children:Array.from({length:4}).map((f,j)=>e.jsx("div",{className:"bg-base-300/50 rounded-lg h-14"},j))}):a?e.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[e.jsx(Se,{label:"Cost",value:Ea(a.cost_usd),icon:"lucide:dollar-sign"}),e.jsx(Se,{label:"Messages",value:String(a.turns),icon:"lucide:messages-square"}),e.jsx(Se,{label:"Observations",value:String(t.observation_count),icon:"lucide:brain"}),e.jsx(Se,{label:"Prompts",value:String(t.prompt_count),icon:"lucide:message-square"})]}):l?null:e.jsxs("div",{className:"text-sm text-base-content/40 text-center py-2",children:[e.jsx(S,{icon:"lucide:file-x",size:16,className:"inline mr-2"}),"JSONL file not available — showing timeline data only"]}),t.user_prompt&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(S,{icon:"lucide:terminal",size:14,className:"text-primary"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Prompt"})]}),e.jsx("p",{className:"text-sm whitespace-pre-wrap break-words text-base-content/80",children:t.user_prompt})]}),a&&Object.keys(a.tools).length>0&&e.jsxs("div",{className:"border border-base-300 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(S,{icon:"lucide:wrench",size:14,className:"text-info"}),e.jsx("span",{className:"text-xs text-base-content/50 uppercase tracking-wider",children:"Tool Usage"})]}),e.jsx(Ra,{tools:a.tools})]}),e.jsx(Ca,{sessionId:t.id,skipHeader:!0})]})})}const Ia=[{key:"date",label:"Date",icon:"lucide:calendar"},{key:"cost",label:"Cost",icon:"lucide:dollar-sign"},{key:"messages",label:"Messages",icon:"lucide:messages-square"},{key:"prompts",label:"Prompts",icon:"lucide:message-square"}];function wt(t,s,n){switch(s){case"date":return t.started_at_epoch;case"cost":return n[t.id]??0;case"messages":return t.observation_count+t.prompt_count;case"prompts":return t.prompt_count}}function Da(){const{params:t}=ce(),[s,n]=o.useState([]),[r,a]=o.useState(!0),[i,c]=o.useState(null),[d,u]=o.useState(""),[h,l]=o.useState("date"),[m,x]=o.useState("desc"),[g,p]=o.useState({}),{selectedProject:f,setSelectedProject:j}=ie(),N=o.useRef(null),[y,C]=o.useState(new Set),w=o.useCallback(async P=>{a(!0);try{const E=new URLSearchParams;E.set("limit","50"),f&&E.set("project",f),P&&E.set("search",P);const z=(await(await fetch(`/api/sessions?${E}`)).json()).items||[];if(n(z),z.length>0){const L=z.map(I=>I.id);fetch("/api/sessions/costs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:L})}).then(I=>I.json()).then(I=>p(I.costs||{})).catch(()=>{})}}catch(E){console.error("Failed to fetch sessions:",E)}finally{a(!1)}},[f]);o.useEffect(()=>{w(d||void 0)},[w,d]),o.useEffect(()=>{if(!t.selected||r)return;const P=Number(t.selected),E=s.find(A=>A.id===P);E?(c(E),f&&E.project!==f&&j(E.project)):f&&s.length>0&&j(null)},[t.selected,r,s,f,j]);const R=P=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{u(P)},300)},b=o.useCallback(P=>{C(E=>{if(!i||E.has(i.id)||!P)return E;const A=new Set(E);return A.add(i.id),A})},[i]),_=P=>{h===P?x(E=>E==="desc"?"asc":"desc"):(l(P),x("desc"))},T=o.useMemo(()=>{const P=[],E=[];for(const z of s)z.status==="active"?P.push(z):E.push(z);const A=m==="desc"?-1:1,G=(z,L)=>A*(wt(z,h,g)-wt(L,h,g));return P.sort(G),E.sort(G),[...P,...E]},[s,h,m,g]);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Sessions"}),e.jsx(Te,{}),e.jsxs("span",{className:"text-xs text-base-content/50",children:[s.length," session",s.length!==1?"s":""]}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Browse past sessions · copy session ID to resume"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>w(d||void 0),children:e.jsx(S,{icon:"lucide:refresh-cw",size:16})})})]}),e.jsxs("div",{className:"relative",children:[e.jsx(S,{icon:"lucide:search",size:20,className:"absolute left-4 top-1/2 -translate-y-1/2 text-base-content/50"}),e.jsx("input",{type:"search",placeholder:"Search sessions by prompt, project, or session ID...",onChange:P=>R(P.target.value),className:"input input-bordered w-full pl-12 pr-4"})]}),r?e.jsx(oe,{}):s.length===0?e.jsx(Ve,{icon:"lucide:history",title:d?"No matching sessions":"No sessions found",description:d?"Try a different search query":"Sessions will appear here as you use Claude Code"}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-end gap-1 pr-2",children:[e.jsx("span",{className:"text-xs text-base-content/40 mr-2",children:"Sort by:"}),Ia.map(({key:P,label:E,icon:A})=>{const G=h===P;return e.jsxs("button",{onClick:()=>_(P),className:`flex items-center gap-1 px-2.5 py-1 rounded text-xs transition-colors ${G?"bg-primary/10 text-primary font-medium":"text-base-content/50 hover:text-base-content/80 hover:bg-base-200"}`,children:[e.jsx(S,{icon:A,size:12}),E,G&&e.jsx(S,{icon:m==="desc"?"lucide:arrow-down":"lucide:arrow-up",size:12})]},P)})]}),T.map(P=>e.jsx("div",{id:`session-${P.id}`,children:e.jsx(ka,{session:P,isExpanded:(i==null?void 0:i.id)===P.id,onToggle:()=>c((i==null?void 0:i.id)===P.id?null:P),isResumed:y.has(P.id),costUsd:g[P.id]})},P.id))]}),i&&e.jsx(Ta,{session:i,open:!!i,onClose:()=>c(null),onResumedDetected:b})]})}const ve=["sonnet","opus"],Qt={sonnet:"Sonnet 4.6",opus:"Opus 4.7"},Yt=/^claude-[a-z0-9][a-z0-9.\-]*$/;function Nt(t,s=!0){if(typeof t!="string"||t.length===0)return!1;const n=t.endsWith("[1m]");if(n&&!s)return!1;const r=n?t.slice(0,-4):t;return r?ve.includes(r)?!0:Yt.test(r):!1}function Ie(t){const s=t.endsWith("[1m]")?t.slice(0,-4):t;return!ve.includes(s)&&Yt.test(s)}const J={model:"opus",extendedContext:!0,extendedContextOverrides:{},skills:{spec:"opus","spec-plan":"opus","spec-implement":"sonnet","spec-verify":"sonnet",fix:"opus","setup-rules":"opus","create-skill":"opus",prd:"opus",benchmark:"opus"},agents:{"spec-review":"sonnet","changes-review":"sonnet"},reviewerAgents:{specReview:!0,changesReview:!0},codexReviewers:{specReview:!1,changesReview:!1},codexAvailable:!1,specWorkflow:{worktreeSupport:!0,askQuestionsDuringPlanning:!0,planApproval:!0},securityScanner:{credentialScanner:!0}};function _a(){const[t,s]=o.useState(J),[n,r]=o.useState(!0),[a,i]=o.useState(null),[c,d]=o.useState(!1),[u,h]=o.useState(!1);o.useEffect(()=>{fetch("/api/settings").then(w=>{if(!w.ok)throw new Error(`API error: ${w.status}`);return w.json()}).then(w=>{s({...J,...w}),r(!1)}).catch(w=>{i(w.message||"Failed to load settings"),r(!1)})},[]);const l=o.useCallback(w=>{s(R=>({...R,model:w})),d(!0),h(!1)},[]),m=o.useCallback(w=>{s(R=>({...R,extendedContext:w})),d(!0),h(!1)},[]),x=o.useCallback((w,R)=>{s(b=>({...b,extendedContextOverrides:{...b.extendedContextOverrides,[w]:R}})),d(!0),h(!1)},[]),g=o.useCallback((w,R)=>{s(b=>({...b,skills:{...b.skills,[w]:R}})),d(!0),h(!1)},[]),p=o.useCallback((w,R)=>{s(b=>({...b,agents:{...b.agents,[w]:R}})),d(!0),h(!1)},[]),f=o.useCallback((w,R)=>{s(b=>({...b,reviewerAgents:{...b.reviewerAgents,[w]:R}})),d(!0),h(!1)},[]),j=o.useCallback((w,R)=>{s(b=>({...b,codexReviewers:{...b.codexReviewers,[w]:R}})),d(!0),h(!1)},[]),N=o.useCallback((w,R)=>{s(b=>({...b,specWorkflow:{...b.specWorkflow,[w]:R}})),d(!0),h(!1)},[]),y=o.useCallback((w,R)=>{s(b=>({...b,securityScanner:{...b.securityScanner,[w]:R}})),d(!0),h(!1)},[]),C=o.useCallback(async()=>{await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(w=>{if(!w.ok)throw new Error(`Save failed: ${w.status}`);return w.json()}).then(w=>{s(w),d(!1),h(!0)})},[t]);return{settings:t,isLoading:n,error:a,isDirty:c,saved:u,updateModel:l,updateExtendedContext:m,updateExtendedContextOverride:x,updateSkill:g,updateAgent:p,updateReviewerAgent:f,updateCodexReviewer:j,updateSpecWorkflow:N,updateSecurityScanner:y,save:C}}const ze="__custom__";function Fe({value:t,choices:s,onChange:n,disabled:r=!1,id:a,allow1m:i=!0}){const c=Ie(t),[d,u]=o.useState(c),[h,l]=o.useState(c?t:""),m=d||c?ze:t,x=p=>{if(p===ze){u(!0);return}u(!1),l(""),n(p)},g=()=>{const p=h.trim();Nt(p,i)&&n(p)};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("select",{id:a,className:"select select-sm select-bordered w-full max-w-xs",value:m,onChange:p=>x(p.target.value),disabled:r,children:[s.map(p=>e.jsx("option",{value:p,children:Qt[p]??p},p)),e.jsx("option",{value:ze,children:"Custom…"})]}),(d||c)&&e.jsx("input",{type:"text",className:`input input-xs input-bordered w-full max-w-xs ${h&&!Nt(h.trim(),i)?"input-error":""}`,placeholder:"claude-opus-4-6",value:h||(c?t:""),onChange:p=>l(p.target.value),onBlur:g,onKeyDown:p=>{p.key==="Enter"&&(p.preventDefault(),g())},disabled:r,"aria-label":"Custom model ID",spellCheck:!1,autoCapitalize:"off",autoCorrect:"off"})]})}function kt(t,s,n){return Ie(t)?t.endsWith("[1m]"):s??n}const La=[{key:"main",label:"Main Session",sub:"Quick mode / direct chat — used for any prompt outside a workflow command"},{key:"fix",label:"Bugfix (/fix)",sub:"Investigate, write a failing test, fix at the root cause, audit — no plan file"},{key:"prd",label:"Product Requirements (/prd)",sub:"Brainstorm a vague idea into a concrete PRD with optional deep research"},{key:"setup-rules",label:"Project Rules (/setup-rules)",sub:"Auto-generate modular Claude rules from your codebase"},{key:"create-skill",label:"Create Skill (/create-skill)",sub:"Build a new reusable skill from a topic or capture one from this session"},{key:"benchmark",label:"Benchmark (/benchmark)",sub:"Quantitative before/after evals for rules, skills, and workflows"}],$a=[{key:"spec-plan",label:"Planning Phase",sub:"Explore codebase, design plan, ask clarifying questions, get approval"},{key:"spec-implement",label:"Implementation Phase",sub:"TDD loop for each task — RED, GREEN, REFACTOR with quality hooks on every edit"},{key:"spec-verify",label:"Verification Phase",sub:"Full suite, type checks, code review agent, structured E2E browser scenarios"}],Aa=[{key:"spec-review",label:"Spec Review",toggleKey:"specReview",description:"Validates plans before implementation. Checks alignment with requirements and flags risky assumptions. Runs in a separate context window."},{key:"changes-review",label:"Changes Review",toggleKey:"changesReview",description:"Reviews code after implementation. Checks compliance, security, test coverage, and goal achievement. Reads all changed files in a separate context window."}],Oa=[{key:"codex-spec-review",label:"Codex Spec Review",toggleKey:"specReview",description:"Adversarial plan review powered by OpenAI Codex. Provides an independent second opinion on plans."},{key:"codex-changes-review",label:"Codex Changes Review",toggleKey:"changesReview",description:"Adversarial code review powered by OpenAI Codex. Provides an independent second opinion on implementations."}],Ma=[{key:"worktree-support",label:"Worktree Support",toggleKey:"worktreeSupport",description:"Ask whether to isolate changes in a git worktree. When off, worktree is always skipped."},{key:"ask-questions",label:"Ask Questions",toggleKey:"askQuestionsDuringPlanning",description:"Ask clarifying questions during planning. When off, planning runs fully autonomous."},{key:"plan-approval",label:"Plan Approval",toggleKey:"planApproval",description:"Require approval before implementation starts. When off, implementation begins automatically."}],za=[{key:"credential-scanner",label:"Credential Scanner",toggleKey:"credentialScanner",description:"Block credentials in prompts, file reads, bash commands, and git commits. Uses [allow-secret] / [allow-all] tags to bypass per-call."}];function Ce({children:t}){return e.jsx("h2",{className:"text-xs font-semibold uppercase tracking-wide text-base-content/50 mb-2",children:t})}function St({children:t}){return e.jsx("tr",{children:e.jsx("td",{colSpan:3,className:"font-medium text-xs text-base-content/50 uppercase tracking-wide pt-4 pb-1 px-0 border-b border-base-300",children:t})})}function Ct({model:t}){return e.jsx("span",{className:"text-xs text-base-content/40",children:Qt[t]??t})}const fe=41777,xe=1024,pe=65535;function Fa(){const{settings:t,isLoading:s,error:n,isDirty:r,updateModel:a,updateExtendedContext:i,updateExtendedContextOverride:c,updateSkill:d,updateAgent:u,updateReviewerAgent:h,updateCodexReviewer:l,updateSpecWorkflow:m,updateSecurityScanner:x,save:g}=_a(),[p,f]=o.useState(null),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(!1),[b,_]=o.useState(null),[T,P]=o.useState(fe),[E,A]=o.useState(fe),[G,z]=o.useState(fe),[L,I]=o.useState(!1),[D,O]=o.useState(null),[F,K]=o.useState(!1);o.useEffect(()=>{fetch("/api/console-settings").then(v=>v.ok?v.json():null).then(v=>{if(!v)return;const $=typeof v.workerPort=="number"?v.workerPort:fe,q=typeof v.defaultPort=="number"?v.defaultPort:fe;P($),A($),z(q)}).catch(()=>{})},[]);const Q=T!==E,ne=async()=>{if(O(null),K(!1),!Number.isInteger(T)||T<xe||T>pe){O(`Port must be an integer between ${xe} and ${pe}`);return}I(!0);try{const v=await fetch("/api/console-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({workerPort:T})});if(!v.ok){const B=await v.json().catch(()=>null);throw new Error((B==null?void 0:B.error)??`Save failed: ${v.status}`)}const $=await v.json(),q=typeof $.workerPort=="number"?$.workerPort:T;A(q),P(q),K(!0),C(!0)}catch(v){O(v instanceof Error?v.message:"Failed to save")}finally{I(!1)}},H=()=>{P(G),K(!1),O(null)},k=o.useRef(!1),M=o.useRef(!1);o.useEffect(()=>{k.current=r},[r]);const U=async()=>{N(!0),f(null);try{await g(),C(!0)}catch(v){f(v instanceof Error?v.message:"Failed to save")}finally{N(!1)}};o.useEffect(()=>{const v=$=>{k.current&&$.preventDefault()};return window.addEventListener("beforeunload",v),()=>window.removeEventListener("beforeunload",v)},[]),o.useEffect(()=>{const v=()=>{if(M.current){M.current=!1;return}if(!k.current)return;const $=(window.location.hash.replace(/^#/,"")||"/").split("?")[0];$!=="/settings"&&(M.current=!0,history.replaceState(null,"","#/settings"),window.dispatchEvent(new HashChangeEvent("hashchange")),_("#"+$),R(!0))};return window.addEventListener("hashchange",v),()=>window.removeEventListener("hashchange",v)},[]);const ee=()=>{R(!1),k.current=!1,b&&(window.location.hash=b)},te=()=>{R(!1),_(null)};return s?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"card bg-base-200 animate-pulse",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsx("div",{className:"h-4 bg-base-300 rounded w-32 mb-3"}),e.jsx("div",{className:"h-8 bg-base-300 rounded w-48"})]})})]}):n?e.jsxs("div",{className:"space-y-4",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("div",{className:"alert alert-error",children:e.jsxs("span",{children:["Failed to load settings: ",n]})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-baseline gap-3",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Settings"}),e.jsx("span",{className:"text-base-content/50 text-sm",children:"Model preferences, workflow, and automation"})]}),e.jsx("button",{className:`btn btn-primary btn-sm flex-shrink-0 ${j?"loading":""}`,onClick:U,disabled:j||!r,children:j?"Saving...":r?"Save Changes":"Saved"})]}),p&&e.jsx("div",{className:"alert alert-error py-2",children:e.jsx("span",{children:p})}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Model Preferences"}),e.jsx("div",{className:"card bg-base-200",children:e.jsxs("div",{className:"card-body p-4",children:[e.jsxs("table",{className:"table table-sm",children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"w-[42%]"}),e.jsx("col",{className:"w-[28%]"}),e.jsx("col",{className:"w-[15%]"}),e.jsx("col",{className:"w-[15%]"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-xs",children:"Setting"}),e.jsx("th",{className:"text-xs",children:"Model"}),e.jsx("th",{className:"text-xs",children:"1M"}),e.jsx("th",{className:"text-xs text-base-content/40",children:"Default"})]})}),e.jsxs("tbody",{children:[e.jsx(St,{children:"General"}),La.map(v=>{var de;const $=v.key==="main",q=$?t.model:t.skills[v.key]??J.skills[v.key],B=$?J.model:J.skills[v.key],ae=Ie(q),W=kt(q,(de=t.extendedContextOverrides)==null?void 0:de[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:q,choices:ve,onChange:$?a:_e=>d(v.key,_e),id:$?"main-model":`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:W,disabled:ae,onChange:_e=>c(v.key,_e.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:ae?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:B})})]},v.key)}),e.jsx(St,{children:"Spec Phases"}),$a.map(v=>{var ae;const $=t.skills[v.key]??J.skills[v.key],q=Ie($),B=kt($,(ae=t.extendedContextOverrides)==null?void 0:ae[v.key],t.extendedContext);return e.jsxs("tr",{children:[e.jsxs("td",{children:[e.jsx("span",{className:"text-sm",children:v.label}),v.sub&&e.jsx("div",{className:"text-xs text-base-content/40",children:v.sub})]}),e.jsx("td",{children:e.jsx(Fe,{value:$,choices:ve,onChange:W=>d(v.key,W),id:`cmd-${v.key}`})}),e.jsx("td",{children:e.jsx("input",{type:"checkbox",className:"toggle toggle-xs toggle-primary",checked:B,disabled:q,onChange:W=>c(v.key,W.target.checked),id:`ec-${v.key}`,"aria-label":`Enable 1M context for ${v.label}`,title:q?"Custom IDs encode the context window themselves; type claude-opus-4-7[1m] to enable 1M.":"Enable 1M context for this row."})}),e.jsx("td",{children:e.jsx(Ct,{model:J.skills[v.key]})})]},v.key)})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-3",children:[e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm toggle-primary flex-shrink-0",checked:t.extendedContext,onChange:v=>i(v.target.checked),id:"toggle-extended-context","aria-label":"Enable 1M extended context"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:"Extended Context (1M) — default"}),e.jsx("div",{className:"text-xs text-base-content/50",children:"Default 1M state for rows above without a per-row override. Sonnet 1M is not included in Max plan — Max users must set all models to Opus for 1M."})]})]}),e.jsxs("div",{className:"px-3 py-2 rounded-lg bg-base-100/50 border border-base-300",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight mb-1",children:"Pricing"}),e.jsxs("div",{className:"text-xs text-base-content/50 space-y-0.5",children:[e.jsx("div",{children:"Sonnet 4.6 — $3 / $15 per MTok (input / output)"}),e.jsx("div",{children:"Opus 4.7 — $5 / $25 per MTok (input / output)"})]})]})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 items-stretch",children:[e.jsxs("section",{className:"flex flex-col",children:[e.jsx(Ce,{children:"Console"}),e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex-1 flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("label",{htmlFor:"worker-port",className:"text-sm font-semibold whitespace-nowrap",title:"Port the Console worker, MCP server, status line, hooks, and installer all share.",children:"Worker Port"}),e.jsx("input",{id:"worker-port",type:"number",min:xe,max:pe,step:1,className:"input input-bordered input-sm w-24",value:T,onChange:v=>{const $=parseInt(v.target.value,10);P(Number.isNaN($)?0:$),K(!1),O(null)}}),e.jsx("button",{type:"button",className:"btn btn-ghost btn-xs",onClick:H,disabled:T===G,title:`Reset to default (${G})`,children:"Reset"}),e.jsx("button",{className:`btn btn-primary btn-sm ml-auto ${L?"loading":""}`,onClick:ne,disabled:L||!Q||!Number.isInteger(T)||T<xe||T>pe,children:L?"Saving...":"Save Port"})]}),e.jsxs("div",{className:"text-xs text-base-content/55 break-all",children:["→"," ",e.jsxs("code",{className:"px-1 py-0.5 rounded bg-base-100/70 text-base-content/75",children:["http://localhost:",Number.isInteger(T)&&T>0?T:"?"]})]}),e.jsxs("div",{className:"text-xs text-base-content/40",children:["Range ",xe,"–",pe," · restart Pilot to apply"]}),D&&e.jsx("div",{className:"text-xs text-error",children:D}),F&&!Q&&!D&&e.jsx("div",{className:"text-xs text-success",children:"✓ Saved — restart Pilot for the new port to take effect."})]})]}),e.jsxs("section",{className:"flex flex-col",children:[e.jsx(Ce,{children:"Security"}),e.jsx("div",{className:"grid grid-cols-1 gap-2 flex-1",children:za.map(v=>{var q;const $=((q=t.securityScanner)==null?void 0:q[v.toggleKey])??J.securityScanner[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5 flex-1",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>x(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]})]}),e.jsxs("section",{children:[e.jsx(Ce,{children:"Spec Workflow"}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Review Agents"}),e.jsx("div",{className:"grid grid-cols-2 gap-2 mb-4",children:Aa.map(v=>{var q;const $=((q=t.reviewerAgents)==null?void 0:q[v.toggleKey])??J.reviewerAgents[v.toggleKey];return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>h(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":`Enable ${v.label} agent`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx(Fe,{value:t.agents[v.key]??J.agents[v.key],choices:ve,onChange:B=>u(v.key,B),id:`agent-${v.key}`,disabled:!$,allow1m:!1})]}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Codex Reviewers"}),e.jsx("div",{className:`grid grid-cols-2 gap-2 mb-4 ${t.codexAvailable?"":"opacity-50"}`,children:Oa.map(v=>{var q;const $=t.codexAvailable&&(((q=t.codexReviewers)==null?void 0:q[v.toggleKey])??J.codexReviewers[v.toggleKey]);return e.jsx("div",{className:`rounded-lg border px-3 py-2.5 transition-colors ${$?"border-base-300 bg-base-200":"border-base-300/50 bg-base-200/50 opacity-60"}`,children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>l(v.toggleKey,B.target.checked),disabled:!t.codexAvailable,id:`toggle-${v.key}`,"aria-label":`Enable ${v.label}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-1",children:v.description})]})]})},v.key)})}),!t.codexAvailable&&e.jsxs("div",{className:"text-xs text-base-content/40 mb-4 pl-1",children:["Codex reviewers require the Codex plugin. Install:"," ",e.jsx("code",{className:"text-base-content/60",children:"claude plugin install @openai/codex"})," ","then run ",e.jsx("code",{className:"text-base-content/60",children:"/codex:setup"})," and restart Pilot."]}),e.jsx("div",{className:"text-xs font-medium text-base-content/40 uppercase tracking-wide mb-1.5",children:"Automation"}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mb-4",children:Ma.map(v=>{var q;const $=((q=t.specWorkflow)==null?void 0:q[v.toggleKey])??J.specWorkflow[v.toggleKey];return e.jsxs("div",{className:"rounded-lg border border-base-300 bg-base-200 px-3 py-2.5 flex items-start gap-2.5",children:[e.jsx("input",{type:"checkbox",className:"toggle toggle-sm mt-0.5 flex-shrink-0",checked:$,onChange:B=>m(v.toggleKey,B.target.checked),id:`toggle-${v.key}`,"aria-label":v.label}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-semibold leading-tight",children:v.label}),e.jsx("div",{className:"text-xs text-base-content/50 mt-0.5",children:v.description})]})]},v.key)})})]}),e.jsxs(ye,{open:y,onClose:()=>C(!1),title:"Settings Saved",actions:e.jsx("button",{className:"btn btn-primary btn-sm",onClick:()=>C(!1),children:"Got it"}),children:[e.jsx("p",{children:"Your settings have been saved successfully."}),e.jsx("p",{className:"mt-2 font-medium text-warning",children:"Please restart Claude Code for changes to take effect."})]}),e.jsx(ye,{open:w,onClose:te,title:"Unsaved Changes",actions:e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn btn-ghost btn-sm",onClick:te,children:"Stay"}),e.jsx("button",{className:"btn btn-error btn-sm",onClick:ee,children:"Leave"})]}),children:e.jsx("p",{children:"You have unsaved settings changes. Are you sure you want to leave this page?"})})]})}async function Xe(t){const s=new TextEncoder().encode(t),n=new CompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new Uint8Array(a).toBase64({alphabet:"base64url",omitPadding:!0})}async function Ze(t){const s=Uint8Array.fromBase64(t,{alphabet:"base64url"}),n=new DecompressionStream("deflate-raw"),r=n.writable.getWriter();r.write(s),r.close();const a=await new Response(n.readable).arrayBuffer();return new TextDecoder().decode(a)}const et=Object.freeze(Object.defineProperty({__proto__:null,compress:Xe,decompress:Ze},Symbol.toStringTag,{value:"Module"})),Xt=32768;async function Zt(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/shared/${n}`}}catch{return null}}async function Ua(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}async function qa(t,s){try{const n=await Xe(JSON.stringify(t));return n.length>Xt?null:{url:`${s}/#/feedback/${n}`}}catch{return null}}async function es(t){if(!t)return null;try{return JSON.parse(await Ze(t))}catch{return null}}function ts(t){return/^[A-Za-z0-9]{8}$/.test(t)}const _r=Object.freeze(Object.defineProperty({__proto__:null,generateFeedbackUrl:qa,generateShareUrl:Zt,isPasteServiceId:ts,parseFeedbackUrl:es,parseShareUrl:Ua},Symbol.toStringTag,{value:"Module"}));async function Ga(t){const s=t.indexOf("#");if(s===-1)return null;const n=t.slice(s+1),[r]=n.split("?");let a=r;if(a.startsWith("/feedback/")?a=a.slice(10):a.startsWith("/shared/")&&(a=a.slice(8)),!a)return null;if(ts(a)){const i=await fetch(`/api/share/${a}`);if(!i.ok)return null;const{data:c}=await i.json(),{decompress:d}=await Z(async()=>{const{decompress:u}=await Promise.resolve().then(()=>et);return{decompress:u}},void 0,import.meta.url);return JSON.parse(await d(c))}return es(a)}function Ba({isOpen:t,onClose:s,planPath:n,projectParam:r,onAnnotationsImported:a}){const{success:i,error:c}=Wt(),[d,u]=o.useState(""),[h,l]=o.useState({status:"idle"}),m=o.useRef(null),x=o.useRef(null);o.useEffect(()=>{var j,N;const f=m.current;f&&(t?((j=f.showModal)==null||j.call(f),setTimeout(()=>{var y;return(y=x.current)==null?void 0:y.focus()},50)):((N=f.close)==null||N.call(f),u(""),l({status:"idle"})))},[t]);const g=async()=>{if(d.trim()){l({status:"loading"});try{const f=await Ga(d.trim());if(!f){l({status:"error",message:"Failed to decode feedback URL — check the URL is complete."});return}if("specContent"in f&&typeof f.specContent=="string"){l({status:"error",message:'This is a share URL, not a feedback URL. Feedback URLs are generated when a reviewer clicks "Send Feedback".'});return}if(f.planPath&&n&&f.planPath!==n){l({status:"error",message:`This feedback was created for a different spec (${f.planPath}). Open the correct spec first, then import.`});return}l({status:"preview",payload:f})}catch(f){l({status:"error",message:f instanceof Error?f.message:"Failed to decode feedback URL."})}}},p=async()=>{if(h.status!=="preview")return;const{payload:f}=h;try{const j=await fetch(`/api/annotations?path=${encodeURIComponent(n)}${r}`),N=j.ok?(await j.json()).planAnnotations??[]:[],C=f.annotations.map(b=>({id:b.id??crypto.randomUUID(),blockId:b.blockId??"",originalText:b.originalText??"",text:b.text??"",createdAt:b.createdAt??Date.now(),author:b.author??f.author,feedbackStatus:"pending",importedAt:Date.now()})).filter(b=>!N.some(_=>_.originalText===b.originalText&&_.text===b.text));if(C.length===0){l({status:"done",count:0,author:f.author}),i("All annotations already imported — nothing new to add.");return}const w=[...N,...C],R=await fetch(`/api/annotations/plan?path=${encodeURIComponent(n)}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({annotations:w})});if(!R.ok){c("Failed to save annotations — please try again."),l({status:"error",message:`Server returned ${R.status}. Annotations were not saved.`});return}a(C),l({status:"done",count:C.length,author:f.author}),i(`Imported ${C.length} annotation${C.length!==1?"s":""} from ${f.author}`)}catch{c("Failed to import annotations.")}};return e.jsx("dialog",{ref:m,className:"modal",onClick:f=>{f.target===m.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:message-square-plus",size:18,className:"text-primary"}),e.jsx("h3",{className:"text-lg font-semibold",children:"Import Feedback"}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),h.status==="done"?e.jsxs("div",{className:"text-center py-4 space-y-3",children:[e.jsx("div",{className:"bg-success/10 rounded-full w-12 h-12 flex items-center justify-center mx-auto",children:e.jsx(S,{icon:"lucide:check-circle",size:24,className:"text-success"})}),e.jsxs("p",{className:"text-sm",children:["Imported ",e.jsx("strong",{children:h.count})," annotation",h.count!==1?"s":""," from"," ",e.jsx("strong",{children:h.author}),"."]}),e.jsx("p",{className:"text-xs text-base-content/50",children:"Review them in the annotation panel — accept or reject each one."}),e.jsx("button",{className:"btn btn-primary btn-sm",onClick:s,children:"Done"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Paste feedback URL from colleague"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:x,type:"text",value:d,onChange:f=>{u(f.target.value),l({status:"idle"})},onKeyDown:f=>{f.key==="Enter"&&g()},className:"input input-bordered input-sm flex-1 font-mono text-xs",placeholder:"Paste feedback URL (pilot-shell.com or localhost)...",disabled:h.status==="loading"}),e.jsx("button",{className:"btn btn-outline btn-sm",onClick:g,disabled:!d.trim()||h.status==="loading",children:h.status==="loading"?e.jsx("span",{className:"loading loading-spinner loading-xs"}):"Preview"})]})]}),h.status==="error"&&e.jsxs("div",{className:"alert alert-error py-2 mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:14}),e.jsx("span",{className:"text-xs",children:h.message})]}),h.status==="preview"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"card bg-base-200 border border-base-300",children:e.jsxs("div",{className:"card-body p-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsxs("span",{children:["From: ",e.jsx("strong",{children:h.payload.author})]}),e.jsx("span",{children:"·"}),e.jsxs("span",{children:[h.payload.annotations.length," annotation",h.payload.annotations.length!==1?"s":""]})]}),h.payload.annotations.slice(0,3).map(f=>e.jsxs("div",{className:"flex items-start gap-2 p-2 rounded bg-base-100 border border-base-300/50 text-xs",children:[f.originalText&&e.jsxs("span",{className:"text-base-content/40 italic flex-shrink-0 max-w-[120px] truncate",children:["“",f.originalText,"”"]}),e.jsx("span",{className:"text-base-content/70",children:f.text.slice(0,60)})]},f.id)),h.payload.annotations.length>3&&e.jsxs("p",{className:"text-xs text-base-content/40 text-center",children:["+",h.payload.annotations.length-3," more…"]})]})}),e.jsxs("button",{className:"btn btn-primary btn-sm w-full gap-2",onClick:p,children:[e.jsx(S,{icon:"lucide:download",size:14}),"Import ",h.payload.annotations.length," Annotation",h.payload.annotations.length!==1?"s":""]})]})]})]})})}const Ha="https://pilot-shell.com/shared",Va=32768;function Ue(t){return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function Ka(){const[t,s]=o.useState(""),[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(!1),[u,h]=o.useState(null),[l,m]=o.useState("local"),x=o.useRef(0),g=o.useCallback(N=>{m(N),s(""),r(""),h(null)},[]),p=o.useCallback(async(N,y,C,w,R)=>{const b=++x.current;d(!0),h(null),s(""),r(""),i(!1);try{if(typeof CompressionStream>"u"){h("Your browser does not support the required compression API. Please upgrade to Chrome 80+, Firefox 113+, or Safari 16.4+."),d(!1);return}let _=y;if(_.length===0&&w)try{const P=await fetch(`/api/annotations?path=${encodeURIComponent(w)}`);if(P.ok){const E=await P.json();Array.isArray(E.planAnnotations)&&(_=E.planAnnotations)}}catch{}const T={specContent:N,annotations:_.filter(P=>P.feedbackStatus!=="rejected").map(P=>({id:P.id,blockId:P.blockId,originalText:P.originalText,text:P.text,createdAt:P.createdAt})),author:C??await Wa(),planPath:w,...R&&R!=="specification"?{contentType:R}:{},createdAt:Date.now()};if(b!==x.current)return;if(l==="web"){const{compress:P}=await Z(async()=>{const{compress:G}=await Promise.resolve().then(()=>et);return{compress:G}},void 0,import.meta.url),E=await P(JSON.stringify(T));if(b!==x.current)return;if(E.length>Va){h('This spec is too large for web sharing (exceeds 32 KB compressed). Switch to "Recipient has Pilot Shell" to use a local link instead.');return}const A=`${Ha}#${E}`;s(A),r(Ue(new Blob([A]).size)),i(!1)}else{const P=`${window.location.protocol}//${window.location.host}`,E=await Zt(T,P);if(b!==x.current)return;if(E)s(E.url),r(Ue(new Blob([E.url]).size)),i(!1);else{const A=await Ja(T,P);if(b!==x.current)return;A?(s(A.url),r(Ue(new Blob([A.url]).size)),i(!0)):h("Failed to generate share URL. The spec may be too large.")}}}catch(_){if(b!==x.current)return;h(_ instanceof Error?_.message:"Failed to generate share URL")}finally{b===x.current&&d(!1)}},[l]),f=o.useCallback(async()=>{if(!t||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},[t]),j=o.useCallback(()=>{s(""),r(""),i(!1),h(null)},[]);return{shareUrl:t,urlSize:n,isPasteServiceUsed:a,isGenerating:c,error:u,target:l,setTarget:g,generate:p,copyToClipboard:f,clear:j}}async function Wa(){try{const t=await fetch("/api/license");if(t.ok){const s=await t.json();if(s.email)return s.email}}catch{}return"Anonymous"}async function Ja(t,s){try{const{compress:n}=await Z(async()=>{const{compress:d}=await Promise.resolve().then(()=>et);return{compress:d}},void 0,import.meta.url),r=await n(JSON.stringify(t)),a=await fetch("/api/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:r})});if(!a.ok)return null;const{id:i}=await a.json();return{url:`${s}/#/shared/${i}`}}catch{return null}}function Qa({isOpen:t,onClose:s,specContent:n,annotations:r,planPath:a,contentType:i="specification",onCopied:c}){const{success:d,error:u}=Wt(),{shareUrl:h,urlSize:l,isPasteServiceUsed:m,isGenerating:x,error:g,target:p,setTarget:f,generate:j,copyToClipboard:N,clear:y}=Ka(),C=o.useRef(null),w=o.useRef(null);o.useEffect(()=>{t&&j(n,r,void 0,a,i),t||y()},[t,p]),o.useEffect(()=>{var P,E;const T=C.current;T&&(t?(P=T.showModal)==null||P.call(T):(E=T.close)==null||E.call(T))},[t]);const R=async()=>{await N()?(d("Share link copied — now paste your colleague's feedback URL"),c?c():s()):u("Failed to copy to clipboard")},b=T=>{T!==p&&f(T)},_=T=>{T.key==="Escape"&&s()};return e.jsx("dialog",{ref:C,className:"modal",onKeyDown:_,onClick:T=>{T.target===C.current&&s()},children:e.jsxs("div",{className:"modal-box w-full max-w-lg",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(S,{icon:"lucide:share-2",size:18,className:"text-primary"}),e.jsxs("h3",{className:"text-lg font-semibold",children:["Share ",i==="requirement"?"Requirement":"Specification"]}),e.jsx("button",{className:"btn btn-ghost btn-xs ml-auto",onClick:s,"aria-label":"Close",children:e.jsx(S,{icon:"lucide:x",size:16})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Recipient"}),e.jsxs("div",{className:"flex rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="local"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("local"),children:[e.jsx(S,{icon:"lucide:monitor",size:13}),"Has Pilot Shell"]}),e.jsxs("button",{className:`flex-1 flex items-center justify-center gap-1.5 px-3 py-2 transition-colors ${p==="web"?"bg-base-300 text-base-content font-medium":"text-base-content/50 hover:text-base-content/80"}`,onClick:()=>b("web"),children:[e.jsx(S,{icon:"lucide:globe",size:13}),"Share via pilot-shell.com"]})]})]}),x&&e.jsxs("div",{className:"flex items-center gap-3 py-6 justify-center",children:[e.jsx("span",{className:"loading loading-spinner loading-sm text-primary"}),e.jsx("span",{className:"text-sm text-base-content/60",children:"Generating…"})]}),!x&&g&&e.jsxs("div",{className:"alert alert-error mb-4",children:[e.jsx(S,{icon:"lucide:alert-circle",size:16}),e.jsx("span",{className:"text-sm",children:g})]}),!x&&h&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-xs font-medium text-base-content/60 mb-1.5 block",children:"Share link"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{ref:w,type:"text",readOnly:!0,value:h,className:"input input-bordered input-sm flex-1 font-mono text-xs",onClick:()=>{var T;return(T=w.current)==null?void 0:T.select()}}),e.jsxs("button",{className:"btn btn-primary btn-sm gap-1",onClick:R,children:[e.jsx(S,{icon:"lucide:copy",size:14}),"Copy"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-base-content/50 mb-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:minimize-2",size:12,className:"text-success"}),e.jsx("span",{children:"Compressed"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:database",size:12}),e.jsx("span",{children:l})]}),m&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:cloud",size:12,className:"text-info"}),e.jsx("span",{children:"Stored locally · 3 day expiry"})]})]}),p==="web"?e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Zero data sent to pilot-shell.com — the spec is embedded in the URL fragment, which is never transmitted to any server."})]}):e.jsxs("div",{className:"alert alert-info py-2 px-3",children:[e.jsx(S,{icon:"lucide:info",size:14}),e.jsx("span",{className:"text-xs",children:"Recipient must have Pilot Console running to open this link."})]})]})]})})}function Ya({content:t}){return e.jsx("div",{className:"spec-markdown",children:e.jsx(ns,{remarkPlugins:[as],components:{h3:({children:s})=>{const r=String(s??"").match(/Task\s+(\d+)/),a=r?`task-${r[1]}`:void 0;return e.jsx("h3",{id:a,className:"text-lg font-semibold mt-6 mb-3 pb-2 border-b border-base-300/50 first:mt-0 scroll-mt-4",children:s})},h4:({children:s})=>e.jsx("h4",{className:"text-base font-medium mt-4 mb-2 text-base-content/90",children:s}),p:({children:s})=>e.jsx("p",{className:"text-sm text-base-content/80 mb-3 leading-relaxed",children:s}),ul:({children:s})=>e.jsx("ul",{className:"text-sm space-y-1.5 mb-4 ml-1",children:s}),ol:({children:s})=>e.jsx("ol",{className:"text-sm space-y-1.5 mb-4 ml-1 list-decimal list-inside",children:s}),li:({children:s})=>e.jsxs("li",{className:"text-base-content/80 flex items-start gap-2",children:[e.jsx("span",{className:"text-primary mt-0.5 text-xs select-none",children:"▸"}),e.jsx("span",{className:"flex-1",children:s})]}),code:({className:s,children:n})=>s?e.jsx("code",{className:"block bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:n}):e.jsx("code",{className:"bg-base-300 text-primary px-1.5 py-0.5 rounded text-xs font-mono",children:n}),pre:({children:s})=>e.jsx("pre",{className:"bg-base-300 p-3 rounded-lg text-xs font-mono overflow-x-auto mb-4 border border-base-content/10",children:s}),strong:({children:s})=>e.jsx("strong",{className:"font-semibold text-base-content",children:s}),table:({children:s})=>e.jsx("div",{className:"overflow-x-auto mb-4",children:e.jsx("table",{className:"table table-sm w-full",children:s})}),thead:({children:s})=>e.jsx("thead",{className:"bg-base-200",children:s}),th:({children:s})=>e.jsx("th",{className:"text-left text-xs font-medium text-base-content/70 p-2",children:s}),td:({children:s})=>e.jsx("td",{className:"text-sm p-2 border-t border-base-300/50",children:s}),blockquote:({children:s})=>e.jsx("blockquote",{className:"border-l-4 border-primary/50 pl-4 py-1 my-3 text-sm text-base-content/70 italic",children:s}),hr:()=>e.jsx("hr",{className:"my-6 border-base-300"})},children:t})})}const Xa={Summary:"lucide:text",Scope:"lucide:target","Autonomous Decisions":"lucide:brain","Context for Implementer":"lucide:book-open","Runtime Environment":"lucide:terminal",Assumptions:"lucide:lightbulb","Risks and Mitigations":"lucide:alert-triangle","Goal Verification":"lucide:check-square","E2E Test Scenarios":"lucide:monitor-check","E2E Results":"lucide:clipboard-check","Verification Scenario":"lucide:mouse-pointer-click","Open Questions":"lucide:help-circle","Deferred Ideas":"lucide:bookmark","Problem Statement":"lucide:crosshair","Core User Flows":"lucide:route","Technical Context":"lucide:cpu","Key Decisions":"lucide:scale"};function Za({heading:t,content:s,defaultOpen:n=!1}){const[r,a]=o.useState(n),i=Xa[t]||"lucide:file-text";return e.jsx(Y,{children:e.jsxs(X,{className:"p-0",children:[e.jsxs("button",{className:"w-full flex items-center gap-2.5 p-4 text-left cursor-pointer hover:bg-base-200/50 transition-colors",onClick:()=>a(!r),children:[e.jsx(S,{icon:i,size:16,className:"text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-semibold flex-1",children:t}),e.jsx(S,{icon:"lucide:chevron-down",size:14,className:`text-base-content/40 transition-transform duration-200 ${r?"rotate-180":""}`})]}),r&&e.jsx("div",{className:"px-4 pb-4 pt-0 border-t border-base-300/50",children:e.jsx("div",{className:"pt-3",children:e.jsx(Ya,{content:s})})})]})})}const er={SPEC_REFRESH_INTERVAL_MS:5e3,GIT_REFRESH_INTERVAL_MS:1e4},tr=o.lazy(()=>Z(()=>import("./PlanAnnotator.js").then(t=>t.P),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.PlanAnnotator}))),sr=["Problem Statement","Core User Flows","Scope","Technical Context","Key Decisions","Research Findings"],nr={Feature:"info",Infrastructure:"warning",UX:"info",API:"info",Performance:"success",Security:"warning",Documentation:"info",Integration:"info"};function ar(t){const s=t.match(/^#\s+(.+)$/m),n=s?s[1]:"Untitled PRD",r={},a=t.match(/^Author:\s*(.+)$/m);a&&(r.author=a[1].trim());const i=t.match(/^Category:\s*(.+)$/m);i&&(r.category=i[1].trim());const c=t.match(/^Status:\s*(.+)$/m);c&&(r.status=c[1].trim());const d=t.match(/^Research:\s*(.+)$/m);d&&(r.research=d[1].trim());const u=t.match(/^Created:\s*(.+)$/m);u&&(r.createdAt=u[1].trim());const h=[],l=/^## (.+)$/gm,m=[];let x;for(;(x=l.exec(t))!==null;)m.push({heading:x[1],index:x.index,contentStart:x.index+x[0].length});for(let g=0;g<m.length;g++){const{heading:p,contentStart:f}=m[g];if(!sr.includes(p))continue;const j=g+1<m.length?m[g+1].index:t.length,N=t.slice(f,j).trim();N&&h.push({heading:p,content:N})}return{title:n,sections:h,metadata:r}}function rr(t){const s=Date.now()-new Date(t).getTime(),n=Math.floor(s/6e4);if(n<60)return`${n}m ago`;const r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function ir(){const{selectedProject:t}=ie(),{params:s}=ce(),[n,r]=o.useState([]),[a,i]=o.useState(s.path?decodeURIComponent(s.path):null);o.useEffect(()=>{if(!s.path)return;const D=decodeURIComponent(s.path);i(O=>O===D?O:D)},[s.path]);const[c,d]=o.useState(null),[u,h]=o.useState(!0),[l,m]=o.useState(!1),[x,g]=o.useState(null),[p,f]=o.useState("view"),[j,N]=o.useState(!1),[y,C]=o.useState(!1),[w,R]=o.useState(0),[b,_]=o.useState(!1),T=t?`?project=${encodeURIComponent(t)}`:"",P=o.useRef(t);P.current!==t&&(P.current=t,i(null),d(null),g(null),h(!0));const E=o.useCallback(async()=>{var D;try{const F=await(await fetch(`/api/prd${T}`)).json();r(F.prds||[]),((D=F.prds)==null?void 0:D.length)>0&&!a&&i(F.prds[0].filePath)}catch(O){g("Failed to load PRDs"),console.error("Failed to load PRDs:",O)}finally{h(!1)}},[a,T]),A=o.useCallback(async(D,O=!1)=>{O||m(!0),g(null);try{const F=await fetch(`/api/prd/content?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`);if(!F.ok)throw new Error("Failed to load PRD content");d(await F.json())}catch(F){g("Failed to load PRD content"),console.error("Failed to load PRD content:",F)}finally{O||m(!1)}},[t]),G=o.useCallback(async D=>{if(confirm(`Delete "${D.split("/").pop()}"? This cannot be undone.`)){_(!0);try{if(!(await fetch(`/api/prd?path=${encodeURIComponent(D)}${t?`&project=${encodeURIComponent(t)}`:""}`,{method:"DELETE"})).ok)throw new Error("Failed to delete PRD");i(null),d(null),await E()}catch(O){g("Failed to delete PRD"),console.error("Failed to delete PRD:",O)}finally{_(!1)}}},[E,t]);if(o.useEffect(()=>{E();const D=setInterval(()=>{E(),a&&A(a,!0)},er.SPEC_REFRESH_INTERVAL_MS);return()=>clearInterval(D)},[E,A,a]),o.useEffect(()=>{a&&A(a)},[a,A]),u)return e.jsx(oe,{});if(n.length===0)return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{})," "]}),e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:lightbulb",size:48,className:"text-base-content/40 mb-4"}),e.jsx("h3",{className:"text-lg font-medium mb-2",children:"No Requirements"}),e.jsxs("p",{className:"text-base-content/60 max-w-md",children:["Use"," ",e.jsx("code",{className:"text-primary bg-base-300 px-1 rounded",children:"/prd"})," ","in Pilot Shell to brainstorm vague ideas into Product Requirements Documents through back-and-forth conversation, with optional research."]})]})})})]});const z=n.find(D=>D.filePath===a),L=n.filter(D=>D.filePath!==a),I=c?ar(c.content):null;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Requirements"}),e.jsx(Te,{}),a&&c&&e.jsxs("div",{className:"flex items-center rounded-lg border border-base-300 overflow-hidden text-xs",children:[e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="view"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("view"),title:"View PRD",children:[e.jsx(S,{icon:"lucide:eye",size:13}),"View"]}),e.jsxs("button",{className:`px-2.5 py-1.5 flex items-center gap-1.5 transition-colors ${p==="annotate"?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>f("annotate"),title:"Review PRD",children:[e.jsx(S,{icon:"lucide:pencil",size:13}),"Review"]})]}),z&&e.jsx("div",{role:"tablist",className:"flex items-center gap-1.5 min-w-0 overflow-hidden",children:e.jsxs("button",{role:"tab","aria-selected":!0,className:"px-2.5 py-1.5 rounded-lg text-xs font-medium border transition-colors cursor-pointer flex items-center gap-1.5 truncate bg-primary/10 border-primary/30 text-primary",children:[e.jsx(S,{icon:"lucide:lightbulb",size:12,className:"text-warning flex-shrink-0"}),e.jsx("span",{className:"truncate max-w-40",children:z.name}),e.jsx("span",{className:"text-[10px] opacity-60 flex-shrink-0",children:rr(z.modifiedAt)})]})}),e.jsx("span",{className:"flex-1"}),L.length>0&&e.jsxs("select",{className:"select select-bordered select-xs text-xs max-w-48",value:"",onChange:D=>i(D.target.value),children:[e.jsxs("option",{value:"",disabled:!0,children:["Previous (",L.length,")"]}),L.map(D=>e.jsx("option",{value:D.filePath,children:D.name},D.filePath))]}),a&&e.jsx(re,{text:"Delete PRD",position:"bottom",children:e.jsx(se,{variant:"ghost",size:"sm",onClick:()=>G(a),disabled:b,children:e.jsx(S,{icon:"lucide:trash-2",size:16,className:"text-error"})})})]}),l?e.jsx(oe,{}):x?e.jsx(Y,{children:e.jsx(X,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(S,{icon:"lucide:alert-circle",size:48,className:"text-error mb-4"}),e.jsx("p",{className:"text-error",children:x})]})})}):I&&c?e.jsxs(e.Fragment,{children:[p==="annotate"&&e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsxs("div",{className:"rounded-xl border border-base-300 bg-base-100",style:{height:"calc(100vh - 180px)",minHeight:500,display:"flex",flexDirection:"column"},children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-base-300 bg-base-200/40 flex-shrink-0 text-xs text-base-content/60",children:[e.jsx(S,{icon:"lucide:pencil-line",size:13,className:"text-primary"}),e.jsx("span",{children:"Hover over a block and click the + button to add annotations. Review them in the sidebar."})]}),e.jsx("div",{style:{flex:1,minHeight:0,display:"flex"},children:e.jsx(tr,{planContent:c.content,planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onShare:()=>C(!0),onReceiveFeedback:()=>N(!0),reloadKey:w})})]})}),p!=="annotate"&&e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:e.jsxs(X,{className:"p-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-warning/20 rounded-xl flex items-center justify-center flex-shrink-0",children:e.jsx(S,{icon:"lucide:lightbulb",size:20,className:"text-warning"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:"text-xl font-bold",children:I.title}),e.jsxs("p",{className:"text-xs text-base-content/50 mt-1",children:[I.sections.length," sections"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 mt-4 pt-4 border-t border-base-300/50 text-xs text-base-content/50 flex-wrap",children:[I.metadata.category&&e.jsx(V,{variant:nr[I.metadata.category]??"info",size:"xs",children:I.metadata.category}),I.metadata.status&&e.jsx(V,{variant:I.metadata.status==="Final"?"success":"warning",size:"xs",children:I.metadata.status}),I.metadata.author&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:user",size:12}),e.jsx("span",{children:I.metadata.author})]}),I.metadata.createdAt&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:calendar",size:12}),e.jsx("span",{children:I.metadata.createdAt})]}),I.metadata.research&&I.metadata.research!=="None"&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(S,{icon:"lucide:search",size:12}),e.jsxs("span",{children:[I.metadata.research," research"]})]}),c&&e.jsxs("div",{className:"flex items-center gap-1 ml-auto",children:[e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>C(!0),title:"Share PRD with a teammate",children:[e.jsx(S,{icon:"lucide:send",size:12}),e.jsx("span",{children:"Share with Teammate"})]}),e.jsxs("button",{className:"btn btn-ghost btn-xs gap-1",onClick:()=>N(!0),title:"Receive feedback from a colleague",children:[e.jsx(S,{icon:"lucide:inbox",size:12}),e.jsx("span",{children:"Receive Feedback"})]})]})]})]})}),I.sections.length>0&&e.jsx("div",{className:"space-y-2",children:I.sections.map(D=>e.jsx(Za,{heading:D.heading,content:D.content,defaultOpen:D.heading==="Problem Statement"||D.heading==="Scope"},D.heading))})]})]}):null,c&&j&&e.jsx(Ba,{isOpen:j,onClose:()=>N(!1),planPath:c.filePath,projectParam:t?`&project=${encodeURIComponent(t)}`:"",onAnnotationsImported:()=>{N(!1),f("annotate"),R(D=>D+1)}}),c&&y&&e.jsx(Qa,{isOpen:y,onClose:()=>C(!1),specContent:c.content,annotations:[],planPath:c.filePath,contentType:"requirement",onCopied:()=>{C(!1),setTimeout(()=>N(!0),300)}})]})}const be=[{key:"DEBUG",label:"Debug",icon:"🔍",color:"text-base-content/50"},{key:"INFO",label:"Info",icon:"ℹ️",color:"text-info"},{key:"WARN",label:"Warn",icon:"⚠️",color:"text-warning"},{key:"ERROR",label:"Error",icon:"❌",color:"text-error"}],ge=[{key:"HOOK",label:"Hook",icon:"🪝",color:"text-purple-500"},{key:"WORKER",label:"Worker",icon:"⚙️",color:"text-info"},{key:"SDK",label:"SDK",icon:"📦",color:"text-success"},{key:"PARSER",label:"Parser",icon:"📄",color:"text-sky-500"},{key:"DB",label:"DB",icon:"🗄️",color:"text-orange-500"},{key:"SYSTEM",label:"System",icon:"💻",color:"text-base-content/50"},{key:"HTTP",label:"HTTP",icon:"🌐",color:"text-cyan-500"},{key:"SESSION",label:"Session",icon:"📋",color:"text-pink-500"},{key:"CHROMA",label:"Chroma",icon:"🔮",color:"text-violet-500"}];function or(t){const s=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=t.match(s);if(!n)return{raw:t};const[,r,a,i,c,d]=n;let u;return d.startsWith("→")?u="dataIn":d.startsWith("←")?u="dataOut":d.startsWith("✓")?u="success":d.startsWith("✗")?u="failure":d.startsWith("⏱")?u="timing":d.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:t,timestamp:r,level:a==null?void 0:a.trim(),component:i==null?void 0:i.trim(),correlationId:c||void 0,message:d,isSpecial:u}}function cr({isOpen:t,onClose:s}){const[n,r]=o.useState(""),[a,i]=o.useState(!1),[c,d]=o.useState(null),[u,h]=o.useState(!1),[l,m]=o.useState(350),[x,g]=o.useState(!1),p=o.useRef(0),f=o.useRef(0),j=o.useRef(null),N=o.useRef(!0),[y,C]=o.useState(new Set(["DEBUG","INFO","WARN","ERROR"])),[w,R]=o.useState(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[b,_]=o.useState(!1),T=o.useMemo(()=>n?n.split(` `).map(or):[],[n]),P=o.useMemo(()=>T.filter(k=>b?k.raw.includes("[ALIGNMENT]"):!k.level||!k.component?!0:y.has(k.level)&&w.has(k.component)),[T,y,w,b]),E=o.useCallback(()=>{if(!j.current)return!0;const{scrollTop:k,scrollHeight:M,clientHeight:U}=j.current;return M-k-U<50},[]),A=o.useCallback(()=>{j.current&&N.current&&(j.current.scrollTop=j.current.scrollHeight)},[]),G=o.useCallback(async()=>{N.current=E(),i(!0),d(null);try{const k=await fetch("/api/logs");if(!k.ok)throw new Error(`Failed to fetch logs: ${k.statusText}`);const M=await k.json();r(M.logs||"")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}},[E]);o.useEffect(()=>{A()},[n,A]);const z=o.useCallback(async()=>{if(confirm("Are you sure you want to clear all logs?")){i(!0),d(null);try{const k=await fetch("/api/logs/clear",{method:"POST"});if(!k.ok)throw new Error(`Failed to clear logs: ${k.statusText}`);r("")}catch(k){d(k instanceof Error?k.message:"Unknown error")}finally{i(!1)}}},[]),L=o.useCallback(k=>{k.preventDefault(),g(!0),p.current=k.clientY,f.current=l},[l]);o.useEffect(()=>{if(!x)return;const k=U=>{const ee=p.current-U.clientY,te=Math.min(Math.max(150,f.current+ee),window.innerHeight-100);m(te)},M=()=>{g(!1)};return document.addEventListener("mousemove",k),document.addEventListener("mouseup",M),()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",M)}},[x]),o.useEffect(()=>{t&&(N.current=!0,G())},[t,G]),o.useEffect(()=>{if(!t||!u)return;const k=setInterval(G,2e3);return()=>clearInterval(k)},[t,u,G]);const I=o.useCallback(k=>{C(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),D=o.useCallback(k=>{R(M=>{const U=new Set(M);return U.has(k)?U.delete(k):U.add(k),U})},[]),O=o.useCallback(k=>{C(k?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),F=o.useCallback(k=>{R(k?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!t)return null;const K=k=>{const M=be.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},Q=k=>{const M=ge.find(U=>U.key===k);return(M==null?void 0:M.color)||"text-base-content"},ne=k=>k.level==="ERROR"?"bg-error/10":k.level==="WARN"?"bg-warning/5":"",H=(k,M)=>{var te,v;if(!k.timestamp)return e.jsx("div",{className:"whitespace-pre-wrap break-all text-base-content/60",children:k.raw},M);const U=be.find($=>$.key===k.level),ee=ge.find($=>$.key===k.component);return e.jsxs("div",{className:`whitespace-pre-wrap break-all py-0.5 px-1 rounded ${ne(k)}`,children:[e.jsxs("span",{className:"text-base-content/40",children:["[",k.timestamp,"]"]})," ",e.jsxs("span",{className:`font-medium ${K(k.level)}`,title:k.level,children:["[",(U==null?void 0:U.icon)||""," ",(te=k.level)==null?void 0:te.padEnd(5),"]"]})," ",e.jsxs("span",{className:`font-medium ${Q(k.component)}`,title:k.component,children:["[",(ee==null?void 0:ee.icon)||""," ",(v=k.component)==null?void 0:v.padEnd(7),"]"]})," ",k.correlationId&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-base-content/50",children:["[",k.correlationId,"]"]})," "]}),e.jsx("span",{className:k.isSpecial==="success"?"text-success":k.isSpecial==="failure"?"text-error":"text-base-content",children:k.message})]},M)};return e.jsxs("div",{className:"fixed bottom-0 left-0 right-0 bg-base-100 border-t border-base-300 flex flex-col z-50 shadow-2xl",style:{height:`${l}px`},children:[e.jsx("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center bg-base-200 hover:bg-base-300 transition-colors",onMouseDown:L,children:e.jsx("div",{className:"w-12 h-1 bg-base-300 rounded-full"})}),e.jsxs("div",{className:"flex justify-between items-center px-3 h-9 bg-base-200 border-b border-base-300",children:[e.jsx("div",{className:"flex gap-1",children:e.jsx("div",{className:"px-3 py-1 text-xs font-medium bg-base-100 text-base-content rounded",children:"Console"})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-base-content/60 cursor-pointer",children:[e.jsx("input",{type:"checkbox",className:"checkbox checkbox-xs",checked:u,onChange:k=>h(k.target.checked)}),"Auto-refresh"]}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:G,disabled:a,title:"Refresh logs",children:e.jsx(S,{icon:"lucide:refresh-cw",size:14,className:a?"animate-spin":""})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>{N.current=!0,A()},title:"Scroll to bottom",children:e.jsx(S,{icon:"lucide:arrow-down",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square hover:text-error",onClick:z,disabled:a,title:"Clear logs",children:e.jsx(S,{icon:"lucide:trash-2",size:14})}),e.jsx("button",{className:"btn btn-ghost btn-xs btn-square",onClick:s,title:"Close console",children:e.jsx(S,{icon:"lucide:x",size:14})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3 px-3 py-2 bg-base-200/50 border-b border-base-300 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Quick:"}),e.jsx("button",{className:`badge badge-sm cursor-pointer ${b?"badge-warning":"badge-ghost opacity-50"}`,onClick:()=>_(!b),title:"Show only session alignment logs",children:"🔗 Alignment"})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Levels:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[be.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${y.has(k.key)?"badge-primary":"badge-ghost opacity-40"}`,onClick:()=>I(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>O(y.size===0),title:y.size===be.length?"Select none":"Select all",children:y.size===be.length?"○":"●"})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-base-content/50 uppercase text-[10px]",children:"Components:"}),e.jsxs("div",{className:"flex flex-wrap gap-1",children:[ge.map(k=>e.jsxs("button",{className:`badge badge-sm cursor-pointer ${w.has(k.key)?"badge-secondary":"badge-ghost opacity-40"}`,onClick:()=>D(k.key),title:k.label,children:[k.icon," ",k.label]},k.key)),e.jsx("button",{className:"badge badge-sm badge-ghost cursor-pointer",onClick:()=>F(w.size===0),title:w.size===ge.length?"Select none":"Select all",children:w.size===ge.length?"○":"●"})]})]})]}),c&&e.jsxs("div",{className:"px-3 py-2 bg-error/10 text-error text-xs",children:["⚠ ",c]}),e.jsx("div",{className:"flex-1 overflow-y-auto px-3 py-2",ref:j,children:e.jsx("div",{className:"font-mono text-xs leading-relaxed",children:P.length===0?e.jsx("div",{className:"text-base-content/40 italic",children:"No logs available"}):P.map((k,M)=>H(k,M))})})]})}const Ke={COMMAND_PALETTE:{key:"k",modifiers:["ctrl","meta"],description:"Open command palette",action:"openCommandPalette"},SEARCH:{key:"/",modifiers:["ctrl","meta"],description:"Focus search",action:"focusSearch"},ESCAPE:{key:"Escape",description:"Close modal/palette",action:"escape"},TOGGLE_THEME:{key:"t",modifiers:["ctrl","meta"],description:"Toggle theme",action:"toggleTheme"},TOGGLE_SIDEBAR:{key:"b",modifiers:["ctrl","meta"],description:"Toggle sidebar",action:"toggleSidebar"}},lr=[{sequence:["g","d"],description:"Go to Dashboard",action:"navigate:/"},{sequence:["g","c"],description:"Go to Changes",action:"navigate:/changes"},{sequence:["g","m"],description:"Go to Memories",action:"navigate:/memories"},{sequence:["g","v"],description:"Go to Extensions",action:"navigate:/extensions"},{sequence:["g","h"],description:"Go to Help",action:"navigate:/help"}];function Et(t){var r,a,i,c;const s=typeof navigator<"u"&&navigator.platform.includes("Mac"),n=[];return((r=t.modifiers)!=null&&r.includes("ctrl")||(a=t.modifiers)!=null&&a.includes("meta"))&&n.push(s?"⌘":"Ctrl"),(i=t.modifiers)!=null&&i.includes("shift")&&n.push(s?"⇧":"Shift"),(c=t.modifiers)!=null&&c.includes("alt")&&n.push(s?"⌥":"Alt"),n.push(t.key.toUpperCase()),n.join(s?"":"+")}function dr({open:t,onClose:s,onNavigate:n,onToggleTheme:r,onToggleSidebar:a}){const[i,c]=o.useState(""),[d,u]=o.useState(0),h=o.useRef(null),l=o.useRef(null),m=o.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"G D",category:"navigation",icon:"lucide:layout-dashboard",action:()=>n("/")},{id:"nav-changes",label:"Go to Changes",shortcut:"G C",category:"navigation",icon:"lucide:git-compare",action:()=>n("/changes")},{id:"nav-memories",label:"Go to Memories",shortcut:"G M",category:"navigation",icon:"lucide:brain",action:()=>n("/memories")},{id:"nav-usage",label:"Go to Usage",shortcut:"G U",category:"navigation",icon:"lucide:bar-chart-3",action:()=>n("/usage")},{id:"nav-extensions",label:"Go to Extensions",shortcut:"G V",category:"navigation",icon:"lucide:puzzle",action:()=>n("/extensions")},{id:"nav-help",label:"Go to Help",shortcut:"G H",category:"navigation",icon:"lucide:book-open",action:()=>n("/help")},{id:"action-theme",label:"Toggle Theme",shortcut:Et(Ke.TOGGLE_THEME),category:"action",icon:"lucide:sun-moon",action:r},{id:"action-sidebar",label:"Toggle Sidebar",shortcut:Et(Ke.TOGGLE_SIDEBAR),category:"action",icon:"lucide:panel-left",action:a}],[n,r,a]),x=o.useMemo(()=>{if(!i)return m;const y=i.toLowerCase();return m.filter(C=>C.label.toLowerCase().includes(y)||C.category.toLowerCase().includes(y))},[m,i]);o.useEffect(()=>{u(0)},[i]),o.useEffect(()=>{t&&(c(""),u(0),setTimeout(()=>{var y;return(y=h.current)==null?void 0:y.focus()},50))},[t]),o.useEffect(()=>{if(!l.current)return;const y=l.current.querySelector('[data-selected="true"]');y==null||y.scrollIntoView({block:"nearest"})},[d]);const g=y=>{y.action(),s()},p=y=>{switch(y.key){case"ArrowDown":y.preventDefault(),u(C=>(C+1)%x.length);break;case"ArrowUp":y.preventDefault(),u(C=>(C-1+x.length)%x.length);break;case"Enter":y.preventDefault(),x[d]&&g(x[d]);break;case"Escape":y.preventDefault(),s();break}};if(!t)return null;const f=x.reduce((y,C)=>(y[C.category]||(y[C.category]=[]),y[C.category].push(C),y),{}),j={navigation:"Navigation",action:"Actions",theme:"Theme"};let N=0;return e.jsxs("dialog",{className:"modal modal-open",children:[e.jsxs("div",{className:"modal-box max-w-xl p-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-base-300",children:[e.jsx(S,{icon:"lucide:search",size:18,className:"text-base-content/50"}),e.jsx("input",{ref:h,type:"text",placeholder:"Type a command or search...",value:i,onChange:y=>c(y.target.value),onKeyDown:p,className:"flex-1 bg-transparent outline-none text-base"}),e.jsx("kbd",{className:"kbd kbd-sm",children:"ESC"})]}),e.jsx("div",{ref:l,className:"max-h-80 overflow-y-auto p-2",children:x.length===0?e.jsx("div",{className:"text-center py-8 text-base-content/50",children:"No commands found"}):Object.entries(f).map(([y,C])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium text-base-content/50 px-2 py-1 mt-2 first:mt-0",children:j[y]||y}),C.map(w=>{const R=N===d,b=N;return N++,e.jsxs("button",{"data-selected":R,className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-left transition-colors ${R?"bg-primary text-primary-content":"hover:bg-base-200"}`,onClick:()=>g(w),onMouseEnter:()=>u(b),children:[e.jsx(S,{icon:w.icon,size:16,className:R?"text-primary-content":"text-base-content/60"}),e.jsx("span",{className:"flex-1",children:w.label}),w.shortcut&&e.jsx("kbd",{className:`kbd kbd-sm ${R?"bg-primary-content/20 text-primary-content":""}`,children:w.shortcut})]},w.id)})]},y))}),e.jsxs("div",{className:"border-t border-base-300 px-3 py-2 text-xs text-base-content/50 flex gap-4",children:[e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↑↓"})," Navigate"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"↵"})," Select"]}),e.jsxs("span",{children:[e.jsx("kbd",{className:"kbd kbd-xs",children:"ESC"})," Close"]})]})]}),e.jsx("form",{method:"dialog",className:"modal-backdrop bg-black/50",children:e.jsx("button",{onClick:s,children:"close"})})]})}function ur({license:t,onActivated:s}){const[n,r]=o.useState(""),[a,i]=o.useState(null),[c,d]=o.useState(!1),u=o.useCallback(async()=>{const g=n.trim();if(g){i(null),d(!0);try{const f=await(await fetch("/api/license/activate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:g})})).json();f.success?(r(""),i(null),s()):i(f.error??"Activation failed")}catch{i("Connection failed. Is the Pilot worker running?")}finally{d(!1)}}},[n,s]),h=o.useCallback(g=>{g.key==="Enter"&&!c&&u()},[u,c]),l=(t==null?void 0:t.isExpired)===!0,m=l?"License Expired":"License Required",x=l?"Your Pilot Shell license has expired. Please activate a new license to continue using the Console.":"Pilot Shell Console requires an active license or trial. Activate your license key below to get started.";return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200 p-4",children:e.jsx("div",{className:"card bg-base-100 shadow-xl w-full max-w-md",children:e.jsxs("div",{className:"card-body items-center text-center gap-4",children:[e.jsx("div",{className:"text-5xl mb-2",children:l?"🚫":"🔒"}),e.jsx("h1",{className:"card-title text-2xl",children:m}),e.jsx("p",{className:"text-base-content/60 text-sm",children:x}),e.jsxs("div",{className:"w-full space-y-3 mt-2",children:[e.jsx("input",{type:"text",className:"input input-bordered w-full",placeholder:"Enter your license key",value:n,onChange:g=>{r(g.target.value),i(null)},onKeyDown:h,disabled:c,autoFocus:!0}),a&&e.jsx("p",{className:"text-error text-sm text-left",children:a}),e.jsx("button",{className:"btn btn-primary w-full",onClick:u,disabled:c||!n.trim(),children:c?"Activating...":"Activate License"})]}),e.jsx("div",{className:"divider text-base-content/40 text-xs my-1",children:"or"}),e.jsx("a",{href:"https://pilot-shell.com/#pricing",target:"_blank",rel:"noopener noreferrer",className:"btn btn-outline btn-sm w-full",children:"Get a License"}),e.jsxs("p",{className:"text-base-content/40 text-xs mt-2",children:["Visit"," ",e.jsx("a",{href:"https://pilot-shell.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"pilot-shell.com"})," ","to learn more about Pilot Shell."]})]})})})}const mr={totalGlobal:0,totalProject:0,totalPlugin:0,totalRemote:0};function hr(){try{const t=localStorage.getItem("pilot-extensions-status");if(t)return JSON.parse(t)}catch{}return mr}function fr(){const{selectedProject:t,setProjects:s}=ie(),[n,r]=o.useState({observations:0,summaries:0,sessions:0,lastObservationAt:null,projects:0}),[a,i]=o.useState({status:"offline"}),[c,d]=o.useState([]),[u,h]=o.useState({active:!1,plans:[]}),[l,m]=o.useState({branch:null,staged:0,unstaged:0,untracked:0,totalFiles:0}),[x,g]=o.useState({totalSpecs:0,verified:0,inProgress:0,pending:0,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]}),[p,f]=o.useState(0),[j,N]=o.useState(0),[y,C]=o.useState(0),[w,R]=o.useState([]),[b,_]=o.useState(hr),[T,P]=o.useState(!0),E=o.useCallback(async()=>{var z;try{const L=await fetch("/api/extensions?all=true").catch(()=>null);if(!(L!=null&&L.ok))return;const D=(await L.json()).extensions??[],O=D.filter(H=>H.scope==="global"&&!H.pluginName),F=D.filter(H=>H.scope==="project"),K=D.filter(H=>H.pluginName!=null);let Q=0;try{const H=await fetch("/api/team-remote/extensions").catch(()=>null);H!=null&&H.ok&&(Q=((z=(await H.json()).extensions)==null?void 0:z.length)??0)}catch{}const ne={totalGlobal:O.length,totalProject:F.length,totalPlugin:K.length,totalRemote:Q};_(ne);try{localStorage.setItem("pilot-extensions-status",JSON.stringify(ne))}catch{}}catch{}},[]),A=o.useCallback(async()=>{const z=t?`?project=${encodeURIComponent(t)}`:"";Promise.all([fetch(`/api/stats${z}`),fetch("/health"),fetch(`/api/observations?limit=6${t?`&project=${encodeURIComponent(t)}`:""}`),fetch("/api/projects")]).then(async([L,I,D,O])=>{var ee,te,v,$,q,B,ae;const F=await L.json(),K=await I.json(),Q=await D.json(),ne=await O.json(),H=Q.items||Q.observations||Q||[],k=Array.isArray(H)?H:[],M=k.length>0&&((ee=k[0])==null?void 0:ee.created_at)||null,U=ne.projects||[];s(U),r({observations:((te=F.database)==null?void 0:te.observations)||0,summaries:((v=F.database)==null?void 0:v.summaries)||0,sessions:(($=F.database)==null?void 0:$.sessions)||0,lastObservationAt:M?Pt(M):null,projects:U.length}),i({status:K.status==="ok"?K.isProcessing?"processing":"online":"offline",version:(q=F.worker)==null?void 0:q.version,uptime:(B=F.worker)!=null&&B.uptime?xr(F.worker.uptime):void 0,queueDepth:K.queueDepth||0,workspaceProject:(ae=F.worker)==null?void 0:ae.workspaceProject}),d(k.slice(0,2).map(W=>{var de;return{id:W.id,type:W.obs_type||W.type||"observation",title:W.title||((de=W.content)==null?void 0:de.slice(0,100))||"Untitled",project:W.project||"unknown",timestamp:Pt(W.created_at)}})),P(!1)}).catch(L=>{console.error("Failed to load core stats:",L),i({status:"offline"}),P(!1)}),fetch(`/api/plan${z}`).then(async L=>{const I=await L.json(),D=I.plans||(I.plan?[I.plan]:[]);h({active:D.length>0,plans:D})}).catch(()=>{}),fetch(`/api/git${z}`).then(async L=>{const I=await L.json();m({branch:I.branch||null,staged:I.staged||0,unstaged:I.unstaged||0,untracked:I.untracked||0,totalFiles:I.totalFiles||0})}).catch(()=>{}),fetch("/api/plans/active/all").then(async L=>{if(!L.ok)return;const D=(await L.json()).specs||[];g({totalSpecs:D.length,verified:D.filter(O=>O.status==="VERIFIED").length,inProgress:D.filter(O=>O.status==="COMPLETE"||O.status==="PENDING").length,pending:D.filter(O=>O.status==="PENDING").length,avgIterations:0,totalTasksCompleted:0,totalTasks:0,completionTimeline:[],recentlyVerified:[]})}).catch(()=>{}),fetch("/api/prd/all").then(async L=>{if(!L.ok)return;const I=await L.json();f((I.prds||[]).length)}).catch(()=>{}),fetch("/api/usage/daily").then(async L=>{if(!L.ok)return;const D=(await L.json()).daily||[],O=new Date().toISOString().slice(0,10),F=D.find(K=>K.date===O);N((F==null?void 0:F.totalCost)??0)}).catch(()=>{}),fetch("/api/sessions?limit=50").then(async L=>{if(!L.ok)return;const D=(await L.json()).items||[];C(D.filter(O=>O.status==="active").length)}).catch(()=>{}),fetch(`/api/analytics/timeline?range=30d${t?`&project=${encodeURIComponent(t)}`:""}`).then(async L=>{if(!L.ok)return;const I=await L.json();R(I.data||[])}).catch(()=>{})},[t,s]),G=o.useRef(A);return o.useEffect(()=>{G.current=A},[A]),o.useEffect(()=>{A()},[A]),o.useEffect(()=>{E();const z=new EventSource("/stream");return z.onmessage=L=>{try{const I=JSON.parse(L.data);I.type==="processing_status"&&i(D=>({...D,status:I.isProcessing?"processing":"online",queueDepth:I.queueDepth??D.queueDepth})),(I.type==="new_observation"||I.type==="new_summary"||I.type==="plan_association_changed")&&G.current()}catch{}},()=>{z.close()}},[E]),{stats:n,workerStatus:a,extensionsStatus:b,recentActivity:c,planStatus:u,gitInfo:l,specStats:x,prdCount:p,todayCost:j,activeSessions:y,observationTimeline:w,isLoading:T,refreshStats:A}}function Pt(t){if(!t)return"";const s=new Date(t),r=new Date().getTime()-s.getTime();return r<6e4?"just now":r<36e5?`${Math.floor(r/6e4)}m ago`:r<864e5?`${Math.floor(r/36e5)}h ago`:s.toLocaleDateString()}function xr(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`}function pr(t,s={}){const{enabled:n=!0}=s,r=o.useRef([]),a=o.useRef(null),i=o.useCallback(()=>{r.current=[],a.current&&(clearTimeout(a.current),a.current=null)},[]);o.useEffect(()=>{if(!n)return;const c=d=>{const u=d.target;if(u.tagName==="INPUT"||u.tagName==="TEXTAREA"||u.isContentEditable){d.key==="Escape"&&t("escape");return}navigator.platform.includes("Mac");const h=d.ctrlKey||d.metaKey;for(const l of Object.values(Ke)){const m=!l.modifiers||l.modifiers.some(p=>p==="ctrl"?d.ctrlKey:p==="meta"?d.metaKey:p==="shift"?d.shiftKey:p==="alt"?d.altKey:!1),x=d.key.toLowerCase()===l.key.toLowerCase(),g=l.modifiers&&l.modifiers.length>0;if(x&&m&&(g?h:!h)){d.preventDefault(),t(l.action),i();return}}if(!h&&!d.shiftKey&&!d.altKey){a.current&&clearTimeout(a.current),r.current.push(d.key.toLowerCase()),a.current=setTimeout(i,1e3);for(const l of lr){const m=r.current,x=l.sequence;if(x.slice(0,m.length).every((p,f)=>p===m[f])){if(m.length===x.length){d.preventDefault(),t(l.action),i();return}return}}i()}};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c),i()}},[n,t,i])}const br=o.lazy(()=>Z(()=>import("./index.js"),__vite__mapDeps([4,1,2,3]),import.meta.url).then(t=>({default:t.DashboardView}))),gr=o.lazy(()=>Z(()=>import("./index2.js"),__vite__mapDeps([5,1,2,3,6,7]),import.meta.url).then(t=>({default:t.ChangesView}))),jr=o.lazy(()=>Z(()=>import("./index3.js"),__vite__mapDeps([8,1,2,3,6]),import.meta.url).then(t=>({default:t.SpecView}))),vr=o.lazy(()=>Z(()=>import("./index4.js"),__vite__mapDeps([9,1,2,3]),import.meta.url).then(t=>({default:t.UsageView}))),yr=o.lazy(()=>Z(()=>import("./ExtensionsView.js"),__vite__mapDeps([10,1,2,3]),import.meta.url).then(t=>({default:t.ExtensionsView}))),wr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.SharedSpecView}))),Nr=o.lazy(()=>Z(()=>import("./index5.js"),__vite__mapDeps([11,1,2,3,0]),import.meta.url).then(t=>({default:t.FeedbackImportView}))),kr=[{path:"/",component:br},{path:"/requirements",component:ir},{path:"/spec",component:jr},{path:"/changes",component:gr},{path:"/memories",component:vt},{path:"/memories/:type",component:vt},{path:"/sessions",component:Da},{path:"/usage",component:vr},{path:"/extensions",component:yr},{path:"/settings",component:Fa},{path:"/help",component:oa},{path:"/shared/:data",component:wr},{path:"/feedback/:data",component:Nr}],Rt="pilot-memory-sidebar-collapsed";function Sr(){const{path:t,navigate:s}=ce(),{resolvedTheme:n,setThemePreference:r}=Vt(),{workerStatus:a}=fr(),i=a.version,{license:c,isLoading:d,refetch:u}=Bt(),[h,l]=o.useState(()=>{if(typeof window<"u"&&window.innerWidth<1024)return!0;try{return localStorage.getItem(Rt)==="true"}catch{return!1}}),[m,x]=o.useState(!1),[g,p]=o.useState(!1),f=o.useCallback(()=>{r(n==="light"?"dark":"light")},[n,r]),j=o.useCallback(()=>{l(R=>{const b=!R;try{localStorage.setItem(Rt,String(b))}catch{}return b})},[]),N=o.useCallback(()=>{x(R=>!R)},[]),y=o.useCallback(R=>{if(R==="openCommandPalette")p(!0);else if(R==="escape")p(!1),x(!1);else if(R==="toggleTheme")r(n==="light"?"dark":"light");else if(R==="toggleSidebar")j();else if(R==="focusSearch"){const b=document.querySelector('input[type="search"]');b==null||b.focus()}else R.startsWith("navigate:")&&s(R.replace("navigate:",""))},[n,r,s,j]);pr(y);const C=!d&&(c==null?void 0:c.valid)===!0&&!c.isExpired,w=n==="dark"?"pilot-shell":"pilot-shell-light";return d?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-base-200","data-theme":w,children:e.jsxs("div",{className:"animate-pulse space-y-3 w-64",children:[e.jsx("div",{className:"h-8 bg-base-300/50 rounded w-3/4 mx-auto"}),e.jsx("div",{className:"h-4 bg-base-300/50 rounded w-1/2 mx-auto"})]})}):C?e.jsx("div",{"data-theme":w,children:e.jsx(bs,{children:e.jsx(Kn,{children:e.jsxs(Hn,{children:[e.jsx(aa,{currentPath:`#${t}`,version:i,workerStatus:a.status,queueDepth:a.queueDepth??0,onToggleTheme:f,onToggleLogs:N,sidebarCollapsed:h,onToggleSidebar:j,children:e.jsx(o.Suspense,{fallback:e.jsx(oe,{}),children:e.jsx(ra,{routes:kr})})}),e.jsx(cr,{isOpen:m,onClose:()=>x(!1)}),e.jsx(dr,{open:g,onClose:()=>p(!1),onNavigate:s,onToggleTheme:f,onToggleSidebar:j})]})})})}):e.jsx("div",{"data-theme":w,children:e.jsx(ur,{license:c,onActivated:u})})}class Cr extends o.Component{constructor(s){super(s),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,n){console.error("[ErrorBoundary] Caught error:",s,n),this.setState({error:s,errorInfo:n})}render(){return this.state.hasError?e.jsxs("div",{className:"p-5 min-h-screen bg-base-200 text-error",children:[e.jsx("h1",{className:"text-2xl font-bold mb-2.5",children:"Something went wrong"}),e.jsx("p",{className:"mb-2.5 text-base-content/60",children:"The application encountered an error. Please refresh the page to try again."}),this.state.error&&e.jsxs("details",{className:"mt-5 text-base-content/60",children:[e.jsx("summary",{className:"cursor-pointer mb-2.5",children:"Error details"}),e.jsxs("pre",{className:"bg-base-300 p-2.5 rounded-lg overflow-auto text-sm",children:[this.state.error.toString(),this.state.errorInfo&&` `+this.state.errorInfo.componentStack]})]})]}):this.props.children}}const ss=document.getElementById("root");if(!ss)throw new Error("Root element not found");const Er=cs.createRoot(ss);Er.render(e.jsx(Cr,{children:e.jsx(Sr,{})}));export{V as B,Y as C,J as D,Ve as E,S as I,Qt as M,Te as P,Qa as S,er as T,oe as V,Z as _,X as a,ie as b,ce as c,Ir as d,fr as e,Vt as f,se as g,re as h,Za as i,Ya as j,Ba as k,_a as l,Bt as m,Wt as n,ts as o,Ua as p,es as q,et as r,_r as s,Dr as u};